@wormhole-foundation/sdk-sui-tokenbridge 4.22.0 → 5.0.0-beta.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/esm/automaticTokenBridge.d.ts +9 -5
- package/dist/esm/automaticTokenBridge.d.ts.map +1 -1
- package/dist/esm/automaticTokenBridge.js +51 -87
- package/dist/esm/automaticTokenBridge.js.map +1 -1
- package/dist/esm/executorTokenBridge.d.ts +6 -5
- package/dist/esm/executorTokenBridge.d.ts.map +1 -1
- package/dist/esm/executorTokenBridge.js +1 -3
- package/dist/esm/executorTokenBridge.js.map +1 -1
- package/dist/esm/tokenBridge.d.ts +4 -4
- package/dist/esm/tokenBridge.d.ts.map +1 -1
- package/dist/esm/tokenBridge.js +62 -113
- package/dist/esm/tokenBridge.js.map +1 -1
- package/dist/esm/utils.d.ts +8 -3
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +38 -45
- package/dist/esm/utils.js.map +1 -1
- package/package.json +13 -31
- package/dist/cjs/automaticTokenBridge.d.ts +0 -34
- package/dist/cjs/automaticTokenBridge.d.ts.map +0 -1
- package/dist/cjs/automaticTokenBridge.js +0 -315
- package/dist/cjs/automaticTokenBridge.js.map +0 -1
- package/dist/cjs/executorTokenBridge.d.ts +0 -26
- package/dist/cjs/executorTokenBridge.d.ts.map +0 -1
- package/dist/cjs/executorTokenBridge.js +0 -208
- package/dist/cjs/executorTokenBridge.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -5
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -28
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/tokenBridge.d.ts +0 -33
- package/dist/cjs/tokenBridge.d.ts.map +0 -1
- package/dist/cjs/tokenBridge.js +0 -478
- package/dist/cjs/tokenBridge.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -4
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js +0 -69
- package/dist/cjs/utils.js.map +0 -1
|
@@ -1,315 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SuiAutomaticTokenBridge = void 0;
|
|
4
|
-
const transactions_1 = require("@mysten/sui/transactions");
|
|
5
|
-
const utils_1 = require("@mysten/sui/utils");
|
|
6
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
7
|
-
const sdk_sui_1 = require("@wormhole-foundation/sdk-sui");
|
|
8
|
-
require("@wormhole-foundation/sdk-sui-core");
|
|
9
|
-
const utils_js_1 = require("./utils.js");
|
|
10
|
-
class SuiAutomaticTokenBridge {
|
|
11
|
-
network;
|
|
12
|
-
chain;
|
|
13
|
-
connection;
|
|
14
|
-
contracts;
|
|
15
|
-
tokenBridgeRelayerObjectId;
|
|
16
|
-
coreBridgeObjectId;
|
|
17
|
-
tokenBridgeObjectId;
|
|
18
|
-
fields;
|
|
19
|
-
constructor(network, chain, connection, contracts) {
|
|
20
|
-
this.network = network;
|
|
21
|
-
this.chain = chain;
|
|
22
|
-
this.connection = connection;
|
|
23
|
-
this.contracts = contracts;
|
|
24
|
-
const { tokenBridge, tokenBridgeRelayer, coreBridge } = contracts;
|
|
25
|
-
if (!tokenBridge || !tokenBridgeRelayer || !coreBridge)
|
|
26
|
-
throw new Error(`Some object IDs for ${chain} Automatic Token Bridge not found`);
|
|
27
|
-
this.tokenBridgeRelayerObjectId = tokenBridgeRelayer;
|
|
28
|
-
this.tokenBridgeObjectId = tokenBridge;
|
|
29
|
-
this.coreBridgeObjectId = coreBridge;
|
|
30
|
-
}
|
|
31
|
-
static async fromRpc(connection, config) {
|
|
32
|
-
const [network, chain] = await sdk_sui_1.SuiPlatform.chainFromRpc(connection);
|
|
33
|
-
const conf = config[chain];
|
|
34
|
-
if (conf.network !== network)
|
|
35
|
-
throw new Error(`Network mismatch for chain ${chain}: ${conf.network} != ${network}`);
|
|
36
|
-
return new SuiAutomaticTokenBridge(network, chain, connection, conf.contracts);
|
|
37
|
-
}
|
|
38
|
-
async *transfer(sender, recipient, token, amount, nativeGas) {
|
|
39
|
-
const tokenAddress = new sdk_sui_1.SuiAddress((0, sdk_connect_1.isNative)(token) ? sdk_sui_1.SuiPlatform.nativeTokenId(this.network, this.chain).address : token);
|
|
40
|
-
const coinType = tokenAddress.getCoinType();
|
|
41
|
-
const { coreBridge: coreBridgePackageId, tokenBridge: tokenBridgePackageId } = await this.getPackageIds();
|
|
42
|
-
const tx = new transactions_1.Transaction();
|
|
43
|
-
const feeAmount = BigInt(0); // TODO: wormhole fee
|
|
44
|
-
const [feeCoin] = tx.splitCoins(tx.gas, [tx.pure.u64(feeAmount)]);
|
|
45
|
-
const [transferCoin] = await (async () => {
|
|
46
|
-
if ((0, sdk_connect_1.isNative)(token)) {
|
|
47
|
-
return tx.splitCoins(tx.gas, [tx.pure.u64(amount)]);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const coins = await sdk_sui_1.SuiPlatform.getCoins(this.connection, sender, coinType);
|
|
51
|
-
const [primaryCoin, ...mergeCoins] = coins.filter((coin) => coin.coinType === coinType);
|
|
52
|
-
if (primaryCoin === undefined) {
|
|
53
|
-
throw new Error(`Coins array doesn't contain any coins of type ${coinType}`);
|
|
54
|
-
}
|
|
55
|
-
const primaryCoinInput = tx.object(primaryCoin.coinObjectId);
|
|
56
|
-
if (mergeCoins.length) {
|
|
57
|
-
tx.mergeCoins(primaryCoinInput, mergeCoins.map((coin) => tx.object(coin.coinObjectId)));
|
|
58
|
-
}
|
|
59
|
-
return tx.splitCoins(primaryCoinInput, [tx.pure.u64(amount)]);
|
|
60
|
-
}
|
|
61
|
-
})();
|
|
62
|
-
const [assetInfo] = tx.moveCall({
|
|
63
|
-
target: `${tokenBridgePackageId}::state::verified_asset`,
|
|
64
|
-
arguments: [tx.object(this.tokenBridgeObjectId)],
|
|
65
|
-
typeArguments: [coinType],
|
|
66
|
-
});
|
|
67
|
-
const suiRelayerPackageId = await this.getPackageId();
|
|
68
|
-
const [transferTicket] = tx.moveCall({
|
|
69
|
-
target: `${suiRelayerPackageId}::transfer::transfer_tokens_with_relay`,
|
|
70
|
-
arguments: [
|
|
71
|
-
tx.object(this.tokenBridgeRelayerObjectId),
|
|
72
|
-
transferCoin,
|
|
73
|
-
assetInfo,
|
|
74
|
-
tx.pure.u64(nativeGas ?? 0n),
|
|
75
|
-
tx.pure.u16((0, sdk_connect_1.toChainId)(recipient.chain)),
|
|
76
|
-
tx.pure.address(sdk_connect_1.encoding.hex.encode(recipient.address.toUint8Array(), true)),
|
|
77
|
-
tx.pure.u32(123),
|
|
78
|
-
],
|
|
79
|
-
typeArguments: [coinType],
|
|
80
|
-
});
|
|
81
|
-
const [messageTicket] = tx.moveCall({
|
|
82
|
-
target: `${tokenBridgePackageId}::transfer_tokens_with_payload::transfer_tokens_with_payload`,
|
|
83
|
-
arguments: [tx.object(this.tokenBridgeObjectId), transferTicket],
|
|
84
|
-
typeArguments: [coinType],
|
|
85
|
-
});
|
|
86
|
-
tx.moveCall({
|
|
87
|
-
target: `${coreBridgePackageId}::publish_message::publish_message`,
|
|
88
|
-
arguments: [
|
|
89
|
-
tx.object(this.coreBridgeObjectId),
|
|
90
|
-
feeCoin,
|
|
91
|
-
messageTicket,
|
|
92
|
-
tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
93
|
-
],
|
|
94
|
-
});
|
|
95
|
-
yield this.createUnsignedTx(tx, "AutomaticTokenBridge.transfer");
|
|
96
|
-
}
|
|
97
|
-
async *redeem(sender, vaa) {
|
|
98
|
-
const { coreBridge: coreBridgePackageId, tokenBridge: tokenBridgePackageId } = await this.getPackageIds();
|
|
99
|
-
const { address: tokenAddress, chain: tokenChain } = vaa.payload.token;
|
|
100
|
-
const coinType = await (0, utils_js_1.getTokenCoinType)(this.connection, this.tokenBridgeObjectId, tokenAddress.toUniversalAddress().toUint8Array(), (0, sdk_connect_1.toChainId)(tokenChain));
|
|
101
|
-
if (!coinType) {
|
|
102
|
-
throw new Error("Unable to fetch token coinType");
|
|
103
|
-
}
|
|
104
|
-
const tx = new transactions_1.Transaction();
|
|
105
|
-
const [verifiedVAA] = tx.moveCall({
|
|
106
|
-
target: `${coreBridgePackageId}::vaa::parse_and_verify`,
|
|
107
|
-
arguments: [
|
|
108
|
-
tx.object(this.coreBridgeObjectId),
|
|
109
|
-
tx.pure.vector('u8', (0, sdk_connect_1.serialize)(vaa)),
|
|
110
|
-
tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
111
|
-
],
|
|
112
|
-
});
|
|
113
|
-
const [tokenBridgeMessage] = tx.moveCall({
|
|
114
|
-
target: `${tokenBridgePackageId}::vaa::verify_only_once`,
|
|
115
|
-
arguments: [tx.object(this.tokenBridgeObjectId), verifiedVAA],
|
|
116
|
-
});
|
|
117
|
-
const [redeemerReceipt] = tx.moveCall({
|
|
118
|
-
target: `${tokenBridgePackageId}::complete_transfer_with_payload::authorize_transfer`,
|
|
119
|
-
arguments: [tx.object(this.tokenBridgeObjectId), tokenBridgeMessage],
|
|
120
|
-
typeArguments: [coinType],
|
|
121
|
-
});
|
|
122
|
-
const packageId = await this.getPackageId();
|
|
123
|
-
tx.moveCall({
|
|
124
|
-
target: `${packageId}::redeem::complete_transfer`,
|
|
125
|
-
arguments: [tx.object(this.tokenBridgeRelayerObjectId), redeemerReceipt],
|
|
126
|
-
typeArguments: [coinType],
|
|
127
|
-
});
|
|
128
|
-
yield this.createUnsignedTx(tx, "AutomaticTokenBridge.redeem");
|
|
129
|
-
}
|
|
130
|
-
async getRelayerFee(destination, token) {
|
|
131
|
-
const _token = (0, sdk_connect_1.isNative)(token) ? sdk_sui_1.SuiPlatform.nativeTokenId(this.network, this.chain) : token;
|
|
132
|
-
const tokenInfo = await this.getTokenInfo(_token.toString());
|
|
133
|
-
if (tokenInfo === null) {
|
|
134
|
-
throw new Error("Unsupported token for relay");
|
|
135
|
-
}
|
|
136
|
-
const fields = await this.getFields();
|
|
137
|
-
const relayerFees = await this.connection.getDynamicFieldObject({
|
|
138
|
-
parentId: this.tokenBridgeRelayerObjectId,
|
|
139
|
-
name: { type: "vector<u8>", value: Array.from(sdk_connect_1.encoding.bytes.encode("relayer_fees")) },
|
|
140
|
-
});
|
|
141
|
-
if (!relayerFees.data || !relayerFees.data.content) {
|
|
142
|
-
if (relayerFees.error)
|
|
143
|
-
throw new Error("Failed to get relayer fees: " + JSON.stringify(relayerFees.error));
|
|
144
|
-
throw new Error("Unable to compute relayer fee");
|
|
145
|
-
}
|
|
146
|
-
const { content } = relayerFees.data;
|
|
147
|
-
if (!(0, sdk_sui_1.isMoveStructStruct)(content) || !(0, sdk_sui_1.isMoveStructId)(content.fields.id)) {
|
|
148
|
-
throw new Error("Unable to compute relayer fee");
|
|
149
|
-
}
|
|
150
|
-
const entry = await this.connection.getDynamicFieldObject({
|
|
151
|
-
parentId: content.fields.id.id,
|
|
152
|
-
name: { type: "u16", value: (0, sdk_connect_1.toChainId)(destination) },
|
|
153
|
-
});
|
|
154
|
-
if (!entry.data || !entry.data.content) {
|
|
155
|
-
if (entry.error)
|
|
156
|
-
throw new Error("Failed to get relayer fees: " + JSON.stringify(relayerFees.error));
|
|
157
|
-
throw new Error("Unable to compute relayer fee");
|
|
158
|
-
}
|
|
159
|
-
const { content: feeData } = entry.data;
|
|
160
|
-
if (!(0, sdk_sui_1.isMoveStructStruct)(feeData)) {
|
|
161
|
-
throw new Error("Unable to compute relayer fee");
|
|
162
|
-
}
|
|
163
|
-
const decimals = await sdk_sui_1.SuiPlatform.getDecimals(this.network, this.chain, this.connection, token.toString());
|
|
164
|
-
const swapRate = tokenInfo.swap_rate;
|
|
165
|
-
const relayerFeePrecision = fields.relayer_fee_precision;
|
|
166
|
-
const swapRatePrecision = fields.swap_rate_precision;
|
|
167
|
-
const fee = feeData.fields.value;
|
|
168
|
-
return ((10n ** BigInt(decimals) * BigInt(fee) * BigInt(swapRatePrecision)) /
|
|
169
|
-
(BigInt(swapRate) * BigInt(relayerFeePrecision)));
|
|
170
|
-
}
|
|
171
|
-
async maxSwapAmount(token) {
|
|
172
|
-
const _token = (0, sdk_connect_1.isNative)(token) ? sdk_sui_1.SuiPlatform.nativeTokenId(this.network, this.chain) : token;
|
|
173
|
-
const coinType = _token.toString();
|
|
174
|
-
const metadata = await this.connection.getCoinMetadata({ coinType });
|
|
175
|
-
if (!metadata) {
|
|
176
|
-
throw new Error("metadata is null");
|
|
177
|
-
}
|
|
178
|
-
const packageId = await this.getPackageId();
|
|
179
|
-
const tx = new transactions_1.Transaction();
|
|
180
|
-
tx.moveCall({
|
|
181
|
-
// Calculates the max number of tokens the recipient can convert to native
|
|
182
|
-
// Sui. The max amount of native assets the contract will swap with the
|
|
183
|
-
// recipient is governed by the `max_native_swap_amount` variable.
|
|
184
|
-
target: `${packageId}::redeem::calculate_max_swap_amount_in`,
|
|
185
|
-
arguments: [tx.object(this.tokenBridgeRelayerObjectId), tx.pure.u8(metadata.decimals)],
|
|
186
|
-
typeArguments: [coinType],
|
|
187
|
-
});
|
|
188
|
-
const result = await this.connection.devInspectTransactionBlock({
|
|
189
|
-
transactionBlock: tx,
|
|
190
|
-
sender: sdk_connect_1.encoding.hex.encode(new Uint8Array(32)),
|
|
191
|
-
});
|
|
192
|
-
if (!result.results ||
|
|
193
|
-
result.results.length == 0 ||
|
|
194
|
-
!result.results[0]?.returnValues ||
|
|
195
|
-
result.results[0]?.returnValues.length !== 1)
|
|
196
|
-
throw Error("swap rate not set");
|
|
197
|
-
// The result is a u64 in little-endian, so we need to reverse it for decode
|
|
198
|
-
return sdk_connect_1.encoding.bignum.decode(new Uint8Array(result.results[0].returnValues[0][0].toReversed()));
|
|
199
|
-
}
|
|
200
|
-
async nativeTokenAmount(token, amount) {
|
|
201
|
-
const _token = (0, sdk_connect_1.isNative)(token) ? sdk_sui_1.SuiPlatform.nativeTokenId(this.network, this.chain) : token;
|
|
202
|
-
const coinType = _token.toString();
|
|
203
|
-
const metadata = await this.connection.getCoinMetadata({ coinType });
|
|
204
|
-
if (!metadata) {
|
|
205
|
-
throw new Error("metadata is null");
|
|
206
|
-
}
|
|
207
|
-
const packageId = await this.getPackageId();
|
|
208
|
-
const tx = new transactions_1.Transaction();
|
|
209
|
-
tx.moveCall({
|
|
210
|
-
// Calculates the amount of native Sui that the recipient will receive
|
|
211
|
-
// for swapping the `to_native_amount` of tokens.
|
|
212
|
-
target: `${packageId}::redeem::calculate_native_swap_amount_out`,
|
|
213
|
-
arguments: [
|
|
214
|
-
tx.object(this.tokenBridgeRelayerObjectId),
|
|
215
|
-
tx.pure.u64(amount),
|
|
216
|
-
tx.pure.u8(metadata.decimals),
|
|
217
|
-
],
|
|
218
|
-
typeArguments: [coinType],
|
|
219
|
-
});
|
|
220
|
-
const result = await this.connection.devInspectTransactionBlock({
|
|
221
|
-
transactionBlock: tx,
|
|
222
|
-
sender: sdk_connect_1.encoding.hex.encode(new Uint8Array(32)),
|
|
223
|
-
});
|
|
224
|
-
if (!result.results ||
|
|
225
|
-
result.results.length == 0 ||
|
|
226
|
-
!result.results[0]?.returnValues ||
|
|
227
|
-
result.results[0]?.returnValues.length !== 1)
|
|
228
|
-
throw Error("swap rate not set");
|
|
229
|
-
// The result is a u64 in little-endian, so we need to reverse it for decode
|
|
230
|
-
return sdk_connect_1.encoding.bignum.decode(new Uint8Array(result.results[0].returnValues[0][0].toReversed()));
|
|
231
|
-
}
|
|
232
|
-
async getRegisteredTokens() {
|
|
233
|
-
const fields = await this.getFields();
|
|
234
|
-
const registeredTokensObjectId = fields.registered_tokens.fields.id.id;
|
|
235
|
-
const allTokensInfo = await this.connection.getDynamicFields({
|
|
236
|
-
parentId: registeredTokensObjectId,
|
|
237
|
-
});
|
|
238
|
-
const tokenAddresses = allTokensInfo.data.map((token) => {
|
|
239
|
-
const { address, module, name } = (0, utils_1.parseStructTag)(token.objectType);
|
|
240
|
-
return new sdk_sui_1.SuiAddress([address, module, name].join(sdk_sui_1.SUI_SEPARATOR));
|
|
241
|
-
});
|
|
242
|
-
return tokenAddresses;
|
|
243
|
-
}
|
|
244
|
-
async isRegisteredToken(token) {
|
|
245
|
-
const tokenAddress = new sdk_sui_1.SuiAddress((0, sdk_connect_1.isNative)(token) ? sdk_sui_1.SuiPlatform.nativeTokenId(this.network, this.chain).address : token).unwrap();
|
|
246
|
-
try {
|
|
247
|
-
return (await this.getTokenInfo(tokenAddress)) !== null;
|
|
248
|
-
}
|
|
249
|
-
catch (e) {
|
|
250
|
-
console.error(e);
|
|
251
|
-
}
|
|
252
|
-
return false;
|
|
253
|
-
}
|
|
254
|
-
async getTokenInfo(coinType) {
|
|
255
|
-
const fields = await this.getFields();
|
|
256
|
-
// Pulling the package id from the registered_tokens field
|
|
257
|
-
const registeredTokensType = new sdk_sui_1.SuiAddress(fields.registered_tokens.type);
|
|
258
|
-
const packageId = registeredTokensType.getPackageId();
|
|
259
|
-
const registeredTokensObjectId = fields.registered_tokens.fields.id.id;
|
|
260
|
-
// Get the coin type (sui:SUI or ::coin::COIN)
|
|
261
|
-
const parsed = new sdk_sui_1.SuiAddress(coinType);
|
|
262
|
-
const coin = (0, sdk_sui_1.isSameType)(sdk_sui_1.SUI_COIN, parsed.unwrap()) ? sdk_sui_1.SUI_COIN : parsed.getCoinType();
|
|
263
|
-
try {
|
|
264
|
-
// if the token isn't registered, then this will throw
|
|
265
|
-
const tokenInfo = await this.connection.getDynamicFieldObject({
|
|
266
|
-
parentId: registeredTokensObjectId,
|
|
267
|
-
name: {
|
|
268
|
-
type: `${packageId}::registered_tokens::Key<${coin}>`,
|
|
269
|
-
value: { dummy_field: false },
|
|
270
|
-
},
|
|
271
|
-
});
|
|
272
|
-
if (tokenInfo.error)
|
|
273
|
-
throw new Error("Failed to get token info: " + JSON.stringify(tokenInfo.error));
|
|
274
|
-
if (!tokenInfo.data || !tokenInfo.data.content)
|
|
275
|
-
throw new Error("Failed to get token info: " + JSON.stringify(tokenInfo));
|
|
276
|
-
const { content } = tokenInfo.data;
|
|
277
|
-
if ((0, sdk_sui_1.isMoveStructStruct)(content) && (0, sdk_sui_1.isMoveStructStruct)(content.fields.value)) {
|
|
278
|
-
return content.fields.value.fields;
|
|
279
|
-
}
|
|
280
|
-
return null;
|
|
281
|
-
}
|
|
282
|
-
catch (e) {
|
|
283
|
-
if (e?.code === -32000 && e.message?.includes("RPC Error")) {
|
|
284
|
-
console.error(e);
|
|
285
|
-
return null;
|
|
286
|
-
}
|
|
287
|
-
throw e;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
async getFields() {
|
|
291
|
-
if (!this.fields) {
|
|
292
|
-
const fields = await (0, sdk_sui_1.getObjectFields)(this.connection, this.tokenBridgeRelayerObjectId);
|
|
293
|
-
if (fields === null)
|
|
294
|
-
throw new Error("Failed to get fields from token bridge relayer state");
|
|
295
|
-
this.fields = fields;
|
|
296
|
-
}
|
|
297
|
-
return this.fields;
|
|
298
|
-
}
|
|
299
|
-
async getPackageId() {
|
|
300
|
-
const fields = await this.getFields();
|
|
301
|
-
return new sdk_sui_1.SuiAddress(fields.registered_tokens.type).getPackageId();
|
|
302
|
-
}
|
|
303
|
-
async getPackageIds() {
|
|
304
|
-
const [coreBridge, tokenBridge] = await Promise.all([
|
|
305
|
-
(0, sdk_sui_1.getPackageId)(this.connection, this.coreBridgeObjectId),
|
|
306
|
-
(0, sdk_sui_1.getPackageId)(this.connection, this.tokenBridgeObjectId),
|
|
307
|
-
]);
|
|
308
|
-
return { coreBridge, tokenBridge };
|
|
309
|
-
}
|
|
310
|
-
createUnsignedTx(txReq, description, parallelizable = false) {
|
|
311
|
-
return new sdk_sui_1.SuiUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
exports.SuiAutomaticTokenBridge = SuiAutomaticTokenBridge;
|
|
315
|
-
//# sourceMappingURL=automaticTokenBridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"automaticTokenBridge.js","sourceRoot":"","sources":["../../src/automaticTokenBridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { SuiClient } from "@mysten/sui/client";
|
|
2
|
-
import { type AccountAddress, type ChainAddress, type ChainsConfig, type Contracts, type ExecutorTokenBridge, type Network, type TokenAddress, type TokenId } from "@wormhole-foundation/sdk-connect";
|
|
3
|
-
import { SuiChains, SuiUnsignedTransaction } from "@wormhole-foundation/sdk-sui";
|
|
4
|
-
export declare class SuiExecutorTokenBridge<N extends Network, C extends SuiChains = SuiChains> implements ExecutorTokenBridge<N, C> {
|
|
5
|
-
readonly network: N;
|
|
6
|
-
readonly chain: C;
|
|
7
|
-
readonly provider: SuiClient;
|
|
8
|
-
readonly contracts: Contracts;
|
|
9
|
-
readonly chainId: bigint;
|
|
10
|
-
readonly tokenBridgeObjectId: string;
|
|
11
|
-
readonly coreBridgeObjectId: string;
|
|
12
|
-
readonly relayerStateId: string;
|
|
13
|
-
readonly relayerPackageId: string;
|
|
14
|
-
readonly ptbResolverStateId: string;
|
|
15
|
-
readonly relayerEmitterCap: string;
|
|
16
|
-
constructor(network: N, chain: C, provider: SuiClient, contracts: Contracts);
|
|
17
|
-
static fromRpc<N extends Network>(provider: SuiClient, config: ChainsConfig<N, "Sui">): Promise<SuiExecutorTokenBridge<N, SuiChains>>;
|
|
18
|
-
transfer(sender: AccountAddress<C>, recipient: ChainAddress, token: TokenAddress<C>, amount: bigint, executorQuote: ExecutorTokenBridge.ExecutorQuote, referrerFee?: ExecutorTokenBridge.ReferrerFee): AsyncGenerator<SuiUnsignedTransaction<N, C>>;
|
|
19
|
-
redeem(_sender: AccountAddress<C>, vaa: ExecutorTokenBridge.VAA): AsyncGenerator<SuiUnsignedTransaction<N, C>>;
|
|
20
|
-
estimateMsgValueAndGasLimit(_token: TokenId, _recipient?: ChainAddress): Promise<{
|
|
21
|
-
gasLimit: bigint;
|
|
22
|
-
msgValue: bigint;
|
|
23
|
-
}>;
|
|
24
|
-
private createUnsignedTx;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=executorTokenBridge.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executorTokenBridge.d.ts","sourceRoot":"","sources":["../../src/executorTokenBridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAWL,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,KAAK,OAAO,EACb,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAIL,SAAS,EAET,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AAGtC,qBAAa,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,GAAG,SAAS,CACpF,YAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAalC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,EAAE,SAAS;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAd/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAGpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;gBAGxB,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,SAAS;WAmBlB,OAAO,CAAC,CAAC,SAAS,OAAO,EACpC,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IASzC,QAAQ,CACb,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,EACzB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,mBAAmB,CAAC,aAAa,EAChD,WAAW,CAAC,EAAE,mBAAmB,CAAC,WAAW,GAC5C,cAAc,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAwIxC,MAAM,CACX,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,EAC1B,GAAG,EAAE,mBAAmB,CAAC,GAAG,GAC3B,cAAc,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAqDzC,2BAA2B,CAC/B,MAAM,EAAE,OAAO,EACf,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAQlD,OAAO,CAAC,gBAAgB;CAOzB"}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SuiExecutorTokenBridge = void 0;
|
|
4
|
-
const transactions_1 = require("@mysten/sui/transactions");
|
|
5
|
-
const utils_1 = require("@mysten/sui/utils");
|
|
6
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
7
|
-
const sdk_sui_1 = require("@wormhole-foundation/sdk-sui");
|
|
8
|
-
const utils_js_1 = require("./utils.js");
|
|
9
|
-
class SuiExecutorTokenBridge {
|
|
10
|
-
network;
|
|
11
|
-
chain;
|
|
12
|
-
provider;
|
|
13
|
-
contracts;
|
|
14
|
-
chainId;
|
|
15
|
-
tokenBridgeObjectId;
|
|
16
|
-
coreBridgeObjectId;
|
|
17
|
-
// Sui-specific state for Token Bridge Relayer V4
|
|
18
|
-
relayerStateId;
|
|
19
|
-
relayerPackageId;
|
|
20
|
-
ptbResolverStateId;
|
|
21
|
-
relayerEmitterCap;
|
|
22
|
-
constructor(network, chain, provider, contracts) {
|
|
23
|
-
this.network = network;
|
|
24
|
-
this.chain = chain;
|
|
25
|
-
this.provider = provider;
|
|
26
|
-
this.contracts = contracts;
|
|
27
|
-
this.chainId = sdk_connect_1.nativeChainIds.networkChainToNativeChainId.get(network, chain);
|
|
28
|
-
if (!contracts.tokenBridge)
|
|
29
|
-
throw new Error(`Token Bridge contract for ${chain} not found`);
|
|
30
|
-
this.tokenBridgeObjectId = contracts.tokenBridge;
|
|
31
|
-
if (!contracts.coreBridge)
|
|
32
|
-
throw new Error(`Wormhole Core Bridge contract for ${chain} not found`);
|
|
33
|
-
this.coreBridgeObjectId = contracts.coreBridge;
|
|
34
|
-
// Get Sui-specific state from constants based on the Environment
|
|
35
|
-
const stateRefs = (0, sdk_connect_1.suiExecutorTokenBridgeState)(network);
|
|
36
|
-
this.relayerStateId = stateRefs.relayerStateId;
|
|
37
|
-
this.relayerPackageId = stateRefs.relayerPackageId;
|
|
38
|
-
this.ptbResolverStateId = stateRefs.ptbResolverStateId;
|
|
39
|
-
this.relayerEmitterCap = stateRefs.relayerEmitterCap;
|
|
40
|
-
}
|
|
41
|
-
static async fromRpc(provider, config) {
|
|
42
|
-
const [network, chain] = await sdk_sui_1.SuiPlatform.chainFromRpc(provider);
|
|
43
|
-
const conf = config[chain];
|
|
44
|
-
if (conf.network !== network)
|
|
45
|
-
throw new Error(`Network mismatch: ${conf.network} != ${network}`);
|
|
46
|
-
return new SuiExecutorTokenBridge(network, chain, provider, conf.contracts);
|
|
47
|
-
}
|
|
48
|
-
async *transfer(sender, recipient, token, amount, executorQuote, referrerFee) {
|
|
49
|
-
const tx = new transactions_1.Transaction();
|
|
50
|
-
const senderAddress = sender.toString();
|
|
51
|
-
const coinType = ((0, sdk_connect_1.isNative)(token) ? sdk_sui_1.SUI_COIN : token).toString();
|
|
52
|
-
const messageFee = 0n;
|
|
53
|
-
// Get destination relayer contract (we're departing FROM Sui, destination is never Sui)
|
|
54
|
-
const dstContracts = sdk_connect_1.contracts.executorTokenBridge.get(this.network, recipient.chain);
|
|
55
|
-
if (!dstContracts?.relayer) {
|
|
56
|
-
throw new Error(`Token Bridge Executor Relayer contract for destination ${recipient.chain} not found`);
|
|
57
|
-
}
|
|
58
|
-
const dstRelayer = (0, sdk_connect_1.toUniversal)(recipient.chain, dstContracts.relayer);
|
|
59
|
-
// For Token Bridge transfers, dstTransferRecipient and dstExecutionAddress are the same
|
|
60
|
-
const dstExecutionAddress = "0x" + Buffer.from(dstRelayer.toUint8Array()).toString("hex");
|
|
61
|
-
// Serialize executor quote data
|
|
62
|
-
const signedQuoteBytes = (0, sdk_connect_1.serializeLayout)(sdk_connect_1.signedQuoteLayout, executorQuote.signedQuote);
|
|
63
|
-
const relayInstructionsBytes = (0, sdk_connect_1.serializeLayout)(sdk_connect_1.relayInstructionsLayout, executorQuote.relayInstructions);
|
|
64
|
-
// 1. Fetch and merge coins (following TokenBridge pattern)
|
|
65
|
-
const coins = await sdk_sui_1.SuiPlatform.getCoins(this.provider, sender, coinType);
|
|
66
|
-
const [primaryCoin, ...mergeCoins] = coins.filter((coin) => (0, sdk_sui_1.isSameType)(coin.coinType, coinType));
|
|
67
|
-
if (!primaryCoin) {
|
|
68
|
-
throw new Error(`No coins of type ${coinType} found for sender ${sender}`);
|
|
69
|
-
}
|
|
70
|
-
// 2. Handle referrer fee (following Solana ExecutorTokenBridge pattern).
|
|
71
|
-
// For native SUI, the token and gas fees are both denominated in MIST —
|
|
72
|
-
// combine them into a single transfer out of the gas coin. Otherwise pay
|
|
73
|
-
// transferTokenFee as the source coin and nativeTokenFee as SUI.
|
|
74
|
-
let actualTransferAmount = amount;
|
|
75
|
-
let coinsMerged = false;
|
|
76
|
-
if (referrerFee) {
|
|
77
|
-
const referrerAddress = referrerFee.referrer.address.toString();
|
|
78
|
-
if ((0, sdk_connect_1.isNative)(token)) {
|
|
79
|
-
const combinedFee = referrerFee.nativeTokenFee + referrerFee.transferTokenFee;
|
|
80
|
-
if (combinedFee > 0n) {
|
|
81
|
-
const [refFee] = tx.splitCoins(tx.gas, [tx.pure.u64(combinedFee)]);
|
|
82
|
-
tx.transferObjects([refFee], tx.pure.address(referrerAddress));
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
if (referrerFee.transferTokenFee > 0n) {
|
|
87
|
-
// For tokens, merge first then split fee
|
|
88
|
-
const primaryCoinInput = tx.object(primaryCoin.coinObjectId);
|
|
89
|
-
if (mergeCoins.length > 0) {
|
|
90
|
-
tx.mergeCoins(primaryCoinInput, mergeCoins.map((coin) => tx.object(coin.coinObjectId)));
|
|
91
|
-
coinsMerged = true;
|
|
92
|
-
}
|
|
93
|
-
const [refFee] = tx.splitCoins(primaryCoinInput, [
|
|
94
|
-
tx.pure.u64(referrerFee.transferTokenFee),
|
|
95
|
-
]);
|
|
96
|
-
tx.transferObjects([refFee], tx.pure.address(referrerAddress));
|
|
97
|
-
}
|
|
98
|
-
if (referrerFee.nativeTokenFee > 0n) {
|
|
99
|
-
const [refFee] = tx.splitCoins(tx.gas, [
|
|
100
|
-
tx.pure.u64(referrerFee.nativeTokenFee),
|
|
101
|
-
]);
|
|
102
|
-
tx.transferObjects([refFee], tx.pure.address(referrerAddress));
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// Use remaining amount for actual transfer
|
|
106
|
-
actualTransferAmount = referrerFee.remainingAmount;
|
|
107
|
-
}
|
|
108
|
-
// 3. Split coins for transfer (following TokenBridge pattern)
|
|
109
|
-
const [transferCoin] = (() => {
|
|
110
|
-
if ((0, sdk_connect_1.isNative)(token)) {
|
|
111
|
-
return tx.splitCoins(tx.gas, [tx.pure.u64(actualTransferAmount)]);
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
const primaryCoinInput = tx.object(primaryCoin.coinObjectId);
|
|
115
|
-
if (mergeCoins.length && !coinsMerged) {
|
|
116
|
-
// Only merge if we didn't already merge while paying the referrer
|
|
117
|
-
tx.mergeCoins(primaryCoinInput, mergeCoins.map((coin) => tx.object(coin.coinObjectId)));
|
|
118
|
-
}
|
|
119
|
-
return tx.splitCoins(primaryCoinInput, [tx.pure.u64(actualTransferAmount)]);
|
|
120
|
-
}
|
|
121
|
-
})();
|
|
122
|
-
// 4. Split coins for fees
|
|
123
|
-
const [feeCoin] = tx.splitCoins(tx.gas, [tx.pure.u64(messageFee)]);
|
|
124
|
-
const [executorPaymentCoin] = tx.splitCoins(tx.gas, [tx.pure.u64(executorQuote.estimatedCost)]);
|
|
125
|
-
// 5. Get verified asset from Token Bridge
|
|
126
|
-
const tokenBridgePackageId = await (0, sdk_sui_1.getPackageId)(this.provider, this.tokenBridgeObjectId);
|
|
127
|
-
const [assetInfo] = tx.moveCall({
|
|
128
|
-
target: `${tokenBridgePackageId}::state::verified_asset`,
|
|
129
|
-
arguments: [tx.object(this.tokenBridgeObjectId)],
|
|
130
|
-
typeArguments: [coinType],
|
|
131
|
-
});
|
|
132
|
-
// 6. Call relayer transfer function
|
|
133
|
-
// Arguments match the Move function signature in relayer_transfer.move
|
|
134
|
-
tx.moveCall({
|
|
135
|
-
target: `${this.relayerPackageId}::relayer_transfer::transfer_tokens_with_relay`,
|
|
136
|
-
arguments: [
|
|
137
|
-
tx.object(this.relayerStateId),
|
|
138
|
-
tx.object(this.coreBridgeObjectId),
|
|
139
|
-
tx.object(this.tokenBridgeObjectId),
|
|
140
|
-
transferCoin,
|
|
141
|
-
assetInfo,
|
|
142
|
-
feeCoin,
|
|
143
|
-
executorPaymentCoin,
|
|
144
|
-
tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
145
|
-
tx.pure.u16((0, sdk_connect_1.toChainId)(recipient.chain)),
|
|
146
|
-
tx.pure.vector("u8", Array.from(recipient.address.toUniversalAddress().toUint8Array())), // recipient (32 bytes)
|
|
147
|
-
tx.pure.address(dstExecutionAddress), // dst_execution_address
|
|
148
|
-
tx.pure.address(senderAddress), // refund_addr
|
|
149
|
-
tx.pure.vector("u8", Array.from(signedQuoteBytes)), // signed_quote
|
|
150
|
-
tx.pure.vector("u8", Array.from(relayInstructionsBytes)), // relay_instructions
|
|
151
|
-
tx.pure.u32(0), // nonce
|
|
152
|
-
],
|
|
153
|
-
typeArguments: [coinType],
|
|
154
|
-
});
|
|
155
|
-
yield this.createUnsignedTx(tx, "Sui.ExecutorTokenBridge.Transfer");
|
|
156
|
-
}
|
|
157
|
-
async *redeem(_sender, vaa) {
|
|
158
|
-
// Get coin type from VAA
|
|
159
|
-
const coinType = await (0, utils_js_1.getTokenCoinType)(this.provider, this.tokenBridgeObjectId, vaa.payload.token.address.toUint8Array(), (0, sdk_connect_1.toChainId)(vaa.payload.token.chain));
|
|
160
|
-
if (!coinType) {
|
|
161
|
-
throw new Error("Unable to fetch token coinType from VAA");
|
|
162
|
-
}
|
|
163
|
-
const tx = new transactions_1.Transaction();
|
|
164
|
-
// Get package IDs dynamically
|
|
165
|
-
const coreBridgePackageId = await (0, sdk_sui_1.getPackageId)(this.provider, this.coreBridgeObjectId);
|
|
166
|
-
const tokenBridgePackageId = await (0, sdk_sui_1.getPackageId)(this.provider, this.tokenBridgeObjectId);
|
|
167
|
-
// Build 4-command redemption PTB (matching redeem.move pattern)
|
|
168
|
-
// Command 1: parse_and_verify (Wormhole core)
|
|
169
|
-
const [verifiedVaa] = tx.moveCall({
|
|
170
|
-
target: `${coreBridgePackageId}::vaa::parse_and_verify`,
|
|
171
|
-
arguments: [
|
|
172
|
-
tx.object(this.coreBridgeObjectId),
|
|
173
|
-
tx.pure.vector("u8", Array.from((0, sdk_connect_1.serialize)(vaa))),
|
|
174
|
-
tx.object(utils_1.SUI_CLOCK_OBJECT_ID),
|
|
175
|
-
],
|
|
176
|
-
});
|
|
177
|
-
// Command 2: verify_only_once (Token Bridge replay protection)
|
|
178
|
-
const [msg] = tx.moveCall({
|
|
179
|
-
target: `${tokenBridgePackageId}::vaa::verify_only_once`,
|
|
180
|
-
arguments: [tx.object(this.tokenBridgeObjectId), verifiedVaa],
|
|
181
|
-
});
|
|
182
|
-
// Command 3: authorize_transfer (Token Bridge authorization)
|
|
183
|
-
const [receipt] = tx.moveCall({
|
|
184
|
-
target: `${tokenBridgePackageId}::complete_transfer_with_payload::authorize_transfer`,
|
|
185
|
-
arguments: [tx.object(this.tokenBridgeObjectId), msg],
|
|
186
|
-
typeArguments: [coinType],
|
|
187
|
-
});
|
|
188
|
-
// Command 4: execute_vaa_v1 (TB Relayer V4 execution)
|
|
189
|
-
tx.moveCall({
|
|
190
|
-
target: `${this.relayerPackageId}::redeem::execute_vaa_v1`,
|
|
191
|
-
arguments: [tx.object(this.relayerStateId), receipt],
|
|
192
|
-
typeArguments: [coinType],
|
|
193
|
-
});
|
|
194
|
-
yield this.createUnsignedTx(tx, "Sui.ExecutorTokenBridge.Redeem");
|
|
195
|
-
}
|
|
196
|
-
async estimateMsgValueAndGasLimit(_token, _recipient) {
|
|
197
|
-
// Sui uses fixed gas budget in PTB
|
|
198
|
-
return {
|
|
199
|
-
gasLimit: 100000000n, // 0.1 SUI budget
|
|
200
|
-
msgValue: 0n,
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
createUnsignedTx(txReq, description, parallelizable = false) {
|
|
204
|
-
return new sdk_sui_1.SuiUnsignedTransaction(txReq, this.network, this.chain, description, parallelizable);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
exports.SuiExecutorTokenBridge = SuiExecutorTokenBridge;
|
|
208
|
-
//# sourceMappingURL=executorTokenBridge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"executorTokenBridge.js","sourceRoot":"","sources":["../../src/executorTokenBridge.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
DELETED
package/dist/cjs/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAUA,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
package/dist/cjs/index.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
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 tokenBridge_js_1 = require("./tokenBridge.js");
|
|
19
|
-
const automaticTokenBridge_js_1 = require("./automaticTokenBridge.js");
|
|
20
|
-
const executorTokenBridge_js_1 = require("./executorTokenBridge.js");
|
|
21
|
-
(0, sdk_connect_1.registerProtocol)("Sui", "TokenBridge", tokenBridge_js_1.SuiTokenBridge);
|
|
22
|
-
(0, sdk_connect_1.registerProtocol)("Sui", "AutomaticTokenBridge", automaticTokenBridge_js_1.SuiAutomaticTokenBridge);
|
|
23
|
-
(0, sdk_connect_1.registerProtocol)("Sui", "ExecutorTokenBridge", executorTokenBridge_js_1.SuiExecutorTokenBridge);
|
|
24
|
-
__exportStar(require("./tokenBridge.js"), exports);
|
|
25
|
-
__exportStar(require("./automaticTokenBridge.js"), exports);
|
|
26
|
-
__exportStar(require("./executorTokenBridge.js"), exports);
|
|
27
|
-
__exportStar(require("./utils.js"), exports);
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,kEAAoE;AACpE,qDAAkD;AAClD,uEAAoE;AACpE,qEAAkE;AAElE,IAAA,8BAAgB,EAAC,KAAK,EAAE,aAAa,EAAE,+BAAc,CAAC,CAAC;AACvD,IAAA,8BAAgB,EAAC,KAAK,EAAE,sBAAsB,EAAE,iDAAuB,CAAC,CAAC;AACzE,IAAA,8BAAgB,EAAC,KAAK,EAAE,qBAAqB,EAAE,+CAAsB,CAAC,CAAC;AAEvE,mDAAiC;AACjC,4DAA0C;AAC1C,2DAAyC;AACzC,6CAA2B"}
|