Skip to content

Commit 315aa1d

Browse files
committed
addressed feedback
1 parent 5dca382 commit 315aa1d

File tree

2 files changed

+65
-4
lines changed

2 files changed

+65
-4
lines changed

core/services/relay/evm/write_target.go

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"encoding/hex"
88
"encoding/json"
99
"fmt"
10+
"regexp"
1011
"strconv"
1112
"strings"
1213
"time"
@@ -117,7 +118,7 @@ func NewWriteTarget(ctx context.Context, relayer *Relayer, chain legacyevm.Chain
117118
ContractReader: cr,
118119
ChainWriter: cw,
119120
ConfigValidateFn: evaluate,
120-
NodeAddress: "nil",
121+
NodeAddress: config.FromAddress().String(),
121122
ForwarderAddress: config.ForwarderAddress().String(),
122123
TargetStrategy: NewEVMTargetStrategy(cr, cw, config.ForwarderAddress().String(), gasLimitDefault, lggr),
123124
}
@@ -262,15 +263,29 @@ func getChainInfo(chainID uint64) (monitor.ChainInfo, error) {
262263
return monitor.ChainInfo{}, fmt.Errorf("failed to get chain details for chain %d and family %s: %w", chainID, chainFamily, err)
263264
}
264265

266+
neworkName, err := ExtractNetwork(chainDetails.ChainName)
267+
if err != nil {
268+
return monitor.ChainInfo{}, fmt.Errorf("failed to get network name for chain %d: %w", chainID, err)
269+
}
270+
265271
return monitor.ChainInfo{
266272
ChainFamilyName: chainFamily,
267273
ChainID: strconv.Itoa(int(chainID)),
268-
NetworkName: chainDetails.ChainName,
269-
// TODO: not sure what the difference between NetworkName and NetworkNameFull is
270-
NetworkNameFull: "",
274+
NetworkName: neworkName,
275+
NetworkNameFull: chainDetails.ChainName,
271276
}, nil
272277
}
273278

279+
func ExtractNetwork(selector string) (string, error) {
280+
// Create a regexp pattern that matches any of the three.
281+
re := regexp.MustCompile(`(mainnet|testnet|devnet)`)
282+
name := re.FindString(selector)
283+
if name == "" {
284+
return "", fmt.Errorf("failed to extract network name from selector: %s", selector)
285+
}
286+
return name, nil
287+
}
288+
274289
func GenerateWriteTargetName(chainID uint64) string {
275290
id := fmt.Sprintf("write_%v@1.0.0", chainID)
276291
chainName, err := chainselectors.NameFromChainId(chainID)

core/services/relay/evm/write_target_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,3 +300,49 @@ func TestEvmWrite(t *testing.T) {
300300
assert.Empty(t, l)
301301
})
302302
}
303+
304+
func TestExtractNetwork(t *testing.T) {
305+
testCases := []struct {
306+
networkName string
307+
expectedName string
308+
expectedErr bool
309+
}{
310+
{
311+
networkName: "ethereum-testnet-goerli",
312+
expectedName: "testnet",
313+
expectedErr: false,
314+
},
315+
{
316+
networkName: "ethereum-mainnet",
317+
expectedName: "mainnet",
318+
expectedErr: false,
319+
},
320+
{
321+
networkName: "polygon-devnet",
322+
expectedName: "devnet",
323+
expectedErr: false,
324+
},
325+
{
326+
networkName: "ethereum_test",
327+
expectedName: "",
328+
expectedErr: true,
329+
},
330+
{
331+
networkName: "ethereum",
332+
expectedName: "",
333+
expectedErr: true,
334+
},
335+
}
336+
337+
for _, tc := range testCases {
338+
t.Run(tc.networkName, func(t *testing.T) {
339+
networkName, err := evm.ExtractNetwork(tc.networkName)
340+
if tc.expectedErr {
341+
require.Error(t, err)
342+
return
343+
}
344+
require.NoError(t, err)
345+
require.Equal(t, tc.expectedName, networkName)
346+
})
347+
}
348+
}

0 commit comments

Comments
 (0)