diff --git a/Shared/Supporting Files/ethereum-networks.json b/Shared/Supporting Files/ethereum-networks.json new file mode 100644 index 00000000..24607ba2 --- /dev/null +++ b/Shared/Supporting Files/ethereum-networks.json @@ -0,0 +1,908 @@ +[ + { + "icon" : "ethereum", + "networkId" : 1, + "shortName" : "eth", + "chainId" : 1, + "slip44" : 60, + "ens" : { + "registry" : "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" + }, + "name" : "Ethereum Mainnet", + "explorers" : [ + { + "name" : "etherscan", + "url" : "https:\/\/etherscan.io", + "standard" : "EIP3091" + }, + { + "url" : "https:\/\/eth.blockscout.com", + "standard" : "EIP3091", + "name" : "blockscout" + }, + { + "name" : "dexguru", + "url" : "https:\/\/ethereum.dex.guru", + "standard" : "EIP3091" + } + ], + "chain" : "ETH", + "faucets" : [ + + ], + "nativeCurrency" : { + "decimals" : 18, + "symbol" : "ETH", + "name" : "Ether" + }, + "features" : [ + { + "name" : "EIP155" + }, + { + "name" : "EIP1559" + } + ], + "infoURL" : "https:\/\/ethereum.org", + "rpc" : [ + "https:\/\/mainnet.infura.io\/v3\/${INFURA_API_KEY}", + "wss:\/\/mainnet.infura.io\/ws\/v3\/${INFURA_API_KEY}", + "https:\/\/api.mycryptoapi.com\/eth", + "https:\/\/cloudflare-eth.com", + "https:\/\/ethereum.publicnode.com", + "wss:\/\/ethereum.publicnode.com", + "https:\/\/mainnet.gateway.tenderly.co", + "wss:\/\/mainnet.gateway.tenderly.co", + "https:\/\/rpc.blocknative.com\/boost", + "https:\/\/rpc.flashbots.net", + "https:\/\/rpc.flashbots.net\/fast", + "https:\/\/rpc.mevblocker.io", + "https:\/\/rpc.mevblocker.io\/fast", + "https:\/\/rpc.mevblocker.io\/noreverts", + "https:\/\/rpc.mevblocker.io\/fullprivacy" + ] + }, + { + "rpc" : [ + "https:\/\/goerli.infura.io\/v3\/${INFURA_API_KEY}", + "wss:\/\/goerli.infura.io\/v3\/${INFURA_API_KEY}", + "https:\/\/rpc.goerli.mudit.blog\/", + "https:\/\/ethereum-goerli.publicnode.com", + "wss:\/\/ethereum-goerli.publicnode.com", + "https:\/\/goerli.gateway.tenderly.co", + "wss:\/\/goerli.gateway.tenderly.co" + ], + "name" : "Goerli", + "chainId" : 5, + "explorers" : [ + { + "url" : "https:\/\/goerli.etherscan.io", + "standard" : "EIP3091", + "name" : "etherscan-goerli" + }, + { + "name" : "blockscout-goerli", + "url" : "https:\/\/eth-goerli.blockscout.com", + "standard" : "EIP3091" + } + ], + "networkId" : 5, + "faucets" : [ + "http:\/\/fauceth.komputing.org?chain=5&address=${ADDRESS}", + "https:\/\/goerli-faucet.slock.it?address=${ADDRESS}", + "https:\/\/faucet.goerli.mudit.blog" + ], + "infoURL" : "https:\/\/goerli.net\/#about", + "ens" : { + "registry" : "0x112234455c3a32fd11230c42e7bccd4a84e02010" + }, + "nativeCurrency" : { + "name" : "Goerli Ether", + "symbol" : "ETH", + "decimals" : 18 + }, + "title" : "Ethereum Testnet Goerli", + "chain" : "ETH", + "shortName" : "gor" + }, + { + "rpc" : [ + "https:\/\/mainnet.optimism.io", + "https:\/\/optimism.publicnode.com", + "wss:\/\/optimism.publicnode.com", + "https:\/\/optimism.gateway.tenderly.co", + "wss:\/\/optimism.gateway.tenderly.co" + ], + "chainId" : 10, + "nativeCurrency" : { + "name" : "Ether", + "symbol" : "ETH", + "decimals" : 18 + }, + "networkId" : 10, + "name" : "OP Mainnet", + "shortName" : "oeth", + "faucets" : [ + + ], + "chain" : "ETH", + "explorers" : [ + { + "standard" : "EIP3091", + "name" : "etherscan", + "url" : "https:\/\/optimistic.etherscan.io" + }, + { + "url" : "https:\/\/optimism.blockscout.com", + "name" : "blockscout", + "standard" : "EIP3091" + }, + { + "standard" : "EIP3091", + "name" : "dexguru", + "url" : "https:\/\/optimism.dex.guru" + } + ], + "infoURL" : "https:\/\/optimism.io" + }, + { + "nativeCurrency" : { + "decimals" : 18, + "name" : "BNB Chain Native Token", + "symbol" : "BNB" + }, + "slip44" : 714, + "explorers" : [ + { + "url" : "https:\/\/bscscan.com", + "standard" : "EIP3091", + "name" : "bscscan" + }, + { + "url" : "https:\/\/bnb.dex.guru", + "name" : "dexguru", + "standard" : "EIP3091" + } + ], + "shortName" : "bnb", + "chainId" : 56, + "infoURL" : "https:\/\/www.bnbchain.org\/en", + "networkId" : 56, + "rpc" : [ + "https:\/\/bsc-dataseed1.bnbchain.org", + "https:\/\/bsc-dataseed2.bnbchain.org", + "https:\/\/bsc-dataseed3.bnbchain.org", + "https:\/\/bsc-dataseed4.bnbchain.org", + "https:\/\/bsc-dataseed1.defibit.io", + "https:\/\/bsc-dataseed2.defibit.io", + "https:\/\/bsc-dataseed3.defibit.io", + "https:\/\/bsc-dataseed4.defibit.io", + "https:\/\/bsc-dataseed1.ninicoin.io", + "https:\/\/bsc-dataseed2.ninicoin.io", + "https:\/\/bsc-dataseed3.ninicoin.io", + "https:\/\/bsc-dataseed4.ninicoin.io", + "https:\/\/bsc.publicnode.com", + "wss:\/\/bsc.publicnode.com", + "wss:\/\/bsc-ws-node.nariox.org" + ], + "name" : "BNB Smart Chain Mainnet", + "chain" : "BSC", + "faucets" : [ + + ] + }, + { + "shortName" : "okov", + "nativeCurrency" : { + "name" : "Kovan Ether", + "symbol" : "ETH", + "decimals" : 18 + }, + "chainId" : 69, + "explorers" : [ + { + "standard" : "EIP3091", + "url" : "https:\/\/kovan-optimistic.etherscan.io", + "name" : "etherscan" + } + ], + "networkId" : 69, + "faucets" : [ + "http:\/\/fauceth.komputing.org?chain=69&address=${ADDRESS}" + ], + "title" : "Optimism Testnet Kovan", + "rpc" : [ + "https:\/\/kovan.optimism.io\/" + ], + "infoURL" : "https:\/\/optimism.io", + "chain" : "ETH", + "name" : "Optimism Kovan" + }, + { + "rpc" : [ + "https:\/\/data-seed-prebsc-1-s1.bnbchain.org:8545", + "https:\/\/data-seed-prebsc-2-s1.bnbchain.org:8545", + "https:\/\/data-seed-prebsc-1-s2.bnbchain.org:8545", + "https:\/\/data-seed-prebsc-2-s2.bnbchain.org:8545", + "https:\/\/data-seed-prebsc-1-s3.bnbchain.org:8545", + "https:\/\/data-seed-prebsc-2-s3.bnbchain.org:8545", + "https:\/\/bsc-testnet.publicnode.com", + "wss:\/\/bsc-testnet.publicnode.com" + ], + "explorers" : [ + { + "name" : "bscscan-testnet", + "url" : "https:\/\/testnet.bscscan.com", + "standard" : "EIP3091" + } + ], + "chainId" : 97, + "shortName" : "bnbt", + "faucets" : [ + "https:\/\/testnet.bnbchain.org\/faucet-smart" + ], + "networkId" : 97, + "name" : "BNB Smart Chain Testnet", + "chain" : "BSC", + "infoURL" : "https:\/\/www.bnbchain.org\/en", + "nativeCurrency" : { + "symbol" : "tBNB", + "name" : "BNB Chain Native Token", + "decimals" : 18 + } + }, + { + "nativeCurrency" : { + "symbol" : "XDAI", + "decimals" : 18, + "name" : "xDAI" + }, + "rpc" : [ + "https:\/\/rpc.gnosischain.com", + "https:\/\/rpc.gnosis.gateway.fm", + "https:\/\/rpc.ankr.com\/gnosis", + "https:\/\/gnosischain-rpc.gateway.pokt.network", + "https:\/\/gnosis-mainnet.public.blastapi.io", + "https:\/\/gnosis.api.onfinality.io\/public", + "https:\/\/gnosis.blockpi.network\/v1\/rpc\/public", + "https:\/\/web3endpoints.com\/gnosischain-mainnet", + "https:\/\/gnosis.oat.farm", + "wss:\/\/rpc.gnosischain.com\/wss", + "https:\/\/gnosis.publicnode.com", + "wss:\/\/gnosis.publicnode.com" + ], + "name" : "Gnosis", + "shortName" : "gno", + "icon" : "gnosis", + "chain" : "GNO", + "slip44" : 700, + "faucets" : [ + "https:\/\/gnosisfaucet.com", + "https:\/\/stakely.io\/faucet\/gnosis-chain-xdai", + "https:\/\/faucet.prussia.dev\/xdai" + ], + "explorers" : [ + { + "standard" : "EIP3091", + "name" : "gnosisscan", + "url" : "https:\/\/gnosisscan.io" + }, + { + "standard" : "EIP3091", + "url" : "https:\/\/gnosis.blockscout.com", + "name" : "blockscout" + }, + { + "standard" : "EIP3091", + "name" : "dexguru", + "url" : "https:\/\/gnosis.dex.guru" + } + ], + "networkId" : 100, + "chainId" : 100, + "infoURL" : "https:\/\/docs.gnosischain.com" + }, + { + "rpc" : [ + "https:\/\/polygon-rpc.com\/", + "https:\/\/rpc-mainnet.matic.network", + "https:\/\/matic-mainnet.chainstacklabs.com", + "https:\/\/rpc-mainnet.maticvigil.com", + "https:\/\/rpc-mainnet.matic.quiknode.pro", + "https:\/\/matic-mainnet-full-rpc.bwarelabs.com", + "https:\/\/polygon-bor.publicnode.com", + "wss:\/\/polygon-bor.publicnode.com", + "https:\/\/polygon.gateway.tenderly.co", + "wss:\/\/polygon.gateway.tenderly.co" + ], + "chainId" : 137, + "icon" : "polygon", + "name" : "Polygon Mainnet", + "chain" : "Polygon", + "explorers" : [ + { + "url" : "https:\/\/polygonscan.com", + "standard" : "EIP3091", + "name" : "polygonscan" + }, + { + "url" : "https:\/\/polygon.dex.guru", + "name" : "dexguru", + "standard" : "EIP3091" + } + ], + "networkId" : 137, + "slip44" : 966, + "shortName" : "matic", + "infoURL" : "https:\/\/polygon.technology\/", + "nativeCurrency" : { + "name" : "MATIC", + "decimals" : 18, + "symbol" : "MATIC" + }, + "faucets" : [ + + ] + }, + { + "chainId" : 250, + "shortName" : "ftm", + "explorers" : [ + { + "url" : "https:\/\/ftmscan.com", + "standard" : "EIP3091", + "name" : "ftmscan" + }, + { + "name" : "dexguru", + "url" : "https:\/\/fantom.dex.guru", + "standard" : "EIP3091" + } + ], + "icon" : "fantom", + "chain" : "FTM", + "name" : "Fantom Opera", + "faucets" : [ + + ], + "nativeCurrency" : { + "symbol" : "FTM", + "name" : "Fantom", + "decimals" : 18 + }, + "networkId" : 250, + "rpc" : [ + "https:\/\/rpc.ftm.tools", + "https:\/\/fantom.publicnode.com", + "wss:\/\/fantom.publicnode.com" + ], + "infoURL" : "https:\/\/fantom.foundation" + }, + { + "infoURL" : "https:\/\/docs.fantom.foundation\/quick-start\/short-guide#fantom-testnet", + "chain" : "FTM", + "nativeCurrency" : { + "name" : "Fantom", + "decimals" : 18, + "symbol" : "FTM" + }, + "rpc" : [ + "https:\/\/rpc.testnet.fantom.network", + "https:\/\/fantom-testnet.publicnode.com", + "wss:\/\/fantom-testnet.publicnode.com" + ], + "chainId" : 4002, + "shortName" : "tftm", + "faucets" : [ + "https:\/\/faucet.fantom.network" + ], + "explorers" : [ + { + "url" : "https:\/\/testnet.ftmscan.com", + "standard" : "EIP3091", + "name" : "ftmscan" + } + ], + "name" : "Fantom Testnet", + "networkId" : 4002, + "icon" : "fantom" + }, + { + "name" : "Klaytn Mainnet Cypress", + "slip44" : 8217, + "nativeCurrency" : { + "symbol" : "KLAY", + "decimals" : 18, + "name" : "KLAY" + }, + "networkId" : 8217, + "faucets" : [ + + ], + "infoURL" : "https:\/\/www.klaytn.com\/", + "chainId" : 8217, + "chain" : "KLAY", + "explorers" : [ + { + "name" : "Klaytnscope", + "url" : "https:\/\/scope.klaytn.com", + "standard" : "none" + } + ], + "rpc" : [ + "https:\/\/public-node-api.klaytnapi.com\/v1\/cypress" + ], + "shortName" : "Cypress" + }, + { + "chainId" : 8453, + "networkId" : 8453, + "name" : "Base", + "shortName" : "base", + "chain" : "ETH", + "rpc" : [ + "https:\/\/mainnet.base.org\/", + "https:\/\/developer-access-mainnet.base.org\/", + "https:\/\/base.gateway.tenderly.co", + "wss:\/\/base.gateway.tenderly.co", + "https:\/\/base.publicnode.com", + "wss:\/\/base.publicnode.com" + ], + "status" : "active", + "infoURL" : "https:\/\/base.org", + "faucets" : [ + + ], + "icon" : "base", + "explorers" : [ + { + "name" : "basescan", + "url" : "https:\/\/basescan.org", + "standard" : "none" + }, + { + "name" : "basescout", + "url" : "https:\/\/base.blockscout.com", + "standard" : "EIP3091" + }, + { + "standard" : "EIP3091", + "name" : "dexguru", + "url" : "https:\/\/base.dex.guru" + } + ], + "nativeCurrency" : { + "symbol" : "ETH", + "decimals" : 18, + "name" : "Ether" + } + }, + { + "name" : "Arbitrum One", + "explorers" : [ + { + "url" : "https:\/\/arbiscan.io", + "standard" : "EIP3091", + "name" : "Arbiscan" + }, + { + "name" : "Arbitrum Explorer", + "url" : "https:\/\/explorer.arbitrum.io", + "standard" : "EIP3091" + }, + { + "standard" : "EIP3091", + "url" : "https:\/\/arbitrum.dex.guru", + "name" : "dexguru" + } + ], + "parent" : { + "chain" : "eip155-1", + "bridges" : [ + { + "url" : "https:\/\/bridge.arbitrum.io" + } + ], + "type" : "L2" + }, + "rpc" : [ + "https:\/\/arbitrum-mainnet.infura.io\/v3\/${INFURA_API_KEY}", + "https:\/\/arb-mainnet.g.alchemy.com\/v2\/${ALCHEMY_API_KEY}", + "https:\/\/arb1.arbitrum.io\/rpc", + "https:\/\/arbitrum-one.publicnode.com", + "wss:\/\/arbitrum-one.publicnode.com" + ], + "faucets" : [ + + ], + "shortName" : "arb1", + "infoURL" : "https:\/\/arbitrum.io", + "chain" : "ETH", + "nativeCurrency" : { + "decimals" : 18, + "name" : "Ether", + "symbol" : "ETH" + }, + "networkId" : 42161, + "chainId" : 42161 + }, + { + "networkId" : 42220, + "chainId" : 42220, + "rpc" : [ + "https:\/\/forno.celo.org", + "wss:\/\/forno.celo.org\/ws" + ], + "shortName" : "celo", + "infoURL" : "https:\/\/docs.celo.org\/", + "explorers" : [ + { + "name" : "Celoscan", + "standard" : "EIP3091", + "url" : "https:\/\/celoscan.io" + }, + { + "standard" : "none", + "url" : "https:\/\/explorer.celo.org", + "name" : "blockscout" + } + ], + "faucets" : [ + + ], + "name" : "Celo Mainnet", + "chain" : "CELO", + "nativeCurrency" : { + "symbol" : "CELO", + "name" : "CELO", + "decimals" : 18 + } + }, + { + "shortName" : "Fuji", + "infoURL" : "https:\/\/cchain.explorer.avax-test.network", + "icon" : "avax", + "explorers" : [ + { + "url" : "https:\/\/testnet.snowtrace.io", + "name" : "snowtrace", + "standard" : "EIP3091" + } + ], + "chain" : "AVAX", + "name" : "Avalanche Fuji Testnet", + "chainId" : 43113, + "faucets" : [ + "https:\/\/faucet.avax-test.network\/" + ], + "nativeCurrency" : { + "symbol" : "AVAX", + "decimals" : 18, + "name" : "Avalanche" + }, + "rpc" : [ + "https:\/\/api.avax-test.network\/ext\/bc\/C\/rpc", + "https:\/\/avalanche-fuji-c-chain.publicnode.com", + "wss:\/\/avalanche-fuji-c-chain.publicnode.com" + ], + "networkId" : 1 + }, + { + "chain" : "AVAX", + "infoURL" : "https:\/\/www.avax.network\/", + "rpc" : [ + "https:\/\/api.avax.network\/ext\/bc\/C\/rpc", + "https:\/\/avalanche-c-chain.publicnode.com", + "wss:\/\/avalanche-c-chain.publicnode.com" + ], + "nativeCurrency" : { + "symbol" : "AVAX", + "name" : "Avalanche", + "decimals" : 18 + }, + "chainId" : 43114, + "shortName" : "avax", + "features" : [ + { + "name" : "EIP1559" + } + ], + "name" : "Avalanche C-Chain", + "slip44" : 9005, + "networkId" : 43114, + "explorers" : [ + { + "name" : "snowtrace", + "standard" : "EIP3091", + "url" : "https:\/\/snowtrace.io" + } + ], + "icon" : "avax", + "faucets" : [ + + ] + }, + { + "rpc" : [ + "https:\/\/rpc-mumbai.maticvigil.com", + "https:\/\/polygon-mumbai-bor.publicnode.com", + "wss:\/\/polygon-mumbai-bor.publicnode.com", + "https:\/\/polygon-mumbai.gateway.tenderly.co", + "wss:\/\/polygon-mumbai.gateway.tenderly.co" + ], + "chainId" : 80001, + "networkId" : 80001, + "shortName" : "maticmum", + "faucets" : [ + "https:\/\/faucet.polygon.technology\/" + ], + "name" : "Mumbai", + "nativeCurrency" : { + "decimals" : 18, + "symbol" : "MATIC", + "name" : "MATIC" + }, + "chain" : "Polygon", + "infoURL" : "https:\/\/polygon.technology\/", + "title" : "Polygon Testnet Mumbai", + "icon" : "polygon", + "explorers" : [ + { + "name" : "polygonscan", + "standard" : "EIP3091", + "url" : "https:\/\/mumbai.polygonscan.com" + } + ] + }, + { + "rpc" : [ + "https:\/\/rinkeby.arbitrum.io\/rpc" + ], + "explorers" : [ + { + "url" : "https:\/\/testnet.arbiscan.io", + "standard" : "EIP3091", + "name" : "arbiscan-testnet" + }, + { + "url" : "https:\/\/rinkeby-explorer.arbitrum.io", + "name" : "arbitrum-rinkeby", + "standard" : "EIP3091" + } + ], + "infoURL" : "https:\/\/arbitrum.io", + "nativeCurrency" : { + "name" : "Arbitrum Rinkeby Ether", + "symbol" : "ETH", + "decimals" : 18 + }, + "shortName" : "arb-rinkeby", + "faucets" : [ + "http:\/\/fauceth.komputing.org?chain=421611&address=${ADDRESS}" + ], + "title" : "Arbitrum Testnet Rinkeby", + "networkId" : 421611, + "parent" : { + "chain" : "eip155-4", + "bridges" : [ + { + "url" : "https:\/\/bridge.arbitrum.io" + } + ], + "type" : "L2" + }, + "name" : "Arbitrum Rinkeby", + "chain" : "ETH", + "chainId" : 421611 + }, + { + "networkId" : 534351, + "name" : "Scroll Sepolia Testnet", + "chain" : "ETH", + "rpc" : [ + "https:\/\/sepolia-rpc.scroll.io", + "https:\/\/rpc.ankr.com\/scroll_sepolia_testnet", + "https:\/\/scroll-sepolia.chainstacklabs.com", + "https:\/\/scroll-testnet-public.unifra.io" + ], + "chainId" : 534351, + "explorers" : [ + { + "name" : "Scroll Sepolia Etherscan", + "url" : "https:\/\/sepolia.scrollscan.dev", + "standard" : "EIP3091" + }, + { + "standard" : "EIP3091", + "name" : "Scroll Sepolia Blockscout", + "url" : "https:\/\/sepolia-blockscout.scroll.io" + } + ], + "infoURL" : "https:\/\/scroll.io", + "shortName" : "scr-sepolia", + "faucets" : [ + + ], + "nativeCurrency" : { + "decimals" : 18, + "symbol" : "ETH", + "name" : "Ether" + }, + "parent" : { + "bridges" : [ + { + "url" : "https:\/\/scroll.io\/bridge" + } + ], + "type" : "L2", + "chain" : "eip155-11155111" + }, + "status" : "active" + }, + { + "rpc" : [ + "https:\/\/rpc.scroll.io", + "https:\/\/rpc-scroll.icecreamswap.com", + "https:\/\/rpc.ankr.com\/scroll", + "https:\/\/scroll-mainnet.chainstacklabs.com" + ], + "shortName" : "scr", + "infoURL" : "https:\/\/scroll.io", + "name" : "Scroll", + "nativeCurrency" : { + "symbol" : "ETH", + "decimals" : 18, + "name" : "Ether" + }, + "parent" : { + "bridges" : [ + { + "url" : "https:\/\/scroll.io\/bridge" + } + ], + "chain" : "eip155-1", + "type" : "L2" + }, + "chainId" : 534352, + "status" : "active", + "networkId" : 534352, + "explorers" : [ + { + "name" : "Scrollscan", + "url" : "https:\/\/scrollscan.com", + "standard" : "EIP3091" + }, + { + "standard" : "EIP3091", + "name" : "Blockscout", + "url" : "https:\/\/blockscout.scroll.io" + } + ], + "chain" : "ETH", + "faucets" : [ + + ] + }, + { + "faucets" : [ + + ], + "chain" : "ETH", + "infoURL" : "https:\/\/zora.energy", + "nativeCurrency" : { + "symbol" : "ETH", + "name" : "Ether", + "decimals" : 18 + }, + "networkId" : 7777777, + "name" : "Zora", + "explorers" : [ + { + "name" : "Zora Network Explorer", + "standard" : "EIP3091", + "url" : "https:\/\/explorer.zora.energy" + } + ], + "rpc" : [ + "https:\/\/rpc.zora.energy\/" + ], + "icon" : "zora", + "chainId" : 7777777, + "shortName" : "zora" + }, + { + "chain" : "Solana", + "rpc" : [ + "https:\/\/devnet.neonevm.org" + ], + "faucets" : [ + "https:\/\/neonfaucet.org" + ], + "nativeCurrency" : { + "name" : "Neon", + "symbol" : "NEON", + "decimals" : 18 + }, + "networkId" : 245022926, + "name" : "Neon EVM DevNet", + "icon" : "neon", + "chainId" : 245022926, + "explorers" : [ + { + "name" : "native", + "url" : "https:\/\/devnet.explorer.neon-labs.org", + "standard" : "EIP3091" + }, + { + "name" : "neonscan", + "url" : "https:\/\/devnet.neonscan.org", + "standard" : "EIP3091" + }, + { + "url" : "https:\/\/neon-devnet.blockscout.com", + "name" : "blockscout", + "standard" : "EIP3091" + } + ], + "shortName" : "neonevm-devnet", + "infoURL" : "https:\/\/neon-labs.org" + }, + { + "chainId" : 245022934, + "name" : "Neon EVM MainNet", + "infoURL" : "https:\/\/neonevm.org", + "explorers" : [ + { + "url" : "https:\/\/neonscan.org", + "standard" : "EIP3091", + "name" : "neonscan" + }, + { + "standard" : "EIP3091", + "url" : "https:\/\/neon.blockscout.com", + "name" : "native" + } + ], + "chain" : "Solana", + "shortName" : "neonevm-mainnet", + "faucets" : [ + + ], + "networkId" : 245022934, + "rpc" : [ + + ], + "nativeCurrency" : { + "name" : "Neon", + "decimals" : 18, + "symbol" : "NEON" + }, + "icon" : "neon" + }, + { + "networkId" : 1313161554, + "name" : "Aurora Mainnet", + "explorers" : [ + { + "name" : "aurorascan.dev", + "url" : "https:\/\/aurorascan.dev", + "standard" : "EIP3091" + } + ], + "chainId" : 1313161554, + "faucets" : [ + + ], + "chain" : "NEAR", + "infoURL" : "https:\/\/aurora.dev", + "rpc" : [ + "https:\/\/mainnet.aurora.dev" + ], + "shortName" : "aurora", + "nativeCurrency" : { + "name" : "Ether", + "decimals" : 18, + "symbol" : "ETH" + } + } +] \ No newline at end of file diff --git a/Tokenary.xcodeproj/project.pbxproj b/Tokenary.xcodeproj/project.pbxproj index c0e99fba..75b06f9e 100644 --- a/Tokenary.xcodeproj/project.pbxproj +++ b/Tokenary.xcodeproj/project.pbxproj @@ -140,6 +140,8 @@ 2C96D3A62763CCA000687301 /* Images.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C96D3A52763CCA000687301 /* Images.swift */; }; 2C96D3A92763D13400687301 /* DataStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C96D3A72763D13400687301 /* DataStateView.swift */; }; 2C96D3AA2763D13400687301 /* DataStateView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2C96D3A82763D13400687301 /* DataStateView.xib */; }; + 2C9931DC2AEEC0E200577C8A /* EthereumNetworksList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9931DB2AEEC0E200577C8A /* EthereumNetworksList.swift */; }; + 2C9931DD2AEEC0E200577C8A /* EthereumNetworksList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9931DB2AEEC0E200577C8A /* EthereumNetworksList.swift */; }; 2C9F0B6826BDCB2E008FA3D6 /* EthereumNetwork.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C9F0B6726BDCB2E008FA3D6 /* EthereumNetwork.swift */; }; 2CAA412526C7CD93009F3535 /* ReviewRequester.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CAA412426C7CD93009F3535 /* ReviewRequester.swift */; }; 2CB3845A27654EA900A189B9 /* _locales in Resources */ = {isa = PBXBuildFile; fileRef = 2CB3845827654E9700A189B9 /* _locales */; }; @@ -180,6 +182,8 @@ 2CE0594527640EF10042D844 /* ResponseToExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C773F61274523DC007B04E7 /* ResponseToExtension.swift */; }; 2CE0594627640F470042D844 /* UserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CC89470269A334A00879245 /* UserDefaults.swift */; }; 2CE3D012267F73C00032A62E /* Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE3D011267F73C00032A62E /* Transaction.swift */; }; + 2CED86A52AF00BC9006F9E26 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CED86A42AF00BC9006F9E26 /* main.swift */; }; + 2CED86B02AF0167F006F9E26 /* EIP155ChainData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CED86AF2AF0167F006F9E26 /* EIP155ChainData.swift */; }; 2CEFEB16274D5DCA00CE23BD /* inpage.js in Resources */ = {isa = PBXBuildFile; fileRef = 2CEFEB15274D5DC900CE23BD /* inpage.js */; }; 2CF25597275A46D300AE54B9 /* Defaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C528A15267FA8EB00CA3ADD /* Defaults.swift */; }; 2CF25598275A46D600AE54B9 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C901C492689F01700D0926A /* Strings.swift */; }; @@ -355,6 +359,7 @@ 2C96D3A52763CCA000687301 /* Images.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Images.swift; sourceTree = ""; }; 2C96D3A72763D13400687301 /* DataStateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataStateView.swift; sourceTree = ""; }; 2C96D3A82763D13400687301 /* DataStateView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = DataStateView.xib; sourceTree = ""; }; + 2C9931DB2AEEC0E200577C8A /* EthereumNetworksList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthereumNetworksList.swift; sourceTree = ""; }; 2C9F0B6726BDCB2E008FA3D6 /* EthereumNetwork.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EthereumNetwork.swift; sourceTree = ""; }; 2CAA412426C7CD93009F3535 /* ReviewRequester.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewRequester.swift; sourceTree = ""; }; 2CB3844327654BF600A189B9 /* error.js */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.javascript; name = error.js; path = "web3-provider/error.js"; sourceTree = ""; }; @@ -389,6 +394,10 @@ 2CE059482764169E0042D844 /* Tokenary iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Tokenary iOS.entitlements"; sourceTree = ""; }; 2CE0594B2764DF9A0042D844 /* Safari iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Safari iOS.entitlements"; sourceTree = ""; }; 2CE3D011267F73C00032A62E /* Transaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Transaction.swift; sourceTree = ""; }; + 2CED86A22AF00BC9006F9E26 /* tools */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tools; sourceTree = BUILT_PRODUCTS_DIR; }; + 2CED86A42AF00BC9006F9E26 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + 2CED86A92AF00F56006F9E26 /* ethereum-networks.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "ethereum-networks.json"; sourceTree = ""; }; + 2CED86AF2AF0167F006F9E26 /* EIP155ChainData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EIP155ChainData.swift; sourceTree = ""; }; 2CEFEB15274D5DC900CE23BD /* inpage.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = inpage.js; sourceTree = ""; }; 2CF255B3275A744000AE54B9 /* PasswordViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasswordViewController.swift; sourceTree = ""; }; 2CF255B5275A746000AE54B9 /* AccountsListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsListViewController.swift; sourceTree = ""; }; @@ -435,6 +444,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2CED869F2AF00BC9006F9E26 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -483,6 +499,7 @@ 2CCEB7A227592A3800768473 /* Safari Shared */, 2C09CBA0273979C1009AD39B /* Safari macOS */, 2CCEB82E27594E2A00768473 /* Safari iOS */, + 2CED86A32AF00BC9006F9E26 /* tools */, 2C19953D2674C4B900A8E370 /* Products */, FB5786212D81829B0FADBD25 /* Pods */, 2A7484A18D772B4233D171DA /* Frameworks */, @@ -496,6 +513,7 @@ 2C5FF96F26C84F7B00B32ACC /* Tokenary iOS.app */, 2C09CB9F273979C1009AD39B /* Safari macOS.appex */, 2CCEB82D27594E2A00768473 /* Safari iOS.appex */, + 2CED86A22AF00BC9006F9E26 /* tools */, ); name = Products; sourceTree = ""; @@ -749,6 +767,7 @@ isa = PBXGroup; children = ( 2C901C492689F01700D0926A /* Strings.swift */, + 2C9931DB2AEEC0E200577C8A /* EthereumNetworksList.swift */, 2CDD86F72AE3295600F33F95 /* Secrets.swift */, 2C528A15267FA8EB00CA3ADD /* Defaults.swift */, 2C8A09C2267513A700993638 /* Ethereum */, @@ -808,6 +827,15 @@ path = Wallets; sourceTree = ""; }; + 2CED86A32AF00BC9006F9E26 /* tools */ = { + isa = PBXGroup; + children = ( + 2CED86A42AF00BC9006F9E26 /* main.swift */, + 2CED86AF2AF0167F006F9E26 /* EIP155ChainData.swift */, + ); + path = tools; + sourceTree = ""; + }; 2CF25596275A468B00AE54B9 /* Models */ = { isa = PBXGroup; children = ( @@ -854,6 +882,7 @@ 2CF255AF275A490600AE54B9 /* Supporting Files */ = { isa = PBXGroup; children = ( + 2CED86A92AF00F56006F9E26 /* ethereum-networks.json */, 2C4768AD2826ECE5005E8D4D /* SharedAssets.xcassets */, ); path = "Supporting Files"; @@ -962,13 +991,29 @@ productReference = 2CCEB82D27594E2A00768473 /* Safari iOS.appex */; productType = "com.apple.product-type.app-extension"; }; + 2CED86A12AF00BC9006F9E26 /* tools */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2CED86A82AF00BC9006F9E26 /* Build configuration list for PBXNativeTarget "tools" */; + buildPhases = ( + 2CED869E2AF00BC9006F9E26 /* Sources */, + 2CED869F2AF00BC9006F9E26 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = tools; + productName = tools; + productReference = 2CED86A22AF00BC9006F9E26 /* tools */; + productType = "com.apple.product-type.tool"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 2C1995342674C4B900A8E370 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1310; + LastSwiftUpdateCheck = 1500; LastUpgradeCheck = 1240; TargetAttributes = { 2C09CB9E273979C1009AD39B = { @@ -983,6 +1028,9 @@ 2CCEB82C27594E2A00768473 = { CreatedOnToolsVersion = 13.1; }; + 2CED86A12AF00BC9006F9E26 = { + CreatedOnToolsVersion = 15.0.1; + }; }; }; buildConfigurationList = 2C1995372674C4B900A8E370 /* Build configuration list for PBXProject "Tokenary" */; @@ -1002,6 +1050,7 @@ 2C5FF96E26C84F7B00B32ACC /* Tokenary iOS */, 2C09CB9E273979C1009AD39B /* Safari macOS */, 2CCEB82C27594E2A00768473 /* Safari iOS */, + 2CED86A12AF00BC9006F9E26 /* tools */, ); }; /* End PBXProject section */ @@ -1271,6 +1320,7 @@ 2C264BEB27B6B50700234393 /* DappRequestProcessor.swift in Sources */, 2CE3D012267F73C00032A62E /* Transaction.swift in Sources */, 2C90E62227B2ED2D00C8991E /* SafariRequest+Helpers.swift in Sources */, + 2C9931DC2AEEC0E200577C8A /* EthereumNetworksList.swift in Sources */, 2C09FC662828331D00DE9C27 /* Image.swift in Sources */, 2C73215A2AEE8F5200AA8A71 /* ConfigurationService.swift in Sources */, 2C8A09EB2675964700993638 /* ApproveViewController.swift in Sources */, @@ -1291,6 +1341,7 @@ 2CF255BA275A749300AE54B9 /* ApproveViewController.swift in Sources */, 2C3024FD28C1193100C304ED /* TokenaryAccount.swift in Sources */, 2C96D3962762380400687301 /* ButtonWithExtendedArea.swift in Sources */, + 2C9931DD2AEEC0E200577C8A /* EthereumNetworksList.swift in Sources */, 2C264BC227B2F2C100234393 /* EthereumSafariRequest.swift in Sources */, 2CE059372763D60A0042D844 /* KeyboardObserver.swift in Sources */, 2CF255A0275A47DD00AE54B9 /* Bundle.swift in Sources */, @@ -1380,6 +1431,15 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2CED869E2AF00BC9006F9E26 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2CED86B02AF0167F006F9E26 /* EIP155ChainData.swift in Sources */, + 2CED86A52AF00BC9006F9E26 /* main.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -1790,6 +1850,41 @@ }; name = Release; }; + 2CED86A62AF00BC9006F9E26 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = XWNXDSM6BU; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 2CED86A72AF00BC9006F9E26 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = XWNXDSM6BU; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -1838,6 +1933,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 2CED86A82AF00BC9006F9E26 /* Build configuration list for PBXNativeTarget "tools" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2CED86A62AF00BC9006F9E26 /* Debug */, + 2CED86A72AF00BC9006F9E26 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 2C1995342674C4B900A8E370 /* Project object */; diff --git a/Tokenary.xcodeproj/xcshareddata/xcschemes/tools.xcscheme b/Tokenary.xcodeproj/xcshareddata/xcschemes/tools.xcscheme new file mode 100644 index 00000000..6756cc37 --- /dev/null +++ b/Tokenary.xcodeproj/xcshareddata/xcschemes/tools.xcscheme @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ethereum-networks.json b/ethereum-networks.json new file mode 100644 index 00000000..a1e5fb2b --- /dev/null +++ b/ethereum-networks.json @@ -0,0 +1,3 @@ +{ + "key" : "new value" +} \ No newline at end of file diff --git a/tools/EIP155ChainData.swift b/tools/EIP155ChainData.swift new file mode 100644 index 00000000..ea9fdc26 --- /dev/null +++ b/tools/EIP155ChainData.swift @@ -0,0 +1,63 @@ +// Copyright © 2023 Tokenary. All rights reserved. + +import Foundation + +// https://github.com/ethereum-lists/chains/blob/master/tools/schema/chainSchema.json + +struct EIP155ChainData: Codable { + + let name: String // Name of the Network + let shortName: String + let chain: String + let chainId: Int + let networkId: Int + let rpc: [String] + let faucets: [String] + let infoURL: String + let nativeCurrency: NativeCurrency + + let title: String? + let icon: String? // Icon type + let features: [Feature]? + let slip44: Int? + let ens: ENS? + let explorers: [Explorer]? + let parent: Parent? + let status: String? // Chain status + let redFlags: [RedFlag]? + + struct NativeCurrency: Codable { + let name: String // Name of the Native Currency + let symbol: String // Symbol of the Native Currency + let decimals: Int // Decimal points supported + } + + struct Feature: Codable { + let name: String // Feature name - e.g. EIP155 + } + + struct ENS: Codable { + let registry: String + } + + struct Explorer: Codable { + let name: String + let url: String + let standard: String? // EIP3091 or none + } + + struct Parent: Codable { + let type: String + let chain: String + let bridges: [Bridge]? + + struct Bridge: Codable { + let url: String + } + } + + enum RedFlag: String, Codable { + case reusedChainId = "reusedChainId" + } + +} diff --git a/tools/main.swift b/tools/main.swift new file mode 100644 index 00000000..8886cbc2 --- /dev/null +++ b/tools/main.swift @@ -0,0 +1,29 @@ +// Copyright © 2023 Tokenary. All rights reserved. + +import Foundation + +let semaphore = DispatchSemaphore(value: 0) + +let projectDir = FileManager.default.currentDirectoryPath +let filePath = "\(projectDir)/Shared/Supporting Files/ethereum-networks.json" + +let mainnets = [1, 42161, 137, 10, 56, 43114, 100, 250, 42220, 1313161554, 245022934, 8453, 7777777, 8217, 534352] +let testnets = [421611, 144545313136048, 69, 5, 80001, 97, 43113, 4002, 64240, 245022926, 534351] + +func fetchChains(completion: @escaping ([EIP155ChainData]) -> Void) { + URLSession.shared.dataTask(with: URL(string: "https://chainid.network/chains.json")!) { (data, _, _) in + completion(try! JSONDecoder().decode([EIP155ChainData].self, from: data!)) + }.resume() +} + +fetchChains { chains in + let ok = Set(mainnets + testnets) + let filtered = chains.filter { ok.contains($0.chainId) } + let encoder = JSONEncoder() + encoder.outputFormatting = .prettyPrinted + let data = try! encoder.encode(filtered) + try! data.write(to: URL(fileURLWithPath: filePath)) + semaphore.signal() +} + +semaphore.wait()