@across-protocol/sdk 4.3.111-alpha.0 → 4.3.111-alpha.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/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 { __awaiter, __generator } from "tslib";
|
|
2
1
|
/**
|
|
3
2
|
* Deduplicates an array by filtering it via a Set.
|
|
4
3
|
* @notice Should not be used for deduplicating arrays of complex types.
|
|
@@ -15,8 +14,8 @@ export function dedupArray(array) {
|
|
|
15
14
|
* @returns A new array of chunked members.
|
|
16
15
|
*/
|
|
17
16
|
export function chunk(array, chunkSize) {
|
|
18
|
-
|
|
19
|
-
for (
|
|
17
|
+
const chunks = [];
|
|
18
|
+
for (let i = 0; i < array.length; i += chunkSize) {
|
|
20
19
|
chunks.push(array.slice(i, i + chunkSize));
|
|
21
20
|
}
|
|
22
21
|
return chunks;
|
|
@@ -29,7 +28,7 @@ export function chunk(array, chunkSize) {
|
|
|
29
28
|
* @returns The last index of the array that matches the predicate, or -1 if no element matches.
|
|
30
29
|
*/
|
|
31
30
|
export function findLastIndex(array, predicate) {
|
|
32
|
-
for (
|
|
31
|
+
for (let i = array.length - 1; i >= 0; i--) {
|
|
33
32
|
if (predicate(array[i], i, array)) {
|
|
34
33
|
return i;
|
|
35
34
|
}
|
|
@@ -44,7 +43,7 @@ export function findLastIndex(array, predicate) {
|
|
|
44
43
|
* @returns The last element of the array that matches the predicate, or undefined if no element matches.
|
|
45
44
|
*/
|
|
46
45
|
export function findLast(array, predicate) {
|
|
47
|
-
|
|
46
|
+
const index = findLastIndex(array, predicate);
|
|
48
47
|
return index >= 0 ? array[index] : undefined;
|
|
49
48
|
}
|
|
50
49
|
/**
|
|
@@ -54,18 +53,9 @@ export function findLast(array, predicate) {
|
|
|
54
53
|
* @param predicate The asynchronous predicate function to apply to each element.
|
|
55
54
|
* @returns A promise that resolves to an array of elements that match the predicate.
|
|
56
55
|
*/
|
|
57
|
-
export function filterAsync(array, predicate) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return __generator(this, function (_a) {
|
|
61
|
-
switch (_a.label) {
|
|
62
|
-
case 0: return [4 /*yield*/, Promise.all(array.map(predicate))];
|
|
63
|
-
case 1:
|
|
64
|
-
results = _a.sent();
|
|
65
|
-
return [2 /*return*/, array.filter(function (_, index) { return results[index]; })];
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
});
|
|
56
|
+
export async function filterAsync(array, predicate) {
|
|
57
|
+
const results = await Promise.all(array.map(predicate));
|
|
58
|
+
return array.filter((_, index) => results[index]);
|
|
69
59
|
}
|
|
70
60
|
/**
|
|
71
61
|
* Performs an asynchronous map operation on an array. This function behaves like Array.prototype.map, but accepts an
|
|
@@ -85,28 +75,12 @@ export function mapAsync(array, mapper) {
|
|
|
85
75
|
* @param initialValue The initial value of the accumulator.
|
|
86
76
|
* @returns A promise that resolves to the final value of the accumulator.
|
|
87
77
|
*/
|
|
88
|
-
export function reduceAsync(array, reducer, initialValue) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
accumulator = initialValue;
|
|
95
|
-
i = 0;
|
|
96
|
-
_a.label = 1;
|
|
97
|
-
case 1:
|
|
98
|
-
if (!(i < array.length)) return [3 /*break*/, 4];
|
|
99
|
-
return [4 /*yield*/, reducer(accumulator, array[i], i, array)];
|
|
100
|
-
case 2:
|
|
101
|
-
accumulator = _a.sent();
|
|
102
|
-
_a.label = 3;
|
|
103
|
-
case 3:
|
|
104
|
-
i++;
|
|
105
|
-
return [3 /*break*/, 1];
|
|
106
|
-
case 4: return [2 /*return*/, accumulator];
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
});
|
|
78
|
+
export async function reduceAsync(array, reducer, initialValue) {
|
|
79
|
+
let accumulator = initialValue;
|
|
80
|
+
for (let i = 0; i < array.length; i++) {
|
|
81
|
+
accumulator = await reducer(accumulator, array[i], i, array);
|
|
82
|
+
}
|
|
83
|
+
return accumulator;
|
|
110
84
|
}
|
|
111
85
|
/**
|
|
112
86
|
* Performs an asynchronous forEach operation on an array. This function behaves like Array.prototype.forEach, but
|
|
@@ -115,17 +89,8 @@ export function reduceAsync(array, reducer, initialValue) {
|
|
|
115
89
|
* @param callback The asynchronous callback function to apply to each element.
|
|
116
90
|
* @returns A promise that resolves to void.
|
|
117
91
|
*/
|
|
118
|
-
export function forEachAsync(array, callback) {
|
|
119
|
-
|
|
120
|
-
return __generator(this, function (_a) {
|
|
121
|
-
switch (_a.label) {
|
|
122
|
-
case 0: return [4 /*yield*/, mapAsync(array, callback)];
|
|
123
|
-
case 1:
|
|
124
|
-
_a.sent();
|
|
125
|
-
return [2 /*return*/];
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
});
|
|
92
|
+
export async function forEachAsync(array, callback) {
|
|
93
|
+
await mapAsync(array, callback);
|
|
129
94
|
}
|
|
130
95
|
/**
|
|
131
96
|
* Performs an asynchronous some operation on an array. This function behaves like Array.prototype.some, but accepts
|
|
@@ -134,18 +99,9 @@ export function forEachAsync(array, callback) {
|
|
|
134
99
|
* @param predicate The asynchronous predicate function to apply to each element.
|
|
135
100
|
* @returns A promise that resolves to true if any element matches the predicate, or false if no element matches.
|
|
136
101
|
*/
|
|
137
|
-
export function someAsync(array, predicate) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
return __generator(this, function (_a) {
|
|
141
|
-
switch (_a.label) {
|
|
142
|
-
case 0: return [4 /*yield*/, mapAsync(array, predicate)];
|
|
143
|
-
case 1:
|
|
144
|
-
results = _a.sent();
|
|
145
|
-
return [2 /*return*/, results.some(function (value) { return value; })];
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
});
|
|
102
|
+
export async function someAsync(array, predicate) {
|
|
103
|
+
const results = await mapAsync(array, predicate);
|
|
104
|
+
return results.some((value) => value);
|
|
149
105
|
}
|
|
150
106
|
/**
|
|
151
107
|
* Performs an asynchronous every operation on an array. This function behaves like Array.prototype.every, but accepts
|
|
@@ -156,21 +112,8 @@ export function someAsync(array, predicate) {
|
|
|
156
112
|
* @note This function uses De Morgan's law to convert the predicate to a negated predicate, and then uses someAsync.
|
|
157
113
|
* This is done because it is more efficient to short-circuit on the first false value than the first true value.
|
|
158
114
|
*/
|
|
159
|
-
export function everyAsync(array, predicate) {
|
|
160
|
-
return
|
|
161
|
-
var _this = this;
|
|
162
|
-
return __generator(this, function (_a) {
|
|
163
|
-
switch (_a.label) {
|
|
164
|
-
case 0: return [4 /*yield*/, someAsync(array, function (value, index, obj) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
165
|
-
switch (_a.label) {
|
|
166
|
-
case 0: return [4 /*yield*/, predicate(value, index, obj)];
|
|
167
|
-
case 1: return [2 /*return*/, !(_a.sent())];
|
|
168
|
-
}
|
|
169
|
-
}); }); })];
|
|
170
|
-
case 1: return [2 /*return*/, !(_a.sent())];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
});
|
|
115
|
+
export async function everyAsync(array, predicate) {
|
|
116
|
+
return !(await someAsync(array, async (value, index, obj) => !(await predicate(value, index, obj))));
|
|
174
117
|
}
|
|
175
118
|
/**
|
|
176
119
|
* Performs an asynchronous includes operation on an array. This function behaves like Array.prototype.includes, but
|
|
@@ -201,6 +144,6 @@ export function isArrayOf(array, predicate) {
|
|
|
201
144
|
export function isUint8Array(value) {
|
|
202
145
|
return (Array.isArray(value) &&
|
|
203
146
|
value.length > 0 &&
|
|
204
|
-
value.every(
|
|
147
|
+
value.every((item) => typeof item === "number" && Number.isInteger(item) && item >= 0 && item < 256));
|
|
205
148
|
}
|
|
206
149
|
//# sourceMappingURL=ArrayUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayUtils.js","sourceRoot":"","sources":["../../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ArrayUtils.js","sourceRoot":"","sources":["../../../src/utils/ArrayUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,16 +8,16 @@ import { utils as ethersUtils } from "ethers";
|
|
|
8
8
|
import { BigNumber } from "@ethersproject/bignumber";
|
|
9
9
|
// eslint-disable-next-line no-restricted-imports
|
|
10
10
|
export * from "@ethersproject/bignumber";
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
11
|
+
export const { formatEther, formatUnits, parseEther, parseUnits } = ethersUtils;
|
|
12
|
+
export const bnZero = BigNumber.from("0");
|
|
13
|
+
export const bnOne = BigNumber.from("1");
|
|
14
|
+
export const bnUint32Max = BigNumber.from("0xffffffff");
|
|
15
|
+
export const bnUint256Max = BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
|
|
16
16
|
/**
|
|
17
17
|
* BigInt min/max helpers.
|
|
18
18
|
*/
|
|
19
|
-
export
|
|
20
|
-
export
|
|
19
|
+
export const biMin = (a, b) => (a > b ? b : a);
|
|
20
|
+
export const biMax = (a, b) => (a > b ? a : b);
|
|
21
21
|
/**
|
|
22
22
|
* Converts a stringified number into a BigNumber with 18 decimal places.
|
|
23
23
|
* @param num The number to parse.
|
|
@@ -42,18 +42,17 @@ export function toGWei(num) {
|
|
|
42
42
|
* @returns The parsed BigNumber.
|
|
43
43
|
* @note This is a temporary function until we can backport support for decimal points to @across-protocol/sdk.
|
|
44
44
|
*/
|
|
45
|
-
export
|
|
46
|
-
if (rounding === void 0) { rounding = "floor"; }
|
|
45
|
+
export const toBN = (num, rounding = "floor") => {
|
|
47
46
|
// If the string version of the num contains a `.` then it is a number which needs to be parsed to a string int.
|
|
48
47
|
if (num.toString().includes(".")) {
|
|
49
48
|
// Destructure the integer and decimal parts of the number.
|
|
50
|
-
|
|
49
|
+
const [integer, decimal] = num.toString().split(".");
|
|
51
50
|
// We can determine if we need to round in a losseless way. First we need to check
|
|
52
51
|
// if the number just has a decimal point with no decimal places. If it does, we
|
|
53
52
|
// can just return the integer. However, if it has a decimal point with decimal
|
|
54
53
|
// places, then we can automatically round up if ceil is specified or if round is
|
|
55
54
|
// specified and the first decimal is greater than or equal to 5.
|
|
56
|
-
|
|
55
|
+
const roundUp = decimal.length > 0 && (rounding === "ceil" || (rounding === "round" && parseInt(decimal[0]) >= 5));
|
|
57
56
|
// If we need to round up, we can just add 1 to the integer.
|
|
58
57
|
return BigNumber.from(integer).add(roundUp ? 1 : 0);
|
|
59
58
|
}
|
|
@@ -67,7 +66,7 @@ export var toBN = function (num, rounding) {
|
|
|
67
66
|
* @param cmp The second BigNumber to compare.
|
|
68
67
|
* @returns The greater of the two BigNumbers.
|
|
69
68
|
*/
|
|
70
|
-
export
|
|
69
|
+
export const bnMax = (val, cmp) => {
|
|
71
70
|
return val.gt(cmp) ? val : cmp;
|
|
72
71
|
};
|
|
73
72
|
//# sourceMappingURL=BigNumberUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigNumberUtils.js","sourceRoot":"","sources":["../../../src/utils/BigNumberUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE9C,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAgB,MAAM,0BAA0B,CAAC;AAEnE,iDAAiD;AACjD,cAAc,0BAA0B,CAAC;AAGzC,MAAM,
|
|
1
|
+
{"version":3,"file":"BigNumberUtils.js","sourceRoot":"","sources":["../../../src/utils/BigNumberUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE9C,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAgB,MAAM,0BAA0B,CAAC;AAEnE,iDAAiD;AACjD,cAAc,0BAA0B,CAAC;AAGzC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;AAChF,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxD,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AAEjH;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,GAAiB;IACrC,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,GAAiB;IACtC,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAiB,EAAE,WAAuC,OAAO,EAAM,EAAE;IAC5F,gHAAgH;IAChH,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,2DAA2D;QAC3D,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,kFAAkF;QAClF,gFAAgF;QAChF,+EAA+E;QAC/E,iFAAiF;QACjF,iEAAiE;QACjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnH,4DAA4D;QAC5D,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,8DAA8D;IAC9D,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAc,EAAE,GAAc,EAAE,EAAE;IACtD,OAAO,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACjC,CAAC,CAAC"}
|
|
@@ -11,8 +11,7 @@ import bs58 from "bs58";
|
|
|
11
11
|
* @returns The block explorer link. This link will be formatted in markdown.
|
|
12
12
|
*/
|
|
13
13
|
export function blockExplorerLink(txHashOrAddress, chainId) {
|
|
14
|
-
|
|
15
|
-
return (_a = _createBlockExplorerLinkMarkdown(txHashOrAddress, Number(chainId))) !== null && _a !== void 0 ? _a : "<>";
|
|
14
|
+
return _createBlockExplorerLinkMarkdown(txHashOrAddress, Number(chainId)) ?? "<>";
|
|
16
15
|
}
|
|
17
16
|
/**
|
|
18
17
|
* Resolves a domain to an block explorer link for a given network.
|
|
@@ -20,8 +19,7 @@ export function blockExplorerLink(txHashOrAddress, chainId) {
|
|
|
20
19
|
* @returns The block explorer link. If the networkId is not supported, undefined will be returned.
|
|
21
20
|
*/
|
|
22
21
|
export function resolveBlockExplorerDomain(networkId) {
|
|
23
|
-
|
|
24
|
-
return (_a = PUBLIC_NETWORKS[networkId]) === null || _a === void 0 ? void 0 : _a.blockExplorer;
|
|
22
|
+
return PUBLIC_NETWORKS[networkId]?.blockExplorer;
|
|
25
23
|
}
|
|
26
24
|
/**
|
|
27
25
|
* Constructs a URL for a given list of domain parts.
|
|
@@ -35,13 +33,13 @@ export function resolveBlockExplorerDomain(networkId) {
|
|
|
35
33
|
*/
|
|
36
34
|
function constructURL(domain, parts) {
|
|
37
35
|
// Further split the parts by "/" to handle any parts that contain multiple "/".
|
|
38
|
-
parts = parts.flatMap(
|
|
36
|
+
parts = parts.flatMap((p) => p.split("/"));
|
|
39
37
|
// Remove any empty parts.
|
|
40
|
-
parts = parts.filter(
|
|
38
|
+
parts = parts.filter((p) => p !== "");
|
|
41
39
|
// Join the parts with a "/".
|
|
42
|
-
|
|
40
|
+
const path = parts.join("/");
|
|
43
41
|
// Remove any trailing "/".
|
|
44
|
-
return
|
|
42
|
+
return `${domain}/${path}`.replace(/\/+$/, "");
|
|
45
43
|
}
|
|
46
44
|
/**
|
|
47
45
|
* Generates a valid block explorer link for a given transaction hash or address.
|
|
@@ -49,40 +47,38 @@ function constructURL(domain, parts) {
|
|
|
49
47
|
* @param chainId The chainId to link to.
|
|
50
48
|
* @returns A formatted markdown block explorer link to the given transaction hash or address on the given chainId.
|
|
51
49
|
*/
|
|
52
|
-
function _createBlockExplorerLinkMarkdown(addr, chainId) {
|
|
53
|
-
if (chainId === void 0) { chainId = 1; }
|
|
50
|
+
function _createBlockExplorerLinkMarkdown(addr, chainId = 1) {
|
|
54
51
|
// Attempt to resolve the block explorer domain for the given chainId.
|
|
55
|
-
|
|
52
|
+
const explorerDomain = resolveBlockExplorerDomain(chainId);
|
|
56
53
|
// If the chainId is not supported, return an unsupported link.
|
|
57
54
|
if (!isDefined(explorerDomain)) {
|
|
58
|
-
return
|
|
55
|
+
return `<unsupported chain/hash ${chainId}:${addr}>}`;
|
|
59
56
|
}
|
|
60
57
|
// Ensure that the first two characters are "0x". If they are not, append them.
|
|
61
58
|
if (addr.substring(0, 2) !== "0x" && chainIsEvm(chainId)) {
|
|
62
|
-
addr =
|
|
59
|
+
addr = `0x${addr}`;
|
|
63
60
|
if (!ethers.utils.isHexString(addr)) {
|
|
64
61
|
return null;
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
// Resolve the short URL string.
|
|
68
|
-
|
|
65
|
+
const shortURLString = createShortenedString(addr);
|
|
69
66
|
if (chainIsEvm(chainId)) {
|
|
70
67
|
// Iterate over the two possible addr lengths.
|
|
71
|
-
for (
|
|
68
|
+
for (const [length, route] of [
|
|
72
69
|
[66, "tx"],
|
|
73
70
|
[42, "address"],
|
|
74
|
-
]
|
|
75
|
-
var _b = _a[_i], length_1 = _b[0], route = _b[1];
|
|
71
|
+
]) {
|
|
76
72
|
// If the hex string is the correct length, return the link.
|
|
77
|
-
if (addr.length ===
|
|
78
|
-
return
|
|
73
|
+
if (addr.length === length) {
|
|
74
|
+
return `<${constructURL(explorerDomain, [route, addr])} | ${shortURLString}>`;
|
|
79
75
|
}
|
|
80
76
|
}
|
|
81
77
|
}
|
|
82
78
|
else {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return
|
|
79
|
+
const addrLength = bs58.decode(addr).length;
|
|
80
|
+
const route = addrLength === 32 ? "account" : "tx";
|
|
81
|
+
return `<${constructURL(explorerDomain, [route, addr])} | ${shortURLString}>`;
|
|
86
82
|
}
|
|
87
83
|
return null;
|
|
88
84
|
}
|
|
@@ -94,6 +90,6 @@ function _createBlockExplorerLinkMarkdown(addr, chainId) {
|
|
|
94
90
|
* @see blockExplorerLink
|
|
95
91
|
*/
|
|
96
92
|
export function blockExplorerLinks(txHashesOrAddresses, chainId) {
|
|
97
|
-
return txHashesOrAddresses.map(
|
|
93
|
+
return txHashesOrAddresses.map((hash) => `${blockExplorerLink(hash, chainId)}\n`).join("");
|
|
98
94
|
}
|
|
99
95
|
//# sourceMappingURL=BlockExplorerUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockExplorerUtils.js","sourceRoot":"","sources":["../../../src/utils/BlockExplorerUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,eAAuB,EAAE,OAAwB
|
|
1
|
+
{"version":3,"file":"BlockExplorerUtils.js","sourceRoot":"","sources":["../../../src/utils/BlockExplorerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockFinder.js","sourceRoot":"","sources":["../../../src/utils/BlockFinder.ts"],"names":[],"mappings":"AAsBA
|
|
1
|
+
{"version":3,"file":"BlockFinder.js","sourceRoot":"","sources":["../../../src/utils/BlockFinder.ts"],"names":[],"mappings":"AAsBA,MAAM,OAAgB,WAAW;CAEhC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
|
2
1
|
import { isDefined } from "./TypeGuards";
|
|
3
2
|
import { getCurrentTime } from "./TimeUtils";
|
|
4
3
|
import { shouldCache } from "./CachingUtils";
|
|
@@ -12,44 +11,36 @@ import { DEFAULT_CACHING_SAFE_LAG } from "../constants";
|
|
|
12
11
|
* or loading from cache. This is useful for testing primarily.
|
|
13
12
|
* @returns Block number for the requested timestamp.
|
|
14
13
|
*/
|
|
15
|
-
export function getCachedBlockForTimestamp(chainId, timestamp, blockFinder, cache, hints) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
_a.sent(); // 90 days
|
|
47
|
-
return [2 /*return*/, blockNumber];
|
|
48
|
-
case 5: return [3 /*break*/, 7];
|
|
49
|
-
case 6: return [2 /*return*/, resolver()];
|
|
50
|
-
case 7: return [2 /*return*/];
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
14
|
+
export async function getCachedBlockForTimestamp(chainId, timestamp, blockFinder, cache, hints) {
|
|
15
|
+
// Resolve a convenience function to directly compute what we're
|
|
16
|
+
// looking for.
|
|
17
|
+
const resolver = async () => (await blockFinder.getBlockForTimestamp(timestamp, hints || {})).number;
|
|
18
|
+
// If no redis client, then request block from blockFinder.
|
|
19
|
+
if (!isDefined(cache)) {
|
|
20
|
+
return resolver();
|
|
21
|
+
}
|
|
22
|
+
// Cache exists. We should first check if it's possible to retrieve the block number from cache.
|
|
23
|
+
// Resolve the key for the block number.
|
|
24
|
+
const key = `${chainId}_block_number_${timestamp}`;
|
|
25
|
+
// See if it's even possible to retrieve the block number from cache.
|
|
26
|
+
if (shouldCache(timestamp, getCurrentTime(), DEFAULT_CACHING_SAFE_LAG)) {
|
|
27
|
+
// Attempt to retrieve the block number from cache.
|
|
28
|
+
const result = await cache.get(key);
|
|
29
|
+
// If the block number is in cache, then return it.
|
|
30
|
+
if (result !== null) {
|
|
31
|
+
return parseInt(result);
|
|
32
|
+
}
|
|
33
|
+
// Otherwise, we need to resolve the block number and cache it.
|
|
34
|
+
else {
|
|
35
|
+
const blockNumber = await resolver();
|
|
36
|
+
// Expire key after 90 days.
|
|
37
|
+
await cache.set(key, blockNumber.toString(), 60 * 60 * 24 * 90); // 90 days
|
|
38
|
+
return blockNumber;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// It's too early to cache this key. Resolve the block number and return it.
|
|
42
|
+
else {
|
|
43
|
+
return resolver();
|
|
44
|
+
}
|
|
54
45
|
}
|
|
55
46
|
//# sourceMappingURL=BlockUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../src/utils/BlockUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../src/utils/BlockUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAe,EACf,SAAiB,EACjB,WAAgC,EAChC,KAAiC,EACjC,KAAwB;IAExB,gEAAgE;IAChE,eAAe;IACf,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,WAAW,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAErG,2DAA2D;IAC3D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,gGAAgG;IAEhG,wCAAwC;IACxC,MAAM,GAAG,GAAG,GAAG,OAAO,iBAAiB,SAAS,EAAE,CAAC;IACnD,qEAAqE;IACrE,IAAI,WAAW,CAAC,SAAS,EAAE,cAAc,EAAE,EAAE,wBAAwB,CAAC,EAAE,CAAC;QACvE,mDAAmD;QACnD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAS,GAAG,CAAC,CAAC;QAC5C,mDAAmD;QACnD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,+DAA+D;aAC1D,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,QAAQ,EAAE,CAAC;YACrC,4BAA4B;YAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU;YAC3E,OAAO,WAAW,CAAC;QACrB,CAAC;IACH,CAAC;IACD,4EAA4E;SACvE,CAAC;QACJ,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;AACH,CAAC"}
|
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
* @returns The block for `chain` in `bundleEvaluationBlockNumbers`.
|
|
11
11
|
*/
|
|
12
12
|
export function getBlockForChain(bundleEvaluationBlockNumbers, chain, chainIdListForBundleEvaluationBlockNumbers) {
|
|
13
|
-
|
|
13
|
+
const indexForChain = chainIdListForBundleEvaluationBlockNumbers.indexOf(chain);
|
|
14
14
|
if (indexForChain === -1) {
|
|
15
|
-
throw new Error(
|
|
15
|
+
throw new Error(`Could not find chain ${chain} in chain ID list ${chainIdListForBundleEvaluationBlockNumbers}`);
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
const blockForChain = bundleEvaluationBlockNumbers[indexForChain];
|
|
18
18
|
if (blockForChain === undefined) {
|
|
19
|
-
throw new Error(
|
|
19
|
+
throw new Error(`Invalid block range for chain ${chain}`);
|
|
20
20
|
}
|
|
21
21
|
return blockForChain;
|
|
22
22
|
}
|
|
@@ -28,13 +28,13 @@ export function getBlockForChain(bundleEvaluationBlockNumbers, chain, chainIdLis
|
|
|
28
28
|
* @returns
|
|
29
29
|
*/
|
|
30
30
|
export function getBlockRangeForChain(blockRanges, chain, chainIdListForBundleEvaluationBlockNumbers) {
|
|
31
|
-
|
|
31
|
+
const indexForChain = chainIdListForBundleEvaluationBlockNumbers.indexOf(chain);
|
|
32
32
|
if (indexForChain === -1) {
|
|
33
|
-
throw new Error(
|
|
33
|
+
throw new Error(`Could not find chain ${chain} in chain ID list ${chainIdListForBundleEvaluationBlockNumbers}`);
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
const blockRangeForChain = blockRanges[indexForChain];
|
|
36
36
|
if (!blockRangeForChain || blockRangeForChain.length !== 2) {
|
|
37
|
-
throw new Error(
|
|
37
|
+
throw new Error(`Invalid block range for chain ${chain}`);
|
|
38
38
|
}
|
|
39
39
|
return blockRangeForChain;
|
|
40
40
|
}
|
|
@@ -45,23 +45,21 @@ export function getBlockRangeForChain(blockRanges, chain, chainIdListForBundleEv
|
|
|
45
45
|
* @returns blockRanges: number[][], [[startBlock, endBlock], [startBlock, endBlock], ...]
|
|
46
46
|
*/
|
|
47
47
|
export function getImpliedBundleBlockRanges(hubPoolClient, configStoreClient, rootBundle) {
|
|
48
|
-
|
|
49
|
-
var prevRootBundle = hubPoolClient.getLatestFullyExecutedRootBundle(rootBundle.blockNumber);
|
|
48
|
+
const prevRootBundle = hubPoolClient.getLatestFullyExecutedRootBundle(rootBundle.blockNumber);
|
|
50
49
|
// If chain is disabled for this bundle block range, end block should be same as previous bundle.
|
|
51
50
|
// Otherwise the range should be previous bundle's endBlock + 1 to current bundle's end block.
|
|
52
51
|
// Get enabled chains at the mainnet start block of the current root bundle.
|
|
53
52
|
// We'll check each chain represented in the bundleEvaluationBlockNumbers to see if it's enabled and
|
|
54
53
|
// use that to determine the implied block range.
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
const mainnetStartBlock = prevRootBundle?.bundleEvaluationBlockNumbers[0].toNumber() ?? 0;
|
|
55
|
+
const enabledChainsAtMainnetStartBlock = configStoreClient.getEnabledChains(mainnetStartBlock);
|
|
57
56
|
// Load all chain indices in order to map bundle evaluation block numbers to enabled chains list.
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
var chainId = chainIdIndices[i];
|
|
57
|
+
const chainIdIndices = configStoreClient.getChainIdIndicesForBlock(rootBundle.blockNumber);
|
|
58
|
+
const result = rootBundle.bundleEvaluationBlockNumbers.map((_endBlock, i) => {
|
|
59
|
+
const endBlock = _endBlock.toNumber();
|
|
60
|
+
const bundleEndBlock = prevRootBundle?.bundleEvaluationBlockNumbers?.[i]?.toNumber() ?? 0;
|
|
61
|
+
const fromBlock = bundleEndBlock === endBlock ? endBlock : bundleEndBlock + 1;
|
|
62
|
+
const chainId = chainIdIndices[i];
|
|
65
63
|
if (!enabledChainsAtMainnetStartBlock.includes(chainId)) {
|
|
66
64
|
return [endBlock, endBlock];
|
|
67
65
|
}
|
|
@@ -70,17 +68,16 @@ export function getImpliedBundleBlockRanges(hubPoolClient, configStoreClient, ro
|
|
|
70
68
|
// Lastly, sanity check the results to catch errors early:
|
|
71
69
|
// 1. If the chain is enabled, the start block should be strictly less than to the end block.
|
|
72
70
|
// 2. If the chain is disabled, the start block should be equal to the end block.
|
|
73
|
-
result.forEach(
|
|
74
|
-
|
|
75
|
-
var chainId = chainIdIndices[i];
|
|
71
|
+
result.forEach(([start, end], i) => {
|
|
72
|
+
const chainId = chainIdIndices[i];
|
|
76
73
|
if (enabledChainsAtMainnetStartBlock.includes(chainId)) {
|
|
77
74
|
if (start > end) {
|
|
78
|
-
throw new Error(
|
|
75
|
+
throw new Error(`Invalid block range for enabled chain ${chainId}: start block ${start} is greater than end block ${end}`);
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
78
|
else {
|
|
82
79
|
if (start !== end) {
|
|
83
|
-
throw new Error(
|
|
80
|
+
throw new Error(`Invalid block range for disabled chain ${chainId}: start block ${start} is not equal to end block ${end}`);
|
|
84
81
|
}
|
|
85
82
|
}
|
|
86
83
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BundleUtils.js","sourceRoot":"","sources":["../../../src/utils/BundleUtils.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,4BAAsC,EACtC,KAAa,EACb,0CAAoD;IAEpD,
|
|
1
|
+
{"version":3,"file":"BundleUtils.js","sourceRoot":"","sources":["../../../src/utils/BundleUtils.ts"],"names":[],"mappings":"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"}
|