@across-protocol/sdk 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +116 -0
- package/dist/cjs/apiClient/abstractClient.d.ts +13 -0
- package/dist/cjs/apiClient/abstractClient.js +17 -0
- package/dist/cjs/apiClient/abstractClient.js.map +1 -0
- package/dist/cjs/apiClient/index.d.ts +2 -0
- package/dist/cjs/apiClient/index.js +11 -0
- package/dist/cjs/apiClient/index.js.map +1 -0
- package/dist/cjs/apiClient/mockedClient.d.ts +11 -0
- package/dist/cjs/apiClient/mockedClient.js +60 -0
- package/dist/cjs/apiClient/mockedClient.js.map +1 -0
- package/dist/cjs/apiClient/productionClient.d.ts +10 -0
- package/dist/cjs/apiClient/productionClient.js +110 -0
- package/dist/cjs/apiClient/productionClient.js.map +1 -0
- package/dist/cjs/apiClient/types.d.ts +44 -0
- package/dist/cjs/apiClient/types.js +3 -0
- package/dist/cjs/apiClient/types.js.map +1 -0
- package/dist/cjs/caching/Arweave/ArweaveClient.d.ts +20 -0
- package/dist/cjs/caching/Arweave/ArweaveClient.js +218 -0
- package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -0
- package/dist/cjs/caching/Arweave/index.d.ts +1 -0
- package/dist/cjs/caching/Arweave/index.js +5 -0
- package/dist/cjs/caching/Arweave/index.js.map +1 -0
- package/dist/cjs/caching/IPFS/PinataIPFSClient.d.ts +11 -0
- package/dist/cjs/caching/IPFS/PinataIPFSClient.js +67 -0
- package/dist/cjs/caching/IPFS/PinataIPFSClient.js.map +1 -0
- package/dist/cjs/caching/IPFS/index.d.ts +1 -0
- package/dist/cjs/caching/IPFS/index.js +5 -0
- package/dist/cjs/caching/IPFS/index.js.map +1 -0
- package/dist/cjs/caching/index.d.ts +2 -0
- package/dist/cjs/caching/index.js +6 -0
- package/dist/cjs/caching/index.js.map +1 -0
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +66 -0
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +377 -0
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -0
- package/dist/cjs/clients/AcrossConfigStoreClient/index.d.ts +1 -0
- package/dist/cjs/clients/AcrossConfigStoreClient/index.js +5 -0
- package/dist/cjs/clients/AcrossConfigStoreClient/index.js.map +1 -0
- package/dist/cjs/clients/BaseAbstractClient.d.ts +22 -0
- package/dist/cjs/clients/BaseAbstractClient.js +76 -0
- package/dist/cjs/clients/BaseAbstractClient.js.map +1 -0
- package/dist/cjs/clients/HubPoolClient.d.ts +111 -0
- package/dist/cjs/clients/HubPoolClient.js +758 -0
- package/dist/cjs/clients/HubPoolClient.js.map +1 -0
- package/dist/cjs/clients/SpokePoolClient.d.ts +117 -0
- package/dist/cjs/clients/SpokePoolClient.js +553 -0
- package/dist/cjs/clients/SpokePoolClient.js.map +1 -0
- package/dist/cjs/clients/index.d.ts +4 -0
- package/dist/cjs/clients/index.js +14 -0
- package/dist/cjs/clients/index.js.map +1 -0
- package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +20 -0
- package/dist/cjs/clients/mocks/MockConfigStoreClient.js +121 -0
- package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -0
- package/dist/cjs/clients/mocks/MockEvents.d.ts +27 -0
- package/dist/cjs/clients/mocks/MockEvents.js +117 -0
- package/dist/cjs/clients/mocks/MockEvents.js.map +1 -0
- package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +35 -0
- package/dist/cjs/clients/mocks/MockHubPoolClient.js +222 -0
- package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -0
- package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +38 -0
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js +319 -0
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -0
- package/dist/cjs/clients/mocks/index.d.ts +3 -0
- package/dist/cjs/clients/mocks/index.js +7 -0
- package/dist/cjs/clients/mocks/index.js.map +1 -0
- package/dist/cjs/coingecko/Coingecko.d.ts +40 -0
- package/dist/cjs/coingecko/Coingecko.js +277 -0
- package/dist/cjs/coingecko/Coingecko.js.map +1 -0
- package/dist/cjs/coingecko/index.d.ts +1 -0
- package/dist/cjs/coingecko/index.js +5 -0
- package/dist/cjs/coingecko/index.js.map +1 -0
- package/dist/cjs/constants.d.ts +18 -0
- package/dist/cjs/constants.js +27 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/contracts/acrossConfigStore.d.ts +57 -0
- package/dist/cjs/contracts/acrossConfigStore.js +65 -0
- package/dist/cjs/contracts/acrossConfigStore.js.map +1 -0
- package/dist/cjs/contracts/hubPool.d.ts +17 -0
- package/dist/cjs/contracts/hubPool.js +61 -0
- package/dist/cjs/contracts/hubPool.js.map +1 -0
- package/dist/cjs/contracts/index.d.ts +2 -0
- package/dist/cjs/contracts/index.js +7 -0
- package/dist/cjs/contracts/index.js.map +1 -0
- package/dist/cjs/contracts/utils.d.ts +15 -0
- package/dist/cjs/contracts/utils.js +40 -0
- package/dist/cjs/contracts/utils.js.map +1 -0
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +3 -0
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js +25 -0
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -0
- package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -0
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js +46 -0
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -0
- package/dist/cjs/gasPriceOracle/adapters/index.d.ts +3 -0
- package/dist/cjs/gasPriceOracle/adapters/index.js +7 -0
- package/dist/cjs/gasPriceOracle/adapters/index.js.map +1 -0
- package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -0
- package/dist/cjs/gasPriceOracle/adapters/polygon.js +77 -0
- package/dist/cjs/gasPriceOracle/adapters/polygon.js.map +1 -0
- package/dist/cjs/gasPriceOracle/index.d.ts +2 -0
- package/dist/cjs/gasPriceOracle/index.js +6 -0
- package/dist/cjs/gasPriceOracle/index.js.map +1 -0
- package/dist/cjs/gasPriceOracle/oracle.d.ts +3 -0
- package/dist/cjs/gasPriceOracle/oracle.js +45 -0
- package/dist/cjs/gasPriceOracle/oracle.js.map +1 -0
- package/dist/cjs/gasPriceOracle/types.d.ts +8 -0
- package/dist/cjs/gasPriceOracle/types.js +3 -0
- package/dist/cjs/gasPriceOracle/types.js.map +1 -0
- package/dist/cjs/gasPriceOracle/util.d.ts +2 -0
- package/dist/cjs/gasPriceOracle/util.js +8 -0
- package/dist/cjs/gasPriceOracle/util.js.map +1 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/index.js +20 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/Bridge.d.ts +9 -0
- package/dist/cjs/interfaces/Bridge.js +3 -0
- package/dist/cjs/interfaces/Bridge.js.map +1 -0
- package/dist/cjs/interfaces/CachingMechanism.d.ts +5 -0
- package/dist/cjs/interfaces/CachingMechanism.js +3 -0
- package/dist/cjs/interfaces/CachingMechanism.js.map +1 -0
- package/dist/cjs/interfaces/Common.d.ts +10 -0
- package/dist/cjs/interfaces/Common.js +3 -0
- package/dist/cjs/interfaces/Common.js.map +1 -0
- package/dist/cjs/interfaces/ConfigStore.d.ts +81 -0
- package/dist/cjs/interfaces/ConfigStore.js +3 -0
- package/dist/cjs/interfaces/ConfigStore.js.map +1 -0
- package/dist/cjs/interfaces/Error.d.ts +5 -0
- package/dist/cjs/interfaces/Error.js +3 -0
- package/dist/cjs/interfaces/Error.js.map +1 -0
- package/dist/cjs/interfaces/HubPool.d.ts +98 -0
- package/dist/cjs/interfaces/HubPool.js +3 -0
- package/dist/cjs/interfaces/HubPool.js.map +1 -0
- package/dist/cjs/interfaces/SpokePool.d.ts +103 -0
- package/dist/cjs/interfaces/SpokePool.js +16 -0
- package/dist/cjs/interfaces/SpokePool.js.map +1 -0
- package/dist/cjs/interfaces/TypedData.d.ts +19 -0
- package/dist/cjs/interfaces/TypedData.js +3 -0
- package/dist/cjs/interfaces/TypedData.js.map +1 -0
- package/dist/cjs/interfaces/index.d.ts +8 -0
- package/dist/cjs/interfaces/index.js +12 -0
- package/dist/cjs/interfaces/index.js.map +1 -0
- package/dist/cjs/lpFeeCalculator/index.d.ts +1 -0
- package/dist/cjs/lpFeeCalculator/index.js +5 -0
- package/dist/cjs/lpFeeCalculator/index.js.map +1 -0
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.d.ts +19 -0
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +79 -0
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -0
- package/dist/cjs/lpFeeCalculator/rateModel.d.ts +28 -0
- package/dist/cjs/lpFeeCalculator/rateModel.js +103 -0
- package/dist/cjs/lpFeeCalculator/rateModel.js.map +1 -0
- package/dist/cjs/merkleDistributor/MerkleDistributor.d.ts +8 -0
- package/dist/cjs/merkleDistributor/MerkleDistributor.js +25 -0
- package/dist/cjs/merkleDistributor/MerkleDistributor.js.map +1 -0
- package/dist/cjs/merkleDistributor/index.d.ts +2 -0
- package/dist/cjs/merkleDistributor/index.js +6 -0
- package/dist/cjs/merkleDistributor/index.js.map +1 -0
- package/dist/cjs/merkleDistributor/model/Distribution.d.ts +17 -0
- package/dist/cjs/merkleDistributor/model/Distribution.js +3 -0
- package/dist/cjs/merkleDistributor/model/Distribution.js.map +1 -0
- package/dist/cjs/merkleDistributor/model/index.d.ts +1 -0
- package/dist/cjs/merkleDistributor/model/index.js +5 -0
- package/dist/cjs/merkleDistributor/model/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/pool/TransactionManager.d.ts +12 -0
- package/dist/cjs/pool/TransactionManager.js +121 -0
- package/dist/cjs/pool/TransactionManager.js.map +1 -0
- package/dist/cjs/pool/index.d.ts +1 -0
- package/dist/cjs/pool/index.js +5 -0
- package/dist/cjs/pool/index.js.map +1 -0
- package/dist/cjs/pool/poolClient.d.ts +232 -0
- package/dist/cjs/pool/poolClient.js +869 -0
- package/dist/cjs/pool/poolClient.js.map +1 -0
- package/dist/cjs/priceClient/adapters/acrossApi.d.ts +13 -0
- package/dist/cjs/priceClient/adapters/acrossApi.js +48 -0
- package/dist/cjs/priceClient/adapters/acrossApi.js.map +1 -0
- package/dist/cjs/priceClient/adapters/baseAdapter.d.ts +17 -0
- package/dist/cjs/priceClient/adapters/baseAdapter.js +81 -0
- package/dist/cjs/priceClient/adapters/baseAdapter.js.map +1 -0
- package/dist/cjs/priceClient/adapters/coingecko.d.ts +14 -0
- package/dist/cjs/priceClient/adapters/coingecko.js +75 -0
- package/dist/cjs/priceClient/adapters/coingecko.js.map +1 -0
- package/dist/cjs/priceClient/adapters/defiLlama.d.ts +17 -0
- package/dist/cjs/priceClient/adapters/defiLlama.js +95 -0
- package/dist/cjs/priceClient/adapters/defiLlama.js.map +1 -0
- package/dist/cjs/priceClient/adapters/index.d.ts +3 -0
- package/dist/cjs/priceClient/adapters/index.js +8 -0
- package/dist/cjs/priceClient/adapters/index.js.map +1 -0
- package/dist/cjs/priceClient/index.d.ts +2 -0
- package/dist/cjs/priceClient/index.js +7 -0
- package/dist/cjs/priceClient/index.js.map +1 -0
- package/dist/cjs/priceClient/priceClient.d.ts +32 -0
- package/dist/cjs/priceClient/priceClient.js +197 -0
- package/dist/cjs/priceClient/priceClient.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +29 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +62 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +151 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +35 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +3 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/index.js +7 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/polygon.d.ts +152 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js +43 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/polygon.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/index.d.ts +2 -0
- package/dist/cjs/relayFeeCalculator/index.js +6 -0
- package/dist/cjs/relayFeeCalculator/index.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +231 -0
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +224 -0
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -0
- package/dist/cjs/typechain.d.ts +17 -0
- package/dist/cjs/typechain.js +20 -0
- package/dist/cjs/typechain.js.map +1 -0
- package/dist/cjs/typeguards/error.d.ts +3 -0
- package/dist/cjs/typeguards/error.js +11 -0
- package/dist/cjs/typeguards/error.js.map +1 -0
- package/dist/cjs/typeguards/index.d.ts +1 -0
- package/dist/cjs/typeguards/index.js +5 -0
- package/dist/cjs/typeguards/index.js.map +1 -0
- package/dist/cjs/utils/AddressUtils.d.ts +2 -0
- package/dist/cjs/utils/AddressUtils.js +24 -0
- package/dist/cjs/utils/AddressUtils.js.map +1 -0
- package/dist/cjs/utils/ArrayUtils.d.ts +12 -0
- package/dist/cjs/utils/ArrayUtils.js +125 -0
- package/dist/cjs/utils/ArrayUtils.js.map +1 -0
- package/dist/cjs/utils/BigNumberUtils.d.ts +8 -0
- package/dist/cjs/utils/BigNumberUtils.js +26 -0
- package/dist/cjs/utils/BigNumberUtils.js.map +1 -0
- package/dist/cjs/utils/BlockExplorerUtils.d.ts +3 -0
- package/dist/cjs/utils/BlockExplorerUtils.js +52 -0
- package/dist/cjs/utils/BlockExplorerUtils.js.map +1 -0
- package/dist/cjs/utils/BlockUtils.d.ts +28 -0
- package/dist/cjs/utils/BlockUtils.js +251 -0
- package/dist/cjs/utils/BlockUtils.js.map +1 -0
- package/dist/cjs/utils/BundleUtils.d.ts +5 -0
- package/dist/cjs/utils/BundleUtils.js +62 -0
- package/dist/cjs/utils/BundleUtils.js.map +1 -0
- package/dist/cjs/utils/CachingUtils.d.ts +5 -0
- package/dist/cjs/utils/CachingUtils.js +59 -0
- package/dist/cjs/utils/CachingUtils.js.map +1 -0
- package/dist/cjs/utils/DeploymentUtils.d.ts +1 -0
- package/dist/cjs/utils/DeploymentUtils.js +8 -0
- package/dist/cjs/utils/DeploymentUtils.js.map +1 -0
- package/dist/cjs/utils/DepositUtils.d.ts +19 -0
- package/dist/cjs/utils/DepositUtils.js +107 -0
- package/dist/cjs/utils/DepositUtils.js.map +1 -0
- package/dist/cjs/utils/EventUtils.d.ts +18 -0
- package/dist/cjs/utils/EventUtils.js +169 -0
- package/dist/cjs/utils/EventUtils.js.map +1 -0
- package/dist/cjs/utils/FlowUtils.d.ts +7 -0
- package/dist/cjs/utils/FlowUtils.js +42 -0
- package/dist/cjs/utils/FlowUtils.js.map +1 -0
- package/dist/cjs/utils/FormattingUtils.d.ts +15 -0
- package/dist/cjs/utils/FormattingUtils.js +107 -0
- package/dist/cjs/utils/FormattingUtils.js.map +1 -0
- package/dist/cjs/utils/IPFSUtils.d.ts +4 -0
- package/dist/cjs/utils/IPFSUtils.js +48 -0
- package/dist/cjs/utils/IPFSUtils.js.map +1 -0
- package/dist/cjs/utils/JSONUtils.d.ts +4 -0
- package/dist/cjs/utils/JSONUtils.js +53 -0
- package/dist/cjs/utils/JSONUtils.js.map +1 -0
- package/dist/cjs/utils/LogUtils.d.ts +14 -0
- package/dist/cjs/utils/LogUtils.js +18 -0
- package/dist/cjs/utils/LogUtils.js.map +1 -0
- package/dist/cjs/utils/Multicall.d.ts +13 -0
- package/dist/cjs/utils/Multicall.js +73 -0
- package/dist/cjs/utils/Multicall.js.map +1 -0
- package/dist/cjs/utils/NetworkUtils.d.ts +10 -0
- package/dist/cjs/utils/NetworkUtils.js +70 -0
- package/dist/cjs/utils/NetworkUtils.js.map +1 -0
- package/dist/cjs/utils/NumberUtils.d.ts +2 -0
- package/dist/cjs/utils/NumberUtils.js +12 -0
- package/dist/cjs/utils/NumberUtils.js.map +1 -0
- package/dist/cjs/utils/ObjectUtils.d.ts +5 -0
- package/dist/cjs/utils/ObjectUtils.js +65 -0
- package/dist/cjs/utils/ObjectUtils.js.map +1 -0
- package/dist/cjs/utils/ReviverUtils.d.ts +3 -0
- package/dist/cjs/utils/ReviverUtils.js +23 -0
- package/dist/cjs/utils/ReviverUtils.js.map +1 -0
- package/dist/cjs/utils/SpokeUtils.d.ts +16 -0
- package/dist/cjs/utils/SpokeUtils.js +299 -0
- package/dist/cjs/utils/SpokeUtils.js.map +1 -0
- package/dist/cjs/utils/TimeUtils.d.ts +1 -0
- package/dist/cjs/utils/TimeUtils.js +8 -0
- package/dist/cjs/utils/TimeUtils.js.map +1 -0
- package/dist/cjs/utils/TokenUtils.d.ts +303 -0
- package/dist/cjs/utils/TokenUtils.js +74 -0
- package/dist/cjs/utils/TokenUtils.js.map +1 -0
- package/dist/cjs/utils/TypeGuards.d.ts +3 -0
- package/dist/cjs/utils/TypeGuards.js +16 -0
- package/dist/cjs/utils/TypeGuards.js.map +1 -0
- package/dist/cjs/utils/TypeUtils.d.ts +5 -0
- package/dist/cjs/utils/TypeUtils.js +3 -0
- package/dist/cjs/utils/TypeUtils.js.map +1 -0
- package/dist/cjs/utils/V3Utils.d.ts +4 -0
- package/dist/cjs/utils/V3Utils.js +15 -0
- package/dist/cjs/utils/V3Utils.js.map +1 -0
- package/dist/cjs/utils/ValidatorUtils.d.ts +2 -0
- package/dist/cjs/utils/ValidatorUtils.js +39 -0
- package/dist/cjs/utils/ValidatorUtils.js.map +1 -0
- package/dist/cjs/utils/abi/contracts/Multicall3.json +440 -0
- package/dist/cjs/utils/abi/index.d.ts +3 -0
- package/dist/cjs/utils/abi/index.js +31 -0
- package/dist/cjs/utils/abi/index.js.map +1 -0
- package/dist/cjs/utils/common.d.ts +79 -0
- package/dist/cjs/utils/common.js +220 -0
- package/dist/cjs/utils/common.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +29 -0
- package/dist/cjs/utils/index.js +33 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/esm/apiClient/abstractClient.d.ts +66 -0
- package/dist/esm/apiClient/abstractClient.js +31 -0
- package/dist/esm/apiClient/abstractClient.js.map +1 -0
- package/dist/esm/apiClient/index.d.ts +2 -0
- package/dist/esm/apiClient/index.js +3 -0
- package/dist/esm/apiClient/index.js.map +1 -0
- package/dist/esm/apiClient/mockedClient.d.ts +24 -0
- package/dist/esm/apiClient/mockedClient.js +69 -0
- package/dist/esm/apiClient/mockedClient.js.map +1 -0
- package/dist/esm/apiClient/productionClient.d.ts +16 -0
- package/dist/esm/apiClient/productionClient.js +114 -0
- package/dist/esm/apiClient/productionClient.js.map +1 -0
- package/dist/esm/apiClient/types.d.ts +44 -0
- package/dist/esm/apiClient/types.js +2 -0
- package/dist/esm/apiClient/types.js.map +1 -0
- package/dist/esm/caching/Arweave/ArweaveClient.d.ts +61 -0
- package/dist/esm/caching/Arweave/ArweaveClient.js +265 -0
- package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -0
- package/dist/esm/caching/Arweave/index.d.ts +1 -0
- package/dist/esm/caching/Arweave/index.js +2 -0
- package/dist/esm/caching/Arweave/index.js.map +1 -0
- package/dist/esm/caching/IPFS/PinataIPFSClient.d.ts +37 -0
- package/dist/esm/caching/IPFS/PinataIPFSClient.js +81 -0
- package/dist/esm/caching/IPFS/PinataIPFSClient.js.map +1 -0
- package/dist/esm/caching/IPFS/index.d.ts +1 -0
- package/dist/esm/caching/IPFS/index.js +2 -0
- package/dist/esm/caching/IPFS/index.js.map +1 -0
- package/dist/esm/caching/index.d.ts +2 -0
- package/dist/esm/caching/index.js +3 -0
- package/dist/esm/caching/index.js.map +1 -0
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +108 -0
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +467 -0
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -0
- package/dist/esm/clients/AcrossConfigStoreClient/index.d.ts +1 -0
- package/dist/esm/clients/AcrossConfigStoreClient/index.js +2 -0
- package/dist/esm/clients/AcrossConfigStoreClient/index.js.map +1 -0
- package/dist/esm/clients/BaseAbstractClient.d.ts +51 -0
- package/dist/esm/clients/BaseAbstractClient.js +101 -0
- package/dist/esm/clients/BaseAbstractClient.js.map +1 -0
- package/dist/esm/clients/HubPoolClient.d.ts +134 -0
- package/dist/esm/clients/HubPoolClient.js +862 -0
- package/dist/esm/clients/HubPoolClient.js.map +1 -0
- package/dist/esm/clients/SpokePoolClient.d.ts +318 -0
- package/dist/esm/clients/SpokePoolClient.js +780 -0
- package/dist/esm/clients/SpokePoolClient.js.map +1 -0
- package/dist/esm/clients/index.d.ts +4 -0
- package/dist/esm/clients/index.js +6 -0
- package/dist/esm/clients/index.js.map +1 -0
- package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +20 -0
- package/dist/esm/clients/mocks/MockConfigStoreClient.js +122 -0
- package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -0
- package/dist/esm/clients/mocks/MockEvents.d.ts +34 -0
- package/dist/esm/clients/mocks/MockEvents.js +126 -0
- package/dist/esm/clients/mocks/MockEvents.js.map +1 -0
- package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +35 -0
- package/dist/esm/clients/mocks/MockHubPoolClient.js +223 -0
- package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -0
- package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +38 -0
- package/dist/esm/clients/mocks/MockSpokePoolClient.js +322 -0
- package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -0
- package/dist/esm/clients/mocks/index.d.ts +3 -0
- package/dist/esm/clients/mocks/index.js +4 -0
- package/dist/esm/clients/mocks/index.js.map +1 -0
- package/dist/esm/coingecko/Coingecko.d.ts +40 -0
- package/dist/esm/coingecko/Coingecko.js +283 -0
- package/dist/esm/coingecko/Coingecko.js.map +1 -0
- package/dist/esm/coingecko/index.d.ts +1 -0
- package/dist/esm/coingecko/index.js +2 -0
- package/dist/esm/coingecko/index.js.map +1 -0
- package/dist/esm/constants.d.ts +29 -0
- package/dist/esm/constants.js +34 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/contracts/acrossConfigStore.d.ts +57 -0
- package/dist/esm/contracts/acrossConfigStore.js +62 -0
- package/dist/esm/contracts/acrossConfigStore.js.map +1 -0
- package/dist/esm/contracts/hubPool.d.ts +17 -0
- package/dist/esm/contracts/hubPool.js +55 -0
- package/dist/esm/contracts/hubPool.js.map +1 -0
- package/dist/esm/contracts/index.d.ts +2 -0
- package/dist/esm/contracts/index.js +5 -0
- package/dist/esm/contracts/index.js.map +1 -0
- package/dist/esm/contracts/utils.d.ts +23 -0
- package/dist/esm/contracts/utils.js +38 -0
- package/dist/esm/contracts/utils.js.map +1 -0
- package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +3 -0
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js +25 -0
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -0
- package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -0
- package/dist/esm/gasPriceOracle/adapters/ethereum.js +41 -0
- package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -0
- package/dist/esm/gasPriceOracle/adapters/index.d.ts +3 -0
- package/dist/esm/gasPriceOracle/adapters/index.js +4 -0
- package/dist/esm/gasPriceOracle/adapters/index.js.map +1 -0
- package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +3 -0
- package/dist/esm/gasPriceOracle/adapters/polygon.js +78 -0
- package/dist/esm/gasPriceOracle/adapters/polygon.js.map +1 -0
- package/dist/esm/gasPriceOracle/index.d.ts +2 -0
- package/dist/esm/gasPriceOracle/index.js +2 -0
- package/dist/esm/gasPriceOracle/index.js.map +1 -0
- package/dist/esm/gasPriceOracle/oracle.d.ts +10 -0
- package/dist/esm/gasPriceOracle/oracle.js +48 -0
- package/dist/esm/gasPriceOracle/oracle.js.map +1 -0
- package/dist/esm/gasPriceOracle/types.d.ts +8 -0
- package/dist/esm/gasPriceOracle/types.js +2 -0
- package/dist/esm/gasPriceOracle/types.js.map +1 -0
- package/dist/esm/gasPriceOracle/util.d.ts +2 -0
- package/dist/esm/gasPriceOracle/util.js +4 -0
- package/dist/esm/gasPriceOracle/util.js.map +1 -0
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.js +31 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/interfaces/Bridge.d.ts +9 -0
- package/dist/esm/interfaces/Bridge.js +2 -0
- package/dist/esm/interfaces/Bridge.js.map +1 -0
- package/dist/esm/interfaces/CachingMechanism.d.ts +26 -0
- package/dist/esm/interfaces/CachingMechanism.js +2 -0
- package/dist/esm/interfaces/CachingMechanism.js.map +1 -0
- package/dist/esm/interfaces/Common.d.ts +10 -0
- package/dist/esm/interfaces/Common.js +2 -0
- package/dist/esm/interfaces/Common.js.map +1 -0
- package/dist/esm/interfaces/ConfigStore.d.ts +157 -0
- package/dist/esm/interfaces/ConfigStore.js +2 -0
- package/dist/esm/interfaces/ConfigStore.js.map +1 -0
- package/dist/esm/interfaces/Error.d.ts +5 -0
- package/dist/esm/interfaces/Error.js +2 -0
- package/dist/esm/interfaces/Error.js.map +1 -0
- package/dist/esm/interfaces/HubPool.d.ts +98 -0
- package/dist/esm/interfaces/HubPool.js +2 -0
- package/dist/esm/interfaces/HubPool.js.map +1 -0
- package/dist/esm/interfaces/SpokePool.d.ts +103 -0
- package/dist/esm/interfaces/SpokePool.js +13 -0
- package/dist/esm/interfaces/SpokePool.js.map +1 -0
- package/dist/esm/interfaces/TypedData.d.ts +19 -0
- package/dist/esm/interfaces/TypedData.js +2 -0
- package/dist/esm/interfaces/TypedData.js.map +1 -0
- package/dist/esm/interfaces/index.d.ts +8 -0
- package/dist/esm/interfaces/index.js +9 -0
- package/dist/esm/interfaces/index.js.map +1 -0
- package/dist/esm/lpFeeCalculator/index.d.ts +1 -0
- package/dist/esm/lpFeeCalculator/index.js +2 -0
- package/dist/esm/lpFeeCalculator/index.js.map +1 -0
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.d.ts +66 -0
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +129 -0
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -0
- package/dist/esm/lpFeeCalculator/rateModel.d.ts +45 -0
- package/dist/esm/lpFeeCalculator/rateModel.js +138 -0
- package/dist/esm/lpFeeCalculator/rateModel.js.map +1 -0
- package/dist/esm/merkleDistributor/MerkleDistributor.d.ts +20 -0
- package/dist/esm/merkleDistributor/MerkleDistributor.js +34 -0
- package/dist/esm/merkleDistributor/MerkleDistributor.js.map +1 -0
- package/dist/esm/merkleDistributor/index.d.ts +2 -0
- package/dist/esm/merkleDistributor/index.js +3 -0
- package/dist/esm/merkleDistributor/index.js.map +1 -0
- package/dist/esm/merkleDistributor/model/Distribution.d.ts +17 -0
- package/dist/esm/merkleDistributor/model/Distribution.js +2 -0
- package/dist/esm/merkleDistributor/model/Distribution.js.map +1 -0
- package/dist/esm/merkleDistributor/model/index.d.ts +1 -0
- package/dist/esm/merkleDistributor/model/index.js +2 -0
- package/dist/esm/merkleDistributor/model/index.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/pool/TransactionManager.d.ts +12 -0
- package/dist/esm/pool/TransactionManager.js +122 -0
- package/dist/esm/pool/TransactionManager.js.map +1 -0
- package/dist/esm/pool/index.d.ts +1 -0
- package/dist/esm/pool/index.js +2 -0
- package/dist/esm/pool/index.js.map +1 -0
- package/dist/esm/pool/poolClient.d.ts +242 -0
- package/dist/esm/pool/poolClient.js +899 -0
- package/dist/esm/pool/poolClient.js.map +1 -0
- package/dist/esm/priceClient/adapters/acrossApi.d.ts +14 -0
- package/dist/esm/priceClient/adapters/acrossApi.js +49 -0
- package/dist/esm/priceClient/adapters/acrossApi.js.map +1 -0
- package/dist/esm/priceClient/adapters/baseAdapter.d.ts +17 -0
- package/dist/esm/priceClient/adapters/baseAdapter.js +78 -0
- package/dist/esm/priceClient/adapters/baseAdapter.js.map +1 -0
- package/dist/esm/priceClient/adapters/coingecko.d.ts +14 -0
- package/dist/esm/priceClient/adapters/coingecko.js +73 -0
- package/dist/esm/priceClient/adapters/coingecko.js.map +1 -0
- package/dist/esm/priceClient/adapters/defiLlama.d.ts +17 -0
- package/dist/esm/priceClient/adapters/defiLlama.js +93 -0
- package/dist/esm/priceClient/adapters/defiLlama.js.map +1 -0
- package/dist/esm/priceClient/adapters/index.d.ts +3 -0
- package/dist/esm/priceClient/adapters/index.js +7 -0
- package/dist/esm/priceClient/adapters/index.js.map +1 -0
- package/dist/esm/priceClient/index.d.ts +2 -0
- package/dist/esm/priceClient/index.js +4 -0
- package/dist/esm/priceClient/index.js.map +1 -0
- package/dist/esm/priceClient/priceClient.d.ts +32 -0
- package/dist/esm/priceClient/priceClient.js +206 -0
- package/dist/esm/priceClient/priceClient.js.map +1 -0
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +61 -0
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +91 -0
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -0
- package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +151 -0
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js +38 -0
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -0
- package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +3 -0
- package/dist/esm/relayFeeCalculator/chain-queries/index.js +4 -0
- package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -0
- package/dist/esm/relayFeeCalculator/chain-queries/polygon.d.ts +152 -0
- package/dist/esm/relayFeeCalculator/chain-queries/polygon.js +40 -0
- package/dist/esm/relayFeeCalculator/chain-queries/polygon.js.map +1 -0
- package/dist/esm/relayFeeCalculator/index.d.ts +2 -0
- package/dist/esm/relayFeeCalculator/index.js +3 -0
- package/dist/esm/relayFeeCalculator/index.js.map +1 -0
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +282 -0
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +298 -0
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -0
- package/dist/esm/typechain.d.ts +22 -0
- package/dist/esm/typechain.js +9 -0
- package/dist/esm/typechain.js.map +1 -0
- package/dist/esm/typeguards/error.d.ts +3 -0
- package/dist/esm/typeguards/error.js +6 -0
- package/dist/esm/typeguards/error.js.map +1 -0
- package/dist/esm/typeguards/index.d.ts +1 -0
- package/dist/esm/typeguards/index.js +2 -0
- package/dist/esm/typeguards/index.js.map +1 -0
- package/dist/esm/utils/AddressUtils.d.ts +8 -0
- package/dist/esm/utils/AddressUtils.js +28 -0
- package/dist/esm/utils/AddressUtils.js.map +1 -0
- package/dist/esm/utils/ArrayUtils.d.ts +98 -0
- package/dist/esm/utils/ArrayUtils.js +196 -0
- package/dist/esm/utils/ArrayUtils.js.map +1 -0
- package/dist/esm/utils/BigNumberUtils.d.ts +31 -0
- package/dist/esm/utils/BigNumberUtils.js +52 -0
- package/dist/esm/utils/BigNumberUtils.js.map +1 -0
- package/dist/esm/utils/BlockExplorerUtils.d.ts +21 -0
- package/dist/esm/utils/BlockExplorerUtils.js +91 -0
- package/dist/esm/utils/BlockExplorerUtils.js.map +1 -0
- package/dist/esm/utils/BlockUtils.d.ts +46 -0
- package/dist/esm/utils/BlockUtils.js +294 -0
- package/dist/esm/utils/BlockUtils.js.map +1 -0
- package/dist/esm/utils/BundleUtils.d.ts +29 -0
- package/dist/esm/utils/BundleUtils.js +89 -0
- package/dist/esm/utils/BundleUtils.js.map +1 -0
- package/dist/esm/utils/CachingUtils.d.ts +17 -0
- package/dist/esm/utils/CachingUtils.js +66 -0
- package/dist/esm/utils/CachingUtils.js.map +1 -0
- package/dist/esm/utils/DeploymentUtils.d.ts +1 -0
- package/dist/esm/utils/DeploymentUtils.js +2 -0
- package/dist/esm/utils/DeploymentUtils.js.map +1 -0
- package/dist/esm/utils/DepositUtils.d.ts +46 -0
- package/dist/esm/utils/DepositUtils.js +138 -0
- package/dist/esm/utils/DepositUtils.js.map +1 -0
- package/dist/esm/utils/EventUtils.d.ts +32 -0
- package/dist/esm/utils/EventUtils.js +194 -0
- package/dist/esm/utils/EventUtils.js.map +1 -0
- package/dist/esm/utils/FlowUtils.d.ts +8 -0
- package/dist/esm/utils/FlowUtils.js +39 -0
- package/dist/esm/utils/FlowUtils.js.map +1 -0
- package/dist/esm/utils/FormattingUtils.d.ts +61 -0
- package/dist/esm/utils/FormattingUtils.js +167 -0
- package/dist/esm/utils/FormattingUtils.js.map +1 -0
- package/dist/esm/utils/IPFSUtils.d.ts +24 -0
- package/dist/esm/utils/IPFSUtils.js +65 -0
- package/dist/esm/utils/IPFSUtils.js.map +1 -0
- package/dist/esm/utils/JSONUtils.d.ts +31 -0
- package/dist/esm/utils/JSONUtils.js +82 -0
- package/dist/esm/utils/JSONUtils.js.map +1 -0
- package/dist/esm/utils/LogUtils.d.ts +20 -0
- package/dist/esm/utils/LogUtils.js +19 -0
- package/dist/esm/utils/LogUtils.js.map +1 -0
- package/dist/esm/utils/Multicall.d.ts +13 -0
- package/dist/esm/utils/Multicall.js +70 -0
- package/dist/esm/utils/Multicall.js.map +1 -0
- package/dist/esm/utils/NetworkUtils.d.ts +60 -0
- package/dist/esm/utils/NetworkUtils.js +109 -0
- package/dist/esm/utils/NetworkUtils.js.map +1 -0
- package/dist/esm/utils/NumberUtils.d.ts +12 -0
- package/dist/esm/utils/NumberUtils.js +17 -0
- package/dist/esm/utils/NumberUtils.js.map +1 -0
- package/dist/esm/utils/ObjectUtils.d.ts +10 -0
- package/dist/esm/utils/ObjectUtils.js +72 -0
- package/dist/esm/utils/ObjectUtils.js.map +1 -0
- package/dist/esm/utils/ReviverUtils.d.ts +15 -0
- package/dist/esm/utils/ReviverUtils.js +33 -0
- package/dist/esm/utils/ReviverUtils.js.map +1 -0
- package/dist/esm/utils/SpokeUtils.d.ts +64 -0
- package/dist/esm/utils/SpokeUtils.js +370 -0
- package/dist/esm/utils/SpokeUtils.js.map +1 -0
- package/dist/esm/utils/TimeUtils.d.ts +5 -0
- package/dist/esm/utils/TimeUtils.js +8 -0
- package/dist/esm/utils/TimeUtils.js.map +1 -0
- package/dist/esm/utils/TokenUtils.d.ts +325 -0
- package/dist/esm/utils/TokenUtils.js +88 -0
- package/dist/esm/utils/TokenUtils.js.map +1 -0
- package/dist/esm/utils/TypeGuards.d.ts +3 -0
- package/dist/esm/utils/TypeGuards.js +10 -0
- package/dist/esm/utils/TypeGuards.js.map +1 -0
- package/dist/esm/utils/TypeUtils.d.ts +5 -0
- package/dist/esm/utils/TypeUtils.js +2 -0
- package/dist/esm/utils/TypeUtils.js.map +1 -0
- package/dist/esm/utils/V3Utils.d.ts +4 -0
- package/dist/esm/utils/V3Utils.js +10 -0
- package/dist/esm/utils/V3Utils.js.map +1 -0
- package/dist/esm/utils/ValidatorUtils.d.ts +2 -0
- package/dist/esm/utils/ValidatorUtils.js +35 -0
- package/dist/esm/utils/ValidatorUtils.js.map +1 -0
- package/dist/esm/utils/abi/contracts/Multicall3.json +440 -0
- package/dist/esm/utils/abi/index.d.ts +18 -0
- package/dist/esm/utils/abi/index.js +41 -0
- package/dist/esm/utils/abi/index.js.map +1 -0
- package/dist/esm/utils/common.d.ts +204 -0
- package/dist/esm/utils/common.js +325 -0
- package/dist/esm/utils/common.js.map +1 -0
- package/dist/esm/utils/index.d.ts +29 -0
- package/dist/esm/utils/index.js +30 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/types/apiClient/abstractClient.d.ts +67 -0
- package/dist/types/apiClient/abstractClient.d.ts.map +1 -0
- package/dist/types/apiClient/index.d.ts +3 -0
- package/dist/types/apiClient/index.d.ts.map +1 -0
- package/dist/types/apiClient/mockedClient.d.ts +25 -0
- package/dist/types/apiClient/mockedClient.d.ts.map +1 -0
- package/dist/types/apiClient/productionClient.d.ts +17 -0
- package/dist/types/apiClient/productionClient.d.ts.map +1 -0
- package/dist/types/apiClient/types.d.ts +45 -0
- package/dist/types/apiClient/types.d.ts.map +1 -0
- package/dist/types/caching/Arweave/ArweaveClient.d.ts +62 -0
- package/dist/types/caching/Arweave/ArweaveClient.d.ts.map +1 -0
- package/dist/types/caching/Arweave/index.d.ts +2 -0
- package/dist/types/caching/Arweave/index.d.ts.map +1 -0
- package/dist/types/caching/IPFS/PinataIPFSClient.d.ts +38 -0
- package/dist/types/caching/IPFS/PinataIPFSClient.d.ts.map +1 -0
- package/dist/types/caching/IPFS/index.d.ts +2 -0
- package/dist/types/caching/IPFS/index.d.ts.map +1 -0
- package/dist/types/caching/index.d.ts +3 -0
- package/dist/types/caching/index.d.ts.map +1 -0
- package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +109 -0
- package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -0
- package/dist/types/clients/AcrossConfigStoreClient/index.d.ts +2 -0
- package/dist/types/clients/AcrossConfigStoreClient/index.d.ts.map +1 -0
- package/dist/types/clients/BaseAbstractClient.d.ts +52 -0
- package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -0
- package/dist/types/clients/HubPoolClient.d.ts +135 -0
- package/dist/types/clients/HubPoolClient.d.ts.map +1 -0
- package/dist/types/clients/SpokePoolClient.d.ts +319 -0
- package/dist/types/clients/SpokePoolClient.d.ts.map +1 -0
- package/dist/types/clients/index.d.ts +5 -0
- package/dist/types/clients/index.d.ts.map +1 -0
- package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +21 -0
- package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -0
- package/dist/types/clients/mocks/MockEvents.d.ts +35 -0
- package/dist/types/clients/mocks/MockEvents.d.ts.map +1 -0
- package/dist/types/clients/mocks/MockHubPoolClient.d.ts +36 -0
- package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -0
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +39 -0
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -0
- package/dist/types/clients/mocks/index.d.ts +4 -0
- package/dist/types/clients/mocks/index.d.ts.map +1 -0
- package/dist/types/coingecko/Coingecko.d.ts +41 -0
- package/dist/types/coingecko/Coingecko.d.ts.map +1 -0
- package/dist/types/coingecko/index.d.ts +2 -0
- package/dist/types/coingecko/index.d.ts.map +1 -0
- package/dist/types/constants.d.ts +30 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/contracts/acrossConfigStore.d.ts +58 -0
- package/dist/types/contracts/acrossConfigStore.d.ts.map +1 -0
- package/dist/types/contracts/hubPool.d.ts +18 -0
- package/dist/types/contracts/hubPool.d.ts.map +1 -0
- package/dist/types/contracts/index.d.ts +3 -0
- package/dist/types/contracts/index.d.ts.map +1 -0
- package/dist/types/contracts/utils.d.ts +24 -0
- package/dist/types/contracts/utils.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +4 -0
- package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +5 -0
- package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/adapters/index.d.ts +4 -0
- package/dist/types/gasPriceOracle/adapters/index.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -0
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/index.d.ts +3 -0
- package/dist/types/gasPriceOracle/index.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/oracle.d.ts +11 -0
- package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/types.d.ts +9 -0
- package/dist/types/gasPriceOracle/types.d.ts.map +1 -0
- package/dist/types/gasPriceOracle/util.d.ts +3 -0
- package/dist/types/gasPriceOracle/util.d.ts.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/interfaces/Bridge.d.ts +10 -0
- package/dist/types/interfaces/Bridge.d.ts.map +1 -0
- package/dist/types/interfaces/CachingMechanism.d.ts +27 -0
- package/dist/types/interfaces/CachingMechanism.d.ts.map +1 -0
- package/dist/types/interfaces/Common.d.ts +11 -0
- package/dist/types/interfaces/Common.d.ts.map +1 -0
- package/dist/types/interfaces/ConfigStore.d.ts +158 -0
- package/dist/types/interfaces/ConfigStore.d.ts.map +1 -0
- package/dist/types/interfaces/Error.d.ts +6 -0
- package/dist/types/interfaces/Error.d.ts.map +1 -0
- package/dist/types/interfaces/HubPool.d.ts +99 -0
- package/dist/types/interfaces/HubPool.d.ts.map +1 -0
- package/dist/types/interfaces/SpokePool.d.ts +104 -0
- package/dist/types/interfaces/SpokePool.d.ts.map +1 -0
- package/dist/types/interfaces/TypedData.d.ts +20 -0
- package/dist/types/interfaces/TypedData.d.ts.map +1 -0
- package/dist/types/interfaces/index.d.ts +9 -0
- package/dist/types/interfaces/index.d.ts.map +1 -0
- package/dist/types/lpFeeCalculator/index.d.ts +2 -0
- package/dist/types/lpFeeCalculator/index.d.ts.map +1 -0
- package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts +67 -0
- package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts.map +1 -0
- package/dist/types/lpFeeCalculator/rateModel.d.ts +46 -0
- package/dist/types/lpFeeCalculator/rateModel.d.ts.map +1 -0
- package/dist/types/merkleDistributor/MerkleDistributor.d.ts +21 -0
- package/dist/types/merkleDistributor/MerkleDistributor.d.ts.map +1 -0
- package/dist/types/merkleDistributor/index.d.ts +3 -0
- package/dist/types/merkleDistributor/index.d.ts.map +1 -0
- package/dist/types/merkleDistributor/model/Distribution.d.ts +18 -0
- package/dist/types/merkleDistributor/model/Distribution.d.ts.map +1 -0
- package/dist/types/merkleDistributor/model/index.d.ts +2 -0
- package/dist/types/merkleDistributor/model/index.d.ts.map +1 -0
- package/dist/types/pool/TransactionManager.d.ts +13 -0
- package/dist/types/pool/TransactionManager.d.ts.map +1 -0
- package/dist/types/pool/index.d.ts +2 -0
- package/dist/types/pool/index.d.ts.map +1 -0
- package/dist/types/pool/poolClient.d.ts +243 -0
- package/dist/types/pool/poolClient.d.ts.map +1 -0
- package/dist/types/priceClient/adapters/acrossApi.d.ts +15 -0
- package/dist/types/priceClient/adapters/acrossApi.d.ts.map +1 -0
- package/dist/types/priceClient/adapters/baseAdapter.d.ts +18 -0
- package/dist/types/priceClient/adapters/baseAdapter.d.ts.map +1 -0
- package/dist/types/priceClient/adapters/coingecko.d.ts +15 -0
- package/dist/types/priceClient/adapters/coingecko.d.ts.map +1 -0
- package/dist/types/priceClient/adapters/defiLlama.d.ts +18 -0
- package/dist/types/priceClient/adapters/defiLlama.d.ts.map +1 -0
- package/dist/types/priceClient/adapters/index.d.ts +4 -0
- package/dist/types/priceClient/adapters/index.d.ts.map +1 -0
- package/dist/types/priceClient/index.d.ts +3 -0
- package/dist/types/priceClient/index.d.ts.map +1 -0
- package/dist/types/priceClient/priceClient.d.ts +33 -0
- package/dist/types/priceClient/priceClient.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +62 -0
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +152 -0
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +4 -0
- package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts +153 -0
- package/dist/types/relayFeeCalculator/chain-queries/polygon.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/index.d.ts +3 -0
- package/dist/types/relayFeeCalculator/index.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +283 -0
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -0
- package/dist/types/typechain.d.ts +23 -0
- package/dist/types/typechain.d.ts.map +1 -0
- package/dist/types/typeguards/error.d.ts +4 -0
- package/dist/types/typeguards/error.d.ts.map +1 -0
- package/dist/types/typeguards/index.d.ts +2 -0
- package/dist/types/typeguards/index.d.ts.map +1 -0
- package/dist/types/utils/AddressUtils.d.ts +9 -0
- package/dist/types/utils/AddressUtils.d.ts.map +1 -0
- package/dist/types/utils/ArrayUtils.d.ts +99 -0
- package/dist/types/utils/ArrayUtils.d.ts.map +1 -0
- package/dist/types/utils/BigNumberUtils.d.ts +32 -0
- package/dist/types/utils/BigNumberUtils.d.ts.map +1 -0
- package/dist/types/utils/BlockExplorerUtils.d.ts +22 -0
- package/dist/types/utils/BlockExplorerUtils.d.ts.map +1 -0
- package/dist/types/utils/BlockUtils.d.ts +47 -0
- package/dist/types/utils/BlockUtils.d.ts.map +1 -0
- package/dist/types/utils/BundleUtils.d.ts +30 -0
- package/dist/types/utils/BundleUtils.d.ts.map +1 -0
- package/dist/types/utils/CachingUtils.d.ts +18 -0
- package/dist/types/utils/CachingUtils.d.ts.map +1 -0
- package/dist/types/utils/DeploymentUtils.d.ts +2 -0
- package/dist/types/utils/DeploymentUtils.d.ts.map +1 -0
- package/dist/types/utils/DepositUtils.d.ts +47 -0
- package/dist/types/utils/DepositUtils.d.ts.map +1 -0
- package/dist/types/utils/EventUtils.d.ts +33 -0
- package/dist/types/utils/EventUtils.d.ts.map +1 -0
- package/dist/types/utils/FlowUtils.d.ts +9 -0
- package/dist/types/utils/FlowUtils.d.ts.map +1 -0
- package/dist/types/utils/FormattingUtils.d.ts +62 -0
- package/dist/types/utils/FormattingUtils.d.ts.map +1 -0
- package/dist/types/utils/IPFSUtils.d.ts +25 -0
- package/dist/types/utils/IPFSUtils.d.ts.map +1 -0
- package/dist/types/utils/JSONUtils.d.ts +32 -0
- package/dist/types/utils/JSONUtils.d.ts.map +1 -0
- package/dist/types/utils/LogUtils.d.ts +21 -0
- package/dist/types/utils/LogUtils.d.ts.map +1 -0
- package/dist/types/utils/Multicall.d.ts +14 -0
- package/dist/types/utils/Multicall.d.ts.map +1 -0
- package/dist/types/utils/NetworkUtils.d.ts +61 -0
- package/dist/types/utils/NetworkUtils.d.ts.map +1 -0
- package/dist/types/utils/NumberUtils.d.ts +13 -0
- package/dist/types/utils/NumberUtils.d.ts.map +1 -0
- package/dist/types/utils/ObjectUtils.d.ts +11 -0
- package/dist/types/utils/ObjectUtils.d.ts.map +1 -0
- package/dist/types/utils/ReviverUtils.d.ts +16 -0
- package/dist/types/utils/ReviverUtils.d.ts.map +1 -0
- package/dist/types/utils/SpokeUtils.d.ts +65 -0
- package/dist/types/utils/SpokeUtils.d.ts.map +1 -0
- package/dist/types/utils/TimeUtils.d.ts +6 -0
- package/dist/types/utils/TimeUtils.d.ts.map +1 -0
- package/dist/types/utils/TokenUtils.d.ts +326 -0
- package/dist/types/utils/TokenUtils.d.ts.map +1 -0
- package/dist/types/utils/TypeGuards.d.ts +4 -0
- package/dist/types/utils/TypeGuards.d.ts.map +1 -0
- package/dist/types/utils/TypeUtils.d.ts +6 -0
- package/dist/types/utils/TypeUtils.d.ts.map +1 -0
- package/dist/types/utils/V3Utils.d.ts +5 -0
- package/dist/types/utils/V3Utils.d.ts.map +1 -0
- package/dist/types/utils/ValidatorUtils.d.ts +3 -0
- package/dist/types/utils/ValidatorUtils.d.ts.map +1 -0
- package/dist/types/utils/abi/index.d.ts +19 -0
- package/dist/types/utils/abi/index.d.ts.map +1 -0
- package/dist/types/utils/common.d.ts +205 -0
- package/dist/types/utils/common.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +30 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/package.json +144 -0
- package/src/apiClient/abstractClient.ts +95 -0
- package/src/apiClient/index.ts +2 -0
- package/src/apiClient/mockedClient.ts +90 -0
- package/src/apiClient/productionClient.ts +98 -0
- package/src/apiClient/types.ts +49 -0
- package/src/caching/Arweave/ArweaveClient.ts +238 -0
- package/src/caching/Arweave/index.ts +1 -0
- package/src/caching/IPFS/PinataIPFSClient.ts +92 -0
- package/src/caching/IPFS/index.ts +1 -0
- package/src/caching/index.ts +2 -0
- package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +526 -0
- package/src/clients/AcrossConfigStoreClient/index.ts +1 -0
- package/src/clients/BaseAbstractClient.ts +94 -0
- package/src/clients/HubPoolClient.ts +1010 -0
- package/src/clients/SpokePoolClient.ts +894 -0
- package/src/clients/index.ts +9 -0
- package/src/clients/mocks/MockConfigStoreClient.ts +129 -0
- package/src/clients/mocks/MockEvents.ts +156 -0
- package/src/clients/mocks/MockHubPoolClient.ts +257 -0
- package/src/clients/mocks/MockSpokePoolClient.ts +341 -0
- package/src/clients/mocks/index.ts +3 -0
- package/src/coingecko/Coingecko.ts +277 -0
- package/src/coingecko/index.ts +1 -0
- package/src/constants.ts +53 -0
- package/src/contracts/acrossConfigStore.ts +49 -0
- package/src/contracts/hubPool.ts +90 -0
- package/src/contracts/index.ts +2 -0
- package/src/contracts/utils.ts +56 -0
- package/src/gasPriceOracle/adapters/arbitrum.ts +21 -0
- package/src/gasPriceOracle/adapters/ethereum.ts +27 -0
- package/src/gasPriceOracle/adapters/index.ts +3 -0
- package/src/gasPriceOracle/adapters/polygon.ts +77 -0
- package/src/gasPriceOracle/index.ts +2 -0
- package/src/gasPriceOracle/oracle.ts +42 -0
- package/src/gasPriceOracle/types.ts +10 -0
- package/src/gasPriceOracle/util.ts +5 -0
- package/src/index.ts +15 -0
- package/src/interfaces/Bridge.ts +10 -0
- package/src/interfaces/CachingMechanism.ts +37 -0
- package/src/interfaces/Common.ts +12 -0
- package/src/interfaces/ConfigStore.ts +173 -0
- package/src/interfaces/Error.ts +5 -0
- package/src/interfaces/HubPool.ts +118 -0
- package/src/interfaces/SpokePool.ts +119 -0
- package/src/interfaces/TypedData.ts +21 -0
- package/src/interfaces/index.ts +8 -0
- package/src/lpFeeCalculator/README.md +27 -0
- package/src/lpFeeCalculator/index.ts +1 -0
- package/src/lpFeeCalculator/lpFeeCalculator.ts +169 -0
- package/src/lpFeeCalculator/rateModel.ts +183 -0
- package/src/merkleDistributor/MerkleDistributor.ts +37 -0
- package/src/merkleDistributor/README.md +30 -0
- package/src/merkleDistributor/index.ts +2 -0
- package/src/merkleDistributor/model/Distribution.ts +17 -0
- package/src/merkleDistributor/model/index.ts +1 -0
- package/src/pool/TransactionManager.ts +73 -0
- package/src/pool/index.ts +1 -0
- package/src/pool/poolClient.ts +840 -0
- package/src/priceClient/README.md +36 -0
- package/src/priceClient/adapters/acrossApi.ts +44 -0
- package/src/priceClient/adapters/baseAdapter.ts +65 -0
- package/src/priceClient/adapters/coingecko.ts +67 -0
- package/src/priceClient/adapters/defiLlama.ts +96 -0
- package/src/priceClient/adapters/index.ts +3 -0
- package/src/priceClient/index.ts +2 -0
- package/src/priceClient/priceClient.ts +192 -0
- package/src/relayFeeCalculator/README.md +34 -0
- package/src/relayFeeCalculator/chain-queries/baseQuery.ts +98 -0
- package/src/relayFeeCalculator/chain-queries/factory.ts +58 -0
- package/src/relayFeeCalculator/chain-queries/index.ts +3 -0
- package/src/relayFeeCalculator/chain-queries/polygon.ts +45 -0
- package/src/relayFeeCalculator/index.ts +2 -0
- package/src/relayFeeCalculator/relayFeeCalculator.ts +410 -0
- package/src/typechain.ts +46 -0
- package/src/typeguards/error.ts +7 -0
- package/src/typeguards/index.ts +1 -0
- package/src/utils/AddressUtils.ts +18 -0
- package/src/utils/ArrayUtils.ts +170 -0
- package/src/utils/BigNumberUtils.ts +58 -0
- package/src/utils/BlockExplorerUtils.ts +91 -0
- package/src/utils/BlockUtils.ts +265 -0
- package/src/utils/BundleUtils.ts +109 -0
- package/src/utils/CachingUtils.ts +56 -0
- package/src/utils/DeploymentUtils.ts +5 -0
- package/src/utils/DepositUtils.ts +144 -0
- package/src/utils/EventUtils.ts +227 -0
- package/src/utils/FlowUtils.ts +48 -0
- package/src/utils/FormattingUtils.ts +186 -0
- package/src/utils/IPFSUtils.ts +48 -0
- package/src/utils/JSONUtils.ts +85 -0
- package/src/utils/LogUtils.ts +38 -0
- package/src/utils/Multicall.ts +64 -0
- package/src/utils/NetworkUtils.ts +117 -0
- package/src/utils/NumberUtils.ts +17 -0
- package/src/utils/ObjectUtils.ts +77 -0
- package/src/utils/ReviverUtils.ts +31 -0
- package/src/utils/SpokeUtils.ts +372 -0
- package/src/utils/TimeUtils.ts +7 -0
- package/src/utils/TokenUtils.ts +94 -0
- package/src/utils/TypeGuards.ts +15 -0
- package/src/utils/TypeUtils.ts +9 -0
- package/src/utils/V3Utils.ts +12 -0
- package/src/utils/ValidatorUtils.ts +38 -0
- package/src/utils/abi/contracts/Multicall3.json +440 -0
- package/src/utils/abi/index.ts +33 -0
- package/src/utils/common.ts +392 -0
- package/src/utils/index.ts +29 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import assert from "assert";
|
|
2
|
+
import { BigNumber, Contract, Event, providers } from "ethers";
|
|
3
|
+
import { random } from "lodash";
|
|
4
|
+
import winston from "winston";
|
|
5
|
+
import { ZERO_ADDRESS } from "../../constants";
|
|
6
|
+
import {
|
|
7
|
+
DepositWithBlock,
|
|
8
|
+
FillType,
|
|
9
|
+
V3FundsDepositedEvent,
|
|
10
|
+
RealizedLpFee,
|
|
11
|
+
RelayerRefundExecutionWithBlock,
|
|
12
|
+
SlowFillRequestWithBlock,
|
|
13
|
+
Fill,
|
|
14
|
+
FillWithBlock,
|
|
15
|
+
SlowFillLeaf,
|
|
16
|
+
SpeedUp,
|
|
17
|
+
} from "../../interfaces";
|
|
18
|
+
import { bnZero, toBN, toBNWei, forEachAsync, getCurrentTime, randomAddress } from "../../utils";
|
|
19
|
+
import { SpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
|
|
20
|
+
import { HubPoolClient } from "../HubPoolClient";
|
|
21
|
+
import { EventManager, EventOverrides, getEventManager } from "./MockEvents";
|
|
22
|
+
|
|
23
|
+
type Block = providers.Block;
|
|
24
|
+
|
|
25
|
+
// This class replaces internal SpokePoolClient functionality, enabling the
|
|
26
|
+
// user to bypass on-chain queries and inject ethers Event objects directly.
|
|
27
|
+
export class MockSpokePoolClient extends SpokePoolClient {
|
|
28
|
+
public eventManager: EventManager;
|
|
29
|
+
private realizedLpFeePct: BigNumber = bnZero;
|
|
30
|
+
private realizedLpFeePctOverride = false;
|
|
31
|
+
private destinationTokenForChainOverride: Record<number, string> = {};
|
|
32
|
+
// Allow tester to set the numberOfDeposits() returned by SpokePool at a block height.
|
|
33
|
+
public depositIdAtBlock: number[] = [];
|
|
34
|
+
public numberOfDeposits = 0;
|
|
35
|
+
public blocks: Record<number, Block> = {};
|
|
36
|
+
|
|
37
|
+
constructor(
|
|
38
|
+
logger: winston.Logger,
|
|
39
|
+
spokePool: Contract,
|
|
40
|
+
chainId: number,
|
|
41
|
+
deploymentBlock: number,
|
|
42
|
+
opts: { hubPoolClient: HubPoolClient | null } = { hubPoolClient: null }
|
|
43
|
+
) {
|
|
44
|
+
super(logger, spokePool, opts.hubPoolClient, chainId, deploymentBlock);
|
|
45
|
+
this.latestBlockSearched = deploymentBlock;
|
|
46
|
+
this.eventManager = getEventManager(chainId, this.eventSignatures, deploymentBlock);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
setDefaultRealizedLpFeePct(fee: BigNumber): void {
|
|
50
|
+
this.realizedLpFeePct = fee;
|
|
51
|
+
this.realizedLpFeePctOverride = true;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
clearDefaultRealizedLpFeePct(): void {
|
|
55
|
+
this.realizedLpFeePctOverride = false;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async computeRealizedLpFeePct(depositEvent: V3FundsDepositedEvent) {
|
|
59
|
+
const { realizedLpFeePct, realizedLpFeePctOverride } = this;
|
|
60
|
+
const { blockNumber: quoteBlock } = depositEvent;
|
|
61
|
+
return realizedLpFeePctOverride
|
|
62
|
+
? { realizedLpFeePct, quoteBlock }
|
|
63
|
+
: await super.computeRealizedLpFeePct(depositEvent);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async batchComputeRealizedLpFeePct(depositEvents: V3FundsDepositedEvent[]): Promise<RealizedLpFee[]> {
|
|
67
|
+
const { realizedLpFeePct, realizedLpFeePctOverride } = this;
|
|
68
|
+
return realizedLpFeePctOverride
|
|
69
|
+
? depositEvents.map(({ blockNumber: quoteBlock }) => {
|
|
70
|
+
return { realizedLpFeePct, quoteBlock };
|
|
71
|
+
})
|
|
72
|
+
: await super.batchComputeRealizedLpFeePct(depositEvents);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
setDestinationTokenForChain(chainId: number, token: string): void {
|
|
76
|
+
this.destinationTokenForChainOverride[chainId] = token;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
getDestinationTokenForDeposit(deposit: DepositWithBlock): string {
|
|
80
|
+
return this.destinationTokenForChainOverride[deposit.originChainId] ?? super.getDestinationTokenForDeposit(deposit);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
setLatestBlockNumber(blockNumber: number): void {
|
|
84
|
+
this.latestBlockSearched = blockNumber;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
setDepositIds(_depositIds: number[]): void {
|
|
88
|
+
this.depositIdAtBlock = [];
|
|
89
|
+
if (_depositIds.length === 0) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
let lastDepositId = _depositIds[0];
|
|
93
|
+
for (let i = 0; i < _depositIds.length; i++) {
|
|
94
|
+
if (_depositIds[i] < lastDepositId) {
|
|
95
|
+
throw new Error("deposit ID must be equal to or greater than previous");
|
|
96
|
+
}
|
|
97
|
+
this.depositIdAtBlock[i] = _depositIds[i];
|
|
98
|
+
lastDepositId = _depositIds[i];
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
_getDepositIdAtBlock(blockTag: number): Promise<number> {
|
|
102
|
+
return Promise.resolve(this.depositIdAtBlock[blockTag]);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
async _update(eventsToQuery: string[]): Promise<SpokePoolUpdate> {
|
|
106
|
+
// Generate new "on chain" responses.
|
|
107
|
+
const latestBlockSearched = this.eventManager.blockNumber;
|
|
108
|
+
const currentTime = getCurrentTime();
|
|
109
|
+
|
|
110
|
+
const blocks: { [blockNumber: number]: Block } = {};
|
|
111
|
+
|
|
112
|
+
// Ensure an array for every requested event exists, in the requested order.
|
|
113
|
+
// All requested event types must be populated in the array (even if empty).
|
|
114
|
+
const events: Event[][] = eventsToQuery.map(() => []);
|
|
115
|
+
await forEachAsync(this.eventManager.getEvents().flat(), async (event) => {
|
|
116
|
+
const idx = eventsToQuery.indexOf(event.event as string);
|
|
117
|
+
if (idx !== -1) {
|
|
118
|
+
events[idx].push(event);
|
|
119
|
+
blocks[event.blockNumber] = await event.getBlock();
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
this.blocks = blocks;
|
|
123
|
+
|
|
124
|
+
// Update latestDepositIdQueried.
|
|
125
|
+
const idx = eventsToQuery.indexOf("V3FundsDeposited");
|
|
126
|
+
const latestDepositId = (events[idx] ?? []).reduce(
|
|
127
|
+
(depositId, event) => Math.max(depositId, event.args?.["depositId"] ?? 0),
|
|
128
|
+
this.latestDepositIdQueried
|
|
129
|
+
);
|
|
130
|
+
|
|
131
|
+
return {
|
|
132
|
+
success: true,
|
|
133
|
+
firstDepositId: 0,
|
|
134
|
+
latestDepositId,
|
|
135
|
+
currentTime,
|
|
136
|
+
oldestTime: 0,
|
|
137
|
+
events,
|
|
138
|
+
searchEndBlock: this.eventSearchConfig.toBlock || latestBlockSearched,
|
|
139
|
+
hasCCTPBridgingEnabled: false,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Event signatures. Not strictly required, but they make generated events more recognisable.
|
|
144
|
+
public readonly eventSignatures: Record<string, string> = {
|
|
145
|
+
EnabledDepositRoute: "address,uint256,bool",
|
|
146
|
+
FilledRelay: "uint256,uint256,uint256,int64,uint32,uint32,address,address,address,bytes",
|
|
147
|
+
FundsDeposited: "uint256,uint256,uint256,int64,uint32,uint32,address,address,address,bytes",
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
depositV3(deposit: DepositWithBlock): Event {
|
|
151
|
+
const event = "V3FundsDeposited";
|
|
152
|
+
|
|
153
|
+
const { blockNumber, transactionIndex } = deposit;
|
|
154
|
+
let { depositId, depositor, destinationChainId, inputToken, inputAmount, outputToken, outputAmount } = deposit;
|
|
155
|
+
depositId ??= this.numberOfDeposits;
|
|
156
|
+
assert(depositId >= this.numberOfDeposits, `${depositId} < ${this.numberOfDeposits}`);
|
|
157
|
+
this.numberOfDeposits = depositId + 1;
|
|
158
|
+
|
|
159
|
+
destinationChainId ??= random(1, 42161, false);
|
|
160
|
+
depositor ??= randomAddress();
|
|
161
|
+
inputToken ??= randomAddress();
|
|
162
|
+
outputToken ??= inputToken;
|
|
163
|
+
inputAmount ??= toBNWei(random(1, 1000, false));
|
|
164
|
+
outputAmount ??= inputAmount.mul(toBN("0.95"));
|
|
165
|
+
|
|
166
|
+
const message = deposit["message"] ?? `${event} event at block ${blockNumber}, index ${transactionIndex}.`;
|
|
167
|
+
const topics = [destinationChainId, depositId, depositor];
|
|
168
|
+
const quoteTimestamp = deposit.quoteTimestamp ?? getCurrentTime();
|
|
169
|
+
const args = {
|
|
170
|
+
depositId,
|
|
171
|
+
originChainId: deposit.originChainId ?? this.chainId,
|
|
172
|
+
destinationChainId,
|
|
173
|
+
depositor,
|
|
174
|
+
recipient: deposit.recipient ?? depositor,
|
|
175
|
+
inputToken,
|
|
176
|
+
inputAmount,
|
|
177
|
+
outputToken,
|
|
178
|
+
outputAmount,
|
|
179
|
+
quoteTimestamp,
|
|
180
|
+
fillDeadline: deposit.fillDeadline ?? quoteTimestamp + 3600,
|
|
181
|
+
exclusiveRelayer: deposit.exclusiveRelayer ?? ZERO_ADDRESS,
|
|
182
|
+
exclusivityDeadline: deposit.exclusivityDeadline ?? quoteTimestamp + 600,
|
|
183
|
+
message,
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
return this.eventManager.generateEvent({
|
|
187
|
+
event,
|
|
188
|
+
address: this.spokePool.address,
|
|
189
|
+
topics: topics.map((topic) => topic.toString()),
|
|
190
|
+
args,
|
|
191
|
+
blockNumber,
|
|
192
|
+
transactionIndex,
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
fillV3Relay(fill: FillWithBlock): Event {
|
|
197
|
+
const event = "FilledV3Relay";
|
|
198
|
+
|
|
199
|
+
const { blockNumber, transactionIndex } = fill;
|
|
200
|
+
let { originChainId, depositId, inputToken, inputAmount, outputAmount, fillDeadline, relayer } = fill;
|
|
201
|
+
originChainId ??= random(1, 42161, false);
|
|
202
|
+
depositId ??= random(1, 100_000, false);
|
|
203
|
+
inputToken ??= randomAddress();
|
|
204
|
+
inputAmount ??= toBNWei(random(1, 1000, false));
|
|
205
|
+
outputAmount ??= inputAmount;
|
|
206
|
+
fillDeadline ??= getCurrentTime() + 60;
|
|
207
|
+
relayer ??= randomAddress();
|
|
208
|
+
|
|
209
|
+
const topics = [originChainId, depositId, relayer];
|
|
210
|
+
const recipient = fill.recipient ?? randomAddress();
|
|
211
|
+
const message = fill["message"] ?? `${event} event at block ${blockNumber}, index ${transactionIndex}.`;
|
|
212
|
+
|
|
213
|
+
const args = {
|
|
214
|
+
inputToken,
|
|
215
|
+
outputToken: fill.outputToken ?? ZERO_ADDRESS, // resolved via HubPoolClient.
|
|
216
|
+
inputAmount: fill.inputAmount,
|
|
217
|
+
outputAmount: fill.outputAmount,
|
|
218
|
+
repaymentChainId: fill.repaymentChainId ?? this.chainId,
|
|
219
|
+
originChainId,
|
|
220
|
+
depositId,
|
|
221
|
+
fillDeadline,
|
|
222
|
+
exclusivityDeadline: fill.exclusivityDeadline ?? fillDeadline,
|
|
223
|
+
exclusiveRelayer: fill.exclusiveRelayer ?? ZERO_ADDRESS,
|
|
224
|
+
relayer,
|
|
225
|
+
depositor: fill.depositor ?? randomAddress(),
|
|
226
|
+
recipient,
|
|
227
|
+
message,
|
|
228
|
+
relayExecutionInfo: {
|
|
229
|
+
updatedRecipient: fill.relayExecutionInfo?.updatedRecipient ?? recipient,
|
|
230
|
+
updatedMessage: fill.relayExecutionInfo?.updatedMessage ?? message,
|
|
231
|
+
updatedOutputAmount: fill.relayExecutionInfo?.updatedOutputAmount ?? outputAmount,
|
|
232
|
+
fillType: fill.relayExecutionInfo?.fillType ?? FillType.FastFill,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
return this.eventManager.generateEvent({
|
|
237
|
+
event,
|
|
238
|
+
address: this.spokePool.address,
|
|
239
|
+
topics: topics.map((topic) => topic.toString()),
|
|
240
|
+
args,
|
|
241
|
+
blockNumber,
|
|
242
|
+
transactionIndex,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
speedUpV3Deposit(speedUp: SpeedUp): Event {
|
|
247
|
+
const event = "RequestedSpeedUpV3Deposit";
|
|
248
|
+
const topics = [speedUp.depositId, speedUp.depositor];
|
|
249
|
+
const args = { ...speedUp };
|
|
250
|
+
|
|
251
|
+
return this.eventManager.generateEvent({
|
|
252
|
+
event,
|
|
253
|
+
address: this.spokePool.address,
|
|
254
|
+
topics: topics.map((topic) => topic.toString()),
|
|
255
|
+
args,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
requestV3SlowFill(request: SlowFillRequestWithBlock): Event {
|
|
260
|
+
const event = "RequestedV3SlowFill";
|
|
261
|
+
|
|
262
|
+
const { originChainId, depositId } = request;
|
|
263
|
+
const topics = [originChainId, depositId];
|
|
264
|
+
const args = { ...request };
|
|
265
|
+
|
|
266
|
+
return this.eventManager.generateEvent({
|
|
267
|
+
event,
|
|
268
|
+
address: this.spokePool.address,
|
|
269
|
+
topics: topics.map((topic) => topic.toString()),
|
|
270
|
+
args,
|
|
271
|
+
blockNumber: request.blockNumber,
|
|
272
|
+
transactionIndex: request.transactionIndex,
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// This is a simple wrapper around fillV3Relay().
|
|
277
|
+
// rootBundleId and proof are discarded here - we have no interest in verifying that.
|
|
278
|
+
executeV3SlowRelayLeaf(leaf: SlowFillLeaf): Event {
|
|
279
|
+
const fill: Fill = {
|
|
280
|
+
...leaf.relayData,
|
|
281
|
+
destinationChainId: this.chainId,
|
|
282
|
+
relayer: ZERO_ADDRESS,
|
|
283
|
+
repaymentChainId: 0,
|
|
284
|
+
relayExecutionInfo: {
|
|
285
|
+
updatedRecipient: leaf.relayData.recipient,
|
|
286
|
+
updatedOutputAmount: leaf.updatedOutputAmount,
|
|
287
|
+
updatedMessage: leaf.relayData.message,
|
|
288
|
+
fillType: FillType.SlowFill,
|
|
289
|
+
},
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
return this.fillV3Relay(fill as FillWithBlock);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
executeRelayerRefundLeaf(refund: RelayerRefundExecutionWithBlock): Event {
|
|
296
|
+
const event = "ExecutedRelayerRefundRoot";
|
|
297
|
+
|
|
298
|
+
const chainId = refund.chainId ?? this.chainId;
|
|
299
|
+
assert(chainId === this.chainId);
|
|
300
|
+
|
|
301
|
+
const { rootBundleId, leafId } = refund;
|
|
302
|
+
const topics = [chainId, rootBundleId, leafId];
|
|
303
|
+
const args = {
|
|
304
|
+
chainId,
|
|
305
|
+
rootBundleId,
|
|
306
|
+
leafId,
|
|
307
|
+
amountToReturn: refund.amountToReturn,
|
|
308
|
+
l2TokenAddress: refund.l2TokenAddress,
|
|
309
|
+
refundAddresses: refund.refundAddresses,
|
|
310
|
+
refundAmounts: refund.refundAmounts,
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
return this.eventManager.generateEvent({
|
|
314
|
+
event,
|
|
315
|
+
address: this.spokePool.address,
|
|
316
|
+
topics: topics.map((topic) => topic.toString()),
|
|
317
|
+
args,
|
|
318
|
+
blockNumber: refund.blockNumber,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
setEnableRoute(
|
|
323
|
+
originToken: string,
|
|
324
|
+
destinationChainId: number,
|
|
325
|
+
enabled: boolean,
|
|
326
|
+
overrides: EventOverrides = {}
|
|
327
|
+
): Event {
|
|
328
|
+
const event = "EnabledDepositRoute";
|
|
329
|
+
|
|
330
|
+
const topics = [originToken, destinationChainId];
|
|
331
|
+
const args = { originToken, destinationChainId, enabled };
|
|
332
|
+
|
|
333
|
+
return this.eventManager.generateEvent({
|
|
334
|
+
event,
|
|
335
|
+
address: this.spokePool.address,
|
|
336
|
+
topics: topics.map((topic) => topic.toString()),
|
|
337
|
+
args,
|
|
338
|
+
blockNumber: overrides.blockNumber,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import axios, { AxiosError } from "axios";
|
|
2
|
+
import assert from "assert";
|
|
3
|
+
import get from "lodash.get";
|
|
4
|
+
import { retry } from "../utils";
|
|
5
|
+
import { Logger } from "../relayFeeCalculator";
|
|
6
|
+
|
|
7
|
+
export function msToS(ms: number) {
|
|
8
|
+
return Math.floor(ms / 1000);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type CoinGeckoAssetPlatform = {
|
|
12
|
+
id: string;
|
|
13
|
+
chain_identifier: number;
|
|
14
|
+
name: string;
|
|
15
|
+
shortname: string;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export type CoinGeckoPrice = {
|
|
19
|
+
address: string;
|
|
20
|
+
timestamp: number;
|
|
21
|
+
price: number;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type PriceCache = {
|
|
25
|
+
[chain: string]: {
|
|
26
|
+
[currency: string]: {
|
|
27
|
+
[address: string]: CoinGeckoPrice;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// Singleton Coingecko class.
|
|
33
|
+
export class Coingecko {
|
|
34
|
+
private static instance: Coingecko | undefined;
|
|
35
|
+
private prices: PriceCache;
|
|
36
|
+
private _maxPriceAge = 300; // seconds
|
|
37
|
+
|
|
38
|
+
// Retry configuration.
|
|
39
|
+
private retryDelay = 1;
|
|
40
|
+
private numRetries = 0; // Most failures are due to 429 rate-limiting, so there is no point in retrying.
|
|
41
|
+
private basicApiTimeout = 500; // ms
|
|
42
|
+
|
|
43
|
+
public static get(logger: Logger, apiKey?: string) {
|
|
44
|
+
if (!this.instance)
|
|
45
|
+
this.instance = new Coingecko(
|
|
46
|
+
"https://api.coingecko.com/api/v3",
|
|
47
|
+
"https://pro-api.coingecko.com/api/v3",
|
|
48
|
+
logger,
|
|
49
|
+
apiKey
|
|
50
|
+
);
|
|
51
|
+
return this.instance;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get maxPriceAge(): number {
|
|
55
|
+
return this._maxPriceAge;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
set maxPriceAge(age: number) {
|
|
59
|
+
assert(age >= 0);
|
|
60
|
+
this.logger.debug({
|
|
61
|
+
at: "Coingecko#maxPriceAge",
|
|
62
|
+
message: `Setting maxPriceAge (S) ${this._maxPriceAge} => ${age}.`,
|
|
63
|
+
});
|
|
64
|
+
this._maxPriceAge = age;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
protected constructor(
|
|
68
|
+
private readonly host: string,
|
|
69
|
+
private readonly proHost: string,
|
|
70
|
+
private readonly logger: Logger,
|
|
71
|
+
private readonly apiKey?: string
|
|
72
|
+
) {
|
|
73
|
+
this.prices = {};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Fetch historic prices for a `contract` denominated in `currency` between timestamp `from` and `to`. Note timestamps
|
|
77
|
+
// are assumed to be js timestamps and are converted to unixtimestamps by dividing by 1000.
|
|
78
|
+
async getHistoricContractPrices(contract: string, from: number, to: number, currency = "usd") {
|
|
79
|
+
assert(contract, "requires contract address");
|
|
80
|
+
assert(currency, "requires currency symbol");
|
|
81
|
+
assert(from, "requires from timestamp");
|
|
82
|
+
assert(to, "requires to timestamp");
|
|
83
|
+
const _from = msToS(from);
|
|
84
|
+
const _to = msToS(to);
|
|
85
|
+
const result = await this.call(
|
|
86
|
+
`coins/ethereum/contract/${contract.toLowerCase()}/market_chart/range/?vs_currency=${currency}&from=${_from}&to=${_to}`
|
|
87
|
+
);
|
|
88
|
+
// fyi timestamps are returned in ms in contrast to the current price endpoint
|
|
89
|
+
if (result.prices) return result.prices;
|
|
90
|
+
throw new Error("Something went wrong fetching coingecko prices!");
|
|
91
|
+
}
|
|
92
|
+
getContractDetails(contract_address: string, platform_id = "ethereum") {
|
|
93
|
+
return this.call(`coins/${platform_id}/contract/${contract_address.toLowerCase()}`);
|
|
94
|
+
}
|
|
95
|
+
async getCurrentPriceByContract(
|
|
96
|
+
contract_address: string,
|
|
97
|
+
currency = "usd",
|
|
98
|
+
platform_id = "ethereum"
|
|
99
|
+
): Promise<[string, number]> {
|
|
100
|
+
const priceCache: { [addr: string]: CoinGeckoPrice } = this.getPriceCache(currency, platform_id);
|
|
101
|
+
const now: number = msToS(Date.now());
|
|
102
|
+
let tokenPrice: CoinGeckoPrice | undefined = priceCache[contract_address];
|
|
103
|
+
|
|
104
|
+
if (tokenPrice === undefined || tokenPrice.timestamp + this.maxPriceAge <= now) {
|
|
105
|
+
if (this.maxPriceAge > 0) {
|
|
106
|
+
this.logger.debug({
|
|
107
|
+
at: "Coingecko#getCurrentPriceByContract",
|
|
108
|
+
message: `Cache miss on ${platform_id}/${currency} for ${contract_address}`,
|
|
109
|
+
maxPriceAge: this.maxPriceAge,
|
|
110
|
+
tokenPrice: tokenPrice,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
await this.getContractPrices([contract_address], currency, platform_id);
|
|
115
|
+
tokenPrice = priceCache[contract_address];
|
|
116
|
+
} else {
|
|
117
|
+
this.logger.debug({
|
|
118
|
+
at: "Coingecko#getCurrentPriceByContract",
|
|
119
|
+
message: `Cache hit on token ${contract_address} (age ${now - tokenPrice.timestamp} S).`,
|
|
120
|
+
price: tokenPrice,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
assert(tokenPrice !== undefined);
|
|
125
|
+
return [tokenPrice.timestamp.toString(), tokenPrice.price];
|
|
126
|
+
}
|
|
127
|
+
// Return an array of spot prices for an array of collateral addresses in one async call. Note we might in future
|
|
128
|
+
// This was adapted from packages/merkle-distributor/kpi-options-helpers/calculate-uma-tvl.ts
|
|
129
|
+
async getContractPrices(
|
|
130
|
+
addresses: Array<string>,
|
|
131
|
+
currency = "usd",
|
|
132
|
+
platform_id = "ethereum"
|
|
133
|
+
): Promise<CoinGeckoPrice[]> {
|
|
134
|
+
const priceCache: { [addr: string]: CoinGeckoPrice } = this.getPriceCache(currency, platform_id);
|
|
135
|
+
|
|
136
|
+
// Pre-populate price cache with requested token addresses
|
|
137
|
+
addresses.forEach((addr: string) => {
|
|
138
|
+
if (priceCache[addr] === undefined) {
|
|
139
|
+
priceCache[addr] = { address: addr, price: 0, timestamp: 0 };
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// Collect all known token addresses (requested + other cached).
|
|
144
|
+
const contract_addresses: string[] = Object.keys(priceCache);
|
|
145
|
+
assert(contract_addresses.length > 0, "Must supply at least 1 contract address");
|
|
146
|
+
this.logger.debug({
|
|
147
|
+
at: "Coingecko#getContractPrices",
|
|
148
|
+
message: `Updating ${platform_id}/${currency} token prices.`,
|
|
149
|
+
tokens: contract_addresses,
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
// annoying, but have to type this to iterate over entries
|
|
153
|
+
type CGTokenPrice = {
|
|
154
|
+
[currency: string]: number;
|
|
155
|
+
last_updated_at: number;
|
|
156
|
+
};
|
|
157
|
+
type Result = {
|
|
158
|
+
[address: string]: CGTokenPrice;
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
let result: Result = {};
|
|
162
|
+
try {
|
|
163
|
+
// Coingecko expects a comma-delimited (%2c) list.
|
|
164
|
+
result = await this.call(
|
|
165
|
+
`simple/token_price/${platform_id}?contract_addresses=${contract_addresses.join(
|
|
166
|
+
"%2C"
|
|
167
|
+
)}&vs_currencies=${currency}&include_last_updated_at=true`
|
|
168
|
+
);
|
|
169
|
+
} catch (err) {
|
|
170
|
+
const errMsg = `Failed to retrieve ${platform_id}/${currency} prices (${err})`;
|
|
171
|
+
this.logger.debug({
|
|
172
|
+
at: "Coingecko#getCurrentPriceByContract",
|
|
173
|
+
message: errMsg,
|
|
174
|
+
tokens: contract_addresses,
|
|
175
|
+
});
|
|
176
|
+
throw new Error(errMsg);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Note: contract_addresses is a reliable reference for the price lookup.
|
|
180
|
+
// priceCache might have been updated subsequently by concurrent price requests.
|
|
181
|
+
const updated: string[] = [];
|
|
182
|
+
contract_addresses.forEach((addr) => {
|
|
183
|
+
const cgPrice: CGTokenPrice | undefined = result[addr.toLowerCase()];
|
|
184
|
+
|
|
185
|
+
if (cgPrice === undefined) {
|
|
186
|
+
this.logger.debug({
|
|
187
|
+
at: "Coingecko#getContractPrices",
|
|
188
|
+
message: `Token ${addr} not included in CoinGecko response.`,
|
|
189
|
+
});
|
|
190
|
+
} else if (cgPrice.last_updated_at > priceCache[addr].timestamp) {
|
|
191
|
+
priceCache[addr] = {
|
|
192
|
+
address: addr,
|
|
193
|
+
price: cgPrice[currency],
|
|
194
|
+
timestamp: cgPrice.last_updated_at,
|
|
195
|
+
};
|
|
196
|
+
updated.push(addr);
|
|
197
|
+
} else if (cgPrice.last_updated_at === priceCache[addr].timestamp) {
|
|
198
|
+
this.logger.debug({
|
|
199
|
+
at: "Coingecko#getContractPrices",
|
|
200
|
+
message: `No new price available for token ${addr}.`,
|
|
201
|
+
token: cgPrice,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
if (updated.length > 0) {
|
|
207
|
+
this.logger.debug({
|
|
208
|
+
at: "Coingecko#updatePriceCache",
|
|
209
|
+
message: `Updated ${platform_id}/${currency} token price cache.`,
|
|
210
|
+
tokens: updated,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return addresses.map((addr: string) => priceCache[addr]);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
getPlatforms(): Promise<CoinGeckoAssetPlatform[]> {
|
|
217
|
+
return this.call("asset_platforms");
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
call(path: string) {
|
|
221
|
+
const sendRequest = async () => {
|
|
222
|
+
const { proHost } = this;
|
|
223
|
+
|
|
224
|
+
// If no pro api key, only send basic request:
|
|
225
|
+
if (this.apiKey === undefined) {
|
|
226
|
+
return await this._callBasic(path);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// If pro api key, try basic and use pro as fallback.
|
|
230
|
+
try {
|
|
231
|
+
return await this._callBasic(path, this.basicApiTimeout);
|
|
232
|
+
} catch (err) {
|
|
233
|
+
this.logger.debug({
|
|
234
|
+
at: "sdk/coingecko",
|
|
235
|
+
message: `Basic CG url request failed, falling back to CG PRO host ${proHost}`,
|
|
236
|
+
errMessage: (err as AxiosError).message,
|
|
237
|
+
});
|
|
238
|
+
return await this._callPro(path);
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
// Note: If a pro API key is configured, there is no need to retry as the Pro API will act as the basic's fall back.
|
|
243
|
+
return retry(sendRequest, this.apiKey === undefined ? this.numRetries : 0, this.retryDelay);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
protected getPriceCache(currency: string, platform_id: string): { [addr: string]: CoinGeckoPrice } {
|
|
247
|
+
if (this.prices[platform_id] === undefined) this.prices[platform_id] = {};
|
|
248
|
+
if (this.prices[platform_id][currency] === undefined) this.prices[platform_id][currency] = {};
|
|
249
|
+
return this.prices[platform_id][currency];
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
private async _callBasic(path: string, timeout?: number) {
|
|
253
|
+
const url = `${this.host}/${path}`;
|
|
254
|
+
|
|
255
|
+
try {
|
|
256
|
+
// Don't use timeout if there is no pro API to fallback to.
|
|
257
|
+
const result = await axios(url, { timeout });
|
|
258
|
+
return result.data;
|
|
259
|
+
} catch (err) {
|
|
260
|
+
const msg = get(err, "response.data.error", get(err, "response.statusText", (err as AxiosError).message));
|
|
261
|
+
throw new Error(msg);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
private async _callPro(path: string) {
|
|
266
|
+
const url = `${this.proHost}/${path}`;
|
|
267
|
+
|
|
268
|
+
try {
|
|
269
|
+
// Don't use timeout if there is no pro API to fallback to.
|
|
270
|
+
const result = await axios(url, { params: { x_cg_pro_api_key: this.apiKey } });
|
|
271
|
+
return result.data;
|
|
272
|
+
} catch (err) {
|
|
273
|
+
const msg = get(err, "response.data.error", get(err, "response.statusText", (err as AxiosError).message));
|
|
274
|
+
throw new Error(msg);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Coingecko";
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { constants as ethersConstants, BigNumber, utils } from "ethers";
|
|
2
|
+
|
|
3
|
+
export {
|
|
4
|
+
CHAIN_IDs,
|
|
5
|
+
MAINNET_CHAIN_IDs,
|
|
6
|
+
PUBLIC_NETWORKS,
|
|
7
|
+
TESTNET_CHAIN_IDs,
|
|
8
|
+
TOKEN_SYMBOLS_MAP,
|
|
9
|
+
} from "@across-protocol/constants";
|
|
10
|
+
|
|
11
|
+
export const { AddressZero: ZERO_ADDRESS } = ethersConstants;
|
|
12
|
+
|
|
13
|
+
// 2^96 - 1 is a conservative erc20 max allowance.
|
|
14
|
+
export const MAX_SAFE_ALLOWANCE = "79228162514264337593543950335";
|
|
15
|
+
|
|
16
|
+
export const SECONDS_PER_YEAR = 31557600; // 365.25 days per year.
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* This is the protocol default chain Id for the hub pool.
|
|
20
|
+
*/
|
|
21
|
+
export const HUBPOOL_CHAIN_ID = 1;
|
|
22
|
+
|
|
23
|
+
// List of versions where certain UMIP features were deprecated
|
|
24
|
+
export const TRANSFER_THRESHOLD_MAX_CONFIG_STORE_VERSION = 1;
|
|
25
|
+
|
|
26
|
+
// A hardcoded identifier used, by default, to tag all Arweave records.
|
|
27
|
+
export const ARWEAVE_TAG_APP_NAME = "across-protocol";
|
|
28
|
+
|
|
29
|
+
// A hardcoded version number used, by default, to tag all Arweave records.
|
|
30
|
+
export const ARWEAVE_TAG_APP_VERSION = 2;
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* A default list of chain Ids that the protocol supports. This is outlined
|
|
34
|
+
* in the UMIP (https://github.com/UMAprotocol/UMIPs/pull/590) and is used
|
|
35
|
+
* to determine which chain Ids are supported by the protocol. As time progresses,
|
|
36
|
+
* new chain Ids will be available in the Across ConfigStore contract, but
|
|
37
|
+
* this list serves as a baseline set of chain Ids that the protocol supports
|
|
38
|
+
* before the dynamic config store was introduced.
|
|
39
|
+
*/
|
|
40
|
+
export const PROTOCOL_DEFAULT_CHAIN_ID_INDICES = [1, 10, 137, 288, 42161];
|
|
41
|
+
|
|
42
|
+
export const DEFAULT_CACHING_TTL = 60 * 60 * 24 * 7 * 2; // 2 Weeks
|
|
43
|
+
export const DEFAULT_CACHING_SAFE_LAG = 60 * 60; // 1 hour
|
|
44
|
+
|
|
45
|
+
export const UBA_BOUNDS_RANGE_MAX = BigNumber.from(String(Number.MAX_SAFE_INTEGER)).mul(utils.parseEther("1.0"));
|
|
46
|
+
export const UBA_BOUNDS_RANGE_MIN = UBA_BOUNDS_RANGE_MAX.mul(-1);
|
|
47
|
+
|
|
48
|
+
export const DEFAULT_SIMULATED_RELAYER_ADDRESS = "0x428AB2BA90Eba0a4Be7aF34C9Ac451ab061AC010";
|
|
49
|
+
export const DEFAULT_SIMULATED_RELAYER_ADDRESS_TEST = "0x9A8f92a830A5cB89a3816e3D267CB7791c16b04D"; // Görli, ...
|
|
50
|
+
|
|
51
|
+
export const DEFAULT_ARWEAVE_STORAGE_ADDRESS = "Z6hjBM8FHu90lYWB8o5jR1dfX92FlV2WBaND9xgp8Lg";
|
|
52
|
+
|
|
53
|
+
export const EMPTY_MESSAGE = "0x";
|