@across-protocol/sdk 4.3.75-alpha.0 → 4.3.76
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/relayFeeCalculator/chain-queries/factory.d.ts +18 -0
- package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +18 -0
- package/dist/cjs/utils/CCTPUtils.d.ts +74 -0
- package/dist/cjs/utils/CCTPUtils.js +199 -0
- package/dist/cjs/utils/CCTPUtils.js.map +1 -0
- package/dist/cjs/utils/TokenUtils.d.ts +36 -0
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js +1 -1
- package/dist/esm/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +2 -2
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/index.js +2 -2
- package/dist/esm/clients/SpokePoolClient/index.js.map +1 -1
- package/dist/esm/pool/uma/utils.js +1 -1
- package/dist/esm/pool/uma/utils.js.map +1 -1
- package/dist/esm/providers/types.js +1 -1
- package/dist/esm/providers/types.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/factory.d.ts +18 -0
- package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +18 -0
- package/dist/esm/utils/CCTPUtils.d.ts +169 -0
- package/dist/esm/utils/CCTPUtils.js +270 -0
- package/dist/esm/utils/CCTPUtils.js.map +1 -0
- package/dist/esm/utils/DepositUtils.js +1 -1
- package/dist/esm/utils/TokenUtils.d.ts +36 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts +18 -0
- package/dist/types/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +18 -0
- package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
- package/dist/types/utils/CCTPUtils.d.ts +170 -0
- package/dist/types/utils/CCTPUtils.d.ts.map +1 -0
- package/dist/types/utils/TokenUtils.d.ts +36 -0
- package/dist/types/utils/TokenUtils.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/clients/AcrossConfigStoreClient/AcrossConfigStoreClient.ts +1 -1
- package/src/clients/BundleDataClient/BundleDataClient.ts +2 -2
- package/src/clients/HubPoolClient.ts +2 -2
- package/src/clients/SpokePoolClient/index.ts +2 -2
- package/src/pool/uma/clients/erc20/README.md +1 -1
- package/src/pool/uma/utils.ts +1 -1
- package/src/providers/cachedProvider.ts +1 -1
- package/src/providers/types.ts +1 -1
- package/src/utils/CCTPUtils.ts +329 -0
- package/src/utils/DepositUtils.ts +1 -1
- package/src/utils/index.ts +1 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { PUBLIC_NETWORKS, CCTP_NO_DOMAIN, PRODUCTION_NETWORKS, TEST_NETWORKS } from "@across-protocol/constants";
|
|
3
|
+
import { BigNumber, ethers } from "ethers";
|
|
4
|
+
import { isDefined } from "./TypeGuards";
|
|
5
|
+
import axios from "axios";
|
|
6
|
+
import { chainIsProd } from "./NetworkUtils";
|
|
7
|
+
import assert from "assert";
|
|
8
|
+
import { bnZero } from "./BigNumberUtils";
|
|
9
|
+
export var CCTPV2_FINALITY_THRESHOLD_STANDARD = 2000;
|
|
10
|
+
export var CCTPV2_FINALITY_THRESHOLD_FAST = 1000;
|
|
11
|
+
var CCTP_MESSAGE_SENT_TOPIC_HASH = ethers.utils.id("MessageSent(bytes)");
|
|
12
|
+
var CCTP_DEPOSIT_FOR_BURN_TOPIC_HASH_V1 = ethers.utils.id("DepositForBurn(uint64,address,uint256,address,bytes32,uint32,bytes32,bytes32)");
|
|
13
|
+
var CCTP_DEPOSIT_FOR_BURN_TOPIC_HASH_V2 = ethers.utils.id("DepositForBurn(address,uint256,address,bytes32,uint32,bytes32,bytes32,uint256,uint32,bytes)");
|
|
14
|
+
/**
|
|
15
|
+
* @notice Converts an ETH Address string to a 32-byte hex string.
|
|
16
|
+
* @param address The address to convert.
|
|
17
|
+
* @returns The 32-byte hex string representation of the address - required for CCTP messages.
|
|
18
|
+
*/
|
|
19
|
+
export function cctpAddressToBytes32(address) {
|
|
20
|
+
return ethers.utils.hexZeroPad(address, 32);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Converts a 32-byte hex string with padding to a standard ETH address.
|
|
24
|
+
* @param bytes32 The 32-byte hex string to convert.
|
|
25
|
+
* @returns The ETH address representation of the 32-byte hex string.
|
|
26
|
+
*/
|
|
27
|
+
export function cctpBytes32ToAddress(bytes32) {
|
|
28
|
+
// Grab the last 20 bytes of the 32-byte hex string
|
|
29
|
+
return ethers.utils.getAddress(ethers.utils.hexDataSlice(bytes32, 12));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @notice Returns the CCTP domain for a given chain ID. Throws if the chain ID is not a CCTP domain.
|
|
33
|
+
* @param chainId
|
|
34
|
+
* @returns CCTP Domain ID
|
|
35
|
+
*/
|
|
36
|
+
export function getCctpDomainForChainId(chainId) {
|
|
37
|
+
var _a;
|
|
38
|
+
var cctpDomain = (_a = PUBLIC_NETWORKS[chainId]) === null || _a === void 0 ? void 0 : _a.cctpDomain;
|
|
39
|
+
if (!isDefined(cctpDomain) || cctpDomain === CCTP_NO_DOMAIN) {
|
|
40
|
+
throw new Error("No CCTP domain found for chainId: ".concat(chainId));
|
|
41
|
+
}
|
|
42
|
+
return cctpDomain;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @notice Returns the chain ID for a given CCTP domain. Inverse functionof `getCctpDomainForChainId()`. However,
|
|
46
|
+
* since CCTP Domains are shared between production and test networks, we need to use the `productionNetworks` flag
|
|
47
|
+
* to determine whether to return the production or test network chain ID.
|
|
48
|
+
* @param domain CCTP domain ID.
|
|
49
|
+
* @param productionNetworks Whether to return the production or test network chain ID.
|
|
50
|
+
* @returns Chain ID.
|
|
51
|
+
*/
|
|
52
|
+
export function getCctpDestinationChainFromDomain(domain, productionNetworks) {
|
|
53
|
+
if (domain === CCTP_NO_DOMAIN) {
|
|
54
|
+
throw new Error("Cannot input CCTP_NO_DOMAIN to getCctpDestinationChainFromDomain");
|
|
55
|
+
}
|
|
56
|
+
// Test and Production networks use the same CCTP domain, so we need to use the flag passed in to
|
|
57
|
+
// determine whether to use the Test or Production networks.
|
|
58
|
+
var networks = productionNetworks ? PRODUCTION_NETWORKS : TEST_NETWORKS;
|
|
59
|
+
var otherNetworks = productionNetworks ? TEST_NETWORKS : PRODUCTION_NETWORKS;
|
|
60
|
+
var chainId = Object.keys(networks).find(function (key) { return networks[Number(key)].cctpDomain.toString() === domain.toString(); });
|
|
61
|
+
if (!isDefined(chainId)) {
|
|
62
|
+
var chainId_1 = Object.keys(otherNetworks).find(function (key) { return otherNetworks[Number(key)].cctpDomain.toString() === domain.toString(); });
|
|
63
|
+
if (!isDefined(chainId_1)) {
|
|
64
|
+
throw new Error("No chainId found for domain: ".concat(domain));
|
|
65
|
+
}
|
|
66
|
+
return parseInt(chainId_1);
|
|
67
|
+
}
|
|
68
|
+
return parseInt(chainId);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @notice Typeguard. Returns whether the event is a CCTP deposit for burn event. Should work for V1 and V2
|
|
72
|
+
* @param event CCTP message event.
|
|
73
|
+
* @returns True if the event is a CCTP deposit for burn event.
|
|
74
|
+
*/
|
|
75
|
+
export function isDepositForBurnEvent(event) {
|
|
76
|
+
return "amount" in event && "mintRecipient" in event && "burnToken" in event;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @notice Fetches CCTP V2 attestations for a given list of transaction hashes. If a transaction hash
|
|
80
|
+
* contains multiple CCTP messages, this will return an object where each key is a transaction hash and
|
|
81
|
+
* a value is an array of attestations.
|
|
82
|
+
* @param depositForBurnTxnHashes List of transaction hashes to fetch attestations for.
|
|
83
|
+
* @param sourceChainId Source chain ID of the transaction hashes.
|
|
84
|
+
* @returns Object with transaction hashes as keys and CCTP V2 attestations as values.
|
|
85
|
+
*/
|
|
86
|
+
export function fetchCctpV2Attestations(depositForBurnTxnHashes, sourceChainId) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
88
|
+
var sourceDomainId, isMainnet, attestationResponses, chunkSize, i, chunk;
|
|
89
|
+
var _this = this;
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
switch (_a.label) {
|
|
92
|
+
case 0:
|
|
93
|
+
sourceDomainId = getCctpDomainForChainId(sourceChainId);
|
|
94
|
+
isMainnet = chainIsProd(sourceChainId);
|
|
95
|
+
attestationResponses = {};
|
|
96
|
+
chunkSize = process.env.CCTP_API_REQUEST_CHUNK_SIZE ? parseInt(process.env.CCTP_API_REQUEST_CHUNK_SIZE) : 8;
|
|
97
|
+
i = 0;
|
|
98
|
+
_a.label = 1;
|
|
99
|
+
case 1:
|
|
100
|
+
if (!(i < depositForBurnTxnHashes.length)) return [3 /*break*/, 5];
|
|
101
|
+
chunk = depositForBurnTxnHashes.slice(i, i + chunkSize);
|
|
102
|
+
return [4 /*yield*/, Promise.all(chunk.map(function (txHash) { return __awaiter(_this, void 0, void 0, function () {
|
|
103
|
+
var attestations;
|
|
104
|
+
return __generator(this, function (_a) {
|
|
105
|
+
switch (_a.label) {
|
|
106
|
+
case 0: return [4 /*yield*/, fetchAttestationsForTxn(sourceDomainId, txHash, isMainnet)];
|
|
107
|
+
case 1:
|
|
108
|
+
attestations = _a.sent();
|
|
109
|
+
// If multiple deposit for burn events, there will be multiple attestations.
|
|
110
|
+
attestationResponses[txHash] = attestations;
|
|
111
|
+
return [2 /*return*/];
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}); }))];
|
|
115
|
+
case 2:
|
|
116
|
+
_a.sent();
|
|
117
|
+
if (!(i + chunkSize < depositForBurnTxnHashes.length)) return [3 /*break*/, 4];
|
|
118
|
+
return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 1000); })];
|
|
119
|
+
case 3:
|
|
120
|
+
_a.sent();
|
|
121
|
+
_a.label = 4;
|
|
122
|
+
case 4:
|
|
123
|
+
i += chunkSize;
|
|
124
|
+
return [3 /*break*/, 1];
|
|
125
|
+
case 5: return [2 /*return*/, attestationResponses];
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* @notice Returns the status of a CCTP attestation.
|
|
132
|
+
* @param attestation Attestation to get the status of.
|
|
133
|
+
* @returns "finalized","pending" or "ready".
|
|
134
|
+
*/
|
|
135
|
+
export function getPendingAttestationStatus(attestation) {
|
|
136
|
+
if (!isDefined(attestation.attestation)) {
|
|
137
|
+
return "pending";
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
return attestation.status === "pending_confirmations" || attestation.attestation === "PENDING"
|
|
141
|
+
? "pending"
|
|
142
|
+
: "ready";
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* @notice Checks if a CCTP message has been processed by a given contract.
|
|
147
|
+
* @param nonceHash Nonce hash to check.
|
|
148
|
+
* @param contract
|
|
149
|
+
* @returns True if the message has been processed, false otherwise.
|
|
150
|
+
*/
|
|
151
|
+
export function hasCCTPMessageBeenProcessedEvm(nonceHash, contract) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
153
|
+
var resultingCall;
|
|
154
|
+
return __generator(this, function (_a) {
|
|
155
|
+
switch (_a.label) {
|
|
156
|
+
case 0: return [4 /*yield*/, contract.callStatic.usedNonces(nonceHash)];
|
|
157
|
+
case 1:
|
|
158
|
+
resultingCall = _a.sent();
|
|
159
|
+
// If the resulting call is 1, the message has been processed. If it is 0, the message has not been processed.
|
|
160
|
+
return [2 /*return*/, (resultingCall !== null && resultingCall !== void 0 ? resultingCall : bnZero).toNumber() === 1];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* @notice The maximum amount of USDC that can be sent using a fast transfer.
|
|
167
|
+
* @param isMainnet Toggles whether to call CCTP API on mainnet or sandbox environment.
|
|
168
|
+
* @returns USDC amount in units of USDC.
|
|
169
|
+
* @link https://developers.circle.com/api-reference/cctp/all/get-fast-burn-usdc-allowance
|
|
170
|
+
*/
|
|
171
|
+
export function getV2FastBurnAllowance(isMainnet) {
|
|
172
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
173
|
+
var httpResponse;
|
|
174
|
+
return __generator(this, function (_a) {
|
|
175
|
+
switch (_a.label) {
|
|
176
|
+
case 0: return [4 /*yield*/, axios.get("https://iris-api".concat(isMainnet ? "" : "-sandbox", ".circle.com/v2/fastBurn/USDC/allowance"))];
|
|
177
|
+
case 1:
|
|
178
|
+
httpResponse = _a.sent();
|
|
179
|
+
return [2 /*return*/, httpResponse.data.allowance.toString()];
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns the minimum transfer fees required for a transfer to be relayed. When calling depositForBurn(), the maxFee
|
|
186
|
+
* parameter must be greater than or equal to the minimum fee.
|
|
187
|
+
* @param sourceChainId The source chain ID of the transfer.
|
|
188
|
+
* @param destinationChainId The destination chain ID of the transfer.
|
|
189
|
+
* @param isMainnet Toggles whether to call CCTP API on mainnet or sandbox environment.
|
|
190
|
+
* @returns The standard and fast transfer fees for the given source and destination chains.
|
|
191
|
+
* @link https://developers.circle.com/api-reference/cctp/all/get-burn-usdc-fees
|
|
192
|
+
*/
|
|
193
|
+
export function getV2MinTransferFees(sourceChainId, destinationChainId) {
|
|
194
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
195
|
+
var isMainnet, sourceDomain, destinationDomain, endpoint, httpResponse, standardFee, fastFee;
|
|
196
|
+
return __generator(this, function (_a) {
|
|
197
|
+
switch (_a.label) {
|
|
198
|
+
case 0:
|
|
199
|
+
isMainnet = chainIsProd(destinationChainId);
|
|
200
|
+
sourceDomain = getCctpDomainForChainId(sourceChainId);
|
|
201
|
+
destinationDomain = getCctpDomainForChainId(destinationChainId);
|
|
202
|
+
endpoint = "https://iris-api".concat(isMainnet ? "" : "-sandbox", ".circle.com/v2/burn/USDC/fees/").concat(sourceDomain, "/").concat(destinationDomain);
|
|
203
|
+
return [4 /*yield*/, axios.get(endpoint)];
|
|
204
|
+
case 1:
|
|
205
|
+
httpResponse = _a.sent();
|
|
206
|
+
standardFee = httpResponse.data.find(function (fee) { return fee.finalityThreshold === CCTPV2_FINALITY_THRESHOLD_STANDARD; });
|
|
207
|
+
assert(isDefined(standardFee === null || standardFee === void 0 ? void 0 : standardFee.minimumFee), "CCTPUtils#getTransferFees: Standard fee not found in API response: ".concat(endpoint));
|
|
208
|
+
fastFee = httpResponse.data.find(function (fee) { return fee.finalityThreshold === CCTPV2_FINALITY_THRESHOLD_FAST; });
|
|
209
|
+
assert(isDefined(fastFee === null || fastFee === void 0 ? void 0 : fastFee.minimumFee), "CCTPUtils#getTransferFees: Fast fee not found in API response: ".concat(endpoint));
|
|
210
|
+
return [2 /*return*/, {
|
|
211
|
+
standard: BigNumber.from(standardFee.minimumFee),
|
|
212
|
+
fast: BigNumber.from(fastFee.minimumFee),
|
|
213
|
+
}];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* @notice Fetches attestations for a given transaction hash. If transaction hash contains multiple CCTP
|
|
220
|
+
* messages, this will return an array of attestations. Should work for both v1 and v2.
|
|
221
|
+
* @param sourceDomainId
|
|
222
|
+
* @param transactionHash
|
|
223
|
+
* @param isMainnet
|
|
224
|
+
* @returns Attestation response, list of messages with attestations.
|
|
225
|
+
*/
|
|
226
|
+
export function fetchAttestationsForTxn(sourceDomainId, transactionHash, isMainnet) {
|
|
227
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
228
|
+
var httpResponse;
|
|
229
|
+
return __generator(this, function (_a) {
|
|
230
|
+
switch (_a.label) {
|
|
231
|
+
case 0: return [4 /*yield*/, axios.get("https://iris-api".concat(isMainnet ? "" : "-sandbox", ".circle.com/v2/messages/").concat(sourceDomainId, "?transactionHash=").concat(transactionHash))];
|
|
232
|
+
case 1:
|
|
233
|
+
httpResponse = _a.sent();
|
|
234
|
+
return [2 /*return*/, httpResponse.data];
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* @notice Returns the CCTP version of the `MessageSent` event.
|
|
241
|
+
* @param log CCTP event log.
|
|
242
|
+
* @returns 0 for v1 `MessageSent` event, 1 for v2, -1 for other events
|
|
243
|
+
*/
|
|
244
|
+
export function getMessageSentVersion(log) {
|
|
245
|
+
if (log.topics[0] !== CCTP_MESSAGE_SENT_TOPIC_HASH) {
|
|
246
|
+
return -1;
|
|
247
|
+
}
|
|
248
|
+
// v1 and v2 have the same topic hash, so we have to do a bit of decoding here to understand the version
|
|
249
|
+
var messageBytes = ethers.utils.defaultAbiCoder.decode(["bytes"], log.data)[0];
|
|
250
|
+
// Source: https://developers.circle.com/stablecoins/message-format
|
|
251
|
+
var version = parseInt(messageBytes.slice(2, 10), 16); // read version: first 4 bytes (skipping '0x')
|
|
252
|
+
return version;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* @notice Returns the CCTP version of the `DepositForBurn` event.
|
|
256
|
+
* @param log CCTP event log.
|
|
257
|
+
* @returns 0 for v1 `DepositForBurn` event, 1 for v2, -1 for other events
|
|
258
|
+
*/
|
|
259
|
+
export function getDepositForBurnVersion(log) {
|
|
260
|
+
var topic = log.topics[0];
|
|
261
|
+
switch (topic) {
|
|
262
|
+
case CCTP_DEPOSIT_FOR_BURN_TOPIC_HASH_V1:
|
|
263
|
+
return 0;
|
|
264
|
+
case CCTP_DEPOSIT_FOR_BURN_TOPIC_HASH_V2:
|
|
265
|
+
return 1;
|
|
266
|
+
default:
|
|
267
|
+
return -1;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=CCTPUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CCTPUtils.js","sourceRoot":"","sources":["../../../src/utils/CCTPUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -168,7 +168,7 @@ export function validateFillForDeposit(relayData, deposit) {
|
|
|
168
168
|
}
|
|
169
169
|
// Note: this short circuits when a key is found where the comparison doesn't match.
|
|
170
170
|
// TODO: if we turn on "strict" in the tsconfig, the elements of FILL_DEPOSIT_COMPARISON_KEYS will be automatically
|
|
171
|
-
// validated against the fields in Fill and Deposit, generating an error if there is a
|
|
171
|
+
// validated against the fields in Fill and Deposit, generating an error if there is a discrepancy.
|
|
172
172
|
var invalidKey = RELAYDATA_KEYS.find(function (key) { return relayData[key].toString() !== deposit[key].toString(); });
|
|
173
173
|
// There should be no paths for `messageHash` to be unset, but mask it off anyway.
|
|
174
174
|
if (!isDefined(invalidKey) && [relayData.messageHash, deposit.messageHash].includes(UNDEFINED_MESSAGE_HASH)) {
|
|
@@ -186,6 +186,15 @@ export declare const resolveContractFromSymbol: (symbol: string, chainId: number
|
|
|
186
186
|
};
|
|
187
187
|
coingeckoId: string;
|
|
188
188
|
};
|
|
189
|
+
POL: {
|
|
190
|
+
name: string;
|
|
191
|
+
symbol: string;
|
|
192
|
+
decimals: number;
|
|
193
|
+
addresses: {
|
|
194
|
+
[x: number]: string;
|
|
195
|
+
};
|
|
196
|
+
coingeckoId: string;
|
|
197
|
+
};
|
|
189
198
|
POOL: {
|
|
190
199
|
name: string;
|
|
191
200
|
symbol: string;
|
|
@@ -434,6 +443,15 @@ export declare const resolveContractFromSymbol: (symbol: string, chainId: number
|
|
|
434
443
|
};
|
|
435
444
|
coingeckoId: string;
|
|
436
445
|
};
|
|
446
|
+
WPOL: {
|
|
447
|
+
name: string;
|
|
448
|
+
symbol: string;
|
|
449
|
+
decimals: number;
|
|
450
|
+
addresses: {
|
|
451
|
+
[x: number]: string;
|
|
452
|
+
};
|
|
453
|
+
coingeckoId: string;
|
|
454
|
+
};
|
|
437
455
|
WSOL: {
|
|
438
456
|
name: string;
|
|
439
457
|
symbol: string;
|
|
@@ -647,6 +665,15 @@ export declare function getTokenInfo(l2Token: Address, chainId: number, tokenMap
|
|
|
647
665
|
};
|
|
648
666
|
coingeckoId: string;
|
|
649
667
|
};
|
|
668
|
+
POL: {
|
|
669
|
+
name: string;
|
|
670
|
+
symbol: string;
|
|
671
|
+
decimals: number;
|
|
672
|
+
addresses: {
|
|
673
|
+
[x: number]: string;
|
|
674
|
+
};
|
|
675
|
+
coingeckoId: string;
|
|
676
|
+
};
|
|
650
677
|
POOL: {
|
|
651
678
|
name: string;
|
|
652
679
|
symbol: string;
|
|
@@ -895,6 +922,15 @@ export declare function getTokenInfo(l2Token: Address, chainId: number, tokenMap
|
|
|
895
922
|
};
|
|
896
923
|
coingeckoId: string;
|
|
897
924
|
};
|
|
925
|
+
WPOL: {
|
|
926
|
+
name: string;
|
|
927
|
+
symbol: string;
|
|
928
|
+
decimals: number;
|
|
929
|
+
addresses: {
|
|
930
|
+
[x: number]: string;
|
|
931
|
+
};
|
|
932
|
+
coingeckoId: string;
|
|
933
|
+
};
|
|
898
934
|
WSOL: {
|
|
899
935
|
name: string;
|
|
900
936
|
symbol: string;
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
|
|
@@ -167,6 +167,15 @@ export declare class QueryBase__factory {
|
|
|
167
167
|
};
|
|
168
168
|
coingeckoId: string;
|
|
169
169
|
};
|
|
170
|
+
POL: {
|
|
171
|
+
name: string;
|
|
172
|
+
symbol: string;
|
|
173
|
+
decimals: number;
|
|
174
|
+
addresses: {
|
|
175
|
+
[x: number]: string;
|
|
176
|
+
};
|
|
177
|
+
coingeckoId: string;
|
|
178
|
+
};
|
|
170
179
|
POOL: {
|
|
171
180
|
name: string;
|
|
172
181
|
symbol: string;
|
|
@@ -415,6 +424,15 @@ export declare class QueryBase__factory {
|
|
|
415
424
|
};
|
|
416
425
|
coingeckoId: string;
|
|
417
426
|
};
|
|
427
|
+
WPOL: {
|
|
428
|
+
name: string;
|
|
429
|
+
symbol: string;
|
|
430
|
+
decimals: number;
|
|
431
|
+
addresses: {
|
|
432
|
+
[x: number]: string;
|
|
433
|
+
};
|
|
434
|
+
coingeckoId: string;
|
|
435
|
+
};
|
|
418
436
|
WSOL: {
|
|
419
437
|
name: string;
|
|
420
438
|
symbol: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAqC,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUtC,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,EAC1C,aAAa
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/factory.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAqC,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUtC,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,MAAM,CACX,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,WAAW,EAC1C,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAAoB,EACjC,gBAAgB,qBAA2C,EAC3D,cAAc,gCAA6B,EAC3C,kBAAkB,CAAC,EAAE,MAAM,EAC3B,MAAM,GAAE,MAAuB,EAC/B,qBAAqB,SAAQ,GAC5B,SAAS,GAAG,QAAQ;CAmDxB"}
|
|
@@ -341,6 +341,15 @@ export declare class RelayFeeCalculator {
|
|
|
341
341
|
};
|
|
342
342
|
coingeckoId: string;
|
|
343
343
|
};
|
|
344
|
+
POL: {
|
|
345
|
+
name: string;
|
|
346
|
+
symbol: string;
|
|
347
|
+
decimals: number;
|
|
348
|
+
addresses: {
|
|
349
|
+
[x: number]: string;
|
|
350
|
+
};
|
|
351
|
+
coingeckoId: string;
|
|
352
|
+
};
|
|
344
353
|
POOL: {
|
|
345
354
|
name: string;
|
|
346
355
|
symbol: string;
|
|
@@ -589,6 +598,15 @@ export declare class RelayFeeCalculator {
|
|
|
589
598
|
};
|
|
590
599
|
coingeckoId: string;
|
|
591
600
|
};
|
|
601
|
+
WPOL: {
|
|
602
|
+
name: string;
|
|
603
|
+
symbol: string;
|
|
604
|
+
decimals: number;
|
|
605
|
+
addresses: {
|
|
606
|
+
[x: number]: string;
|
|
607
|
+
};
|
|
608
|
+
coingeckoId: string;
|
|
609
|
+
};
|
|
592
610
|
WSOL: {
|
|
593
611
|
name: string;
|
|
594
612
|
symbol: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relayFeeCalculator.d.ts","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"relayFeeCalculator.d.ts","sourceRoot":"","sources":["../../../src/relayFeeCalculator/relayFeeCalculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { BigNumber, ethers } from "ethers";
|
|
2
|
+
import { Log } from "@ethersproject/abstract-provider";
|
|
3
|
+
/** ********************************************************************************************************************
|
|
4
|
+
*
|
|
5
|
+
* CONSTANTS
|
|
6
|
+
*
|
|
7
|
+
******************************************************************************************************************* **/
|
|
8
|
+
export type CCTPMessageStatus = "finalized" | "ready" | "pending";
|
|
9
|
+
export declare const CCTPV2_FINALITY_THRESHOLD_STANDARD = 2000;
|
|
10
|
+
export declare const CCTPV2_FINALITY_THRESHOLD_FAST = 1000;
|
|
11
|
+
/** ********************************************************************************************************************
|
|
12
|
+
*
|
|
13
|
+
* CCTP SMART CONTRACT EVENT TYPES
|
|
14
|
+
*
|
|
15
|
+
******************************************************************************************************************* **/
|
|
16
|
+
type CommonMessageData = {
|
|
17
|
+
cctpVersion: number;
|
|
18
|
+
sourceDomain: number;
|
|
19
|
+
destinationDomain: number;
|
|
20
|
+
sender: string;
|
|
21
|
+
recipient: string;
|
|
22
|
+
messageHash: string;
|
|
23
|
+
messageBytes: string;
|
|
24
|
+
nonce: number;
|
|
25
|
+
nonceHash: string;
|
|
26
|
+
};
|
|
27
|
+
type DepositForBurnMessageData = CommonMessageData & {
|
|
28
|
+
amount: string;
|
|
29
|
+
mintRecipient: string;
|
|
30
|
+
burnToken: string;
|
|
31
|
+
};
|
|
32
|
+
type CommonMessageEvent = CommonMessageData & {
|
|
33
|
+
log: Log;
|
|
34
|
+
};
|
|
35
|
+
type DepositForBurnMessageEvent = DepositForBurnMessageData & {
|
|
36
|
+
log: Log;
|
|
37
|
+
};
|
|
38
|
+
type CCTPMessageEvent = CommonMessageEvent | DepositForBurnMessageEvent;
|
|
39
|
+
type CCTPV2APIAttestation = {
|
|
40
|
+
status: string;
|
|
41
|
+
attestation: string;
|
|
42
|
+
message: string;
|
|
43
|
+
eventNonce: string;
|
|
44
|
+
cctpVersion: number;
|
|
45
|
+
decodedMessage: {
|
|
46
|
+
recipient: string;
|
|
47
|
+
destinationDomain: number;
|
|
48
|
+
decodedMessageBody: {
|
|
49
|
+
amount: string;
|
|
50
|
+
mintRecipient: string;
|
|
51
|
+
messageSender: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
type CCTPV2APIGetAttestationResponse = {
|
|
56
|
+
messages: CCTPV2APIAttestation[];
|
|
57
|
+
};
|
|
58
|
+
/** ********************************************************************************************************************
|
|
59
|
+
*
|
|
60
|
+
* Exported functions and constants:
|
|
61
|
+
*
|
|
62
|
+
******************************************************************************************************************* **/
|
|
63
|
+
export type AttestedCCTPMessage = CCTPMessageEvent & {
|
|
64
|
+
status: CCTPMessageStatus;
|
|
65
|
+
attestation?: string;
|
|
66
|
+
};
|
|
67
|
+
export type AttestedCCTPDeposit = DepositForBurnMessageEvent & {
|
|
68
|
+
status: CCTPMessageStatus;
|
|
69
|
+
attestation?: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* @notice Converts an ETH Address string to a 32-byte hex string.
|
|
73
|
+
* @param address The address to convert.
|
|
74
|
+
* @returns The 32-byte hex string representation of the address - required for CCTP messages.
|
|
75
|
+
*/
|
|
76
|
+
export declare function cctpAddressToBytes32(address: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Converts a 32-byte hex string with padding to a standard ETH address.
|
|
79
|
+
* @param bytes32 The 32-byte hex string to convert.
|
|
80
|
+
* @returns The ETH address representation of the 32-byte hex string.
|
|
81
|
+
*/
|
|
82
|
+
export declare function cctpBytes32ToAddress(bytes32: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* @notice Returns the CCTP domain for a given chain ID. Throws if the chain ID is not a CCTP domain.
|
|
85
|
+
* @param chainId
|
|
86
|
+
* @returns CCTP Domain ID
|
|
87
|
+
*/
|
|
88
|
+
export declare function getCctpDomainForChainId(chainId: number): number;
|
|
89
|
+
/**
|
|
90
|
+
* @notice Returns the chain ID for a given CCTP domain. Inverse functionof `getCctpDomainForChainId()`. However,
|
|
91
|
+
* since CCTP Domains are shared between production and test networks, we need to use the `productionNetworks` flag
|
|
92
|
+
* to determine whether to return the production or test network chain ID.
|
|
93
|
+
* @param domain CCTP domain ID.
|
|
94
|
+
* @param productionNetworks Whether to return the production or test network chain ID.
|
|
95
|
+
* @returns Chain ID.
|
|
96
|
+
*/
|
|
97
|
+
export declare function getCctpDestinationChainFromDomain(domain: number, productionNetworks: boolean): number;
|
|
98
|
+
/**
|
|
99
|
+
* @notice Typeguard. Returns whether the event is a CCTP deposit for burn event. Should work for V1 and V2
|
|
100
|
+
* @param event CCTP message event.
|
|
101
|
+
* @returns True if the event is a CCTP deposit for burn event.
|
|
102
|
+
*/
|
|
103
|
+
export declare function isDepositForBurnEvent(event: CCTPMessageEvent): event is DepositForBurnMessageEvent;
|
|
104
|
+
/**
|
|
105
|
+
* @notice Fetches CCTP V2 attestations for a given list of transaction hashes. If a transaction hash
|
|
106
|
+
* contains multiple CCTP messages, this will return an object where each key is a transaction hash and
|
|
107
|
+
* a value is an array of attestations.
|
|
108
|
+
* @param depositForBurnTxnHashes List of transaction hashes to fetch attestations for.
|
|
109
|
+
* @param sourceChainId Source chain ID of the transaction hashes.
|
|
110
|
+
* @returns Object with transaction hashes as keys and CCTP V2 attestations as values.
|
|
111
|
+
*/
|
|
112
|
+
export declare function fetchCctpV2Attestations(depositForBurnTxnHashes: string[], sourceChainId: number): Promise<{
|
|
113
|
+
[sourceTxnHash: string]: CCTPV2APIGetAttestationResponse;
|
|
114
|
+
}>;
|
|
115
|
+
/**
|
|
116
|
+
* @notice Returns the status of a CCTP attestation.
|
|
117
|
+
* @param attestation Attestation to get the status of.
|
|
118
|
+
* @returns "finalized","pending" or "ready".
|
|
119
|
+
*/
|
|
120
|
+
export declare function getPendingAttestationStatus(attestation: CCTPV2APIAttestation): CCTPMessageStatus;
|
|
121
|
+
/**
|
|
122
|
+
* @notice Checks if a CCTP message has been processed by a given contract.
|
|
123
|
+
* @param nonceHash Nonce hash to check.
|
|
124
|
+
* @param contract
|
|
125
|
+
* @returns True if the message has been processed, false otherwise.
|
|
126
|
+
*/
|
|
127
|
+
export declare function hasCCTPMessageBeenProcessedEvm(nonceHash: string, contract: ethers.Contract): Promise<boolean>;
|
|
128
|
+
/**
|
|
129
|
+
* @notice The maximum amount of USDC that can be sent using a fast transfer.
|
|
130
|
+
* @param isMainnet Toggles whether to call CCTP API on mainnet or sandbox environment.
|
|
131
|
+
* @returns USDC amount in units of USDC.
|
|
132
|
+
* @link https://developers.circle.com/api-reference/cctp/all/get-fast-burn-usdc-allowance
|
|
133
|
+
*/
|
|
134
|
+
export declare function getV2FastBurnAllowance(isMainnet: boolean): Promise<string>;
|
|
135
|
+
/**
|
|
136
|
+
* Returns the minimum transfer fees required for a transfer to be relayed. When calling depositForBurn(), the maxFee
|
|
137
|
+
* parameter must be greater than or equal to the minimum fee.
|
|
138
|
+
* @param sourceChainId The source chain ID of the transfer.
|
|
139
|
+
* @param destinationChainId The destination chain ID of the transfer.
|
|
140
|
+
* @param isMainnet Toggles whether to call CCTP API on mainnet or sandbox environment.
|
|
141
|
+
* @returns The standard and fast transfer fees for the given source and destination chains.
|
|
142
|
+
* @link https://developers.circle.com/api-reference/cctp/all/get-burn-usdc-fees
|
|
143
|
+
*/
|
|
144
|
+
export declare function getV2MinTransferFees(sourceChainId: number, destinationChainId: number): Promise<{
|
|
145
|
+
standard: BigNumber;
|
|
146
|
+
fast: BigNumber;
|
|
147
|
+
}>;
|
|
148
|
+
/**
|
|
149
|
+
* @notice Fetches attestations for a given transaction hash. If transaction hash contains multiple CCTP
|
|
150
|
+
* messages, this will return an array of attestations. Should work for both v1 and v2.
|
|
151
|
+
* @param sourceDomainId
|
|
152
|
+
* @param transactionHash
|
|
153
|
+
* @param isMainnet
|
|
154
|
+
* @returns Attestation response, list of messages with attestations.
|
|
155
|
+
*/
|
|
156
|
+
export declare function fetchAttestationsForTxn(sourceDomainId: number, transactionHash: string, isMainnet: boolean): Promise<CCTPV2APIGetAttestationResponse>;
|
|
157
|
+
/**
|
|
158
|
+
* @notice Returns the CCTP version of the `MessageSent` event.
|
|
159
|
+
* @param log CCTP event log.
|
|
160
|
+
* @returns 0 for v1 `MessageSent` event, 1 for v2, -1 for other events
|
|
161
|
+
*/
|
|
162
|
+
export declare function getMessageSentVersion(log: ethers.providers.Log): number;
|
|
163
|
+
/**
|
|
164
|
+
* @notice Returns the CCTP version of the `DepositForBurn` event.
|
|
165
|
+
* @param log CCTP event log.
|
|
166
|
+
* @returns 0 for v1 `DepositForBurn` event, 1 for v2, -1 for other events
|
|
167
|
+
*/
|
|
168
|
+
export declare function getDepositForBurnVersion(log: ethers.providers.Log): number;
|
|
169
|
+
export {};
|
|
170
|
+
//# sourceMappingURL=CCTPUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CCTPUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/CCTPUtils.ts"],"names":[],"mappings":"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"}
|