Skip to content

Commit 37485d4

Browse files
authored
Merge pull request #2240 from onflow/cf/fix-network-case
Allow any address for custom networks
2 parents 0d194c3 + 7470a14 commit 37485d4

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

internal/util/util.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ func IsAddressValidForNetwork(address flow.Address, networkName string) bool {
6464
case "emulator", "testing":
6565
return address.IsValid(flow.Emulator)
6666
default:
67-
return address.IsValid(flow.Emulator)
67+
// For custom networks, we can't validate the address format without knowing the chain ID,
68+
// so we allow all addresses
69+
return true
6870
}
6971
}
7072

internal/util/util_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,48 @@ import (
2222
"strings"
2323
"testing"
2424

25+
"github.com/onflow/flow-go-sdk"
2526
"github.com/stretchr/testify/assert"
2627
"github.com/stretchr/testify/require"
2728
)
2829

30+
func TestIsAddressValidForNetwork(t *testing.T) {
31+
testnetAddr := flow.HexToAddress("8efde57e98c557fa") // Valid testnet address
32+
emulatorAddr := flow.HexToAddress("f8d6e0586b0a20c7") // Valid emulator address
33+
mainnetAddr := flow.HexToAddress("1654653399040a61") // Valid mainnet address
34+
35+
t.Run("mainnet address valid for mainnet", func(t *testing.T) {
36+
assert.True(t, IsAddressValidForNetwork(mainnetAddr, "mainnet"))
37+
})
38+
39+
t.Run("mainnet address invalid for testnet", func(t *testing.T) {
40+
assert.False(t, IsAddressValidForNetwork(mainnetAddr, "testnet"))
41+
})
42+
43+
t.Run("testnet address valid for testnet", func(t *testing.T) {
44+
assert.True(t, IsAddressValidForNetwork(testnetAddr, "testnet"))
45+
})
46+
47+
t.Run("testnet address invalid for mainnet", func(t *testing.T) {
48+
assert.False(t, IsAddressValidForNetwork(testnetAddr, "mainnet"))
49+
})
50+
51+
t.Run("emulator address valid for emulator", func(t *testing.T) {
52+
assert.True(t, IsAddressValidForNetwork(emulatorAddr, "emulator"))
53+
})
54+
55+
t.Run("emulator address valid for testing", func(t *testing.T) {
56+
assert.True(t, IsAddressValidForNetwork(emulatorAddr, "testing"))
57+
})
58+
59+
t.Run("custom network allows any address", func(t *testing.T) {
60+
// Custom networks should allow all addresses since we can't validate without knowing the chain ID
61+
assert.True(t, IsAddressValidForNetwork(mainnetAddr, "my-custom-network"))
62+
assert.True(t, IsAddressValidForNetwork(testnetAddr, "my-custom-network"))
63+
assert.True(t, IsAddressValidForNetwork(emulatorAddr, "my-custom-network"))
64+
})
65+
}
66+
2967
func TestAddFlowEntriesToGitIgnore_NoDuplicates(t *testing.T) {
3068
_, state, _ := TestMocks(t)
3169

0 commit comments

Comments
 (0)