@wormhole-foundation/sdk-cosmwasm-tokenbridge 0.5.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ export * from "./tokenBridge";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
18
+ const sdk_cosmwasm_1 = require("@wormhole-foundation/sdk-cosmwasm");
19
+ const tokenBridge_1 = require("./tokenBridge");
20
+ (0, sdk_connect_1.registerProtocol)(sdk_cosmwasm_1._platform, "TokenBridge", tokenBridge_1.CosmwasmTokenBridge);
21
+ __exportStar(require("./tokenBridge"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kEAAoE;AACpE,oEAA8D;AAC9D,+CAAoD;AAEpD,IAAA,8BAAgB,EAAC,wBAAS,EAAE,aAAa,EAAE,iCAAmB,CAAC,CAAC;AAEhE,gDAA8B"}
@@ -0,0 +1,27 @@
1
+ import { CosmWasmClient } from "@cosmjs/cosmwasm-stargate";
2
+ import { ChainAddress, ChainsConfig, Contracts, NativeAddress, Network, TokenBridge, TokenId, TxHash } from "@wormhole-foundation/sdk-connect";
3
+ import { AnyCosmwasmAddress, CosmwasmChains, CosmwasmPlatformType, CosmwasmUnsignedTransaction } from "@wormhole-foundation/sdk-cosmwasm";
4
+ import "@wormhole-foundation/sdk-cosmwasm-core";
5
+ export declare class CosmwasmTokenBridge<N extends Network, C extends CosmwasmChains> implements TokenBridge<N, C> {
6
+ readonly network: N;
7
+ readonly chain: C;
8
+ readonly rpc: CosmWasmClient;
9
+ readonly contracts: Contracts;
10
+ private tokenBridge;
11
+ private translator?;
12
+ private constructor();
13
+ static fromRpc<N extends Network>(rpc: CosmWasmClient, config: ChainsConfig<N, CosmwasmPlatformType>): Promise<CosmwasmTokenBridge<N, CosmwasmChains>>;
14
+ isWrappedAsset(token: AnyCosmwasmAddress): Promise<boolean>;
15
+ hasWrappedAsset(token: TokenId): Promise<boolean>;
16
+ getWrappedAsset(token: TokenId): Promise<NativeAddress<C>>;
17
+ getOriginalAsset(token: AnyCosmwasmAddress): Promise<TokenId>;
18
+ isTransferCompleted(vaa: TokenBridge.TransferVAA): Promise<boolean>;
19
+ createAttestation(token: AnyCosmwasmAddress, payer?: AnyCosmwasmAddress): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
20
+ submitAttestation(vaa: TokenBridge.AttestVAA, payer?: AnyCosmwasmAddress): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
21
+ transfer(sender: AnyCosmwasmAddress, recipient: ChainAddress, token: AnyCosmwasmAddress, amount: bigint, payload?: Uint8Array): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
22
+ redeem(sender: AnyCosmwasmAddress, vaa: TokenBridge.TransferVAA, unwrapNative?: boolean): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
23
+ parseTransactionDetails(txid: TxHash): Promise<void>;
24
+ getWrappedNative(): Promise<NativeAddress<C>>;
25
+ private createUnsignedTx;
26
+ }
27
+ //# sourceMappingURL=tokenBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenBridge.d.ts","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,OAAO,EACP,MAAM,EAQP,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAElB,cAAc,EAEd,oBAAoB,EAEpB,2BAA2B,EAK5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,wCAAwC,CAAC;AAEhD,qBAAa,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CAC1E,YAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAK1B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,GAAG,EAAE,cAAc;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAN/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO;WAkBM,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAQ5C,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ3D,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjD,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAmB1D,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7D,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlE,iBAAiB,CACtB,KAAK,EAAE,kBAAkB,EACzB,KAAK,CAAC,EAAE,kBAAkB,GACzB,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAgC7C,iBAAiB,CACtB,GAAG,EAAE,WAAW,CAAC,SAAS,EAC1B,KAAK,CAAC,EAAE,kBAAkB,GACzB,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAmB7C,QAAQ,CACb,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,UAAU,GACnB,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAqG7C,MAAM,CACX,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,WAAW,CAAC,WAAW,EAC5B,YAAY,GAAE,OAAc,GAC3B,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA+B9C,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAInD,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CosmwasmTokenBridge = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const sdk_cosmwasm_1 = require("@wormhole-foundation/sdk-cosmwasm");
6
+ require("@wormhole-foundation/sdk-cosmwasm-core");
7
+ class CosmwasmTokenBridge {
8
+ network;
9
+ chain;
10
+ rpc;
11
+ contracts;
12
+ tokenBridge;
13
+ translator;
14
+ constructor(network, chain, rpc, contracts) {
15
+ this.network = network;
16
+ this.chain = chain;
17
+ this.rpc = rpc;
18
+ this.contracts = contracts;
19
+ const tokenBridgeAddress = this.contracts.tokenBridge;
20
+ if (!tokenBridgeAddress)
21
+ throw new Error(`Wormhole Token Bridge contract for domain ${chain} not found`);
22
+ this.tokenBridge = tokenBridgeAddress;
23
+ // May be undefined, thats ok
24
+ this.translator = this.contracts.translator;
25
+ // But it cannot be an empty string (misconfiguration)
26
+ if (this.translator !== undefined && this.translator === "")
27
+ throw new Error("Translator address may be undefined but not empty string");
28
+ }
29
+ static async fromRpc(rpc, config) {
30
+ const [network, chain] = await sdk_cosmwasm_1.CosmwasmPlatform.chainFromRpc(rpc);
31
+ const conf = config[chain];
32
+ if (conf.network !== network)
33
+ throw new Error(`Network mismatch: ${conf.network} != ${network}`);
34
+ return new CosmwasmTokenBridge(network, chain, rpc, config[chain].contracts);
35
+ }
36
+ async isWrappedAsset(token) {
37
+ try {
38
+ await this.getOriginalAsset(token);
39
+ return true;
40
+ }
41
+ catch { }
42
+ return false;
43
+ }
44
+ async hasWrappedAsset(token) {
45
+ try {
46
+ await this.getWrappedAsset(token);
47
+ return true;
48
+ }
49
+ catch { }
50
+ return false;
51
+ }
52
+ async getWrappedAsset(token) {
53
+ if (token.chain === this.chain)
54
+ throw new Error(`Expected foreign chain, got ${token.chain}`);
55
+ if ((0, sdk_connect_1.isNative)(token.address))
56
+ throw new Error("Native asset cannot be a wrapped asset");
57
+ const base64Addr = sdk_connect_1.encoding.b64.encode(token.address.toUniversalAddress().toUint8Array());
58
+ const { address } = await this.rpc.queryContractSmart(this.tokenBridge, {
59
+ wrapped_registry: {
60
+ chain: (0, sdk_connect_1.toChainId)(token.chain),
61
+ address: base64Addr,
62
+ },
63
+ });
64
+ return (0, sdk_connect_1.toNative)(this.chain, address);
65
+ }
66
+ async getOriginalAsset(token) {
67
+ let wrappedAddress = new sdk_cosmwasm_1.CosmwasmAddress(token);
68
+ if (wrappedAddress.denomType === "factory")
69
+ wrappedAddress = sdk_cosmwasm_1.Gateway.factoryToCw20(wrappedAddress);
70
+ const response = await this.rpc.queryContractSmart(wrappedAddress.toString(), {
71
+ wrapped_asset_info: {},
72
+ });
73
+ const origChain = (0, sdk_connect_1.toChain)(response.asset_chain);
74
+ const origAddress = sdk_connect_1.encoding.b64.decode(response.asset_address);
75
+ return {
76
+ chain: origChain,
77
+ address: new sdk_connect_1.UniversalAddress(new Uint8Array(origAddress)),
78
+ };
79
+ }
80
+ async isTransferCompleted(vaa) {
81
+ const data = sdk_connect_1.encoding.b64.encode((0, sdk_connect_1.serialize)(vaa));
82
+ const result = await this.rpc.queryContractSmart(this.tokenBridge, {
83
+ is_vaa_redeemed: { vaa: data },
84
+ });
85
+ return result.is_redeemed;
86
+ }
87
+ async *createAttestation(token, payer) {
88
+ if (!payer)
89
+ throw new Error("Payer required to create attestation");
90
+ const tokenStr = new sdk_cosmwasm_1.CosmwasmAddress(token).toString();
91
+ const payerStr = new sdk_cosmwasm_1.CosmwasmAddress(payer).toString();
92
+ // TODO nonce?
93
+ const nonce = 0;
94
+ const assetInfo = (0, sdk_connect_1.isNative)(token)
95
+ ? {
96
+ native_token: {
97
+ denom: sdk_cosmwasm_1.CosmwasmPlatform.getNativeDenom(this.network, this.chain),
98
+ },
99
+ }
100
+ : {
101
+ token: { contract_addr: tokenStr },
102
+ };
103
+ yield this.createUnsignedTx({
104
+ msgs: [
105
+ (0, sdk_cosmwasm_1.buildExecuteMsg)(payerStr, this.tokenBridge, {
106
+ create_asset_meta: { asset_info: assetInfo, nonce },
107
+ }),
108
+ ],
109
+ fee: (0, sdk_cosmwasm_1.computeFee)(this.network, this.chain),
110
+ memo: "Wormhole - Create Attestation",
111
+ }, "TokenBridge.createAttestation");
112
+ }
113
+ async *submitAttestation(vaa, payer) {
114
+ if (!payer)
115
+ throw new Error("Payer required to submit attestation");
116
+ const payerStr = new sdk_cosmwasm_1.CosmwasmAddress(payer).toString();
117
+ yield this.createUnsignedTx({
118
+ msgs: [
119
+ (0, sdk_cosmwasm_1.buildExecuteMsg)(payerStr, this.tokenBridge, {
120
+ submit_vaa: { data: (0, sdk_connect_1.serialize)(vaa) },
121
+ }),
122
+ ],
123
+ fee: (0, sdk_cosmwasm_1.computeFee)(this.network, this.chain),
124
+ memo: "Wormhole - Submit Attestation",
125
+ }, "TokenBridge.submitAttestation");
126
+ }
127
+ async *transfer(sender, recipient, token, amount, payload) {
128
+ const nonce = Math.round(Math.random() * 100000);
129
+ const relayerFee = "0";
130
+ const recipientChainId = (0, sdk_connect_1.toChainId)(recipient.chain);
131
+ // TODO: do we need to use the _native_ address for cosmos chains?
132
+ const encodedRecipient = sdk_connect_1.encoding.b64.encode(recipient.address.toUniversalAddress().toUint8Array());
133
+ const denom = sdk_cosmwasm_1.CosmwasmPlatform.getNativeDenom(this.network, this.chain);
134
+ const isNativeToken = (0, sdk_connect_1.isNative)(token);
135
+ let tokenAddress = isNativeToken ? denom : token.toString();
136
+ if (tokenAddress.startsWith("factory"))
137
+ tokenAddress = sdk_cosmwasm_1.Gateway.factoryToCw20(new sdk_cosmwasm_1.CosmwasmAddress(tokenAddress)).toString();
138
+ const senderAddress = new sdk_cosmwasm_1.CosmwasmAddress(sender).toString();
139
+ const mk_initiate_transfer = (info) => {
140
+ const common = {
141
+ asset: {
142
+ amount: amount.toString(),
143
+ info,
144
+ },
145
+ recipient_chain: recipientChainId,
146
+ recipient: encodedRecipient,
147
+ fee: relayerFee,
148
+ nonce: nonce,
149
+ };
150
+ return payload
151
+ ? {
152
+ initiate_transfer_with_payload: { ...common, payload: sdk_connect_1.encoding.b64.encode(payload) },
153
+ }
154
+ : {
155
+ initiate_transfer: common,
156
+ };
157
+ };
158
+ // this.createConvertAndTransferMessage(
159
+ // senderAddress,
160
+ // targetChain,
161
+ // targetAddress,
162
+ // relayerFee,
163
+ // { denom: Gateway.cw20ToFactory(token), amount },
164
+ // )
165
+ if (isNativeToken) {
166
+ const msgs = [
167
+ (0, sdk_cosmwasm_1.buildExecuteMsg)(senderAddress, this.tokenBridge, { deposit_tokens: {} }, [
168
+ { amount: amount.toString(), denom: tokenAddress },
169
+ ]),
170
+ (0, sdk_cosmwasm_1.buildExecuteMsg)(senderAddress, this.tokenBridge, mk_initiate_transfer({
171
+ native_token: { denom: tokenAddress },
172
+ })),
173
+ ];
174
+ yield this.createUnsignedTx({
175
+ msgs,
176
+ fee: (0, sdk_cosmwasm_1.computeFee)(this.network, this.chain),
177
+ memo: "Wormhole - Initiate Native Transfer",
178
+ }, "TokenBridge.transferNative");
179
+ }
180
+ else {
181
+ const msgs = [
182
+ (0, sdk_cosmwasm_1.buildExecuteMsg)(senderAddress, tokenAddress, {
183
+ increase_allowance: {
184
+ spender: this.tokenBridge,
185
+ amount: amount.toString(),
186
+ expires: { never: {} },
187
+ },
188
+ }),
189
+ (0, sdk_cosmwasm_1.buildExecuteMsg)(senderAddress, this.tokenBridge, mk_initiate_transfer({
190
+ token: { contract_addr: tokenAddress },
191
+ }), [{ amount: amount.toString(), denom: tokenAddress }]),
192
+ ];
193
+ yield this.createUnsignedTx({
194
+ msgs,
195
+ fee: (0, sdk_cosmwasm_1.computeFee)(this.network, this.chain),
196
+ memo: "Wormhole - Initiate Transfer",
197
+ }, "TokenBridge.transfer");
198
+ }
199
+ }
200
+ async *redeem(sender, vaa, unwrapNative = true) {
201
+ // TODO: unwrapNative
202
+ const data = sdk_connect_1.encoding.b64.encode((0, sdk_connect_1.serialize)(vaa));
203
+ const senderAddress = new sdk_cosmwasm_1.CosmwasmAddress(sender).toString();
204
+ const toTranslator = this.translator &&
205
+ new sdk_cosmwasm_1.CosmwasmAddress(this.translator).toUniversalAddress().equals(vaa.payload.to.address);
206
+ const msg = toTranslator
207
+ ? (0, sdk_cosmwasm_1.buildExecuteMsg)(senderAddress, this.translator, {
208
+ complete_transfer_and_convert: {
209
+ vaa: data,
210
+ },
211
+ })
212
+ : (0, sdk_cosmwasm_1.buildExecuteMsg)(senderAddress, this.tokenBridge, {
213
+ submit_vaa: { data },
214
+ });
215
+ yield this.createUnsignedTx({
216
+ msgs: [msg],
217
+ fee: (0, sdk_cosmwasm_1.computeFee)(this.network, this.chain),
218
+ memo: "Wormhole - Complete Transfer",
219
+ }, "TokenBridge.redeem");
220
+ return;
221
+ }
222
+ async parseTransactionDetails(txid) {
223
+ throw new Error("Not implemented");
224
+ }
225
+ async getWrappedNative() {
226
+ return (0, sdk_connect_1.toNative)(this.chain, sdk_cosmwasm_1.CosmwasmPlatform.getNativeDenom(this.network, this.chain));
227
+ }
228
+ createUnsignedTx(txReq, description, parallelizable = false) {
229
+ return new sdk_cosmwasm_1.CosmwasmUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
230
+ }
231
+ }
232
+ exports.CosmwasmTokenBridge = CosmwasmTokenBridge;
233
+ //# sourceMappingURL=tokenBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenBridge.js","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./tokenBridge";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { registerProtocol } from "@wormhole-foundation/sdk-connect";
2
+ import { _platform } from "@wormhole-foundation/sdk-cosmwasm";
3
+ import { CosmwasmTokenBridge } from "./tokenBridge";
4
+ registerProtocol(_platform, "TokenBridge", CosmwasmTokenBridge);
5
+ export * from "./tokenBridge";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAEhE,cAAc,eAAe,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { CosmWasmClient } from "@cosmjs/cosmwasm-stargate";
2
+ import { ChainAddress, ChainsConfig, Contracts, NativeAddress, Network, TokenBridge, TokenId, TxHash } from "@wormhole-foundation/sdk-connect";
3
+ import { AnyCosmwasmAddress, CosmwasmChains, CosmwasmPlatformType, CosmwasmUnsignedTransaction } from "@wormhole-foundation/sdk-cosmwasm";
4
+ import "@wormhole-foundation/sdk-cosmwasm-core";
5
+ export declare class CosmwasmTokenBridge<N extends Network, C extends CosmwasmChains> implements TokenBridge<N, C> {
6
+ readonly network: N;
7
+ readonly chain: C;
8
+ readonly rpc: CosmWasmClient;
9
+ readonly contracts: Contracts;
10
+ private tokenBridge;
11
+ private translator?;
12
+ private constructor();
13
+ static fromRpc<N extends Network>(rpc: CosmWasmClient, config: ChainsConfig<N, CosmwasmPlatformType>): Promise<CosmwasmTokenBridge<N, CosmwasmChains>>;
14
+ isWrappedAsset(token: AnyCosmwasmAddress): Promise<boolean>;
15
+ hasWrappedAsset(token: TokenId): Promise<boolean>;
16
+ getWrappedAsset(token: TokenId): Promise<NativeAddress<C>>;
17
+ getOriginalAsset(token: AnyCosmwasmAddress): Promise<TokenId>;
18
+ isTransferCompleted(vaa: TokenBridge.TransferVAA): Promise<boolean>;
19
+ createAttestation(token: AnyCosmwasmAddress, payer?: AnyCosmwasmAddress): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
20
+ submitAttestation(vaa: TokenBridge.AttestVAA, payer?: AnyCosmwasmAddress): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
21
+ transfer(sender: AnyCosmwasmAddress, recipient: ChainAddress, token: AnyCosmwasmAddress, amount: bigint, payload?: Uint8Array): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
22
+ redeem(sender: AnyCosmwasmAddress, vaa: TokenBridge.TransferVAA, unwrapNative?: boolean): AsyncGenerator<CosmwasmUnsignedTransaction<N, C>>;
23
+ parseTransactionDetails(txid: TxHash): Promise<void>;
24
+ getWrappedNative(): Promise<NativeAddress<C>>;
25
+ private createUnsignedTx;
26
+ }
27
+ //# sourceMappingURL=tokenBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenBridge.d.ts","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,OAAO,EACP,MAAM,EAQP,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAElB,cAAc,EAEd,oBAAoB,EAEpB,2BAA2B,EAK5B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,wCAAwC,CAAC;AAEhD,qBAAa,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,cAAc,CAC1E,YAAW,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IAK1B,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,GAAG,EAAE,cAAc;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAN/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO;WAkBM,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,oBAAoB,CAAC,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAQ5C,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ3D,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQjD,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAmB1D,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7D,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAQlE,iBAAiB,CACtB,KAAK,EAAE,kBAAkB,EACzB,KAAK,CAAC,EAAE,kBAAkB,GACzB,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAgC7C,iBAAiB,CACtB,GAAG,EAAE,WAAW,CAAC,SAAS,EAC1B,KAAK,CAAC,EAAE,kBAAkB,GACzB,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAmB7C,QAAQ,CACb,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,UAAU,GACnB,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAqG7C,MAAM,CACX,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,WAAW,CAAC,WAAW,EAC5B,YAAY,GAAE,OAAc,GAC3B,cAAc,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA+B9C,uBAAuB,CAAC,IAAI,EAAE,MAAM;IAIpC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAInD,OAAO,CAAC,gBAAgB;CAazB"}
@@ -0,0 +1,229 @@
1
+ import { UniversalAddress, encoding, isNative, serialize, toChain, toChainId, toNative, } from "@wormhole-foundation/sdk-connect";
2
+ import { CosmwasmAddress, CosmwasmPlatform, CosmwasmUnsignedTransaction, Gateway, buildExecuteMsg, computeFee, } from "@wormhole-foundation/sdk-cosmwasm";
3
+ import "@wormhole-foundation/sdk-cosmwasm-core";
4
+ export class CosmwasmTokenBridge {
5
+ network;
6
+ chain;
7
+ rpc;
8
+ contracts;
9
+ tokenBridge;
10
+ translator;
11
+ constructor(network, chain, rpc, contracts) {
12
+ this.network = network;
13
+ this.chain = chain;
14
+ this.rpc = rpc;
15
+ this.contracts = contracts;
16
+ const tokenBridgeAddress = this.contracts.tokenBridge;
17
+ if (!tokenBridgeAddress)
18
+ throw new Error(`Wormhole Token Bridge contract for domain ${chain} not found`);
19
+ this.tokenBridge = tokenBridgeAddress;
20
+ // May be undefined, thats ok
21
+ this.translator = this.contracts.translator;
22
+ // But it cannot be an empty string (misconfiguration)
23
+ if (this.translator !== undefined && this.translator === "")
24
+ throw new Error("Translator address may be undefined but not empty string");
25
+ }
26
+ static async fromRpc(rpc, config) {
27
+ const [network, chain] = await CosmwasmPlatform.chainFromRpc(rpc);
28
+ const conf = config[chain];
29
+ if (conf.network !== network)
30
+ throw new Error(`Network mismatch: ${conf.network} != ${network}`);
31
+ return new CosmwasmTokenBridge(network, chain, rpc, config[chain].contracts);
32
+ }
33
+ async isWrappedAsset(token) {
34
+ try {
35
+ await this.getOriginalAsset(token);
36
+ return true;
37
+ }
38
+ catch { }
39
+ return false;
40
+ }
41
+ async hasWrappedAsset(token) {
42
+ try {
43
+ await this.getWrappedAsset(token);
44
+ return true;
45
+ }
46
+ catch { }
47
+ return false;
48
+ }
49
+ async getWrappedAsset(token) {
50
+ if (token.chain === this.chain)
51
+ throw new Error(`Expected foreign chain, got ${token.chain}`);
52
+ if (isNative(token.address))
53
+ throw new Error("Native asset cannot be a wrapped asset");
54
+ const base64Addr = encoding.b64.encode(token.address.toUniversalAddress().toUint8Array());
55
+ const { address } = await this.rpc.queryContractSmart(this.tokenBridge, {
56
+ wrapped_registry: {
57
+ chain: toChainId(token.chain),
58
+ address: base64Addr,
59
+ },
60
+ });
61
+ return toNative(this.chain, address);
62
+ }
63
+ async getOriginalAsset(token) {
64
+ let wrappedAddress = new CosmwasmAddress(token);
65
+ if (wrappedAddress.denomType === "factory")
66
+ wrappedAddress = Gateway.factoryToCw20(wrappedAddress);
67
+ const response = await this.rpc.queryContractSmart(wrappedAddress.toString(), {
68
+ wrapped_asset_info: {},
69
+ });
70
+ const origChain = toChain(response.asset_chain);
71
+ const origAddress = encoding.b64.decode(response.asset_address);
72
+ return {
73
+ chain: origChain,
74
+ address: new UniversalAddress(new Uint8Array(origAddress)),
75
+ };
76
+ }
77
+ async isTransferCompleted(vaa) {
78
+ const data = encoding.b64.encode(serialize(vaa));
79
+ const result = await this.rpc.queryContractSmart(this.tokenBridge, {
80
+ is_vaa_redeemed: { vaa: data },
81
+ });
82
+ return result.is_redeemed;
83
+ }
84
+ async *createAttestation(token, payer) {
85
+ if (!payer)
86
+ throw new Error("Payer required to create attestation");
87
+ const tokenStr = new CosmwasmAddress(token).toString();
88
+ const payerStr = new CosmwasmAddress(payer).toString();
89
+ // TODO nonce?
90
+ const nonce = 0;
91
+ const assetInfo = isNative(token)
92
+ ? {
93
+ native_token: {
94
+ denom: CosmwasmPlatform.getNativeDenom(this.network, this.chain),
95
+ },
96
+ }
97
+ : {
98
+ token: { contract_addr: tokenStr },
99
+ };
100
+ yield this.createUnsignedTx({
101
+ msgs: [
102
+ buildExecuteMsg(payerStr, this.tokenBridge, {
103
+ create_asset_meta: { asset_info: assetInfo, nonce },
104
+ }),
105
+ ],
106
+ fee: computeFee(this.network, this.chain),
107
+ memo: "Wormhole - Create Attestation",
108
+ }, "TokenBridge.createAttestation");
109
+ }
110
+ async *submitAttestation(vaa, payer) {
111
+ if (!payer)
112
+ throw new Error("Payer required to submit attestation");
113
+ const payerStr = new CosmwasmAddress(payer).toString();
114
+ yield this.createUnsignedTx({
115
+ msgs: [
116
+ buildExecuteMsg(payerStr, this.tokenBridge, {
117
+ submit_vaa: { data: serialize(vaa) },
118
+ }),
119
+ ],
120
+ fee: computeFee(this.network, this.chain),
121
+ memo: "Wormhole - Submit Attestation",
122
+ }, "TokenBridge.submitAttestation");
123
+ }
124
+ async *transfer(sender, recipient, token, amount, payload) {
125
+ const nonce = Math.round(Math.random() * 100000);
126
+ const relayerFee = "0";
127
+ const recipientChainId = toChainId(recipient.chain);
128
+ // TODO: do we need to use the _native_ address for cosmos chains?
129
+ const encodedRecipient = encoding.b64.encode(recipient.address.toUniversalAddress().toUint8Array());
130
+ const denom = CosmwasmPlatform.getNativeDenom(this.network, this.chain);
131
+ const isNativeToken = isNative(token);
132
+ let tokenAddress = isNativeToken ? denom : token.toString();
133
+ if (tokenAddress.startsWith("factory"))
134
+ tokenAddress = Gateway.factoryToCw20(new CosmwasmAddress(tokenAddress)).toString();
135
+ const senderAddress = new CosmwasmAddress(sender).toString();
136
+ const mk_initiate_transfer = (info) => {
137
+ const common = {
138
+ asset: {
139
+ amount: amount.toString(),
140
+ info,
141
+ },
142
+ recipient_chain: recipientChainId,
143
+ recipient: encodedRecipient,
144
+ fee: relayerFee,
145
+ nonce: nonce,
146
+ };
147
+ return payload
148
+ ? {
149
+ initiate_transfer_with_payload: { ...common, payload: encoding.b64.encode(payload) },
150
+ }
151
+ : {
152
+ initiate_transfer: common,
153
+ };
154
+ };
155
+ // this.createConvertAndTransferMessage(
156
+ // senderAddress,
157
+ // targetChain,
158
+ // targetAddress,
159
+ // relayerFee,
160
+ // { denom: Gateway.cw20ToFactory(token), amount },
161
+ // )
162
+ if (isNativeToken) {
163
+ const msgs = [
164
+ buildExecuteMsg(senderAddress, this.tokenBridge, { deposit_tokens: {} }, [
165
+ { amount: amount.toString(), denom: tokenAddress },
166
+ ]),
167
+ buildExecuteMsg(senderAddress, this.tokenBridge, mk_initiate_transfer({
168
+ native_token: { denom: tokenAddress },
169
+ })),
170
+ ];
171
+ yield this.createUnsignedTx({
172
+ msgs,
173
+ fee: computeFee(this.network, this.chain),
174
+ memo: "Wormhole - Initiate Native Transfer",
175
+ }, "TokenBridge.transferNative");
176
+ }
177
+ else {
178
+ const msgs = [
179
+ buildExecuteMsg(senderAddress, tokenAddress, {
180
+ increase_allowance: {
181
+ spender: this.tokenBridge,
182
+ amount: amount.toString(),
183
+ expires: { never: {} },
184
+ },
185
+ }),
186
+ buildExecuteMsg(senderAddress, this.tokenBridge, mk_initiate_transfer({
187
+ token: { contract_addr: tokenAddress },
188
+ }), [{ amount: amount.toString(), denom: tokenAddress }]),
189
+ ];
190
+ yield this.createUnsignedTx({
191
+ msgs,
192
+ fee: computeFee(this.network, this.chain),
193
+ memo: "Wormhole - Initiate Transfer",
194
+ }, "TokenBridge.transfer");
195
+ }
196
+ }
197
+ async *redeem(sender, vaa, unwrapNative = true) {
198
+ // TODO: unwrapNative
199
+ const data = encoding.b64.encode(serialize(vaa));
200
+ const senderAddress = new CosmwasmAddress(sender).toString();
201
+ const toTranslator = this.translator &&
202
+ new CosmwasmAddress(this.translator).toUniversalAddress().equals(vaa.payload.to.address);
203
+ const msg = toTranslator
204
+ ? buildExecuteMsg(senderAddress, this.translator, {
205
+ complete_transfer_and_convert: {
206
+ vaa: data,
207
+ },
208
+ })
209
+ : buildExecuteMsg(senderAddress, this.tokenBridge, {
210
+ submit_vaa: { data },
211
+ });
212
+ yield this.createUnsignedTx({
213
+ msgs: [msg],
214
+ fee: computeFee(this.network, this.chain),
215
+ memo: "Wormhole - Complete Transfer",
216
+ }, "TokenBridge.redeem");
217
+ return;
218
+ }
219
+ async parseTransactionDetails(txid) {
220
+ throw new Error("Not implemented");
221
+ }
222
+ async getWrappedNative() {
223
+ return toNative(this.chain, CosmwasmPlatform.getNativeDenom(this.network, this.chain));
224
+ }
225
+ createUnsignedTx(txReq, description, parallelizable = false) {
226
+ return new CosmwasmUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
227
+ }
228
+ }
229
+ //# sourceMappingURL=tokenBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenBridge.js","sourceRoot":"","sources":["../../src/tokenBridge.ts"],"names":[],"mappings":"AACA,OAAO,EASL,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,GACT,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAEL,eAAe,EAEf,gBAAgB,EAGhB,2BAA2B,EAC3B,OAAO,EAEP,eAAe,EACf,UAAU,GACX,MAAM,mCAAmC,CAAC;AAE3C,OAAO,wCAAwC,CAAC;AAEhD,MAAM,OAAO,mBAAmB;IAMnB;IACA;IACA;IACA;IANH,WAAW,CAAS;IACpB,UAAU,CAAU;IAC5B,YACW,OAAU,EACV,KAAQ,EACR,GAAmB,EACnB,SAAoB;QAHpB,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,QAAG,GAAH,GAAG,CAAgB;QACnB,cAAS,GAAT,SAAS,CAAW;QAE7B,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAY,CAAC;QACvD,IAAI,CAAC,kBAAkB;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,YAAY,CAAC,CAAC;QAElF,IAAI,CAAC,WAAW,GAAG,kBAAkB,CAAC;QACtC,6BAA6B;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;QAC5C,sDAAsD;QACtD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE;YACzD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,GAAmB,EACnB,MAA6C;QAE7C,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,OAAO,OAAO,OAAO,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,mBAAmB,CAAC,OAAY,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAE,CAAC,SAAS,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAyB;QAC5C,IAAI;YACF,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACb;QAAC,MAAM,GAAE;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAc;QAClC,IAAI;YACF,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;SACb;QAAC,MAAM,GAAE;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAc;QAClC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9F,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAEvF,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1F,MAAM,EAAE,OAAO,EAAE,GAA4B,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAC5E,IAAI,CAAC,WAAW,EAChB;YACE,gBAAgB,EAAE;gBAChB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC7B,OAAO,EAAE,UAAU;aACpB;SACF,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAyB;QAC9C,IAAI,cAAc,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,cAAc,CAAC,SAAS,KAAK,SAAS;YACxC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE;YAC5E,kBAAkB,EAAE,EAAE;SACvB,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEhE,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI,gBAAgB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;SAC3D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAA4B;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE;YACjE,eAAe,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SAC/B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAC,iBAAiB,CACtB,KAAyB,EACzB,KAA0B;QAE1B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEvD,cAAc;QACd,MAAM,KAAK,GAAG,CAAC,CAAC;QAChB,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC/B,CAAC,CAAC;gBACE,YAAY,EAAE;oBACZ,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;iBACjE;aACF;YACH,CAAC,CAAC;gBACE,KAAK,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE;aACnC,CAAC;QAEN,MAAM,IAAI,CAAC,gBAAgB,CACzB;YACE,IAAI,EAAE;gBACJ,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC1C,iBAAiB,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE;iBACpD,CAAC;aACH;YACD,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,+BAA+B;SACtC,EACD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,iBAAiB,CACtB,GAA0B,EAC1B,KAA0B;QAE1B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEvD,MAAM,IAAI,CAAC,gBAAgB,CACzB;YACE,IAAI,EAAE;gBACJ,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE;oBAC1C,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;iBACrC,CAAC;aACH;YACD,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,+BAA+B;SACtC,EACD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,CAAC,QAAQ,CACb,MAA0B,EAC1B,SAAuB,EACvB,KAAyB,EACzB,MAAc,EACd,OAAoB;QAEpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,GAAG,CAAC;QAEvB,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpD,kEAAkE;QAClE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAC1C,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,CACtD,CAAC;QAEF,MAAM,KAAK,GAAG,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAExE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEtC,IAAI,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5D,IAAI,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;YACpC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAErF,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7D,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE;YAC5C,MAAM,MAAM,GAAG;gBACb,KAAK,EAAE;oBACL,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;oBACzB,IAAI;iBACL;gBACD,eAAe,EAAE,gBAAgB;gBACjC,SAAS,EAAE,gBAAgB;gBAC3B,GAAG,EAAE,UAAU;gBACf,KAAK,EAAE,KAAK;aACb,CAAC;YAEF,OAAO,OAAO;gBACZ,CAAC,CAAC;oBACE,8BAA8B,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;iBACrF;gBACH,CAAC,CAAC;oBACE,iBAAiB,EAAE,MAAM;iBAC1B,CAAC;QACR,CAAC,CAAC;QAEF,wCAAwC;QACxC,yBAAyB;QACzB,uBAAuB;QACvB,yBAAyB;QACzB,sBAAsB;QACtB,2DAA2D;QAC3D,UAAU;QAEV,IAAI,aAAa,EAAE;YACjB,MAAM,IAAI,GAAG;gBACX,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE;oBACvE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;iBACnD,CAAC;gBACF,eAAe,CACb,aAAa,EACb,IAAI,CAAC,WAAW,EAChB,oBAAoB,CAAC;oBACnB,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;iBACtC,CAAC,CACH;aACF,CAAC;YAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB;gBACE,IAAI;gBACJ,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;gBACzC,IAAI,EAAE,qCAAqC;aAC5C,EACD,4BAA4B,CAC7B,CAAC;SACH;aAAM;YACL,MAAM,IAAI,GAAG;gBACX,eAAe,CAAC,aAAa,EAAE,YAAY,EAAE;oBAC3C,kBAAkB,EAAE;wBAClB,OAAO,EAAE,IAAI,CAAC,WAAW;wBACzB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;wBACzB,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;qBACvB;iBACF,CAAC;gBACF,eAAe,CACb,aAAa,EACb,IAAI,CAAC,WAAW,EAChB,oBAAoB,CAAC;oBACnB,KAAK,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE;iBACvC,CAAC,EACF,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CACrD;aACF,CAAC;YAEF,MAAM,IAAI,CAAC,gBAAgB,CACzB;gBACE,IAAI;gBACJ,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;gBACzC,IAAI,EAAE,8BAA8B;aACrC,EACD,sBAAsB,CACvB,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CACX,MAA0B,EAC1B,GAA4B,EAC5B,eAAwB,IAAI;QAE5B,qBAAqB;QAErB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7D,MAAM,YAAY,GAChB,IAAI,CAAC,UAAU;YACf,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAE3F,MAAM,GAAG,GAAG,YAAY;YACtB,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,UAAW,EAAE;gBAC/C,6BAA6B,EAAE;oBAC7B,GAAG,EAAE,IAAI;iBACV;aACF,CAAC;YACJ,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC/C,UAAU,EAAE,EAAE,IAAI,EAAE;aACrB,CAAC,CAAC;QAEP,MAAM,IAAI,CAAC,gBAAgB,CACzB;YACE,IAAI,EAAE,CAAC,GAAG,CAAC;YACX,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,8BAA8B;SACrC,EACD,oBAAoB,CACrB,CAAC;QACF,OAAO;IACT,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,IAAY;QACxC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,gBAAgB,CACtB,KAA0B,EAC1B,WAAmB,EACnB,iBAA0B,KAAK;QAE/B,OAAO,IAAI,2BAA2B,CACpC,KAAK,EACL,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,WAAW,EACX,cAAc,CACf,CAAC;IACJ,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@wormhole-foundation/sdk-cosmwasm-tokenbridge",
3
+ "version": "0.5.0-alpha.0",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
7
+ },
8
+ "bugs": {
9
+ "url": "https://github.com/wormhole-foundation/connect-sdk/issues"
10
+ },
11
+ "homepage": "https://github.com/wormhole-foundation/connect-sdk#readme",
12
+ "directories": {
13
+ "test": "tests"
14
+ },
15
+ "license": "Apache-2.0",
16
+ "main": "./dist/cjs/index.js",
17
+ "module": "./dist/esm/index.js",
18
+ "types": "./dist/cjs/index.d.ts",
19
+ "author": "",
20
+ "description": "SDK for EVM chains, used in conjunction with @wormhole-foundation/sdk",
21
+ "files": [
22
+ "dist/cjs",
23
+ "dist/esm"
24
+ ],
25
+ "keywords": [
26
+ "wormhole",
27
+ "sdk",
28
+ "typescript",
29
+ "connect",
30
+ "ethereum",
31
+ "moonbeam",
32
+ "celo",
33
+ "polygon",
34
+ "fantom",
35
+ "avalanche",
36
+ "bsc",
37
+ "evm"
38
+ ],
39
+ "engines": {
40
+ "node": ">=16"
41
+ },
42
+ "sideEffects": true,
43
+ "scripts": {
44
+ "build:cjs": "tsc -p ./tsconfig.cjs.json",
45
+ "build:esm": "tsc -p ./tsconfig.esm.json",
46
+ "build": "npm run build:cjs && npm run build:esm",
47
+ "rebuild": "npm run clean && npm run build",
48
+ "clean": "rm -rf ./dist && rm -rf ./.turbo",
49
+ "lint": "npm run prettier && eslint --fix",
50
+ "prettier": "prettier --write ./src"
51
+ },
52
+ "dependencies": {
53
+ "@cosmjs/cosmwasm-stargate": "^0.32.0",
54
+ "@cosmjs/stargate": "^0.32.0",
55
+ "cosmjs-types": "^0.9.0",
56
+ "@wormhole-foundation/sdk-connect": "0.5.0-alpha.0",
57
+ "@wormhole-foundation/sdk-cosmwasm": "0.5.0-alpha.0"
58
+ }
59
+ }