@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.
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/tokenBridge.d.ts +27 -0
- package/dist/cjs/tokenBridge.d.ts.map +1 -0
- package/dist/cjs/tokenBridge.js +233 -0
- package/dist/cjs/tokenBridge.js.map +1 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/tokenBridge.d.ts +27 -0
- package/dist/esm/tokenBridge.d.ts.map +1 -0
- package/dist/esm/tokenBridge.js +229 -0
- package/dist/esm/tokenBridge.js.map +1 -0
- package/package.json +59 -0
|
@@ -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 @@
|
|
|
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":"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"}
|
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
|
+
}
|