@across-protocol/sdk 4.3.111-alpha.0 → 4.3.111-alpha.2
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/cjs/addressAggregator/adapters/abstract.js +50 -64
- package/dist/cjs/addressAggregator/adapters/abstract.js.map +1 -1
- package/dist/cjs/addressAggregator/adapters/bybit.js +16 -29
- package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -1
- package/dist/cjs/addressAggregator/adapters/env.js +11 -15
- package/dist/cjs/addressAggregator/adapters/env.js.map +1 -1
- package/dist/cjs/addressAggregator/adapters/file.js +32 -45
- package/dist/cjs/addressAggregator/adapters/file.js.map +1 -1
- package/dist/cjs/addressAggregator/adapters/index.js +1 -1
- package/dist/cjs/addressAggregator/adapters/risklabs.js +22 -36
- package/dist/cjs/addressAggregator/adapters/risklabs.js.map +1 -1
- package/dist/cjs/addressAggregator/index.js +57 -87
- package/dist/cjs/addressAggregator/index.js.map +1 -1
- package/dist/cjs/apiClient/abstractClient.js +9 -8
- package/dist/cjs/apiClient/abstractClient.js.map +1 -1
- package/dist/cjs/apiClient/index.js +1 -1
- package/dist/cjs/apiClient/mockedClient.js +23 -29
- package/dist/cjs/apiClient/mockedClient.js.map +1 -1
- package/dist/cjs/apiClient/productionClient.js +65 -103
- package/dist/cjs/apiClient/productionClient.js.map +1 -1
- package/dist/cjs/arch/evm/BlockUtils.js +122 -208
- package/dist/cjs/arch/evm/BlockUtils.js.map +1 -1
- package/dist/cjs/arch/evm/MessageUtils.js +1 -1
- package/dist/cjs/arch/evm/MessageUtils.js.map +1 -1
- package/dist/cjs/arch/evm/SpokeUtils.js +134 -288
- package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/evm/index.js +1 -1
- package/dist/cjs/arch/evm/utils/index.js +1 -1
- package/dist/cjs/arch/evm/utils/wait.js +38 -49
- package/dist/cjs/arch/evm/utils/wait.js.map +1 -1
- package/dist/cjs/arch/index.js +1 -1
- package/dist/cjs/arch/svm/BlockUtils.js +102 -158
- package/dist/cjs/arch/svm/BlockUtils.js.map +1 -1
- package/dist/cjs/arch/svm/MessageUtils.js +2 -2
- package/dist/cjs/arch/svm/MessageUtils.js.map +1 -1
- package/dist/cjs/arch/svm/SpokeUtils.js +708 -1147
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/encoders.js +1 -1
- package/dist/cjs/arch/svm/encoders.js.map +1 -1
- package/dist/cjs/arch/svm/eventsClient.js +174 -236
- package/dist/cjs/arch/svm/eventsClient.js.map +1 -1
- package/dist/cjs/arch/svm/index.js +1 -1
- package/dist/cjs/arch/svm/provider.js +3 -3
- package/dist/cjs/arch/svm/provider.js.map +1 -1
- package/dist/cjs/arch/svm/utils.js +166 -355
- package/dist/cjs/arch/svm/utils.js.map +1 -1
- package/dist/cjs/caching/Arweave/ArweaveClient.js +168 -246
- package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -1
- package/dist/cjs/caching/Arweave/index.js +1 -1
- package/dist/cjs/caching/IPFS/PinataIPFSClient.js +40 -49
- package/dist/cjs/caching/IPFS/PinataIPFSClient.js.map +1 -1
- package/dist/cjs/caching/IPFS/index.js +1 -1
- package/dist/cjs/caching/Memory/MemoryCacheClient.js +13 -18
- package/dist/cjs/caching/Memory/MemoryCacheClient.js.map +1 -1
- package/dist/cjs/caching/Memory/index.js +1 -1
- package/dist/cjs/caching/index.js +1 -1
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +302 -381
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/cjs/clients/AcrossConfigStoreClient/index.js +1 -1
- package/dist/cjs/clients/BaseAbstractClient.js +58 -83
- package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +709 -900
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/index.js +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +95 -128
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +48 -53
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js +10 -8
- package/dist/cjs/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +67 -90
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js +46 -24
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/index.js +1 -1
- package/dist/cjs/clients/HubPoolClient.js +526 -708
- package/dist/cjs/clients/HubPoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +133 -179
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +124 -183
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +357 -389
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js +9 -8
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClientManager.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/index.js +3 -3
- package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/cjs/clients/index.js +1 -1
- package/dist/cjs/clients/mocks/MockConfigStoreClient.js +58 -67
- package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockEvents.js +47 -52
- package/dist/cjs/clients/mocks/MockEvents.js.map +1 -1
- package/dist/cjs/clients/mocks/MockHubPoolClient.js +142 -185
- package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js +208 -192
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +140 -143
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +57 -73
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/index.js +1 -1
- package/dist/cjs/coingecko/Coingecko.js +285 -437
- package/dist/cjs/coingecko/Coingecko.js.map +1 -1
- package/dist/cjs/coingecko/index.js +1 -1
- package/dist/cjs/constants.js +23 -30
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts/acrossConfigStore.js +27 -48
- package/dist/cjs/contracts/acrossConfigStore.js.map +1 -1
- package/dist/cjs/contracts/hubPool.js +36 -20
- package/dist/cjs/contracts/hubPool.js.map +1 -1
- package/dist/cjs/contracts/index.js +1 -1
- package/dist/cjs/contracts/utils.js +6 -8
- package/dist/cjs/contracts/utils.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +7 -16
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js +26 -45
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +16 -28
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/polygon.js +73 -112
- package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/solana.js +20 -33
- package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -1
- package/dist/cjs/gasPriceOracle/oracle.js +77 -104
- package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
- package/dist/cjs/gasPriceOracle/types.js +3 -3
- package/dist/cjs/gasPriceOracle/types.js.map +1 -1
- package/dist/cjs/gasPriceOracle/util.js +8 -8
- package/dist/cjs/gasPriceOracle/util.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/interfaces/index.js +1 -1
- package/dist/cjs/lpFeeCalculator/index.js +1 -1
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +33 -35
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
- package/dist/cjs/lpFeeCalculator/rateModel.js +7 -9
- package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -1
- package/dist/cjs/merkleDistributor/MerkleDistributor.js +20 -18
- package/dist/cjs/merkleDistributor/MerkleDistributor.js.map +1 -1
- package/dist/cjs/merkleDistributor/index.js +1 -1
- package/dist/cjs/merkleDistributor/model/index.js +1 -1
- package/dist/cjs/pool/TransactionManager.js +45 -100
- package/dist/cjs/pool/TransactionManager.js.map +1 -1
- package/dist/cjs/pool/index.js +1 -1
- package/dist/cjs/pool/poolClient.js +464 -731
- package/dist/cjs/pool/poolClient.js.map +1 -1
- package/dist/cjs/pool/uma/across/index.js +1 -1
- package/dist/cjs/pool/uma/across/transactionManager.js +45 -100
- package/dist/cjs/pool/uma/across/transactionManager.js.map +1 -1
- package/dist/cjs/pool/uma/clients/erc20/client.js +18 -16
- package/dist/cjs/pool/uma/clients/erc20/client.js.map +1 -1
- package/dist/cjs/pool/uma/clients/erc20/index.js +1 -1
- package/dist/cjs/pool/uma/clients/index.js +1 -1
- package/dist/cjs/pool/uma/index.js +1 -1
- package/dist/cjs/pool/uma/oracle/index.js +1 -1
- package/dist/cjs/pool/uma/oracle/utils.js +4 -5
- package/dist/cjs/pool/uma/oracle/utils.js.map +1 -1
- package/dist/cjs/pool/uma/utils.js +11 -30
- package/dist/cjs/pool/uma/utils.js.map +1 -1
- package/dist/cjs/priceClient/adapters/acrossApi.js +22 -39
- package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -1
- package/dist/cjs/priceClient/adapters/baseAdapter.js +49 -73
- package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -1
- package/dist/cjs/priceClient/adapters/coingecko.js +34 -61
- package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -1
- package/dist/cjs/priceClient/adapters/default.js +16 -31
- package/dist/cjs/priceClient/adapters/default.js.map +1 -1
- package/dist/cjs/priceClient/adapters/defiLlama.js +40 -74
- package/dist/cjs/priceClient/adapters/defiLlama.js.map +1 -1
- package/dist/cjs/priceClient/adapters/index.js +1 -1
- package/dist/cjs/priceClient/index.js +1 -1
- package/dist/cjs/priceClient/priceClient.js +110 -159
- package/dist/cjs/priceClient/priceClient.js.map +1 -1
- package/dist/cjs/providers/alchemy.js +17 -19
- package/dist/cjs/providers/alchemy.js.map +1 -1
- package/dist/cjs/providers/cachedProvider.js +88 -129
- package/dist/cjs/providers/cachedProvider.js.map +1 -1
- package/dist/cjs/providers/drpc.js +9 -11
- package/dist/cjs/providers/drpc.js.map +1 -1
- package/dist/cjs/providers/index.js +1 -1
- package/dist/cjs/providers/infura.js +10 -12
- package/dist/cjs/providers/infura.js.map +1 -1
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +7 -15
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +6 -14
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js +7 -15
- package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +42 -66
- package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/mocks/index.js +1 -1
- package/dist/cjs/providers/mocks/mockEthersProvider.js +29 -31
- package/dist/cjs/providers/mocks/mockEthersProvider.js.map +1 -1
- package/dist/cjs/providers/quicknode.js +19 -21
- package/dist/cjs/providers/quicknode.js.map +1 -1
- package/dist/cjs/providers/rateLimitedProvider.js +64 -79
- package/dist/cjs/providers/rateLimitedProvider.js.map +1 -1
- package/dist/cjs/providers/retryProvider.js +163 -246
- package/dist/cjs/providers/retryProvider.js.map +1 -1
- package/dist/cjs/providers/solana/baseRpcFactories.js +14 -18
- package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
- package/dist/cjs/providers/solana/cachedRpcFactory.js +70 -112
- package/dist/cjs/providers/solana/cachedRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/defaultRpcFactory.js +8 -15
- package/dist/cjs/providers/solana/defaultRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/index.js +1 -1
- package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js +135 -191
- package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/rateLimitedRpcFactory.js +67 -90
- package/dist/cjs/providers/solana/rateLimitedRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/retryRpcFactory.js +52 -79
- package/dist/cjs/providers/solana/retryRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/utils.js +2 -2
- package/dist/cjs/providers/solana/utils.js.map +1 -1
- package/dist/cjs/providers/speedProvider.js +31 -53
- package/dist/cjs/providers/speedProvider.js.map +1 -1
- package/dist/cjs/providers/types.js +1 -1
- package/dist/cjs/providers/types.js.map +1 -1
- package/dist/cjs/providers/utils.js +26 -28
- package/dist/cjs/providers/utils.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +108 -162
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js +14 -26
- package/dist/cjs/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +20 -29
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/index.js +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +88 -137
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/index.js +1 -1
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +199 -297
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
- package/dist/cjs/typeguards/error.js +5 -7
- package/dist/cjs/typeguards/error.js.map +1 -1
- package/dist/cjs/typeguards/index.js +1 -1
- package/dist/cjs/utils/AddressUtils.js +117 -144
- package/dist/cjs/utils/AddressUtils.js.map +1 -1
- package/dist/cjs/utils/ArrayUtils.js +21 -78
- package/dist/cjs/utils/ArrayUtils.js.map +1 -1
- package/dist/cjs/utils/BigNumberUtils.js +9 -10
- package/dist/cjs/utils/BigNumberUtils.js.map +1 -1
- package/dist/cjs/utils/BlockExplorerUtils.js +26 -30
- package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -1
- package/dist/cjs/utils/BlockFinder.js +2 -5
- package/dist/cjs/utils/BlockFinder.js.map +1 -1
- package/dist/cjs/utils/BlockUtils.js +24 -41
- package/dist/cjs/utils/BlockUtils.js.map +1 -1
- package/dist/cjs/utils/BundleUtils.js +21 -24
- package/dist/cjs/utils/BundleUtils.js.map +1 -1
- package/dist/cjs/utils/CCTPUtils.js +62 -126
- package/dist/cjs/utils/CCTPUtils.js.map +1 -1
- package/dist/cjs/utils/CachingUtils.js +20 -42
- package/dist/cjs/utils/CachingUtils.js.map +1 -1
- package/dist/cjs/utils/ContractUtils.js +5 -5
- package/dist/cjs/utils/ContractUtils.js.map +1 -1
- package/dist/cjs/utils/DepositUtils.js +122 -99
- package/dist/cjs/utils/DepositUtils.js.map +1 -1
- package/dist/cjs/utils/EventUtils.js +49 -70
- package/dist/cjs/utils/EventUtils.js.map +1 -1
- package/dist/cjs/utils/FormattingUtils.js +26 -32
- package/dist/cjs/utils/FormattingUtils.js.map +1 -1
- package/dist/cjs/utils/HyperLiquidUtils.js +10 -23
- package/dist/cjs/utils/HyperLiquidUtils.js.map +1 -1
- package/dist/cjs/utils/IPFSUtils.js +16 -34
- package/dist/cjs/utils/IPFSUtils.js.map +1 -1
- package/dist/cjs/utils/JSONUtils.js +6 -6
- package/dist/cjs/utils/JSONUtils.js.map +1 -1
- package/dist/cjs/utils/LogUtils.js +10 -12
- package/dist/cjs/utils/LogUtils.js.map +1 -1
- package/dist/cjs/utils/Multicall.js +56 -115
- package/dist/cjs/utils/Multicall.js.map +1 -1
- package/dist/cjs/utils/NetworkUtils.js +12 -28
- package/dist/cjs/utils/NetworkUtils.js.map +1 -1
- package/dist/cjs/utils/NumberUtils.js +1 -3
- package/dist/cjs/utils/NumberUtils.js.map +1 -1
- package/dist/cjs/utils/ObjectUtils.js +27 -41
- package/dist/cjs/utils/ObjectUtils.js.map +1 -1
- package/dist/cjs/utils/Profiler.js +80 -83
- package/dist/cjs/utils/Profiler.js.map +1 -1
- package/dist/cjs/utils/ReviverUtils.js +5 -9
- package/dist/cjs/utils/ReviverUtils.js.map +1 -1
- package/dist/cjs/utils/SpokeUtils.js +84 -84
- package/dist/cjs/utils/SpokeUtils.js.map +1 -1
- package/dist/cjs/utils/TokenUtils.js +41 -64
- package/dist/cjs/utils/TokenUtils.js.map +1 -1
- package/dist/cjs/utils/TypeGuards.js +1 -1
- package/dist/cjs/utils/TypeGuards.js.map +1 -1
- package/dist/cjs/utils/ValidatorUtils.js +7 -7
- package/dist/cjs/utils/ValidatorUtils.js.map +1 -1
- package/dist/cjs/utils/abi/contracts/index.js +1 -1
- package/dist/cjs/utils/abi/index.js +12 -22
- package/dist/cjs/utils/abi/index.js.map +1 -1
- package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js +9 -12
- package/dist/cjs/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
- package/dist/cjs/utils/abi/typechain/index.js +1 -1
- package/dist/cjs/utils/common.js +40 -53
- package/dist/cjs/utils/common.js.map +1 -1
- package/dist/cjs/utils/index.js +1 -1
- package/dist/esm/addressAggregator/adapters/abstract.js +48 -64
- package/dist/esm/addressAggregator/adapters/abstract.js.map +1 -1
- package/dist/esm/addressAggregator/adapters/bybit.js +15 -29
- package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -1
- package/dist/esm/addressAggregator/adapters/env.js +9 -14
- package/dist/esm/addressAggregator/adapters/env.js.map +1 -1
- package/dist/esm/addressAggregator/adapters/file.js +29 -43
- package/dist/esm/addressAggregator/adapters/file.js.map +1 -1
- package/dist/esm/addressAggregator/adapters/risklabs.js +20 -35
- package/dist/esm/addressAggregator/adapters/risklabs.js.map +1 -1
- package/dist/esm/addressAggregator/index.js +52 -83
- package/dist/esm/addressAggregator/index.js.map +1 -1
- package/dist/esm/addressAggregator/types.js +1 -1
- package/dist/esm/addressAggregator/types.js.map +1 -1
- package/dist/esm/apiClient/abstractClient.js +15 -9
- package/dist/esm/apiClient/abstractClient.js.map +1 -1
- package/dist/esm/apiClient/mockedClient.js +21 -26
- package/dist/esm/apiClient/mockedClient.js.map +1 -1
- package/dist/esm/apiClient/productionClient.js +61 -101
- package/dist/esm/apiClient/productionClient.js.map +1 -1
- package/dist/esm/arch/evm/BlockUtils.js +139 -217
- package/dist/esm/arch/evm/BlockUtils.js.map +1 -1
- package/dist/esm/arch/evm/SpokeUtils.js +146 -289
- package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/evm/utils/wait.js +34 -46
- package/dist/esm/arch/evm/utils/wait.js.map +1 -1
- package/dist/esm/arch/svm/BlockUtils.js +118 -166
- package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.js +738 -1150
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/constants.js +1 -1
- package/dist/esm/arch/svm/constants.js.map +1 -1
- package/dist/esm/arch/svm/eventsClient.js +172 -232
- package/dist/esm/arch/svm/eventsClient.js.map +1 -1
- package/dist/esm/arch/svm/provider.js +1 -1
- package/dist/esm/arch/svm/provider.js.map +1 -1
- package/dist/esm/arch/svm/utils.js +155 -345
- package/dist/esm/arch/svm/utils.js.map +1 -1
- package/dist/esm/caching/Arweave/ArweaveClient.js +182 -256
- package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -1
- package/dist/esm/caching/IPFS/PinataIPFSClient.js +47 -48
- package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -1
- package/dist/esm/caching/Memory/MemoryCacheClient.js +13 -19
- package/dist/esm/caching/Memory/MemoryCacheClient.js.map +1 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +333 -408
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/esm/clients/BaseAbstractClient.js +66 -92
- package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +927 -1054
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +102 -131
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +57 -59
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js +7 -5
- package/dist/esm/clients/BundleDataClient/utils/MerkleTreeUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +75 -94
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js +45 -23
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.js.map +1 -1
- package/dist/esm/clients/HubPoolClient.js +581 -740
- package/dist/esm/clients/HubPoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +133 -178
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +126 -183
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +372 -399
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClientManager.js +9 -9
- package/dist/esm/clients/SpokePoolClient/SpokePoolClientManager.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/index.js +2 -2
- package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/types.js +2 -2
- package/dist/esm/clients/SpokePoolClient/types.js.map +1 -1
- package/dist/esm/clients/mocks/MockConfigStoreClient.js +53 -64
- package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockEvents.js +42 -49
- package/dist/esm/clients/mocks/MockEvents.js.map +1 -1
- package/dist/esm/clients/mocks/MockHubPoolClient.js +138 -182
- package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSpokePoolClient.js +202 -188
- package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +127 -132
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +53 -69
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +1 -1
- package/dist/esm/coingecko/Coingecko.js +298 -443
- package/dist/esm/coingecko/Coingecko.js.map +1 -1
- package/dist/esm/constants.js +40 -47
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/contracts/acrossConfigStore.js +24 -46
- package/dist/esm/contracts/acrossConfigStore.js.map +1 -1
- package/dist/esm/contracts/hubPool.js +34 -18
- package/dist/esm/contracts/hubPool.js.map +1 -1
- package/dist/esm/contracts/utils.js +3 -5
- package/dist/esm/contracts/utils.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js +6 -14
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/ethereum.js +22 -42
- package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/linea-viem.js +13 -25
- package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/polygon.js +72 -108
- package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/solana.js +22 -31
- package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -1
- package/dist/esm/gasPriceOracle/oracle.js +70 -96
- package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
- package/dist/esm/gasPriceOracle/types.js +2 -2
- package/dist/esm/gasPriceOracle/types.js.map +1 -1
- package/dist/esm/gasPriceOracle/util.js +4 -4
- package/dist/esm/gasPriceOracle/util.js.map +1 -1
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +30 -33
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
- package/dist/esm/lpFeeCalculator/rateModel.js +7 -9
- package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -1
- package/dist/esm/merkleDistributor/MerkleDistributor.js +18 -17
- package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -1
- package/dist/esm/pool/TransactionManager.js +45 -100
- package/dist/esm/pool/TransactionManager.js.map +1 -1
- package/dist/esm/pool/poolClient.js +479 -740
- package/dist/esm/pool/poolClient.js.map +1 -1
- package/dist/esm/pool/uma/across/constants.js +2 -2
- package/dist/esm/pool/uma/across/constants.js.map +1 -1
- package/dist/esm/pool/uma/across/transactionManager.js +45 -100
- package/dist/esm/pool/uma/across/transactionManager.js.map +1 -1
- package/dist/esm/pool/uma/clients/erc20/client.js +15 -13
- package/dist/esm/pool/uma/clients/erc20/client.js.map +1 -1
- package/dist/esm/pool/uma/oracle/utils.js +2 -3
- package/dist/esm/pool/uma/oracle/utils.js.map +1 -1
- package/dist/esm/pool/uma/utils.js +9 -28
- package/dist/esm/pool/uma/utils.js.map +1 -1
- package/dist/esm/priceClient/adapters/acrossApi.js +21 -40
- package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -1
- package/dist/esm/priceClient/adapters/baseAdapter.js +46 -72
- package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -1
- package/dist/esm/priceClient/adapters/coingecko.js +33 -61
- package/dist/esm/priceClient/adapters/coingecko.js.map +1 -1
- package/dist/esm/priceClient/adapters/default.js +15 -31
- package/dist/esm/priceClient/adapters/default.js.map +1 -1
- package/dist/esm/priceClient/adapters/defiLlama.js +38 -73
- package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -1
- package/dist/esm/priceClient/priceClient.js +109 -158
- package/dist/esm/priceClient/priceClient.js.map +1 -1
- package/dist/esm/providers/alchemy.js +16 -18
- package/dist/esm/providers/alchemy.js.map +1 -1
- package/dist/esm/providers/cachedProvider.js +99 -134
- package/dist/esm/providers/cachedProvider.js.map +1 -1
- package/dist/esm/providers/constants.js +3 -3
- package/dist/esm/providers/constants.js.map +1 -1
- package/dist/esm/providers/drpc.js +8 -10
- package/dist/esm/providers/drpc.js.map +1 -1
- package/dist/esm/providers/infura.js +9 -11
- package/dist/esm/providers/infura.js.map +1 -1
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +6 -15
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +5 -14
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js +6 -15
- package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +41 -66
- package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/mocks/mockEthersProvider.js +27 -30
- package/dist/esm/providers/mocks/mockEthersProvider.js.map +1 -1
- package/dist/esm/providers/quicknode.js +18 -20
- package/dist/esm/providers/quicknode.js.map +1 -1
- package/dist/esm/providers/rateLimitedProvider.js +68 -80
- package/dist/esm/providers/rateLimitedProvider.js.map +1 -1
- package/dist/esm/providers/retryProvider.js +186 -259
- package/dist/esm/providers/retryProvider.js.map +1 -1
- package/dist/esm/providers/solana/baseRpcFactories.js +13 -19
- package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
- package/dist/esm/providers/solana/cachedRpcFactory.js +75 -112
- package/dist/esm/providers/solana/cachedRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/defaultRpcFactory.js +6 -14
- package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/quorumFallbackRpcFactory.js +149 -202
- package/dist/esm/providers/solana/quorumFallbackRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/rateLimitedRpcFactory.js +70 -90
- package/dist/esm/providers/solana/rateLimitedRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/retryRpcFactory.js +50 -74
- package/dist/esm/providers/solana/retryRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/utils.js +1 -1
- package/dist/esm/providers/solana/utils.js.map +1 -1
- package/dist/esm/providers/speedProvider.js +28 -51
- package/dist/esm/providers/speedProvider.js.map +1 -1
- package/dist/esm/providers/types.js +2 -2
- package/dist/esm/providers/types.js.map +1 -1
- package/dist/esm/providers/utils.js +17 -20
- package/dist/esm/providers/utils.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +98 -152
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js +13 -26
- package/dist/esm/relayFeeCalculator/chain-queries/customGasToken.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js +9 -19
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +83 -128
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +211 -299
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
- package/dist/esm/typeguards/error.js +3 -5
- package/dist/esm/typeguards/error.js.map +1 -1
- package/dist/esm/utils/AddressUtils.js +115 -147
- package/dist/esm/utils/AddressUtils.js.map +1 -1
- package/dist/esm/utils/ArrayUtils.js +21 -78
- package/dist/esm/utils/ArrayUtils.js.map +1 -1
- package/dist/esm/utils/BigNumberUtils.js +11 -12
- package/dist/esm/utils/BigNumberUtils.js.map +1 -1
- package/dist/esm/utils/BlockExplorerUtils.js +19 -23
- package/dist/esm/utils/BlockExplorerUtils.js.map +1 -1
- package/dist/esm/utils/BlockFinder.js +2 -6
- package/dist/esm/utils/BlockFinder.js.map +1 -1
- package/dist/esm/utils/BlockUtils.js +31 -40
- package/dist/esm/utils/BlockUtils.js.map +1 -1
- package/dist/esm/utils/BundleUtils.js +21 -24
- package/dist/esm/utils/BundleUtils.js.map +1 -1
- package/dist/esm/utils/CCTPUtils.js +62 -123
- package/dist/esm/utils/CCTPUtils.js.map +1 -1
- package/dist/esm/utils/CachingUtils.js +17 -38
- package/dist/esm/utils/CachingUtils.js.map +1 -1
- package/dist/esm/utils/ContractUtils.js +3 -3
- package/dist/esm/utils/ContractUtils.js.map +1 -1
- package/dist/esm/utils/DepositUtils.js +121 -98
- package/dist/esm/utils/DepositUtils.js.map +1 -1
- package/dist/esm/utils/EventUtils.js +52 -69
- package/dist/esm/utils/EventUtils.js.map +1 -1
- package/dist/esm/utils/FormattingUtils.js +20 -26
- package/dist/esm/utils/FormattingUtils.js.map +1 -1
- package/dist/esm/utils/HyperLiquidUtils.js +8 -22
- package/dist/esm/utils/HyperLiquidUtils.js.map +1 -1
- package/dist/esm/utils/IPFSUtils.js +16 -35
- package/dist/esm/utils/IPFSUtils.js.map +1 -1
- package/dist/esm/utils/JSONUtils.js +4 -4
- package/dist/esm/utils/JSONUtils.js.map +1 -1
- package/dist/esm/utils/LogUtils.js +8 -12
- package/dist/esm/utils/LogUtils.js.map +1 -1
- package/dist/esm/utils/Multicall.js +50 -110
- package/dist/esm/utils/Multicall.js.map +1 -1
- package/dist/esm/utils/NetworkUtils.js +12 -28
- package/dist/esm/utils/NetworkUtils.js.map +1 -1
- package/dist/esm/utils/NumberUtils.js +1 -3
- package/dist/esm/utils/NumberUtils.js.map +1 -1
- package/dist/esm/utils/ObjectUtils.js +27 -41
- package/dist/esm/utils/ObjectUtils.js.map +1 -1
- package/dist/esm/utils/Profiler.js +77 -82
- package/dist/esm/utils/Profiler.js.map +1 -1
- package/dist/esm/utils/ReviverUtils.js +3 -7
- package/dist/esm/utils/ReviverUtils.js.map +1 -1
- package/dist/esm/utils/SpokeUtils.js +83 -78
- package/dist/esm/utils/SpokeUtils.js.map +1 -1
- package/dist/esm/utils/TokenUtils.js +33 -57
- package/dist/esm/utils/TokenUtils.js.map +1 -1
- package/dist/esm/utils/ValidatorUtils.js +4 -4
- package/dist/esm/utils/ValidatorUtils.js.map +1 -1
- package/dist/esm/utils/abi/index.js +10 -20
- package/dist/esm/utils/abi/index.js.map +1 -1
- package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js +8 -12
- package/dist/esm/utils/abi/typechain/factories/Multicall3__factory.js.map +1 -1
- package/dist/esm/utils/common.js +38 -52
- package/dist/esm/utils/common.js.map +1 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
- package/dist/types/utils/Multicall.d.ts.map +1 -1
- package/dist/types/utils/NetworkUtils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/constants.ts +0 -1
- package/src/gasPriceOracle/oracle.ts +0 -1
- package/src/utils/Multicall.ts +0 -1
- package/src/utils/NetworkUtils.ts +1 -8
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
1
|
import assert from "assert";
|
|
3
2
|
import { DEFAULT_CACHING_TTL, EMPTY_MESSAGE, UNDEFINED_MESSAGE_HASH, ZERO_BYTES } from "../constants";
|
|
4
3
|
import { getMessageHash, isUnsafeDepositId } from "./SpokeUtils";
|
|
@@ -31,93 +30,80 @@ export var InvalidFill;
|
|
|
31
30
|
* @throws If the spoke pool client has not been updated.
|
|
32
31
|
*/
|
|
33
32
|
// @todo relocate
|
|
34
|
-
export function queryHistoricalDepositForFill(spokePoolClient, fill, cache) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
(_a = deposit.messageHash) !== null && _a !== void 0 ? _a : (deposit.messageHash = getMessageHash(deposit.message));
|
|
109
|
-
match = validateFillForDeposit(fill, deposit);
|
|
110
|
-
if (match.valid) {
|
|
111
|
-
return [2 /*return*/, { found: true, deposit: deposit }];
|
|
112
|
-
}
|
|
113
|
-
return [2 /*return*/, {
|
|
114
|
-
found: false,
|
|
115
|
-
code: InvalidFill.FillMismatch,
|
|
116
|
-
reason: match.reason,
|
|
117
|
-
}];
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
});
|
|
33
|
+
export async function queryHistoricalDepositForFill(spokePoolClient, fill, cache) {
|
|
34
|
+
if (isUnsafeDepositId(fill.depositId)) {
|
|
35
|
+
return {
|
|
36
|
+
found: false,
|
|
37
|
+
code: InvalidFill.DepositIdOutOfRange,
|
|
38
|
+
reason: `Cannot find historical deposit for fill with unsafe deposit ID ${fill.depositId}.`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (fill.originChainId !== spokePoolClient.chainId) {
|
|
42
|
+
throw new Error(`OriginChainId mismatch (${fill.originChainId} != ${spokePoolClient.chainId})`);
|
|
43
|
+
}
|
|
44
|
+
// We need to update client so we know the first and last deposit ID's queried for this spoke pool client, as well
|
|
45
|
+
// as the global first and last deposit ID's for this spoke pool.
|
|
46
|
+
if (!spokePoolClient.isUpdated) {
|
|
47
|
+
throw new Error("SpokePoolClient must be updated before querying historical deposits");
|
|
48
|
+
}
|
|
49
|
+
const { depositId } = fill;
|
|
50
|
+
const originChain = getNetworkName(fill.originChainId);
|
|
51
|
+
let deposit = spokePoolClient.getDeposit(depositId);
|
|
52
|
+
if (isDefined(deposit)) {
|
|
53
|
+
const match = validateFillForDeposit(fill, deposit);
|
|
54
|
+
if (match.valid) {
|
|
55
|
+
return { found: true, deposit };
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
found: false,
|
|
59
|
+
code: InvalidFill.FillMismatch,
|
|
60
|
+
reason: `Fill for ${originChain} deposit ID ${depositId.toString()} is invalid (${match.reason}).`,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Deposit not found in SpokePoolClient buffer, search elsewhere.
|
|
64
|
+
let cachedDeposit;
|
|
65
|
+
if (cache) {
|
|
66
|
+
cachedDeposit = await getDepositInCache(getDepositKey(fill), cache);
|
|
67
|
+
// We only want to warn and remove the cached deposit if it
|
|
68
|
+
// A: exists
|
|
69
|
+
// B: is not formed correctly
|
|
70
|
+
if (isDefined(cachedDeposit) && !isDepositFormedCorrectly(cachedDeposit)) {
|
|
71
|
+
spokePoolClient.logger.warn({
|
|
72
|
+
at: "[SDK]:DepositUtils#queryHistoricalDepositForFill",
|
|
73
|
+
message: "Cached deposit was not formed correctly, removing from cache",
|
|
74
|
+
fill,
|
|
75
|
+
cachedDeposit,
|
|
76
|
+
});
|
|
77
|
+
// By setting this value to undefined, we eventually have to pull
|
|
78
|
+
// the deposit from our spoke pool client. Because this new deposit
|
|
79
|
+
// is formed correctly, we will cache it below.
|
|
80
|
+
cachedDeposit = undefined;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (isDefined(cachedDeposit)) {
|
|
84
|
+
deposit = cachedDeposit;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
const result = await spokePoolClient.findDeposit(fill.depositId);
|
|
88
|
+
if (!result.found) {
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
({ deposit } = result);
|
|
92
|
+
if (cache) {
|
|
93
|
+
await setDepositInCache(deposit, getCurrentTime(), cache, DEFAULT_CACHING_TTL);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
assert(isDefined(deposit), `Unexpectedly failed to locate ${originChain} deposit ${fill.depositId}`);
|
|
97
|
+
deposit.messageHash ??= getMessageHash(deposit.message);
|
|
98
|
+
const match = validateFillForDeposit(fill, deposit);
|
|
99
|
+
if (match.valid) {
|
|
100
|
+
return { found: true, deposit: deposit };
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
found: false,
|
|
104
|
+
code: InvalidFill.FillMismatch,
|
|
105
|
+
reason: match.reason,
|
|
106
|
+
};
|
|
121
107
|
}
|
|
122
108
|
/**
|
|
123
109
|
* Concatenate all fields from a Deposit, Fill or SlowFillRequest into a single string.
|
|
@@ -145,7 +131,7 @@ export function getRelayEventKey(data) {
|
|
|
145
131
|
.map(String)
|
|
146
132
|
.join("-");
|
|
147
133
|
}
|
|
148
|
-
|
|
134
|
+
const RELAYDATA_KEYS = [
|
|
149
135
|
"depositId",
|
|
150
136
|
"originChainId",
|
|
151
137
|
"destinationChainId",
|
|
@@ -169,13 +155,13 @@ export function validateFillForDeposit(relayData, deposit) {
|
|
|
169
155
|
// Note: this short circuits when a key is found where the comparison doesn't match.
|
|
170
156
|
// TODO: if we turn on "strict" in the tsconfig, the elements of FILL_DEPOSIT_COMPARISON_KEYS will be automatically
|
|
171
157
|
// validated against the fields in Fill and Deposit, generating an error if there is a discrepancy.
|
|
172
|
-
|
|
158
|
+
let invalidKey = RELAYDATA_KEYS.find((key) => relayData[key].toString() !== deposit[key].toString());
|
|
173
159
|
// There should be no paths for `messageHash` to be unset, but mask it off anyway.
|
|
174
160
|
if (!isDefined(invalidKey) && [relayData.messageHash, deposit.messageHash].includes(UNDEFINED_MESSAGE_HASH)) {
|
|
175
161
|
invalidKey = "messageHash";
|
|
176
162
|
}
|
|
177
163
|
return isDefined(invalidKey)
|
|
178
|
-
? { valid: false, reason:
|
|
164
|
+
? { valid: false, reason: `${invalidKey} mismatch (${relayData[invalidKey]} != ${deposit[invalidKey]})` }
|
|
179
165
|
: { valid: true };
|
|
180
166
|
}
|
|
181
167
|
/**
|
|
@@ -201,8 +187,7 @@ export function isZeroValueFillOrSlowFillRequest(e) {
|
|
|
201
187
|
* @param message The message to check.
|
|
202
188
|
* @returns True if the message is empty, false otherwise.
|
|
203
189
|
*/
|
|
204
|
-
export function isMessageEmpty(message) {
|
|
205
|
-
if (message === void 0) { message = EMPTY_MESSAGE; }
|
|
190
|
+
export function isMessageEmpty(message = EMPTY_MESSAGE) {
|
|
206
191
|
return message === "" || message === "0x";
|
|
207
192
|
}
|
|
208
193
|
export function isFillOrSlowFillRequestMessageEmpty(message) {
|
|
@@ -222,7 +207,7 @@ export function isDepositSpedUp(deposit) {
|
|
|
222
207
|
* @returns Original or updated message string, depending on whether the depositor updated the deposit.
|
|
223
208
|
*/
|
|
224
209
|
export function resolveDepositMessage(deposit) {
|
|
225
|
-
|
|
210
|
+
const message = isDepositSpedUp(deposit) ? deposit.updatedMessage : deposit.message;
|
|
226
211
|
assert(isDefined(message)); // Appease tsc about the updatedMessage being possibly undefined.
|
|
227
212
|
return message;
|
|
228
213
|
}
|
|
@@ -233,7 +218,14 @@ export function resolveDepositMessage(deposit) {
|
|
|
233
218
|
* @returns a RelayData-like type which has hex 32 byte strings as fields.
|
|
234
219
|
*/
|
|
235
220
|
export function convertRelayDataParamsToBytes32(relayData) {
|
|
236
|
-
return
|
|
221
|
+
return {
|
|
222
|
+
...relayData,
|
|
223
|
+
depositor: relayData.depositor.toBytes32(),
|
|
224
|
+
recipient: relayData.recipient.toBytes32(),
|
|
225
|
+
inputToken: relayData.inputToken.toBytes32(),
|
|
226
|
+
outputToken: relayData.outputToken.toBytes32(),
|
|
227
|
+
exclusiveRelayer: relayData.exclusiveRelayer.toBytes32(),
|
|
228
|
+
};
|
|
237
229
|
}
|
|
238
230
|
/**
|
|
239
231
|
* Converts a Fill object with `Address` types as address fields to a `RelayData`-like object with
|
|
@@ -242,7 +234,19 @@ export function convertRelayDataParamsToBytes32(relayData) {
|
|
|
242
234
|
* @returns a RelayData-like type which has hex 32 byte strings as fields.
|
|
243
235
|
*/
|
|
244
236
|
export function convertFillParamsToBytes32(fill) {
|
|
245
|
-
return
|
|
237
|
+
return {
|
|
238
|
+
...fill,
|
|
239
|
+
depositor: fill.depositor.toBytes32(),
|
|
240
|
+
recipient: fill.recipient.toBytes32(),
|
|
241
|
+
inputToken: fill.inputToken.toBytes32(),
|
|
242
|
+
outputToken: fill.outputToken.toBytes32(),
|
|
243
|
+
exclusiveRelayer: fill.exclusiveRelayer.toBytes32(),
|
|
244
|
+
relayer: fill.relayer.toBytes32(),
|
|
245
|
+
relayExecutionInfo: {
|
|
246
|
+
...fill.relayExecutionInfo,
|
|
247
|
+
updatedRecipient: fill.relayExecutionInfo.updatedRecipient.toBytes32(),
|
|
248
|
+
},
|
|
249
|
+
};
|
|
246
250
|
}
|
|
247
251
|
/**
|
|
248
252
|
* Converts a RelayData object with `Address` types as address fields to a `RelayData`-like object with
|
|
@@ -251,7 +255,14 @@ export function convertFillParamsToBytes32(fill) {
|
|
|
251
255
|
* @returns a RelayData-like type which has native address representation strings as fields.
|
|
252
256
|
*/
|
|
253
257
|
export function convertRelayDataParamsToNative(relayData) {
|
|
254
|
-
return
|
|
258
|
+
return {
|
|
259
|
+
...relayData,
|
|
260
|
+
depositor: relayData.depositor.toNative(),
|
|
261
|
+
recipient: relayData.recipient.toNative(),
|
|
262
|
+
inputToken: relayData.inputToken.toNative(),
|
|
263
|
+
outputToken: relayData.outputToken.toNative(),
|
|
264
|
+
exclusiveRelayer: relayData.exclusiveRelayer.toNative(),
|
|
265
|
+
};
|
|
255
266
|
}
|
|
256
267
|
/**
|
|
257
268
|
* Converts a Fill object with `Address` types as address fields to a `RelayData`-like object with
|
|
@@ -260,6 +271,18 @@ export function convertRelayDataParamsToNative(relayData) {
|
|
|
260
271
|
* @returns a RelayData-like type which has native address representation strings as fields.
|
|
261
272
|
*/
|
|
262
273
|
export function convertFillParamsToNative(fill) {
|
|
263
|
-
return
|
|
274
|
+
return {
|
|
275
|
+
...fill,
|
|
276
|
+
depositor: fill.depositor.toNative(),
|
|
277
|
+
recipient: fill.recipient.toNative(),
|
|
278
|
+
inputToken: fill.inputToken.toNative(),
|
|
279
|
+
outputToken: fill.outputToken.toNative(),
|
|
280
|
+
exclusiveRelayer: fill.exclusiveRelayer.toNative(),
|
|
281
|
+
relayer: fill.relayer.toNative(),
|
|
282
|
+
relayExecutionInfo: {
|
|
283
|
+
...fill.relayExecutionInfo,
|
|
284
|
+
updatedRecipient: fill.relayExecutionInfo.updatedRecipient.toNative(),
|
|
285
|
+
},
|
|
286
|
+
};
|
|
264
287
|
}
|
|
265
288
|
//# sourceMappingURL=DepositUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DepositUtils.js","sourceRoot":"","sources":["../../../src/utils/DepositUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DepositUtils.js","sourceRoot":"","sources":["../../../src/utils/DepositUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { __assign, __awaiter, __generator, __spreadArray } from "tslib";
|
|
2
1
|
import { delay } from "./common";
|
|
3
2
|
import { isDefined, toBN } from "./";
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const maxRetries = 3;
|
|
4
|
+
const retrySleepTime = 10;
|
|
6
5
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
6
|
export function spreadEvent(args) {
|
|
8
|
-
|
|
7
|
+
const keys = Object.keys(args).filter((key) => isNaN(+key)); // Extract non-numeric keys.
|
|
9
8
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
-
|
|
11
|
-
keys.forEach(
|
|
9
|
+
const returnedObject = {};
|
|
10
|
+
keys.forEach((key) => {
|
|
12
11
|
switch (typeof args[key]) {
|
|
13
12
|
case "boolean": // fallthrough
|
|
14
13
|
case "number":
|
|
@@ -18,7 +17,7 @@ export function spreadEvent(args) {
|
|
|
18
17
|
case "object":
|
|
19
18
|
if (Array.isArray(args[key])) {
|
|
20
19
|
returnedObject[key] =
|
|
21
|
-
Object.keys(args[key]).filter(
|
|
20
|
+
Object.keys(args[key]).filter((key) => isNaN(+key)).length > 0
|
|
22
21
|
? spreadEvent(args[key]) // Record/array hybrid...
|
|
23
22
|
: args[key]; // Just an array
|
|
24
23
|
}
|
|
@@ -62,47 +61,33 @@ export function spreadEvent(args) {
|
|
|
62
61
|
}
|
|
63
62
|
return returnedObject;
|
|
64
63
|
}
|
|
65
|
-
export
|
|
66
|
-
export function paginatedEventQuery(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
case 5:
|
|
93
|
-
error_1 = _a.sent();
|
|
94
|
-
if (!(retryCount < maxRetries)) return [3 /*break*/, 8];
|
|
95
|
-
return [4 /*yield*/, delay(retrySleepTime)];
|
|
96
|
-
case 6:
|
|
97
|
-
_a.sent();
|
|
98
|
-
return [4 /*yield*/, paginatedEventQuery(contract, filter, searchConfig, retryCount + 1)];
|
|
99
|
-
case 7: return [2 /*return*/, _a.sent()];
|
|
100
|
-
case 8: throw error_1;
|
|
101
|
-
case 9: return [3 /*break*/, 10];
|
|
102
|
-
case 10: return [2 /*return*/];
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
});
|
|
64
|
+
export const eventToLog = (event) => ({ ...event, event: event.event, args: spreadEvent(event.args) });
|
|
65
|
+
export async function paginatedEventQuery(contract, filter, searchConfig, retryCount = 0) {
|
|
66
|
+
// If the max block look back is set to 0 then we dont need to do any pagination and can query over the whole range.
|
|
67
|
+
if (searchConfig.maxLookBack === 0) {
|
|
68
|
+
const events = await contract.queryFilter(filter, searchConfig.from, searchConfig.to);
|
|
69
|
+
return events.map(eventToLog);
|
|
70
|
+
}
|
|
71
|
+
// Compute the number of queries needed. If there is no maxBlockLookBack set then we can execute the whole query in
|
|
72
|
+
// one go. Else, the number of queries is the range over which we are searching, divided by the maxBlockLookBack,
|
|
73
|
+
// rounded up. This gives us the number of queries we need to execute to traverse the whole block range.
|
|
74
|
+
const paginatedRanges = getPaginatedBlockRanges(searchConfig);
|
|
75
|
+
try {
|
|
76
|
+
return ((await Promise.all(paginatedRanges.map(([fromBlock, toBlock]) => contract.queryFilter(filter, fromBlock, toBlock))))
|
|
77
|
+
.flat()
|
|
78
|
+
// Filter events by block number because ranges can include blocks that are outside the range specified for caching reasons.
|
|
79
|
+
.filter((event) => event.blockNumber >= searchConfig.from && event.blockNumber <= searchConfig.to)
|
|
80
|
+
.map(eventToLog));
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
if (retryCount < maxRetries) {
|
|
84
|
+
await delay(retrySleepTime);
|
|
85
|
+
return await paginatedEventQuery(contract, filter, searchConfig, retryCount + 1);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
106
91
|
}
|
|
107
92
|
/**
|
|
108
93
|
* @dev Warning: this is a specialized function!! Its functionality is not obvious.
|
|
@@ -118,11 +103,10 @@ export function paginatedEventQuery(contract_1, filter_1, searchConfig_1) {
|
|
|
118
103
|
* input range, but can include blocks outside of the desired range, so results should be filtered. Results
|
|
119
104
|
* are ordered from smallest to largest.
|
|
120
105
|
*/
|
|
121
|
-
export function getPaginatedBlockRanges(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
var maxBlockLookBack = maxLookBack;
|
|
106
|
+
export function getPaginatedBlockRanges({ from, to, maxLookBack }) {
|
|
107
|
+
const fromBlock = from;
|
|
108
|
+
const toBlock = to;
|
|
109
|
+
const maxBlockLookBack = maxLookBack;
|
|
126
110
|
// If the maxBlockLookBack is undefined, we can look back as far as we like. Just return the entire range.
|
|
127
111
|
if (maxBlockLookBack === undefined) {
|
|
128
112
|
return [[fromBlock, toBlock]];
|
|
@@ -140,17 +124,17 @@ export function getPaginatedBlockRanges(_a) {
|
|
|
140
124
|
// 0-19, 20-39, 40-45.
|
|
141
125
|
// This allows us to get the max number of repeated node queries. The maximum number of "nonstandard" queries per
|
|
142
126
|
// call of this function is 1.
|
|
143
|
-
|
|
127
|
+
const flooredStartBlock = Math.floor(fromBlock / maxBlockLookBack) * maxBlockLookBack;
|
|
144
128
|
// Note: range is inclusive, so we have to add one to the number of blocks to query.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
for (
|
|
129
|
+
const iterations = Math.ceil((toBlock + 1 - flooredStartBlock) / maxBlockLookBack);
|
|
130
|
+
const ranges = [];
|
|
131
|
+
for (let i = 0; i < iterations; i++) {
|
|
148
132
|
// Each inner range start is just a multiple of the maxBlockLookBack added to the start block.
|
|
149
|
-
|
|
133
|
+
const innerFromBlock = flooredStartBlock + maxBlockLookBack * i;
|
|
150
134
|
// The innerFromBlock is just the max range from the innerFromBlock or the outer toBlock, whichever is smaller.
|
|
151
135
|
// The end block should never be larger than the outer toBlock. This is to avoid querying blocks that are in the
|
|
152
136
|
// future.
|
|
153
|
-
|
|
137
|
+
const innerToBlock = Math.min(innerFromBlock + maxBlockLookBack - 1, toBlock);
|
|
154
138
|
ranges.push([innerFromBlock, innerToBlock]);
|
|
155
139
|
}
|
|
156
140
|
return ranges;
|
|
@@ -164,36 +148,35 @@ export function logToSortableEvent(log) {
|
|
|
164
148
|
};
|
|
165
149
|
}
|
|
166
150
|
export function spreadEventWithBlockNumber(event) {
|
|
167
|
-
return
|
|
151
|
+
return {
|
|
152
|
+
...spreadEvent(event.args),
|
|
153
|
+
...logToSortableEvent(event),
|
|
154
|
+
};
|
|
168
155
|
}
|
|
169
156
|
// This copies the array and sorts it, returning a new array with the new ordering.
|
|
170
157
|
export function sortEventsAscending(events) {
|
|
171
|
-
return sortEventsAscendingInPlace(
|
|
158
|
+
return sortEventsAscendingInPlace([...events]);
|
|
172
159
|
}
|
|
173
160
|
// This sorts the events in place, meaning it modifies the passed array and returns a reference to the same array.
|
|
174
161
|
// Note: this method should only be used in cases where modifications are acceptable.
|
|
175
162
|
export function sortEventsAscendingInPlace(events) {
|
|
176
|
-
return events.sort(
|
|
177
|
-
return ex.blockNumber === ey.blockNumber ? ex.logIndex - ey.logIndex : ex.blockNumber - ey.blockNumber;
|
|
178
|
-
});
|
|
163
|
+
return events.sort((ex, ey) => ex.blockNumber === ey.blockNumber ? ex.logIndex - ey.logIndex : ex.blockNumber - ey.blockNumber);
|
|
179
164
|
}
|
|
180
165
|
// This copies the array and sorts it, returning a new array with the new ordering.
|
|
181
166
|
export function sortEventsDescending(events) {
|
|
182
|
-
return sortEventsDescendingInPlace(
|
|
167
|
+
return sortEventsDescendingInPlace([...events]);
|
|
183
168
|
}
|
|
184
169
|
// This sorts the events in place, meaning it modifies the passed array and returns a reference to the same array.
|
|
185
170
|
// Note: this method should only be used in cases where modifications are acceptable.
|
|
186
171
|
export function sortEventsDescendingInPlace(events) {
|
|
187
|
-
return events.sort(
|
|
188
|
-
return ex.blockNumber === ey.blockNumber ? ey.logIndex - ex.logIndex : ey.blockNumber - ex.blockNumber;
|
|
189
|
-
});
|
|
172
|
+
return events.sort((ex, ey) => ex.blockNumber === ey.blockNumber ? ey.logIndex - ex.logIndex : ey.blockNumber - ex.blockNumber);
|
|
190
173
|
}
|
|
191
174
|
// Returns true if ex is older than ey.
|
|
192
175
|
export function isEventOlder(ex, ey) {
|
|
193
176
|
return ex.blockNumber === ey.blockNumber ? ex.logIndex < ey.logIndex : ex.blockNumber < ey.blockNumber;
|
|
194
177
|
}
|
|
195
178
|
export function getTransactionRefs(events) {
|
|
196
|
-
return
|
|
179
|
+
return [...Array.from(new Set(events.map((e) => e.txnRef)))];
|
|
197
180
|
}
|
|
198
181
|
export function duplicateEvent(a, b) {
|
|
199
182
|
return a.txnRef === b.txnRef && a.logIndex === b.logIndex;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventUtils.js","sourceRoot":"","sources":["../../../src/utils/EventUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EventUtils.js","sourceRoot":"","sources":["../../../src/utils/EventUtils.ts"],"names":[],"mappings":"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"}
|