From 7470a1467644b14125c30cd63a859d3bd96fff26 Mon Sep 17 00:00:00 2001 From: Chase Fleming <1666730+chasefleming@users.noreply.github.com> Date: Sun, 28 Dec 2025 19:01:50 -0800 Subject: [PATCH] Allow any address for custom networks --- internal/util/util.go | 4 +++- internal/util/util_test.go | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/internal/util/util.go b/internal/util/util.go index 8a3048686..99b70e684 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -64,7 +64,9 @@ func IsAddressValidForNetwork(address flow.Address, networkName string) bool { case "emulator", "testing": return address.IsValid(flow.Emulator) default: - return address.IsValid(flow.Emulator) + // For custom networks, we can't validate the address format without knowing the chain ID, + // so we allow all addresses + return true } } diff --git a/internal/util/util_test.go b/internal/util/util_test.go index 22e5e1e0d..6df8f35af 100644 --- a/internal/util/util_test.go +++ b/internal/util/util_test.go @@ -22,10 +22,48 @@ import ( "strings" "testing" + "github.com/onflow/flow-go-sdk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) +func TestIsAddressValidForNetwork(t *testing.T) { + testnetAddr := flow.HexToAddress("8efde57e98c557fa") // Valid testnet address + emulatorAddr := flow.HexToAddress("f8d6e0586b0a20c7") // Valid emulator address + mainnetAddr := flow.HexToAddress("1654653399040a61") // Valid mainnet address + + t.Run("mainnet address valid for mainnet", func(t *testing.T) { + assert.True(t, IsAddressValidForNetwork(mainnetAddr, "mainnet")) + }) + + t.Run("mainnet address invalid for testnet", func(t *testing.T) { + assert.False(t, IsAddressValidForNetwork(mainnetAddr, "testnet")) + }) + + t.Run("testnet address valid for testnet", func(t *testing.T) { + assert.True(t, IsAddressValidForNetwork(testnetAddr, "testnet")) + }) + + t.Run("testnet address invalid for mainnet", func(t *testing.T) { + assert.False(t, IsAddressValidForNetwork(testnetAddr, "mainnet")) + }) + + t.Run("emulator address valid for emulator", func(t *testing.T) { + assert.True(t, IsAddressValidForNetwork(emulatorAddr, "emulator")) + }) + + t.Run("emulator address valid for testing", func(t *testing.T) { + assert.True(t, IsAddressValidForNetwork(emulatorAddr, "testing")) + }) + + t.Run("custom network allows any address", func(t *testing.T) { + // Custom networks should allow all addresses since we can't validate without knowing the chain ID + assert.True(t, IsAddressValidForNetwork(mainnetAddr, "my-custom-network")) + assert.True(t, IsAddressValidForNetwork(testnetAddr, "my-custom-network")) + assert.True(t, IsAddressValidForNetwork(emulatorAddr, "my-custom-network")) + }) +} + func TestAddFlowEntriesToGitIgnore_NoDuplicates(t *testing.T) { _, state, _ := TestMocks(t)