@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,58 @@
|
|
|
1
|
+
import { CHAIN_IDs, TOKEN_SYMBOLS_MAP } from "@across-protocol/constants";
|
|
2
|
+
import { getDeployedAddress } from "@across-protocol/contracts";
|
|
3
|
+
import { asL2Provider } from "@eth-optimism/sdk";
|
|
4
|
+
import { providers } from "ethers";
|
|
5
|
+
import { DEFAULT_SIMULATED_RELAYER_ADDRESS } from "../../constants";
|
|
6
|
+
import { chainIsMatic, chainIsOPStack } from "../../utils";
|
|
7
|
+
import { QueryBase } from "./baseQuery";
|
|
8
|
+
import { PolygonQueries } from "./polygon";
|
|
9
|
+
import { DEFAULT_LOGGER, Logger } from "../relayFeeCalculator";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Some chains have a fixed gas price that is applied to the gas estimates. We should override
|
|
13
|
+
* the gas markup for these chains.
|
|
14
|
+
*/
|
|
15
|
+
const fixedGasPrice = {
|
|
16
|
+
[CHAIN_IDs.BOBA]: 1e9,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export class QueryBase__factory {
|
|
20
|
+
static create(
|
|
21
|
+
chainId: number,
|
|
22
|
+
provider: providers.Provider,
|
|
23
|
+
symbolMapping = TOKEN_SYMBOLS_MAP,
|
|
24
|
+
spokePoolAddress = getDeployedAddress("SpokePool", chainId),
|
|
25
|
+
simulatedRelayerAddress = DEFAULT_SIMULATED_RELAYER_ADDRESS,
|
|
26
|
+
coingeckoProApiKey?: string,
|
|
27
|
+
logger: Logger = DEFAULT_LOGGER,
|
|
28
|
+
gasMarkup = 0,
|
|
29
|
+
coingeckoBaseCurrency = "eth"
|
|
30
|
+
): QueryBase {
|
|
31
|
+
// Currently the only chain that has a custom query class is Polygon
|
|
32
|
+
if (chainIsMatic(chainId)) {
|
|
33
|
+
return new PolygonQueries(
|
|
34
|
+
provider,
|
|
35
|
+
symbolMapping,
|
|
36
|
+
spokePoolAddress,
|
|
37
|
+
simulatedRelayerAddress,
|
|
38
|
+
coingeckoProApiKey,
|
|
39
|
+
logger,
|
|
40
|
+
gasMarkup
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
// For OPStack chains, we need to wrap the provider in an L2Provider
|
|
44
|
+
provider = chainIsOPStack(chainId) ? asL2Provider(provider) : provider;
|
|
45
|
+
|
|
46
|
+
return new QueryBase(
|
|
47
|
+
provider,
|
|
48
|
+
symbolMapping,
|
|
49
|
+
spokePoolAddress,
|
|
50
|
+
simulatedRelayerAddress,
|
|
51
|
+
gasMarkup,
|
|
52
|
+
logger,
|
|
53
|
+
coingeckoProApiKey,
|
|
54
|
+
fixedGasPrice[chainId],
|
|
55
|
+
coingeckoBaseCurrency
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { getDeployedAddress } from "../../utils/DeploymentUtils";
|
|
2
|
+
import { DEFAULT_LOGGER, Logger } from "../relayFeeCalculator";
|
|
3
|
+
import { providers } from "ethers";
|
|
4
|
+
import { CHAIN_IDs, DEFAULT_SIMULATED_RELAYER_ADDRESS, TOKEN_SYMBOLS_MAP } from "../../constants";
|
|
5
|
+
import { Coingecko } from "../../coingecko/Coingecko";
|
|
6
|
+
import { QueryBase } from "./baseQuery";
|
|
7
|
+
|
|
8
|
+
export class PolygonQueries extends QueryBase {
|
|
9
|
+
constructor(
|
|
10
|
+
provider: providers.Provider,
|
|
11
|
+
symbolMapping = TOKEN_SYMBOLS_MAP,
|
|
12
|
+
spokePoolAddress = getDeployedAddress("SpokePool", CHAIN_IDs.POLYGON),
|
|
13
|
+
simulatedRelayerAddress = DEFAULT_SIMULATED_RELAYER_ADDRESS,
|
|
14
|
+
coingeckoProApiKey?: string,
|
|
15
|
+
logger: Logger = DEFAULT_LOGGER,
|
|
16
|
+
gasMarkup = 0
|
|
17
|
+
) {
|
|
18
|
+
super(
|
|
19
|
+
provider,
|
|
20
|
+
symbolMapping,
|
|
21
|
+
spokePoolAddress,
|
|
22
|
+
simulatedRelayerAddress,
|
|
23
|
+
gasMarkup,
|
|
24
|
+
logger,
|
|
25
|
+
coingeckoProApiKey,
|
|
26
|
+
undefined,
|
|
27
|
+
"usd"
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
override async getTokenPrice(tokenSymbol: string): Promise<number> {
|
|
32
|
+
if (!this.symbolMapping[tokenSymbol]) throw new Error(`${tokenSymbol} does not exist in mapping`);
|
|
33
|
+
const coingeckoInstance = Coingecko.get(this.logger, this.coingeckoProApiKey);
|
|
34
|
+
const [, tokenPrice] = await coingeckoInstance.getCurrentPriceByContract(
|
|
35
|
+
this.symbolMapping[tokenSymbol].addresses[CHAIN_IDs.MAINNET],
|
|
36
|
+
"usd"
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
const [, maticPrice] = await coingeckoInstance.getCurrentPriceByContract(
|
|
40
|
+
this.symbolMapping["MATIC"].addresses[CHAIN_IDs.MAINNET],
|
|
41
|
+
"usd"
|
|
42
|
+
);
|
|
43
|
+
return Number((tokenPrice / maticPrice).toFixed(this.symbolMapping["MATIC"].decimals));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
import assert from "assert";
|
|
2
|
+
import { BigNumber } from "ethers";
|
|
3
|
+
import { DEFAULT_SIMULATED_RELAYER_ADDRESS, TOKEN_SYMBOLS_MAP } from "../constants";
|
|
4
|
+
import { Deposit } from "../interfaces";
|
|
5
|
+
import {
|
|
6
|
+
BigNumberish,
|
|
7
|
+
MAX_BIG_INT,
|
|
8
|
+
TransactionCostEstimate,
|
|
9
|
+
bnZero,
|
|
10
|
+
fixedPointAdjustment,
|
|
11
|
+
getTokenInformationFromAddress,
|
|
12
|
+
isDefined,
|
|
13
|
+
max,
|
|
14
|
+
min,
|
|
15
|
+
nativeToToken,
|
|
16
|
+
percent,
|
|
17
|
+
toBN,
|
|
18
|
+
toBNWei,
|
|
19
|
+
} from "../utils";
|
|
20
|
+
|
|
21
|
+
// This needs to be implemented for every chain and passed into RelayFeeCalculator
|
|
22
|
+
export interface QueryInterface {
|
|
23
|
+
getGasCosts: (deposit: Deposit, relayer: string) => Promise<TransactionCostEstimate>;
|
|
24
|
+
getTokenPrice: (tokenSymbol: string) => Promise<number>;
|
|
25
|
+
getTokenDecimals: (tokenSymbol: string) => number;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const expectedCapitalCostsKeys = ["lowerBound", "upperBound", "cutoff", "decimals"];
|
|
29
|
+
export interface CapitalCostConfig {
|
|
30
|
+
lowerBound: string;
|
|
31
|
+
upperBound: string;
|
|
32
|
+
cutoff: string;
|
|
33
|
+
decimals: number;
|
|
34
|
+
}
|
|
35
|
+
type ChainIdAsString = string;
|
|
36
|
+
export interface CapitalCostConfigOverride {
|
|
37
|
+
default: CapitalCostConfig;
|
|
38
|
+
routeOverrides?: Record<ChainIdAsString, Record<ChainIdAsString, CapitalCostConfig>>;
|
|
39
|
+
}
|
|
40
|
+
export type RelayCapitalCostConfig = CapitalCostConfigOverride | CapitalCostConfig;
|
|
41
|
+
export interface BaseRelayFeeCalculatorConfig {
|
|
42
|
+
nativeTokenDecimals?: number;
|
|
43
|
+
gasDiscountPercent?: number;
|
|
44
|
+
capitalDiscountPercent?: number;
|
|
45
|
+
feeLimitPercent?: number;
|
|
46
|
+
capitalCostsConfig: {
|
|
47
|
+
[token: string]: CapitalCostConfig | CapitalCostConfigOverride;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export interface RelayFeeCalculatorConfigWithQueries extends BaseRelayFeeCalculatorConfig {
|
|
51
|
+
queries: QueryInterface;
|
|
52
|
+
}
|
|
53
|
+
export interface RelayFeeCalculatorConfigWithMap extends BaseRelayFeeCalculatorConfig {
|
|
54
|
+
queriesMap: Record<number, QueryInterface>;
|
|
55
|
+
}
|
|
56
|
+
export type RelayFeeCalculatorConfig = RelayFeeCalculatorConfigWithQueries | RelayFeeCalculatorConfigWithMap;
|
|
57
|
+
|
|
58
|
+
export interface RelayerFeeDetails {
|
|
59
|
+
amountToRelay: string;
|
|
60
|
+
tokenSymbol: string;
|
|
61
|
+
gasFeePercent: string;
|
|
62
|
+
gasFeeTotal: string;
|
|
63
|
+
gasDiscountPercent: number;
|
|
64
|
+
capitalFeePercent: string;
|
|
65
|
+
capitalFeeTotal: string;
|
|
66
|
+
capitalDiscountPercent: number;
|
|
67
|
+
relayFeePercent: string;
|
|
68
|
+
relayFeeTotal: string;
|
|
69
|
+
feeLimitPercent: number;
|
|
70
|
+
isAmountTooLow: boolean;
|
|
71
|
+
maxGasFeePercent: string;
|
|
72
|
+
minDeposit: string;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface LoggingFunction {
|
|
76
|
+
(data: { at: string; message: string; [key: string]: unknown }): void;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export interface Logger {
|
|
80
|
+
debug: LoggingFunction;
|
|
81
|
+
info: LoggingFunction;
|
|
82
|
+
warn: LoggingFunction;
|
|
83
|
+
error: LoggingFunction;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export const DEFAULT_LOGGER: Logger = {
|
|
87
|
+
debug: (...args) => console.debug(args),
|
|
88
|
+
info: (...args) => console.info(args),
|
|
89
|
+
warn: (...args) => console.warn(args),
|
|
90
|
+
error: (...args) => console.error(args),
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// Small amount to simulate filling with. Should be low enough to guarantee a successful fill.
|
|
94
|
+
const safeOutputAmount = toBN(100);
|
|
95
|
+
|
|
96
|
+
export class RelayFeeCalculator {
|
|
97
|
+
private queries: QueryInterface;
|
|
98
|
+
private gasDiscountPercent: Required<RelayFeeCalculatorConfig>["gasDiscountPercent"];
|
|
99
|
+
private capitalDiscountPercent: Required<RelayFeeCalculatorConfig>["capitalDiscountPercent"];
|
|
100
|
+
private feeLimitPercent: Required<RelayFeeCalculatorConfig>["feeLimitPercent"];
|
|
101
|
+
private nativeTokenDecimals: Required<RelayFeeCalculatorConfig>["nativeTokenDecimals"];
|
|
102
|
+
private capitalCostsConfig: { [token: string]: CapitalCostConfigOverride };
|
|
103
|
+
|
|
104
|
+
// For logging if set. This function should accept 2 args - severity (INFO, WARN, ERROR) and the logs data, which will
|
|
105
|
+
// be an object.
|
|
106
|
+
private logger: Logger;
|
|
107
|
+
|
|
108
|
+
constructor(config: RelayFeeCalculatorConfigWithQueries, logger?: Logger);
|
|
109
|
+
constructor(config: RelayFeeCalculatorConfigWithMap, logger?: Logger, destinationChainId?: number);
|
|
110
|
+
constructor(config?: RelayFeeCalculatorConfig, logger?: Logger, destinationChainId?: number) {
|
|
111
|
+
assert(config, "config must be provided");
|
|
112
|
+
|
|
113
|
+
if ("queries" in config) {
|
|
114
|
+
this.queries = config.queries;
|
|
115
|
+
} else {
|
|
116
|
+
assert(destinationChainId !== undefined, "destinationChainId must be provided if queriesMap is provided");
|
|
117
|
+
assert(config.queriesMap[destinationChainId], "No queries provided for destination chain");
|
|
118
|
+
this.queries = config.queriesMap[destinationChainId];
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
this.gasDiscountPercent = config.gasDiscountPercent || 0;
|
|
122
|
+
this.capitalDiscountPercent = config.capitalDiscountPercent || 0;
|
|
123
|
+
this.feeLimitPercent = config.feeLimitPercent || 0;
|
|
124
|
+
this.nativeTokenDecimals = config.nativeTokenDecimals || 18;
|
|
125
|
+
assert(
|
|
126
|
+
this.gasDiscountPercent >= 0 && this.gasDiscountPercent <= 100,
|
|
127
|
+
"gasDiscountPercent must be between 0 and 100 percent"
|
|
128
|
+
);
|
|
129
|
+
assert(
|
|
130
|
+
this.capitalDiscountPercent >= 0 && this.capitalDiscountPercent <= 100,
|
|
131
|
+
"capitalDiscountPercent must be between 0 and 100 percent"
|
|
132
|
+
);
|
|
133
|
+
assert(
|
|
134
|
+
this.feeLimitPercent >= 0 && this.feeLimitPercent <= 100,
|
|
135
|
+
"feeLimitPercent must be between 0 and 100 percent"
|
|
136
|
+
);
|
|
137
|
+
this.capitalCostsConfig = Object.fromEntries(
|
|
138
|
+
Object.entries(config.capitalCostsConfig).map(([token, capitalCosts]) => {
|
|
139
|
+
return [token.toUpperCase(), RelayFeeCalculator.validateAndTransformCapitalCostsConfigOverride(capitalCosts)];
|
|
140
|
+
})
|
|
141
|
+
);
|
|
142
|
+
assert(Object.keys(this.capitalCostsConfig).length > 0, "capitalCostsConfig must have at least one entry");
|
|
143
|
+
this.logger = logger || DEFAULT_LOGGER;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Type guard to check if a config is a CapitalCostConfigOverride or a CapitalCostConfig.
|
|
148
|
+
* @param config CapitalCostConfig or CapitalCostConfigOverride
|
|
149
|
+
* @returns true if the config is a CapitalCostConfigOverride, false otherwise.
|
|
150
|
+
* @private
|
|
151
|
+
* @dev This is a type guard that is used to check if a config is a CapitalCostConfigOverride or a CapitalCostConfig.
|
|
152
|
+
* This is needed because the config can be either a CapitalCostConfig or a CapitalCostConfigOverride. If it's a
|
|
153
|
+
* CapitalCostConfig, then we need to convert it to a CapitalCostConfigOverride with the default config set with no route
|
|
154
|
+
* overrides.
|
|
155
|
+
*/
|
|
156
|
+
private static capitalCostConfigIsOverride(
|
|
157
|
+
config: CapitalCostConfig | CapitalCostConfigOverride
|
|
158
|
+
): config is CapitalCostConfigOverride {
|
|
159
|
+
return (config as CapitalCostConfigOverride).default !== undefined;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Validates a CapitalCostConfigOverride or a CapitalCostConfig.
|
|
164
|
+
* @param capitalCosts CapitalCostConfig or CapitalCostConfigOverride
|
|
165
|
+
* @returns CapitalCostConfigOverride
|
|
166
|
+
*/
|
|
167
|
+
static validateAndTransformCapitalCostsConfigOverride(
|
|
168
|
+
capitalCosts: CapitalCostConfigOverride | CapitalCostConfig
|
|
169
|
+
): CapitalCostConfigOverride {
|
|
170
|
+
// We need to first convert the config to a baseline type. This is because the config can be either a CapitalCostConfig
|
|
171
|
+
// or a CapitalCostConfigOverride. If it's a CapitalCostConfig, then we need to convert it to a CapitalCostConfigOverride with
|
|
172
|
+
// the default config set with no route overrides.
|
|
173
|
+
const config: CapitalCostConfigOverride = this.capitalCostConfigIsOverride(capitalCosts)
|
|
174
|
+
? capitalCosts
|
|
175
|
+
: { default: capitalCosts };
|
|
176
|
+
|
|
177
|
+
// Validate the default config.
|
|
178
|
+
this.validateCapitalCostsConfig(config.default);
|
|
179
|
+
// Iterate over all the route overrides and validate them.
|
|
180
|
+
for (const toChainIdRoutes of Object.values(config.routeOverrides || {})) {
|
|
181
|
+
for (const override of Object.values(toChainIdRoutes)) {
|
|
182
|
+
this.validateCapitalCostsConfig(override);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return config;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Validates a CapitalCostConfig.
|
|
190
|
+
* @param capitalCosts CapitalCostConfig
|
|
191
|
+
*/
|
|
192
|
+
static validateCapitalCostsConfig(capitalCosts: CapitalCostConfig): void {
|
|
193
|
+
assert(toBN(capitalCosts.upperBound).lt(toBNWei("0.01")), "upper bound must be < 1%");
|
|
194
|
+
assert(toBN(capitalCosts.lowerBound).lte(capitalCosts.upperBound), "lower bound must be <= upper bound");
|
|
195
|
+
assert(capitalCosts.decimals > 0 && capitalCosts.decimals <= 18, "invalid decimals");
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
getTokenPrice(tokenSymbol: string): Promise<number> {
|
|
199
|
+
return this.queries.getTokenPrice(tokenSymbol);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Calculate the gas fee as a % of the amount to relay.
|
|
204
|
+
* @param deposit A valid deposit object to reason about
|
|
205
|
+
* @param amountToRelay The amount that we should fill the deposit for
|
|
206
|
+
* @param simulateZeroFill Whether to simulate a zero fill for the gas cost simulation
|
|
207
|
+
* A fill of 1 wei which would result in a slow/partial fill.
|
|
208
|
+
* You should do this if you're not worried about simulating a proper fill of a deposit
|
|
209
|
+
* with a message or if you are worried a fill amount that could exceed the balance of
|
|
210
|
+
* the relayer.
|
|
211
|
+
* @param relayerAddress The relayer that will be used for the gas cost simulation
|
|
212
|
+
* @param _tokenPrice The token price for normalizing fees
|
|
213
|
+
* @returns The fee as a % of the amount to relay.
|
|
214
|
+
* @note Setting simulateZeroFill to true will result on the gas costs being estimated
|
|
215
|
+
* on a zero fill. However, the percentage will be returned as a percentage of the
|
|
216
|
+
* amount to relay. This is useful for determining the maximum gas fee % that a
|
|
217
|
+
* relayer may need to make on a regular fill. You will get differing results if
|
|
218
|
+
* a message & recipient contract is provided as this function may not simulate with
|
|
219
|
+
* the correct parameters to see a full fill.
|
|
220
|
+
*/
|
|
221
|
+
async gasFeePercent(
|
|
222
|
+
deposit: Deposit,
|
|
223
|
+
amountToRelay: BigNumberish,
|
|
224
|
+
simulateZeroFill = false,
|
|
225
|
+
relayerAddress = DEFAULT_SIMULATED_RELAYER_ADDRESS,
|
|
226
|
+
_tokenPrice?: number,
|
|
227
|
+
tokenMapping = TOKEN_SYMBOLS_MAP
|
|
228
|
+
): Promise<BigNumber> {
|
|
229
|
+
if (toBN(amountToRelay).eq(bnZero)) return MAX_BIG_INT;
|
|
230
|
+
|
|
231
|
+
const { inputToken } = deposit;
|
|
232
|
+
const token = getTokenInformationFromAddress(inputToken, tokenMapping);
|
|
233
|
+
if (!isDefined(token)) {
|
|
234
|
+
throw new Error(`Could not find token information for ${inputToken}`);
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// Reduce the output amount to simulate a full fill with a lower value to estimate
|
|
238
|
+
// the fill cost accurately without risking a failure due to insufficient balance.
|
|
239
|
+
const simulatedAmount = simulateZeroFill ? safeOutputAmount : toBN(amountToRelay);
|
|
240
|
+
deposit = { ...deposit, outputAmount: simulatedAmount };
|
|
241
|
+
|
|
242
|
+
const getGasCosts = this.queries.getGasCosts(deposit, relayerAddress).catch((error) => {
|
|
243
|
+
this.logger.error({
|
|
244
|
+
at: "sdk/gasFeePercent",
|
|
245
|
+
message: "Error while fetching gas costs",
|
|
246
|
+
error,
|
|
247
|
+
simulateZeroFill,
|
|
248
|
+
deposit,
|
|
249
|
+
});
|
|
250
|
+
throw error;
|
|
251
|
+
});
|
|
252
|
+
const getTokenPrice = this.queries.getTokenPrice(token.symbol).catch((error) => {
|
|
253
|
+
this.logger.error({
|
|
254
|
+
at: "sdk/gasFeePercent",
|
|
255
|
+
message: "Error while fetching token price",
|
|
256
|
+
error,
|
|
257
|
+
destinationChainId: deposit.destinationChainId,
|
|
258
|
+
inputToken,
|
|
259
|
+
});
|
|
260
|
+
throw error;
|
|
261
|
+
});
|
|
262
|
+
const [{ tokenGasCost }, tokenPrice] = await Promise.all([
|
|
263
|
+
getGasCosts,
|
|
264
|
+
_tokenPrice !== undefined ? _tokenPrice : getTokenPrice,
|
|
265
|
+
]);
|
|
266
|
+
const gasFeesInToken = nativeToToken(tokenGasCost, tokenPrice, token.decimals, this.nativeTokenDecimals);
|
|
267
|
+
return percent(gasFeesInToken, amountToRelay.toString());
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Note: these variables are unused now, but may be needed in future versions of this function that are more complex.
|
|
271
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
272
|
+
capitalFeePercent(
|
|
273
|
+
_amountToRelay: BigNumberish,
|
|
274
|
+
_tokenSymbol: string,
|
|
275
|
+
_originRoute?: ChainIdAsString,
|
|
276
|
+
_destinationRoute?: ChainIdAsString
|
|
277
|
+
): BigNumber {
|
|
278
|
+
// If amount is 0, then the capital fee % should be the max 100%
|
|
279
|
+
if (toBN(_amountToRelay).eq(toBN(0))) return MAX_BIG_INT;
|
|
280
|
+
|
|
281
|
+
// V0: Ensure that there is a capital fee available for the token.
|
|
282
|
+
// If not, then we should throw an error because this is indicative
|
|
283
|
+
// of a misconfiguration.
|
|
284
|
+
const tokenCostConfig = this.capitalCostsConfig[_tokenSymbol.toUpperCase()];
|
|
285
|
+
if (!isDefined(tokenCostConfig)) {
|
|
286
|
+
this.logger.error({
|
|
287
|
+
at: "sdk/capitalFeePercent",
|
|
288
|
+
message: `No capital fee available for token ${_tokenSymbol}`,
|
|
289
|
+
});
|
|
290
|
+
throw new Error(`No capital cost config available for token ${_tokenSymbol}`);
|
|
291
|
+
}
|
|
292
|
+
// V1: Charge fee that scales with size. This will charge a fee % based on a linear fee curve with a "kink" at a
|
|
293
|
+
// cutoff in the same units as _amountToRelay. Before the kink, the fee % will increase linearly from a lower
|
|
294
|
+
// bound to an upper bound. After the kink, the fee % increase will be fixed, and slowly approach the upper bound
|
|
295
|
+
// for very large amount inputs.
|
|
296
|
+
else {
|
|
297
|
+
const config =
|
|
298
|
+
isDefined(_originRoute) && isDefined(_destinationRoute)
|
|
299
|
+
? tokenCostConfig.routeOverrides?.[_originRoute]?.[_destinationRoute] ?? tokenCostConfig.default
|
|
300
|
+
: tokenCostConfig.default;
|
|
301
|
+
|
|
302
|
+
// Scale amount "y" to 18 decimals.
|
|
303
|
+
const y = toBN(_amountToRelay).mul(toBNWei("1", 18 - config.decimals));
|
|
304
|
+
// At a minimum, the fee will be equal to lower bound fee * y
|
|
305
|
+
const minCharge = toBN(config.lowerBound).mul(y).div(fixedPointAdjustment);
|
|
306
|
+
|
|
307
|
+
// Charge an increasing marginal fee % up to min(cutoff, y). If y is very close to the cutoff, the fee %
|
|
308
|
+
// will be equal to half the sum of (upper bound + lower bound).
|
|
309
|
+
const yTriangle = min(config.cutoff, y);
|
|
310
|
+
|
|
311
|
+
// triangleSlope is slope of fee curve from lower bound to upper bound. If cutoff is 0, slope is 0.
|
|
312
|
+
// triangleCharge is interval of curve from 0 to y for curve = triangleSlope * y
|
|
313
|
+
const triangleSlope = toBN(config.cutoff).eq(toBN(0))
|
|
314
|
+
? toBN(0)
|
|
315
|
+
: toBN(config.upperBound).sub(config.lowerBound).mul(fixedPointAdjustment).div(config.cutoff);
|
|
316
|
+
const triangleHeight = triangleSlope.mul(yTriangle).div(fixedPointAdjustment);
|
|
317
|
+
const triangleCharge = triangleHeight.mul(yTriangle).div(toBNWei(2));
|
|
318
|
+
|
|
319
|
+
// For any amounts above the cutoff, the marginal fee % will not increase but will be fixed at the upper bound
|
|
320
|
+
// value.
|
|
321
|
+
const yRemainder = max(toBN(0), y.sub(config.cutoff));
|
|
322
|
+
const remainderCharge = yRemainder.mul(toBN(config.upperBound).sub(config.lowerBound)).div(fixedPointAdjustment);
|
|
323
|
+
|
|
324
|
+
return minCharge.add(triangleCharge).add(remainderCharge).mul(fixedPointAdjustment).div(y);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Retrieves the relayer fee details for a deposit.
|
|
330
|
+
* @param deposit A valid deposit object to reason about
|
|
331
|
+
* @param amountToRelay The amount that the relayer would simulate a fill for
|
|
332
|
+
* @param simulateZeroFill Whether to simulate a zero fill for the gas cost simulation
|
|
333
|
+
* For simulateZeroFill: A fill of 1 wei which would result in a slow/partial fill.
|
|
334
|
+
* You should do this if you're not worried about simulating a proper fill of a deposit
|
|
335
|
+
* with a message or if you are worried a fill amount that could exceed the balance of
|
|
336
|
+
* the relayer.
|
|
337
|
+
* @param relayerAddress The relayer that will be used for the gas cost simulation
|
|
338
|
+
* @param _tokenPrice The token price for normalizing fees
|
|
339
|
+
* @returns A resulting `RelayerFeeDetails` object
|
|
340
|
+
*/
|
|
341
|
+
async relayerFeeDetails(
|
|
342
|
+
deposit: Deposit,
|
|
343
|
+
amountToRelay?: BigNumberish,
|
|
344
|
+
simulateZeroFill = false,
|
|
345
|
+
relayerAddress = DEFAULT_SIMULATED_RELAYER_ADDRESS,
|
|
346
|
+
_tokenPrice?: number
|
|
347
|
+
): Promise<RelayerFeeDetails> {
|
|
348
|
+
// If the amount to relay is not provided, then we
|
|
349
|
+
// should use the full deposit amount.
|
|
350
|
+
amountToRelay ??= deposit.outputAmount;
|
|
351
|
+
const { inputToken } = deposit;
|
|
352
|
+
const token = getTokenInformationFromAddress(inputToken);
|
|
353
|
+
if (!isDefined(token)) {
|
|
354
|
+
throw new Error(`Could not find token information for ${inputToken}`);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
const gasFeePercent = await this.gasFeePercent(
|
|
358
|
+
deposit,
|
|
359
|
+
amountToRelay,
|
|
360
|
+
simulateZeroFill,
|
|
361
|
+
relayerAddress,
|
|
362
|
+
_tokenPrice
|
|
363
|
+
);
|
|
364
|
+
const gasFeeTotal = gasFeePercent.mul(amountToRelay).div(fixedPointAdjustment);
|
|
365
|
+
const capitalFeePercent = this.capitalFeePercent(
|
|
366
|
+
amountToRelay,
|
|
367
|
+
token.symbol,
|
|
368
|
+
deposit.originChainId.toString(),
|
|
369
|
+
deposit.destinationChainId.toString()
|
|
370
|
+
);
|
|
371
|
+
const capitalFeeTotal = capitalFeePercent.mul(amountToRelay).div(fixedPointAdjustment);
|
|
372
|
+
const relayFeePercent = gasFeePercent.add(capitalFeePercent);
|
|
373
|
+
const relayFeeTotal = gasFeeTotal.add(capitalFeeTotal);
|
|
374
|
+
|
|
375
|
+
// We don't want the relayer to incur an excessive gas fee charge as a % of the deposited total.
|
|
376
|
+
// The maximum gas fee % charged is equal to the remaining fee % leftover after subtracting the capital fee %
|
|
377
|
+
// from the fee limit %. We then compute the minimum deposited amount required to not exceed the maximum
|
|
378
|
+
// gas fee %: maxGasFeePercent = gasFeeTotal / minDeposit. Refactor this to figure out the minDeposit:
|
|
379
|
+
// minDeposit = gasFeeTotal / maxGasFeePercent, and subsequently determine
|
|
380
|
+
// isAmountTooLow = amountToRelay < minDeposit.
|
|
381
|
+
const maxGasFeePercent = max(toBNWei(this.feeLimitPercent / 100).sub(capitalFeePercent), toBN(0));
|
|
382
|
+
// If maxGasFee % is 0, then the min deposit should be infinite because there is no deposit amount that would
|
|
383
|
+
// incur a non zero gas fee % charge. In this case, isAmountTooLow should always be true.
|
|
384
|
+
let minDeposit: BigNumber, isAmountTooLow: boolean;
|
|
385
|
+
if (maxGasFeePercent.eq(toBN(0))) {
|
|
386
|
+
minDeposit = MAX_BIG_INT;
|
|
387
|
+
isAmountTooLow = true;
|
|
388
|
+
} else {
|
|
389
|
+
minDeposit = gasFeeTotal.mul(fixedPointAdjustment).div(maxGasFeePercent);
|
|
390
|
+
isAmountTooLow = toBN(amountToRelay).lt(minDeposit);
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
return {
|
|
394
|
+
amountToRelay: amountToRelay.toString(),
|
|
395
|
+
tokenSymbol: token.symbol,
|
|
396
|
+
gasFeePercent: gasFeePercent.toString(),
|
|
397
|
+
gasFeeTotal: gasFeeTotal.toString(),
|
|
398
|
+
gasDiscountPercent: this.gasDiscountPercent,
|
|
399
|
+
capitalFeePercent: capitalFeePercent.toString(),
|
|
400
|
+
capitalFeeTotal: capitalFeeTotal.toString(),
|
|
401
|
+
capitalDiscountPercent: this.capitalDiscountPercent,
|
|
402
|
+
relayFeePercent: relayFeePercent.toString(),
|
|
403
|
+
relayFeeTotal: relayFeeTotal.toString(),
|
|
404
|
+
feeLimitPercent: this.feeLimitPercent,
|
|
405
|
+
maxGasFeePercent: maxGasFeePercent.toString(),
|
|
406
|
+
minDeposit: minDeposit.toString(),
|
|
407
|
+
isAmountTooLow,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
}
|
package/src/typechain.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file re-exports some of the typechain bindings so that they can be tree-shaken in the final frontend bundle.
|
|
3
|
+
* Currently, the packages `@across-protocol/contracts` and `@across-protocol/across-token` are not optimized for tree-shaking
|
|
4
|
+
* and contain modules that are not compatible in a browser environment. This is a temporary solution until we can fix the issue upstream.
|
|
5
|
+
*/
|
|
6
|
+
import type { TypedEvent, TypedEventFilter } from "@across-protocol/contracts/dist/typechain/common";
|
|
7
|
+
|
|
8
|
+
export type { TypedEvent, TypedEventFilter };
|
|
9
|
+
export { AcrossMerkleDistributor__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/merkle-distributor/AcrossMerkleDistributor__factory";
|
|
10
|
+
export { AcrossConfigStore__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/AcrossConfigStore__factory";
|
|
11
|
+
export { HubPool__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/HubPool__factory";
|
|
12
|
+
export { SpokePool__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/SpokePool.sol/SpokePool__factory";
|
|
13
|
+
export { ERC20__factory } from "@across-protocol/contracts/dist/typechain/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory";
|
|
14
|
+
|
|
15
|
+
export { AcceleratingDistributor__factory } from "@across-protocol/across-token/dist/typechain/factories/AcceleratingDistributor__factory";
|
|
16
|
+
export { ClaimAndStake__factory } from "@across-protocol/across-token/dist/typechain/factories/ClaimAndStake__factory";
|
|
17
|
+
export { MerkleDistributor__factory } from "@across-protocol/across-token/dist/typechain/factories/MerkleDistributor__factory";
|
|
18
|
+
|
|
19
|
+
export type {
|
|
20
|
+
AcrossMerkleDistributor,
|
|
21
|
+
AcrossMerkleDistributorInterface,
|
|
22
|
+
} from "@across-protocol/contracts/dist/typechain/contracts/merkle-distributor/AcrossMerkleDistributor";
|
|
23
|
+
export type {
|
|
24
|
+
AcrossConfigStore,
|
|
25
|
+
AcrossConfigStoreInterface,
|
|
26
|
+
} from "@across-protocol/contracts/dist/typechain/contracts/AcrossConfigStore";
|
|
27
|
+
export type { HubPool, HubPoolInterface } from "@across-protocol/contracts/dist/typechain/contracts/HubPool";
|
|
28
|
+
export type {
|
|
29
|
+
SpokePool,
|
|
30
|
+
SpokePoolInterface,
|
|
31
|
+
FundsDepositedEvent,
|
|
32
|
+
FilledRelayEvent,
|
|
33
|
+
RequestedSpeedUpDepositEvent,
|
|
34
|
+
V3FundsDepositedEvent,
|
|
35
|
+
FilledV3RelayEvent,
|
|
36
|
+
} from "@across-protocol/contracts/dist/typechain/contracts/SpokePool.sol/SpokePool";
|
|
37
|
+
|
|
38
|
+
export type {
|
|
39
|
+
AcceleratingDistributor,
|
|
40
|
+
AcceleratingDistributorInterface,
|
|
41
|
+
} from "@across-protocol/across-token/dist/typechain/AcceleratingDistributor";
|
|
42
|
+
export type { ClaimAndStake, ClaimAndStakeInterface } from "@across-protocol/across-token/dist/typechain/ClaimAndStake";
|
|
43
|
+
export type {
|
|
44
|
+
MerkleDistributor,
|
|
45
|
+
MerkleDistributorInterface,
|
|
46
|
+
} from "@across-protocol/across-token/dist/typechain/MerkleDistributor";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { EthersError } from "../interfaces";
|
|
3
|
+
|
|
4
|
+
export const isError = (error: unknown): error is Error => error instanceof Error;
|
|
5
|
+
|
|
6
|
+
export const isEthersError = (error?: unknown): error is EthersError =>
|
|
7
|
+
(error as EthersError)?.code in ethers.utils.Logger.errors;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./error";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { providers, utils } from "ethers";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Checks if a contract is deployed at the given address
|
|
5
|
+
* @param address The ETH address to check
|
|
6
|
+
* @param provider A valid Ethers.js provider
|
|
7
|
+
* @returns A boolean indicating if a contract is deployed at the given address or not (true = contract, false = no contract)
|
|
8
|
+
*/
|
|
9
|
+
export async function isContractDeployedToAddress(address: string, provider: providers.Provider): Promise<boolean> {
|
|
10
|
+
// A base case for if the address is null or malformed
|
|
11
|
+
if (!address || !utils.isAddress(address)) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
// Retrieve the code at the address
|
|
15
|
+
const code = await provider.getCode(address);
|
|
16
|
+
// If the code is not empty, then there is a contract at this address
|
|
17
|
+
return code !== "0x";
|
|
18
|
+
}
|