@wormhole-foundation/sdk-connect 0.6.9-beta.1 → 0.7.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/cjs/circle-api.js.map +1 -1
- package/dist/cjs/common.js.map +1 -1
- package/dist/cjs/config.js +1 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts +46 -0
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/{cctpTransfer.js → cctp/cctpTransfer.js} +140 -151
- package/dist/cjs/protocols/cctp/cctpTransfer.js.map +1 -0
- package/dist/{esm/protocols → cjs/protocols/gateway}/gatewayTransfer.d.ts +8 -6
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/{gatewayTransfer.js → gateway/gatewayTransfer.js} +23 -30
- package/dist/cjs/protocols/gateway/gatewayTransfer.js.map +1 -0
- package/dist/cjs/protocols/index.d.ts +5 -0
- package/dist/cjs/protocols/index.d.ts.map +1 -0
- package/dist/cjs/protocols/index.js +21 -0
- package/dist/cjs/protocols/index.js.map +1 -0
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts +46 -0
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts.map +1 -0
- package/dist/cjs/protocols/{tokenTransfer.js → tokenBridge/tokenTransfer.js} +175 -164
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js.map +1 -0
- package/dist/cjs/protocols/wormholeTransfer.d.ts.map +1 -1
- package/dist/cjs/routes/cctp/automatic.d.ts +5 -5
- package/dist/cjs/routes/cctp/automatic.d.ts.map +1 -1
- package/dist/cjs/routes/cctp/automatic.js +12 -8
- package/dist/cjs/routes/cctp/automatic.js.map +1 -1
- package/dist/cjs/routes/cctp/manual.d.ts +5 -4
- package/dist/cjs/routes/cctp/manual.d.ts.map +1 -1
- package/dist/cjs/routes/cctp/manual.js +12 -8
- package/dist/cjs/routes/cctp/manual.js.map +1 -1
- package/dist/cjs/routes/common.js.map +1 -1
- package/dist/cjs/routes/portico/automatic.d.ts +5 -4
- package/dist/cjs/routes/portico/automatic.d.ts.map +1 -1
- package/dist/cjs/routes/portico/automatic.js +6 -6
- package/dist/cjs/routes/portico/automatic.js.map +1 -1
- package/dist/cjs/routes/request.d.ts +1 -5
- package/dist/cjs/routes/request.d.ts.map +1 -1
- package/dist/cjs/routes/request.js +4 -8
- package/dist/cjs/routes/request.js.map +1 -1
- package/dist/cjs/routes/resolver.js +2 -2
- package/dist/cjs/routes/resolver.js.map +1 -1
- package/dist/cjs/routes/route.d.ts +2 -1
- package/dist/cjs/routes/route.d.ts.map +1 -1
- package/dist/cjs/routes/route.js.map +1 -1
- package/dist/cjs/routes/tokenBridge/automatic.d.ts +4 -2
- package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +1 -1
- package/dist/cjs/routes/tokenBridge/automatic.js +14 -8
- package/dist/cjs/routes/tokenBridge/automatic.js.map +1 -1
- package/dist/cjs/routes/tokenBridge/manual.d.ts +4 -2
- package/dist/cjs/routes/tokenBridge/manual.d.ts.map +1 -1
- package/dist/cjs/routes/tokenBridge/manual.js +11 -7
- package/dist/cjs/routes/tokenBridge/manual.js.map +1 -1
- package/dist/cjs/tasks.js.map +1 -1
- package/dist/cjs/types.d.ts +5 -5
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/whscan-api.js.map +1 -1
- package/dist/cjs/wormhole.d.ts +2 -2
- package/dist/cjs/wormhole.d.ts.map +1 -1
- package/dist/cjs/wormhole.js +2 -2
- package/dist/cjs/wormhole.js.map +1 -1
- package/dist/esm/circle-api.js.map +1 -1
- package/dist/esm/common.js.map +1 -1
- package/dist/esm/config.js +1 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/index.d.ts +1 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/protocols/cctp/cctpTransfer.d.ts +46 -0
- package/dist/esm/protocols/cctp/cctpTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/{cctpTransfer.js → cctp/cctpTransfer.js} +139 -150
- package/dist/esm/protocols/cctp/cctpTransfer.js.map +1 -0
- package/dist/{cjs/protocols → esm/protocols/gateway}/gatewayTransfer.d.ts +8 -6
- package/dist/esm/protocols/gateway/gatewayTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/{gatewayTransfer.js → gateway/gatewayTransfer.js} +22 -29
- package/dist/esm/protocols/gateway/gatewayTransfer.js.map +1 -0
- package/dist/esm/protocols/index.d.ts +5 -0
- package/dist/esm/protocols/index.d.ts.map +1 -0
- package/dist/esm/protocols/index.js +5 -0
- package/dist/esm/protocols/index.js.map +1 -0
- package/dist/esm/protocols/tokenBridge/tokenTransfer.d.ts +46 -0
- package/dist/esm/protocols/tokenBridge/tokenTransfer.d.ts.map +1 -0
- package/dist/esm/protocols/{tokenTransfer.js → tokenBridge/tokenTransfer.js} +174 -163
- package/dist/esm/protocols/tokenBridge/tokenTransfer.js.map +1 -0
- package/dist/esm/protocols/wormholeTransfer.d.ts.map +1 -1
- package/dist/esm/routes/cctp/automatic.d.ts +5 -5
- package/dist/esm/routes/cctp/automatic.d.ts.map +1 -1
- package/dist/esm/routes/cctp/automatic.js +12 -8
- package/dist/esm/routes/cctp/automatic.js.map +1 -1
- package/dist/esm/routes/cctp/manual.d.ts +5 -4
- package/dist/esm/routes/cctp/manual.d.ts.map +1 -1
- package/dist/esm/routes/cctp/manual.js +12 -8
- package/dist/esm/routes/cctp/manual.js.map +1 -1
- package/dist/esm/routes/common.js.map +1 -1
- package/dist/esm/routes/portico/automatic.d.ts +5 -4
- package/dist/esm/routes/portico/automatic.d.ts.map +1 -1
- package/dist/esm/routes/portico/automatic.js +6 -6
- package/dist/esm/routes/portico/automatic.js.map +1 -1
- package/dist/esm/routes/request.d.ts +1 -5
- package/dist/esm/routes/request.d.ts.map +1 -1
- package/dist/esm/routes/request.js +4 -8
- package/dist/esm/routes/request.js.map +1 -1
- package/dist/esm/routes/resolver.js +2 -2
- package/dist/esm/routes/resolver.js.map +1 -1
- package/dist/esm/routes/route.d.ts +2 -1
- package/dist/esm/routes/route.d.ts.map +1 -1
- package/dist/esm/routes/route.js.map +1 -1
- package/dist/esm/routes/tokenBridge/automatic.d.ts +4 -2
- package/dist/esm/routes/tokenBridge/automatic.d.ts.map +1 -1
- package/dist/esm/routes/tokenBridge/automatic.js +14 -8
- package/dist/esm/routes/tokenBridge/automatic.js.map +1 -1
- package/dist/esm/routes/tokenBridge/manual.d.ts +4 -2
- package/dist/esm/routes/tokenBridge/manual.d.ts.map +1 -1
- package/dist/esm/routes/tokenBridge/manual.js +11 -7
- package/dist/esm/routes/tokenBridge/manual.js.map +1 -1
- package/dist/esm/tasks.js.map +1 -1
- package/dist/esm/types.d.ts +5 -5
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/whscan-api.js.map +1 -1
- package/dist/esm/wormhole.d.ts +2 -2
- package/dist/esm/wormhole.d.ts.map +1 -1
- package/dist/esm/wormhole.js +2 -2
- package/dist/esm/wormhole.js.map +1 -1
- package/package.json +6 -3
- package/dist/cjs/protocols/cctpTransfer.d.ts +0 -43
- package/dist/cjs/protocols/cctpTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/cctpTransfer.js.map +0 -1
- package/dist/cjs/protocols/gatewayTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/gatewayTransfer.js.map +0 -1
- package/dist/cjs/protocols/tokenTransfer.d.ts +0 -42
- package/dist/cjs/protocols/tokenTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/tokenTransfer.js.map +0 -1
- package/dist/esm/protocols/cctpTransfer.d.ts +0 -43
- package/dist/esm/protocols/cctpTransfer.d.ts.map +0 -1
- package/dist/esm/protocols/cctpTransfer.js.map +0 -1
- package/dist/esm/protocols/gatewayTransfer.d.ts.map +0 -1
- package/dist/esm/protocols/gatewayTransfer.js.map +0 -1
- package/dist/esm/protocols/tokenTransfer.d.ts +0 -42
- package/dist/esm/protocols/tokenTransfer.d.ts.map +0 -1
- package/dist/esm/protocols/tokenTransfer.js.map +0 -1
|
@@ -3,13 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TokenTransfer = void 0;
|
|
4
4
|
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
5
|
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
6
|
-
const common_js_1 = require("
|
|
7
|
-
const config_js_1 = require("
|
|
8
|
-
const types_js_1 = require("
|
|
9
|
-
const whscan_api_js_1 = require("
|
|
10
|
-
const wormhole_js_1 = require("
|
|
11
|
-
// 8 is maximum precision supported by the token bridge VAA
|
|
12
|
-
const TOKEN_BRIDGE_MAX_DECIMALS = 8;
|
|
6
|
+
const common_js_1 = require("../../common.js");
|
|
7
|
+
const config_js_1 = require("../../config.js");
|
|
8
|
+
const types_js_1 = require("../../types.js");
|
|
9
|
+
const whscan_api_js_1 = require("../../whscan-api.js");
|
|
10
|
+
const wormhole_js_1 = require("../../wormhole.js");
|
|
13
11
|
class TokenTransfer {
|
|
14
12
|
wh;
|
|
15
13
|
fromChain;
|
|
@@ -69,7 +67,7 @@ class TokenTransfer {
|
|
|
69
67
|
// immediately have enough info to get the _correct_ one
|
|
70
68
|
let from = { chain: vaa.emitterChain, address: vaa.emitterAddress };
|
|
71
69
|
let { token, to } = vaa.payload;
|
|
72
|
-
const scaledAmount = sdk_base_1.amount.scale(sdk_base_1.amount.fromBaseUnits(token.amount,
|
|
70
|
+
const scaledAmount = sdk_base_1.amount.scale(sdk_base_1.amount.fromBaseUnits(token.amount, TokenTransfer.MAX_DECIMALS), await wh.getDecimals(token.chain, token.address));
|
|
73
71
|
let nativeGasAmount = 0n;
|
|
74
72
|
if (automatic) {
|
|
75
73
|
nativeGasAmount = vaa.payload.payload.toNativeTokenAmount;
|
|
@@ -150,9 +148,14 @@ class TokenTransfer {
|
|
|
150
148
|
this._state = types_js_1.TransferState.DestinationInitiated;
|
|
151
149
|
return redeemTxids.map(({ txid }) => txid);
|
|
152
150
|
}
|
|
151
|
+
}
|
|
152
|
+
exports.TokenTransfer = TokenTransfer;
|
|
153
|
+
(function (TokenTransfer) {
|
|
154
|
+
/** 8 is maximum precision supported by the token bridge VAA */
|
|
155
|
+
TokenTransfer.MAX_DECIMALS = 8;
|
|
153
156
|
// Static method to perform the transfer so a custom RPC may be used
|
|
154
157
|
// Note: this assumes the transfer has already been validated with `validateTransfer`
|
|
155
|
-
|
|
158
|
+
async function transfer(fromChain, transfer, signer) {
|
|
156
159
|
const senderAddress = (0, sdk_definitions_1.toNative)(signer.chain(), signer.address());
|
|
157
160
|
const token = (0, sdk_definitions_1.isTokenId)(transfer.token) ? transfer.token.address : transfer.token;
|
|
158
161
|
let xfer;
|
|
@@ -166,48 +169,138 @@ class TokenTransfer {
|
|
|
166
169
|
}
|
|
167
170
|
return (0, common_js_1.signSendWait)(fromChain, xfer, signer);
|
|
168
171
|
}
|
|
172
|
+
TokenTransfer.transfer = transfer;
|
|
169
173
|
// Static method to allow passing a custom RPC
|
|
170
|
-
|
|
174
|
+
async function redeem(toChain, vaa, signer) {
|
|
171
175
|
const signerAddress = (0, sdk_definitions_1.toNative)(signer.chain(), signer.address());
|
|
172
176
|
const xfer = vaa.protocolName === "AutomaticTokenBridge"
|
|
173
177
|
? (await toChain.getAutomaticTokenBridge()).redeem(signerAddress, vaa)
|
|
174
178
|
: (await toChain.getTokenBridge()).redeem(signerAddress, vaa);
|
|
175
179
|
return (0, common_js_1.signSendWait)(toChain, xfer, signer);
|
|
176
180
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
TokenTransfer.redeem = redeem;
|
|
182
|
+
// AsyncGenerator fn that produces status updates through an async generator
|
|
183
|
+
// eventually producing a receipt
|
|
184
|
+
// can be called repeatedly so the receipt is updated as it moves through the
|
|
185
|
+
// steps of the transfer
|
|
186
|
+
async function* track(wh, receipt, timeout = config_js_1.DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
|
|
187
|
+
const start = Date.now();
|
|
188
|
+
const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
|
|
189
|
+
fromChain = fromChain ?? wh.getChain(receipt.from);
|
|
190
|
+
toChain = toChain ?? wh.getChain(receipt.to);
|
|
191
|
+
// Check the source chain for initiation transaction
|
|
192
|
+
// and capture the message id
|
|
193
|
+
if ((0, types_js_1.isSourceInitiated)(receipt)) {
|
|
194
|
+
if (receipt.originTxs.length === 0)
|
|
195
|
+
throw "Origin transactions required to fetch message id";
|
|
196
|
+
const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
|
|
197
|
+
const msg = await TokenTransfer.getTransferMessage(fromChain, txid, leftover(start, timeout));
|
|
198
|
+
receipt = {
|
|
199
|
+
...receipt,
|
|
200
|
+
state: types_js_1.TransferState.SourceFinalized,
|
|
201
|
+
attestation: { id: msg },
|
|
202
|
+
};
|
|
203
|
+
yield receipt;
|
|
204
|
+
}
|
|
205
|
+
// If the source is finalized, we need to fetch the signed attestation
|
|
206
|
+
// so that we may deliver it to the destination chain
|
|
207
|
+
// or at least track the transfer through its progress
|
|
208
|
+
if ((0, types_js_1.isSourceFinalized)(receipt)) {
|
|
209
|
+
if (!receipt.attestation.id)
|
|
210
|
+
throw "Attestation id required to fetch attestation";
|
|
211
|
+
const { id } = receipt.attestation;
|
|
212
|
+
const attestation = await TokenTransfer.getTransferVaa(wh, id, leftover(start, timeout));
|
|
213
|
+
receipt = {
|
|
214
|
+
...receipt,
|
|
215
|
+
attestation: { id, attestation },
|
|
216
|
+
state: types_js_1.TransferState.Attested,
|
|
217
|
+
};
|
|
218
|
+
yield receipt;
|
|
219
|
+
}
|
|
220
|
+
// First try to grab the tx status from the API
|
|
221
|
+
// Note: this requires a subsequent async step on the backend
|
|
222
|
+
// to have the dest txid populated, so it may be delayed by some time
|
|
223
|
+
if ((0, types_js_1.isAttested)(receipt) || (0, types_js_1.isSourceFinalized)(receipt)) {
|
|
224
|
+
if (!receipt.attestation.id)
|
|
225
|
+
throw "Attestation id required to fetch redeem tx";
|
|
226
|
+
const { id } = receipt.attestation;
|
|
227
|
+
const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
|
|
228
|
+
if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
|
|
229
|
+
const { chainId, txHash } = txStatus.globalTx.destinationTx;
|
|
230
|
+
receipt = {
|
|
231
|
+
...receipt,
|
|
232
|
+
destinationTxs: [{ chain: (0, sdk_base_1.toChain)(chainId), txid: txHash }],
|
|
233
|
+
state: types_js_1.TransferState.DestinationInitiated,
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
yield receipt;
|
|
237
|
+
}
|
|
238
|
+
// Fall back to asking the destination chain if this VAA has been redeemed
|
|
239
|
+
// Note: We do not get any destinationTxs with this method
|
|
240
|
+
if ((0, types_js_1.isAttested)(receipt)) {
|
|
241
|
+
if (!receipt.attestation.attestation)
|
|
242
|
+
throw "Signed Attestation required to check for redeem";
|
|
243
|
+
let isComplete = await TokenTransfer.isTransferComplete(toChain, receipt.attestation.attestation);
|
|
244
|
+
if (isComplete) {
|
|
245
|
+
receipt = {
|
|
246
|
+
...receipt,
|
|
247
|
+
state: types_js_1.TransferState.DestinationFinalized,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
yield receipt;
|
|
251
|
+
}
|
|
252
|
+
yield receipt;
|
|
190
253
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
254
|
+
TokenTransfer.track = track;
|
|
255
|
+
function getReceipt(xfer) {
|
|
256
|
+
const { transfer } = xfer;
|
|
257
|
+
const from = transfer.from.chain;
|
|
258
|
+
const to = transfer.to.chain;
|
|
259
|
+
let receipt = {
|
|
260
|
+
from: from,
|
|
261
|
+
to: to,
|
|
262
|
+
state: types_js_1.TransferState.Created,
|
|
263
|
+
};
|
|
264
|
+
const originTxs = xfer.txids.filter((txid) => txid.chain === transfer.from.chain);
|
|
265
|
+
if (originTxs.length > 0) {
|
|
266
|
+
receipt = {
|
|
267
|
+
...receipt,
|
|
268
|
+
state: types_js_1.TransferState.SourceInitiated,
|
|
269
|
+
originTxs: originTxs,
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
const att = xfer.attestations && xfer.attestations.length > 0 ? xfer.attestations[0] : undefined;
|
|
273
|
+
const attestation = att && att.id ? { id: att.id, attestation: att.attestation } : undefined;
|
|
274
|
+
if (attestation) {
|
|
275
|
+
if (attestation.id) {
|
|
276
|
+
receipt = {
|
|
277
|
+
...receipt,
|
|
278
|
+
state: types_js_1.TransferState.SourceFinalized,
|
|
279
|
+
attestation: { id: attestation.id },
|
|
280
|
+
};
|
|
281
|
+
if (attestation.attestation) {
|
|
282
|
+
receipt = {
|
|
283
|
+
...receipt,
|
|
284
|
+
state: types_js_1.TransferState.Attested,
|
|
285
|
+
attestation: { id: attestation.id, attestation: attestation.attestation },
|
|
286
|
+
};
|
|
287
|
+
}
|
|
204
288
|
}
|
|
205
289
|
}
|
|
206
|
-
|
|
290
|
+
const destinationTxs = xfer.txids.filter((txid) => txid.chain === transfer.to.chain);
|
|
291
|
+
if (destinationTxs.length > 0) {
|
|
292
|
+
receipt = {
|
|
293
|
+
...receipt,
|
|
294
|
+
state: types_js_1.TransferState.DestinationFinalized,
|
|
295
|
+
destinationTxs: destinationTxs,
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
return receipt;
|
|
207
299
|
}
|
|
300
|
+
TokenTransfer.getReceipt = getReceipt;
|
|
208
301
|
// Lookup the token id for the destination chain given the source chain
|
|
209
302
|
// and token id
|
|
210
|
-
|
|
303
|
+
async function lookupDestinationToken(srcChain, dstChain, token) {
|
|
211
304
|
// that will be minted when the transfer is redeemed
|
|
212
305
|
let lookup;
|
|
213
306
|
if ((0, sdk_definitions_1.isNative)(token.address)) {
|
|
@@ -234,7 +327,40 @@ class TokenTransfer {
|
|
|
234
327
|
const dstAddress = await dstTb.getWrappedAsset(lookup);
|
|
235
328
|
return { chain: dstChain.chain, address: dstAddress };
|
|
236
329
|
}
|
|
237
|
-
|
|
330
|
+
TokenTransfer.lookupDestinationToken = lookupDestinationToken;
|
|
331
|
+
async function isTransferComplete(toChain, vaa) {
|
|
332
|
+
if (vaa.protocolName === "AutomaticTokenBridge")
|
|
333
|
+
vaa = (0, sdk_definitions_1.deserialize)("TokenBridge:TransferWithPayload", (0, sdk_definitions_1.serialize)(vaa));
|
|
334
|
+
const tb = await toChain.getTokenBridge();
|
|
335
|
+
return tb.isTransferCompleted(vaa);
|
|
336
|
+
}
|
|
337
|
+
TokenTransfer.isTransferComplete = isTransferComplete;
|
|
338
|
+
async function getTransferMessage(chain, txid, timeout) {
|
|
339
|
+
// A Single wormhole message will be returned for a standard token transfer
|
|
340
|
+
const whm = await wormhole_js_1.Wormhole.parseMessageFromTx(chain, txid, timeout);
|
|
341
|
+
if (whm.length !== 1)
|
|
342
|
+
throw new Error("Expected a single Wormhole Message, got: " + whm.length);
|
|
343
|
+
return whm[0];
|
|
344
|
+
}
|
|
345
|
+
TokenTransfer.getTransferMessage = getTransferMessage;
|
|
346
|
+
async function getTransferVaa(wh, key, timeout) {
|
|
347
|
+
const vaa = await wh.getVaa(key, sdk_definitions_1.TokenBridge.getTransferDiscriminator(), timeout);
|
|
348
|
+
if (!vaa)
|
|
349
|
+
throw new Error(`No VAA available after retries exhausted`);
|
|
350
|
+
// Check if its automatic and re-de-serialize
|
|
351
|
+
if (vaa.payloadName === "TransferWithPayload") {
|
|
352
|
+
const { chain, address } = vaa.payload.to;
|
|
353
|
+
const { tokenBridgeRelayer } = wh.config.chains[chain].contracts;
|
|
354
|
+
const relayerAddress = tokenBridgeRelayer ? (0, sdk_definitions_1.toUniversal)(chain, tokenBridgeRelayer) : null;
|
|
355
|
+
// If the target address is the relayer address, expect its an automatic token bridge vaa
|
|
356
|
+
if (!!relayerAddress && address.equals(relayerAddress)) {
|
|
357
|
+
return (0, sdk_definitions_1.deserialize)("AutomaticTokenBridge:TransferWithRelay", (0, sdk_definitions_1.serialize)(vaa));
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return vaa;
|
|
361
|
+
}
|
|
362
|
+
TokenTransfer.getTransferVaa = getTransferVaa;
|
|
363
|
+
function validateTransferDetails(wh, transfer, fromChain, toChain) {
|
|
238
364
|
if (transfer.amount === 0n)
|
|
239
365
|
throw new Error("Amount cannot be 0");
|
|
240
366
|
if (transfer.from.chain === transfer.to.chain)
|
|
@@ -261,10 +387,11 @@ class TokenTransfer {
|
|
|
261
387
|
throw new Error(`Token Bridge not supported on ${transfer.to.chain}`);
|
|
262
388
|
}
|
|
263
389
|
}
|
|
264
|
-
|
|
390
|
+
TokenTransfer.validateTransferDetails = validateTransferDetails;
|
|
391
|
+
async function quoteTransfer(wh, srcChain, dstChain, transfer) {
|
|
265
392
|
const srcDecimals = await srcChain.getDecimals(transfer.token.address);
|
|
266
393
|
const srcAmount = sdk_base_1.amount.fromBaseUnits(transfer.amount, srcDecimals);
|
|
267
|
-
const srcAmountTruncated = sdk_base_1.amount.truncate(srcAmount,
|
|
394
|
+
const srcAmountTruncated = sdk_base_1.amount.truncate(srcAmount, TokenTransfer.MAX_DECIMALS);
|
|
268
395
|
const srcToken = (0, sdk_definitions_1.isNative)(transfer.token.address)
|
|
269
396
|
? await srcChain.getNativeWrappedTokenId()
|
|
270
397
|
: transfer.token;
|
|
@@ -287,7 +414,7 @@ class TokenTransfer {
|
|
|
287
414
|
if (notionalTransferAmt > limit.available)
|
|
288
415
|
throw new Error(`Transfer amount exceeds available governed amount: ${notionalTransferAmt} > ${limit.available}`);
|
|
289
416
|
}
|
|
290
|
-
const dstToken = await
|
|
417
|
+
const dstToken = await TokenTransfer.lookupDestinationToken(srcChain, dstChain, transfer.token);
|
|
291
418
|
const dstDecimals = await dstChain.getDecimals(dstToken.address);
|
|
292
419
|
const dstAmountReceivable = sdk_base_1.amount.scale(srcAmountTruncated, dstDecimals);
|
|
293
420
|
if (!transfer.automatic) {
|
|
@@ -300,8 +427,8 @@ class TokenTransfer {
|
|
|
300
427
|
// The fee is removed from the amount transferred
|
|
301
428
|
// quoted on the source chain
|
|
302
429
|
const stb = await srcChain.getAutomaticTokenBridge();
|
|
303
|
-
const fee = await stb.getRelayerFee(
|
|
304
|
-
const feeAmountDest = sdk_base_1.amount.scale(sdk_base_1.amount.truncate(sdk_base_1.amount.fromBaseUnits(fee, srcDecimals),
|
|
430
|
+
const fee = await stb.getRelayerFee(dstChain.chain, srcToken.address);
|
|
431
|
+
const feeAmountDest = sdk_base_1.amount.scale(sdk_base_1.amount.truncate(sdk_base_1.amount.fromBaseUnits(fee, srcDecimals), TokenTransfer.MAX_DECIMALS), dstDecimals);
|
|
305
432
|
const dstNativeGasAmountRequested = transfer.nativeGas ?? 0n;
|
|
306
433
|
// The expected destination gas can be pulled from the destination token bridge
|
|
307
434
|
let destinationNativeGas = 0n;
|
|
@@ -329,7 +456,8 @@ class TokenTransfer {
|
|
|
329
456
|
destinationNativeGas,
|
|
330
457
|
};
|
|
331
458
|
}
|
|
332
|
-
|
|
459
|
+
TokenTransfer.quoteTransfer = quoteTransfer;
|
|
460
|
+
async function destinationOverrides(srcChain, dstChain, transfer) {
|
|
333
461
|
const _transfer = { ...transfer };
|
|
334
462
|
// Bit of (temporary) hackery until solana contracts support being
|
|
335
463
|
// sent a VAA with the primary address
|
|
@@ -357,123 +485,6 @@ class TokenTransfer {
|
|
|
357
485
|
}
|
|
358
486
|
return _transfer;
|
|
359
487
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
const from = transfer.from.chain;
|
|
363
|
-
const to = transfer.to.chain;
|
|
364
|
-
let receipt = {
|
|
365
|
-
from: from,
|
|
366
|
-
to: to,
|
|
367
|
-
state: types_js_1.TransferState.Created,
|
|
368
|
-
};
|
|
369
|
-
const originTxs = xfer.txids.filter((txid) => txid.chain === transfer.from.chain);
|
|
370
|
-
if (originTxs.length > 0) {
|
|
371
|
-
receipt = {
|
|
372
|
-
...receipt,
|
|
373
|
-
state: types_js_1.TransferState.SourceInitiated,
|
|
374
|
-
originTxs: originTxs,
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
const att = xfer.attestations && xfer.attestations.length > 0 ? xfer.attestations[0] : undefined;
|
|
378
|
-
const attestation = att && att.id ? { id: att.id, attestation: att.attestation } : undefined;
|
|
379
|
-
if (attestation) {
|
|
380
|
-
if (attestation.id) {
|
|
381
|
-
receipt = {
|
|
382
|
-
...receipt,
|
|
383
|
-
state: types_js_1.TransferState.SourceFinalized,
|
|
384
|
-
attestation: { id: attestation.id },
|
|
385
|
-
};
|
|
386
|
-
if (attestation.attestation) {
|
|
387
|
-
receipt = {
|
|
388
|
-
...receipt,
|
|
389
|
-
state: types_js_1.TransferState.Attested,
|
|
390
|
-
attestation: { id: attestation.id, attestation: attestation.attestation },
|
|
391
|
-
};
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
const destinationTxs = xfer.txids.filter((txid) => txid.chain === transfer.to.chain);
|
|
396
|
-
if (destinationTxs.length > 0) {
|
|
397
|
-
receipt = {
|
|
398
|
-
...receipt,
|
|
399
|
-
state: types_js_1.TransferState.DestinationFinalized,
|
|
400
|
-
destinationTxs: destinationTxs,
|
|
401
|
-
};
|
|
402
|
-
}
|
|
403
|
-
return receipt;
|
|
404
|
-
}
|
|
405
|
-
// AsyncGenerator fn that produces status updates through an async generator
|
|
406
|
-
// eventually producing a receipt
|
|
407
|
-
// can be called repeatedly so the receipt is updated as it moves through the
|
|
408
|
-
// steps of the transfer
|
|
409
|
-
static async *track(wh, receipt, timeout = config_js_1.DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
|
|
410
|
-
const start = Date.now();
|
|
411
|
-
const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
|
|
412
|
-
fromChain = fromChain ?? wh.getChain(receipt.from);
|
|
413
|
-
toChain = toChain ?? wh.getChain(receipt.to);
|
|
414
|
-
// Check the source chain for initiation transaction
|
|
415
|
-
// and capture the message id
|
|
416
|
-
if ((0, types_js_1.isSourceInitiated)(receipt)) {
|
|
417
|
-
if (receipt.originTxs.length === 0)
|
|
418
|
-
throw "Origin transactions required to fetch message id";
|
|
419
|
-
const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
|
|
420
|
-
const msg = await TokenTransfer.getTransferMessage(fromChain, txid, leftover(start, timeout));
|
|
421
|
-
receipt = {
|
|
422
|
-
...receipt,
|
|
423
|
-
state: types_js_1.TransferState.SourceFinalized,
|
|
424
|
-
attestation: { id: msg },
|
|
425
|
-
};
|
|
426
|
-
yield receipt;
|
|
427
|
-
}
|
|
428
|
-
// If the source is finalized, we need to fetch the signed attestation
|
|
429
|
-
// so that we may deliver it to the destination chain
|
|
430
|
-
// or at least track the transfer through its progress
|
|
431
|
-
if ((0, types_js_1.isSourceFinalized)(receipt)) {
|
|
432
|
-
if (!receipt.attestation.id)
|
|
433
|
-
throw "Attestation id required to fetch attestation";
|
|
434
|
-
const { id } = receipt.attestation;
|
|
435
|
-
const attestation = await TokenTransfer.getTransferVaa(wh, id, leftover(start, timeout));
|
|
436
|
-
receipt = {
|
|
437
|
-
...receipt,
|
|
438
|
-
attestation: { id, attestation },
|
|
439
|
-
state: types_js_1.TransferState.Attested,
|
|
440
|
-
};
|
|
441
|
-
yield receipt;
|
|
442
|
-
}
|
|
443
|
-
// First try to grab the tx status from the API
|
|
444
|
-
// Note: this requires a subsequent async step on the backend
|
|
445
|
-
// to have the dest txid populated, so it may be delayed by some time
|
|
446
|
-
if ((0, types_js_1.isAttested)(receipt) || (0, types_js_1.isSourceFinalized)(receipt)) {
|
|
447
|
-
if (!receipt.attestation.id)
|
|
448
|
-
throw "Attestation id required to fetch redeem tx";
|
|
449
|
-
const { id } = receipt.attestation;
|
|
450
|
-
const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
|
|
451
|
-
if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
|
|
452
|
-
const { chainId, txHash } = txStatus.globalTx.destinationTx;
|
|
453
|
-
receipt = {
|
|
454
|
-
...receipt,
|
|
455
|
-
destinationTxs: [{ chain: (0, sdk_base_1.toChain)(chainId), txid: txHash }],
|
|
456
|
-
state: types_js_1.TransferState.DestinationInitiated,
|
|
457
|
-
};
|
|
458
|
-
}
|
|
459
|
-
yield receipt;
|
|
460
|
-
}
|
|
461
|
-
// Fall back to asking the destination chain if this VAA has been redeemed
|
|
462
|
-
// Note: We do not get any destinationTxs with this method
|
|
463
|
-
if ((0, types_js_1.isAttested)(receipt)) {
|
|
464
|
-
if (!receipt.attestation.attestation)
|
|
465
|
-
throw "Signed Attestation required to check for redeem";
|
|
466
|
-
let isComplete = await TokenTransfer.isTransferComplete(toChain, receipt.attestation.attestation);
|
|
467
|
-
if (isComplete) {
|
|
468
|
-
receipt = {
|
|
469
|
-
...receipt,
|
|
470
|
-
state: types_js_1.TransferState.DestinationFinalized,
|
|
471
|
-
};
|
|
472
|
-
}
|
|
473
|
-
yield receipt;
|
|
474
|
-
}
|
|
475
|
-
yield receipt;
|
|
476
|
-
}
|
|
477
|
-
}
|
|
478
|
-
exports.TokenTransfer = TokenTransfer;
|
|
488
|
+
TokenTransfer.destinationOverrides = destinationOverrides;
|
|
489
|
+
})(TokenTransfer || (exports.TokenTransfer = TokenTransfer = {}));
|
|
479
490
|
//# sourceMappingURL=tokenTransfer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransfer.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wormholeTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/wormholeTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,MAAM,EACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,YAAY,GAAG,YAAY,IAAI,EAAE,SACpE,aAAa,GACb,sBAAsB,GACtB,oBAAoB,GACpB,EAAE,SAAS,cAAc,GAAG,uBAAuB,GACnD,qBAAqB,GACrB,EAAE,SAAS,WAAW,GACtB,sBAAsB,GACtB,KAAK,CAAC;AAIV,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,YAAY;IACvD,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,EACnD,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EACvC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,KAAK,CAAC,CAAC,SAAS,OAAO,EACrB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,MAAM,GACd,cAAc,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5D;AAID,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,YAAY;IACvD,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IAI9B,gBAAgB,IAAI,aAAa,CAAC;IAIlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAIpD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAI7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"wormholeTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/wormholeTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,MAAM,EACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,eAAe,CAAC,EAAE,SAAS,YAAY,GAAG,YAAY,IAAI,EAAE,SACpE,aAAa,GACb,sBAAsB,GACtB,oBAAoB,GACpB,EAAE,SAAS,cAAc,GAAG,uBAAuB,GACnD,qBAAqB,GACrB,EAAE,SAAS,WAAW,GACtB,sBAAsB,GACtB,KAAK,CAAC;AAIV,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,YAAY;IACvD,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,KAAK,EACnD,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAC3B,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,uBAAuB,CAAC,CAAC,SAAS,OAAO,EACvC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAClE,UAAU,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IAChF,KAAK,CAAC,CAAC,SAAS,OAAO,EACrB,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,IAAI,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EAC7C,OAAO,EAAE,MAAM,GACd,cAAc,CAAC,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5D;AAID,MAAM,WAAW,gBAAgB,CAAC,EAAE,SAAS,YAAY;IACvD,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;IAI9B,gBAAgB,IAAI,aAAa,CAAC;IAIlC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAIpD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAI7D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACrD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
2
|
import { amount } from "@wormhole-foundation/sdk-base";
|
|
3
|
-
import type { ChainContext, Signer, TokenId } from "@wormhole-foundation/sdk-definitions";
|
|
4
|
-
import
|
|
3
|
+
import type { ChainAddress, ChainContext, Signer, TokenId } from "@wormhole-foundation/sdk-definitions";
|
|
4
|
+
import { CircleTransfer } from "../../protocols/cctp/cctpTransfer.js";
|
|
5
5
|
import type { StaticRouteMethods } from "../route.js";
|
|
6
6
|
import { AutomaticRoute } from "../route.js";
|
|
7
7
|
import type { Quote, QuoteResult, Receipt, TransferParams, ValidatedTransferParams, ValidationResult } from "../types.js";
|
|
@@ -24,7 +24,7 @@ type Tp = TransferParams<Op>;
|
|
|
24
24
|
type Vr = ValidationResult<Op>;
|
|
25
25
|
type Q = Quote<Op, Vp>;
|
|
26
26
|
type QR = QuoteResult<Op, Vp>;
|
|
27
|
-
type R = Receipt<
|
|
27
|
+
type R = Receipt<CircleTransfer.AttestationReceipt>;
|
|
28
28
|
export declare class AutomaticCCTPRoute<N extends Network> extends AutomaticRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof AutomaticCCTPRoute> {
|
|
29
29
|
NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
|
|
30
30
|
static meta: {
|
|
@@ -41,8 +41,8 @@ export declare class AutomaticCCTPRoute<N extends Network> extends AutomaticRout
|
|
|
41
41
|
quote(params: Vp): Promise<QR>;
|
|
42
42
|
private normalizeTransferParams;
|
|
43
43
|
private toTransferDetails;
|
|
44
|
-
initiate(signer: Signer, quote: Q): Promise<R>;
|
|
45
|
-
track(receipt: R, timeout?: number): AsyncGenerator<
|
|
44
|
+
initiate(signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
|
|
45
|
+
track(receipt: R, timeout?: number): AsyncGenerator<CircleTransfer.TransferReceipt<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Acala" | "Arbitrum" | "Aurora" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Fantom" | "Gnosis" | "Karura" | "Klaytn" | "Moonbeam" | "Neon" | "Oasis" | "Optimism" | "Polygon" | "Rootstock" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Mantle" | "Scroll" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Pythnet" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Terra" | "Terra2" | "Wormchain" | "Xpla" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance", "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Acala" | "Arbitrum" | "Aurora" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Fantom" | "Gnosis" | "Karura" | "Klaytn" | "Moonbeam" | "Neon" | "Oasis" | "Optimism" | "Polygon" | "Rootstock" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Mantle" | "Scroll" | "Blast" | "Xlayer" | "Linea" | "Berachain" | "Seievm" | "Pythnet" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Terra" | "Terra2" | "Wormchain" | "Xpla" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance">, void, unknown>;
|
|
46
46
|
}
|
|
47
47
|
export {};
|
|
48
48
|
//# sourceMappingURL=automatic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic.d.ts","sourceRoot":"","sources":["../../../../src/routes/cctp/automatic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAqB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,EACV,YAAY,EAEZ,MAAM,EACN,OAAO,EACR,MAAM,sCAAsC,CAAC;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"automatic.d.ts","sourceRoot":"","sources":["../../../../src/routes/cctp/automatic.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AutomaticCCTPRoute = void 0;
|
|
4
4
|
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
-
const cctpTransfer_js_1 = require("../../protocols/cctpTransfer.js");
|
|
5
|
+
const cctpTransfer_js_1 = require("../../protocols/cctp/cctpTransfer.js");
|
|
6
6
|
const types_js_1 = require("../../types.js");
|
|
7
7
|
const wormhole_js_1 = require("../../wormhole.js");
|
|
8
8
|
const route_js_1 = require("../route.js");
|
|
@@ -70,7 +70,11 @@ class AutomaticCCTPRoute extends route_js_1.AutomaticRoute {
|
|
|
70
70
|
}
|
|
71
71
|
async quote(params) {
|
|
72
72
|
try {
|
|
73
|
-
return this.request.displayQuote(await cctpTransfer_js_1.CircleTransfer.quoteTransfer(this.request.fromChain, this.request.toChain,
|
|
73
|
+
return this.request.displayQuote(await cctpTransfer_js_1.CircleTransfer.quoteTransfer(this.request.fromChain, this.request.toChain, {
|
|
74
|
+
automatic: true,
|
|
75
|
+
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
76
|
+
nativeGas: sdk_base_1.amount.units(params.normalizedParams.nativeGasAmount),
|
|
77
|
+
}), params);
|
|
74
78
|
}
|
|
75
79
|
catch (e) {
|
|
76
80
|
return {
|
|
@@ -82,7 +86,7 @@ class AutomaticCCTPRoute extends route_js_1.AutomaticRoute {
|
|
|
82
86
|
async normalizeTransferParams(params) {
|
|
83
87
|
const amt = this.request.parseAmount(params.amount);
|
|
84
88
|
const ctb = await this.request.fromChain.getAutomaticCircleBridge();
|
|
85
|
-
const fee = await ctb.getRelayerFee(this.request.
|
|
89
|
+
const fee = await ctb.getRelayerFee(this.request.toChain.chain);
|
|
86
90
|
const minAmount = (fee * 105n) / 100n;
|
|
87
91
|
if (sdk_base_1.amount.units(amt) < minAmount) {
|
|
88
92
|
throw new Error(`Minimum amount is ${sdk_base_1.amount.display(this.request.amountFromBaseUnits(minAmount))}`);
|
|
@@ -104,18 +108,18 @@ class AutomaticCCTPRoute extends route_js_1.AutomaticRoute {
|
|
|
104
108
|
nativeGasAmount: this.request.amountFromBaseUnits(nativeGasAmount),
|
|
105
109
|
};
|
|
106
110
|
}
|
|
107
|
-
toTransferDetails(params) {
|
|
111
|
+
toTransferDetails(params, from, to) {
|
|
108
112
|
return {
|
|
109
|
-
from
|
|
110
|
-
to
|
|
113
|
+
from,
|
|
114
|
+
to,
|
|
111
115
|
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
112
116
|
automatic: true,
|
|
113
117
|
nativeGas: sdk_base_1.amount.units(params.normalizedParams.nativeGasAmount),
|
|
114
118
|
};
|
|
115
119
|
}
|
|
116
|
-
async initiate(signer, quote) {
|
|
120
|
+
async initiate(signer, quote, to) {
|
|
117
121
|
const { params } = quote;
|
|
118
|
-
let transfer = this.toTransferDetails(params);
|
|
122
|
+
let transfer = this.toTransferDetails(params, wormhole_js_1.Wormhole.chainAddress(signer.chain(), signer.address()), to);
|
|
119
123
|
let txids = await cctpTransfer_js_1.CircleTransfer.transfer(this.request.fromChain, transfer, signer);
|
|
120
124
|
const msg = await cctpTransfer_js_1.CircleTransfer.getTransferMessage(this.request.fromChain, txids[txids.length - 1].txid);
|
|
121
125
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../../../src/routes/cctp/automatic.ts"],"names":[],"mappings":";;;AACA,4DAA0E;AAQ1E,
|
|
1
|
+
{"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../../../src/routes/cctp/automatic.ts"],"names":[],"mappings":";;;AACA,4DAA0E;AAQ1E,0EAAsE;AACtE,6CAA+C;AAC/C,mDAA6C;AAE7C,0CAA6C;AAqC7C,MAAa,kBACX,SAAQ,yBAA4B;IAGpC,4BAA4B,GAAG,IAAI,CAAC;IAEpC,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,eAAe;KACtB,CAAC;IAEF,MAAM,CAAC,iBAAiB;QACtB,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChC,CAAC;IACD,6CAA6C;IAC7C,MAAM,CAAC,eAAe,CAAC,OAAgB;QACrC,IAAI,oBAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,qBAAqB,GAAG,oBAAS,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAY,CAAC;YACrF,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAQ,EAAE,EAAE;gBAC/C,OAAO,oBAAS,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,eAAiB,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAgC;QACjE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;QACrC,IAAI,CAAC,iBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxD,OAAO,CAAC,sBAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,iBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,oFAAoF;IACpF,MAAM,CAAC,KAAK,CAAC,0BAA0B,CACrC,WAAoB,EACpB,SAA0B,EAC1B,OAAwB;QAExB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,iBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxD,OAAO,CAAC,sBAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,iBAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAoB,KAAsB;QAClE,OAAO,KAAK,CAAC,6BAA6B,EAAE,CAAC;IAC/C,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,SAAS,EAAE,GAAG;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAU;QACvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAEpE,MAAM,eAAe,GAAO;gBAC1B,gBAAgB;gBAChB,OAAO;gBACP,GAAG,MAAM;aACV,CAAC;YAEF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAClD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM;gBACN,KAAK,EAAE,CAAU;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAU;QACpB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAC9B,MAAM,gCAAc,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC/E,SAAS,EAAE,IAAI;gBACf,MAAM,EAAE,iBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;gBACpD,SAAS,EAAE,iBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC;aACjE,CAAC,EACF,MAAM,CACP,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAU;aAClB,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,MAAU;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACtC,IAAI,iBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CACb,qBAAqB,iBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,iBAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAEnD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3D,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;QAC/C,IAAI,aAAa,GAAG,GAAG,IAAI,aAAa,GAAG,GAAG;YAC5C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAE1E,IAAI,eAAe,GAAG,EAAE,CAAC;QAEzB,IAAI,aAAa,GAAG,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,KAAK,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC;YAChD,eAAe,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC;YAC1C,MAAM,EAAE,GAAG;YACX,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC;SACnE,CAAC;IACJ,CAAC;IAEO,iBAAiB,CACvB,MAAU,EACV,IAAkB,EAClB,EAAgB;QAEhB,OAAO;YACL,IAAI;YACJ,EAAE;YACF,MAAM,EAAE,iBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACpD,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,iBAAM,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC;SACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAQ,EAAE,EAAgB;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CACnC,MAAM,EACN,sBAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,EACvD,EAAE,CACH,CAAC;QACF,IAAI,KAAK,GAAG,MAAM,gCAAc,CAAC,QAAQ,CAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvF,MAAM,GAAG,GAAG,MAAM,gCAAc,CAAC,kBAAkB,CACjD,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,IAAI,CAC9B,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YACzB,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK;YACrB,KAAK,EAAE,wBAAa,CAAC,eAAe;YACpC,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE;SACnE,CAAC;IACJ,CAAC;IAEe,KAAK,CAAC,CAAC,KAAK,CAAC,OAAU,EAAE,OAAgB;QACvD,KAAK,CAAC,CAAC,gCAAc,CAAC,KAAK,CACzB,IAAI,CAAC,EAAE,EACP,OAAO,EACP,OAAO,EACP,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,OAAO,CACrB,CAAC;IACJ,CAAC;;AAhLH,gDAiLC"}
|