@across-protocol/sdk 4.1.63-beta.3 → 4.1.64-alpha.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/dist/cjs/arch/evm/SpokeUtils.d.ts +1 -1
- package/dist/cjs/arch/evm/SpokeUtils.js +5 -6
- package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/evm/index.d.ts +0 -1
- package/dist/cjs/arch/evm/index.js +0 -1
- package/dist/cjs/arch/evm/index.js.map +1 -1
- package/dist/cjs/arch/svm/index.d.ts +1 -5
- package/dist/cjs/arch/svm/index.js +2 -6
- package/dist/cjs/arch/svm/index.js.map +1 -1
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
- package/dist/cjs/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/cjs/clients/BaseAbstractClient.d.ts +5 -6
- package/dist/cjs/clients/BaseAbstractClient.js +19 -30
- package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +11 -15
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
- package/dist/cjs/clients/HubPoolClient.d.ts +3 -4
- package/dist/cjs/clients/HubPoolClient.js +17 -18
- package/dist/cjs/clients/HubPoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +20 -23
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +5 -5
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +57 -54
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/index.d.ts +0 -3
- package/dist/cjs/clients/SpokePoolClient/index.js +1 -8
- package/dist/cjs/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/cjs/clients/index.d.ts +1 -1
- package/dist/cjs/clients/index.js +1 -2
- package/dist/cjs/clients/index.js.map +1 -1
- package/dist/cjs/clients/mocks/MockConfigStoreClient.d.ts +1 -1
- package/dist/cjs/clients/mocks/MockConfigStoreClient.js +2 -2
- package/dist/cjs/clients/mocks/MockConfigStoreClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockHubPoolClient.js +2 -2
- package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js +4 -7
- package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/index.d.ts +0 -2
- package/dist/cjs/clients/mocks/index.js +0 -2
- package/dist/cjs/clients/mocks/index.js.map +1 -1
- package/dist/cjs/constants.d.ts +0 -1
- package/dist/cjs/constants.js +1 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
- package/dist/cjs/gasPriceOracle/adapters/arbitrum.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/ethereum.d.ts +4 -4
- package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.js +2 -3
- package/dist/cjs/gasPriceOracle/adapters/linea-viem.js.map +1 -1
- package/dist/cjs/gasPriceOracle/adapters/polygon.d.ts +3 -3
- package/dist/cjs/gasPriceOracle/index.d.ts +1 -1
- package/dist/cjs/gasPriceOracle/oracle.d.ts +3 -4
- package/dist/cjs/gasPriceOracle/oracle.js +9 -16
- package/dist/cjs/gasPriceOracle/oracle.js.map +1 -1
- package/dist/cjs/gasPriceOracle/types.d.ts +1 -6
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interfaces/SpokePool.d.ts +0 -13
- package/dist/cjs/interfaces/SpokePool.js.map +1 -1
- package/dist/cjs/providers/index.d.ts +1 -1
- package/dist/cjs/providers/index.js +2 -1
- package/dist/cjs/providers/index.js.map +1 -1
- package/dist/cjs/providers/{mocks/mockEthersProvider.js → mockProvider.js} +2 -2
- package/dist/cjs/providers/mockProvider.js.map +1 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +8 -10
- package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.d.ts +2 -4
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js +2 -8
- package/dist/cjs/relayFeeCalculator/chain-queries/factory.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/index.d.ts +0 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/index.js +0 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/index.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +0 -2
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js +4 -10
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
- package/dist/cjs/svm/eventsClient.d.ts +15 -0
- package/dist/cjs/svm/eventsClient.js +157 -0
- package/dist/cjs/svm/eventsClient.js.map +1 -0
- package/dist/cjs/svm/index.d.ts +3 -0
- package/dist/cjs/svm/index.js +8 -0
- package/dist/cjs/svm/index.js.map +1 -0
- package/dist/cjs/{arch/svm → svm}/types.d.ts +4 -9
- package/dist/cjs/svm/types.js.map +1 -0
- package/dist/cjs/svm/utils/events.d.ts +8 -0
- package/dist/cjs/svm/utils/events.js +47 -0
- package/dist/cjs/svm/utils/events.js.map +1 -0
- package/dist/cjs/svm/utils/helpers.d.ts +2 -0
- package/dist/cjs/svm/utils/helpers.js +19 -0
- package/dist/cjs/svm/utils/helpers.js.map +1 -0
- package/dist/cjs/svm/utils/index.d.ts +1 -0
- package/dist/cjs/svm/utils/index.js +5 -0
- package/dist/cjs/svm/utils/index.js.map +1 -0
- package/dist/cjs/utils/AddressUtils.d.ts +3 -9
- package/dist/cjs/utils/AddressUtils.js +6 -36
- package/dist/cjs/utils/AddressUtils.js.map +1 -1
- package/dist/cjs/utils/ArrayUtils.d.ts +0 -1
- package/dist/cjs/utils/ArrayUtils.js +1 -6
- package/dist/cjs/utils/ArrayUtils.js.map +1 -1
- package/dist/cjs/utils/BlockUtils.d.ts +27 -2
- package/dist/cjs/utils/BlockUtils.js +208 -2
- package/dist/cjs/utils/BlockUtils.js.map +1 -1
- package/dist/cjs/utils/EventUtils.d.ts +4 -4
- package/dist/cjs/utils/EventUtils.js +4 -7
- package/dist/cjs/utils/EventUtils.js.map +1 -1
- package/dist/cjs/utils/JSONUtils.js +0 -3
- package/dist/cjs/utils/JSONUtils.js.map +1 -1
- package/dist/cjs/utils/SpokeUtils.js +0 -5
- package/dist/cjs/utils/SpokeUtils.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +0 -1
- package/dist/cjs/utils/index.js +0 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/arch/evm/SpokeUtils.d.ts +1 -1
- package/dist/esm/arch/evm/SpokeUtils.js +5 -6
- package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/evm/index.d.ts +0 -1
- package/dist/esm/arch/evm/index.js +0 -1
- package/dist/esm/arch/evm/index.js.map +1 -1
- package/dist/esm/arch/svm/index.d.ts +1 -5
- package/dist/esm/arch/svm/index.js +1 -5
- package/dist/esm/arch/svm/index.js.map +1 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +7 -7
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/esm/clients/BaseAbstractClient.d.ts +5 -6
- package/dist/esm/clients/BaseAbstractClient.js +19 -30
- package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +14 -17
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
- package/dist/esm/clients/HubPoolClient.d.ts +3 -4
- package/dist/esm/clients/HubPoolClient.js +18 -19
- package/dist/esm/clients/HubPoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +20 -23
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +59 -57
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/index.d.ts +0 -8
- package/dist/esm/clients/SpokePoolClient/index.js +0 -10
- package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/esm/clients/index.d.ts +1 -1
- package/dist/esm/clients/index.js +1 -1
- package/dist/esm/clients/index.js.map +1 -1
- package/dist/esm/clients/mocks/MockConfigStoreClient.d.ts +1 -1
- package/dist/esm/clients/mocks/MockConfigStoreClient.js +2 -2
- package/dist/esm/clients/mocks/MockConfigStoreClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockHubPoolClient.js +2 -2
- package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSpokePoolClient.js +5 -8
- package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/index.d.ts +0 -2
- package/dist/esm/clients/mocks/index.js +0 -2
- package/dist/esm/clients/mocks/index.js.map +1 -1
- package/dist/esm/constants.d.ts +0 -1
- package/dist/esm/constants.js +0 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
- package/dist/esm/gasPriceOracle/adapters/arbitrum.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/ethereum.d.ts +4 -4
- package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/linea-viem.js +2 -3
- package/dist/esm/gasPriceOracle/adapters/linea-viem.js.map +1 -1
- package/dist/esm/gasPriceOracle/adapters/polygon.d.ts +4 -4
- package/dist/esm/gasPriceOracle/adapters/polygon.js +1 -1
- package/dist/esm/gasPriceOracle/index.d.ts +1 -1
- package/dist/esm/gasPriceOracle/oracle.d.ts +3 -4
- package/dist/esm/gasPriceOracle/oracle.js +9 -18
- package/dist/esm/gasPriceOracle/oracle.js.map +1 -1
- package/dist/esm/gasPriceOracle/types.d.ts +1 -6
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interfaces/SpokePool.d.ts +0 -13
- package/dist/esm/interfaces/SpokePool.js.map +1 -1
- package/dist/esm/providers/index.d.ts +1 -1
- package/dist/esm/providers/index.js +2 -1
- package/dist/esm/providers/index.js.map +1 -1
- package/dist/esm/providers/{mocks/mockEthersProvider.js → mockProvider.js} +2 -2
- package/dist/esm/providers/mockProvider.js.map +1 -0
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +8 -10
- package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +2 -4
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js +5 -11
- package/dist/esm/relayFeeCalculator/chain-queries/factory.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/index.d.ts +0 -1
- package/dist/esm/relayFeeCalculator/chain-queries/index.js +0 -1
- package/dist/esm/relayFeeCalculator/chain-queries/index.js.map +1 -1
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +1 -12
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js +5 -10
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
- package/dist/esm/svm/eventsClient.d.ts +51 -0
- package/dist/esm/svm/eventsClient.js +195 -0
- package/dist/esm/svm/eventsClient.js.map +1 -0
- package/dist/esm/svm/index.d.ts +3 -0
- package/dist/esm/svm/index.js +5 -0
- package/dist/esm/svm/index.js.map +1 -0
- package/dist/esm/{arch/svm → svm}/types.d.ts +4 -9
- package/dist/esm/svm/types.js.map +1 -0
- package/dist/esm/svm/utils/events.d.ts +17 -0
- package/dist/esm/svm/utils/events.js +55 -0
- package/dist/esm/svm/utils/events.js.map +1 -0
- package/dist/esm/svm/utils/helpers.d.ts +5 -0
- package/dist/esm/svm/utils/helpers.js +18 -0
- package/dist/esm/svm/utils/helpers.js.map +1 -0
- package/dist/esm/svm/utils/index.d.ts +1 -0
- package/dist/esm/svm/utils/index.js +2 -0
- package/dist/esm/svm/utils/index.js.map +1 -0
- package/dist/esm/utils/AddressUtils.d.ts +3 -9
- package/dist/esm/utils/AddressUtils.js +6 -41
- package/dist/esm/utils/AddressUtils.js.map +1 -1
- package/dist/esm/utils/ArrayUtils.d.ts +0 -6
- package/dist/esm/utils/ArrayUtils.js +0 -9
- package/dist/esm/utils/ArrayUtils.js.map +1 -1
- package/dist/esm/utils/BlockUtils.d.ts +36 -2
- package/dist/esm/utils/BlockUtils.js +243 -2
- package/dist/esm/utils/BlockUtils.js.map +1 -1
- package/dist/esm/utils/EventUtils.d.ts +4 -4
- package/dist/esm/utils/EventUtils.js +4 -7
- package/dist/esm/utils/EventUtils.js.map +1 -1
- package/dist/esm/utils/JSONUtils.js +0 -3
- package/dist/esm/utils/JSONUtils.js.map +1 -1
- package/dist/esm/utils/SpokeUtils.js +0 -5
- package/dist/esm/utils/SpokeUtils.js.map +1 -1
- package/dist/esm/utils/index.d.ts +0 -1
- package/dist/esm/utils/index.js +0 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/arch/evm/SpokeUtils.d.ts +1 -1
- package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/evm/index.d.ts +0 -1
- package/dist/types/arch/evm/index.d.ts.map +1 -1
- package/dist/types/arch/svm/index.d.ts +1 -5
- package/dist/types/arch/svm/index.d.ts.map +1 -1
- package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts +1 -1
- package/dist/types/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.d.ts.map +1 -1
- package/dist/types/clients/BaseAbstractClient.d.ts +5 -6
- package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +114 -114
- package/dist/types/clients/HubPoolClient.d.ts +3 -4
- package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +3 -3
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +7 -7
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/index.d.ts +0 -8
- package/dist/types/clients/SpokePoolClient/index.d.ts.map +1 -1
- package/dist/types/clients/index.d.ts +1 -1
- package/dist/types/clients/index.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockConfigStoreClient.d.ts +1 -1
- package/dist/types/clients/mocks/MockConfigStoreClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/index.d.ts +0 -2
- package/dist/types/clients/mocks/index.d.ts.map +1 -1
- package/dist/types/constants.d.ts +0 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts +2 -2
- package/dist/types/gasPriceOracle/adapters/arbitrum.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/ethereum.d.ts +4 -4
- package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/linea-viem.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts +4 -4
- package/dist/types/gasPriceOracle/adapters/polygon.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/index.d.ts +1 -1
- package/dist/types/gasPriceOracle/index.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/oracle.d.ts +3 -4
- package/dist/types/gasPriceOracle/oracle.d.ts.map +1 -1
- package/dist/types/gasPriceOracle/types.d.ts +1 -6
- package/dist/types/gasPriceOracle/types.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/interfaces/SpokePool.d.ts +0 -13
- package/dist/types/interfaces/SpokePool.d.ts.map +1 -1
- package/dist/types/providers/index.d.ts +1 -1
- package/dist/types/providers/index.d.ts.map +1 -1
- package/dist/types/providers/{mocks/mockEthersProvider.d.ts → mockProvider.d.ts} +1 -1
- package/dist/types/providers/mockProvider.d.ts.map +1 -0
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +2 -4
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/index.d.ts +0 -1
- package/dist/types/relayFeeCalculator/chain-queries/index.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +1 -12
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
- package/dist/types/svm/eventsClient.d.ts +52 -0
- package/dist/types/svm/eventsClient.d.ts.map +1 -0
- package/dist/types/svm/index.d.ts +4 -0
- package/dist/types/svm/index.d.ts.map +1 -0
- package/dist/types/{arch/svm → svm}/types.d.ts +4 -9
- package/dist/types/svm/types.d.ts.map +1 -0
- package/dist/types/svm/utils/events.d.ts +18 -0
- package/dist/types/svm/utils/events.d.ts.map +1 -0
- package/dist/types/svm/utils/helpers.d.ts +6 -0
- package/dist/types/svm/utils/helpers.d.ts.map +1 -0
- package/dist/types/svm/utils/index.d.ts +2 -0
- package/dist/types/svm/utils/index.d.ts.map +1 -0
- package/dist/types/utils/AddressUtils.d.ts +3 -9
- package/dist/types/utils/AddressUtils.d.ts.map +1 -1
- package/dist/types/utils/ArrayUtils.d.ts +0 -6
- package/dist/types/utils/ArrayUtils.d.ts.map +1 -1
- package/dist/types/utils/BlockUtils.d.ts +36 -2
- package/dist/types/utils/BlockUtils.d.ts.map +1 -1
- package/dist/types/utils/EventUtils.d.ts +4 -4
- package/dist/types/utils/EventUtils.d.ts.map +1 -1
- package/dist/types/utils/JSONUtils.d.ts.map +1 -1
- package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +1 -3
- package/src/arch/evm/SpokeUtils.ts +5 -5
- package/src/arch/evm/index.ts +0 -1
- package/src/arch/svm/index.ts +1 -5
- package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +7 -7
- package/src/clients/BaseAbstractClient.ts +13 -20
- package/src/clients/BundleDataClient/BundleDataClient.ts +19 -28
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +1 -1
- package/src/clients/HubPoolClient.ts +19 -19
- package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +21 -23
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +59 -50
- package/src/clients/SpokePoolClient/index.ts +0 -11
- package/src/clients/index.ts +1 -1
- package/src/clients/mocks/MockConfigStoreClient.ts +2 -2
- package/src/clients/mocks/MockHubPoolClient.ts +2 -2
- package/src/clients/mocks/MockSpokePoolClient.ts +4 -9
- package/src/clients/mocks/index.ts +0 -2
- package/src/constants.ts +0 -1
- package/src/gasPriceOracle/adapters/arbitrum.ts +2 -5
- package/src/gasPriceOracle/adapters/ethereum.ts +4 -7
- package/src/gasPriceOracle/adapters/linea-viem.ts +1 -3
- package/src/gasPriceOracle/adapters/polygon.ts +6 -6
- package/src/gasPriceOracle/index.ts +1 -1
- package/src/gasPriceOracle/oracle.ts +4 -20
- package/src/gasPriceOracle/types.ts +1 -7
- package/src/index.ts +1 -0
- package/src/interfaces/SpokePool.ts +0 -14
- package/src/providers/index.ts +1 -1
- package/src/providers/{mocks/mockEthersProvider.ts → mockProvider.ts} +1 -1
- package/src/relayFeeCalculator/chain-queries/baseQuery.ts +9 -11
- package/src/relayFeeCalculator/chain-queries/factory.ts +8 -24
- package/src/relayFeeCalculator/chain-queries/index.ts +0 -1
- package/src/relayFeeCalculator/relayFeeCalculator.ts +4 -16
- package/src/svm/eventsClient.ts +199 -0
- package/src/svm/index.ts +3 -0
- package/src/{arch/svm → svm}/types.ts +4 -21
- package/src/svm/utils/events.ts +58 -0
- package/src/svm/utils/helpers.ts +9 -0
- package/src/svm/utils/index.ts +1 -0
- package/src/utils/AddressUtils.ts +6 -49
- package/src/utils/ArrayUtils.ts +0 -12
- package/src/utils/BlockUtils.ts +215 -5
- package/src/utils/EventUtils.ts +11 -11
- package/src/utils/JSONUtils.ts +0 -2
- package/src/utils/SpokeUtils.ts +3 -7
- package/src/utils/index.ts +0 -1
- package/dist/cjs/arch/evm/BlockUtils.d.ts +0 -15
- package/dist/cjs/arch/evm/BlockUtils.js +0 -218
- package/dist/cjs/arch/evm/BlockUtils.js.map +0 -1
- package/dist/cjs/arch/svm/SpokeUtils.d.ts +0 -21
- package/dist/cjs/arch/svm/SpokeUtils.js +0 -454
- package/dist/cjs/arch/svm/SpokeUtils.js.map +0 -1
- package/dist/cjs/arch/svm/constants.d.ts +0 -2
- package/dist/cjs/arch/svm/constants.js +0 -7
- package/dist/cjs/arch/svm/constants.js.map +0 -1
- package/dist/cjs/arch/svm/eventsClient.d.ts +0 -26
- package/dist/cjs/arch/svm/eventsClient.js +0 -253
- package/dist/cjs/arch/svm/eventsClient.js.map +0 -1
- package/dist/cjs/arch/svm/types.js.map +0 -1
- package/dist/cjs/arch/svm/utils.d.ts +0 -18
- package/dist/cjs/arch/svm/utils.js +0 -212
- package/dist/cjs/arch/svm/utils.js.map +0 -1
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +0 -23
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +0 -172
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +0 -1
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.d.ts +0 -33
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +0 -184
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +0 -1
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +0 -30
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js +0 -90
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.js.map +0 -1
- package/dist/cjs/gasPriceOracle/adapters/solana.d.ts +0 -4
- package/dist/cjs/gasPriceOracle/adapters/solana.js +0 -43
- package/dist/cjs/gasPriceOracle/adapters/solana.js.map +0 -1
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.d.ts +0 -5
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +0 -21
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +0 -1
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +0 -5
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +0 -20
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +0 -1
- package/dist/cjs/providers/mocks/MockSolanaRpcFactory.d.ts +0 -13
- package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js +0 -76
- package/dist/cjs/providers/mocks/MockSolanaRpcFactory.js.map +0 -1
- package/dist/cjs/providers/mocks/index.d.ts +0 -4
- package/dist/cjs/providers/mocks/index.js +0 -8
- package/dist/cjs/providers/mocks/index.js.map +0 -1
- package/dist/cjs/providers/mocks/mockEthersProvider.js.map +0 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +0 -37
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +0 -171
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +0 -1
- package/dist/cjs/utils/BlockFinder.d.ts +0 -22
- package/dist/cjs/utils/BlockFinder.js +0 -10
- package/dist/cjs/utils/BlockFinder.js.map +0 -1
- package/dist/esm/arch/evm/BlockUtils.d.ts +0 -24
- package/dist/esm/arch/evm/BlockUtils.js +0 -250
- package/dist/esm/arch/evm/BlockUtils.js.map +0 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +0 -129
- package/dist/esm/arch/svm/SpokeUtils.js +0 -576
- package/dist/esm/arch/svm/SpokeUtils.js.map +0 -1
- package/dist/esm/arch/svm/constants.d.ts +0 -2
- package/dist/esm/arch/svm/constants.js +0 -3
- package/dist/esm/arch/svm/constants.js.map +0 -1
- package/dist/esm/arch/svm/eventsClient.d.ts +0 -87
- package/dist/esm/arch/svm/eventsClient.js +0 -316
- package/dist/esm/arch/svm/eventsClient.js.map +0 -1
- package/dist/esm/arch/svm/types.js.map +0 -1
- package/dist/esm/arch/svm/utils.d.ts +0 -63
- package/dist/esm/arch/svm/utils.js +0 -258
- package/dist/esm/arch/svm/utils.js.map +0 -1
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +0 -66
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +0 -225
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +0 -1
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.d.ts +0 -33
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +0 -183
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +0 -1
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +0 -30
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js +0 -89
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.js.map +0 -1
- package/dist/esm/gasPriceOracle/adapters/solana.d.ts +0 -8
- package/dist/esm/gasPriceOracle/adapters/solana.js +0 -43
- package/dist/esm/gasPriceOracle/adapters/solana.js.map +0 -1
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.d.ts +0 -5
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +0 -19
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +0 -1
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +0 -5
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +0 -18
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +0 -1
- package/dist/esm/providers/mocks/MockSolanaRpcFactory.d.ts +0 -13
- package/dist/esm/providers/mocks/MockSolanaRpcFactory.js +0 -74
- package/dist/esm/providers/mocks/MockSolanaRpcFactory.js.map +0 -1
- package/dist/esm/providers/mocks/index.d.ts +0 -4
- package/dist/esm/providers/mocks/index.js +0 -5
- package/dist/esm/providers/mocks/index.js.map +0 -1
- package/dist/esm/providers/mocks/mockEthersProvider.js.map +0 -1
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +0 -84
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +0 -216
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +0 -1
- package/dist/esm/utils/BlockFinder.d.ts +0 -22
- package/dist/esm/utils/BlockFinder.js +0 -7
- package/dist/esm/utils/BlockFinder.js.map +0 -1
- package/dist/types/arch/evm/BlockUtils.d.ts +0 -25
- package/dist/types/arch/evm/BlockUtils.d.ts.map +0 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts +0 -130
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +0 -1
- package/dist/types/arch/svm/constants.d.ts +0 -3
- package/dist/types/arch/svm/constants.d.ts.map +0 -1
- package/dist/types/arch/svm/eventsClient.d.ts +0 -88
- package/dist/types/arch/svm/eventsClient.d.ts.map +0 -1
- package/dist/types/arch/svm/types.d.ts.map +0 -1
- package/dist/types/arch/svm/utils.d.ts +0 -64
- package/dist/types/arch/svm/utils.d.ts.map +0 -1
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts +0 -67
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +0 -1
- package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts +0 -34
- package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts.map +0 -1
- package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +0 -31
- package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts.map +0 -1
- package/dist/types/gasPriceOracle/adapters/solana.d.ts +0 -9
- package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +0 -1
- package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts +0 -6
- package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts.map +0 -1
- package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +0 -6
- package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts.map +0 -1
- package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts +0 -14
- package/dist/types/providers/mocks/MockSolanaRpcFactory.d.ts.map +0 -1
- package/dist/types/providers/mocks/index.d.ts +0 -5
- package/dist/types/providers/mocks/index.d.ts.map +0 -1
- package/dist/types/providers/mocks/mockEthersProvider.d.ts.map +0 -1
- package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +0 -85
- package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +0 -1
- package/dist/types/utils/BlockFinder.d.ts +0 -23
- package/dist/types/utils/BlockFinder.d.ts.map +0 -1
- package/src/arch/evm/BlockUtils.ts +0 -209
- package/src/arch/svm/SpokeUtils.ts +0 -596
- package/src/arch/svm/constants.ts +0 -2
- package/src/arch/svm/eventsClient.ts +0 -342
- package/src/arch/svm/utils.ts +0 -233
- package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +0 -268
- package/src/clients/mocks/MockSvmCpiEventsClient.ts +0 -226
- package/src/clients/mocks/MockSvmSpokePoolClient.ts +0 -119
- package/src/gasPriceOracle/adapters/solana.ts +0 -45
- package/src/providers/mocks/MockCachedSolanaRpcFactory.ts +0 -15
- package/src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts +0 -14
- package/src/providers/mocks/MockSolanaRpcFactory.ts +0 -55
- package/src/providers/mocks/index.ts +0 -4
- package/src/relayFeeCalculator/chain-queries/svmQuery.ts +0 -225
- package/src/utils/BlockFinder.ts +0 -26
- /package/dist/cjs/providers/{mocks/mockEthersProvider.d.ts → mockProvider.d.ts} +0 -0
- /package/dist/cjs/{arch/svm → svm}/types.js +0 -0
- /package/dist/esm/providers/{mocks/mockEthersProvider.d.ts → mockProvider.d.ts} +0 -0
- /package/dist/esm/{arch/svm → svm}/types.js +0 -0
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { RpcResponse, RpcTransport } from "@solana/kit";
|
|
2
|
-
import { SolanaClusterRpcFactory } from "../solana";
|
|
3
|
-
|
|
4
|
-
type CachedResponse = { result: unknown } | { error: unknown } | { throwError: string };
|
|
5
|
-
|
|
6
|
-
// Exposes mocked RPC transport for Solana in the SolanaClusterRpcFactory class.
|
|
7
|
-
export class MockSolanaRpcFactory extends SolanaClusterRpcFactory {
|
|
8
|
-
private responseTime: number = 10; // in milliseconds
|
|
9
|
-
private responses: Map<string, CachedResponse> = new Map();
|
|
10
|
-
|
|
11
|
-
constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>) {
|
|
12
|
-
super(...clusterConstructorParams);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
public createTransport(): RpcTransport {
|
|
16
|
-
return <TResponse>(...args: Parameters<RpcTransport>): Promise<TResponse> => {
|
|
17
|
-
return this.createMockRpcTransport()<TResponse>(...args);
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public setResult(method: string, params: unknown[], result: unknown) {
|
|
22
|
-
const requestKey = JSON.stringify({ method, params });
|
|
23
|
-
this.responses.set(requestKey, { result });
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
public setError(method: string, params: unknown[], error: unknown) {
|
|
27
|
-
const requestKey = JSON.stringify({ method, params });
|
|
28
|
-
this.responses.set(requestKey, { error });
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
public setThrow(method: string, params: unknown[], throwError: string) {
|
|
32
|
-
const requestKey = JSON.stringify({ method, params });
|
|
33
|
-
this.responses.set(requestKey, { throwError });
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public setResponseTime(responseTime: number) {
|
|
37
|
-
this.responseTime = responseTime;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private createMockRpcTransport(): RpcTransport {
|
|
41
|
-
return async <TResponse>({ payload }: Parameters<RpcTransport>[0]): Promise<RpcResponse<TResponse>> => {
|
|
42
|
-
const { method, params } = payload as { method: string; params?: unknown[] };
|
|
43
|
-
const requestKey = JSON.stringify({ method, params });
|
|
44
|
-
let jsonRpcResponse = this.responses.get(requestKey);
|
|
45
|
-
if (jsonRpcResponse === undefined) {
|
|
46
|
-
const requestKeyWithoutParams = JSON.stringify({ method, params: [] });
|
|
47
|
-
jsonRpcResponse = this.responses.get(requestKeyWithoutParams);
|
|
48
|
-
if (jsonRpcResponse === undefined) jsonRpcResponse = { result: null };
|
|
49
|
-
}
|
|
50
|
-
await new Promise((resolve) => setTimeout(resolve, this.responseTime));
|
|
51
|
-
if ("throwError" in jsonRpcResponse) throw new Error(jsonRpcResponse.throwError);
|
|
52
|
-
return jsonRpcResponse as TResponse;
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { pipe } from "@solana/functional";
|
|
2
|
-
import { Coingecko } from "../../coingecko";
|
|
3
|
-
import { SymbolMappingType } from "./";
|
|
4
|
-
import { CHAIN_IDs } from "../../constants";
|
|
5
|
-
import { Deposit } from "../../interfaces";
|
|
6
|
-
import { getGasPriceEstimate, SvmGasPriceEstimate } from "../../gasPriceOracle";
|
|
7
|
-
import {
|
|
8
|
-
BigNumberish,
|
|
9
|
-
TransactionCostEstimate,
|
|
10
|
-
BigNumber,
|
|
11
|
-
SvmAddress,
|
|
12
|
-
toBN,
|
|
13
|
-
isDefined,
|
|
14
|
-
toAddressType,
|
|
15
|
-
} from "../../utils";
|
|
16
|
-
import { getDefaultSimulatedRelayerAddress, Logger, QueryInterface } from "../relayFeeCalculator";
|
|
17
|
-
import {
|
|
18
|
-
fillRelayInstruction,
|
|
19
|
-
createApproveInstruction,
|
|
20
|
-
createTokenAccountsInstruction,
|
|
21
|
-
SVMProvider,
|
|
22
|
-
SolanaVoidSigner,
|
|
23
|
-
getAssociatedTokenAddress,
|
|
24
|
-
} from "../../arch/svm";
|
|
25
|
-
import {
|
|
26
|
-
createTransactionMessage,
|
|
27
|
-
setTransactionMessageFeePayer,
|
|
28
|
-
setTransactionMessageLifetimeUsingBlockhash,
|
|
29
|
-
appendTransactionMessageInstructions,
|
|
30
|
-
getComputeUnitEstimateForTransactionMessageFactory,
|
|
31
|
-
fetchEncodedAccount,
|
|
32
|
-
IInstruction,
|
|
33
|
-
} from "@solana/kit";
|
|
34
|
-
import { TOKEN_PROGRAM_ADDRESS, getMintSize, getInitializeMintInstruction, fetchMint } from "@solana-program/token";
|
|
35
|
-
import { getCreateAccountInstruction } from "@solana-program/system";
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* A special QueryBase implementation for SVM used for querying gas costs, token prices, and decimals of various tokens
|
|
39
|
-
* on Solana.
|
|
40
|
-
*/
|
|
41
|
-
export class SvmQuery implements QueryInterface {
|
|
42
|
-
protected computeUnitEstimator;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Instantiates a SvmQuery instance
|
|
46
|
-
* @param provider A valid solana/kit rpc client.
|
|
47
|
-
* @param symbolMapping A mapping to valid ERC20 tokens and their respective characteristics
|
|
48
|
-
* @param spokePoolAddress The valid address of the Spoke Pool deployment
|
|
49
|
-
* @param simulatedRelayerAddress The address that these queries will reference as the sender. Note: This address must be approved for USDC
|
|
50
|
-
* @param logger A logging utility to report logs
|
|
51
|
-
* @param coingeckoProApiKey An optional CoinGecko API key that links to a PRO account
|
|
52
|
-
* @param fixedGasPrice Overrides the gas price with a fixed value. Note: primarily used for the Boba blockchain
|
|
53
|
-
* @param coingeckoBaseCurrency The basis currency that CoinGecko will use to resolve pricing
|
|
54
|
-
*/
|
|
55
|
-
constructor(
|
|
56
|
-
readonly provider: SVMProvider,
|
|
57
|
-
readonly symbolMapping: SymbolMappingType,
|
|
58
|
-
readonly spokePoolAddress: SvmAddress,
|
|
59
|
-
readonly simulatedRelayerAddress: SvmAddress,
|
|
60
|
-
readonly logger: Logger,
|
|
61
|
-
readonly coingeckoProApiKey?: string,
|
|
62
|
-
readonly fixedGasPrice?: BigNumberish,
|
|
63
|
-
readonly coingeckoBaseCurrency: string = "eth"
|
|
64
|
-
) {
|
|
65
|
-
this.computeUnitEstimator = getComputeUnitEstimateForTransactionMessageFactory({
|
|
66
|
-
rpc: provider,
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Retrieves the current gas costs of performing a fillRelay contract at the referenced SpokePool.
|
|
72
|
-
* @param deposit V3 deposit instance.
|
|
73
|
-
* @param relayerAddress Relayer address to simulate with.
|
|
74
|
-
* @param options
|
|
75
|
-
* @param options.gasPrice Optional gas price to use for the simulation.
|
|
76
|
-
* @param options.gasUnits Optional gas units to use for the simulation.
|
|
77
|
-
* @param options.transport Optional transport object for custom gas price retrieval.
|
|
78
|
-
* @returns The gas estimate for this function call (multiplied with the optional buffer).
|
|
79
|
-
*/
|
|
80
|
-
async getGasCosts(
|
|
81
|
-
deposit: Omit<Deposit, "messageHash">,
|
|
82
|
-
_relayer = getDefaultSimulatedRelayerAddress(deposit.destinationChainId),
|
|
83
|
-
options: Partial<{
|
|
84
|
-
gasPrice: BigNumberish;
|
|
85
|
-
gasUnits: BigNumberish;
|
|
86
|
-
baseFeeMultiplier: BigNumber;
|
|
87
|
-
priorityFeeMultiplier: BigNumber;
|
|
88
|
-
}> = {}
|
|
89
|
-
): Promise<TransactionCostEstimate> {
|
|
90
|
-
const relayer = _relayer ? toAddressType(_relayer).forceSvmAddress() : this.simulatedRelayerAddress;
|
|
91
|
-
|
|
92
|
-
const fillRelayTx = await this.getFillRelayTx(deposit, relayer.toBase58());
|
|
93
|
-
|
|
94
|
-
const [computeUnitsConsumed, _gasPriceEstimate] = await Promise.all([
|
|
95
|
-
toBN(await this.computeUnitEstimator(fillRelayTx)),
|
|
96
|
-
getGasPriceEstimate(this.provider, {
|
|
97
|
-
unsignedTx: fillRelayTx,
|
|
98
|
-
baseFeeMultiplier: options.baseFeeMultiplier,
|
|
99
|
-
priorityFeeMultiplier: options.priorityFeeMultiplier,
|
|
100
|
-
}),
|
|
101
|
-
]);
|
|
102
|
-
|
|
103
|
-
// We can cast the gas price estimate to an SvmGasPriceEstimate here since the oracle should always
|
|
104
|
-
// query the Solana adapter.
|
|
105
|
-
const gasPriceEstimate = _gasPriceEstimate as SvmGasPriceEstimate;
|
|
106
|
-
const gasPrice = gasPriceEstimate.baseFee.add(
|
|
107
|
-
gasPriceEstimate.microLamportsPerComputeUnit.mul(computeUnitsConsumed).div(toBN(1_000_000)) // 1_000_000 microLamports/lamport.
|
|
108
|
-
);
|
|
109
|
-
|
|
110
|
-
return {
|
|
111
|
-
nativeGasCost: computeUnitsConsumed,
|
|
112
|
-
tokenGasCost: gasPrice,
|
|
113
|
-
gasPrice,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* @notice Return the gas cost of a simulated transaction
|
|
119
|
-
* @param fillRelayTx FillRelay transaction
|
|
120
|
-
* @param relayer SVM address of the relayer
|
|
121
|
-
* @returns Estimated gas cost in compute units
|
|
122
|
-
*/
|
|
123
|
-
async getNativeGasCost(
|
|
124
|
-
deposit: Omit<Deposit, "messageHash">,
|
|
125
|
-
_relayer = getDefaultSimulatedRelayerAddress(deposit.destinationChainId)
|
|
126
|
-
): Promise<BigNumber> {
|
|
127
|
-
const fillRelayTx = await this.getFillRelayTx(deposit, _relayer);
|
|
128
|
-
const computeUnitsConsumed = toBN(await this.computeUnitEstimator(fillRelayTx));
|
|
129
|
-
return computeUnitsConsumed;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* @notice Return the fillRelay transaction for a given deposit
|
|
134
|
-
* @param deposit
|
|
135
|
-
* @param relayer SVM address of the relayer
|
|
136
|
-
* @returns FillRelay transaction
|
|
137
|
-
*/
|
|
138
|
-
async getFillRelayTx(
|
|
139
|
-
deposit: Omit<Deposit, "messageHash">,
|
|
140
|
-
_relayer = getDefaultSimulatedRelayerAddress(deposit.destinationChainId)
|
|
141
|
-
) {
|
|
142
|
-
const relayer = _relayer ? toAddressType(_relayer).forceSvmAddress() : this.simulatedRelayerAddress;
|
|
143
|
-
// If the user did not have a token account created on destination, then we need to include this as a gas cost.
|
|
144
|
-
const mint = toAddressType(deposit.outputToken).forceSvmAddress();
|
|
145
|
-
const owner = toAddressType(deposit.recipient).forceSvmAddress();
|
|
146
|
-
const associatedToken = await getAssociatedTokenAddress(owner, mint);
|
|
147
|
-
const simulatedSigner = SolanaVoidSigner(relayer.toBase58());
|
|
148
|
-
|
|
149
|
-
// If the recipient has an associated token account on destination, then skip generating the instruction for creating a new token account.
|
|
150
|
-
let recipientCreateTokenAccountInstructions: IInstruction[] | undefined = undefined;
|
|
151
|
-
const [associatedTokenAccountExists, mintInfo] = await Promise.all([
|
|
152
|
-
(await fetchEncodedAccount(this.provider, associatedToken)).exists,
|
|
153
|
-
fetchMint(this.provider, mint.toV2Address()),
|
|
154
|
-
]);
|
|
155
|
-
if (!associatedTokenAccountExists) {
|
|
156
|
-
const space = BigInt(getMintSize());
|
|
157
|
-
const rent = await this.provider.getMinimumBalanceForRentExemption(space).send();
|
|
158
|
-
const createAccountIx = getCreateAccountInstruction({
|
|
159
|
-
payer: simulatedSigner,
|
|
160
|
-
newAccount: SolanaVoidSigner(mint.toBase58()),
|
|
161
|
-
lamports: rent,
|
|
162
|
-
space,
|
|
163
|
-
programAddress: TOKEN_PROGRAM_ADDRESS,
|
|
164
|
-
});
|
|
165
|
-
|
|
166
|
-
const initializeMintIx = getInitializeMintInstruction({
|
|
167
|
-
mint: mint.toV2Address(),
|
|
168
|
-
decimals: mintInfo.data.decimals,
|
|
169
|
-
mintAuthority: owner.toV2Address(),
|
|
170
|
-
});
|
|
171
|
-
recipientCreateTokenAccountInstructions = [createAccountIx, initializeMintIx];
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
const [createTokenAccountsIx, approveIx, fillIx] = await Promise.all([
|
|
175
|
-
createTokenAccountsInstruction(mint, simulatedSigner),
|
|
176
|
-
createApproveInstruction(
|
|
177
|
-
mint,
|
|
178
|
-
deposit.outputAmount,
|
|
179
|
-
this.simulatedRelayerAddress,
|
|
180
|
-
this.spokePoolAddress,
|
|
181
|
-
mintInfo.data.decimals
|
|
182
|
-
),
|
|
183
|
-
fillRelayInstruction(this.spokePoolAddress, deposit, simulatedSigner, associatedToken),
|
|
184
|
-
]);
|
|
185
|
-
|
|
186
|
-
// Get the most recent confirmed blockhash.
|
|
187
|
-
const recentBlockhash = await this.provider.getLatestBlockhash().send();
|
|
188
|
-
const fillRelayTx = pipe(
|
|
189
|
-
createTransactionMessage({ version: 0 }),
|
|
190
|
-
(tx) => setTransactionMessageFeePayer(relayer.toV2Address(), tx),
|
|
191
|
-
(tx) => setTransactionMessageLifetimeUsingBlockhash(recentBlockhash.value, tx),
|
|
192
|
-
(tx) =>
|
|
193
|
-
isDefined(recipientCreateTokenAccountInstructions)
|
|
194
|
-
? appendTransactionMessageInstructions(recipientCreateTokenAccountInstructions, tx)
|
|
195
|
-
: tx,
|
|
196
|
-
(tx) => appendTransactionMessageInstructions([createTokenAccountsIx, approveIx, fillIx], tx)
|
|
197
|
-
);
|
|
198
|
-
return fillRelayTx;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Retrieves the current price of a token
|
|
203
|
-
* @param tokenSymbol A valid [CoinGecko-ID](https://api.coingecko.com/api/v3/coins/list)
|
|
204
|
-
* @returns The resolved token price within the specified coingeckoBaseCurrency
|
|
205
|
-
*/
|
|
206
|
-
async getTokenPrice(tokenSymbol: string): Promise<number> {
|
|
207
|
-
if (!this.symbolMapping[tokenSymbol]) throw new Error(`${tokenSymbol} does not exist in mapping`);
|
|
208
|
-
const coingeckoInstance = Coingecko.get(this.logger, this.coingeckoProApiKey);
|
|
209
|
-
const [, price] = await coingeckoInstance.getCurrentPriceByContract(
|
|
210
|
-
this.symbolMapping[tokenSymbol].addresses[CHAIN_IDs.MAINNET],
|
|
211
|
-
this.coingeckoBaseCurrency
|
|
212
|
-
);
|
|
213
|
-
return price;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Resolves the number of decimal places a token can have
|
|
218
|
-
* @param tokenSymbol A valid Across-Enabled Token ID
|
|
219
|
-
* @returns The number of decimals of precision for the corresponding tokenSymbol
|
|
220
|
-
*/
|
|
221
|
-
getTokenDecimals(tokenSymbol: string): number {
|
|
222
|
-
if (!this.symbolMapping[tokenSymbol]) throw new Error(`${tokenSymbol} does not exist in mapping`);
|
|
223
|
-
return this.symbolMapping[tokenSymbol].decimals;
|
|
224
|
-
}
|
|
225
|
-
}
|
package/src/utils/BlockFinder.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
export type BlockFinderOpts = {
|
|
2
|
-
highBlock?: number;
|
|
3
|
-
highBlockOffset?: number;
|
|
4
|
-
blockRange?: number;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export type BlockTimeAverage = {
|
|
8
|
-
average: number;
|
|
9
|
-
blockRange: number;
|
|
10
|
-
timestamp: number;
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
export interface Block {
|
|
14
|
-
hash: string;
|
|
15
|
-
number: number;
|
|
16
|
-
timestamp: number;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type BlockFinderHints = {
|
|
20
|
-
lowBlock?: number;
|
|
21
|
-
highBlock?: number;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export abstract class BlockFinder<TBlock extends Block> {
|
|
25
|
-
abstract getBlockForTimestamp(timestamp: number | string, hints: BlockFinderHints): Promise<TBlock>;
|
|
26
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|