@openzeppelin/ui-builder-adapter-evm 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.cts +7 -250
- package/dist/index.d.ts +7 -250
- package/dist/networks.cjs +654 -0
- package/dist/networks.cjs.map +1 -0
- package/dist/networks.d.cts +12 -0
- package/dist/networks.d.ts +12 -0
- package/dist/networks.js +649 -0
- package/dist/networks.js.map +1 -0
- package/dist/testnet-kBf1DKlb.d.cts +252 -0
- package/dist/testnet-kBf1DKlb.d.ts +252 -0
- package/package.json +9 -4
- package/src/networks.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/networks/mainnet.ts","../src/networks/testnet.ts","../src/networks/index.ts"],"sourcesContent":["import {\n NetworkArbitrumOne,\n NetworkAvalanche,\n NetworkBase,\n NetworkBinanceSmartChain,\n NetworkEthereum,\n NetworkLinea,\n NetworkOptimism,\n NetworkPolygon,\n NetworkScroll,\n NetworkZksync,\n} from '@web3icons/react';\nimport {\n arbitrum as viemArbitrum,\n avalanche as viemAvalanche,\n base as viemBase,\n bsc as viemBsc,\n linea as viemLinea,\n mainnet as viemMainnet,\n optimism as viemOptimism,\n polygon as viemPolygon,\n polygonZkEvm as viemPolygonZkEvm,\n scroll as viemScroll,\n zksync as viemZkSync,\n} from 'viem/chains';\n\nimport type { TypedEvmNetworkConfig } from '@openzeppelin/ui-builder-adapter-evm-core';\n\nexport const ethereumMainnet: TypedEvmNetworkConfig = {\n id: 'ethereum-mainnet',\n exportConstName: 'ethereumMainnet',\n name: 'Ethereum',\n ecosystem: 'evm',\n network: 'ethereum',\n type: 'mainnet',\n isTestnet: false,\n chainId: 1,\n rpcUrl: viemMainnet.rpcUrls.default.http[0],\n explorerUrl: 'https://etherscan.io',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkEthereum,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemMainnet,\n accessControlIndexerUrl: 'https://openzeppelin-ethereum-mainnet.graphql.subquery.network/',\n};\n\nexport const arbitrumMainnet: TypedEvmNetworkConfig = {\n id: 'arbitrum-mainnet',\n exportConstName: 'arbitrumMainnet',\n name: 'Arbitrum One',\n ecosystem: 'evm',\n network: 'arbitrum',\n type: 'mainnet',\n isTestnet: false,\n chainId: 42161,\n rpcUrl: viemArbitrum.rpcUrls.default.http[0],\n explorerUrl: 'https://arbiscan.io',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkArbitrumOne,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemArbitrum,\n accessControlIndexerUrl: 'https://openzeppelin-arbitrum-mainnet.graphql.subquery.network/',\n};\n\nexport const polygonMainnet: TypedEvmNetworkConfig = {\n id: 'polygon-mainnet',\n exportConstName: 'polygonMainnet',\n name: 'Polygon',\n ecosystem: 'evm',\n network: 'polygon',\n type: 'mainnet',\n isTestnet: false,\n chainId: 137,\n rpcUrl: viemPolygon.rpcUrls.default.http[0],\n explorerUrl: 'https://polygonscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkPolygon,\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18,\n },\n viemChain: viemPolygon,\n accessControlIndexerUrl: 'https://openzeppelin-polygon-mainnet.graphql.subquery.network/',\n};\n\nexport const polygonZkEvmMainnet: TypedEvmNetworkConfig = {\n id: 'polygon-zkevm-mainnet',\n exportConstName: 'polygonZkEvmMainnet',\n name: 'Polygon zkEVM',\n ecosystem: 'evm',\n network: 'polygon-zkevm',\n type: 'mainnet',\n isTestnet: false,\n chainId: 1101,\n rpcUrl: viemPolygonZkEvm.rpcUrls.default.http[0],\n explorerUrl: 'https://zkevm.polygonscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkPolygon,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemPolygonZkEvm,\n accessControlIndexerUrl: 'https://openzeppelin-polygon-zkevm-mainnet.graphql.subquery.network/',\n};\n\nexport const baseMainnet: TypedEvmNetworkConfig = {\n id: 'base-mainnet',\n exportConstName: 'baseMainnet',\n name: 'Base',\n ecosystem: 'evm',\n network: 'base',\n type: 'mainnet',\n isTestnet: false,\n chainId: 8453,\n rpcUrl: viemBase.rpcUrls.default.http[0],\n explorerUrl: 'https://basescan.org',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkBase,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemBase,\n accessControlIndexerUrl: 'https://openzeppelin-base-mainnet.graphql.subquery.network/',\n};\n\nexport const bscMainnet: TypedEvmNetworkConfig = {\n id: 'bsc-mainnet',\n exportConstName: 'bscMainnet',\n name: 'BNB Smart Chain',\n ecosystem: 'evm',\n network: 'bsc',\n type: 'mainnet',\n isTestnet: false,\n chainId: 56,\n rpcUrl: viemBsc.rpcUrls.default.http[0],\n explorerUrl: 'https://bscscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkBinanceSmartChain,\n nativeCurrency: {\n name: 'BNB',\n symbol: 'BNB',\n decimals: 18,\n },\n viemChain: viemBsc,\n accessControlIndexerUrl: 'https://openzeppelin-bsc-mainnet.graphql.subquery.network/',\n};\n\nexport const optimismMainnet: TypedEvmNetworkConfig = {\n id: 'optimism-mainnet',\n exportConstName: 'optimismMainnet',\n name: 'OP Mainnet',\n ecosystem: 'evm',\n network: 'optimism',\n type: 'mainnet',\n isTestnet: false,\n chainId: 10,\n rpcUrl: viemOptimism.rpcUrls.default.http[0],\n explorerUrl: 'https://optimistic.etherscan.io',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkOptimism,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemOptimism,\n accessControlIndexerUrl: 'https://openzeppelin-optimism-mainnet.graphql.subquery.network/',\n};\n\nexport const avalancheMainnet: TypedEvmNetworkConfig = {\n id: 'avalanche-mainnet',\n exportConstName: 'avalancheMainnet',\n name: 'Avalanche C-Chain',\n ecosystem: 'evm',\n network: 'avalanche',\n type: 'mainnet',\n isTestnet: false,\n chainId: 43114,\n rpcUrl: viemAvalanche.rpcUrls.default.http[0],\n explorerUrl: 'https://snowscan.xyz',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkAvalanche,\n nativeCurrency: {\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n },\n viemChain: viemAvalanche,\n accessControlIndexerUrl: 'https://openzeppelin-avalanche-mainnet.graphql.subquery.network/',\n};\n\n// TODO: test and setup the api and explorer config\nexport const zkSyncEraMainnet: TypedEvmNetworkConfig = {\n id: 'zksync-era-mainnet',\n exportConstName: 'zkSyncEraMainnet',\n name: 'ZkSync Era',\n ecosystem: 'evm',\n network: 'zksync-era',\n type: 'mainnet',\n isTestnet: false,\n chainId: 324,\n rpcUrl: viemZkSync.rpcUrls.default.http[0],\n explorerUrl: 'https://explorer.zksync.io',\n apiUrl: 'https://block-explorer-api.mainnet.zksync.io/api',\n primaryExplorerApiIdentifier: 'zksync-era-mainnet',\n supportsEtherscanV2: false,\n iconComponent: NetworkZksync,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemZkSync,\n accessControlIndexerUrl: 'https://openzeppelin-zksync-era-mainnet.graphql.subquery.network/',\n};\n\nexport const scrollMainnet: TypedEvmNetworkConfig = {\n id: 'scroll-mainnet',\n exportConstName: 'scrollMainnet',\n name: 'Scroll',\n ecosystem: 'evm',\n network: 'scroll',\n type: 'mainnet',\n isTestnet: false,\n chainId: 534352,\n rpcUrl: viemScroll.rpcUrls.default.http[0],\n explorerUrl: 'https://scrollscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkScroll,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemScroll,\n accessControlIndexerUrl: 'https://openzeppelin-scroll-mainnet.graphql.subquery.network/',\n};\n\nexport const lineaMainnet: TypedEvmNetworkConfig = {\n id: 'linea-mainnet',\n exportConstName: 'lineaMainnet',\n name: 'Linea',\n ecosystem: 'evm',\n network: 'linea',\n type: 'mainnet',\n isTestnet: false,\n chainId: 59144,\n rpcUrl: viemLinea.rpcUrls.default.http[0],\n explorerUrl: 'https://lineascan.build',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkLinea,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemLinea,\n accessControlIndexerUrl: 'https://openzeppelin-linea-mainnet.graphql.subquery.network/',\n};\n\n// TODO: Add other EVM mainnet networks with their public RPCs and viemChain objects\n","import {\n NetworkArbitrumOne,\n NetworkAvalanche,\n NetworkBase,\n NetworkBinanceSmartChain,\n NetworkEthereum,\n NetworkLinea,\n NetworkMonad,\n NetworkOptimism,\n NetworkPolygon,\n NetworkScroll,\n NetworkZksync,\n} from '@web3icons/react';\nimport {\n arbitrumSepolia as viemArbitrumSepolia,\n avalancheFuji as viemAvalancheFuji,\n baseSepolia as viemBaseSepolia,\n bscTestnet as viemBscTestnet,\n lineaSepolia as viemLineaSepolia,\n monadTestnet as viemMonadTestnet,\n optimismSepolia as viemOptimismSepolia,\n polygonAmoy as viemPolygonAmoy,\n polygonZkEvmCardona as viemPolygonZkEvmCardona,\n scrollSepolia as viemScrollSepolia,\n sepolia as viemSepolia,\n zksyncSepoliaTestnet as viemZkSyncSepoliaTestnet,\n} from 'viem/chains';\n\nimport type { TypedEvmNetworkConfig } from '@openzeppelin/ui-builder-adapter-evm-core';\n\nexport const ethereumSepolia: TypedEvmNetworkConfig = {\n id: 'ethereum-sepolia',\n exportConstName: 'ethereumSepolia',\n name: 'Sepolia',\n ecosystem: 'evm',\n network: 'ethereum',\n type: 'testnet',\n isTestnet: true,\n chainId: 11155111,\n rpcUrl: viemSepolia.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia.etherscan.io',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkEthereum,\n nativeCurrency: {\n name: 'Sepolia Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemSepolia,\n accessControlIndexerUrl: 'https://openzeppelin-ethereum-sepolia.graphql.subquery.network/',\n};\n\nexport const arbitrumSepolia: TypedEvmNetworkConfig = {\n id: 'arbitrum-sepolia',\n exportConstName: 'arbitrumSepolia',\n name: 'Arbitrum Sepolia',\n ecosystem: 'evm',\n network: 'arbitrum',\n type: 'testnet',\n isTestnet: true,\n chainId: 421614,\n rpcUrl: viemArbitrumSepolia.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia.arbiscan.io',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkArbitrumOne,\n nativeCurrency: {\n name: 'Arbitrum Sepolia Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemArbitrumSepolia,\n accessControlIndexerUrl: 'https://openzeppelin-arbitrum-sepolia.graphql.subquery.network/',\n};\n\nexport const polygonAmoy: TypedEvmNetworkConfig = {\n id: 'polygon-amoy',\n exportConstName: 'polygonAmoy',\n name: 'Polygon Amoy',\n ecosystem: 'evm',\n network: 'polygon',\n type: 'testnet',\n isTestnet: true,\n chainId: 80002,\n rpcUrl: viemPolygonAmoy.rpcUrls.default.http[0],\n explorerUrl: 'https://amoy.polygonscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkPolygon,\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18,\n },\n viemChain: viemPolygonAmoy,\n accessControlIndexerUrl: 'https://openzeppelin-polygon-amoy.graphql.subquery.network/',\n};\n\nexport const polygonZkEvmCardona: TypedEvmNetworkConfig = {\n id: 'polygon-zkevm-cardona',\n exportConstName: 'polygonZkEvmCardona',\n name: 'Polygon zkEVM Cardona',\n ecosystem: 'evm',\n network: 'polygon-zkevm',\n type: 'testnet',\n isTestnet: true,\n chainId: 2442,\n rpcUrl: viemPolygonZkEvmCardona.rpcUrls.default.http[0],\n explorerUrl: 'https://cardona-zkevm.polygonscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkPolygon,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemPolygonZkEvmCardona,\n accessControlIndexerUrl: 'https://openzeppelin-polygon-zkevm-cardona.graphql.subquery.network/',\n};\n\nexport const baseSepolia: TypedEvmNetworkConfig = {\n id: 'base-sepolia',\n exportConstName: 'baseSepolia',\n name: 'Base Sepolia',\n ecosystem: 'evm',\n network: 'base',\n type: 'testnet',\n isTestnet: true,\n chainId: 84532,\n rpcUrl: viemBaseSepolia.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia.basescan.org',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkBase,\n nativeCurrency: {\n name: 'Sepolia Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemBaseSepolia,\n accessControlIndexerUrl: 'https://openzeppelin-base-sepolia.graphql.subquery.network/',\n};\n\nexport const bscTestnet: TypedEvmNetworkConfig = {\n id: 'bsc-testnet',\n exportConstName: 'bscTestnet',\n name: 'BSC Testnet',\n ecosystem: 'evm',\n network: 'bsc',\n type: 'testnet',\n isTestnet: true,\n chainId: 97,\n rpcUrl: viemBscTestnet.rpcUrls.default.http[0],\n explorerUrl: 'https://testnet.bscscan.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkBinanceSmartChain,\n nativeCurrency: {\n name: 'BNB',\n symbol: 'BNB',\n decimals: 18,\n },\n viemChain: viemBscTestnet,\n accessControlIndexerUrl: 'https://openzeppelin-bsc-testnet.graphql.subquery.network/',\n};\n\nexport const optimismSepolia: TypedEvmNetworkConfig = {\n id: 'optimism-sepolia',\n exportConstName: 'optimismSepolia',\n name: 'OP Sepolia',\n ecosystem: 'evm',\n network: 'optimism',\n type: 'testnet',\n isTestnet: true,\n chainId: 11155420,\n rpcUrl: viemOptimismSepolia.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia-optimism.etherscan.io',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkOptimism,\n nativeCurrency: {\n name: 'Sepolia Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemOptimismSepolia,\n accessControlIndexerUrl: 'https://openzeppelin-optimism-sepolia.graphql.subquery.network/',\n};\n\nexport const avalancheFuji: TypedEvmNetworkConfig = {\n id: 'avalanche-fuji',\n exportConstName: 'avalancheFuji',\n name: 'Avalanche Fuji C-Chain',\n ecosystem: 'evm',\n network: 'avalanche',\n type: 'testnet',\n isTestnet: true,\n chainId: 43113,\n rpcUrl: viemAvalancheFuji.rpcUrls.default.http[0],\n explorerUrl: 'https://testnet.snowscan.xyz',\n apiUrl: 'https://api.etherscan.io/v2/api', // Using Etherscan V2 unified API\n primaryExplorerApiIdentifier: 'etherscan-v2', // Unified identifier for V2 API\n supportsEtherscanV2: true,\n requiresExplorerApiKey: true,\n iconComponent: NetworkAvalanche,\n nativeCurrency: {\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n },\n viemChain: viemAvalancheFuji,\n accessControlIndexerUrl: 'https://openzeppelin-avalanche-fuji.graphql.subquery.network/',\n};\n\n// TODO: test and setup the api and explorer config\nexport const zksyncSepoliaTestnet: TypedEvmNetworkConfig = {\n id: 'zksync-era-sepolia',\n exportConstName: 'zksyncSepoliaTestnet',\n name: 'ZkSync Era Sepolia',\n ecosystem: 'evm',\n network: 'zksync-era',\n type: 'testnet',\n isTestnet: true,\n chainId: 300,\n rpcUrl: viemZkSyncSepoliaTestnet.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia.explorer.zksync.io',\n apiUrl: 'https://block-explorer-api.sepolia.zksync.dev/api',\n primaryExplorerApiIdentifier: 'zksync-era-sepolia',\n supportsEtherscanV2: false,\n iconComponent: NetworkZksync,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemZkSyncSepoliaTestnet,\n accessControlIndexerUrl: 'https://openzeppelin-zksync-era-sepolia.graphql.subquery.network/',\n};\n\nexport const scrollSepolia: TypedEvmNetworkConfig = {\n id: 'scroll-sepolia',\n exportConstName: 'scrollSepolia',\n name: 'Scroll Sepolia',\n ecosystem: 'evm',\n network: 'scroll',\n type: 'testnet',\n isTestnet: true,\n chainId: 534351,\n rpcUrl: viemScrollSepolia.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia.scrollscan.dev',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkScroll,\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemScrollSepolia,\n accessControlIndexerUrl: 'https://openzeppelin-scroll-sepolia.graphql.subquery.network/',\n};\n\nexport const lineaSepolia: TypedEvmNetworkConfig = {\n id: 'linea-sepolia',\n exportConstName: 'lineaSepolia',\n name: 'Linea Sepolia',\n ecosystem: 'evm',\n network: 'linea',\n type: 'testnet',\n isTestnet: true,\n chainId: 59141,\n rpcUrl: viemLineaSepolia.rpcUrls.default.http[0],\n explorerUrl: 'https://sepolia.lineascan.build',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkLinea,\n nativeCurrency: {\n name: 'Linea Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n viemChain: viemLineaSepolia,\n accessControlIndexerUrl: 'https://openzeppelin-linea-sepolia.graphql.subquery.network/',\n};\n\nexport const monadTestnet: TypedEvmNetworkConfig = {\n id: 'monad-testnet',\n exportConstName: 'monadTestnet',\n name: 'Monad Testnet',\n ecosystem: 'evm',\n network: 'monad',\n type: 'testnet',\n isTestnet: true,\n chainId: 10143,\n rpcUrl: viemMonadTestnet.rpcUrls.default.http[0],\n explorerUrl: 'https://testnet.monadexplorer.com',\n apiUrl: 'https://api.etherscan.io/v2/api',\n primaryExplorerApiIdentifier: 'etherscan-v2',\n supportsEtherscanV2: true,\n iconComponent: NetworkMonad,\n nativeCurrency: {\n name: 'Monad',\n symbol: 'MON',\n decimals: 18,\n },\n viemChain: viemMonadTestnet,\n accessControlIndexerUrl: 'https://openzeppelin-monad-testnet.graphql.subquery.network/',\n};\n\n// TODO: Add other EVM testnet networks as needed (e.g., Arbitrum Sepolia)\n","import type { TypedEvmNetworkConfig } from '@openzeppelin/ui-builder-adapter-evm-core';\n\nimport {\n arbitrumMainnet,\n avalancheMainnet,\n baseMainnet,\n bscMainnet,\n ethereumMainnet,\n lineaMainnet,\n optimismMainnet,\n polygonMainnet,\n polygonZkEvmMainnet,\n scrollMainnet,\n zkSyncEraMainnet,\n} from './mainnet';\nimport {\n arbitrumSepolia,\n avalancheFuji,\n baseSepolia,\n bscTestnet,\n ethereumSepolia,\n lineaSepolia,\n monadTestnet,\n optimismSepolia,\n polygonAmoy,\n polygonZkEvmCardona,\n scrollSepolia,\n zksyncSepoliaTestnet,\n} from './testnet';\n\n// All mainnet networks\nexport const evmMainnetNetworks: TypedEvmNetworkConfig[] = [\n ethereumMainnet,\n arbitrumMainnet,\n baseMainnet,\n polygonMainnet,\n polygonZkEvmMainnet,\n bscMainnet,\n optimismMainnet,\n avalancheMainnet,\n lineaMainnet,\n scrollMainnet,\n zkSyncEraMainnet,\n // Other mainnet networks...\n];\n\n// All testnet networks\nexport const evmTestnetNetworks: TypedEvmNetworkConfig[] = [\n ethereumSepolia,\n arbitrumSepolia,\n baseSepolia,\n polygonAmoy,\n polygonZkEvmCardona,\n bscTestnet,\n optimismSepolia,\n avalancheFuji,\n lineaSepolia,\n scrollSepolia,\n zksyncSepoliaTestnet,\n monadTestnet,\n // Other testnet networks...\n];\n\n// All EVM networks\n// NOTE: The wagmi integration automatically uses all networks defined here that have a `viemChain` property.\n// This ensures that adding a new network to mainnet.ts or testnet.ts automatically makes it available to wagmi.\nexport const evmNetworks: TypedEvmNetworkConfig[] = [...evmMainnetNetworks, ...evmTestnetNetworks];\n\n// Export individual networks for direct import\nexport {\n // Mainnet networks\n ethereumMainnet,\n arbitrumMainnet,\n baseMainnet,\n polygonMainnet,\n polygonZkEvmMainnet,\n bscMainnet,\n optimismMainnet,\n avalancheMainnet,\n lineaMainnet,\n scrollMainnet,\n zkSyncEraMainnet,\n // Testnet networks\n ethereumSepolia,\n arbitrumSepolia,\n baseSepolia,\n polygonAmoy,\n polygonZkEvmCardona,\n bscTestnet,\n optimismSepolia,\n avalancheFuji,\n lineaSepolia,\n scrollSepolia,\n zksyncSepoliaTestnet,\n monadTestnet,\n};\n"],"mappings":"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","names":["NetworkArbitrumOne","NetworkAvalanche","NetworkBase","NetworkBinanceSmartChain","NetworkEthereum","NetworkLinea","NetworkOptimism","NetworkPolygon","NetworkScroll","NetworkZksync"]}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { Chain, Abi } from 'viem';
|
|
2
|
+
import { EvmNetworkConfig } from '@openzeppelin/ui-types';
|
|
3
|
+
import { Speed } from '@openzeppelin/relayer-sdk';
|
|
4
|
+
import { RainbowKitProvider, ConnectButton } from '@rainbow-me/rainbowkit';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the structure for parameters required to execute a contract write operation via viem.
|
|
8
|
+
*/
|
|
9
|
+
interface WriteContractParameters {
|
|
10
|
+
address: `0x${string}`;
|
|
11
|
+
abi: Abi;
|
|
12
|
+
functionName: string;
|
|
13
|
+
args: unknown[];
|
|
14
|
+
value?: bigint;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* EVM-specific network configuration with strict `ecosystem: 'evm'` constraint
|
|
18
|
+
* and strongly-typed viem `Chain` (narrowed from `unknown` in `EvmNetworkConfig`).
|
|
19
|
+
*
|
|
20
|
+
* Use this type in EVM-only contexts where you want strict ecosystem typing.
|
|
21
|
+
* For function signatures that should accept configs from multiple adapters
|
|
22
|
+
* (EVM, Polkadot, etc.), use `EvmCompatibleNetworkConfig` instead.
|
|
23
|
+
*/
|
|
24
|
+
interface TypedEvmNetworkConfig extends EvmNetworkConfig {
|
|
25
|
+
viemChain?: Chain;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* EVM Contract Definition Provider keys and ordering
|
|
30
|
+
* Avoid magic strings by using typed constants and a union type.
|
|
31
|
+
*/
|
|
32
|
+
declare const EvmProviderKeys: {
|
|
33
|
+
readonly Etherscan: "etherscan";
|
|
34
|
+
readonly Sourcify: "sourcify";
|
|
35
|
+
};
|
|
36
|
+
type EvmContractDefinitionProviderKey = (typeof EvmProviderKeys)[keyof typeof EvmProviderKeys];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* EVM-specific contract artifacts interface
|
|
40
|
+
* Defines the structure of data needed to load EVM contracts
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
interface EvmContractArtifacts {
|
|
44
|
+
/** The deployed contract address (required) */
|
|
45
|
+
contractAddress: string;
|
|
46
|
+
/** Optional manual ABI JSON string (for unverified contracts) */
|
|
47
|
+
contractDefinition?: string;
|
|
48
|
+
/** Optional proxy detection configuration */
|
|
49
|
+
__proxyDetectionOptions?: {
|
|
50
|
+
/** Skip automatic proxy detection */
|
|
51
|
+
skipProxyDetection?: boolean;
|
|
52
|
+
};
|
|
53
|
+
/** Optional forced provider for this load attempt (session-scoped override) */
|
|
54
|
+
__forcedProvider?: EvmContractDefinitionProviderKey;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Type guard to check if an object matches EvmContractArtifacts structure
|
|
58
|
+
*/
|
|
59
|
+
declare function isEvmContractArtifacts(obj: unknown): obj is EvmContractArtifacts;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* EVM-specific ABI types for comparison and validation
|
|
63
|
+
* Uses viem's Abi type as the foundation for type safety
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Result of comparing two ABIs
|
|
68
|
+
*/
|
|
69
|
+
interface AbiComparisonResult {
|
|
70
|
+
/** Whether the ABIs are identical after normalization */
|
|
71
|
+
identical: boolean;
|
|
72
|
+
/** List of differences found between the ABIs */
|
|
73
|
+
differences: AbiDifference[];
|
|
74
|
+
/** Overall severity of the changes */
|
|
75
|
+
severity: 'none' | 'minor' | 'major' | 'breaking';
|
|
76
|
+
/** Human-readable summary of the comparison */
|
|
77
|
+
summary: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Represents a single difference between two ABIs
|
|
81
|
+
*/
|
|
82
|
+
interface AbiDifference {
|
|
83
|
+
/** Type of change */
|
|
84
|
+
type: 'added' | 'removed' | 'modified';
|
|
85
|
+
/** Which section of the ABI was affected */
|
|
86
|
+
section: 'function' | 'event' | 'constructor' | 'error' | 'fallback' | 'receive';
|
|
87
|
+
/** Name of the affected item (or type if no name) */
|
|
88
|
+
name: string;
|
|
89
|
+
/** Detailed description of the change */
|
|
90
|
+
details: string;
|
|
91
|
+
/** Impact level of this change */
|
|
92
|
+
impact: 'low' | 'medium' | 'high';
|
|
93
|
+
/** Signature before the change (for removed/modified) */
|
|
94
|
+
oldSignature?: string;
|
|
95
|
+
/** Signature after the change (for added/modified) */
|
|
96
|
+
newSignature?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Result of validating an ABI structure
|
|
100
|
+
*/
|
|
101
|
+
interface AbiValidationResult {
|
|
102
|
+
/** Whether the ABI is structurally valid */
|
|
103
|
+
valid: boolean;
|
|
104
|
+
/** List of validation errors found */
|
|
105
|
+
errors: string[];
|
|
106
|
+
/** List of validation warnings */
|
|
107
|
+
warnings: string[];
|
|
108
|
+
/** Normalized ABI if validation passed */
|
|
109
|
+
normalizedAbi?: Abi;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* ABI comparison service for EVM contracts
|
|
114
|
+
* Provides detailed analysis of differences between ABIs
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Service for comparing and validating EVM ABIs
|
|
119
|
+
*/
|
|
120
|
+
declare class AbiComparisonService {
|
|
121
|
+
/**
|
|
122
|
+
* Compares two ABIs and returns detailed difference analysis
|
|
123
|
+
*/
|
|
124
|
+
compareAbis(abi1: string, abi2: string): AbiComparisonResult;
|
|
125
|
+
/**
|
|
126
|
+
* Validates ABI structure and format
|
|
127
|
+
*/
|
|
128
|
+
validateAbi(abiString: string): AbiValidationResult;
|
|
129
|
+
/**
|
|
130
|
+
* Creates deterministic hash of ABI for quick comparison
|
|
131
|
+
*/
|
|
132
|
+
hashAbi(abiString: string): string;
|
|
133
|
+
/**
|
|
134
|
+
* Normalizes ABI for consistent comparison
|
|
135
|
+
*/
|
|
136
|
+
private normalizeAbi;
|
|
137
|
+
/**
|
|
138
|
+
* Finds detailed differences between two normalized ABIs
|
|
139
|
+
*/
|
|
140
|
+
private findDifferences;
|
|
141
|
+
private createAbiMap;
|
|
142
|
+
private generateItemKey;
|
|
143
|
+
private generateSignature;
|
|
144
|
+
private itemsEqual;
|
|
145
|
+
private calculateImpact;
|
|
146
|
+
private calculateSeverity;
|
|
147
|
+
private generateSummary;
|
|
148
|
+
}
|
|
149
|
+
declare const abiComparisonService: AbiComparisonService;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Relayer Execution Strategy
|
|
153
|
+
*
|
|
154
|
+
* Implements transaction execution through the OpenZeppelin Relayer service.
|
|
155
|
+
* This strategy sends transactions to a relayer for gas sponsorship and broadcasting.
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* EVM-specific transaction options for the OpenZeppelin Relayer.
|
|
160
|
+
* These options map directly to the EvmTransactionRequest parameters in the SDK.
|
|
161
|
+
*/
|
|
162
|
+
interface EvmRelayerTransactionOptions {
|
|
163
|
+
speed?: Speed;
|
|
164
|
+
gasLimit?: number;
|
|
165
|
+
gasPrice?: number;
|
|
166
|
+
maxFeePerGas?: number;
|
|
167
|
+
maxPriorityFeePerGas?: number;
|
|
168
|
+
validUntil?: string;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Custom RainbowKit configuration types for enhanced UI control
|
|
173
|
+
*/
|
|
174
|
+
/**
|
|
175
|
+
* Re-export RainbowKit's native types for ConnectButton props
|
|
176
|
+
* This ensures we use the exact same types that RainbowKit expects,
|
|
177
|
+
* reducing maintenance burden and letting RainbowKit handle type validation
|
|
178
|
+
*/
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Extract the `AppInfo` type from the RainbowKitProvider's props.
|
|
182
|
+
* This is the canonical way to get the type for the `appInfo` object.
|
|
183
|
+
*/
|
|
184
|
+
type AppInfo = React.ComponentProps<typeof RainbowKitProvider>['appInfo'];
|
|
185
|
+
/**
|
|
186
|
+
* Extract the props type from RainbowKit's ConnectButton component
|
|
187
|
+
* This gives us the exact same types that RainbowKit uses internally
|
|
188
|
+
*/
|
|
189
|
+
type RainbowKitConnectButtonProps$1 = React.ComponentProps<typeof ConnectButton>;
|
|
190
|
+
/**
|
|
191
|
+
* Represents the props expected by the RainbowKitProvider component.
|
|
192
|
+
* It uses a nested `appInfo` object.
|
|
193
|
+
*/
|
|
194
|
+
interface RainbowKitProviderProps {
|
|
195
|
+
appInfo?: AppInfo;
|
|
196
|
+
[key: string]: unknown;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Represents the shape of the `kitConfig` object we use internally when the
|
|
200
|
+
* selected kit is RainbowKit. It has a flat structure for `appName` and `learnMoreUrl`
|
|
201
|
+
* for easier handling in our builder app, and can also contain pre-existing providerProps.
|
|
202
|
+
*/
|
|
203
|
+
type RainbowKitKitConfig = Partial<AppInfo> & {
|
|
204
|
+
providerProps?: RainbowKitProviderProps;
|
|
205
|
+
[key: string]: unknown;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Custom UI configuration that uses RainbowKit's native types
|
|
209
|
+
* This extends our configuration system while leveraging RainbowKit's own type definitions
|
|
210
|
+
*/
|
|
211
|
+
interface RainbowKitCustomizations {
|
|
212
|
+
/**
|
|
213
|
+
* Configuration for the RainbowKit ConnectButton component
|
|
214
|
+
* Uses RainbowKit's native prop types for type safety and compatibility
|
|
215
|
+
*/
|
|
216
|
+
connectButton?: Partial<RainbowKitConnectButtonProps$1>;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Type guard to check if an object contains RainbowKit customizations
|
|
220
|
+
*/
|
|
221
|
+
declare function isRainbowKitCustomizations(obj: unknown): obj is RainbowKitCustomizations;
|
|
222
|
+
/**
|
|
223
|
+
* Utility to extract RainbowKit customizations from a kit config
|
|
224
|
+
*/
|
|
225
|
+
declare function extractRainbowKitCustomizations(kitConfig: Record<string, unknown> | undefined): RainbowKitCustomizations | undefined;
|
|
226
|
+
|
|
227
|
+
declare const ethereumMainnet: TypedEvmNetworkConfig;
|
|
228
|
+
declare const arbitrumMainnet: TypedEvmNetworkConfig;
|
|
229
|
+
declare const polygonMainnet: TypedEvmNetworkConfig;
|
|
230
|
+
declare const polygonZkEvmMainnet: TypedEvmNetworkConfig;
|
|
231
|
+
declare const baseMainnet: TypedEvmNetworkConfig;
|
|
232
|
+
declare const bscMainnet: TypedEvmNetworkConfig;
|
|
233
|
+
declare const optimismMainnet: TypedEvmNetworkConfig;
|
|
234
|
+
declare const avalancheMainnet: TypedEvmNetworkConfig;
|
|
235
|
+
declare const zkSyncEraMainnet: TypedEvmNetworkConfig;
|
|
236
|
+
declare const scrollMainnet: TypedEvmNetworkConfig;
|
|
237
|
+
declare const lineaMainnet: TypedEvmNetworkConfig;
|
|
238
|
+
|
|
239
|
+
declare const ethereumSepolia: TypedEvmNetworkConfig;
|
|
240
|
+
declare const arbitrumSepolia: TypedEvmNetworkConfig;
|
|
241
|
+
declare const polygonAmoy: TypedEvmNetworkConfig;
|
|
242
|
+
declare const polygonZkEvmCardona: TypedEvmNetworkConfig;
|
|
243
|
+
declare const baseSepolia: TypedEvmNetworkConfig;
|
|
244
|
+
declare const bscTestnet: TypedEvmNetworkConfig;
|
|
245
|
+
declare const optimismSepolia: TypedEvmNetworkConfig;
|
|
246
|
+
declare const avalancheFuji: TypedEvmNetworkConfig;
|
|
247
|
+
declare const zksyncSepoliaTestnet: TypedEvmNetworkConfig;
|
|
248
|
+
declare const scrollSepolia: TypedEvmNetworkConfig;
|
|
249
|
+
declare const lineaSepolia: TypedEvmNetworkConfig;
|
|
250
|
+
declare const monadTestnet: TypedEvmNetworkConfig;
|
|
251
|
+
|
|
252
|
+
export { type AppInfo as A, polygonZkEvmMainnet as B, scrollMainnet as C, scrollSepolia as D, type EvmContractDefinitionProviderKey as E, zkSyncEraMainnet as F, zksyncSepoliaTestnet as G, monadTestnet as H, type RainbowKitConnectButtonProps$1 as R, type TypedEvmNetworkConfig as T, type WriteContractParameters as W, type EvmContractArtifacts as a, type EvmRelayerTransactionOptions as b, type RainbowKitCustomizations as c, type RainbowKitKitConfig as d, type RainbowKitProviderProps as e, abiComparisonService as f, arbitrumMainnet as g, arbitrumSepolia as h, avalancheFuji as i, avalancheMainnet as j, baseMainnet as k, baseSepolia as l, bscMainnet as m, bscTestnet as n, ethereumMainnet as o, ethereumSepolia as p, extractRainbowKitCustomizations as q, isEvmContractArtifacts as r, isRainbowKitCustomizations as s, lineaMainnet as t, lineaSepolia as u, optimismMainnet as v, optimismSepolia as w, polygonAmoy as x, polygonMainnet as y, polygonZkEvmCardona as z };
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { Chain, Abi } from 'viem';
|
|
2
|
+
import { EvmNetworkConfig } from '@openzeppelin/ui-types';
|
|
3
|
+
import { Speed } from '@openzeppelin/relayer-sdk';
|
|
4
|
+
import { RainbowKitProvider, ConnectButton } from '@rainbow-me/rainbowkit';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Defines the structure for parameters required to execute a contract write operation via viem.
|
|
8
|
+
*/
|
|
9
|
+
interface WriteContractParameters {
|
|
10
|
+
address: `0x${string}`;
|
|
11
|
+
abi: Abi;
|
|
12
|
+
functionName: string;
|
|
13
|
+
args: unknown[];
|
|
14
|
+
value?: bigint;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* EVM-specific network configuration with strict `ecosystem: 'evm'` constraint
|
|
18
|
+
* and strongly-typed viem `Chain` (narrowed from `unknown` in `EvmNetworkConfig`).
|
|
19
|
+
*
|
|
20
|
+
* Use this type in EVM-only contexts where you want strict ecosystem typing.
|
|
21
|
+
* For function signatures that should accept configs from multiple adapters
|
|
22
|
+
* (EVM, Polkadot, etc.), use `EvmCompatibleNetworkConfig` instead.
|
|
23
|
+
*/
|
|
24
|
+
interface TypedEvmNetworkConfig extends EvmNetworkConfig {
|
|
25
|
+
viemChain?: Chain;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* EVM Contract Definition Provider keys and ordering
|
|
30
|
+
* Avoid magic strings by using typed constants and a union type.
|
|
31
|
+
*/
|
|
32
|
+
declare const EvmProviderKeys: {
|
|
33
|
+
readonly Etherscan: "etherscan";
|
|
34
|
+
readonly Sourcify: "sourcify";
|
|
35
|
+
};
|
|
36
|
+
type EvmContractDefinitionProviderKey = (typeof EvmProviderKeys)[keyof typeof EvmProviderKeys];
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* EVM-specific contract artifacts interface
|
|
40
|
+
* Defines the structure of data needed to load EVM contracts
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
interface EvmContractArtifacts {
|
|
44
|
+
/** The deployed contract address (required) */
|
|
45
|
+
contractAddress: string;
|
|
46
|
+
/** Optional manual ABI JSON string (for unverified contracts) */
|
|
47
|
+
contractDefinition?: string;
|
|
48
|
+
/** Optional proxy detection configuration */
|
|
49
|
+
__proxyDetectionOptions?: {
|
|
50
|
+
/** Skip automatic proxy detection */
|
|
51
|
+
skipProxyDetection?: boolean;
|
|
52
|
+
};
|
|
53
|
+
/** Optional forced provider for this load attempt (session-scoped override) */
|
|
54
|
+
__forcedProvider?: EvmContractDefinitionProviderKey;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Type guard to check if an object matches EvmContractArtifacts structure
|
|
58
|
+
*/
|
|
59
|
+
declare function isEvmContractArtifacts(obj: unknown): obj is EvmContractArtifacts;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* EVM-specific ABI types for comparison and validation
|
|
63
|
+
* Uses viem's Abi type as the foundation for type safety
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Result of comparing two ABIs
|
|
68
|
+
*/
|
|
69
|
+
interface AbiComparisonResult {
|
|
70
|
+
/** Whether the ABIs are identical after normalization */
|
|
71
|
+
identical: boolean;
|
|
72
|
+
/** List of differences found between the ABIs */
|
|
73
|
+
differences: AbiDifference[];
|
|
74
|
+
/** Overall severity of the changes */
|
|
75
|
+
severity: 'none' | 'minor' | 'major' | 'breaking';
|
|
76
|
+
/** Human-readable summary of the comparison */
|
|
77
|
+
summary: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Represents a single difference between two ABIs
|
|
81
|
+
*/
|
|
82
|
+
interface AbiDifference {
|
|
83
|
+
/** Type of change */
|
|
84
|
+
type: 'added' | 'removed' | 'modified';
|
|
85
|
+
/** Which section of the ABI was affected */
|
|
86
|
+
section: 'function' | 'event' | 'constructor' | 'error' | 'fallback' | 'receive';
|
|
87
|
+
/** Name of the affected item (or type if no name) */
|
|
88
|
+
name: string;
|
|
89
|
+
/** Detailed description of the change */
|
|
90
|
+
details: string;
|
|
91
|
+
/** Impact level of this change */
|
|
92
|
+
impact: 'low' | 'medium' | 'high';
|
|
93
|
+
/** Signature before the change (for removed/modified) */
|
|
94
|
+
oldSignature?: string;
|
|
95
|
+
/** Signature after the change (for added/modified) */
|
|
96
|
+
newSignature?: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Result of validating an ABI structure
|
|
100
|
+
*/
|
|
101
|
+
interface AbiValidationResult {
|
|
102
|
+
/** Whether the ABI is structurally valid */
|
|
103
|
+
valid: boolean;
|
|
104
|
+
/** List of validation errors found */
|
|
105
|
+
errors: string[];
|
|
106
|
+
/** List of validation warnings */
|
|
107
|
+
warnings: string[];
|
|
108
|
+
/** Normalized ABI if validation passed */
|
|
109
|
+
normalizedAbi?: Abi;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* ABI comparison service for EVM contracts
|
|
114
|
+
* Provides detailed analysis of differences between ABIs
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Service for comparing and validating EVM ABIs
|
|
119
|
+
*/
|
|
120
|
+
declare class AbiComparisonService {
|
|
121
|
+
/**
|
|
122
|
+
* Compares two ABIs and returns detailed difference analysis
|
|
123
|
+
*/
|
|
124
|
+
compareAbis(abi1: string, abi2: string): AbiComparisonResult;
|
|
125
|
+
/**
|
|
126
|
+
* Validates ABI structure and format
|
|
127
|
+
*/
|
|
128
|
+
validateAbi(abiString: string): AbiValidationResult;
|
|
129
|
+
/**
|
|
130
|
+
* Creates deterministic hash of ABI for quick comparison
|
|
131
|
+
*/
|
|
132
|
+
hashAbi(abiString: string): string;
|
|
133
|
+
/**
|
|
134
|
+
* Normalizes ABI for consistent comparison
|
|
135
|
+
*/
|
|
136
|
+
private normalizeAbi;
|
|
137
|
+
/**
|
|
138
|
+
* Finds detailed differences between two normalized ABIs
|
|
139
|
+
*/
|
|
140
|
+
private findDifferences;
|
|
141
|
+
private createAbiMap;
|
|
142
|
+
private generateItemKey;
|
|
143
|
+
private generateSignature;
|
|
144
|
+
private itemsEqual;
|
|
145
|
+
private calculateImpact;
|
|
146
|
+
private calculateSeverity;
|
|
147
|
+
private generateSummary;
|
|
148
|
+
}
|
|
149
|
+
declare const abiComparisonService: AbiComparisonService;
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Relayer Execution Strategy
|
|
153
|
+
*
|
|
154
|
+
* Implements transaction execution through the OpenZeppelin Relayer service.
|
|
155
|
+
* This strategy sends transactions to a relayer for gas sponsorship and broadcasting.
|
|
156
|
+
*/
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* EVM-specific transaction options for the OpenZeppelin Relayer.
|
|
160
|
+
* These options map directly to the EvmTransactionRequest parameters in the SDK.
|
|
161
|
+
*/
|
|
162
|
+
interface EvmRelayerTransactionOptions {
|
|
163
|
+
speed?: Speed;
|
|
164
|
+
gasLimit?: number;
|
|
165
|
+
gasPrice?: number;
|
|
166
|
+
maxFeePerGas?: number;
|
|
167
|
+
maxPriorityFeePerGas?: number;
|
|
168
|
+
validUntil?: string;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Custom RainbowKit configuration types for enhanced UI control
|
|
173
|
+
*/
|
|
174
|
+
/**
|
|
175
|
+
* Re-export RainbowKit's native types for ConnectButton props
|
|
176
|
+
* This ensures we use the exact same types that RainbowKit expects,
|
|
177
|
+
* reducing maintenance burden and letting RainbowKit handle type validation
|
|
178
|
+
*/
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Extract the `AppInfo` type from the RainbowKitProvider's props.
|
|
182
|
+
* This is the canonical way to get the type for the `appInfo` object.
|
|
183
|
+
*/
|
|
184
|
+
type AppInfo = React.ComponentProps<typeof RainbowKitProvider>['appInfo'];
|
|
185
|
+
/**
|
|
186
|
+
* Extract the props type from RainbowKit's ConnectButton component
|
|
187
|
+
* This gives us the exact same types that RainbowKit uses internally
|
|
188
|
+
*/
|
|
189
|
+
type RainbowKitConnectButtonProps$1 = React.ComponentProps<typeof ConnectButton>;
|
|
190
|
+
/**
|
|
191
|
+
* Represents the props expected by the RainbowKitProvider component.
|
|
192
|
+
* It uses a nested `appInfo` object.
|
|
193
|
+
*/
|
|
194
|
+
interface RainbowKitProviderProps {
|
|
195
|
+
appInfo?: AppInfo;
|
|
196
|
+
[key: string]: unknown;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Represents the shape of the `kitConfig` object we use internally when the
|
|
200
|
+
* selected kit is RainbowKit. It has a flat structure for `appName` and `learnMoreUrl`
|
|
201
|
+
* for easier handling in our builder app, and can also contain pre-existing providerProps.
|
|
202
|
+
*/
|
|
203
|
+
type RainbowKitKitConfig = Partial<AppInfo> & {
|
|
204
|
+
providerProps?: RainbowKitProviderProps;
|
|
205
|
+
[key: string]: unknown;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* Custom UI configuration that uses RainbowKit's native types
|
|
209
|
+
* This extends our configuration system while leveraging RainbowKit's own type definitions
|
|
210
|
+
*/
|
|
211
|
+
interface RainbowKitCustomizations {
|
|
212
|
+
/**
|
|
213
|
+
* Configuration for the RainbowKit ConnectButton component
|
|
214
|
+
* Uses RainbowKit's native prop types for type safety and compatibility
|
|
215
|
+
*/
|
|
216
|
+
connectButton?: Partial<RainbowKitConnectButtonProps$1>;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Type guard to check if an object contains RainbowKit customizations
|
|
220
|
+
*/
|
|
221
|
+
declare function isRainbowKitCustomizations(obj: unknown): obj is RainbowKitCustomizations;
|
|
222
|
+
/**
|
|
223
|
+
* Utility to extract RainbowKit customizations from a kit config
|
|
224
|
+
*/
|
|
225
|
+
declare function extractRainbowKitCustomizations(kitConfig: Record<string, unknown> | undefined): RainbowKitCustomizations | undefined;
|
|
226
|
+
|
|
227
|
+
declare const ethereumMainnet: TypedEvmNetworkConfig;
|
|
228
|
+
declare const arbitrumMainnet: TypedEvmNetworkConfig;
|
|
229
|
+
declare const polygonMainnet: TypedEvmNetworkConfig;
|
|
230
|
+
declare const polygonZkEvmMainnet: TypedEvmNetworkConfig;
|
|
231
|
+
declare const baseMainnet: TypedEvmNetworkConfig;
|
|
232
|
+
declare const bscMainnet: TypedEvmNetworkConfig;
|
|
233
|
+
declare const optimismMainnet: TypedEvmNetworkConfig;
|
|
234
|
+
declare const avalancheMainnet: TypedEvmNetworkConfig;
|
|
235
|
+
declare const zkSyncEraMainnet: TypedEvmNetworkConfig;
|
|
236
|
+
declare const scrollMainnet: TypedEvmNetworkConfig;
|
|
237
|
+
declare const lineaMainnet: TypedEvmNetworkConfig;
|
|
238
|
+
|
|
239
|
+
declare const ethereumSepolia: TypedEvmNetworkConfig;
|
|
240
|
+
declare const arbitrumSepolia: TypedEvmNetworkConfig;
|
|
241
|
+
declare const polygonAmoy: TypedEvmNetworkConfig;
|
|
242
|
+
declare const polygonZkEvmCardona: TypedEvmNetworkConfig;
|
|
243
|
+
declare const baseSepolia: TypedEvmNetworkConfig;
|
|
244
|
+
declare const bscTestnet: TypedEvmNetworkConfig;
|
|
245
|
+
declare const optimismSepolia: TypedEvmNetworkConfig;
|
|
246
|
+
declare const avalancheFuji: TypedEvmNetworkConfig;
|
|
247
|
+
declare const zksyncSepoliaTestnet: TypedEvmNetworkConfig;
|
|
248
|
+
declare const scrollSepolia: TypedEvmNetworkConfig;
|
|
249
|
+
declare const lineaSepolia: TypedEvmNetworkConfig;
|
|
250
|
+
declare const monadTestnet: TypedEvmNetworkConfig;
|
|
251
|
+
|
|
252
|
+
export { type AppInfo as A, polygonZkEvmMainnet as B, scrollMainnet as C, scrollSepolia as D, type EvmContractDefinitionProviderKey as E, zkSyncEraMainnet as F, zksyncSepoliaTestnet as G, monadTestnet as H, type RainbowKitConnectButtonProps$1 as R, type TypedEvmNetworkConfig as T, type WriteContractParameters as W, type EvmContractArtifacts as a, type EvmRelayerTransactionOptions as b, type RainbowKitCustomizations as c, type RainbowKitKitConfig as d, type RainbowKitProviderProps as e, abiComparisonService as f, arbitrumMainnet as g, arbitrumSepolia as h, avalancheFuji as i, avalancheMainnet as j, baseMainnet as k, baseSepolia as l, bscMainnet as m, bscTestnet as n, ethereumMainnet as o, ethereumSepolia as p, extractRainbowKitCustomizations as q, isEvmContractArtifacts as r, isRainbowKitCustomizations as s, lineaMainnet as t, lineaSepolia as u, optimismMainnet as v, optimismSepolia as w, polygonAmoy as x, polygonMainnet as y, polygonZkEvmCardona as z };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openzeppelin/ui-builder-adapter-evm",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "EVM Adapter for UI Builder",
|
|
6
6
|
"keywords": [
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@openzeppelin/relayer-sdk": "1.9.0",
|
|
40
|
-
"@openzeppelin/ui-components": "^1.
|
|
40
|
+
"@openzeppelin/ui-components": "^1.4.0",
|
|
41
41
|
"@openzeppelin/ui-react": "^1.1.0",
|
|
42
|
-
"@openzeppelin/ui-types": "^1.
|
|
42
|
+
"@openzeppelin/ui-types": "^1.11.1",
|
|
43
43
|
"@openzeppelin/ui-utils": "^1.3.0",
|
|
44
44
|
"@wagmi/connectors": "5.7.13",
|
|
45
45
|
"@wagmi/core": "^2.20.3",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"viem": "^2.33.3",
|
|
60
60
|
"vitest": "^3.2.4",
|
|
61
61
|
"wagmi": "^2.16.1",
|
|
62
|
-
"@openzeppelin/ui-builder-adapter-evm-core": "1.1.
|
|
62
|
+
"@openzeppelin/ui-builder-adapter-evm-core": "1.1.1"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"@rainbow-me/rainbowkit": "^2.2.8",
|
|
@@ -79,6 +79,11 @@
|
|
|
79
79
|
"import": "./dist/metadata.js",
|
|
80
80
|
"require": "./dist/metadata.cjs"
|
|
81
81
|
},
|
|
82
|
+
"./networks": {
|
|
83
|
+
"types": "./dist/networks.d.ts",
|
|
84
|
+
"import": "./dist/networks.js",
|
|
85
|
+
"require": "./dist/networks.cjs"
|
|
86
|
+
},
|
|
82
87
|
"./dist/config.js": {
|
|
83
88
|
"types": "./dist/config.d.ts",
|
|
84
89
|
"import": "./dist/config.js",
|
package/src/networks.ts
ADDED