dequanto 0.0.1
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/.vscode/settings.json +11 -0
- package/actions/gen.act.ts +38 -0
- package/actions/tokens.act.ts +12 -0
- package/configs/dequanto.yml +51 -0
- package/contracts/abi/erc20.abi.json +222 -0
- package/contracts/gen/amm/AmmFactoryV2ContractBase.ts +66 -0
- package/contracts/gen/amm/AmmMasterChefV2ContractBase.ts +158 -0
- package/contracts/gen/amm/AmmPairContractV2Base.ts +158 -0
- package/contracts/gen/amm/AmmPairContractV3Base.ts +125 -0
- package/contracts/gen/amm/AmmRouterV2ContractBase.ts +124 -0
- package/contracts/gen/amm/AmmVaultV2ContractBase.ts +214 -0
- package/contracts/gen/base/ERC20Base.ts +90 -0
- package/contracts/gen/bsc/OneInchRouterV3Base.ts +57 -0
- package/contracts/gen/eth/WETHBase/WETHBase.sol +756 -0
- package/contracts/gen/eth/WETHBase.ts +136 -0
- package/contracts/gen/polygon/ERC20PolygonBase.ts +305 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Address.sol +216 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BeaconProxy.sol +61 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Bridge.sol +437 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeGetters.sol +70 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeGovernance.sol +142 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeImplementation.sol +34 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeSetters.sol +57 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeState.sol +52 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BridgeStructs.sol +66 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/BytesLib.sol +510 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Context.sol +23 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/ERC1967Proxy.sol +32 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/ERC1967Upgrade.sol +193 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/IBeacon.sol +15 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/IERC20.sol +81 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/IWormhole.sol +42 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Ownable.sol +71 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Proxy.sol +85 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/SafeERC20.sol +98 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/StorageSlot.sol +83 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Structs.sol +40 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/Token.sol +12 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/TokenBridge.sol +15 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/TokenImplementation.sol +177 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase/TokenState.sol +31 -0
- package/contracts/gen/polygon/WormholeBridgeContractBase.ts +231 -0
- package/contracts/gen/xdai/WXDaiTokenContractBase.ts +136 -0
- package/data/cex/eth.csv +356 -0
- package/data/tokens/1inch.json +16557 -0
- package/data/tokens/arbitrum.json +1 -0
- package/data/tokens/sushi.json +56388 -0
- package/dist/contracts/gen/amm/AmmFactoryV2ContractBase.js +53 -0
- package/dist/contracts/gen/amm/AmmMasterChefV2ContractBase.js +122 -0
- package/dist/contracts/gen/amm/AmmPairContractV2Base.js +122 -0
- package/dist/contracts/gen/amm/AmmPairContractV3Base.js +98 -0
- package/dist/contracts/gen/amm/AmmRouterV2ContractBase.js +95 -0
- package/dist/contracts/gen/amm/AmmVaultV2ContractBase.js +164 -0
- package/dist/contracts/gen/base/ERC20Base.js +64 -0
- package/dist/contracts/gen/bsc/OneInchRouterV3Base.js +47 -0
- package/dist/contracts/gen/eth/WETHBase.js +96 -0
- package/dist/contracts/gen/polygon/ERC20PolygonBase.js +233 -0
- package/dist/contracts/gen/polygon/WormholeBridgeContractBase.js +172 -0
- package/dist/contracts/gen/xdai/WXDaiTokenContractBase.js +96 -0
- package/dist/src/BlockchainExplorer/BlockChainExplorerFactory.js +227 -0
- package/dist/src/BlockchainExplorer/BlockChainExplorerProvider.js +32 -0
- package/dist/src/BlockchainExplorer/BlockNumberCache.js +33 -0
- package/dist/src/BlockchainExplorer/Bscscan.js +27 -0
- package/dist/src/BlockchainExplorer/Etherscan.js +27 -0
- package/dist/src/BlockchainExplorer/IAbiProvider.js +2 -0
- package/dist/src/BlockchainExplorer/IBlockChainExplorer.js +2 -0
- package/dist/src/BlockchainExplorer/Polyscan.js +27 -0
- package/dist/src/ChainAccounts.js +69 -0
- package/dist/src/ChainAccountsService.js +75 -0
- package/dist/src/Config.js +7 -0
- package/dist/src/blocks/BlockDateResolver.js +125 -0
- package/dist/src/bridges/BridgeFactory.js +19 -0
- package/dist/src/bridges/hop/HopAddresses.js +520 -0
- package/dist/src/bridges/hop/HopBridge.js +327 -0
- package/dist/src/bridges/hop/contracts/gen.act.js +43 -0
- package/dist/src/bridges/hop/contracts/polygon/Dai_l2AmmWrapperContract.js +52 -0
- package/dist/src/bridges/hop/contracts/polygon/Dai_l2BridgeContract.js +319 -0
- package/dist/src/bridges/hop/contracts/polygon/Dai_l2SaddleSwapContract.js +178 -0
- package/dist/src/bridges/hop/contracts/polygon/Eth_l2AmmWrapperContract.js +52 -0
- package/dist/src/bridges/hop/contracts/polygon/Eth_l2BridgeContract.js +319 -0
- package/dist/src/bridges/hop/contracts/polygon/Eth_l2SaddleSwapContract.js +178 -0
- package/dist/src/bridges/hop/contracts/polygon/Matic_l2AmmWrapperContract.js +52 -0
- package/dist/src/bridges/hop/contracts/polygon/Matic_l2BridgeContract.js +319 -0
- package/dist/src/bridges/hop/contracts/polygon/Matic_l2SaddleSwapContract.js +178 -0
- package/dist/src/bridges/hop/contracts/polygon/Usdc_l2AmmWrapperContract.js +52 -0
- package/dist/src/bridges/hop/contracts/polygon/Usdc_l2BridgeContract.js +319 -0
- package/dist/src/bridges/hop/contracts/polygon/Usdc_l2SaddleSwapContract.js +178 -0
- package/dist/src/bridges/hop/contracts/polygon/Usdt_l2AmmWrapperContract.js +52 -0
- package/dist/src/bridges/hop/contracts/polygon/Usdt_l2BridgeContract.js +319 -0
- package/dist/src/bridges/hop/contracts/polygon/Usdt_l2SaddleSwapContract.js +178 -0
- package/dist/src/bridges/hop/contracts/polygon/Wbtc_l2AmmWrapperContract.js +52 -0
- package/dist/src/bridges/hop/contracts/polygon/Wbtc_l2BridgeContract.js +319 -0
- package/dist/src/bridges/hop/contracts/polygon/Wbtc_l2SaddleSwapContract.js +178 -0
- package/dist/src/bridges/models/IBridge.js +2 -0
- package/dist/src/bridges/wormhole/contracts/WormholeBridgeContract.js +15 -0
- package/dist/src/chains/PlatformFactory.js +42 -0
- package/dist/src/chains/arbitrum/ArbTokenProvider.js +40 -0
- package/dist/src/chains/arbitrum/ArbWeb3Client.js +39 -0
- package/dist/src/chains/arbitrum/Arbiscan.js +27 -0
- package/dist/src/chains/boba/BobaWeb3Client.js +47 -0
- package/dist/src/chains/boba/Bobascan.js +28 -0
- package/dist/src/chains/xdai/XDaiWeb3Client.js +87 -0
- package/dist/src/chains/xdai/XDaiscan.js +27 -0
- package/dist/src/chains/xdai/tokens/WXDaiTokenContract.js +15 -0
- package/dist/src/clients/BscWeb3Client.js +38 -0
- package/dist/src/clients/ClientEventsStream.js +34 -0
- package/dist/src/clients/ClientPool.js +560 -0
- package/dist/src/clients/ClientPoolStats.js +52 -0
- package/dist/src/clients/EthWeb3Client.js +35 -0
- package/dist/src/clients/HardhatWeb3Client.js +56 -0
- package/dist/src/clients/PolyWeb3Client.js +77 -0
- package/dist/src/clients/Web3Client.js +186 -0
- package/dist/src/clients/Web3ClientFactory.js +32 -0
- package/dist/src/clients/interfaces/IWeb3Client.js +2 -0
- package/dist/src/clients/interfaces/IWeb3ClientStatus.js +2 -0
- package/dist/src/clients/interfaces/IWeb3EndpointOptions.js +2 -0
- package/dist/src/clients/model/ClientStatus.js +9 -0
- package/dist/src/clients/model/PromiEventWrap.js +52 -0
- package/dist/src/clients/model/SubscriptionWrap.js +42 -0
- package/dist/src/clients/utils/ClientEndpoints.js +27 -0
- package/dist/src/clients/utils/ClientErrorUtil.js +30 -0
- package/dist/src/clients/utils/TxFactory.js +14 -0
- package/dist/src/contracts/BscContract.js +30 -0
- package/dist/src/contracts/Contract.js +90 -0
- package/dist/src/contracts/ContractBase.js +139 -0
- package/dist/src/contracts/ContractFactory.js +17 -0
- package/dist/src/contracts/ContractProvider.js +40 -0
- package/dist/src/contracts/ContractReader.js +76 -0
- package/dist/src/contracts/ContractStream.js +20 -0
- package/dist/src/contracts/ContractWriter.js +62 -0
- package/dist/src/contracts/EthContract.js +31 -0
- package/dist/src/contracts/TxContract.js +37 -0
- package/dist/src/contracts/common/ERC20.js +14 -0
- package/dist/src/contracts/common/ERC20Polygon.js +14 -0
- package/dist/src/contracts/common/PoolPair.js +23 -0
- package/dist/src/contracts/utils/AbiDeserializer.js +89 -0
- package/dist/src/contracts/utils/ConvertUtils.js +21 -0
- package/dist/src/contracts/utils/InputDataUtils.js +87 -0
- package/dist/src/contracts/utils/TypeUtils.js +24 -0
- package/dist/src/defi/OneInch/OneInchRouter.js +14 -0
- package/dist/src/env/BigIntSerializer.js +19 -0
- package/dist/src/gen/Ast.js +12 -0
- package/dist/src/gen/ContractTemplate.js +27 -0
- package/dist/src/gen/Generator.js +180 -0
- package/dist/src/gen/GeneratorFromAbi.js +361 -0
- package/dist/src/handlers/TokenHandler.js +69 -0
- package/dist/src/indexer/BlocksTxIndexer.js +52 -0
- package/dist/src/indexer/PendingTxIndexer.js +96 -0
- package/dist/src/indexer/handlers/BlocksWalker.js +306 -0
- package/dist/src/indexer/handlers/TxQueueLoader.js +117 -0
- package/dist/src/json/JsonArrayStore.js +296 -0
- package/dist/src/json/JsonObjectStore.js +214 -0
- package/dist/src/json/JsonStore.spec.js +83 -0
- package/dist/src/loggers/ILogger.js +2 -0
- package/dist/src/loggers/LoggerService.js +34 -0
- package/dist/src/loggers/TxLoggerService.js +122 -0
- package/dist/src/models/IContractDetails.js +2 -0
- package/dist/src/models/IToken.js +2 -0
- package/dist/src/models/ITokenGlob.js +6 -0
- package/dist/src/models/ITransactionDetails.js +2 -0
- package/dist/src/models/TAddress.js +2 -0
- package/dist/src/models/TBufferLike.js +2 -0
- package/dist/src/models/THex.js +2 -0
- package/dist/src/models/TPlatform.js +2 -0
- package/dist/src/models/TResult.js +2 -0
- package/dist/src/ns/NameService.js +19 -0
- package/dist/src/ns/providers/EnsProvider.js +41 -0
- package/dist/src/ns/providers/INsProvider.js +2 -0
- package/dist/src/ns/providers/UDProvider.js +39 -0
- package/dist/src/ns/utils/$ns.js +17 -0
- package/dist/src/structs/PackedRanges.js +186 -0
- package/dist/src/structs/PackedRanges.spec.js +30 -0
- package/dist/src/tokens/TokenExchangeService.js +110 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/AmmUtilts.js +17 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmFactoryV2Contract.js +15 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmMasterChefV2Contract.js +15 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Contract.js +16 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Service.js +144 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmRouterV2Contract.js +15 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V2/AmmVaultV2Contract.js +15 -0
- package/dist/src/tokens/TokenExchanges/AmmBase/V3/AmmPairV3Contract.js +22 -0
- package/dist/src/tokens/TokenExchanges/AmmV2ExchangeBase.js +194 -0
- package/dist/src/tokens/TokenExchanges/OneInchExchange.js +92 -0
- package/dist/src/tokens/TokenExchanges/PancakeswapExchange.js +28 -0
- package/dist/src/tokens/TokenExchanges/SushiswapPolygonExchange.js +28 -0
- package/dist/src/tokens/TokenExchanges/UniswapExchange.js +28 -0
- package/dist/src/tokens/TokenOracles/AmmPriceV2Oracle.js +319 -0
- package/dist/src/tokens/TokenOracles/TokenPriceStore.js +108 -0
- package/dist/src/tokens/TokenPriceService.js +196 -0
- package/dist/src/tokens/TokenPriceServiceProvider.js +31 -0
- package/dist/src/tokens/TokenProviders/ATokenProvider.js +38 -0
- package/dist/src/tokens/TokenProviders/ITokenProvider.js +2 -0
- package/dist/src/tokens/TokenProviders/TPChain.js +35 -0
- package/dist/src/tokens/TokenProviders/TPCoinmarketcap.js +63 -0
- package/dist/src/tokens/TokenProviders/TPOneInch.js +65 -0
- package/dist/src/tokens/TokenProviders/TPSushiswap.js +89 -0
- package/dist/src/tokens/TokenProviders/TPUniswap.js +84 -0
- package/dist/src/tokens/TokenService.js +115 -0
- package/dist/src/tokens/TokenSwapService.js +37 -0
- package/dist/src/tokens/TokenTransferService.js +189 -0
- package/dist/src/tokens/TokensService.js +236 -0
- package/dist/src/tokens/TokensServiceBsc.js +18 -0
- package/dist/src/tokens/TokensServiceEth.js +15 -0
- package/dist/src/tokens/TokensServiceFactory.js +29 -0
- package/dist/src/tokens/TokensServicePolygon.js +18 -0
- package/dist/src/tokens/TokensServiceXDai.js +24 -0
- package/dist/src/tokens/defi/ISwapService.js +2 -0
- package/dist/src/tokens/defi/paraswap/Paraswap.js +135 -0
- package/dist/src/tokens/erc20/eth/WETH.js +14 -0
- package/dist/src/tokens/utils/TokenUtils.js +66 -0
- package/dist/src/txs/ITxConfig.js +2 -0
- package/dist/src/txs/TxDataBuilder.js +159 -0
- package/dist/src/txs/TxLogger.js +119 -0
- package/dist/src/txs/TxProvider.js +73 -0
- package/dist/src/txs/TxService.js +19 -0
- package/dist/src/txs/TxWriter.js +287 -0
- package/dist/src/txs/conditional/GasWatcherLogger.js +61 -0
- package/dist/src/txs/conditional/GasWatcherService.js +103 -0
- package/dist/src/txs/conditional/GasWatcherStore.js +25 -0
- package/dist/src/txs/conditional/GasWatcherTx.js +126 -0
- package/dist/src/txs/receipt/ITxLogItem.js +2 -0
- package/dist/src/txs/receipt/TxLogParser.js +27 -0
- package/dist/src/txs/receipt/TxLogsTransfer.js +50 -0
- package/dist/src/txs/receipt/TxTopicInMemoryProvider.js +41 -0
- package/dist/src/txs/receipt/TxTopicProvider.js +25 -0
- package/dist/src/utils/$abiParser.js +159 -0
- package/dist/src/utils/$abiType.js +77 -0
- package/dist/src/utils/$abiUtils.js +43 -0
- package/dist/src/utils/$address.js +41 -0
- package/dist/src/utils/$array.js +60 -0
- package/dist/src/utils/$bigint.js +130 -0
- package/dist/src/utils/$block.js +10 -0
- package/dist/src/utils/$class.js +13 -0
- package/dist/src/utils/$config.js +18 -0
- package/dist/src/utils/$contract.js +67 -0
- package/dist/src/utils/$csv.js +79 -0
- package/dist/src/utils/$date.js +496 -0
- package/dist/src/utils/$fn.js +117 -0
- package/dist/src/utils/$is.js +40 -0
- package/dist/src/utils/$logger.js +15 -0
- package/dist/src/utils/$number.js +95 -0
- package/dist/src/utils/$object.js +82 -0
- package/dist/src/utils/$path.js +33 -0
- package/dist/src/utils/$promise.js +13 -0
- package/dist/src/utils/$require.js +127 -0
- package/dist/src/utils/$sign.js +35 -0
- package/dist/src/utils/$signSerializer.js +264 -0
- package/dist/src/utils/$wallet.js +13 -0
- package/dist/src/utils/types.js +2 -0
- package/dist/src/wallets/Wallet.js +26 -0
- package/dist/src/wallets/WalletBsc.js +17 -0
- package/dist/src/wallets/WalletService.js +35 -0
- package/dist/src/www/utils/BlockChainExplorerFormatter.js +15 -0
- package/hardhat.config.js +6 -0
- package/package.json +52 -0
- package/readme.md +76 -0
- package/src/BlockchainExplorer/BlockChainExplorerFactory.ts +273 -0
- package/src/BlockchainExplorer/BlockChainExplorerProvider.ts +26 -0
- package/src/BlockchainExplorer/BlockNumberCache.ts +46 -0
- package/src/BlockchainExplorer/Bscscan.ts +23 -0
- package/src/BlockchainExplorer/Etherscan.ts +25 -0
- package/src/BlockchainExplorer/IAbiProvider.ts +5 -0
- package/src/BlockchainExplorer/IBlockChainExplorer.ts +37 -0
- package/src/BlockchainExplorer/Polyscan.ts +23 -0
- package/src/ChainAccounts.ts +72 -0
- package/src/ChainAccountsService.ts +74 -0
- package/src/Config.ts +34 -0
- package/src/blocks/BlockDateResolver.ts +149 -0
- package/src/bridges/BridgeFactory.ts +16 -0
- package/src/bridges/hop/HopAddresses.ts +518 -0
- package/src/bridges/hop/HopBridge.ts +430 -0
- package/src/bridges/hop/contracts/gen.act.ts +50 -0
- package/src/bridges/hop/contracts/polygon/Dai_l2AmmWrapperContract.ts +69 -0
- package/src/bridges/hop/contracts/polygon/Dai_l2BridgeContract.ts +453 -0
- package/src/bridges/hop/contracts/polygon/Dai_l2SaddleSwapContract.ts +264 -0
- package/src/bridges/hop/contracts/polygon/Eth_l2AmmWrapperContract.ts +69 -0
- package/src/bridges/hop/contracts/polygon/Eth_l2BridgeContract.ts +453 -0
- package/src/bridges/hop/contracts/polygon/Eth_l2SaddleSwapContract.ts +264 -0
- package/src/bridges/hop/contracts/polygon/Matic_l2AmmWrapperContract.ts +69 -0
- package/src/bridges/hop/contracts/polygon/Matic_l2BridgeContract.ts +453 -0
- package/src/bridges/hop/contracts/polygon/Matic_l2SaddleSwapContract.ts +264 -0
- package/src/bridges/hop/contracts/polygon/Usdc_l2AmmWrapperContract.ts +69 -0
- package/src/bridges/hop/contracts/polygon/Usdc_l2BridgeContract.ts +453 -0
- package/src/bridges/hop/contracts/polygon/Usdc_l2SaddleSwapContract.ts +264 -0
- package/src/bridges/hop/contracts/polygon/Usdt_l2AmmWrapperContract.ts +69 -0
- package/src/bridges/hop/contracts/polygon/Usdt_l2BridgeContract.ts +453 -0
- package/src/bridges/hop/contracts/polygon/Usdt_l2SaddleSwapContract.ts +264 -0
- package/src/bridges/hop/contracts/polygon/Wbtc_l2AmmWrapperContract.ts +69 -0
- package/src/bridges/hop/contracts/polygon/Wbtc_l2BridgeContract.ts +453 -0
- package/src/bridges/hop/contracts/polygon/Wbtc_l2SaddleSwapContract.ts +264 -0
- package/src/bridges/models/IBridge.ts +43 -0
- package/src/bridges/wormhole/contracts/WormholeBridgeContract.ts +14 -0
- package/src/chains/PlatformFactory.ts +45 -0
- package/src/chains/arbitrum/ArbTokenProvider.ts +39 -0
- package/src/chains/arbitrum/ArbWeb3Client.ts +39 -0
- package/src/chains/arbitrum/Arbiscan.ts +24 -0
- package/src/chains/boba/BobaWeb3Client.ts +49 -0
- package/src/chains/boba/Bobascan.ts +25 -0
- package/src/chains/xdai/XDaiWeb3Client.ts +82 -0
- package/src/chains/xdai/XDaiscan.ts +24 -0
- package/src/chains/xdai/tokens/WXDaiTokenContract.json +279 -0
- package/src/chains/xdai/tokens/WXDaiTokenContract.ts +14 -0
- package/src/clients/BscWeb3Client.ts +38 -0
- package/src/clients/ClientEventsStream.ts +33 -0
- package/src/clients/ClientPool.ts +673 -0
- package/src/clients/ClientPoolStats.ts +64 -0
- package/src/clients/EthWeb3Client.ts +36 -0
- package/src/clients/HardhatWeb3Client.ts +60 -0
- package/src/clients/PolyWeb3Client.ts +91 -0
- package/src/clients/Web3Client.ts +228 -0
- package/src/clients/Web3ClientFactory.ts +28 -0
- package/src/clients/interfaces/IWeb3Client.ts +14 -0
- package/src/clients/interfaces/IWeb3ClientStatus.ts +23 -0
- package/src/clients/interfaces/IWeb3EndpointOptions.ts +9 -0
- package/src/clients/model/ClientStatus.ts +5 -0
- package/src/clients/model/PromiEventWrap.ts +61 -0
- package/src/clients/model/SubscriptionWrap.ts +53 -0
- package/src/clients/utils/ClientEndpoints.ts +26 -0
- package/src/clients/utils/ClientErrorUtil.ts +26 -0
- package/src/clients/utils/TxFactory.ts +17 -0
- package/src/contracts/BscContract.ts +28 -0
- package/src/contracts/Contract.ts +126 -0
- package/src/contracts/ContractBase.ts +158 -0
- package/src/contracts/ContractFactory.ts +19 -0
- package/src/contracts/ContractProvider.ts +55 -0
- package/src/contracts/ContractReader.ts +87 -0
- package/src/contracts/ContractStream.ts +18 -0
- package/src/contracts/ContractWriter.ts +97 -0
- package/src/contracts/EthContract.ts +29 -0
- package/src/contracts/TxContract.ts +43 -0
- package/src/contracts/common/ERC20.ts +13 -0
- package/src/contracts/common/ERC20Polygon.ts +13 -0
- package/src/contracts/common/PoolPair.ts +22 -0
- package/src/contracts/utils/AbiDeserializer.ts +98 -0
- package/src/contracts/utils/ConvertUtils.ts +16 -0
- package/src/contracts/utils/InputDataUtils.ts +93 -0
- package/src/contracts/utils/TypeUtils.ts +21 -0
- package/src/defi/OneInch/OneInchRouter.ts +13 -0
- package/src/env/BigIntSerializer.ts +18 -0
- package/src/gen/Ast.ts +12 -0
- package/src/gen/ContractTemplate.ts +36 -0
- package/src/gen/Generator.ts +227 -0
- package/src/gen/GeneratorFromAbi.ts +402 -0
- package/src/handlers/TokenHandler.ts +78 -0
- package/src/indexer/BlocksTxIndexer.ts +69 -0
- package/src/indexer/PendingTxIndexer.ts +124 -0
- package/src/indexer/handlers/BlocksWalker.ts +390 -0
- package/src/indexer/handlers/TxQueueLoader.ts +143 -0
- package/src/json/JsonArrayStore.ts +310 -0
- package/src/json/JsonObjectStore.ts +239 -0
- package/src/json/JsonStore.spec.ts +98 -0
- package/src/loggers/ILogger.ts +3 -0
- package/src/loggers/LoggerService.ts +39 -0
- package/src/loggers/TxLoggerService.ts +146 -0
- package/src/models/IContractDetails.ts +8 -0
- package/src/models/IToken.ts +11 -0
- package/src/models/ITokenGlob.ts +14 -0
- package/src/models/ITransactionDetails.ts +11 -0
- package/src/models/TAddress.ts +1 -0
- package/src/models/TBufferLike.ts +2 -0
- package/src/models/THex.ts +1 -0
- package/src/models/TPlatform.ts +1 -0
- package/src/models/TResult.ts +6 -0
- package/src/ns/NameService.ts +21 -0
- package/src/ns/providers/EnsProvider.ts +45 -0
- package/src/ns/providers/INsProvider.ts +6 -0
- package/src/ns/providers/UDProvider.ts +49 -0
- package/src/ns/utils/$ns.ts +15 -0
- package/src/structs/PackedRanges.spec.ts +38 -0
- package/src/structs/PackedRanges.ts +207 -0
- package/src/tokens/TokenExchangeService.ts +126 -0
- package/src/tokens/TokenExchanges/AmmBase/AmmUtilts.ts +16 -0
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmFactoryV2Contract.ts +15 -0
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmMasterChefV2Contract.ts +15 -0
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Contract.ts +17 -0
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmPairV2Service.ts +208 -0
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmRouterV2Contract.ts +15 -0
- package/src/tokens/TokenExchanges/AmmBase/V2/AmmVaultV2Contract.ts +15 -0
- package/src/tokens/TokenExchanges/AmmBase/V3/AmmPairV3Contract.ts +24 -0
- package/src/tokens/TokenExchanges/AmmV2ExchangeBase.ts +242 -0
- package/src/tokens/TokenExchanges/OneInchExchange.ts +111 -0
- package/src/tokens/TokenExchanges/PancakeswapExchange.ts +30 -0
- package/src/tokens/TokenExchanges/SushiswapPolygonExchange.ts +30 -0
- package/src/tokens/TokenExchanges/UniswapExchange.ts +31 -0
- package/src/tokens/TokenOracles/AmmPriceV2Oracle.ts +440 -0
- package/src/tokens/TokenOracles/TokenPriceStore.ts +129 -0
- package/src/tokens/TokenPriceService.ts +276 -0
- package/src/tokens/TokenPriceServiceProvider.ts +36 -0
- package/src/tokens/TokenProviders/ATokenProvider.ts +42 -0
- package/src/tokens/TokenProviders/ITokenProvider.ts +9 -0
- package/src/tokens/TokenProviders/TPChain.ts +41 -0
- package/src/tokens/TokenProviders/TPCoinmarketcap.ts +82 -0
- package/src/tokens/TokenProviders/TPOneInch.ts +71 -0
- package/src/tokens/TokenProviders/TPSushiswap.ts +96 -0
- package/src/tokens/TokenProviders/TPUniswap.ts +85 -0
- package/src/tokens/TokenService.ts +128 -0
- package/src/tokens/TokenSwapService.ts +47 -0
- package/src/tokens/TokenTransferService.ts +216 -0
- package/src/tokens/TokensService.ts +252 -0
- package/src/tokens/TokensServiceBsc.ts +17 -0
- package/src/tokens/TokensServiceEth.ts +9 -0
- package/src/tokens/TokensServiceFactory.ts +24 -0
- package/src/tokens/TokensServicePolygon.ts +17 -0
- package/src/tokens/TokensServiceXDai.ts +26 -0
- package/src/tokens/defi/ISwapService.ts +12 -0
- package/src/tokens/defi/paraswap/Paraswap.ts +244 -0
- package/src/tokens/erc20/eth/WETH.ts +13 -0
- package/src/tokens/utils/TokenUtils.ts +63 -0
- package/src/txs/ITxConfig.ts +27 -0
- package/src/txs/TxDataBuilder.ts +207 -0
- package/src/txs/TxLogger.ts +121 -0
- package/src/txs/TxProvider.ts +68 -0
- package/src/txs/TxService.ts +19 -0
- package/src/txs/TxWriter.ts +370 -0
- package/src/txs/conditional/GasWatcherLogger.ts +57 -0
- package/src/txs/conditional/GasWatcherService.ts +117 -0
- package/src/txs/conditional/GasWatcherStore.ts +40 -0
- package/src/txs/conditional/GasWatcherTx.ts +143 -0
- package/src/txs/receipt/ITxLogItem.ts +25 -0
- package/src/txs/receipt/TxLogParser.ts +29 -0
- package/src/txs/receipt/TxLogsTransfer.ts +61 -0
- package/src/txs/receipt/TxTopicInMemoryProvider.ts +45 -0
- package/src/txs/receipt/TxTopicProvider.ts +29 -0
- package/src/utils/$abiParser.ts +179 -0
- package/src/utils/$abiType.ts +85 -0
- package/src/utils/$abiUtils.ts +38 -0
- package/src/utils/$address.ts +37 -0
- package/src/utils/$array.ts +57 -0
- package/src/utils/$bigint.ts +127 -0
- package/src/utils/$block.ts +7 -0
- package/src/utils/$class.ts +8 -0
- package/src/utils/$config.ts +17 -0
- package/src/utils/$contract.ts +67 -0
- package/src/utils/$csv.ts +54 -0
- package/src/utils/$date.ts +473 -0
- package/src/utils/$fn.ts +134 -0
- package/src/utils/$is.ts +37 -0
- package/src/utils/$logger.ts +10 -0
- package/src/utils/$number.ts +89 -0
- package/src/utils/$object.ts +95 -0
- package/src/utils/$path.ts +32 -0
- package/src/utils/$promise.ts +7 -0
- package/src/utils/$require.ts +118 -0
- package/src/utils/$sign.ts +36 -0
- package/src/utils/$signSerializer.ts +339 -0
- package/src/utils/$wallet.ts +10 -0
- package/src/utils/types.ts +29 -0
- package/src/wallets/Wallet.ts +33 -0
- package/src/wallets/WalletBsc.ts +13 -0
- package/src/wallets/WalletService.ts +43 -0
- package/src/www/utils/BlockChainExplorerFormatter.ts +13 -0
- package/test/ChainAccount.spec.ts +9 -0
- package/test/client.spec.ts +59 -0
- package/test/fixtures/DaiTokenContract.ts +13 -0
- package/test/fixtures/receipts/swap.json +94 -0
- package/test/generate/class.spec.ts +27 -0
- package/test/hardhat/TestNode.ts +61 -0
- package/test/ns.spec.ts +30 -0
- package/test/receipt.spec.ts +27 -0
- package/test/utils/abi-parser.spec.ts +117 -0
- package/test/utils/bigint.spec.ts +40 -0
- package/test/utils/date.spec.ts +8 -0
- package/test/utils/fn.spec.ts +39 -0
- package/test/utils/number.spec.ts +41 -0
- package/test/utils/sign.spec.ts +22 -0
- package/tsconfig-build.json +24 -0
- package/tsconfig-src.json +36 -0
- package/tsconfig.json +27 -0
- package/typings/globals/assertion/index.d.ts +159 -0
- package/typings/globals/assertion/typings.json +10 -0
- package/typings/globals/atma-utest/index.d.ts +53 -0
- package/typings/globals/atma-utest/typings.json +10 -0
- package/typings/globals/axios/index.d.ts +6 -0
- package/typings/globals/mask/index.d.ts +6 -0
- package/typings/globals/mask/typings.json +9 -0
- package/typings/index.d.ts +6 -0
- package/typings.json +6 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity ^0.8.0;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @dev Library for reading and writing primitive types to specific storage slots.
|
|
7
|
+
*
|
|
8
|
+
* Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
|
|
9
|
+
* This library helps with reading and writing to such slots without the need for inline assembly.
|
|
10
|
+
*
|
|
11
|
+
* The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
|
|
12
|
+
*
|
|
13
|
+
* Example usage to set ERC1967 implementation slot:
|
|
14
|
+
* ```
|
|
15
|
+
* contract ERC1967 {
|
|
16
|
+
* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
|
|
17
|
+
*
|
|
18
|
+
* function _getImplementation() internal view returns (address) {
|
|
19
|
+
* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* function _setImplementation(address newImplementation) internal {
|
|
23
|
+
* require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
|
|
24
|
+
* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
|
|
25
|
+
* }
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._
|
|
30
|
+
*/
|
|
31
|
+
library StorageSlot {
|
|
32
|
+
struct AddressSlot {
|
|
33
|
+
address value;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
struct BooleanSlot {
|
|
37
|
+
bool value;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
struct Bytes32Slot {
|
|
41
|
+
bytes32 value;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
struct Uint256Slot {
|
|
45
|
+
uint256 value;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @dev Returns an `AddressSlot` with member `value` located at `slot`.
|
|
50
|
+
*/
|
|
51
|
+
function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {
|
|
52
|
+
assembly {
|
|
53
|
+
r.slot := slot
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* @dev Returns an `BooleanSlot` with member `value` located at `slot`.
|
|
59
|
+
*/
|
|
60
|
+
function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {
|
|
61
|
+
assembly {
|
|
62
|
+
r.slot := slot
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @dev Returns an `Bytes32Slot` with member `value` located at `slot`.
|
|
68
|
+
*/
|
|
69
|
+
function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {
|
|
70
|
+
assembly {
|
|
71
|
+
r.slot := slot
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @dev Returns an `Uint256Slot` with member `value` located at `slot`.
|
|
77
|
+
*/
|
|
78
|
+
function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {
|
|
79
|
+
assembly {
|
|
80
|
+
r.slot := slot
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// contracts/Structs.sol
|
|
2
|
+
// SPDX-License-Identifier: Apache 2
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
interface Structs {
|
|
7
|
+
struct Provider {
|
|
8
|
+
uint16 chainId;
|
|
9
|
+
uint16 governanceChainId;
|
|
10
|
+
bytes32 governanceContract;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
struct GuardianSet {
|
|
14
|
+
address[] keys;
|
|
15
|
+
uint32 expirationTime;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
struct Signature {
|
|
19
|
+
bytes32 r;
|
|
20
|
+
bytes32 s;
|
|
21
|
+
uint8 v;
|
|
22
|
+
uint8 guardianIndex;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
struct VM {
|
|
26
|
+
uint8 version;
|
|
27
|
+
uint32 timestamp;
|
|
28
|
+
uint32 nonce;
|
|
29
|
+
uint16 emitterChainId;
|
|
30
|
+
bytes32 emitterAddress;
|
|
31
|
+
uint64 sequence;
|
|
32
|
+
uint8 consistencyLevel;
|
|
33
|
+
bytes payload;
|
|
34
|
+
|
|
35
|
+
uint32 guardianSetIndex;
|
|
36
|
+
Signature[] signatures;
|
|
37
|
+
|
|
38
|
+
bytes32 hash;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// contracts/Structs.sol
|
|
2
|
+
// SPDX-License-Identifier: Apache 2
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
|
|
7
|
+
|
|
8
|
+
contract BridgeToken is BeaconProxy {
|
|
9
|
+
constructor(address beacon, bytes memory data) BeaconProxy(beacon, data) {
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// contracts/Wormhole.sol
|
|
2
|
+
// SPDX-License-Identifier: Apache 2
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
|
|
7
|
+
|
|
8
|
+
contract TokenBridge is ERC1967Proxy {
|
|
9
|
+
constructor (address implementation, bytes memory initData)
|
|
10
|
+
ERC1967Proxy(
|
|
11
|
+
implementation,
|
|
12
|
+
initData
|
|
13
|
+
)
|
|
14
|
+
{}
|
|
15
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
// contracts/TokenImplementation.sol
|
|
2
|
+
// SPDX-License-Identifier: Apache 2
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
import "./TokenState.sol";
|
|
7
|
+
import "@openzeppelin/contracts/access/Ownable.sol";
|
|
8
|
+
import "@openzeppelin/contracts/utils/Context.sol";
|
|
9
|
+
import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
|
|
10
|
+
|
|
11
|
+
// Based on the OpenZepplin ERC20 implementation, licensed under MIT
|
|
12
|
+
contract TokenImplementation is TokenState, Context {
|
|
13
|
+
event Transfer(address indexed from, address indexed to, uint256 value);
|
|
14
|
+
event Approval(address indexed owner, address indexed spender, uint256 value);
|
|
15
|
+
|
|
16
|
+
function initialize(
|
|
17
|
+
string memory name_,
|
|
18
|
+
string memory symbol_,
|
|
19
|
+
uint8 decimals_,
|
|
20
|
+
uint64 sequence_,
|
|
21
|
+
|
|
22
|
+
address owner_,
|
|
23
|
+
|
|
24
|
+
uint16 chainId_,
|
|
25
|
+
bytes32 nativeContract_
|
|
26
|
+
) initializer public {
|
|
27
|
+
_state.name = name_;
|
|
28
|
+
_state.symbol = symbol_;
|
|
29
|
+
_state.decimals = decimals_;
|
|
30
|
+
_state.metaLastUpdatedSequence = sequence_;
|
|
31
|
+
|
|
32
|
+
_state.owner = owner_;
|
|
33
|
+
|
|
34
|
+
_state.chainId = chainId_;
|
|
35
|
+
_state.nativeContract = nativeContract_;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function name() public view returns (string memory) {
|
|
39
|
+
return string(abi.encodePacked(_state.name, " (Wormhole)"));
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function symbol() public view returns (string memory) {
|
|
43
|
+
return _state.symbol;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function owner() public view returns (address) {
|
|
47
|
+
return _state.owner;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function decimals() public view returns (uint8) {
|
|
51
|
+
return _state.decimals;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function totalSupply() public view returns (uint256) {
|
|
55
|
+
return _state.totalSupply;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function chainId() public view returns (uint16) {
|
|
59
|
+
return _state.chainId;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function nativeContract() public view returns (bytes32) {
|
|
63
|
+
return _state.nativeContract;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function balanceOf(address account_) public view returns (uint256) {
|
|
67
|
+
return _state.balances[account_];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function transfer(address recipient_, uint256 amount_) public returns (bool) {
|
|
71
|
+
_transfer(_msgSender(), recipient_, amount_);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
function allowance(address owner_, address spender_) public view returns (uint256) {
|
|
76
|
+
return _state.allowances[owner_][spender_];
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function approve(address spender_, uint256 amount_) public returns (bool) {
|
|
80
|
+
_approve(_msgSender(), spender_, amount_);
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function transferFrom(address sender_, address recipient_, uint256 amount_) public returns (bool) {
|
|
85
|
+
_transfer(sender_, recipient_, amount_);
|
|
86
|
+
|
|
87
|
+
uint256 currentAllowance = _state.allowances[sender_][_msgSender()];
|
|
88
|
+
require(currentAllowance >= amount_, "ERC20: transfer amount exceeds allowance");
|
|
89
|
+
_approve(sender_, _msgSender(), currentAllowance - amount_);
|
|
90
|
+
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function increaseAllowance(address spender_, uint256 addedValue_) public returns (bool) {
|
|
95
|
+
_approve(_msgSender(), spender_, _state.allowances[_msgSender()][spender_] + addedValue_);
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function decreaseAllowance(address spender_, uint256 subtractedValue_) public returns (bool) {
|
|
100
|
+
uint256 currentAllowance = _state.allowances[_msgSender()][spender_];
|
|
101
|
+
require(currentAllowance >= subtractedValue_, "ERC20: decreased allowance below zero");
|
|
102
|
+
_approve(_msgSender(), spender_, currentAllowance - subtractedValue_);
|
|
103
|
+
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function _transfer(address sender_, address recipient_, uint256 amount_) internal {
|
|
108
|
+
require(sender_ != address(0), "ERC20: transfer from the zero address");
|
|
109
|
+
require(recipient_ != address(0), "ERC20: transfer to the zero address");
|
|
110
|
+
|
|
111
|
+
uint256 senderBalance = _state.balances[sender_];
|
|
112
|
+
require(senderBalance >= amount_, "ERC20: transfer amount exceeds balance");
|
|
113
|
+
_state.balances[sender_] = senderBalance - amount_;
|
|
114
|
+
_state.balances[recipient_] += amount_;
|
|
115
|
+
|
|
116
|
+
emit Transfer(sender_, recipient_, amount_);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function mint(address account_, uint256 amount_) public onlyOwner {
|
|
120
|
+
_mint(account_, amount_);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function _mint(address account_, uint256 amount_) internal {
|
|
124
|
+
require(account_ != address(0), "ERC20: mint to the zero address");
|
|
125
|
+
|
|
126
|
+
_state.totalSupply += amount_;
|
|
127
|
+
_state.balances[account_] += amount_;
|
|
128
|
+
emit Transfer(address(0), account_, amount_);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function burn(address account_, uint256 amount_) public onlyOwner {
|
|
132
|
+
_burn(account_, amount_);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function _burn(address account_, uint256 amount_) internal {
|
|
136
|
+
require(account_ != address(0), "ERC20: burn from the zero address");
|
|
137
|
+
|
|
138
|
+
uint256 accountBalance = _state.balances[account_];
|
|
139
|
+
require(accountBalance >= amount_, "ERC20: burn amount exceeds balance");
|
|
140
|
+
_state.balances[account_] = accountBalance - amount_;
|
|
141
|
+
_state.totalSupply -= amount_;
|
|
142
|
+
|
|
143
|
+
emit Transfer(account_, address(0), amount_);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function _approve(address owner_, address spender_, uint256 amount_) internal virtual {
|
|
147
|
+
require(owner_ != address(0), "ERC20: approve from the zero address");
|
|
148
|
+
require(spender_ != address(0), "ERC20: approve to the zero address");
|
|
149
|
+
|
|
150
|
+
_state.allowances[owner_][spender_] = amount_;
|
|
151
|
+
emit Approval(owner_, spender_, amount_);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
function updateDetails(string memory name_, string memory symbol_, uint64 sequence_) public onlyOwner {
|
|
155
|
+
require(_state.metaLastUpdatedSequence < sequence_, "current metadata is up to date");
|
|
156
|
+
|
|
157
|
+
_state.name = name_;
|
|
158
|
+
_state.symbol = symbol_;
|
|
159
|
+
_state.metaLastUpdatedSequence = sequence_;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
modifier onlyOwner() {
|
|
163
|
+
require(owner() == _msgSender(), "caller is not the owner");
|
|
164
|
+
_;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
modifier initializer() {
|
|
168
|
+
require(
|
|
169
|
+
!_state.initialized,
|
|
170
|
+
"Already initialized"
|
|
171
|
+
);
|
|
172
|
+
|
|
173
|
+
_state.initialized = true;
|
|
174
|
+
|
|
175
|
+
_;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// contracts/State.sol
|
|
2
|
+
// SPDX-License-Identifier: Apache 2
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.0;
|
|
5
|
+
|
|
6
|
+
contract TokenStorage {
|
|
7
|
+
struct State {
|
|
8
|
+
string name;
|
|
9
|
+
string symbol;
|
|
10
|
+
|
|
11
|
+
uint64 metaLastUpdatedSequence;
|
|
12
|
+
|
|
13
|
+
uint256 totalSupply;
|
|
14
|
+
uint8 decimals;
|
|
15
|
+
|
|
16
|
+
mapping(address => uint256) balances;
|
|
17
|
+
|
|
18
|
+
mapping(address => mapping(address => uint256)) allowances;
|
|
19
|
+
|
|
20
|
+
address owner;
|
|
21
|
+
|
|
22
|
+
bool initialized;
|
|
23
|
+
|
|
24
|
+
uint16 chainId;
|
|
25
|
+
bytes32 nativeContract;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
contract TokenState {
|
|
30
|
+
TokenStorage.State _state;
|
|
31
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AUTO-Generated Class: 2022-01-26 09:40
|
|
3
|
+
* Implementation: https://polygonscan.com/address/0x449c258f75bef9b6840e9252706d1644a9b4983c#code
|
|
4
|
+
*/
|
|
5
|
+
import di from 'a-di';
|
|
6
|
+
import { TAddress } from '@dequanto/models/TAddress';
|
|
7
|
+
import { ClientEventsStream } from '@dequanto/clients/ClientEventsStream';
|
|
8
|
+
import { ContractBase } from '@dequanto/contracts/ContractBase';
|
|
9
|
+
import { AbiItem } from 'web3-utils';
|
|
10
|
+
import { TransactionReceipt } from 'web3-core';
|
|
11
|
+
import { EventData } from 'web3-eth-contract';
|
|
12
|
+
import { TxWriter } from '@dequanto/txs/TxWriter';
|
|
13
|
+
import { Web3Client } from '@dequanto/clients/Web3Client';
|
|
14
|
+
import { IBlockChainExplorer } from '@dequanto/BlockchainExplorer/IBlockChainExplorer';
|
|
15
|
+
|
|
16
|
+
import { Polyscan } from '@dequanto/BlockchainExplorer/Polyscan'
|
|
17
|
+
import { PolyWeb3Client } from '@dequanto/clients/PolyWeb3Client'
|
|
18
|
+
export class WormholeBridgeContractBase extends ContractBase {
|
|
19
|
+
constructor(
|
|
20
|
+
public address: TAddress = '0x5a58505a96d1dbf8df91cb21b54419fc36e93fde',
|
|
21
|
+
public client: Web3Client = di.resolve(PolyWeb3Client),
|
|
22
|
+
public explorer: IBlockChainExplorer = di.resolve(Polyscan)
|
|
23
|
+
) {
|
|
24
|
+
super(address, client, explorer)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// 0xad5c4648
|
|
28
|
+
async WETH (): Promise<TAddress> {
|
|
29
|
+
return this.$read('function WETH() returns address');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// 0xc48fa115
|
|
33
|
+
async attestToken (eoa: {address: TAddress, key: string, value?: string | number | bigint }, tokenAddress: TAddress, nonce: number): Promise<TxWriter> {
|
|
34
|
+
return this.$write(this.$getAbiItem('function', 'attestToken'), eoa, tokenAddress, nonce);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 0xad66a5f1
|
|
38
|
+
async bridgeContracts (chainId_: number): Promise<Buffer | string> {
|
|
39
|
+
return this.$read('function bridgeContracts(uint16) returns bytes32', chainId_);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// 0x9a8a0592
|
|
43
|
+
async chainId (): Promise<number> {
|
|
44
|
+
return this.$read('function chainId() returns uint16');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// 0xc6878519
|
|
48
|
+
async completeTransfer (eoa: {address: TAddress, key: string, value?: string | number | bigint }, encodedVm: Buffer | string): Promise<TxWriter> {
|
|
49
|
+
return this.$write(this.$getAbiItem('function', 'completeTransfer'), eoa, encodedVm);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 0xff200cde
|
|
53
|
+
async completeTransferAndUnwrapETH (eoa: {address: TAddress, key: string, value?: string | number | bigint }, encodedVm: Buffer | string): Promise<TxWriter> {
|
|
54
|
+
return this.$write(this.$getAbiItem('function', 'completeTransferAndUnwrapETH'), eoa, encodedVm);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// 0xe8059810
|
|
58
|
+
async createWrapped (eoa: {address: TAddress, key: string, value?: string | number | bigint }, encodedVm: Buffer | string): Promise<TxWriter> {
|
|
59
|
+
return this.$write(this.$getAbiItem('function', 'createWrapped'), eoa, encodedVm);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// 0xb046223b
|
|
63
|
+
async encodeAssetMeta (meta: { payloadID: number, tokenAddress: Buffer | string, tokenChain: number, decimals: number, symbol: Buffer | string, name: Buffer | string }): Promise<Buffer | string> {
|
|
64
|
+
return this.$read('function encodeAssetMeta(tuple) returns bytes', meta);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// 0x5f854266
|
|
68
|
+
async encodeTransfer (transfer: { payloadID: number, amount: bigint, tokenAddress: Buffer | string, tokenChain: number, to: Buffer | string, toChain: number, fee: bigint }): Promise<Buffer | string> {
|
|
69
|
+
return this.$read('function encodeTransfer(tuple) returns bytes', transfer);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// 0x2c3c02a4
|
|
73
|
+
async governanceActionIsConsumed (hash: Buffer | string): Promise<boolean> {
|
|
74
|
+
return this.$read('function governanceActionIsConsumed(bytes32) returns bool', hash);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// 0xfbe3c2cd
|
|
78
|
+
async governanceChainId (): Promise<number> {
|
|
79
|
+
return this.$read('function governanceChainId() returns uint16');
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// 0xb172b222
|
|
83
|
+
async governanceContract (): Promise<Buffer | string> {
|
|
84
|
+
return this.$read('function governanceContract() returns bytes32');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// 0x5c60da1b
|
|
88
|
+
async implementation (): Promise<TAddress> {
|
|
89
|
+
return this.$read('function implementation() returns address');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// 0x8129fc1c
|
|
93
|
+
async initialize (eoa: {address: TAddress, key: string, value?: string | number | bigint }, ): Promise<TxWriter> {
|
|
94
|
+
return this.$write(this.$getAbiItem('function', 'initialize'), eoa);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// 0xd60b347f
|
|
98
|
+
async isInitialized (impl: TAddress): Promise<boolean> {
|
|
99
|
+
return this.$read('function isInitialized(address) returns bool', impl);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// 0xaa4efa5b
|
|
103
|
+
async isTransferCompleted (hash: Buffer | string): Promise<boolean> {
|
|
104
|
+
return this.$read('function isTransferCompleted(bytes32) returns bool', hash);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// 0x1a2be4da
|
|
108
|
+
async isWrappedAsset (token: TAddress): Promise<boolean> {
|
|
109
|
+
return this.$read('function isWrappedAsset(address) returns bool', token);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// 0xb96c7e4d
|
|
113
|
+
async outstandingBridged (token: TAddress): Promise<bigint> {
|
|
114
|
+
return this.$read('function outstandingBridged(address) returns uint256', token);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// 0x07dfd8fb
|
|
118
|
+
async parseAssetMeta (encoded: Buffer | string): Promise<{ payloadID: number, tokenAddress: Buffer | string, tokenChain: number, decimals: number, symbol: Buffer | string, name: Buffer | string }> {
|
|
119
|
+
return this.$read('function parseAssetMeta(bytes) returns [uint8,bytes32,uint16,uint8,bytes32,bytes32]', encoded);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// 0x01f53255
|
|
123
|
+
async parseRegisterChain (encoded: Buffer | string): Promise<{ module: Buffer | string, action: number, chainId: number, emitterChainID: number, emitterAddress: Buffer | string }> {
|
|
124
|
+
return this.$read('function parseRegisterChain(bytes) returns [bytes32,uint8,uint16,uint16,bytes32]', encoded);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// 0x2b511375
|
|
128
|
+
async parseTransfer (encoded: Buffer | string): Promise<{ payloadID: number, amount: bigint, tokenAddress: Buffer | string, tokenChain: number, to: Buffer | string, toChain: number, fee: bigint }> {
|
|
129
|
+
return this.$read('function parseTransfer(bytes) returns [uint8,uint256,bytes32,uint16,bytes32,uint16,uint256]', encoded);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// 0xfbeeacd9
|
|
133
|
+
async parseUpgrade (encoded: Buffer | string): Promise<{ module: Buffer | string, action: number, chainId: number, newContract: Buffer | string }> {
|
|
134
|
+
return this.$read('function parseUpgrade(bytes) returns [bytes32,uint8,uint16,bytes32]', encoded);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// 0xa5799f93
|
|
138
|
+
async registerChain (eoa: {address: TAddress, key: string, value?: string | number | bigint }, encodedVM: Buffer | string): Promise<TxWriter> {
|
|
139
|
+
return this.$write(this.$getAbiItem('function', 'registerChain'), eoa, encodedVM);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// 0x2f3a3d5d
|
|
143
|
+
async tokenImplementation (): Promise<TAddress> {
|
|
144
|
+
return this.$read('function tokenImplementation() returns address');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// 0x0f5287b0
|
|
148
|
+
async transferTokens (eoa: {address: TAddress, key: string, value?: string | number | bigint }, token: TAddress, amount: bigint, recipientChain: number, recipient: Buffer | string, arbiterFee: bigint, nonce: number): Promise<TxWriter> {
|
|
149
|
+
return this.$write(this.$getAbiItem('function', 'transferTokens'), eoa, token, amount, recipientChain, recipient, arbiterFee, nonce);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// 0xf768441f
|
|
153
|
+
async updateWrapped (eoa: {address: TAddress, key: string, value?: string | number | bigint }, encodedVm: Buffer | string): Promise<TxWriter> {
|
|
154
|
+
return this.$write(this.$getAbiItem('function', 'updateWrapped'), eoa, encodedVm);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// 0x25394645
|
|
158
|
+
async upgrade (eoa: {address: TAddress, key: string, value?: string | number | bigint }, encodedVM: Buffer | string): Promise<TxWriter> {
|
|
159
|
+
return this.$write(this.$getAbiItem('function', 'upgrade'), eoa, encodedVM);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// 0x84acd1bb
|
|
163
|
+
async wormhole (): Promise<TAddress> {
|
|
164
|
+
return this.$read('function wormhole() returns address');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// 0x9981509f
|
|
168
|
+
async wrapAndTransferETH (eoa: {address: TAddress, key: string, value?: string | number | bigint }, recipientChain: number, recipient: Buffer | string, arbiterFee: bigint, nonce: number): Promise<TxWriter> {
|
|
169
|
+
return this.$write(this.$getAbiItem('function', 'wrapAndTransferETH'), eoa, recipientChain, recipient, arbiterFee, nonce);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// 0x1ff1e286
|
|
173
|
+
async wrappedAsset (tokenChainId: number, tokenAddress: Buffer | string): Promise<TAddress> {
|
|
174
|
+
return this.$read('function wrappedAsset(uint16, bytes32) returns address', tokenChainId, tokenAddress);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
onAdminChanged (fn: (event: EventData, previousAdmin: TAddress, newAdmin: TAddress) => void): ClientEventsStream<any> {
|
|
178
|
+
return this.$on('AdminChanged', fn);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
onBeaconUpgraded (fn: (event: EventData, beacon: TAddress) => void): ClientEventsStream<any> {
|
|
182
|
+
return this.$on('BeaconUpgraded', fn);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
onContractUpgraded (fn: (event: EventData, oldContract: TAddress, newContract: TAddress) => void): ClientEventsStream<any> {
|
|
186
|
+
return this.$on('ContractUpgraded', fn);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
onUpgraded (fn: (event: EventData, implementation: TAddress) => void): ClientEventsStream<any> {
|
|
190
|
+
return this.$on('Upgraded', fn);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
extractLogsAdminChanged (tx: TransactionReceipt): TLogAdminChanged[] {
|
|
194
|
+
let abi = this.$getAbiItem('event', 'AdminChanged');
|
|
195
|
+
return this.$extractLogs(tx, abi) as any as TLogAdminChanged[];
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
extractLogsBeaconUpgraded (tx: TransactionReceipt): TLogBeaconUpgraded[] {
|
|
199
|
+
let abi = this.$getAbiItem('event', 'BeaconUpgraded');
|
|
200
|
+
return this.$extractLogs(tx, abi) as any as TLogBeaconUpgraded[];
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
extractLogsContractUpgraded (tx: TransactionReceipt): TLogContractUpgraded[] {
|
|
204
|
+
let abi = this.$getAbiItem('event', 'ContractUpgraded');
|
|
205
|
+
return this.$extractLogs(tx, abi) as any as TLogContractUpgraded[];
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
extractLogsUpgraded (tx: TransactionReceipt): TLogUpgraded[] {
|
|
209
|
+
let abi = this.$getAbiItem('event', 'Upgraded');
|
|
210
|
+
return this.$extractLogs(tx, abi) as any as TLogUpgraded[];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
abi = [{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldContract","type":"address"},{"indexed":true,"internalType":"address","name":"newContract","type":"address"}],"name":"ContractUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint32","name":"nonce","type":"uint32"}],"name":"attestToken","outputs":[{"internalType":"uint64","name":"sequence","type":"uint64"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"chainId_","type":"uint16"}],"name":"bridgeContracts","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"encodedVm","type":"bytes"}],"name":"completeTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"encodedVm","type":"bytes"}],"name":"completeTransferAndUnwrapETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"encodedVm","type":"bytes"}],"name":"createWrapped","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"payloadID","type":"uint8"},{"internalType":"bytes32","name":"tokenAddress","type":"bytes32"},{"internalType":"uint16","name":"tokenChain","type":"uint16"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"bytes32","name":"symbol","type":"bytes32"},{"internalType":"bytes32","name":"name","type":"bytes32"}],"internalType":"struct BridgeStructs.AssetMeta","name":"meta","type":"tuple"}],"name":"encodeAssetMeta","outputs":[{"internalType":"bytes","name":"encoded","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint8","name":"payloadID","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"tokenAddress","type":"bytes32"},{"internalType":"uint16","name":"tokenChain","type":"uint16"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint16","name":"toChain","type":"uint16"},{"internalType":"uint256","name":"fee","type":"uint256"}],"internalType":"struct BridgeStructs.Transfer","name":"transfer","type":"tuple"}],"name":"encodeTransfer","outputs":[{"internalType":"bytes","name":"encoded","type":"bytes"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"governanceActionIsConsumed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governanceContract","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl","type":"address"}],"name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"isTransferCompleted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"isWrappedAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"outstandingBridged","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"encoded","type":"bytes"}],"name":"parseAssetMeta","outputs":[{"components":[{"internalType":"uint8","name":"payloadID","type":"uint8"},{"internalType":"bytes32","name":"tokenAddress","type":"bytes32"},{"internalType":"uint16","name":"tokenChain","type":"uint16"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"bytes32","name":"symbol","type":"bytes32"},{"internalType":"bytes32","name":"name","type":"bytes32"}],"internalType":"struct BridgeStructs.AssetMeta","name":"meta","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"encoded","type":"bytes"}],"name":"parseRegisterChain","outputs":[{"components":[{"internalType":"bytes32","name":"module","type":"bytes32"},{"internalType":"uint8","name":"action","type":"uint8"},{"internalType":"uint16","name":"chainId","type":"uint16"},{"internalType":"uint16","name":"emitterChainID","type":"uint16"},{"internalType":"bytes32","name":"emitterAddress","type":"bytes32"}],"internalType":"struct BridgeStructs.RegisterChain","name":"chain","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"encoded","type":"bytes"}],"name":"parseTransfer","outputs":[{"components":[{"internalType":"uint8","name":"payloadID","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"tokenAddress","type":"bytes32"},{"internalType":"uint16","name":"tokenChain","type":"uint16"},{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"uint16","name":"toChain","type":"uint16"},{"internalType":"uint256","name":"fee","type":"uint256"}],"internalType":"struct BridgeStructs.Transfer","name":"transfer","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"encoded","type":"bytes"}],"name":"parseUpgrade","outputs":[{"components":[{"internalType":"bytes32","name":"module","type":"bytes32"},{"internalType":"uint8","name":"action","type":"uint8"},{"internalType":"uint16","name":"chainId","type":"uint16"},{"internalType":"bytes32","name":"newContract","type":"bytes32"}],"internalType":"struct BridgeStructs.UpgradeContract","name":"chain","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"encodedVM","type":"bytes"}],"name":"registerChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"tokenImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint16","name":"recipientChain","type":"uint16"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"uint256","name":"arbiterFee","type":"uint256"},{"internalType":"uint32","name":"nonce","type":"uint32"}],"name":"transferTokens","outputs":[{"internalType":"uint64","name":"sequence","type":"uint64"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"encodedVm","type":"bytes"}],"name":"updateWrapped","outputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"encodedVM","type":"bytes"}],"name":"upgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wormhole","outputs":[{"internalType":"contract IWormhole","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"recipientChain","type":"uint16"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"uint256","name":"arbiterFee","type":"uint256"},{"internalType":"uint32","name":"nonce","type":"uint32"}],"name":"wrapAndTransferETH","outputs":[{"internalType":"uint64","name":"sequence","type":"uint64"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"tokenChainId","type":"uint16"},{"internalType":"bytes32","name":"tokenAddress","type":"bytes32"}],"name":"wrappedAsset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
type TLogAdminChanged = {
|
|
217
|
+
contract: TAddress,
|
|
218
|
+
previousAdmin: TAddress, newAdmin: TAddress
|
|
219
|
+
}
|
|
220
|
+
type TLogBeaconUpgraded = {
|
|
221
|
+
contract: TAddress,
|
|
222
|
+
beacon: TAddress
|
|
223
|
+
}
|
|
224
|
+
type TLogContractUpgraded = {
|
|
225
|
+
contract: TAddress,
|
|
226
|
+
oldContract: TAddress, newContract: TAddress
|
|
227
|
+
}
|
|
228
|
+
type TLogUpgraded = {
|
|
229
|
+
contract: TAddress,
|
|
230
|
+
implementation: TAddress
|
|
231
|
+
}
|