github.com/status-im/status-go@v1.1.0/contracts/ethscan/address.go (about) 1 package ethscan 2 3 import ( 4 "errors" 5 6 "github.com/ethereum/go-ethereum/common" 7 ) 8 9 var errorNotAvailableOnChainID = errors.New("not available for chainID") 10 11 type ContractData struct { 12 Address common.Address 13 CreatedAtBlock uint 14 } 15 16 var contractDataByChainID = map[uint64]ContractData{ 17 1: {common.HexToAddress("0x08A8fDBddc160A7d5b957256b903dCAb1aE512C5"), 12_194_222}, // mainnet 18 5: {common.HexToAddress("0x08A8fDBddc160A7d5b957256b903dCAb1aE512C5"), 4_578_854}, // goerli 19 10: {common.HexToAddress("0x9e5076df494fc949abc4461f4e57592b81517d81"), 34_421_097}, // optimism 20 420: {common.HexToAddress("0xf532c75239fa61b66d31e73f44300c46da41aadd"), 2_236_534}, // goerli optimism 21 42161: {common.HexToAddress("0xbb85398092b83a016935a17fc857507b7851a071"), 70_031_945}, // arbitrum 22 421613: {common.HexToAddress("0xec21ebe1918e8975fc0cd0c7747d318c00c0acd5"), 818_155}, // goerli arbitrum 23 777333: {common.HexToAddress("0x0000000000000000000000000000000000777333"), 50}, // unit tests 24 11155111: {common.HexToAddress("0xec21ebe1918e8975fc0cd0c7747d318c00c0acd5"), 4_366_506}, // sepolia 25 421614: {common.HexToAddress("0xec21Ebe1918E8975FC0CD0c7747D318C00C0aCd5"), 553_947}, // sepolia arbitrum 26 11155420: {common.HexToAddress("0xec21ebe1918e8975fc0cd0c7747d318c00c0acd5"), 7_362_011}, // sepolia optimism 27 } 28 29 func ContractAddress(chainID uint64) (common.Address, error) { 30 contract, exists := contractDataByChainID[chainID] 31 if !exists { 32 return *new(common.Address), errorNotAvailableOnChainID 33 } 34 return contract.Address, nil 35 } 36 37 func ContractCreatedAt(chainID uint64) (uint, error) { 38 contract, exists := contractDataByChainID[chainID] 39 if !exists { 40 return 0, errorNotAvailableOnChainID 41 } 42 return contract.CreatedAtBlock, nil 43 }