@hyperlane-xyz/sdk 3.7.0 → 3.8.0-beta0
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/consts/chainMetadata.d.ts +1 -2
- package/dist/consts/chainMetadata.d.ts.map +1 -1
- package/dist/consts/chainMetadata.js +43 -64
- package/dist/consts/chainMetadata.js.map +1 -1
- package/dist/consts/chains.d.ts +1 -2
- package/dist/consts/chains.d.ts.map +1 -1
- package/dist/consts/chains.js +2 -4
- package/dist/consts/chains.js.map +1 -1
- package/dist/consts/environments/index.d.ts +121 -133
- package/dist/consts/environments/index.d.ts.map +1 -1
- package/dist/consts/environments/testnet.json +166 -178
- package/dist/consts/multisigIsm.d.ts.map +1 -1
- package/dist/consts/multisigIsm.js +6 -18
- package/dist/consts/multisigIsm.js.map +1 -1
- package/dist/core/CoreDeployer.hardhat-test.js +4 -2
- package/dist/core/CoreDeployer.hardhat-test.js.map +1 -1
- package/dist/core/HyperlaneCoreChecker.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreChecker.js +3 -3
- package/dist/core/HyperlaneCoreChecker.js.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.d.ts +6 -2
- package/dist/core/HyperlaneCoreDeployer.d.ts.map +1 -1
- package/dist/core/HyperlaneCoreDeployer.js +24 -11
- package/dist/core/HyperlaneCoreDeployer.js.map +1 -1
- package/dist/core/TestRecipientDeployer.d.ts +2 -1
- package/dist/core/TestRecipientDeployer.d.ts.map +1 -1
- package/dist/core/TestRecipientDeployer.js +2 -1
- package/dist/core/TestRecipientDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneDeployer.d.ts +7 -6
- package/dist/deploy/HyperlaneDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneDeployer.js +34 -13
- package/dist/deploy/HyperlaneDeployer.js.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts +2 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.d.ts.map +1 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js +2 -1
- package/dist/deploy/HyperlaneProxyFactoryDeployer.js.map +1 -1
- package/dist/deploy/types.d.ts +1 -1
- package/dist/deploy/types.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.d.ts +9 -12
- package/dist/deploy/verify/ContractVerifier.d.ts.map +1 -1
- package/dist/deploy/verify/ContractVerifier.js +147 -121
- package/dist/deploy/verify/ContractVerifier.js.map +1 -1
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts +14 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.d.ts.map +1 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js +31 -0
- package/dist/deploy/verify/PostDeploymentContractVerifier.js.map +1 -0
- package/dist/deploy/verify/types.d.ts +60 -3
- package/dist/deploy/verify/types.d.ts.map +1 -1
- package/dist/deploy/verify/types.js +42 -0
- package/dist/deploy/verify/types.js.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.d.ts +0 -2
- package/dist/gas/HyperlaneIgpChecker.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpChecker.js +8 -29
- package/dist/gas/HyperlaneIgpChecker.js.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.d.ts +6 -7
- package/dist/gas/HyperlaneIgpDeployer.d.ts.map +1 -1
- package/dist/gas/HyperlaneIgpDeployer.js +40 -59
- package/dist/gas/HyperlaneIgpDeployer.js.map +1 -1
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js +17 -22
- package/dist/gas/oracle/configure-gas-oracles.hardhat-test.js.map +1 -1
- package/dist/gas/oracle/types.d.ts +6 -9
- package/dist/gas/oracle/types.d.ts.map +1 -1
- package/dist/gas/oracle/types.js +23 -1
- package/dist/gas/oracle/types.js.map +1 -1
- package/dist/gas/types.d.ts +3 -4
- package/dist/gas/types.d.ts.map +1 -1
- package/dist/gas/types.js +1 -5
- package/dist/gas/types.js.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts +2 -1
- package/dist/hook/HyperlaneHookDeployer.d.ts.map +1 -1
- package/dist/hook/HyperlaneHookDeployer.js +6 -4
- package/dist/hook/HyperlaneHookDeployer.js.map +1 -1
- package/dist/index.d.ts +16 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -22
- package/dist/index.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.d.ts +11 -10
- package/dist/ism/HyperlaneIsmFactory.d.ts.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js +14 -12
- package/dist/ism/HyperlaneIsmFactory.hardhat-test.js.map +1 -1
- package/dist/ism/HyperlaneIsmFactory.js +39 -287
- package/dist/ism/HyperlaneIsmFactory.js.map +1 -1
- package/dist/ism/utils.d.ts +11 -0
- package/dist/ism/utils.d.ts.map +1 -0
- package/dist/ism/utils.js +277 -0
- package/dist/ism/utils.js.map +1 -0
- package/dist/metadata/ChainMetadataManager.d.ts +43 -21
- package/dist/metadata/ChainMetadataManager.d.ts.map +1 -1
- package/dist/metadata/ChainMetadataManager.js +26 -0
- package/dist/metadata/ChainMetadataManager.js.map +1 -1
- package/dist/metadata/agentConfig.d.ts +97 -46
- package/dist/metadata/agentConfig.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.d.ts +6 -1
- package/dist/metadata/blockExplorer.d.ts.map +1 -1
- package/dist/metadata/blockExplorer.js +15 -1
- package/dist/metadata/blockExplorer.js.map +1 -1
- package/dist/metadata/chainMetadataTypes.d.ts +188 -1
- package/dist/metadata/chainMetadataTypes.d.ts.map +1 -1
- package/dist/metadata/chainMetadataTypes.js +14 -4
- package/dist/metadata/chainMetadataTypes.js.map +1 -1
- package/dist/metadata/customZodTypes.d.ts +2 -0
- package/dist/metadata/customZodTypes.d.ts.map +1 -1
- package/dist/metadata/customZodTypes.js +3 -1
- package/dist/metadata/customZodTypes.js.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts +2 -1
- package/dist/middleware/account/InterchainAccountDeployer.d.ts.map +1 -1
- package/dist/middleware/account/InterchainAccountDeployer.js +4 -2
- package/dist/middleware/account/InterchainAccountDeployer.js.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts +2 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.d.ts.map +1 -1
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js +4 -2
- package/dist/middleware/liquidity-layer/LiquidityLayerRouterDeployer.js.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts +2 -1
- package/dist/middleware/query/InterchainQueryDeployer.d.ts.map +1 -1
- package/dist/middleware/query/InterchainQueryDeployer.js +4 -2
- package/dist/middleware/query/InterchainQueryDeployer.js.map +1 -1
- package/dist/providers/MultiProtocolProvider.d.ts +10 -12
- package/dist/providers/MultiProtocolProvider.d.ts.map +1 -1
- package/dist/providers/MultiProtocolProvider.js +2 -7
- package/dist/providers/MultiProtocolProvider.js.map +1 -1
- package/dist/providers/MultiProvider.d.ts +17 -17
- package/dist/providers/MultiProvider.d.ts.map +1 -1
- package/dist/providers/MultiProvider.js +1 -0
- package/dist/providers/MultiProvider.js.map +1 -1
- package/dist/providers/ProviderType.d.ts +5 -2
- package/dist/providers/ProviderType.d.ts.map +1 -1
- package/dist/providers/ProviderType.js +10 -1
- package/dist/providers/ProviderType.js.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.d.ts.map +1 -1
- package/dist/providers/SmartProvider/SmartProvider.js +2 -2
- package/dist/providers/SmartProvider/SmartProvider.js.map +1 -1
- package/dist/providers/providerBuilders.d.ts.map +1 -1
- package/dist/providers/providerBuilders.js +1 -0
- package/dist/providers/providerBuilders.js.map +1 -1
- package/dist/router/HyperlaneRouterChecker.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterChecker.js +2 -2
- package/dist/router/HyperlaneRouterChecker.js.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.d.ts.map +1 -1
- package/dist/router/HyperlaneRouterDeployer.js +2 -3
- package/dist/router/HyperlaneRouterDeployer.js.map +1 -1
- package/dist/test/testUtils.d.ts +1 -2
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +12 -28
- package/dist/test/testUtils.js.map +1 -1
- package/dist/token/IToken.d.ts +147 -0
- package/dist/token/IToken.d.ts.map +1 -0
- package/dist/token/IToken.js +37 -0
- package/dist/token/IToken.js.map +1 -0
- package/dist/token/Token.d.ts +58 -0
- package/dist/token/Token.d.ts.map +1 -0
- package/dist/token/Token.js +260 -0
- package/dist/token/Token.js.map +1 -0
- package/dist/token/Token.test.d.ts +2 -0
- package/dist/token/Token.test.d.ts.map +1 -0
- package/dist/token/Token.test.js +155 -0
- package/dist/token/Token.test.js.map +1 -0
- package/dist/token/TokenAmount.d.ts +12 -0
- package/dist/token/TokenAmount.d.ts.map +1 -0
- package/dist/token/TokenAmount.js +24 -0
- package/dist/token/TokenAmount.js.map +1 -0
- package/dist/token/TokenAmount.test.d.ts +2 -0
- package/dist/token/TokenAmount.test.d.ts.map +1 -0
- package/dist/token/TokenAmount.test.js +41 -0
- package/dist/token/TokenAmount.test.js.map +1 -0
- package/dist/token/TokenConnection.d.ts +81 -0
- package/dist/token/TokenConnection.d.ts.map +1 -0
- package/dist/token/TokenConnection.js +36 -0
- package/dist/token/TokenConnection.js.map +1 -0
- package/dist/token/TokenStandard.d.ts +36 -0
- package/dist/token/TokenStandard.d.ts.map +1 -0
- package/dist/token/TokenStandard.js +118 -0
- package/dist/token/TokenStandard.js.map +1 -0
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts +29 -30
- package/dist/token/adapters/CosmWasmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmWasmTokenAdapter.js +65 -50
- package/dist/token/adapters/CosmWasmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.d.ts +11 -9
- package/dist/token/adapters/CosmosTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/CosmosTokenAdapter.js +25 -6
- package/dist/token/adapters/CosmosTokenAdapter.js.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.d.ts +27 -16
- package/dist/token/adapters/EvmTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/EvmTokenAdapter.js +69 -23
- package/dist/token/adapters/EvmTokenAdapter.js.map +1 -1
- package/dist/token/adapters/ITokenAdapter.d.ts +16 -11
- package/dist/token/adapters/ITokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.d.ts +15 -13
- package/dist/token/adapters/SealevelTokenAdapter.d.ts.map +1 -1
- package/dist/token/adapters/SealevelTokenAdapter.js +17 -15
- package/dist/token/adapters/SealevelTokenAdapter.js.map +1 -1
- package/dist/token/deploy.d.ts +3 -2
- package/dist/token/deploy.d.ts.map +1 -1
- package/dist/token/deploy.js +4 -2
- package/dist/token/deploy.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/warp/WarpCore.d.ts +76 -0
- package/dist/warp/WarpCore.d.ts.map +1 -0
- package/dist/warp/WarpCore.js +288 -0
- package/dist/warp/WarpCore.js.map +1 -0
- package/dist/warp/WarpCore.test.d.ts +2 -0
- package/dist/warp/WarpCore.test.d.ts.map +1 -0
- package/dist/warp/WarpCore.test.js +143 -0
- package/dist/warp/WarpCore.test.js.map +1 -0
- package/dist/warp/types.d.ts +274 -0
- package/dist/warp/types.d.ts.map +1 -0
- package/dist/warp/types.js +38 -0
- package/dist/warp/types.js.map +1 -0
- package/logos/black/cosmwasm.svg +1 -1
- package/logos/black/plume.svg +29 -0
- package/logos/color/cosmos.svg +1 -1
- package/logos/color/cosmwasm.svg +1 -1
- package/logos/color/manta.svg +1 -1
- package/logos/color/plume.svg +24 -0
- package/package.json +5 -4
- package/dist/gas/oracle/logging.d.ts +0 -7
- package/dist/gas/oracle/logging.d.ts.map +0 -1
- package/dist/gas/oracle/logging.js +0 -18
- package/dist/gas/oracle/logging.js.map +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TokenConnectionConfigSchema = exports.TokenConnectionType = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const customZodTypes_1 = require("../metadata/customZodTypes");
|
|
6
|
+
var TokenConnectionType;
|
|
7
|
+
(function (TokenConnectionType) {
|
|
8
|
+
TokenConnectionType["Hyperlane"] = "hyperlane";
|
|
9
|
+
TokenConnectionType["Ibc"] = "ibc";
|
|
10
|
+
TokenConnectionType["IbcHyperlane"] = "ibc-hyperlane";
|
|
11
|
+
})(TokenConnectionType || (exports.TokenConnectionType = TokenConnectionType = {}));
|
|
12
|
+
const TokenConnectionRegex = /^(.+)|(.+)|(.+)$/;
|
|
13
|
+
// Distinct from type above in that it uses a
|
|
14
|
+
// serialized representation of the tokens instead
|
|
15
|
+
// of the possibly recursive Token references
|
|
16
|
+
exports.TokenConnectionConfigSchema = zod_1.z
|
|
17
|
+
.object({
|
|
18
|
+
type: zod_1.z.literal(TokenConnectionType.Hyperlane).optional(),
|
|
19
|
+
token: zod_1.z.string().regex(TokenConnectionRegex),
|
|
20
|
+
})
|
|
21
|
+
.or(zod_1.z.object({
|
|
22
|
+
type: zod_1.z.literal(TokenConnectionType.Ibc),
|
|
23
|
+
token: zod_1.z.string().regex(TokenConnectionRegex),
|
|
24
|
+
sourcePort: zod_1.z.string(),
|
|
25
|
+
sourceChannel: zod_1.z.string(),
|
|
26
|
+
}))
|
|
27
|
+
.or(zod_1.z.object({
|
|
28
|
+
type: zod_1.z.literal(TokenConnectionType.IbcHyperlane),
|
|
29
|
+
token: zod_1.z.string().regex(TokenConnectionRegex),
|
|
30
|
+
sourcePort: zod_1.z.string(),
|
|
31
|
+
sourceChannel: zod_1.z.string(),
|
|
32
|
+
intermediateChainName: customZodTypes_1.ZChainName,
|
|
33
|
+
intermediateIbcDenom: zod_1.z.string(),
|
|
34
|
+
intermediateRouterAddress: zod_1.z.string(),
|
|
35
|
+
}));
|
|
36
|
+
//# sourceMappingURL=TokenConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenConnection.js","sourceRoot":"","sources":["../../src/token/TokenConnection.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAIxB,+DAAwD;AAKxD,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,kCAAW,CAAA;IACX,qDAA8B,CAAA;AAChC,CAAC,EAJW,mBAAmB,mCAAnB,mBAAmB,QAI9B;AA+BD,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;AAEhD,6CAA6C;AAC7C,kDAAkD;AAClD,6CAA6C;AAChC,QAAA,2BAA2B,GAAG,OAAC;KACzC,MAAM,CAAC;IACN,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IACzD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;CAC9C,CAAC;KACD,EAAE,CACD,OAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;IACxC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC7C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;CAC1B,CAAC,CACH;KACA,EAAE,CACD,OAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC;IACjD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC7C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,qBAAqB,EAAE,2BAAU;IACjC,oBAAoB,EAAE,OAAC,CAAC,MAAM,EAAE;IAChC,yBAAyB,EAAE,OAAC,CAAC,MAAM,EAAE;CACtC,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ProtocolType } from '@hyperlane-xyz/utils';
|
|
2
|
+
import { ProviderType } from '../providers/ProviderType';
|
|
3
|
+
export declare enum TokenStandard {
|
|
4
|
+
ERC20 = "ERC20",
|
|
5
|
+
ERC721 = "ERC721",
|
|
6
|
+
EvmNative = "EvmNative",
|
|
7
|
+
EvmHypNative = "EvmHypNative",
|
|
8
|
+
EvmHypCollateral = "EvmHypCollateral",
|
|
9
|
+
EvmHypSynthetic = "EvmHypSynthetic",
|
|
10
|
+
SealevelSpl = "SealevelSpl",
|
|
11
|
+
SealevelSpl2022 = "SealevelSpl2022",
|
|
12
|
+
SealevelNative = "SealevelNative",
|
|
13
|
+
SealevelHypNative = "SealevelHypNative",
|
|
14
|
+
SealevelHypCollateral = "SealevelHypCollateral",
|
|
15
|
+
SealevelHypSynthetic = "SealevelHypSynthetic",
|
|
16
|
+
CosmosIcs20 = "CosmosIcs20",
|
|
17
|
+
CosmosIcs721 = "CosmosIcs721",
|
|
18
|
+
CosmosNative = "CosmosNative",
|
|
19
|
+
CosmosIbc = "CosmosIbc",
|
|
20
|
+
CW20 = "CW20",
|
|
21
|
+
CWNative = "CWNative",
|
|
22
|
+
CW721 = "CW721",
|
|
23
|
+
CwHypNative = "CwHypNative",
|
|
24
|
+
CwHypCollateral = "CwHypCollateral",
|
|
25
|
+
CwHypSynthetic = "CwHypSynthetic",
|
|
26
|
+
FuelNative = "FuelNative"
|
|
27
|
+
}
|
|
28
|
+
export declare const TOKEN_STANDARD_TO_PROTOCOL: Record<TokenStandard, ProtocolType>;
|
|
29
|
+
export declare const TOKEN_STANDARD_TO_PROVIDER_TYPE: Record<TokenStandard, ProviderType>;
|
|
30
|
+
export declare const TOKEN_NFT_STANDARDS: TokenStandard[];
|
|
31
|
+
export declare const TOKEN_COLLATERALIZED_STANDARDS: TokenStandard[];
|
|
32
|
+
export declare const TOKEN_HYP_STANDARDS: TokenStandard[];
|
|
33
|
+
export declare const TOKEN_MULTI_CHAIN_STANDARDS: TokenStandard[];
|
|
34
|
+
export declare const TOKEN_COSMWASM_STANDARDS: TokenStandard[];
|
|
35
|
+
export declare const PROTOCOL_TO_NATIVE_STANDARD: Record<ProtocolType, TokenStandard>;
|
|
36
|
+
//# sourceMappingURL=TokenStandard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenStandard.d.ts","sourceRoot":"","sources":["../../src/token/TokenStandard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAU,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAEL,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,oBAAY,aAAa;IAEvB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,eAAe,oBAAoB;IAGnC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IACjC,iBAAiB,sBAAsB;IACvC,qBAAqB,0BAA0B;IAC/C,oBAAoB,yBAAyB;IAG7C,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IAGvB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IACnC,cAAc,mBAAmB;IAGjC,UAAU,eAAe;CAC1B;AAGD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,aAAa,EAAE,YAAY,CAiC1E,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAClD,aAAa,EACb,YAAY,CAIZ,CAAC;AAEH,eAAO,MAAM,mBAAmB,iBAK/B,CAAC;AAEF,eAAO,MAAM,8BAA8B,iBAO1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,iBAU/B,CAAC;AAEF,eAAO,MAAM,2BAA2B,iBAGvC,CAAC;AAIF,eAAO,MAAM,wBAAwB,iBAOpC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,MAAM,CAAC,YAAY,EAAE,aAAa,CAMzE,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROTOCOL_TO_NATIVE_STANDARD = exports.TOKEN_COSMWASM_STANDARDS = exports.TOKEN_MULTI_CHAIN_STANDARDS = exports.TOKEN_HYP_STANDARDS = exports.TOKEN_COLLATERALIZED_STANDARDS = exports.TOKEN_NFT_STANDARDS = exports.TOKEN_STANDARD_TO_PROVIDER_TYPE = exports.TOKEN_STANDARD_TO_PROTOCOL = exports.TokenStandard = void 0;
|
|
4
|
+
const utils_1 = require("@hyperlane-xyz/utils");
|
|
5
|
+
const ProviderType_1 = require("../providers/ProviderType");
|
|
6
|
+
var TokenStandard;
|
|
7
|
+
(function (TokenStandard) {
|
|
8
|
+
// EVM
|
|
9
|
+
TokenStandard["ERC20"] = "ERC20";
|
|
10
|
+
TokenStandard["ERC721"] = "ERC721";
|
|
11
|
+
TokenStandard["EvmNative"] = "EvmNative";
|
|
12
|
+
TokenStandard["EvmHypNative"] = "EvmHypNative";
|
|
13
|
+
TokenStandard["EvmHypCollateral"] = "EvmHypCollateral";
|
|
14
|
+
TokenStandard["EvmHypSynthetic"] = "EvmHypSynthetic";
|
|
15
|
+
// Sealevel (Solana)
|
|
16
|
+
TokenStandard["SealevelSpl"] = "SealevelSpl";
|
|
17
|
+
TokenStandard["SealevelSpl2022"] = "SealevelSpl2022";
|
|
18
|
+
TokenStandard["SealevelNative"] = "SealevelNative";
|
|
19
|
+
TokenStandard["SealevelHypNative"] = "SealevelHypNative";
|
|
20
|
+
TokenStandard["SealevelHypCollateral"] = "SealevelHypCollateral";
|
|
21
|
+
TokenStandard["SealevelHypSynthetic"] = "SealevelHypSynthetic";
|
|
22
|
+
// Cosmos
|
|
23
|
+
TokenStandard["CosmosIcs20"] = "CosmosIcs20";
|
|
24
|
+
TokenStandard["CosmosIcs721"] = "CosmosIcs721";
|
|
25
|
+
TokenStandard["CosmosNative"] = "CosmosNative";
|
|
26
|
+
TokenStandard["CosmosIbc"] = "CosmosIbc";
|
|
27
|
+
// CosmWasm
|
|
28
|
+
TokenStandard["CW20"] = "CW20";
|
|
29
|
+
TokenStandard["CWNative"] = "CWNative";
|
|
30
|
+
TokenStandard["CW721"] = "CW721";
|
|
31
|
+
TokenStandard["CwHypNative"] = "CwHypNative";
|
|
32
|
+
TokenStandard["CwHypCollateral"] = "CwHypCollateral";
|
|
33
|
+
TokenStandard["CwHypSynthetic"] = "CwHypSynthetic";
|
|
34
|
+
// Fuel (TODO)
|
|
35
|
+
TokenStandard["FuelNative"] = "FuelNative";
|
|
36
|
+
})(TokenStandard || (exports.TokenStandard = TokenStandard = {}));
|
|
37
|
+
// Allows for omission of protocol field in token args
|
|
38
|
+
exports.TOKEN_STANDARD_TO_PROTOCOL = {
|
|
39
|
+
// EVM
|
|
40
|
+
ERC20: utils_1.ProtocolType.Ethereum,
|
|
41
|
+
ERC721: utils_1.ProtocolType.Ethereum,
|
|
42
|
+
EvmNative: utils_1.ProtocolType.Ethereum,
|
|
43
|
+
EvmHypNative: utils_1.ProtocolType.Ethereum,
|
|
44
|
+
EvmHypCollateral: utils_1.ProtocolType.Ethereum,
|
|
45
|
+
EvmHypSynthetic: utils_1.ProtocolType.Ethereum,
|
|
46
|
+
// Sealevel (Solana)
|
|
47
|
+
SealevelSpl: utils_1.ProtocolType.Sealevel,
|
|
48
|
+
SealevelSpl2022: utils_1.ProtocolType.Sealevel,
|
|
49
|
+
SealevelNative: utils_1.ProtocolType.Sealevel,
|
|
50
|
+
SealevelHypNative: utils_1.ProtocolType.Sealevel,
|
|
51
|
+
SealevelHypCollateral: utils_1.ProtocolType.Sealevel,
|
|
52
|
+
SealevelHypSynthetic: utils_1.ProtocolType.Sealevel,
|
|
53
|
+
// Cosmos
|
|
54
|
+
CosmosIcs20: utils_1.ProtocolType.Cosmos,
|
|
55
|
+
CosmosIcs721: utils_1.ProtocolType.Cosmos,
|
|
56
|
+
CosmosNative: utils_1.ProtocolType.Cosmos,
|
|
57
|
+
CosmosIbc: utils_1.ProtocolType.Cosmos,
|
|
58
|
+
// CosmWasm
|
|
59
|
+
CW20: utils_1.ProtocolType.Cosmos,
|
|
60
|
+
CWNative: utils_1.ProtocolType.Cosmos,
|
|
61
|
+
CW721: utils_1.ProtocolType.Cosmos,
|
|
62
|
+
CwHypNative: utils_1.ProtocolType.Cosmos,
|
|
63
|
+
CwHypCollateral: utils_1.ProtocolType.Cosmos,
|
|
64
|
+
CwHypSynthetic: utils_1.ProtocolType.Cosmos,
|
|
65
|
+
// Fuel (TODO)
|
|
66
|
+
FuelNative: utils_1.ProtocolType.Fuel,
|
|
67
|
+
};
|
|
68
|
+
exports.TOKEN_STANDARD_TO_PROVIDER_TYPE = (0, utils_1.objMap)(exports.TOKEN_STANDARD_TO_PROTOCOL, (k, v) => {
|
|
69
|
+
if (k.startsWith('Cosmos'))
|
|
70
|
+
return ProviderType_1.ProviderType.CosmJs;
|
|
71
|
+
return ProviderType_1.PROTOCOL_TO_DEFAULT_PROVIDER_TYPE[v];
|
|
72
|
+
});
|
|
73
|
+
exports.TOKEN_NFT_STANDARDS = [
|
|
74
|
+
TokenStandard.ERC721,
|
|
75
|
+
TokenStandard.CosmosIcs721,
|
|
76
|
+
TokenStandard.CW721,
|
|
77
|
+
// TODO solana here
|
|
78
|
+
];
|
|
79
|
+
exports.TOKEN_COLLATERALIZED_STANDARDS = [
|
|
80
|
+
TokenStandard.EvmHypCollateral,
|
|
81
|
+
TokenStandard.EvmHypNative,
|
|
82
|
+
TokenStandard.SealevelHypCollateral,
|
|
83
|
+
TokenStandard.SealevelHypNative,
|
|
84
|
+
TokenStandard.CwHypCollateral,
|
|
85
|
+
TokenStandard.CwHypNative,
|
|
86
|
+
];
|
|
87
|
+
exports.TOKEN_HYP_STANDARDS = [
|
|
88
|
+
TokenStandard.EvmHypNative,
|
|
89
|
+
TokenStandard.EvmHypCollateral,
|
|
90
|
+
TokenStandard.EvmHypSynthetic,
|
|
91
|
+
TokenStandard.SealevelHypNative,
|
|
92
|
+
TokenStandard.SealevelHypCollateral,
|
|
93
|
+
TokenStandard.SealevelHypSynthetic,
|
|
94
|
+
TokenStandard.CwHypNative,
|
|
95
|
+
TokenStandard.CwHypCollateral,
|
|
96
|
+
TokenStandard.CwHypSynthetic,
|
|
97
|
+
];
|
|
98
|
+
exports.TOKEN_MULTI_CHAIN_STANDARDS = [
|
|
99
|
+
...exports.TOKEN_HYP_STANDARDS,
|
|
100
|
+
TokenStandard.CosmosIbc,
|
|
101
|
+
];
|
|
102
|
+
// Useful for differentiating from norma Cosmos standards
|
|
103
|
+
// (e.g. for determining the appropriate cosmos client)
|
|
104
|
+
exports.TOKEN_COSMWASM_STANDARDS = [
|
|
105
|
+
TokenStandard.CW20,
|
|
106
|
+
TokenStandard.CWNative,
|
|
107
|
+
TokenStandard.CW721,
|
|
108
|
+
TokenStandard.CwHypNative,
|
|
109
|
+
TokenStandard.CwHypCollateral,
|
|
110
|
+
TokenStandard.CwHypSynthetic,
|
|
111
|
+
];
|
|
112
|
+
exports.PROTOCOL_TO_NATIVE_STANDARD = {
|
|
113
|
+
[utils_1.ProtocolType.Ethereum]: TokenStandard.EvmNative,
|
|
114
|
+
[utils_1.ProtocolType.Cosmos]: TokenStandard.CosmosNative,
|
|
115
|
+
[utils_1.ProtocolType.Sealevel]: TokenStandard.SealevelNative,
|
|
116
|
+
[utils_1.ProtocolType.Fuel]: TokenStandard.FuelNative,
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=TokenStandard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TokenStandard.js","sourceRoot":"","sources":["../../src/token/TokenStandard.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,104 +4,103 @@ import { Coin } from '@cosmjs/stargate';
|
|
|
4
4
|
import { Address, Domain } from '@hyperlane-xyz/utils';
|
|
5
5
|
import { BaseCosmWasmAdapter } from '../../app/MultiProtocolApp';
|
|
6
6
|
import { BalanceResponse, ExecuteMsg as Cw20Execute, QueryMsg as Cw20Query, TokenInfoResponse } from '../../cw-types/Cw20Base.types';
|
|
7
|
+
import { QuoteDispatchResponse } from '../../cw-types/Mailbox.types';
|
|
7
8
|
import { DomainsResponse, InterchainSecurityModuleResponse, OwnerResponse, RouteResponseForHexBinary, RoutesResponseForHexBinary, TokenType, TokenTypeResponse, ExecuteMsg as WarpCw20Execute, QueryMsg as WarpCw20Query } from '../../cw-types/WarpCw20.types';
|
|
8
9
|
import { MultiProtocolProvider } from '../../providers/MultiProtocolProvider';
|
|
9
10
|
import { ChainName } from '../../types';
|
|
10
11
|
import { ERC20Metadata } from '../config';
|
|
11
|
-
import { IHypTokenAdapter, ITokenAdapter, TransferParams, TransferRemoteParams } from './ITokenAdapter';
|
|
12
|
-
export declare class CwNativeTokenAdapter extends BaseCosmWasmAdapter implements ITokenAdapter {
|
|
12
|
+
import { IHypTokenAdapter, ITokenAdapter, InterchainGasQuote, TransferParams, TransferRemoteParams } from './ITokenAdapter';
|
|
13
|
+
export declare class CwNativeTokenAdapter extends BaseCosmWasmAdapter implements ITokenAdapter<ExecuteInstruction> {
|
|
13
14
|
readonly chainName: string;
|
|
14
15
|
readonly multiProvider: MultiProtocolProvider;
|
|
15
16
|
readonly addresses: Record<string, Address>;
|
|
16
|
-
readonly
|
|
17
|
-
constructor(chainName: string, multiProvider: MultiProtocolProvider, addresses: Record<string, Address>,
|
|
18
|
-
getBalance(address: Address): Promise<
|
|
17
|
+
readonly denom: string;
|
|
18
|
+
constructor(chainName: string, multiProvider: MultiProtocolProvider, addresses: Record<string, Address>, denom: string);
|
|
19
|
+
getBalance(address: Address): Promise<bigint>;
|
|
19
20
|
getMetadata(): Promise<CW20Metadata>;
|
|
21
|
+
isApproveRequired(): Promise<boolean>;
|
|
20
22
|
populateApproveTx(_params: TransferParams): Promise<ExecuteInstruction>;
|
|
21
23
|
populateTransferTx({ recipient, weiAmountOrId, }: TransferParams): Promise<ExecuteInstruction>;
|
|
22
24
|
}
|
|
23
25
|
export type CW20Metadata = ERC20Metadata;
|
|
24
26
|
type CW20Response = TokenInfoResponse | BalanceResponse;
|
|
25
|
-
export declare class CwTokenAdapter extends BaseCosmWasmAdapter implements ITokenAdapter {
|
|
27
|
+
export declare class CwTokenAdapter extends BaseCosmWasmAdapter implements ITokenAdapter<ExecuteInstruction> {
|
|
26
28
|
readonly chainName: string;
|
|
27
29
|
readonly multiProvider: MultiProtocolProvider;
|
|
28
30
|
readonly addresses: {
|
|
29
31
|
token: Address;
|
|
30
32
|
};
|
|
31
|
-
readonly denom: string;
|
|
32
33
|
constructor(chainName: string, multiProvider: MultiProtocolProvider, addresses: {
|
|
33
34
|
token: Address;
|
|
34
|
-
}
|
|
35
|
+
});
|
|
35
36
|
queryToken<R extends CW20Response>(msg: Cw20Query): Promise<R>;
|
|
36
37
|
prepareToken(msg: Cw20Execute, funds?: Coin[]): ExecuteInstruction;
|
|
37
|
-
getBalance(address: Address): Promise<
|
|
38
|
+
getBalance(address: Address): Promise<bigint>;
|
|
38
39
|
getMetadata(): Promise<CW20Metadata>;
|
|
40
|
+
isApproveRequired(): Promise<boolean>;
|
|
39
41
|
populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise<ExecuteInstruction>;
|
|
40
42
|
populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise<ExecuteInstruction>;
|
|
41
43
|
}
|
|
42
|
-
type TokenRouterResponse = TokenTypeResponse | InterchainSecurityModuleResponse | DomainsResponse | OwnerResponse | RouteResponseForHexBinary | RoutesResponseForHexBinary;
|
|
43
|
-
export declare class CwHypSyntheticAdapter extends CwTokenAdapter implements IHypTokenAdapter {
|
|
44
|
+
type TokenRouterResponse = TokenTypeResponse | InterchainSecurityModuleResponse | DomainsResponse | OwnerResponse | RouteResponseForHexBinary | RoutesResponseForHexBinary | QuoteDispatchResponse;
|
|
45
|
+
export declare class CwHypSyntheticAdapter extends CwTokenAdapter implements IHypTokenAdapter<ExecuteInstruction> {
|
|
44
46
|
readonly chainName: ChainName;
|
|
45
47
|
readonly multiProvider: MultiProtocolProvider<any>;
|
|
46
48
|
readonly addresses: {
|
|
47
49
|
token: Address;
|
|
48
50
|
warpRouter: Address;
|
|
49
51
|
};
|
|
50
|
-
readonly gasDenom: string;
|
|
51
52
|
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider<any>, addresses: {
|
|
52
53
|
token: Address;
|
|
53
54
|
warpRouter: Address;
|
|
54
|
-
}
|
|
55
|
+
});
|
|
55
56
|
queryRouter<R extends TokenRouterResponse>(msg: WarpCw20Query): Promise<R>;
|
|
56
57
|
prepareRouter(msg: WarpCw20Execute, funds?: Coin[]): ExecuteInstruction;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
getTokenType(): Promise<TokenType>;
|
|
59
|
+
getInterchainSecurityModule(): Promise<Address>;
|
|
60
|
+
getOwner(): Promise<Address>;
|
|
60
61
|
getDomains(): Promise<Domain[]>;
|
|
61
62
|
getRouterAddress(domain: Domain): Promise<Buffer>;
|
|
62
63
|
getAllRouters(): Promise<Array<{
|
|
63
64
|
domain: Domain;
|
|
64
65
|
address: Buffer;
|
|
65
66
|
}>>;
|
|
66
|
-
quoteGasPayment(_destination:
|
|
67
|
-
populateTransferRemoteTx({ destination, recipient, weiAmountOrId,
|
|
67
|
+
quoteGasPayment(_destination: Domain): Promise<InterchainGasQuote>;
|
|
68
|
+
populateTransferRemoteTx({ destination, recipient, weiAmountOrId, interchainGas, }: TransferRemoteParams): Promise<ExecuteInstruction>;
|
|
68
69
|
}
|
|
69
|
-
export declare class CwHypNativeAdapter extends CwNativeTokenAdapter implements IHypTokenAdapter {
|
|
70
|
+
export declare class CwHypNativeAdapter extends CwNativeTokenAdapter implements IHypTokenAdapter<ExecuteInstruction> {
|
|
70
71
|
readonly chainName: ChainName;
|
|
71
72
|
readonly multiProvider: MultiProtocolProvider<any>;
|
|
72
73
|
readonly addresses: {
|
|
73
74
|
warpRouter: Address;
|
|
74
75
|
};
|
|
75
|
-
readonly gasDenom: string;
|
|
76
76
|
private readonly cw20adapter;
|
|
77
77
|
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider<any>, addresses: {
|
|
78
78
|
warpRouter: Address;
|
|
79
|
-
}
|
|
80
|
-
getBalance(address: string): Promise<
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
});
|
|
80
|
+
getBalance(address: string): Promise<bigint>;
|
|
81
|
+
getInterchainSecurityModule(): Promise<Address>;
|
|
82
|
+
getOwner(): Promise<Address>;
|
|
83
83
|
getDomains(): Promise<Domain[]>;
|
|
84
84
|
getRouterAddress(domain: Domain): Promise<Buffer>;
|
|
85
85
|
getAllRouters(): Promise<Array<{
|
|
86
86
|
domain: Domain;
|
|
87
87
|
address: Buffer;
|
|
88
88
|
}>>;
|
|
89
|
-
quoteGasPayment(destination:
|
|
90
|
-
|
|
91
|
-
populateTransferRemoteTx({ destination, recipient, weiAmountOrId,
|
|
89
|
+
quoteGasPayment(destination: Domain): Promise<InterchainGasQuote>;
|
|
90
|
+
getDenom(): Promise<string>;
|
|
91
|
+
populateTransferRemoteTx({ destination, recipient, weiAmountOrId, interchainGas, }: TransferRemoteParams): Promise<ExecuteInstruction>;
|
|
92
92
|
}
|
|
93
|
-
export declare class CwHypCollateralAdapter extends CwHypNativeAdapter implements IHypTokenAdapter {
|
|
93
|
+
export declare class CwHypCollateralAdapter extends CwHypNativeAdapter implements IHypTokenAdapter<ExecuteInstruction> {
|
|
94
94
|
readonly chainName: ChainName;
|
|
95
95
|
readonly multiProvider: MultiProtocolProvider<any>;
|
|
96
96
|
readonly addresses: {
|
|
97
97
|
warpRouter: Address;
|
|
98
98
|
token: Address;
|
|
99
99
|
};
|
|
100
|
-
readonly gasDenom: string;
|
|
101
100
|
constructor(chainName: ChainName, multiProvider: MultiProtocolProvider<any>, addresses: {
|
|
102
101
|
warpRouter: Address;
|
|
103
102
|
token: Address;
|
|
104
|
-
}
|
|
103
|
+
});
|
|
105
104
|
}
|
|
106
105
|
export {};
|
|
107
106
|
//# sourceMappingURL=CosmWasmTokenAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CosmWasmTokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"CosmWasmTokenAdapter.d.ts","sourceRoot":"","sources":["../../../src/token/adapters/CosmWasmTokenAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.CwHypCollateralAdapter = exports.CwHypNativeAdapter = exports.CwHypSyntheticAdapter = exports.CwTokenAdapter = exports.CwNativeTokenAdapter = void 0;
|
|
7
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
4
|
const utils_1 = require("@hyperlane-xyz/utils");
|
|
9
5
|
const MultiProtocolApp_1 = require("../../app/MultiProtocolApp");
|
|
10
6
|
// Interacts with IBC denom tokens in CosmWasm
|
|
11
7
|
class CwNativeTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
12
|
-
constructor(chainName, multiProvider, addresses,
|
|
8
|
+
constructor(chainName, multiProvider, addresses, denom) {
|
|
13
9
|
super(chainName, multiProvider, addresses);
|
|
14
10
|
this.chainName = chainName;
|
|
15
11
|
this.multiProvider = multiProvider;
|
|
16
12
|
this.addresses = addresses;
|
|
17
|
-
this.
|
|
13
|
+
this.denom = denom;
|
|
18
14
|
}
|
|
19
15
|
async getBalance(address) {
|
|
20
16
|
const provider = await this.getProvider();
|
|
21
|
-
const balance = await provider.getBalance(address, this.
|
|
22
|
-
return balance.amount;
|
|
17
|
+
const balance = await provider.getBalance(address, this.denom);
|
|
18
|
+
return BigInt(balance.amount);
|
|
23
19
|
}
|
|
24
20
|
async getMetadata() {
|
|
25
21
|
throw new Error('Metadata not available to native tokens');
|
|
26
22
|
}
|
|
23
|
+
async isApproveRequired() {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
27
26
|
async populateApproveTx(_params) {
|
|
28
27
|
throw new Error('Approve not required for native tokens');
|
|
29
28
|
}
|
|
@@ -35,7 +34,7 @@ class CwNativeTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
|
35
34
|
funds: [
|
|
36
35
|
{
|
|
37
36
|
amount: weiAmountOrId.toString(),
|
|
38
|
-
denom: this.
|
|
37
|
+
denom: this.denom,
|
|
39
38
|
},
|
|
40
39
|
],
|
|
41
40
|
};
|
|
@@ -44,12 +43,11 @@ class CwNativeTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
|
44
43
|
exports.CwNativeTokenAdapter = CwNativeTokenAdapter;
|
|
45
44
|
// Interacts with CW20/721 contracts
|
|
46
45
|
class CwTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
47
|
-
constructor(chainName, multiProvider, addresses
|
|
46
|
+
constructor(chainName, multiProvider, addresses) {
|
|
48
47
|
super(chainName, multiProvider, addresses);
|
|
49
48
|
this.chainName = chainName;
|
|
50
49
|
this.multiProvider = multiProvider;
|
|
51
50
|
this.addresses = addresses;
|
|
52
|
-
this.denom = denom;
|
|
53
51
|
}
|
|
54
52
|
async queryToken(msg) {
|
|
55
53
|
const provider = await this.getProvider();
|
|
@@ -66,7 +64,7 @@ class CwTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
|
66
64
|
async getBalance(address) {
|
|
67
65
|
const provider = await this.getProvider();
|
|
68
66
|
const balance = await provider.getBalance(address, this.addresses.token);
|
|
69
|
-
return balance.amount;
|
|
67
|
+
return BigInt(balance.amount);
|
|
70
68
|
}
|
|
71
69
|
async getMetadata() {
|
|
72
70
|
const resp = await this.queryToken({
|
|
@@ -77,6 +75,9 @@ class CwTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
|
77
75
|
totalSupply: resp.total_supply,
|
|
78
76
|
};
|
|
79
77
|
}
|
|
78
|
+
async isApproveRequired() {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
80
81
|
async populateApproveTx({ weiAmountOrId, recipient, }) {
|
|
81
82
|
// TODO: check existing allowance
|
|
82
83
|
return this.prepareToken({
|
|
@@ -100,12 +101,11 @@ class CwTokenAdapter extends MultiProtocolApp_1.BaseCosmWasmAdapter {
|
|
|
100
101
|
}
|
|
101
102
|
exports.CwTokenAdapter = CwTokenAdapter;
|
|
102
103
|
class CwHypSyntheticAdapter extends CwTokenAdapter {
|
|
103
|
-
constructor(chainName, multiProvider, addresses
|
|
104
|
+
constructor(chainName, multiProvider, addresses) {
|
|
104
105
|
super(chainName, multiProvider, addresses);
|
|
105
106
|
this.chainName = chainName;
|
|
106
107
|
this.multiProvider = multiProvider;
|
|
107
108
|
this.addresses = addresses;
|
|
108
|
-
this.gasDenom = gasDenom;
|
|
109
109
|
}
|
|
110
110
|
async queryRouter(msg) {
|
|
111
111
|
const provider = await this.getProvider();
|
|
@@ -119,7 +119,7 @@ class CwHypSyntheticAdapter extends CwTokenAdapter {
|
|
|
119
119
|
funds,
|
|
120
120
|
};
|
|
121
121
|
}
|
|
122
|
-
async
|
|
122
|
+
async getTokenType() {
|
|
123
123
|
const resp = await this.queryRouter({
|
|
124
124
|
token_default: {
|
|
125
125
|
token_type: {},
|
|
@@ -127,10 +127,10 @@ class CwHypSyntheticAdapter extends CwTokenAdapter {
|
|
|
127
127
|
});
|
|
128
128
|
return resp.type;
|
|
129
129
|
}
|
|
130
|
-
async
|
|
130
|
+
async getInterchainSecurityModule() {
|
|
131
131
|
throw new Error('Router does not support ISM config yet.');
|
|
132
132
|
}
|
|
133
|
-
async
|
|
133
|
+
async getOwner() {
|
|
134
134
|
const resp = await this.queryRouter({
|
|
135
135
|
ownable: {
|
|
136
136
|
get_owner: {},
|
|
@@ -173,13 +173,26 @@ class CwHypSyntheticAdapter extends CwTokenAdapter {
|
|
|
173
173
|
address: Buffer.from(r.route, 'hex'),
|
|
174
174
|
}));
|
|
175
175
|
}
|
|
176
|
-
quoteGasPayment(_destination) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}
|
|
176
|
+
async quoteGasPayment(_destination) {
|
|
177
|
+
// TODO this may require separate queries to get the hook and/or mailbox
|
|
178
|
+
// before making a query for the QuoteDispatchResponse
|
|
179
|
+
// Punting on this given that only static quotes are used for now
|
|
180
|
+
// const resp = await this.queryRouter<QuoteDispatchResponse>({
|
|
181
|
+
// router: {
|
|
182
|
+
// TODO: {},
|
|
183
|
+
// },
|
|
184
|
+
// });
|
|
185
|
+
// return {
|
|
186
|
+
// amount: BigInt(resp.gas_amount?.amount || 0),
|
|
187
|
+
// addressOrDenom: resp.gas_amount?.denom,
|
|
188
|
+
// };
|
|
189
|
+
throw new Error('CW adpater quoteGasPayment method not implemented');
|
|
190
|
+
}
|
|
191
|
+
async populateTransferRemoteTx({ destination, recipient, weiAmountOrId, interchainGas, }) {
|
|
192
|
+
if (!interchainGas)
|
|
193
|
+
interchainGas = await this.quoteGasPayment(destination);
|
|
194
|
+
const { addressOrDenom: igpDenom, amount: igpAmount } = interchainGas;
|
|
195
|
+
(0, utils_1.assert)(igpDenom, 'Interchain gas denom required for Cosmos');
|
|
183
196
|
return this.prepareRouter({
|
|
184
197
|
transfer_remote: {
|
|
185
198
|
dest_domain: destination,
|
|
@@ -188,33 +201,35 @@ class CwHypSyntheticAdapter extends CwTokenAdapter {
|
|
|
188
201
|
},
|
|
189
202
|
}, [
|
|
190
203
|
{
|
|
191
|
-
amount:
|
|
192
|
-
denom:
|
|
204
|
+
amount: igpAmount.toString(),
|
|
205
|
+
denom: igpDenom,
|
|
193
206
|
},
|
|
194
207
|
]);
|
|
195
208
|
}
|
|
196
209
|
}
|
|
197
210
|
exports.CwHypSyntheticAdapter = CwHypSyntheticAdapter;
|
|
198
211
|
class CwHypNativeAdapter extends CwNativeTokenAdapter {
|
|
199
|
-
constructor(chainName, multiProvider, addresses
|
|
200
|
-
super(chainName, multiProvider, addresses,
|
|
212
|
+
constructor(chainName, multiProvider, addresses) {
|
|
213
|
+
super(chainName, multiProvider, addresses, '');
|
|
201
214
|
this.chainName = chainName;
|
|
202
215
|
this.multiProvider = multiProvider;
|
|
203
216
|
this.addresses = addresses;
|
|
204
|
-
this.
|
|
205
|
-
|
|
217
|
+
this.cw20adapter = new CwHypSyntheticAdapter(chainName, multiProvider, {
|
|
218
|
+
token: '',
|
|
219
|
+
warpRouter: addresses.warpRouter,
|
|
220
|
+
});
|
|
206
221
|
}
|
|
207
222
|
async getBalance(address) {
|
|
208
223
|
const provider = await this.getProvider();
|
|
209
|
-
const denom = await this.
|
|
224
|
+
const denom = await this.getDenom();
|
|
210
225
|
const balance = await provider.getBalance(address, denom);
|
|
211
|
-
return balance.amount;
|
|
226
|
+
return BigInt(balance.amount);
|
|
212
227
|
}
|
|
213
|
-
async
|
|
214
|
-
return this.cw20adapter.
|
|
228
|
+
async getInterchainSecurityModule() {
|
|
229
|
+
return this.cw20adapter.getInterchainSecurityModule();
|
|
215
230
|
}
|
|
216
|
-
async
|
|
217
|
-
return this.cw20adapter.
|
|
231
|
+
async getOwner() {
|
|
232
|
+
return this.cw20adapter.getOwner();
|
|
218
233
|
}
|
|
219
234
|
async getDomains() {
|
|
220
235
|
return this.cw20adapter.getDomains();
|
|
@@ -228,8 +243,8 @@ class CwHypNativeAdapter extends CwNativeTokenAdapter {
|
|
|
228
243
|
quoteGasPayment(destination) {
|
|
229
244
|
return this.cw20adapter.quoteGasPayment(destination);
|
|
230
245
|
}
|
|
231
|
-
async
|
|
232
|
-
const tokenType = await this.cw20adapter.
|
|
246
|
+
async getDenom() {
|
|
247
|
+
const tokenType = await this.cw20adapter.getTokenType();
|
|
233
248
|
if ('native' in tokenType) {
|
|
234
249
|
if ('fungible' in tokenType.native) {
|
|
235
250
|
return tokenType.native.fungible.denom;
|
|
@@ -237,15 +252,16 @@ class CwHypNativeAdapter extends CwNativeTokenAdapter {
|
|
|
237
252
|
}
|
|
238
253
|
throw new Error(`Token type not supported: ${tokenType}`);
|
|
239
254
|
}
|
|
240
|
-
async populateTransferRemoteTx({ destination, recipient, weiAmountOrId,
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
|
|
255
|
+
async populateTransferRemoteTx({ destination, recipient, weiAmountOrId, interchainGas, }) {
|
|
256
|
+
const collateralDenom = await this.getDenom();
|
|
257
|
+
if (!interchainGas)
|
|
258
|
+
interchainGas = await this.quoteGasPayment(destination);
|
|
259
|
+
const { addressOrDenom: igpDenom, amount: igpAmount } = interchainGas;
|
|
260
|
+
(0, utils_1.assert)(igpDenom, 'Interchain gas denom required for Cosmos');
|
|
261
|
+
const funds = collateralDenom === igpDenom
|
|
246
262
|
? [
|
|
247
263
|
{
|
|
248
|
-
amount:
|
|
264
|
+
amount: (BigInt(weiAmountOrId) + igpAmount).toString(),
|
|
249
265
|
denom: collateralDenom,
|
|
250
266
|
},
|
|
251
267
|
]
|
|
@@ -255,8 +271,8 @@ class CwHypNativeAdapter extends CwNativeTokenAdapter {
|
|
|
255
271
|
denom: collateralDenom,
|
|
256
272
|
},
|
|
257
273
|
{
|
|
258
|
-
amount:
|
|
259
|
-
denom:
|
|
274
|
+
amount: igpAmount.toString(),
|
|
275
|
+
denom: igpDenom,
|
|
260
276
|
},
|
|
261
277
|
];
|
|
262
278
|
return this.cw20adapter.prepareRouter({
|
|
@@ -270,12 +286,11 @@ class CwHypNativeAdapter extends CwNativeTokenAdapter {
|
|
|
270
286
|
}
|
|
271
287
|
exports.CwHypNativeAdapter = CwHypNativeAdapter;
|
|
272
288
|
class CwHypCollateralAdapter extends CwHypNativeAdapter {
|
|
273
|
-
constructor(chainName, multiProvider, addresses
|
|
274
|
-
super(chainName, multiProvider, addresses
|
|
289
|
+
constructor(chainName, multiProvider, addresses) {
|
|
290
|
+
super(chainName, multiProvider, addresses);
|
|
275
291
|
this.chainName = chainName;
|
|
276
292
|
this.multiProvider = multiProvider;
|
|
277
293
|
this.addresses = addresses;
|
|
278
|
-
this.gasDenom = gasDenom;
|
|
279
294
|
}
|
|
280
295
|
}
|
|
281
296
|
exports.CwHypCollateralAdapter = CwHypCollateralAdapter;
|