@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransfer.d.ts","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { amount, encoding, toChain as toChainName } from "@wormhole-foundation/sdk-base";
|
|
2
2
|
import { TokenBridge, deserialize, isNative, isTokenId, isTokenTransferDetails, isTransactionIdentifier, isWormholeMessageId, serialize, toNative, toUniversal, universalAddress, } from "@wormhole-foundation/sdk-definitions";
|
|
3
|
-
import { signSendWait } from "
|
|
4
|
-
import { DEFAULT_TASK_TIMEOUT } from "
|
|
5
|
-
import { TransferState, isAttested, isSourceFinalized, isSourceInitiated } from "
|
|
6
|
-
import { getGovernedTokens, getGovernorLimits } from "
|
|
7
|
-
import { Wormhole } from "
|
|
8
|
-
// 8 is maximum precision supported by the token bridge VAA
|
|
9
|
-
const TOKEN_BRIDGE_MAX_DECIMALS = 8;
|
|
3
|
+
import { signSendWait } from "../../common.js";
|
|
4
|
+
import { DEFAULT_TASK_TIMEOUT } from "../../config.js";
|
|
5
|
+
import { TransferState, isAttested, isSourceFinalized, isSourceInitiated } from "../../types.js";
|
|
6
|
+
import { getGovernedTokens, getGovernorLimits } from "../../whscan-api.js";
|
|
7
|
+
import { Wormhole } from "../../wormhole.js";
|
|
10
8
|
export class TokenTransfer {
|
|
11
9
|
wh;
|
|
12
10
|
fromChain;
|
|
@@ -66,7 +64,7 @@ export class TokenTransfer {
|
|
|
66
64
|
// immediately have enough info to get the _correct_ one
|
|
67
65
|
let from = { chain: vaa.emitterChain, address: vaa.emitterAddress };
|
|
68
66
|
let { token, to } = vaa.payload;
|
|
69
|
-
const scaledAmount = amount.scale(amount.fromBaseUnits(token.amount,
|
|
67
|
+
const scaledAmount = amount.scale(amount.fromBaseUnits(token.amount, TokenTransfer.MAX_DECIMALS), await wh.getDecimals(token.chain, token.address));
|
|
70
68
|
let nativeGasAmount = 0n;
|
|
71
69
|
if (automatic) {
|
|
72
70
|
nativeGasAmount = vaa.payload.payload.toNativeTokenAmount;
|
|
@@ -147,9 +145,13 @@ export class TokenTransfer {
|
|
|
147
145
|
this._state = TransferState.DestinationInitiated;
|
|
148
146
|
return redeemTxids.map(({ txid }) => txid);
|
|
149
147
|
}
|
|
148
|
+
}
|
|
149
|
+
(function (TokenTransfer) {
|
|
150
|
+
/** 8 is maximum precision supported by the token bridge VAA */
|
|
151
|
+
TokenTransfer.MAX_DECIMALS = 8;
|
|
150
152
|
// Static method to perform the transfer so a custom RPC may be used
|
|
151
153
|
// Note: this assumes the transfer has already been validated with `validateTransfer`
|
|
152
|
-
|
|
154
|
+
async function transfer(fromChain, transfer, signer) {
|
|
153
155
|
const senderAddress = toNative(signer.chain(), signer.address());
|
|
154
156
|
const token = isTokenId(transfer.token) ? transfer.token.address : transfer.token;
|
|
155
157
|
let xfer;
|
|
@@ -163,48 +165,138 @@ export class TokenTransfer {
|
|
|
163
165
|
}
|
|
164
166
|
return signSendWait(fromChain, xfer, signer);
|
|
165
167
|
}
|
|
168
|
+
TokenTransfer.transfer = transfer;
|
|
166
169
|
// Static method to allow passing a custom RPC
|
|
167
|
-
|
|
170
|
+
async function redeem(toChain, vaa, signer) {
|
|
168
171
|
const signerAddress = toNative(signer.chain(), signer.address());
|
|
169
172
|
const xfer = vaa.protocolName === "AutomaticTokenBridge"
|
|
170
173
|
? (await toChain.getAutomaticTokenBridge()).redeem(signerAddress, vaa)
|
|
171
174
|
: (await toChain.getTokenBridge()).redeem(signerAddress, vaa);
|
|
172
175
|
return signSendWait(toChain, xfer, signer);
|
|
173
176
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
177
|
+
TokenTransfer.redeem = redeem;
|
|
178
|
+
// AsyncGenerator fn that produces status updates through an async generator
|
|
179
|
+
// eventually producing a receipt
|
|
180
|
+
// can be called repeatedly so the receipt is updated as it moves through the
|
|
181
|
+
// steps of the transfer
|
|
182
|
+
async function* track(wh, receipt, timeout = DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
|
|
183
|
+
const start = Date.now();
|
|
184
|
+
const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
|
|
185
|
+
fromChain = fromChain ?? wh.getChain(receipt.from);
|
|
186
|
+
toChain = toChain ?? wh.getChain(receipt.to);
|
|
187
|
+
// Check the source chain for initiation transaction
|
|
188
|
+
// and capture the message id
|
|
189
|
+
if (isSourceInitiated(receipt)) {
|
|
190
|
+
if (receipt.originTxs.length === 0)
|
|
191
|
+
throw "Origin transactions required to fetch message id";
|
|
192
|
+
const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
|
|
193
|
+
const msg = await TokenTransfer.getTransferMessage(fromChain, txid, leftover(start, timeout));
|
|
194
|
+
receipt = {
|
|
195
|
+
...receipt,
|
|
196
|
+
state: TransferState.SourceFinalized,
|
|
197
|
+
attestation: { id: msg },
|
|
198
|
+
};
|
|
199
|
+
yield receipt;
|
|
200
|
+
}
|
|
201
|
+
// If the source is finalized, we need to fetch the signed attestation
|
|
202
|
+
// so that we may deliver it to the destination chain
|
|
203
|
+
// or at least track the transfer through its progress
|
|
204
|
+
if (isSourceFinalized(receipt)) {
|
|
205
|
+
if (!receipt.attestation.id)
|
|
206
|
+
throw "Attestation id required to fetch attestation";
|
|
207
|
+
const { id } = receipt.attestation;
|
|
208
|
+
const attestation = await TokenTransfer.getTransferVaa(wh, id, leftover(start, timeout));
|
|
209
|
+
receipt = {
|
|
210
|
+
...receipt,
|
|
211
|
+
attestation: { id, attestation },
|
|
212
|
+
state: TransferState.Attested,
|
|
213
|
+
};
|
|
214
|
+
yield receipt;
|
|
215
|
+
}
|
|
216
|
+
// First try to grab the tx status from the API
|
|
217
|
+
// Note: this requires a subsequent async step on the backend
|
|
218
|
+
// to have the dest txid populated, so it may be delayed by some time
|
|
219
|
+
if (isAttested(receipt) || isSourceFinalized(receipt)) {
|
|
220
|
+
if (!receipt.attestation.id)
|
|
221
|
+
throw "Attestation id required to fetch redeem tx";
|
|
222
|
+
const { id } = receipt.attestation;
|
|
223
|
+
const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
|
|
224
|
+
if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
|
|
225
|
+
const { chainId, txHash } = txStatus.globalTx.destinationTx;
|
|
226
|
+
receipt = {
|
|
227
|
+
...receipt,
|
|
228
|
+
destinationTxs: [{ chain: toChainName(chainId), txid: txHash }],
|
|
229
|
+
state: TransferState.DestinationInitiated,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
yield receipt;
|
|
233
|
+
}
|
|
234
|
+
// Fall back to asking the destination chain if this VAA has been redeemed
|
|
235
|
+
// Note: We do not get any destinationTxs with this method
|
|
236
|
+
if (isAttested(receipt)) {
|
|
237
|
+
if (!receipt.attestation.attestation)
|
|
238
|
+
throw "Signed Attestation required to check for redeem";
|
|
239
|
+
let isComplete = await TokenTransfer.isTransferComplete(toChain, receipt.attestation.attestation);
|
|
240
|
+
if (isComplete) {
|
|
241
|
+
receipt = {
|
|
242
|
+
...receipt,
|
|
243
|
+
state: TransferState.DestinationFinalized,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
yield receipt;
|
|
247
|
+
}
|
|
248
|
+
yield receipt;
|
|
187
249
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
250
|
+
TokenTransfer.track = track;
|
|
251
|
+
function getReceipt(xfer) {
|
|
252
|
+
const { transfer } = xfer;
|
|
253
|
+
const from = transfer.from.chain;
|
|
254
|
+
const to = transfer.to.chain;
|
|
255
|
+
let receipt = {
|
|
256
|
+
from: from,
|
|
257
|
+
to: to,
|
|
258
|
+
state: TransferState.Created,
|
|
259
|
+
};
|
|
260
|
+
const originTxs = xfer.txids.filter((txid) => txid.chain === transfer.from.chain);
|
|
261
|
+
if (originTxs.length > 0) {
|
|
262
|
+
receipt = {
|
|
263
|
+
...receipt,
|
|
264
|
+
state: TransferState.SourceInitiated,
|
|
265
|
+
originTxs: originTxs,
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
const att = xfer.attestations && xfer.attestations.length > 0 ? xfer.attestations[0] : undefined;
|
|
269
|
+
const attestation = att && att.id ? { id: att.id, attestation: att.attestation } : undefined;
|
|
270
|
+
if (attestation) {
|
|
271
|
+
if (attestation.id) {
|
|
272
|
+
receipt = {
|
|
273
|
+
...receipt,
|
|
274
|
+
state: TransferState.SourceFinalized,
|
|
275
|
+
attestation: { id: attestation.id },
|
|
276
|
+
};
|
|
277
|
+
if (attestation.attestation) {
|
|
278
|
+
receipt = {
|
|
279
|
+
...receipt,
|
|
280
|
+
state: TransferState.Attested,
|
|
281
|
+
attestation: { id: attestation.id, attestation: attestation.attestation },
|
|
282
|
+
};
|
|
283
|
+
}
|
|
201
284
|
}
|
|
202
285
|
}
|
|
203
|
-
|
|
286
|
+
const destinationTxs = xfer.txids.filter((txid) => txid.chain === transfer.to.chain);
|
|
287
|
+
if (destinationTxs.length > 0) {
|
|
288
|
+
receipt = {
|
|
289
|
+
...receipt,
|
|
290
|
+
state: TransferState.DestinationFinalized,
|
|
291
|
+
destinationTxs: destinationTxs,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
return receipt;
|
|
204
295
|
}
|
|
296
|
+
TokenTransfer.getReceipt = getReceipt;
|
|
205
297
|
// Lookup the token id for the destination chain given the source chain
|
|
206
298
|
// and token id
|
|
207
|
-
|
|
299
|
+
async function lookupDestinationToken(srcChain, dstChain, token) {
|
|
208
300
|
// that will be minted when the transfer is redeemed
|
|
209
301
|
let lookup;
|
|
210
302
|
if (isNative(token.address)) {
|
|
@@ -231,7 +323,40 @@ export class TokenTransfer {
|
|
|
231
323
|
const dstAddress = await dstTb.getWrappedAsset(lookup);
|
|
232
324
|
return { chain: dstChain.chain, address: dstAddress };
|
|
233
325
|
}
|
|
234
|
-
|
|
326
|
+
TokenTransfer.lookupDestinationToken = lookupDestinationToken;
|
|
327
|
+
async function isTransferComplete(toChain, vaa) {
|
|
328
|
+
if (vaa.protocolName === "AutomaticTokenBridge")
|
|
329
|
+
vaa = deserialize("TokenBridge:TransferWithPayload", serialize(vaa));
|
|
330
|
+
const tb = await toChain.getTokenBridge();
|
|
331
|
+
return tb.isTransferCompleted(vaa);
|
|
332
|
+
}
|
|
333
|
+
TokenTransfer.isTransferComplete = isTransferComplete;
|
|
334
|
+
async function getTransferMessage(chain, txid, timeout) {
|
|
335
|
+
// A Single wormhole message will be returned for a standard token transfer
|
|
336
|
+
const whm = await Wormhole.parseMessageFromTx(chain, txid, timeout);
|
|
337
|
+
if (whm.length !== 1)
|
|
338
|
+
throw new Error("Expected a single Wormhole Message, got: " + whm.length);
|
|
339
|
+
return whm[0];
|
|
340
|
+
}
|
|
341
|
+
TokenTransfer.getTransferMessage = getTransferMessage;
|
|
342
|
+
async function getTransferVaa(wh, key, timeout) {
|
|
343
|
+
const vaa = await wh.getVaa(key, TokenBridge.getTransferDiscriminator(), timeout);
|
|
344
|
+
if (!vaa)
|
|
345
|
+
throw new Error(`No VAA available after retries exhausted`);
|
|
346
|
+
// Check if its automatic and re-de-serialize
|
|
347
|
+
if (vaa.payloadName === "TransferWithPayload") {
|
|
348
|
+
const { chain, address } = vaa.payload.to;
|
|
349
|
+
const { tokenBridgeRelayer } = wh.config.chains[chain].contracts;
|
|
350
|
+
const relayerAddress = tokenBridgeRelayer ? toUniversal(chain, tokenBridgeRelayer) : null;
|
|
351
|
+
// If the target address is the relayer address, expect its an automatic token bridge vaa
|
|
352
|
+
if (!!relayerAddress && address.equals(relayerAddress)) {
|
|
353
|
+
return deserialize("AutomaticTokenBridge:TransferWithRelay", serialize(vaa));
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return vaa;
|
|
357
|
+
}
|
|
358
|
+
TokenTransfer.getTransferVaa = getTransferVaa;
|
|
359
|
+
function validateTransferDetails(wh, transfer, fromChain, toChain) {
|
|
235
360
|
if (transfer.amount === 0n)
|
|
236
361
|
throw new Error("Amount cannot be 0");
|
|
237
362
|
if (transfer.from.chain === transfer.to.chain)
|
|
@@ -258,10 +383,11 @@ export class TokenTransfer {
|
|
|
258
383
|
throw new Error(`Token Bridge not supported on ${transfer.to.chain}`);
|
|
259
384
|
}
|
|
260
385
|
}
|
|
261
|
-
|
|
386
|
+
TokenTransfer.validateTransferDetails = validateTransferDetails;
|
|
387
|
+
async function quoteTransfer(wh, srcChain, dstChain, transfer) {
|
|
262
388
|
const srcDecimals = await srcChain.getDecimals(transfer.token.address);
|
|
263
389
|
const srcAmount = amount.fromBaseUnits(transfer.amount, srcDecimals);
|
|
264
|
-
const srcAmountTruncated = amount.truncate(srcAmount,
|
|
390
|
+
const srcAmountTruncated = amount.truncate(srcAmount, TokenTransfer.MAX_DECIMALS);
|
|
265
391
|
const srcToken = isNative(transfer.token.address)
|
|
266
392
|
? await srcChain.getNativeWrappedTokenId()
|
|
267
393
|
: transfer.token;
|
|
@@ -284,7 +410,7 @@ export class TokenTransfer {
|
|
|
284
410
|
if (notionalTransferAmt > limit.available)
|
|
285
411
|
throw new Error(`Transfer amount exceeds available governed amount: ${notionalTransferAmt} > ${limit.available}`);
|
|
286
412
|
}
|
|
287
|
-
const dstToken = await
|
|
413
|
+
const dstToken = await TokenTransfer.lookupDestinationToken(srcChain, dstChain, transfer.token);
|
|
288
414
|
const dstDecimals = await dstChain.getDecimals(dstToken.address);
|
|
289
415
|
const dstAmountReceivable = amount.scale(srcAmountTruncated, dstDecimals);
|
|
290
416
|
if (!transfer.automatic) {
|
|
@@ -297,8 +423,8 @@ export class TokenTransfer {
|
|
|
297
423
|
// The fee is removed from the amount transferred
|
|
298
424
|
// quoted on the source chain
|
|
299
425
|
const stb = await srcChain.getAutomaticTokenBridge();
|
|
300
|
-
const fee = await stb.getRelayerFee(
|
|
301
|
-
const feeAmountDest = amount.scale(amount.truncate(amount.fromBaseUnits(fee, srcDecimals),
|
|
426
|
+
const fee = await stb.getRelayerFee(dstChain.chain, srcToken.address);
|
|
427
|
+
const feeAmountDest = amount.scale(amount.truncate(amount.fromBaseUnits(fee, srcDecimals), TokenTransfer.MAX_DECIMALS), dstDecimals);
|
|
302
428
|
const dstNativeGasAmountRequested = transfer.nativeGas ?? 0n;
|
|
303
429
|
// The expected destination gas can be pulled from the destination token bridge
|
|
304
430
|
let destinationNativeGas = 0n;
|
|
@@ -326,7 +452,8 @@ export class TokenTransfer {
|
|
|
326
452
|
destinationNativeGas,
|
|
327
453
|
};
|
|
328
454
|
}
|
|
329
|
-
|
|
455
|
+
TokenTransfer.quoteTransfer = quoteTransfer;
|
|
456
|
+
async function destinationOverrides(srcChain, dstChain, transfer) {
|
|
330
457
|
const _transfer = { ...transfer };
|
|
331
458
|
// Bit of (temporary) hackery until solana contracts support being
|
|
332
459
|
// sent a VAA with the primary address
|
|
@@ -354,122 +481,6 @@ export class TokenTransfer {
|
|
|
354
481
|
}
|
|
355
482
|
return _transfer;
|
|
356
483
|
}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
const from = transfer.from.chain;
|
|
360
|
-
const to = transfer.to.chain;
|
|
361
|
-
let receipt = {
|
|
362
|
-
from: from,
|
|
363
|
-
to: to,
|
|
364
|
-
state: TransferState.Created,
|
|
365
|
-
};
|
|
366
|
-
const originTxs = xfer.txids.filter((txid) => txid.chain === transfer.from.chain);
|
|
367
|
-
if (originTxs.length > 0) {
|
|
368
|
-
receipt = {
|
|
369
|
-
...receipt,
|
|
370
|
-
state: TransferState.SourceInitiated,
|
|
371
|
-
originTxs: originTxs,
|
|
372
|
-
};
|
|
373
|
-
}
|
|
374
|
-
const att = xfer.attestations && xfer.attestations.length > 0 ? xfer.attestations[0] : undefined;
|
|
375
|
-
const attestation = att && att.id ? { id: att.id, attestation: att.attestation } : undefined;
|
|
376
|
-
if (attestation) {
|
|
377
|
-
if (attestation.id) {
|
|
378
|
-
receipt = {
|
|
379
|
-
...receipt,
|
|
380
|
-
state: TransferState.SourceFinalized,
|
|
381
|
-
attestation: { id: attestation.id },
|
|
382
|
-
};
|
|
383
|
-
if (attestation.attestation) {
|
|
384
|
-
receipt = {
|
|
385
|
-
...receipt,
|
|
386
|
-
state: TransferState.Attested,
|
|
387
|
-
attestation: { id: attestation.id, attestation: attestation.attestation },
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
const destinationTxs = xfer.txids.filter((txid) => txid.chain === transfer.to.chain);
|
|
393
|
-
if (destinationTxs.length > 0) {
|
|
394
|
-
receipt = {
|
|
395
|
-
...receipt,
|
|
396
|
-
state: TransferState.DestinationFinalized,
|
|
397
|
-
destinationTxs: destinationTxs,
|
|
398
|
-
};
|
|
399
|
-
}
|
|
400
|
-
return receipt;
|
|
401
|
-
}
|
|
402
|
-
// AsyncGenerator fn that produces status updates through an async generator
|
|
403
|
-
// eventually producing a receipt
|
|
404
|
-
// can be called repeatedly so the receipt is updated as it moves through the
|
|
405
|
-
// steps of the transfer
|
|
406
|
-
static async *track(wh, receipt, timeout = DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
|
|
407
|
-
const start = Date.now();
|
|
408
|
-
const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
|
|
409
|
-
fromChain = fromChain ?? wh.getChain(receipt.from);
|
|
410
|
-
toChain = toChain ?? wh.getChain(receipt.to);
|
|
411
|
-
// Check the source chain for initiation transaction
|
|
412
|
-
// and capture the message id
|
|
413
|
-
if (isSourceInitiated(receipt)) {
|
|
414
|
-
if (receipt.originTxs.length === 0)
|
|
415
|
-
throw "Origin transactions required to fetch message id";
|
|
416
|
-
const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
|
|
417
|
-
const msg = await TokenTransfer.getTransferMessage(fromChain, txid, leftover(start, timeout));
|
|
418
|
-
receipt = {
|
|
419
|
-
...receipt,
|
|
420
|
-
state: TransferState.SourceFinalized,
|
|
421
|
-
attestation: { id: msg },
|
|
422
|
-
};
|
|
423
|
-
yield receipt;
|
|
424
|
-
}
|
|
425
|
-
// If the source is finalized, we need to fetch the signed attestation
|
|
426
|
-
// so that we may deliver it to the destination chain
|
|
427
|
-
// or at least track the transfer through its progress
|
|
428
|
-
if (isSourceFinalized(receipt)) {
|
|
429
|
-
if (!receipt.attestation.id)
|
|
430
|
-
throw "Attestation id required to fetch attestation";
|
|
431
|
-
const { id } = receipt.attestation;
|
|
432
|
-
const attestation = await TokenTransfer.getTransferVaa(wh, id, leftover(start, timeout));
|
|
433
|
-
receipt = {
|
|
434
|
-
...receipt,
|
|
435
|
-
attestation: { id, attestation },
|
|
436
|
-
state: TransferState.Attested,
|
|
437
|
-
};
|
|
438
|
-
yield receipt;
|
|
439
|
-
}
|
|
440
|
-
// First try to grab the tx status from the API
|
|
441
|
-
// Note: this requires a subsequent async step on the backend
|
|
442
|
-
// to have the dest txid populated, so it may be delayed by some time
|
|
443
|
-
if (isAttested(receipt) || isSourceFinalized(receipt)) {
|
|
444
|
-
if (!receipt.attestation.id)
|
|
445
|
-
throw "Attestation id required to fetch redeem tx";
|
|
446
|
-
const { id } = receipt.attestation;
|
|
447
|
-
const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
|
|
448
|
-
if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
|
|
449
|
-
const { chainId, txHash } = txStatus.globalTx.destinationTx;
|
|
450
|
-
receipt = {
|
|
451
|
-
...receipt,
|
|
452
|
-
destinationTxs: [{ chain: toChainName(chainId), txid: txHash }],
|
|
453
|
-
state: TransferState.DestinationInitiated,
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
yield receipt;
|
|
457
|
-
}
|
|
458
|
-
// Fall back to asking the destination chain if this VAA has been redeemed
|
|
459
|
-
// Note: We do not get any destinationTxs with this method
|
|
460
|
-
if (isAttested(receipt)) {
|
|
461
|
-
if (!receipt.attestation.attestation)
|
|
462
|
-
throw "Signed Attestation required to check for redeem";
|
|
463
|
-
let isComplete = await TokenTransfer.isTransferComplete(toChain, receipt.attestation.attestation);
|
|
464
|
-
if (isComplete) {
|
|
465
|
-
receipt = {
|
|
466
|
-
...receipt,
|
|
467
|
-
state: TransferState.DestinationFinalized,
|
|
468
|
-
};
|
|
469
|
-
}
|
|
470
|
-
yield receipt;
|
|
471
|
-
}
|
|
472
|
-
yield receipt;
|
|
473
|
-
}
|
|
474
|
-
}
|
|
484
|
+
TokenTransfer.destinationOverrides = destinationOverrides;
|
|
485
|
+
})(TokenTransfer || (TokenTransfer = {}));
|
|
475
486
|
//# 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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { amount, circle, contracts } from "@wormhole-foundation/sdk-base";
|
|
2
|
-
import { CircleTransfer } from "../../protocols/cctpTransfer.js";
|
|
2
|
+
import { CircleTransfer } from "../../protocols/cctp/cctpTransfer.js";
|
|
3
3
|
import { TransferState } from "../../types.js";
|
|
4
4
|
import { Wormhole } from "../../wormhole.js";
|
|
5
5
|
import { AutomaticRoute } from "../route.js";
|
|
@@ -67,7 +67,11 @@ export class AutomaticCCTPRoute extends AutomaticRoute {
|
|
|
67
67
|
}
|
|
68
68
|
async quote(params) {
|
|
69
69
|
try {
|
|
70
|
-
return this.request.displayQuote(await CircleTransfer.quoteTransfer(this.request.fromChain, this.request.toChain,
|
|
70
|
+
return this.request.displayQuote(await CircleTransfer.quoteTransfer(this.request.fromChain, this.request.toChain, {
|
|
71
|
+
automatic: true,
|
|
72
|
+
amount: amount.units(params.normalizedParams.amount),
|
|
73
|
+
nativeGas: amount.units(params.normalizedParams.nativeGasAmount),
|
|
74
|
+
}), params);
|
|
71
75
|
}
|
|
72
76
|
catch (e) {
|
|
73
77
|
return {
|
|
@@ -79,7 +83,7 @@ export class AutomaticCCTPRoute extends AutomaticRoute {
|
|
|
79
83
|
async normalizeTransferParams(params) {
|
|
80
84
|
const amt = this.request.parseAmount(params.amount);
|
|
81
85
|
const ctb = await this.request.fromChain.getAutomaticCircleBridge();
|
|
82
|
-
const fee = await ctb.getRelayerFee(this.request.
|
|
86
|
+
const fee = await ctb.getRelayerFee(this.request.toChain.chain);
|
|
83
87
|
const minAmount = (fee * 105n) / 100n;
|
|
84
88
|
if (amount.units(amt) < minAmount) {
|
|
85
89
|
throw new Error(`Minimum amount is ${amount.display(this.request.amountFromBaseUnits(minAmount))}`);
|
|
@@ -101,18 +105,18 @@ export class AutomaticCCTPRoute extends AutomaticRoute {
|
|
|
101
105
|
nativeGasAmount: this.request.amountFromBaseUnits(nativeGasAmount),
|
|
102
106
|
};
|
|
103
107
|
}
|
|
104
|
-
toTransferDetails(params) {
|
|
108
|
+
toTransferDetails(params, from, to) {
|
|
105
109
|
return {
|
|
106
|
-
from
|
|
107
|
-
to
|
|
110
|
+
from,
|
|
111
|
+
to,
|
|
108
112
|
amount: amount.units(params.normalizedParams.amount),
|
|
109
113
|
automatic: true,
|
|
110
114
|
nativeGas: amount.units(params.normalizedParams.nativeGasAmount),
|
|
111
115
|
};
|
|
112
116
|
}
|
|
113
|
-
async initiate(signer, quote) {
|
|
117
|
+
async initiate(signer, quote, to) {
|
|
114
118
|
const { params } = quote;
|
|
115
|
-
let transfer = this.toTransferDetails(params);
|
|
119
|
+
let transfer = this.toTransferDetails(params, Wormhole.chainAddress(signer.chain(), signer.address()), to);
|
|
116
120
|
let txids = await CircleTransfer.transfer(this.request.fromChain, transfer, signer);
|
|
117
121
|
const msg = await CircleTransfer.getTransferMessage(this.request.fromChain, txids[txids.length - 1].txid);
|
|
118
122
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../../../src/routes/cctp/automatic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAQ1E,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../../../src/routes/cctp/automatic.ts"],"names":[],"mappings":"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"}
|