@wormhole-foundation/sdk-connect 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/indexers/__tests__/balances.test.js +1 -0
- package/dist/esm/indexers/__tests__/balances.test.js.map +1 -1
- package/package.json +32 -126
- package/dist/cjs/circle-api.d.ts +0 -20
- package/dist/cjs/circle-api.d.ts.map +0 -1
- package/dist/cjs/circle-api.js +0 -67
- package/dist/cjs/circle-api.js.map +0 -1
- package/dist/cjs/common.d.ts +0 -6
- package/dist/cjs/common.d.ts.map +0 -1
- package/dist/cjs/common.js +0 -60
- package/dist/cjs/common.js.map +0 -1
- package/dist/cjs/config.d.ts +0 -41
- package/dist/cjs/config.d.ts.map +0 -1
- package/dist/cjs/config.js +0 -65
- package/dist/cjs/config.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -22
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -71
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/indexers/AlchemyClient.d.ts +0 -17
- package/dist/cjs/indexers/AlchemyClient.d.ts.map +0 -1
- package/dist/cjs/indexers/AlchemyClient.js +0 -112
- package/dist/cjs/indexers/AlchemyClient.js.map +0 -1
- package/dist/cjs/indexers/GoldRushClient.d.ts +0 -14
- package/dist/cjs/indexers/GoldRushClient.d.ts.map +0 -1
- package/dist/cjs/indexers/GoldRushClient.js +0 -90
- package/dist/cjs/indexers/GoldRushClient.js.map +0 -1
- package/dist/cjs/indexers/__tests__/balances.test.d.ts +0 -2
- package/dist/cjs/indexers/__tests__/balances.test.d.ts.map +0 -1
- package/dist/cjs/indexers/__tests__/balances.test.js +0 -323
- package/dist/cjs/indexers/__tests__/balances.test.js.map +0 -1
- package/dist/cjs/indexers/__tests__/utils.test.d.ts +0 -2
- package/dist/cjs/indexers/__tests__/utils.test.d.ts.map +0 -1
- package/dist/cjs/indexers/__tests__/utils.test.js +0 -71
- package/dist/cjs/indexers/__tests__/utils.test.js.map +0 -1
- package/dist/cjs/indexers/balances.d.ts +0 -5
- package/dist/cjs/indexers/balances.d.ts.map +0 -1
- package/dist/cjs/indexers/balances.js +0 -70
- package/dist/cjs/indexers/balances.js.map +0 -1
- package/dist/cjs/indexers/index.d.ts +0 -3
- package/dist/cjs/indexers/index.d.ts.map +0 -1
- package/dist/cjs/indexers/index.js +0 -21
- package/dist/cjs/indexers/index.js.map +0 -1
- package/dist/cjs/indexers/types.d.ts +0 -30
- package/dist/cjs/indexers/types.d.ts.map +0 -1
- package/dist/cjs/indexers/types.js +0 -3
- package/dist/cjs/indexers/types.js.map +0 -1
- package/dist/cjs/indexers/utils.d.ts +0 -2
- package/dist/cjs/indexers/utils.d.ts.map +0 -1
- package/dist/cjs/indexers/utils.js +0 -21
- package/dist/cjs/indexers/utils.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts +0 -46
- package/dist/cjs/protocols/cctp/cctpTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/cctp/cctpTransfer.js +0 -498
- package/dist/cjs/protocols/cctp/cctpTransfer.js.map +0 -1
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts +0 -43
- package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/gateway/gatewayTransfer.js +0 -399
- package/dist/cjs/protocols/gateway/gatewayTransfer.js.map +0 -1
- package/dist/cjs/protocols/index.d.ts +0 -5
- package/dist/cjs/protocols/index.d.ts.map +0 -1
- package/dist/cjs/protocols/index.js +0 -21
- package/dist/cjs/protocols/index.js.map +0 -1
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts +0 -68
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js +0 -800
- package/dist/cjs/protocols/tokenBridge/tokenTransfer.js.map +0 -1
- package/dist/cjs/protocols/wormholeTransfer.d.ts +0 -20
- package/dist/cjs/protocols/wormholeTransfer.d.ts.map +0 -1
- package/dist/cjs/protocols/wormholeTransfer.js +0 -3
- package/dist/cjs/protocols/wormholeTransfer.js.map +0 -1
- package/dist/cjs/routes/cctp/automatic.d.ts +0 -47
- package/dist/cjs/routes/cctp/automatic.d.ts.map +0 -1
- package/dist/cjs/routes/cctp/automatic.js +0 -159
- package/dist/cjs/routes/cctp/automatic.js.map +0 -1
- package/dist/cjs/routes/cctp/index.d.ts +0 -3
- package/dist/cjs/routes/cctp/index.d.ts.map +0 -1
- package/dist/cjs/routes/cctp/index.js +0 -19
- package/dist/cjs/routes/cctp/index.js.map +0 -1
- package/dist/cjs/routes/cctp/manual.d.ts +0 -46
- package/dist/cjs/routes/cctp/manual.d.ts.map +0 -1
- package/dist/cjs/routes/cctp/manual.js +0 -139
- package/dist/cjs/routes/cctp/manual.js.map +0 -1
- package/dist/cjs/routes/common.d.ts +0 -13
- package/dist/cjs/routes/common.d.ts.map +0 -1
- package/dist/cjs/routes/common.js +0 -51
- package/dist/cjs/routes/common.js.map +0 -1
- package/dist/cjs/routes/index.d.ts +0 -10
- package/dist/cjs/routes/index.d.ts.map +0 -1
- package/dist/cjs/routes/index.js +0 -26
- package/dist/cjs/routes/index.js.map +0 -1
- package/dist/cjs/routes/portico/automatic.d.ts +0 -48
- package/dist/cjs/routes/portico/automatic.d.ts.map +0 -1
- package/dist/cjs/routes/portico/automatic.js +0 -232
- package/dist/cjs/routes/portico/automatic.js.map +0 -1
- package/dist/cjs/routes/portico/index.d.ts +0 -3
- package/dist/cjs/routes/portico/index.d.ts.map +0 -1
- package/dist/cjs/routes/portico/index.js +0 -18
- package/dist/cjs/routes/portico/index.js.map +0 -1
- package/dist/cjs/routes/request.d.ts +0 -29
- package/dist/cjs/routes/request.d.ts.map +0 -1
- package/dist/cjs/routes/request.js +0 -72
- package/dist/cjs/routes/request.js.map +0 -1
- package/dist/cjs/routes/resolver.d.ts +0 -14
- package/dist/cjs/routes/resolver.d.ts.map +0 -1
- package/dist/cjs/routes/resolver.js +0 -58
- package/dist/cjs/routes/resolver.js.map +0 -1
- package/dist/cjs/routes/route.d.ts +0 -79
- package/dist/cjs/routes/route.d.ts.map +0 -1
- package/dist/cjs/routes/route.js +0 -63
- package/dist/cjs/routes/route.js.map +0 -1
- package/dist/cjs/routes/tbtc/index.d.ts +0 -2
- package/dist/cjs/routes/tbtc/index.d.ts.map +0 -1
- package/dist/cjs/routes/tbtc/index.js +0 -18
- package/dist/cjs/routes/tbtc/index.js.map +0 -1
- package/dist/cjs/routes/tbtc/tbtc.d.ts +0 -44
- package/dist/cjs/routes/tbtc/tbtc.d.ts.map +0 -1
- package/dist/cjs/routes/tbtc/tbtc.js +0 -244
- package/dist/cjs/routes/tbtc/tbtc.js.map +0 -1
- package/dist/cjs/routes/token.d.ts +0 -13
- package/dist/cjs/routes/token.d.ts.map +0 -1
- package/dist/cjs/routes/token.js +0 -45
- package/dist/cjs/routes/token.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/automatic.d.ts +0 -47
- package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/automatic.js +0 -205
- package/dist/cjs/routes/tokenBridge/automatic.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/executor.d.ts +0 -107
- package/dist/cjs/routes/tokenBridge/executor.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/executor.js +0 -245
- package/dist/cjs/routes/tokenBridge/executor.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/index.d.ts +0 -4
- package/dist/cjs/routes/tokenBridge/index.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/index.js +0 -20
- package/dist/cjs/routes/tokenBridge/index.js.map +0 -1
- package/dist/cjs/routes/tokenBridge/manual.d.ts +0 -45
- package/dist/cjs/routes/tokenBridge/manual.d.ts.map +0 -1
- package/dist/cjs/routes/tokenBridge/manual.js +0 -135
- package/dist/cjs/routes/tokenBridge/manual.js.map +0 -1
- package/dist/cjs/routes/types.d.ts +0 -59
- package/dist/cjs/routes/types.d.ts.map +0 -1
- package/dist/cjs/routes/types.js +0 -31
- package/dist/cjs/routes/types.js.map +0 -1
- package/dist/cjs/tasks.d.ts +0 -7
- package/dist/cjs/tasks.d.ts.map +0 -1
- package/dist/cjs/tasks.js +0 -65
- package/dist/cjs/tasks.js.map +0 -1
- package/dist/cjs/tokens.d.ts +0 -3
- package/dist/cjs/tokens.d.ts.map +0 -1
- package/dist/cjs/tokens.js +0 -19
- package/dist/cjs/tokens.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -131
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -66
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/warnings.d.ts +0 -10
- package/dist/cjs/warnings.d.ts.map +0 -1
- package/dist/cjs/warnings.js +0 -3
- package/dist/cjs/warnings.js.map +0 -1
- package/dist/cjs/whscan-api.d.ts +0 -173
- package/dist/cjs/whscan-api.d.ts.map +0 -1
- package/dist/cjs/whscan-api.js +0 -238
- package/dist/cjs/whscan-api.js.map +0 -1
- package/dist/cjs/wormhole.d.ts +0 -244
- package/dist/cjs/wormhole.d.ts.map +0 -1
- package/dist/cjs/wormhole.js +0 -377
- package/dist/cjs/wormhole.js.map +0 -1
- package/index.d.cts +0 -22
- package/index.d.mts +0 -22
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TBTCRoute = void 0;
|
|
4
|
-
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
-
const route_js_1 = require("../route.js");
|
|
6
|
-
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
7
|
-
const types_js_1 = require("../../types.js");
|
|
8
|
-
const wormhole_js_1 = require("../../wormhole.js");
|
|
9
|
-
const common_js_1 = require("../../common.js");
|
|
10
|
-
class TBTCRoute extends route_js_1.ManualRoute {
|
|
11
|
-
static meta = {
|
|
12
|
-
name: "ManualTBTC",
|
|
13
|
-
};
|
|
14
|
-
static supportedNetworks() {
|
|
15
|
-
return ["Mainnet"];
|
|
16
|
-
}
|
|
17
|
-
static supportedChains(network) {
|
|
18
|
-
return sdk_base_1.contracts.tokenBridgeChains(network);
|
|
19
|
-
}
|
|
20
|
-
static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
|
|
21
|
-
if (!(await this.isSourceTokenSupported(sourceToken, fromChain))) {
|
|
22
|
-
return [];
|
|
23
|
-
}
|
|
24
|
-
const tbtcToken = sdk_definitions_1.TBTCBridge.getNativeTbtcToken(toChain.chain);
|
|
25
|
-
if (tbtcToken) {
|
|
26
|
-
return [tbtcToken];
|
|
27
|
-
}
|
|
28
|
-
const tb = await toChain.getTokenBridge();
|
|
29
|
-
const ethTbtc = sdk_definitions_1.TBTCBridge.getNativeTbtcToken("Ethereum");
|
|
30
|
-
try {
|
|
31
|
-
const wrappedTbtc = await tb.getWrappedAsset(ethTbtc);
|
|
32
|
-
return [wormhole_js_1.Wormhole.tokenId(toChain.chain, wrappedTbtc.toString())];
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
if (e.message.includes("not a wrapped asset"))
|
|
36
|
-
return [];
|
|
37
|
-
throw e;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
getDefaultOptions() {
|
|
41
|
-
return {};
|
|
42
|
-
}
|
|
43
|
-
async validate(request, params) {
|
|
44
|
-
// Check that source and destination chains are different
|
|
45
|
-
if (request.fromChain.chain === request.toChain.chain) {
|
|
46
|
-
return {
|
|
47
|
-
valid: false,
|
|
48
|
-
params,
|
|
49
|
-
error: new Error("Source and destination chains cannot be the same"),
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
const amount = request.parseAmount(params.amount);
|
|
53
|
-
const validatedParams = {
|
|
54
|
-
normalizedParams: {
|
|
55
|
-
amount,
|
|
56
|
-
},
|
|
57
|
-
options: params.options ?? this.getDefaultOptions(),
|
|
58
|
-
...params,
|
|
59
|
-
};
|
|
60
|
-
return { valid: true, params: validatedParams };
|
|
61
|
-
}
|
|
62
|
-
async quote(request, params) {
|
|
63
|
-
const eta = sdk_base_1.finality.estimateFinalityTime(request.fromChain.chain) + sdk_base_1.guardians.guardianAttestationEta;
|
|
64
|
-
return {
|
|
65
|
-
success: true,
|
|
66
|
-
params,
|
|
67
|
-
sourceToken: {
|
|
68
|
-
token: request.source.id,
|
|
69
|
-
amount: params.normalizedParams.amount,
|
|
70
|
-
},
|
|
71
|
-
destinationToken: {
|
|
72
|
-
token: request.destination.id,
|
|
73
|
-
amount: params.normalizedParams.amount,
|
|
74
|
-
},
|
|
75
|
-
eta,
|
|
76
|
-
expires: sdk_base_1.time.expiration(24, 0, 0),
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
async initiate(request, signer, quote, to) {
|
|
80
|
-
const amt = sdk_base_1.amount.units(quote.params.normalizedParams.amount);
|
|
81
|
-
const isEthereum = request.fromChain.chain === "Ethereum";
|
|
82
|
-
const nativeTbtc = sdk_definitions_1.TBTCBridge.getNativeTbtcToken(request.fromChain.chain);
|
|
83
|
-
const isNativeTbtc = nativeTbtc && (0, sdk_definitions_1.isSameToken)(quote.sourceToken.token, nativeTbtc);
|
|
84
|
-
if (isNativeTbtc && !isEthereum) {
|
|
85
|
-
return await this.transferNative(request, signer, to, amt);
|
|
86
|
-
}
|
|
87
|
-
if (!isNativeTbtc && isEthereum) {
|
|
88
|
-
throw new Error("Only tbtc can be transferred on Ethereum");
|
|
89
|
-
}
|
|
90
|
-
if (!isNativeTbtc) {
|
|
91
|
-
const tb = await request.fromChain.getTokenBridge();
|
|
92
|
-
const originalAsset = await tb.getOriginalAsset(quote.sourceToken.token.address);
|
|
93
|
-
const ethTbtc = sdk_definitions_1.TBTCBridge.getNativeTbtcToken("Ethereum");
|
|
94
|
-
if (!(0, sdk_definitions_1.isSameToken)(originalAsset, ethTbtc)) {
|
|
95
|
-
throw new Error("Can only transfer wrapped tbtc");
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return await this.transferWrapped(request, signer, to, amt);
|
|
99
|
-
}
|
|
100
|
-
async transferNative(request, signer, to, amt) {
|
|
101
|
-
const sender = wormhole_js_1.Wormhole.parseAddress(signer.chain(), signer.address());
|
|
102
|
-
const bridge = await request.fromChain.getTBTCBridge();
|
|
103
|
-
const xfer = bridge.transfer(sender, to, amt);
|
|
104
|
-
const txIds = await (0, common_js_1.signSendWait)(request.fromChain, xfer, signer);
|
|
105
|
-
const receipt = {
|
|
106
|
-
originTxs: txIds,
|
|
107
|
-
state: types_js_1.TransferState.SourceInitiated,
|
|
108
|
-
from: request.fromChain.chain,
|
|
109
|
-
to: request.toChain.chain,
|
|
110
|
-
};
|
|
111
|
-
return receipt;
|
|
112
|
-
}
|
|
113
|
-
async transferWrapped(request, signer, to, amt) {
|
|
114
|
-
const sender = wormhole_js_1.Wormhole.parseAddress(signer.chain(), signer.address());
|
|
115
|
-
const toGateway = sdk_base_1.contracts.tbtc.get(request.fromChain.network, to.chain);
|
|
116
|
-
const tb = await request.fromChain.getTokenBridge();
|
|
117
|
-
let xfer;
|
|
118
|
-
if (toGateway) {
|
|
119
|
-
// payload3 transfer to gateway contract
|
|
120
|
-
xfer = tb.transfer(sender, wormhole_js_1.Wormhole.chainAddress(request.toChain.chain, toGateway), request.source.id.address, amt,
|
|
121
|
-
// payload is the recipient address
|
|
122
|
-
to.address.toUniversalAddress().toUint8Array());
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
xfer = tb.transfer(sender, to, request.source.id.address, amt);
|
|
126
|
-
}
|
|
127
|
-
const txIds = await (0, common_js_1.signSendWait)(request.fromChain, xfer, signer);
|
|
128
|
-
const receipt = {
|
|
129
|
-
originTxs: txIds,
|
|
130
|
-
state: types_js_1.TransferState.SourceInitiated,
|
|
131
|
-
from: request.fromChain.chain,
|
|
132
|
-
to: request.toChain.chain,
|
|
133
|
-
};
|
|
134
|
-
return receipt;
|
|
135
|
-
}
|
|
136
|
-
async complete(signer, receipt) {
|
|
137
|
-
if (!(0, types_js_1.isAttested)(receipt)) {
|
|
138
|
-
throw new Error("The source must be finalized in order to complete the transfer");
|
|
139
|
-
}
|
|
140
|
-
const sender = wormhole_js_1.Wormhole.parseAddress(signer.chain(), signer.address());
|
|
141
|
-
const vaa = receipt.attestation.attestation;
|
|
142
|
-
const toChain = this.wh.getChain(receipt.to);
|
|
143
|
-
let xfer;
|
|
144
|
-
if (vaa.payloadLiteral === "TBTCBridge:GatewayTransfer") {
|
|
145
|
-
const bridge = await toChain.getTBTCBridge();
|
|
146
|
-
xfer = bridge.redeem(sender, vaa);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
const tb = await toChain.getTokenBridge();
|
|
150
|
-
// This is really a TokenBridge:Transfer VAA
|
|
151
|
-
const serialized = (0, sdk_definitions_1.serialize)(vaa);
|
|
152
|
-
const tbVaa = (0, sdk_definitions_1.deserialize)("TokenBridge:Transfer", serialized);
|
|
153
|
-
xfer = tb.redeem(sender, tbVaa);
|
|
154
|
-
}
|
|
155
|
-
const dstTxIds = await (0, common_js_1.signSendWait)(toChain, xfer, signer);
|
|
156
|
-
return {
|
|
157
|
-
...receipt,
|
|
158
|
-
state: types_js_1.TransferState.DestinationInitiated,
|
|
159
|
-
destinationTxs: dstTxIds,
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
async resume(txid) {
|
|
163
|
-
const vaa = await this.wh.getVaa(txid.txid, sdk_definitions_1.TBTCBridge.getTransferDiscriminator());
|
|
164
|
-
if (!vaa)
|
|
165
|
-
throw new Error("No VAA found for transaction: " + txid);
|
|
166
|
-
const ethTbtc = sdk_definitions_1.TBTCBridge.getNativeTbtcToken("Ethereum");
|
|
167
|
-
const { chain, address } = vaa.payload.token;
|
|
168
|
-
if (!(0, sdk_definitions_1.isSameToken)(ethTbtc, { chain, address })) {
|
|
169
|
-
throw new Error("Can only resume tbtc transfers");
|
|
170
|
-
}
|
|
171
|
-
return {
|
|
172
|
-
originTxs: [txid],
|
|
173
|
-
state: types_js_1.TransferState.Attested,
|
|
174
|
-
from: vaa.emitterChain,
|
|
175
|
-
to: vaa.payload.to.chain,
|
|
176
|
-
attestation: {
|
|
177
|
-
id: {
|
|
178
|
-
chain: vaa.emitterChain,
|
|
179
|
-
emitter: vaa.emitterAddress,
|
|
180
|
-
sequence: vaa.sequence,
|
|
181
|
-
},
|
|
182
|
-
attestation: vaa,
|
|
183
|
-
},
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
async *track(receipt, timeout) {
|
|
187
|
-
if ((0, types_js_1.isSourceInitiated)(receipt) || (0, types_js_1.isSourceFinalized)(receipt)) {
|
|
188
|
-
const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
|
|
189
|
-
const vaa = await this.wh.getVaa(txid, sdk_definitions_1.TBTCBridge.getTransferDiscriminator(), timeout);
|
|
190
|
-
if (!vaa)
|
|
191
|
-
throw new Error("No VAA found for transaction: " + txid);
|
|
192
|
-
const msgId = {
|
|
193
|
-
chain: vaa.emitterChain,
|
|
194
|
-
emitter: vaa.emitterAddress,
|
|
195
|
-
sequence: vaa.sequence,
|
|
196
|
-
};
|
|
197
|
-
receipt = {
|
|
198
|
-
...receipt,
|
|
199
|
-
state: types_js_1.TransferState.Attested,
|
|
200
|
-
attestation: {
|
|
201
|
-
id: msgId,
|
|
202
|
-
attestation: vaa,
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
yield receipt;
|
|
206
|
-
}
|
|
207
|
-
if ((0, types_js_1.isAttested)(receipt)) {
|
|
208
|
-
const toChain = this.wh.getChain(receipt.to);
|
|
209
|
-
const toBridge = await toChain.getTokenBridge();
|
|
210
|
-
const isCompleted = await toBridge.isTransferCompleted(receipt.attestation.attestation);
|
|
211
|
-
if (isCompleted) {
|
|
212
|
-
receipt = {
|
|
213
|
-
...receipt,
|
|
214
|
-
state: types_js_1.TransferState.DestinationFinalized,
|
|
215
|
-
};
|
|
216
|
-
yield receipt;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
yield receipt;
|
|
220
|
-
}
|
|
221
|
-
static async isSourceTokenSupported(sourceToken, fromChain) {
|
|
222
|
-
if ((0, sdk_definitions_1.isNative)(sourceToken.address)) {
|
|
223
|
-
return false;
|
|
224
|
-
}
|
|
225
|
-
// Native tbtc is supported
|
|
226
|
-
const nativeTbtc = sdk_definitions_1.TBTCBridge.getNativeTbtcToken(fromChain.chain);
|
|
227
|
-
if (nativeTbtc && (0, sdk_definitions_1.isSameToken)(sourceToken, nativeTbtc)) {
|
|
228
|
-
return true;
|
|
229
|
-
}
|
|
230
|
-
// Wormhole-wrapped Ethereum tbtc is supported
|
|
231
|
-
const tb = await fromChain.getTokenBridge();
|
|
232
|
-
try {
|
|
233
|
-
const originalAsset = await tb.getOriginalAsset(sourceToken.address);
|
|
234
|
-
return (0, sdk_definitions_1.isSameToken)(originalAsset, sdk_definitions_1.TBTCBridge.getNativeTbtcToken("Ethereum"));
|
|
235
|
-
}
|
|
236
|
-
catch (e) {
|
|
237
|
-
if (e.message.includes("not a wrapped asset"))
|
|
238
|
-
return false;
|
|
239
|
-
throw e;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
exports.TBTCRoute = TBTCRoute;
|
|
244
|
-
//# sourceMappingURL=tbtc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tbtc.js","sourceRoot":"","sources":["../../../../src/routes/tbtc/tbtc.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
-
import { type TokenSymbol } from "@wormhole-foundation/sdk-base";
|
|
3
|
-
import type { ChainContext, TokenId } from "@wormhole-foundation/sdk-definitions";
|
|
4
|
-
export interface TokenDetails {
|
|
5
|
-
id: TokenId;
|
|
6
|
-
decimals: number;
|
|
7
|
-
symbol?: TokenSymbol;
|
|
8
|
-
wrapped?: TokenId;
|
|
9
|
-
}
|
|
10
|
-
export declare function uniqueTokens<C extends Chain>(tokens: TokenId<C>[]): TokenId<C>[];
|
|
11
|
-
export declare function tokenAddresses(tokens: TokenId[]): string[];
|
|
12
|
-
export declare function getTokenDetails<N extends Network>(chain: ChainContext<N>, token: TokenId, decimals?: number): Promise<TokenDetails>;
|
|
13
|
-
//# sourceMappingURL=token.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/routes/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAIlF,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAUhF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAE1D;AAED,wBAAsB,eAAe,CAAC,CAAC,SAAS,OAAO,EACrD,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EACtB,KAAK,EAAE,OAAO,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CA0BvB"}
|
package/dist/cjs/routes/token.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTokenDetails = exports.tokenAddresses = exports.uniqueTokens = void 0;
|
|
4
|
-
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
-
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
6
|
-
const wormhole_js_1 = require("../wormhole.js");
|
|
7
|
-
function uniqueTokens(tokens) {
|
|
8
|
-
if (tokens.length === 0)
|
|
9
|
-
return [];
|
|
10
|
-
// take the first chain, all should be equal
|
|
11
|
-
const { chain } = tokens[0];
|
|
12
|
-
if (!tokens.every((t) => t.chain === chain))
|
|
13
|
-
throw new Error("Not every chain is equal");
|
|
14
|
-
return Array.from(new Set(tokens.map((t) => (0, sdk_definitions_1.canonicalAddress)(t)))).map((a) => wormhole_js_1.Wormhole.tokenId(chain, a));
|
|
15
|
-
}
|
|
16
|
-
exports.uniqueTokens = uniqueTokens;
|
|
17
|
-
function tokenAddresses(tokens) {
|
|
18
|
-
return tokens.map((t) => (0, sdk_definitions_1.canonicalAddress)(t));
|
|
19
|
-
}
|
|
20
|
-
exports.tokenAddresses = tokenAddresses;
|
|
21
|
-
async function getTokenDetails(chain, token, decimals) {
|
|
22
|
-
const address = (0, sdk_definitions_1.canonicalAddress)(token);
|
|
23
|
-
const details = chain.config.tokenMap
|
|
24
|
-
? sdk_base_1.filters.byAddress(chain.config.tokenMap, address)
|
|
25
|
-
: undefined;
|
|
26
|
-
const symbol = details ? details.symbol : undefined;
|
|
27
|
-
let wrapped = undefined;
|
|
28
|
-
if ((0, sdk_definitions_1.isNative)(token.address)) {
|
|
29
|
-
try {
|
|
30
|
-
wrapped = await chain.getNativeWrappedTokenId();
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// noop
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
decimals = decimals ?? (await chain.getDecimals(token.address));
|
|
37
|
-
return {
|
|
38
|
-
id: token,
|
|
39
|
-
decimals,
|
|
40
|
-
wrapped,
|
|
41
|
-
symbol,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
exports.getTokenDetails = getTokenDetails;
|
|
45
|
-
//# sourceMappingURL=token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/routes/token.ts"],"names":[],"mappings":";;;AACA,4DAAwD;AAGxD,0EAAkF;AAClF,gDAA0C;AAS1C,SAAgB,YAAY,CAAkB,MAAoB;IAChE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,4CAA4C;IAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;IAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAEzF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAgB,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3E,sBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAC3B,CAAC;AACJ,CAAC;AAVD,oCAUC;AAED,SAAgB,cAAc,CAAC,MAAiB;IAC9C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,kCAAgB,EAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,wCAEC;AAEM,KAAK,UAAU,eAAe,CACnC,KAAsB,EACtB,KAAc,EACd,QAAiB;IAEjB,MAAM,OAAO,GAAG,IAAA,kCAAgB,EAAC,KAAK,CAAC,CAAC;IAExC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ;QACnC,CAAC,CAAC,kBAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,QAAS,EAAE,OAAO,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,IAAI,OAAO,GAAwB,SAAS,CAAC;IAE7C,IAAI,IAAA,0BAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,KAAK,CAAC,uBAAuB,EAAE,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;IACH,CAAC;IAED,QAAQ,GAAG,QAAQ,IAAI,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,EAAE,EAAE,KAAK;QACT,QAAQ;QACR,OAAO;QACP,MAAM;KACP,CAAC;AACJ,CAAC;AA9BD,0CA8BC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { Chain, Network } from "@wormhole-foundation/sdk-base";
|
|
2
|
-
import { amount } from "@wormhole-foundation/sdk-base";
|
|
3
|
-
import type { ChainAddress, ChainContext, Signer, TokenId } from "@wormhole-foundation/sdk-definitions";
|
|
4
|
-
import { TokenTransfer } from "../../protocols/tokenBridge/tokenTransfer.js";
|
|
5
|
-
import type { AttestationReceipt } from "../../types.js";
|
|
6
|
-
import type { StaticRouteMethods } from "../route.js";
|
|
7
|
-
import { AutomaticRoute } from "../route.js";
|
|
8
|
-
import type { Quote, QuoteResult, Receipt, TransferParams, ValidatedTransferParams, ValidationResult } from "../types.js";
|
|
9
|
-
import type { RouteTransferRequest } from "../request.js";
|
|
10
|
-
export declare namespace AutomaticTokenBridgeRoute {
|
|
11
|
-
type Options = {
|
|
12
|
-
nativeGas: number;
|
|
13
|
-
};
|
|
14
|
-
type NormalizedParams = {
|
|
15
|
-
fee: amount.Amount;
|
|
16
|
-
amount: amount.Amount;
|
|
17
|
-
nativeGasAmount: amount.Amount;
|
|
18
|
-
};
|
|
19
|
-
interface ValidatedParams extends ValidatedTransferParams<Options> {
|
|
20
|
-
normalizedParams: NormalizedParams;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
type Op = AutomaticTokenBridgeRoute.Options;
|
|
24
|
-
type Vp = AutomaticTokenBridgeRoute.ValidatedParams;
|
|
25
|
-
type Tp = TransferParams<Op>;
|
|
26
|
-
type Vr = ValidationResult<Op>;
|
|
27
|
-
type R = Receipt<AttestationReceipt<"AutomaticTokenBridge">>;
|
|
28
|
-
type QR = QuoteResult<Op, Vp>;
|
|
29
|
-
type Q = Quote<Op, Vp>;
|
|
30
|
-
export declare class AutomaticTokenBridgeRoute<N extends Network> extends AutomaticRoute<N, Op, Vp, R> implements StaticRouteMethods<typeof AutomaticTokenBridgeRoute> {
|
|
31
|
-
static NATIVE_GAS_DROPOFF_SUPPORTED: boolean;
|
|
32
|
-
static meta: {
|
|
33
|
-
name: string;
|
|
34
|
-
};
|
|
35
|
-
static supportedNetworks(): Network[];
|
|
36
|
-
static supportedChains(network: Network): Chain[];
|
|
37
|
-
static supportedDestinationTokens<N extends Network>(sourceToken: TokenId, fromChain: ChainContext<N>, toChain: ChainContext<N>): Promise<TokenId[]>;
|
|
38
|
-
getDefaultOptions(): Op;
|
|
39
|
-
validate(request: RouteTransferRequest<N>, params: Tp): Promise<Vr>;
|
|
40
|
-
private normalizeTransferParams;
|
|
41
|
-
quote(request: RouteTransferRequest<N>, params: Vp): Promise<QR>;
|
|
42
|
-
initiate(request: RouteTransferRequest<N>, signer: Signer, quote: Q, to: ChainAddress): Promise<R>;
|
|
43
|
-
track(receipt: R, timeout?: number): AsyncGenerator<TokenTransfer.TransferReceipt<"Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble", "Solana" | "Btc" | "Algorand" | "Sui" | "Aptos" | "Near" | "Stacks" | "Xrpl" | "Arbitrum" | "Avalanche" | "Base" | "Bsc" | "Celo" | "Ethereum" | "Klaytn" | "Moonbeam" | "Optimism" | "Polygon" | "Sepolia" | "ArbitrumSepolia" | "BaseSepolia" | "OptimismSepolia" | "Holesky" | "PolygonSepolia" | "Linea" | "Berachain" | "Seievm" | "Unichain" | "Worldchain" | "Ink" | "HyperEVM" | "Monad" | "Mezo" | "Sonic" | "Converge" | "Plume" | "XRPLEVM" | "Plasma" | "CreditCoin" | "HyperCore" | "Moca" | "MegaETH" | "MonadTestnet" | "ZeroGravity" | "Tempo" | "Nexus" | "Pythnet" | "Fogo" | "Cosmoshub" | "Evmos" | "Injective" | "Kujira" | "Osmosis" | "Sei" | "Wormchain" | "Dymension" | "Neutron" | "Stargaze" | "Celestia" | "Seda" | "Provenance" | "Noble">, void, unknown>;
|
|
44
|
-
private toTransferDetails;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=automatic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"automatic.d.ts","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/automatic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AutomaticTokenBridgeRoute = void 0;
|
|
4
|
-
const sdk_base_1 = require("@wormhole-foundation/sdk-base");
|
|
5
|
-
const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
|
|
6
|
-
const tokenTransfer_js_1 = require("../../protocols/tokenBridge/tokenTransfer.js");
|
|
7
|
-
const types_js_1 = require("../../types.js");
|
|
8
|
-
const wormhole_js_1 = require("../../wormhole.js");
|
|
9
|
-
const route_js_1 = require("../route.js");
|
|
10
|
-
const types_js_2 = require("../types.js");
|
|
11
|
-
class AutomaticTokenBridgeRoute extends route_js_1.AutomaticRoute {
|
|
12
|
-
static NATIVE_GAS_DROPOFF_SUPPORTED = true;
|
|
13
|
-
static meta = {
|
|
14
|
-
name: "AutomaticTokenBridge",
|
|
15
|
-
};
|
|
16
|
-
static supportedNetworks() {
|
|
17
|
-
return ["Mainnet", "Testnet"];
|
|
18
|
-
}
|
|
19
|
-
// get the list of chains this route supports
|
|
20
|
-
static supportedChains(network) {
|
|
21
|
-
if (sdk_base_1.contracts.tokenBridgeRelayerChains.has(network)) {
|
|
22
|
-
return sdk_base_1.contracts.tokenBridgeRelayerChains.get(network);
|
|
23
|
-
}
|
|
24
|
-
return [];
|
|
25
|
-
}
|
|
26
|
-
// get the list of destination tokens that may be received on the destination chain
|
|
27
|
-
static async supportedDestinationTokens(sourceToken, fromChain, toChain) {
|
|
28
|
-
try {
|
|
29
|
-
if (!(0, sdk_definitions_1.isNative)(sourceToken)) {
|
|
30
|
-
const srcAtb = await fromChain.getAutomaticTokenBridge();
|
|
31
|
-
const srcIsAccepted = await srcAtb.isRegisteredToken(sourceToken.address);
|
|
32
|
-
if (!srcIsAccepted) {
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
const expectedDestinationToken = await tokenTransfer_js_1.TokenTransfer.lookupDestinationToken(fromChain, toChain, sourceToken);
|
|
37
|
-
const atb = await toChain.getAutomaticTokenBridge();
|
|
38
|
-
const acceptable = await atb.isRegisteredToken(expectedDestinationToken.address);
|
|
39
|
-
if (!acceptable) {
|
|
40
|
-
return [];
|
|
41
|
-
}
|
|
42
|
-
return [expectedDestinationToken];
|
|
43
|
-
}
|
|
44
|
-
catch (e) {
|
|
45
|
-
return [];
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
getDefaultOptions() {
|
|
49
|
-
return { nativeGas: 0.0 };
|
|
50
|
-
}
|
|
51
|
-
async validate(request, params) {
|
|
52
|
-
try {
|
|
53
|
-
// Check that source and destination chains are different
|
|
54
|
-
if (request.fromChain.chain === request.toChain.chain) {
|
|
55
|
-
return {
|
|
56
|
-
valid: false,
|
|
57
|
-
params,
|
|
58
|
-
error: new Error("Source and destination chains cannot be the same"),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
// Prevent transfers to/from SVM chains if the destination token is Token2022
|
|
62
|
-
// except when using ExecutorTokenBridge
|
|
63
|
-
// Attempting to manually redeem Token2022 tokens will fail if recipient account
|
|
64
|
-
// has the immutableOwner extension, so just disable such transfers here
|
|
65
|
-
// Executor route creates temporary account without the extension
|
|
66
|
-
if ((0, sdk_base_1.chainToPlatform)(request.fromChain.chain) === "Solana") {
|
|
67
|
-
const isToken2022 = await request.fromChain.isToken2022(request.source.id.address);
|
|
68
|
-
if (isToken2022) {
|
|
69
|
-
return {
|
|
70
|
-
valid: false,
|
|
71
|
-
params,
|
|
72
|
-
error: new Error("Transfers of Token-2022 assets from SVM chains are not supported via the Automatic Token Bridge route. Please use the Executor Token Bridge route instead."),
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
if ((0, sdk_base_1.chainToPlatform)(request.toChain.chain) === "Solana") {
|
|
77
|
-
const isToken2022 = await request.toChain.isToken2022(request.destination.id.address);
|
|
78
|
-
if (isToken2022) {
|
|
79
|
-
return {
|
|
80
|
-
valid: false,
|
|
81
|
-
params,
|
|
82
|
-
error: new Error("Transfers of Token-2022 assets to SVM chains are not supported via the Automatic Token Bridge route. Please use the Executor Token Bridge route instead."),
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
const options = params.options ?? this.getDefaultOptions();
|
|
87
|
-
if (options.nativeGas && (options.nativeGas > 1.0 || options.nativeGas < 0.0))
|
|
88
|
-
throw new Error("Native gas must be between 0.0 and 1.0 (0% and 100%)");
|
|
89
|
-
// native gas drop-off when the native token is the destination should be 0
|
|
90
|
-
const { destination } = request;
|
|
91
|
-
if ((0, sdk_definitions_1.isNative)(destination.id.address) && options.nativeGas === 0.0)
|
|
92
|
-
options.nativeGas = 0;
|
|
93
|
-
const updatedParams = { ...params, options };
|
|
94
|
-
const validatedParams = {
|
|
95
|
-
...updatedParams,
|
|
96
|
-
normalizedParams: await this.normalizeTransferParams(request, updatedParams),
|
|
97
|
-
};
|
|
98
|
-
return { valid: true, params: validatedParams };
|
|
99
|
-
}
|
|
100
|
-
catch (e) {
|
|
101
|
-
return { valid: false, params, error: e };
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
async normalizeTransferParams(request, params) {
|
|
105
|
-
const amt = request.parseAmount(params.amount);
|
|
106
|
-
const inputToken = (0, sdk_definitions_1.isNative)(request.source.id.address)
|
|
107
|
-
? await request.fromChain.getNativeWrappedTokenId()
|
|
108
|
-
: request.source.id;
|
|
109
|
-
const atb = await request.fromChain.getAutomaticTokenBridge();
|
|
110
|
-
const fee = await atb.getRelayerFee(request.toChain.chain, inputToken.address);
|
|
111
|
-
// Min amount is fee + 5%
|
|
112
|
-
const minAmount = (fee * 105n) / 100n;
|
|
113
|
-
if (sdk_base_1.amount.units(amt) < minAmount) {
|
|
114
|
-
throw new types_js_2.MinAmountError(sdk_base_1.amount.fromBaseUnits(minAmount, amt.decimals));
|
|
115
|
-
}
|
|
116
|
-
const redeemableAmount = sdk_base_1.amount.units(amt) - fee;
|
|
117
|
-
let srcNativeGasAmount = sdk_base_1.amount.fromBaseUnits(0n, request.source.decimals);
|
|
118
|
-
if (params.options && params.options.nativeGas > 0) {
|
|
119
|
-
const dtb = await request.toChain.getAutomaticTokenBridge();
|
|
120
|
-
// the maxSwapAmount is in destination chain decimals
|
|
121
|
-
let maxSwapAmount = await dtb.maxSwapAmount(request.destination.id.address);
|
|
122
|
-
const redeemableAmountTruncated = sdk_base_1.amount.truncate(sdk_base_1.amount.fromBaseUnits(redeemableAmount, amt.decimals), tokenTransfer_js_1.TokenTransfer.MAX_DECIMALS);
|
|
123
|
-
const dstDecimals = await request.toChain.getDecimals(request.destination.id.address);
|
|
124
|
-
const dstAmountReceivable = sdk_base_1.amount.units(sdk_base_1.amount.scale(redeemableAmountTruncated, dstDecimals));
|
|
125
|
-
if (dstAmountReceivable < maxSwapAmount) {
|
|
126
|
-
// can't swap more than the receivable amount
|
|
127
|
-
maxSwapAmount = dstAmountReceivable;
|
|
128
|
-
}
|
|
129
|
-
const scale = 10000;
|
|
130
|
-
const scaledGasPercent = BigInt(Math.floor(params.options.nativeGas * scale));
|
|
131
|
-
const dstNativeGasUnits = (maxSwapAmount * scaledGasPercent) / BigInt(scale);
|
|
132
|
-
// the native gas percentage is applied to the max swap amount
|
|
133
|
-
const dstNativeGasAmount = sdk_base_1.amount.fromBaseUnits(dstNativeGasUnits, request.destination.decimals);
|
|
134
|
-
// convert the native gas amount to source chain decimals
|
|
135
|
-
srcNativeGasAmount = sdk_base_1.amount.scale(sdk_base_1.amount.truncate(dstNativeGasAmount, tokenTransfer_js_1.TokenTransfer.MAX_DECIMALS), request.source.decimals);
|
|
136
|
-
// can't request more gas than the redeemable amount
|
|
137
|
-
if (sdk_base_1.amount.units(srcNativeGasAmount) > redeemableAmount) {
|
|
138
|
-
srcNativeGasAmount = sdk_base_1.amount.fromBaseUnits(redeemableAmount, request.source.decimals);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
fee: sdk_base_1.amount.fromBaseUnits(fee, request.source.decimals),
|
|
143
|
-
amount: amt,
|
|
144
|
-
nativeGasAmount: srcNativeGasAmount,
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
async quote(request, params) {
|
|
148
|
-
const atb = await request.fromChain.getAutomaticTokenBridge();
|
|
149
|
-
if ((0, sdk_definitions_1.isTokenId)(request.source.id)) {
|
|
150
|
-
const isRegistered = await atb.isRegisteredToken(request.source.id.address);
|
|
151
|
-
if (!isRegistered) {
|
|
152
|
-
return {
|
|
153
|
-
success: false,
|
|
154
|
-
error: new Error("Source token is not registered"),
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
try {
|
|
159
|
-
let quote = await tokenTransfer_js_1.TokenTransfer.quoteTransfer(this.wh, request.fromChain, request.toChain, {
|
|
160
|
-
protocol: "AutomaticTokenBridge",
|
|
161
|
-
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
162
|
-
token: request.source.id,
|
|
163
|
-
nativeGas: sdk_base_1.amount.units(params.normalizedParams.nativeGasAmount),
|
|
164
|
-
});
|
|
165
|
-
return request.displayQuote(quote, params);
|
|
166
|
-
}
|
|
167
|
-
catch (e) {
|
|
168
|
-
return {
|
|
169
|
-
success: false,
|
|
170
|
-
error: e,
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
async initiate(request, signer, quote, to) {
|
|
175
|
-
const { params } = quote;
|
|
176
|
-
const transfer = this.toTransferDetails(request, params, wormhole_js_1.Wormhole.chainAddress(signer.chain(), signer.address()), to);
|
|
177
|
-
const txids = await tokenTransfer_js_1.TokenTransfer.transfer(request.fromChain, transfer, signer);
|
|
178
|
-
return {
|
|
179
|
-
from: transfer.from.chain,
|
|
180
|
-
to: transfer.to.chain,
|
|
181
|
-
state: types_js_1.TransferState.SourceInitiated,
|
|
182
|
-
originTxs: txids,
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
async *track(receipt, timeout) {
|
|
186
|
-
try {
|
|
187
|
-
yield* tokenTransfer_js_1.TokenTransfer.track(this.wh, receipt, timeout);
|
|
188
|
-
}
|
|
189
|
-
catch (e) {
|
|
190
|
-
throw e;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
toTransferDetails(request, params, from, to) {
|
|
194
|
-
return {
|
|
195
|
-
from,
|
|
196
|
-
to,
|
|
197
|
-
protocol: "AutomaticTokenBridge",
|
|
198
|
-
amount: sdk_base_1.amount.units(params.normalizedParams.amount),
|
|
199
|
-
token: request.source.id,
|
|
200
|
-
nativeGas: sdk_base_1.amount.units(params.normalizedParams.nativeGasAmount),
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
exports.AutomaticTokenBridgeRoute = AutomaticTokenBridgeRoute;
|
|
205
|
-
//# sourceMappingURL=automatic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"automatic.js","sourceRoot":"","sources":["../../../../src/routes/tokenBridge/automatic.ts"],"names":[],"mappings":"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"}
|