@hyperlane-xyz/sdk 31.0.1 → 31.2.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/README.md +1 -1
- package/dist/app/MultiProtocolApp.d.ts +7 -7
- package/dist/app/MultiProtocolApp.d.ts.map +1 -1
- package/dist/app/MultiProtocolApp.js +2 -2
- package/dist/app/MultiProtocolApp.js.map +1 -1
- package/dist/core/MultiProtocolCore.d.ts +4 -4
- package/dist/core/MultiProtocolCore.d.ts.map +1 -1
- package/dist/core/MultiProtocolCore.js.map +1 -1
- package/dist/core/adapters/AleoCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/AleoCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/AleoCoreAdapter.js.map +1 -1
- package/dist/core/adapters/CosmNativeCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/CosmNativeCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/CosmNativeCoreAdapter.js.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/CosmWasmCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/CosmWasmCoreAdapter.js.map +1 -1
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts +3 -3
- package/dist/core/adapters/CosmWasmIgpAdapter.d.ts.map +1 -1
- package/dist/core/adapters/CosmWasmIgpAdapter.js.map +1 -1
- package/dist/core/adapters/EvmCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/EvmCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/EvmCoreAdapter.js.map +1 -1
- package/dist/core/adapters/RadixCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/RadixCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/RadixCoreAdapter.js.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/SealevelCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/SealevelCoreAdapter.js.map +1 -1
- package/dist/core/adapters/StarknetCoreAdapter.d.ts +3 -3
- package/dist/core/adapters/StarknetCoreAdapter.d.ts.map +1 -1
- package/dist/core/adapters/StarknetCoreAdapter.js.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +12 -4
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/fork/types.d.ts +64 -64
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts +7 -7
- package/dist/gas/adapters/SealevelIgpAdapter.d.ts.map +1 -1
- package/dist/gas/adapters/SealevelIgpAdapter.js.map +1 -1
- package/dist/gas/utils.d.ts +2 -2
- package/dist/gas/utils.d.ts.map +1 -1
- package/dist/gas/utils.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts +3 -3
- package/dist/ism/adapters/CosmWasmMultisigAdapter.d.ts.map +1 -1
- package/dist/ism/adapters/CosmWasmMultisigAdapter.js.map +1 -1
- package/dist/ism/adapters/SealevelMultisigAdapter.d.ts +3 -3
- package/dist/ism/adapters/SealevelMultisigAdapter.d.ts.map +1 -1
- package/dist/ism/adapters/SealevelMultisigAdapter.js.map +1 -1
- package/dist/metadata/ChainMetadataResolver.d.ts +13 -0
- package/dist/metadata/ChainMetadataResolver.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataResolver.js +68 -0
- package/dist/metadata/ChainMetadataResolver.js.map +1 -0
- package/dist/metadata/ChainMetadataResolver.test.d.ts +2 -0
- package/dist/metadata/ChainMetadataResolver.test.d.ts.map +1 -0
- package/dist/metadata/ChainMetadataResolver.test.js +83 -0
- package/dist/metadata/ChainMetadataResolver.test.js.map +1 -0
- package/dist/providers/MinimalProviderRegistry.d.ts +41 -0
- package/dist/providers/MinimalProviderRegistry.d.ts.map +1 -0
- package/dist/providers/MinimalProviderRegistry.js +122 -0
- package/dist/providers/MinimalProviderRegistry.js.map +1 -0
- package/dist/providers/MultiProtocolProvider.d.ts +13 -55
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +34 -152
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.test.js +48 -0
- package/dist/providers/MultiProtocolProvider.test.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +1 -1
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +3 -1
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/MultiProvider.test.js +3 -3
- package/dist/providers/MultiProvider.test.js.map +1 -1
- package/dist/providers/MultiProviderAdapter.d.ts +31 -0
- package/dist/providers/MultiProviderAdapter.d.ts.map +1 -0
- package/dist/providers/MultiProviderAdapter.js +116 -0
- package/dist/providers/MultiProviderAdapter.js.map +1 -0
- package/dist/providers/ProviderType.d.ts +12 -7
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js +1 -1
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/builders/aleo.d.ts +4 -0
- package/dist/providers/builders/aleo.d.ts.map +1 -0
- package/dist/providers/builders/aleo.js +7 -0
- package/dist/providers/builders/aleo.js.map +1 -0
- package/dist/providers/builders/cosmos.d.ts +6 -0
- package/dist/providers/builders/cosmos.d.ts.map +1 -0
- package/dist/providers/builders/cosmos.js +27 -0
- package/dist/providers/builders/cosmos.js.map +1 -0
- package/dist/providers/builders/ethersV5.d.ts +8 -0
- package/dist/providers/builders/ethersV5.d.ts.map +1 -0
- package/dist/providers/builders/ethersV5.js +25 -0
- package/dist/providers/builders/ethersV5.js.map +1 -0
- package/dist/providers/builders/radix.d.ts +4 -0
- package/dist/providers/builders/radix.d.ts.map +1 -0
- package/dist/providers/builders/radix.js +14 -0
- package/dist/providers/builders/radix.js.map +1 -0
- package/dist/providers/builders/solana.d.ts +4 -0
- package/dist/providers/builders/solana.d.ts.map +1 -0
- package/dist/providers/builders/solana.js +11 -0
- package/dist/providers/builders/solana.js.map +1 -0
- package/dist/providers/builders/starknet.d.ts +4 -0
- package/dist/providers/builders/starknet.d.ts.map +1 -0
- package/dist/providers/builders/starknet.js +14 -0
- package/dist/providers/builders/starknet.js.map +1 -0
- package/dist/providers/builders/tron.d.ts +10 -0
- package/dist/providers/builders/tron.d.ts.map +1 -0
- package/dist/providers/builders/tron.js +19 -0
- package/dist/providers/builders/tron.js.map +1 -0
- package/dist/providers/builders/types.d.ts +6 -0
- package/dist/providers/builders/types.d.ts.map +1 -0
- package/dist/providers/builders/types.js +2 -0
- package/dist/providers/builders/types.js.map +1 -0
- package/dist/providers/builders/viem.d.ts +4 -0
- package/dist/providers/builders/viem.d.ts.map +1 -0
- package/dist/providers/builders/viem.js +24 -0
- package/dist/providers/builders/viem.js.map +1 -0
- package/dist/providers/builders/zksync.d.ts +7 -0
- package/dist/providers/builders/zksync.d.ts.map +1 -0
- package/dist/providers/builders/zksync.js +13 -0
- package/dist/providers/builders/zksync.js.map +1 -0
- package/dist/providers/defaultProviderBuilderMaps.d.ts +7 -0
- package/dist/providers/defaultProviderBuilderMaps.d.ts.map +1 -0
- package/dist/providers/defaultProviderBuilderMaps.js +36 -0
- package/dist/providers/defaultProviderBuilderMaps.js.map +1 -0
- package/dist/providers/providerBuilders.d.ts +11 -29
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +10 -153
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/providers/rpcHealthTest.js +1 -1
- package/dist/providers/rpcHealthTest.js.map +1 -1
- package/dist/providers/runtime/evm.d.ts +3 -0
- package/dist/providers/runtime/evm.d.ts.map +1 -0
- package/dist/providers/runtime/evm.js +11 -0
- package/dist/providers/runtime/evm.js.map +1 -0
- package/dist/router/MultiProtocolRouterApps.test.js.map +1 -1
- package/dist/router/adapters/EvmRouterAdapter.d.ts +3 -3
- package/dist/router/adapters/EvmRouterAdapter.d.ts.map +1 -1
- package/dist/router/adapters/EvmRouterAdapter.js.map +1 -1
- package/dist/router/adapters/SealevelRouterAdapter.d.ts +3 -3
- package/dist/router/adapters/SealevelRouterAdapter.d.ts.map +1 -1
- package/dist/router/adapters/SealevelRouterAdapter.js.map +1 -1
- package/dist/signers/cosmos/cosmjs.d.ts +2 -2
- package/dist/signers/cosmos/cosmjs.d.ts.map +1 -1
- package/dist/signers/cosmos/cosmjs.js.map +1 -1
- package/dist/signers/evm/ethersv5.d.ts +2 -2
- package/dist/signers/evm/ethersv5.d.ts.map +1 -1
- package/dist/signers/evm/ethersv5.js +1 -1
- package/dist/signers/evm/ethersv5.js.map +1 -1
- package/dist/signers/radix/radix-toolkit.d.ts +3 -3
- package/dist/signers/radix/radix-toolkit.d.ts.map +1 -1
- package/dist/signers/radix/radix-toolkit.js +1 -1
- package/dist/signers/radix/radix-toolkit.js.map +1 -1
- package/dist/signers/signers.d.ts +2 -2
- package/dist/signers/signers.d.ts.map +1 -1
- package/dist/signers/signers.js.map +1 -1
- package/dist/signers/starknet/starknetjs.d.ts +2 -2
- package/dist/signers/starknet/starknetjs.d.ts.map +1 -1
- package/dist/signers/starknet/starknetjs.js.map +1 -1
- package/dist/signers/svm/solana-web3js.d.ts +2 -2
- package/dist/signers/svm/solana-web3js.d.ts.map +1 -1
- package/dist/signers/svm/solana-web3js.js.map +1 -1
- package/dist/token/IToken.d.ts +14 -151
- package/dist/token/IToken.d.ts.map +1 -1
- package/dist/token/IToken.js +1 -43
- package/dist/token/IToken.js.map +1 -1
- package/dist/token/ITokenMetadata.d.ts +182 -0
- package/dist/token/ITokenMetadata.d.ts.map +1 -0
- package/dist/token/ITokenMetadata.js +46 -0
- package/dist/token/ITokenMetadata.js.map +1 -0
- package/dist/token/Token.d.ts +15 -49
- package/dist/token/Token.d.ts.map +1 -1
- package/dist/token/Token.js +48 -312
- package/dist/token/Token.js.map +1 -1
- package/dist/token/Token.test.js +52 -10
- package/dist/token/Token.test.js.map +1 -1
- package/dist/token/TokenAmount.d.ts +6 -6
- package/dist/token/TokenAmount.d.ts.map +1 -1
- package/dist/token/TokenConnection.d.ts +7 -7
- package/dist/token/TokenConnection.d.ts.map +1 -1
- package/dist/token/TokenConnection.js +1 -1
- package/dist/token/TokenConnection.js.map +1 -1
- package/dist/token/TokenConnection.test.d.ts +2 -0
- package/dist/token/TokenConnection.test.d.ts.map +1 -0
- package/dist/token/TokenConnection.test.js +17 -0
- package/dist/token/TokenConnection.test.js.map +1 -0
- package/dist/token/TokenMetadata.d.ts +42 -0
- package/dist/token/TokenMetadata.d.ts.map +1 -0
- package/dist/token/TokenMetadata.js +119 -0
- package/dist/token/TokenMetadata.js.map +1 -0
- package/dist/token/adapters/AleoTokenAdapter.d.ts +7 -6
- package/dist/token/adapters/AleoTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/AleoTokenAdapter.js +1 -1
- package/dist/token/adapters/AleoTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +11 -11
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts +6 -6
- package/dist/token/adapters/CosmosModuleTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosModuleTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +7 -7
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts +3 -3
- package/dist/token/adapters/EvmCrossCollateralAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmCrossCollateralAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +21 -21
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/M0PortalLiteTokenAdapter.d.ts +2 -2
- package/dist/token/adapters/M0PortalLiteTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/M0PortalLiteTokenAdapter.js.map +1 -1
- package/dist/token/adapters/M0PortalTokenAdapter.d.ts +2 -2
- package/dist/token/adapters/M0PortalTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/M0PortalTokenAdapter.js.map +1 -1
- package/dist/token/adapters/RadixTokenAdapter.d.ts +7 -6
- package/dist/token/adapters/RadixTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/RadixTokenAdapter.js.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +7 -7
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/adapters/StarknetTokenAdapter.d.ts +10 -10
- package/dist/token/adapters/StarknetTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/StarknetTokenAdapter.js.map +1 -1
- package/dist/token/adapters/aleoHyp.d.ts +7 -0
- package/dist/token/adapters/aleoHyp.d.ts.map +1 -0
- package/dist/token/adapters/aleoHyp.js +26 -0
- package/dist/token/adapters/aleoHyp.js.map +1 -0
- package/dist/token/adapters/cosmosHyp.d.ts +7 -0
- package/dist/token/adapters/cosmosHyp.d.ts.map +1 -0
- package/dist/token/adapters/cosmosHyp.js +40 -0
- package/dist/token/adapters/cosmosHyp.js.map +1 -0
- package/dist/token/adapters/evmHyp.d.ts +7 -0
- package/dist/token/adapters/evmHyp.d.ts.map +1 -0
- package/dist/token/adapters/evmHyp.js +23 -0
- package/dist/token/adapters/evmHyp.js.map +1 -0
- package/dist/token/adapters/evmLikeHyp.d.ts +19 -0
- package/dist/token/adapters/evmLikeHyp.d.ts.map +1 -0
- package/dist/token/adapters/evmLikeHyp.js +61 -0
- package/dist/token/adapters/evmLikeHyp.js.map +1 -0
- package/dist/token/adapters/hypTokenAdapterUtils.d.ts +15 -0
- package/dist/token/adapters/hypTokenAdapterUtils.d.ts.map +1 -0
- package/dist/token/adapters/hypTokenAdapterUtils.js +9 -0
- package/dist/token/adapters/hypTokenAdapterUtils.js.map +1 -0
- package/dist/token/adapters/radixHyp.d.ts +7 -0
- package/dist/token/adapters/radixHyp.d.ts.map +1 -0
- package/dist/token/adapters/radixHyp.js +22 -0
- package/dist/token/adapters/radixHyp.js.map +1 -0
- package/dist/token/adapters/sealevelHyp.d.ts +7 -0
- package/dist/token/adapters/sealevelHyp.d.ts.map +1 -0
- package/dist/token/adapters/sealevelHyp.js +38 -0
- package/dist/token/adapters/sealevelHyp.js.map +1 -0
- package/dist/token/adapters/starknetHyp.d.ts +7 -0
- package/dist/token/adapters/starknetHyp.d.ts.map +1 -0
- package/dist/token/adapters/starknetHyp.js +35 -0
- package/dist/token/adapters/starknetHyp.js.map +1 -0
- package/dist/token/adapters/tronHyp.d.ts +7 -0
- package/dist/token/adapters/tronHyp.d.ts.map +1 -0
- package/dist/token/adapters/tronHyp.js +23 -0
- package/dist/token/adapters/tronHyp.js.map +1 -0
- package/dist/utils/cosmos.d.ts +3 -3
- package/dist/utils/decimals.d.ts +8 -0
- package/dist/utils/decimals.d.ts.map +1 -1
- package/dist/utils/decimals.js +42 -0
- package/dist/utils/decimals.js.map +1 -1
- package/dist/utils/decimals.test.js +52 -1
- package/dist/utils/decimals.test.js.map +1 -1
- package/dist/warp/WarpCore.d.ts +43 -43
- package/dist/warp/WarpCore.d.ts.map +1 -1
- package/dist/warp/WarpCore.js +82 -84
- package/dist/warp/WarpCore.js.map +1 -1
- package/dist/warp/WarpCore.test.js +245 -6
- package/dist/warp/WarpCore.test.js.map +1 -1
- package/dist/warp/read.d.ts +19 -0
- package/dist/warp/read.d.ts.map +1 -0
- package/dist/warp/read.js +34 -0
- package/dist/warp/read.js.map +1 -0
- package/dist/warp/read.test.d.ts +2 -0
- package/dist/warp/read.test.d.ts.map +1 -0
- package/dist/warp/read.test.js +56 -0
- package/dist/warp/read.test.js.map +1 -0
- package/dist/warp/types.d.ts +50 -8
- package/dist/warp/types.d.ts.map +1 -1
- package/dist/zksync/ZKSyncDeployer.js +1 -1
- package/dist/zksync/ZKSyncDeployer.js.map +1 -1
- package/package.json +98 -11
package/dist/warp/WarpCore.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Logger } from 'pino';
|
|
2
2
|
import { Address, HexString } from '@hyperlane-xyz/utils';
|
|
3
|
-
import {
|
|
3
|
+
import type { MultiProviderAdapter } from '../providers/MultiProviderAdapter.js';
|
|
4
4
|
import { TransactionFeeEstimate } from '../providers/transactionFeeEstimators.js';
|
|
5
5
|
import { IToken } from '../token/IToken.js';
|
|
6
6
|
import { Token } from '../token/Token.js';
|
|
@@ -16,7 +16,7 @@ export interface WarpCoreOptions {
|
|
|
16
16
|
routeBlacklist?: RouteBlacklist;
|
|
17
17
|
}
|
|
18
18
|
export declare class WarpCore {
|
|
19
|
-
readonly multiProvider:
|
|
19
|
+
readonly multiProvider: MultiProviderAdapter<{
|
|
20
20
|
mailbox?: Address;
|
|
21
21
|
}>;
|
|
22
22
|
readonly tokens: Token[];
|
|
@@ -24,15 +24,15 @@ export declare class WarpCore {
|
|
|
24
24
|
readonly interchainFeeConstants: FeeConstantConfig;
|
|
25
25
|
readonly routeBlacklist: RouteBlacklist;
|
|
26
26
|
readonly logger: Logger;
|
|
27
|
-
constructor(multiProvider:
|
|
27
|
+
constructor(multiProvider: MultiProviderAdapter<{
|
|
28
28
|
mailbox?: Address;
|
|
29
29
|
}>, tokens: Token[], options?: WarpCoreOptions);
|
|
30
30
|
/**
|
|
31
31
|
* Takes the serialized representation of a warp config and returns a WarpCore instance
|
|
32
|
-
* @param multiProvider the
|
|
32
|
+
* @param multiProvider the MultiProviderAdapter containing chain metadata
|
|
33
33
|
* @param config the config object of type WarpCoreConfig
|
|
34
34
|
*/
|
|
35
|
-
static FromConfig(multiProvider:
|
|
35
|
+
static FromConfig(multiProvider: MultiProviderAdapter<{
|
|
36
36
|
mailbox?: Address;
|
|
37
37
|
}>, config: unknown): WarpCore;
|
|
38
38
|
/**
|
|
@@ -41,14 +41,14 @@ export declare class WarpCore {
|
|
|
41
41
|
* Sender is only required for Sealevel origins.
|
|
42
42
|
*/
|
|
43
43
|
getInterchainTransferFee({ originTokenAmount, destination, sender, recipient, destinationToken, }: {
|
|
44
|
-
originTokenAmount: TokenAmount
|
|
44
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
45
45
|
destination: ChainNameOrId;
|
|
46
46
|
sender?: Address;
|
|
47
47
|
recipient: Address;
|
|
48
48
|
destinationToken?: IToken;
|
|
49
49
|
}): Promise<{
|
|
50
|
-
igpQuote: TokenAmount
|
|
51
|
-
tokenFeeQuote?: TokenAmount
|
|
50
|
+
igpQuote: TokenAmount<IToken>;
|
|
51
|
+
tokenFeeQuote?: TokenAmount<IToken>;
|
|
52
52
|
}>;
|
|
53
53
|
/**
|
|
54
54
|
* Simulates a transfer to estimate 'local' gas fees on the origin chain
|
|
@@ -58,8 +58,8 @@ export declare class WarpCore {
|
|
|
58
58
|
destination: ChainNameOrId;
|
|
59
59
|
sender: Address;
|
|
60
60
|
senderPubKey?: HexString;
|
|
61
|
-
interchainFee?: TokenAmount
|
|
62
|
-
tokenFeeQuote?: TokenAmount
|
|
61
|
+
interchainFee?: TokenAmount<IToken>;
|
|
62
|
+
tokenFeeQuote?: TokenAmount<IToken>;
|
|
63
63
|
destinationToken?: IToken;
|
|
64
64
|
}): Promise<TransactionFeeEstimate>;
|
|
65
65
|
/**
|
|
@@ -72,21 +72,21 @@ export declare class WarpCore {
|
|
|
72
72
|
destination: ChainNameOrId;
|
|
73
73
|
sender: Address;
|
|
74
74
|
senderPubKey?: HexString;
|
|
75
|
-
interchainFee?: TokenAmount
|
|
76
|
-
tokenFeeQuote?: TokenAmount
|
|
75
|
+
interchainFee?: TokenAmount<IToken>;
|
|
76
|
+
tokenFeeQuote?: TokenAmount<IToken>;
|
|
77
77
|
destinationToken?: IToken;
|
|
78
|
-
}): Promise<TokenAmount
|
|
78
|
+
}): Promise<TokenAmount<IToken>>;
|
|
79
79
|
/**
|
|
80
80
|
* Gets a list of populated transactions required to transfer a token to a remote chain
|
|
81
81
|
* Typically just 1 transaction but sometimes more, like when an approval is required first
|
|
82
82
|
*/
|
|
83
83
|
getTransferRemoteTxs({ originTokenAmount, destination, sender, recipient, interchainFee, tokenFeeQuote, destinationToken, quotedCalls, }: {
|
|
84
|
-
originTokenAmount: TokenAmount
|
|
84
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
85
85
|
destination: ChainNameOrId;
|
|
86
86
|
sender: Address;
|
|
87
87
|
recipient: Address;
|
|
88
|
-
interchainFee?: TokenAmount
|
|
89
|
-
tokenFeeQuote?: TokenAmount
|
|
88
|
+
interchainFee?: TokenAmount<IToken>;
|
|
89
|
+
tokenFeeQuote?: TokenAmount<IToken>;
|
|
90
90
|
destinationToken?: IToken;
|
|
91
91
|
/** When provided, builds an atomic QuotedCalls.execute() tx instead of separate approve+transfer */
|
|
92
92
|
quotedCalls?: QuotedCallsParams;
|
|
@@ -102,7 +102,7 @@ export declare class WarpCore {
|
|
|
102
102
|
* Same-chain: calls handle() directly on target router (atomic, no relay needed).
|
|
103
103
|
*/
|
|
104
104
|
protected getCrossCollateralTransferTxs({ originTokenAmount, destination, sender, recipient, destinationToken, }: {
|
|
105
|
-
originTokenAmount: TokenAmount
|
|
105
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
106
106
|
destination: ChainNameOrId;
|
|
107
107
|
sender: Address;
|
|
108
108
|
recipient: Address;
|
|
@@ -112,7 +112,7 @@ export declare class WarpCore {
|
|
|
112
112
|
* Resolve common params for QuotedCalls operations.
|
|
113
113
|
*/
|
|
114
114
|
protected resolveQuotedCallsParams({ originTokenAmount, destination, recipient, quotedCalls, destinationToken, }: {
|
|
115
|
-
originTokenAmount: TokenAmount
|
|
115
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
116
116
|
destination: ChainNameOrId;
|
|
117
117
|
recipient: Address;
|
|
118
118
|
quotedCalls: QuotedCallsParams;
|
|
@@ -134,15 +134,15 @@ export declare class WarpCore {
|
|
|
134
134
|
* the raw Quote[][] needed to build the execute tx.
|
|
135
135
|
*/
|
|
136
136
|
getQuotedTransferFee({ originTokenAmount, destination, sender, recipient, quotedCalls, destinationToken, }: {
|
|
137
|
-
originTokenAmount: TokenAmount
|
|
137
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
138
138
|
destination: ChainNameOrId;
|
|
139
139
|
sender: Address;
|
|
140
140
|
recipient: Address;
|
|
141
141
|
quotedCalls: QuotedCallsParams;
|
|
142
142
|
destinationToken?: IToken;
|
|
143
143
|
}): Promise<{
|
|
144
|
-
igpQuote: TokenAmount
|
|
145
|
-
tokenFeeQuote?: TokenAmount
|
|
144
|
+
igpQuote: TokenAmount<IToken>;
|
|
145
|
+
tokenFeeQuote?: TokenAmount<IToken>;
|
|
146
146
|
/** Raw per-command quotes — pass to getTransferRemoteTxs */
|
|
147
147
|
feeQuotes: Quote[][];
|
|
148
148
|
}>;
|
|
@@ -154,7 +154,7 @@ export declare class WarpCore {
|
|
|
154
154
|
* If not provided, calls quoteExecute internally.
|
|
155
155
|
*/
|
|
156
156
|
protected getQuotedCallsTransferTxs({ originTokenAmount, destination, sender, recipient, quotedCalls, destinationToken, feeQuotes, }: {
|
|
157
|
-
originTokenAmount: TokenAmount
|
|
157
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
158
158
|
destination: ChainNameOrId;
|
|
159
159
|
sender: Address;
|
|
160
160
|
recipient: Address;
|
|
@@ -166,7 +166,7 @@ export declare class WarpCore {
|
|
|
166
166
|
* Fetch local and interchain fee estimates for a remote transfer
|
|
167
167
|
*/
|
|
168
168
|
estimateTransferRemoteFees({ originTokenAmount, destination, recipient, sender, senderPubKey, destinationToken, }: {
|
|
169
|
-
originTokenAmount: TokenAmount
|
|
169
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
170
170
|
destination: ChainNameOrId;
|
|
171
171
|
recipient: Address;
|
|
172
172
|
sender: Address;
|
|
@@ -177,7 +177,7 @@ export declare class WarpCore {
|
|
|
177
177
|
* Estimate fees for a CrossCollateralRouter transfer.
|
|
178
178
|
*/
|
|
179
179
|
protected estimateCrossCollateralFees({ originTokenAmount, destination, destinationToken, recipient, sender, senderPubKey, }: {
|
|
180
|
-
originTokenAmount: TokenAmount
|
|
180
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
181
181
|
destination: ChainNameOrId;
|
|
182
182
|
destinationToken: IToken;
|
|
183
183
|
recipient: Address;
|
|
@@ -189,20 +189,20 @@ export declare class WarpCore {
|
|
|
189
189
|
* token balance, accounting for local and interchain gas fees
|
|
190
190
|
*/
|
|
191
191
|
getMaxTransferAmount({ balance, destination, recipient, sender, senderPubKey, feeEstimate, destinationToken, }: {
|
|
192
|
-
balance: TokenAmount
|
|
192
|
+
balance: TokenAmount<IToken>;
|
|
193
193
|
destination: ChainNameOrId;
|
|
194
194
|
recipient: Address;
|
|
195
195
|
sender: Address;
|
|
196
196
|
senderPubKey?: HexString;
|
|
197
197
|
feeEstimate?: WarpCoreFeeEstimate;
|
|
198
198
|
destinationToken?: IToken;
|
|
199
|
-
}): Promise<TokenAmount
|
|
199
|
+
}): Promise<TokenAmount<IToken>>;
|
|
200
200
|
getTokenCollateral(token: IToken): Promise<bigint>;
|
|
201
201
|
/**
|
|
202
202
|
* Checks if destination chain's collateral is sufficient to cover the transfer
|
|
203
203
|
*/
|
|
204
204
|
isDestinationCollateralSufficient({ originTokenAmount, destination, destinationToken, }: {
|
|
205
|
-
originTokenAmount: TokenAmount
|
|
205
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
206
206
|
destination: ChainNameOrId;
|
|
207
207
|
destinationToken?: IToken;
|
|
208
208
|
}): Promise<boolean>;
|
|
@@ -210,14 +210,14 @@ export declare class WarpCore {
|
|
|
210
210
|
* Checks if a token transfer requires an approval tx first
|
|
211
211
|
*/
|
|
212
212
|
isApproveRequired({ originTokenAmount, owner, }: {
|
|
213
|
-
originTokenAmount: TokenAmount
|
|
213
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
214
214
|
owner: Address;
|
|
215
215
|
}): Promise<boolean>;
|
|
216
216
|
/**
|
|
217
217
|
* Ensure the remote token transfer would be valid for the given chains, amount, sender, and recipient
|
|
218
218
|
*/
|
|
219
219
|
validateTransfer({ originTokenAmount, destination, recipient, sender, senderPubKey, destinationToken, }: {
|
|
220
|
-
originTokenAmount: TokenAmount
|
|
220
|
+
originTokenAmount: TokenAmount<IToken>;
|
|
221
221
|
destination: ChainNameOrId;
|
|
222
222
|
recipient: Address;
|
|
223
223
|
sender: Address;
|
|
@@ -235,23 +235,11 @@ export declare class WarpCore {
|
|
|
235
235
|
/**
|
|
236
236
|
* Ensure token amount is valid
|
|
237
237
|
*/
|
|
238
|
-
protected validateAmount(originTokenAmount: TokenAmount
|
|
238
|
+
protected validateAmount(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, recipient: Address, destinationToken?: IToken): Promise<Record<string, string> | null>;
|
|
239
239
|
/**
|
|
240
240
|
* Ensure the sender has sufficient balances for transfer and interchain gas
|
|
241
241
|
*/
|
|
242
|
-
protected validateTokenBalances(originTokenAmount: TokenAmount
|
|
243
|
-
/**
|
|
244
|
-
* Ensure the sender has sufficient balances for transfer and interchain gas
|
|
245
|
-
*/
|
|
246
|
-
protected validateDestinationCollateral(originTokenAmount: TokenAmount, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
|
|
247
|
-
/**
|
|
248
|
-
* Ensure the sender has sufficient balances for minting
|
|
249
|
-
*/
|
|
250
|
-
protected validateDestinationRateLimit(originTokenAmount: TokenAmount, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
|
|
251
|
-
/**
|
|
252
|
-
* Ensure the sender has sufficient balances for transfer and interchain gas
|
|
253
|
-
*/
|
|
254
|
-
protected validateOriginCollateral(originTokenAmount: TokenAmount): Promise<Record<string, string> | null>;
|
|
242
|
+
protected validateTokenBalances(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, sender: Address, recipient: Address, senderPubKey?: HexString, destinationToken?: IToken): Promise<Record<string, string> | null>;
|
|
255
243
|
protected resolveDestinationToken({ originToken, destination, destinationToken, }: {
|
|
256
244
|
originToken: IToken;
|
|
257
245
|
destination: ChainNameOrId;
|
|
@@ -274,5 +262,17 @@ export declare class WarpCore {
|
|
|
274
262
|
* and which are connected to a token on the given destination chain
|
|
275
263
|
*/
|
|
276
264
|
getTokensForRoute(origin: ChainName, destination: ChainName): Token[];
|
|
265
|
+
/**
|
|
266
|
+
* Ensure the sender has sufficient balances for transfer and interchain gas
|
|
267
|
+
*/
|
|
268
|
+
protected validateDestinationCollateral(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
|
|
269
|
+
/**
|
|
270
|
+
* Ensure the sender has sufficient balances for minting
|
|
271
|
+
*/
|
|
272
|
+
protected validateDestinationRateLimit(originTokenAmount: TokenAmount<IToken>, destination: ChainNameOrId, destinationToken?: IToken): Promise<Record<string, string> | null>;
|
|
273
|
+
/**
|
|
274
|
+
* Ensure the sender has sufficient balances for transfer and interchain gas
|
|
275
|
+
*/
|
|
276
|
+
protected validateOriginCollateral(originTokenAmount: TokenAmount<IToken>): Promise<Record<string, string> | null>;
|
|
277
277
|
}
|
|
278
278
|
//# sourceMappingURL=WarpCore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WarpCore.d.ts","sourceRoot":"","sources":["../../src/warp/WarpCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EACL,OAAO,EACP,SAAS,
|
|
1
|
+
{"version":3,"file":"WarpCore.d.ts","sourceRoot":"","sources":["../../src/warp/WarpCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EACL,OAAO,EACP,SAAS,EAWV,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EACL,sBAAsB,EAEvB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAwBtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAKtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGvD,OAAO,EACL,iBAAiB,EACjB,cAAc,EAEd,mBAAmB,EAEnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;IAC3C,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,qBAAa,QAAQ;IACnB,SAAgB,aAAa,EAAE,oBAAoB,CAAC;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E,SAAgB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChC,SAAgB,iBAAiB,EAAE,iBAAiB,CAAC;IACrD,SAAgB,sBAAsB,EAAE,iBAAiB,CAAC;IAC1D,SAAgB,cAAc,EAAE,cAAc,CAAC;IAC/C,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAG7B,aAAa,EAAE,oBAAoB,CAAC;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,EAC1D,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,CAAC,EAAE,eAAe;IAc3B;;;;OAIG;IACH,MAAM,CAAC,UAAU,CACf,aAAa,EAAE,oBAAoB,CAAC;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,EAC1D,MAAM,EAAE,OAAO,GACd,QAAQ;IAwCX;;;;OAIG;IACG,wBAAwB,CAAC,EAC7B,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,SAAS,EACT,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QACV,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KACrC,CAAC;IAoGF;;OAEG;IACG,mBAAmB,CAAC,EACxB,WAAW,EACX,WAAW,EACX,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,EAAE;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAqFnC;;;;OAIG;IACG,yBAAyB,CAAC,EAC9B,WAAW,EACX,WAAW,EACX,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,EAAE;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IA4BhC;;;OAGG;IACG,oBAAoB,CAAC,EACzB,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,WAAW,GACZ,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,oGAAoG;QACpG,WAAW,CAAC,EAAE,iBAAiB,CAAC;KACjC,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IA6KxC;;;OAGG;IACH,SAAS,CAAC,yBAAyB,CACjC,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,GACxB,gBAAgB,IAAI,MAAM;IAQ7B;;;;OAIG;cACa,6BAA6B,CAAC,EAC5C,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,SAAS,EACT,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAyGxC;;OAEG;IACH,SAAS,CAAC,wBAAwB,CAAC,EACjC,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,WAAW,EACX,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,iBAAiB,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;;mBAwCsC,KAAK,MAAM,EAAE;;mBAEN,KAAK,MAAM,EAAE;;;;;;;IAS3D;;;;OAIG;IACG,oBAAoB,CAAC,EACzB,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,iBAAiB,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QACV,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,4DAA4D;QAC5D,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;KACtB,CAAC;IAyDF;;;;;;OAMG;cACa,yBAAyB,CAAC,EACxC,iBAAiB,EACjB,WAAW,EACX,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,SAAS,GACV,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,WAAW,EAAE,iBAAiB,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IA+FxC;;OAEG;IACG,0BAA0B,CAAC,EAC/B,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,MAAM,EACN,YAAY,EACZ,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA2ChC;;OAEG;cACa,2BAA2B,CAAC,EAC1C,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,MAAM,EACN,YAAY,GACb,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,CAAC;KAC1B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkChC;;;OAGG;IACG,oBAAoB,CAAC,EACzB,OAAO,EACP,WAAW,EACX,SAAS,EACT,MAAM,EACN,YAAY,EACZ,WAAW,EACX,gBAAgB,GACjB,EAAE;QACD,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7B,WAAW,EAAE,aAAa,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,WAAW,CAAC,EAAE,mBAAmB,CAAC;QAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IA0C1B,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAcxD;;OAEG;IACG,iCAAiC,CAAC,EACtC,iBAAiB,EACjB,WAAW,EACX,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,OAAO,CAAC;IAuEpB;;OAEG;IACG,iBAAiB,CAAC,EACtB,iBAAiB,EACjB,KAAK,GACN,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpB;;OAEG;IACG,gBAAgB,CAAC,EACrB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,MAAM,EACN,YAAY,EACZ,gBAAgB,GACjB,EAAE;QACD,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACvC,WAAW,EAAE,aAAa,CAAC;QAC3B,SAAS,EAAE,OAAO,CAAC;QACnB,MAAM,EAAE,OAAO,CAAC;QAChB,YAAY,CAAC,EAAE,SAAS,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAkE1C;;OAEG;IACH,SAAS,CAAC,cAAc,CACtB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,aAAa,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAqBhC;;OAEG;IACH,SAAS,CAAC,iBAAiB,CACzB,SAAS,EAAE,OAAO,EAClB,WAAW,EAAE,aAAa,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAwBhC;;OAEG;cACa,cAAc,CAC5B,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,aAAa,EAC1B,SAAS,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IA2CzC;;OAEG;cACa,qBAAqB,CACnC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,aAAa,EAC1B,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,SAAS,EACxB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IA4EzC,SAAS,CAAC,uBAAuB,CAAC,EAChC,WAAW,EACX,WAAW,EACX,gBAAgB,GACjB,EAAE;QACD,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,aAAa,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,MAAM;IAuCV;;OAEG;IACH,SAAS,CACP,SAAS,EAAE,SAAS,EACpB,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAChC,KAAK,GAAG,IAAI;IAsBf;;OAEG;IACH,cAAc,IAAI,SAAS,EAAE;IAI7B;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE;IAIhD;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,KAAK,EAAE;IAOrE;;OAEG;cACa,6BAA6B,CAC3C,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,aAAa,EAC1B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAazC;;OAEG;cACa,4BAA4B,CAC1C,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,aAAa,EAC1B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAmEzC;;OAEG;cACa,wBAAwB,CACtC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;CAiB1C"}
|
package/dist/warp/WarpCore.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { ProtocolType, addressToBytes32, assert, convertDecimalsToIntegerString, convertToProtocolAddress,
|
|
1
|
+
import { ProtocolType, addressToBytes32, assert, convertDecimalsToIntegerString, convertToProtocolAddress, isEVMLike, isValidAddress, isZeroishAddress, rootLogger, } from '@hyperlane-xyz/utils';
|
|
2
2
|
import { Keypair } from '@solana/web3.js';
|
|
3
3
|
import { ProviderType } from '../providers/ProviderType.js';
|
|
4
4
|
import { estimateTransactionFeeEthersV5ForGasUnits, } from '../providers/transactionFeeEstimators.js';
|
|
5
5
|
import { Token } from '../token/Token.js';
|
|
6
6
|
import { TokenAmount } from '../token/TokenAmount.js';
|
|
7
7
|
import { parseTokenConnectionId } from '../token/TokenConnection.js';
|
|
8
|
+
import { tokenIdentifiersEqual } from '../token/TokenMetadata.js';
|
|
8
9
|
import { LOCKBOX_STANDARDS, MINT_LIMITED_STANDARDS, TOKEN_COLLATERALIZED_STANDARDS, TOKEN_STANDARD_TO_PROVIDER_TYPE, TokenStandard, } from '../token/TokenStandard.js';
|
|
9
10
|
import { EVM_TRANSFER_REMOTE_GAS_ESTIMATE, } from '../token/adapters/EvmTokenAdapter.js';
|
|
10
11
|
import { isHypCrossCollateralAdapter, } from '../token/adapters/ITokenAdapter.js';
|
|
11
12
|
import { buildExecuteCalldata, buildQuoteCalldata, } from '../quoted-calls/builder.js';
|
|
12
13
|
import { decodeQuoteExecuteResult, extractQuoteTotals, } from '../quoted-calls/codec.js';
|
|
13
14
|
import { TokenPullMode } from '../quoted-calls/types.js';
|
|
15
|
+
import { messageAmountFromLocal } from '../utils/decimals.js';
|
|
14
16
|
import { WarpCoreConfigSchema, WarpTxCategory, } from './types.js';
|
|
15
17
|
export class WarpCore {
|
|
16
18
|
multiProvider;
|
|
@@ -33,28 +35,26 @@ export class WarpCore {
|
|
|
33
35
|
}
|
|
34
36
|
/**
|
|
35
37
|
* Takes the serialized representation of a warp config and returns a WarpCore instance
|
|
36
|
-
* @param multiProvider the
|
|
38
|
+
* @param multiProvider the MultiProviderAdapter containing chain metadata
|
|
37
39
|
* @param config the config object of type WarpCoreConfig
|
|
38
40
|
*/
|
|
39
41
|
static FromConfig(multiProvider, config) {
|
|
40
|
-
// Validate and parse config data
|
|
41
42
|
const parsedConfig = WarpCoreConfigSchema.parse(config);
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
addressOrDenom: t.addressOrDenom || '',
|
|
43
|
+
const tokens = parsedConfig.tokens.map((token) => new Token({
|
|
44
|
+
...token,
|
|
45
|
+
addressOrDenom: token.addressOrDenom || '',
|
|
46
46
|
connections: undefined,
|
|
47
47
|
}));
|
|
48
|
-
// Connect tokens together
|
|
49
48
|
parsedConfig.tokens.forEach((config, i) => {
|
|
50
49
|
for (const connection of config.connections || []) {
|
|
51
50
|
const token1 = tokens[i];
|
|
51
|
+
assert(token1, `Token config missing at index ${i}`);
|
|
52
52
|
const { chainName, addressOrDenom } = parseTokenConnectionId(connection.token);
|
|
53
53
|
// If token1 has a warpRouteId, token2 must share it — disambiguates
|
|
54
54
|
// tokens at the same address (e.g. M0 Portal: mUSD, wM, USDSC)
|
|
55
|
-
const token2 = tokens.find((
|
|
56
|
-
|
|
57
|
-
(!token1.warpRouteId ||
|
|
55
|
+
const token2 = tokens.find((token) => token.chainName === chainName &&
|
|
56
|
+
tokenIdentifiersEqual(token.addressOrDenom, addressOrDenom) &&
|
|
57
|
+
(!token1.warpRouteId || token.warpRouteId === token1.warpRouteId));
|
|
58
58
|
assert(token2, `Connected token not found: ${chainName} ${addressOrDenom}`);
|
|
59
59
|
token1.addConnection({
|
|
60
60
|
...connection,
|
|
@@ -62,7 +62,6 @@ export class WarpCore {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
});
|
|
65
|
-
// Create new Warp
|
|
66
65
|
return new WarpCore(multiProvider, tokens, parsedConfig.options);
|
|
67
66
|
}
|
|
68
67
|
/**
|
|
@@ -788,22 +787,24 @@ export class WarpCore {
|
|
|
788
787
|
return true;
|
|
789
788
|
}
|
|
790
789
|
const destinationBalance = await this.getTokenCollateral(resolvedDestinationToken);
|
|
791
|
-
|
|
792
|
-
//
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
790
|
+
// Legacy fallback: when both scales are undefined but decimals differ,
|
|
791
|
+
// we can't use message-space comparison because messageAmountFromLocal
|
|
792
|
+
// with identity scale would compare raw local units across different
|
|
793
|
+
// decimal spaces. Fall back to decimal conversion instead.
|
|
794
|
+
// Well-configured routes should have scale set — verifyScale() catches
|
|
795
|
+
// this at deploy time. Misconfigured routes that reach the message-space
|
|
796
|
+
// path below may produce incorrect results.
|
|
797
|
+
if (originToken.decimals !== resolvedDestinationToken.decimals &&
|
|
798
|
+
originToken.scale === undefined &&
|
|
799
|
+
resolvedDestinationToken.scale === undefined) {
|
|
800
|
+
const destinationBalanceInOriginDecimals = BigInt(convertDecimalsToIntegerString(resolvedDestinationToken.decimals, originToken.decimals, destinationBalance.toString()));
|
|
801
|
+
const isSufficient = destinationBalanceInOriginDecimals >= amount;
|
|
802
|
+
this.logger.debug(`${originTokenAmount.token.symbol} to ${destination} has ${isSufficient ? 'sufficient' : 'INSUFFICIENT'} collateral`);
|
|
803
|
+
return isSufficient;
|
|
805
804
|
}
|
|
806
|
-
const
|
|
805
|
+
const requiredMessageAmount = messageAmountFromLocal(amount, originToken.scale);
|
|
806
|
+
const availableMessageAmount = messageAmountFromLocal(destinationBalance, resolvedDestinationToken.scale);
|
|
807
|
+
const isSufficient = availableMessageAmount >= requiredMessageAmount;
|
|
807
808
|
this.logger.debug(`${originTokenAmount.token.symbol} to ${destination} has ${isSufficient ? 'sufficient' : 'INSUFFICIENT'} collateral`);
|
|
808
809
|
return isSufficient;
|
|
809
810
|
}
|
|
@@ -992,6 +993,60 @@ export class WarpCore {
|
|
|
992
993
|
}
|
|
993
994
|
return null;
|
|
994
995
|
}
|
|
996
|
+
resolveDestinationToken({ originToken, destination, destinationToken, }) {
|
|
997
|
+
const destinationName = this.multiProvider.getChainName(destination);
|
|
998
|
+
const destinationCandidates = originToken
|
|
999
|
+
.getConnections()
|
|
1000
|
+
.filter((connection) => connection.token.chainName === destinationName)
|
|
1001
|
+
.map((connection) => connection.token);
|
|
1002
|
+
assert(destinationCandidates.length > 0, `No connection found for ${destinationName}`);
|
|
1003
|
+
if (destinationToken) {
|
|
1004
|
+
assert(destinationToken.chainName === destinationName, `Destination token chain mismatch for ${destinationName}`);
|
|
1005
|
+
const matchedToken = destinationCandidates.find((candidate) => candidate.equals(destinationToken) ||
|
|
1006
|
+
tokenIdentifiersEqual(candidate.addressOrDenom, destinationToken.addressOrDenom));
|
|
1007
|
+
assert(matchedToken, `Destination token ${destinationToken.addressOrDenom} is not connected from ${originToken.chainName} to ${destinationName}`);
|
|
1008
|
+
return matchedToken;
|
|
1009
|
+
}
|
|
1010
|
+
assert(destinationCandidates.length === 1, `Ambiguous route to ${destinationName}; specify destination token`);
|
|
1011
|
+
return destinationCandidates[0];
|
|
1012
|
+
}
|
|
1013
|
+
/**
|
|
1014
|
+
* Search through token list to find token with matching chain and address
|
|
1015
|
+
*/
|
|
1016
|
+
findToken(chainName, addressOrDenom) {
|
|
1017
|
+
if (!addressOrDenom)
|
|
1018
|
+
return null;
|
|
1019
|
+
const results = this.tokens.filter((token) => token.chainName === chainName &&
|
|
1020
|
+
tokenIdentifiersEqual(token.addressOrDenom, addressOrDenom));
|
|
1021
|
+
if (results.length === 1)
|
|
1022
|
+
return results[0];
|
|
1023
|
+
if (results.length > 1)
|
|
1024
|
+
throw new Error(`Ambiguous token search results for ${addressOrDenom}`);
|
|
1025
|
+
const chainMetadata = this.multiProvider.getChainMetadata(chainName);
|
|
1026
|
+
if (chainMetadata.nativeToken?.denom === addressOrDenom) {
|
|
1027
|
+
return Token.FromChainMetadataNativeToken(chainMetadata);
|
|
1028
|
+
}
|
|
1029
|
+
return null;
|
|
1030
|
+
}
|
|
1031
|
+
/**
|
|
1032
|
+
* Get the list of chains referenced by the tokens in this WarpCore
|
|
1033
|
+
*/
|
|
1034
|
+
getTokenChains() {
|
|
1035
|
+
return [...new Set(this.tokens.map((token) => token.chainName)).values()];
|
|
1036
|
+
}
|
|
1037
|
+
/**
|
|
1038
|
+
* Get the subset of tokens whose chain matches the given chainName
|
|
1039
|
+
*/
|
|
1040
|
+
getTokensForChain(chainName) {
|
|
1041
|
+
return this.tokens.filter((token) => token.chainName === chainName);
|
|
1042
|
+
}
|
|
1043
|
+
/**
|
|
1044
|
+
* Get the subset of tokens whose chain matches the given chainName
|
|
1045
|
+
* and which are connected to a token on the given destination chain
|
|
1046
|
+
*/
|
|
1047
|
+
getTokensForRoute(origin, destination) {
|
|
1048
|
+
return this.tokens.filter((token) => token.chainName === origin && token.getConnectionForChain(destination));
|
|
1049
|
+
}
|
|
995
1050
|
/**
|
|
996
1051
|
* Ensure the sender has sufficient balances for transfer and interchain gas
|
|
997
1052
|
*/
|
|
@@ -1064,62 +1119,5 @@ export class WarpCore {
|
|
|
1064
1119
|
}
|
|
1065
1120
|
return null;
|
|
1066
1121
|
}
|
|
1067
|
-
resolveDestinationToken({ originToken, destination, destinationToken, }) {
|
|
1068
|
-
const destinationName = this.multiProvider.getChainName(destination);
|
|
1069
|
-
const destinationCandidates = originToken
|
|
1070
|
-
.getConnections()
|
|
1071
|
-
.filter((connection) => connection.token.chainName === destinationName)
|
|
1072
|
-
.map((connection) => connection.token);
|
|
1073
|
-
assert(destinationCandidates.length > 0, `No connection found for ${destinationName}`);
|
|
1074
|
-
if (destinationToken) {
|
|
1075
|
-
assert(destinationToken.chainName === destinationName, `Destination token chain mismatch for ${destinationName}`);
|
|
1076
|
-
const matchedToken = destinationCandidates.find((candidate) => candidate.equals(destinationToken) ||
|
|
1077
|
-
candidate.addressOrDenom.toLowerCase() ===
|
|
1078
|
-
destinationToken.addressOrDenom.toLowerCase());
|
|
1079
|
-
assert(matchedToken, `Destination token ${destinationToken.addressOrDenom} is not connected from ${originToken.chainName} to ${destinationName}`);
|
|
1080
|
-
return matchedToken;
|
|
1081
|
-
}
|
|
1082
|
-
assert(destinationCandidates.length === 1, `Ambiguous route to ${destinationName}; specify destination token`);
|
|
1083
|
-
return destinationCandidates[0];
|
|
1084
|
-
}
|
|
1085
|
-
/**
|
|
1086
|
-
* Search through token list to find token with matching chain and address
|
|
1087
|
-
*/
|
|
1088
|
-
findToken(chainName, addressOrDenom) {
|
|
1089
|
-
if (!addressOrDenom)
|
|
1090
|
-
return null;
|
|
1091
|
-
const results = this.tokens.filter((token) => token.chainName === chainName &&
|
|
1092
|
-
token.addressOrDenom.toLowerCase() === addressOrDenom.toLowerCase());
|
|
1093
|
-
if (results.length === 1)
|
|
1094
|
-
return results[0];
|
|
1095
|
-
if (results.length > 1)
|
|
1096
|
-
throw new Error(`Ambiguous token search results for ${addressOrDenom}`);
|
|
1097
|
-
// If the token is not found, check to see if it matches the denom of chain's native token
|
|
1098
|
-
// This is a convenience so WarpConfigs don't need to include definitions for native tokens
|
|
1099
|
-
const chainMetadata = this.multiProvider.getChainMetadata(chainName);
|
|
1100
|
-
if (chainMetadata.nativeToken?.denom === addressOrDenom) {
|
|
1101
|
-
return Token.FromChainMetadataNativeToken(chainMetadata);
|
|
1102
|
-
}
|
|
1103
|
-
return null;
|
|
1104
|
-
}
|
|
1105
|
-
/**
|
|
1106
|
-
* Get the list of chains referenced by the tokens in this WarpCore
|
|
1107
|
-
*/
|
|
1108
|
-
getTokenChains() {
|
|
1109
|
-
return [...new Set(this.tokens.map((t) => t.chainName)).values()];
|
|
1110
|
-
}
|
|
1111
|
-
/**
|
|
1112
|
-
* Get the subset of tokens whose chain matches the given chainName
|
|
1113
|
-
*/
|
|
1114
|
-
getTokensForChain(chainName) {
|
|
1115
|
-
return this.tokens.filter((t) => t.chainName === chainName);
|
|
1116
|
-
}
|
|
1117
|
-
/**
|
|
1118
|
-
* Get the subset of tokens whose chain matches the given chainName
|
|
1119
|
-
* and which are connected to a token on the given destination chain
|
|
1120
|
-
*/
|
|
1121
|
-
getTokensForRoute(origin, destination) {
|
|
1122
|
-
return this.tokens.filter((t) => t.chainName === origin && t.getConnectionForChain(destination));
|
|
1123
|
-
}
|
|
1124
1122
|
}
|
|
1125
1123
|
//# sourceMappingURL=WarpCore.js.map
|