@across-protocol/sdk 4.3.45 → 4.3.47
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/arch/evm/SpokeUtils.js +30 -28
- package/dist/cjs/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/SpokeUtils.d.ts +21 -10
- package/dist/cjs/arch/svm/SpokeUtils.js +129 -11
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/encoders.d.ts +19 -0
- package/dist/cjs/arch/svm/encoders.js +52 -0
- package/dist/cjs/arch/svm/encoders.js.map +1 -0
- package/dist/cjs/arch/svm/index.d.ts +1 -0
- package/dist/cjs/arch/svm/index.js +1 -0
- package/dist/cjs/arch/svm/index.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +4 -6
- package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +0 -5
- package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +0 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +58 -58
- package/dist/cjs/clients/HubPoolClient.d.ts +9 -3
- package/dist/cjs/clients/HubPoolClient.js +81 -56
- package/dist/cjs/clients/HubPoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js +7 -5
- package/dist/cjs/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +13 -16
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +2 -2
- package/dist/cjs/clients/mocks/MockHubPoolClient.js +1 -1
- package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/cjs/constants.d.ts +3 -0
- package/dist/cjs/constants.js +10 -2
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/providers/solana/retryRpcFactory.js +14 -10
- package/dist/cjs/providers/solana/retryRpcFactory.js.map +1 -1
- package/dist/esm/arch/evm/SpokeUtils.js +33 -29
- package/dist/esm/arch/evm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +38 -10
- package/dist/esm/arch/svm/SpokeUtils.js +152 -11
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/encoders.d.ts +19 -0
- package/dist/esm/arch/svm/encoders.js +43 -0
- package/dist/esm/arch/svm/encoders.js.map +1 -0
- package/dist/esm/arch/svm/index.d.ts +1 -0
- package/dist/esm/arch/svm/index.js +1 -0
- package/dist/esm/arch/svm/index.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +5 -7
- package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +1 -6
- package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +0 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +58 -58
- package/dist/esm/clients/HubPoolClient.d.ts +9 -3
- package/dist/esm/clients/HubPoolClient.js +87 -60
- package/dist/esm/clients/HubPoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js +8 -6
- package/dist/esm/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +13 -18
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +2 -2
- package/dist/esm/clients/mocks/MockHubPoolClient.js +1 -1
- package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
- package/dist/esm/constants.d.ts +3 -0
- package/dist/esm/constants.js +12 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/providers/solana/retryRpcFactory.js +15 -10
- package/dist/esm/providers/solana/retryRpcFactory.js.map +1 -1
- package/dist/types/arch/evm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts +38 -10
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/encoders.d.ts +20 -0
- package/dist/types/arch/svm/encoders.d.ts.map +1 -0
- package/dist/types/arch/svm/index.d.ts +1 -0
- package/dist/types/arch/svm/index.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +58 -58
- package/dist/types/clients/HubPoolClient.d.ts +9 -3
- package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockHubPoolClient.d.ts +2 -2
- package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -1
- package/dist/types/constants.d.ts +3 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/providers/solana/retryRpcFactory.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/arch/evm/SpokeUtils.ts +16 -9
- package/src/arch/svm/SpokeUtils.ts +199 -11
- package/src/arch/svm/encoders.ts +86 -0
- package/src/arch/svm/index.ts +1 -0
- package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +20 -14
- package/src/clients/BundleDataClient/utils/FillUtils.ts +1 -7
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +0 -2
- package/src/clients/HubPoolClient.ts +79 -50
- package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +22 -8
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +31 -39
- package/src/clients/mocks/MockHubPoolClient.ts +3 -3
- package/src/constants.ts +12 -0
- package/src/providers/solana/retryRpcFactory.ts +6 -2
|
@@ -217,66 +217,68 @@ function fillStatusArray(spokePool, relayData, blockTag) {
|
|
|
217
217
|
}
|
|
218
218
|
exports.fillStatusArray = fillStatusArray;
|
|
219
219
|
function findFillBlock(spokePool, relayData, lowBlockNumber, highBlockNumber) {
|
|
220
|
+
var _a;
|
|
220
221
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
221
|
-
var provider,
|
|
222
|
-
return tslib_1.__generator(this, function (
|
|
223
|
-
switch (
|
|
222
|
+
var provider, destinationChainId, _b, _c, _d, _e, initialFillStatus, finalFillStatus, depositId, originChainId, _f, srcChain, dstChain, midBlockNumber, fillStatus;
|
|
223
|
+
return tslib_1.__generator(this, function (_g) {
|
|
224
|
+
switch (_g.label) {
|
|
224
225
|
case 0:
|
|
225
226
|
provider = spokePool.provider;
|
|
226
|
-
if (!(
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
227
|
+
if (!Object.values(constants_1.CHAIN_IDs).includes(relayData.originChainId)) return [3, 2];
|
|
228
|
+
return [4, provider.getNetwork()];
|
|
229
|
+
case 1:
|
|
230
|
+
_b = (_g.sent()).chainId;
|
|
231
|
+
return [3, 4];
|
|
230
232
|
case 2:
|
|
231
|
-
|
|
232
|
-
|
|
233
|
+
_c = Number;
|
|
234
|
+
return [4, spokePool.chainId()];
|
|
233
235
|
case 3:
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
if (!Object.values(constants_1.CHAIN_IDs).includes(relayData.originChainId)) return [3, 5];
|
|
237
|
-
return [4, provider.getNetwork()];
|
|
236
|
+
_b = _c.apply(void 0, [_g.sent()]);
|
|
237
|
+
_g.label = 4;
|
|
238
238
|
case 4:
|
|
239
|
-
|
|
239
|
+
destinationChainId = _b;
|
|
240
|
+
(0, assert_1.default)(relayData.originChainId !== destinationChainId, "Origin & destination chain IDs must not be equal (".concat(destinationChainId, ")"));
|
|
241
|
+
lowBlockNumber = Math.max(lowBlockNumber, (_a = constants_1.SPOKEPOOL_UPGRADE_BLOCKS[destinationChainId]) !== null && _a !== void 0 ? _a : lowBlockNumber);
|
|
242
|
+
if (!(highBlockNumber !== null && highBlockNumber !== void 0)) return [3, 5];
|
|
243
|
+
_d = highBlockNumber;
|
|
240
244
|
return [3, 7];
|
|
241
|
-
case 5:
|
|
242
|
-
_c = Number;
|
|
243
|
-
return [4, spokePool.chainId()];
|
|
245
|
+
case 5: return [4, provider.getBlockNumber()];
|
|
244
246
|
case 6:
|
|
245
|
-
|
|
246
|
-
|
|
247
|
+
_d = (highBlockNumber = _g.sent());
|
|
248
|
+
_g.label = 7;
|
|
247
249
|
case 7:
|
|
248
|
-
|
|
249
|
-
(0, assert_1.default)(
|
|
250
|
+
_d;
|
|
251
|
+
(0, assert_1.default)(highBlockNumber > lowBlockNumber, "Block numbers out of range (".concat(lowBlockNumber, " >= ").concat(highBlockNumber, ")"));
|
|
250
252
|
return [4, Promise.all([
|
|
251
253
|
relayFillStatus(spokePool, relayData, lowBlockNumber, destinationChainId),
|
|
252
254
|
relayFillStatus(spokePool, relayData, highBlockNumber, destinationChainId),
|
|
253
255
|
])];
|
|
254
256
|
case 8:
|
|
255
|
-
|
|
257
|
+
_e = (_g.sent()).map(Number), initialFillStatus = _e[0], finalFillStatus = _e[1];
|
|
256
258
|
if (finalFillStatus !== interfaces_1.FillStatus.Filled) {
|
|
257
259
|
return [2, undefined];
|
|
258
260
|
}
|
|
259
261
|
if (initialFillStatus === interfaces_1.FillStatus.Filled) {
|
|
260
262
|
depositId = relayData.depositId, originChainId = relayData.originChainId;
|
|
261
|
-
|
|
263
|
+
_f = [(0, utils_1.getNetworkName)(originChainId), (0, utils_1.getNetworkName)(destinationChainId)], srcChain = _f[0], dstChain = _f[1];
|
|
262
264
|
throw new Error("".concat(srcChain, " deposit ").concat(depositId.toString(), " filled on ").concat(dstChain, " before block ").concat(lowBlockNumber));
|
|
263
265
|
}
|
|
264
|
-
|
|
266
|
+
_g.label = 9;
|
|
265
267
|
case 9:
|
|
266
268
|
midBlockNumber = Math.floor((highBlockNumber + lowBlockNumber) / 2);
|
|
267
269
|
return [4, relayFillStatus(spokePool, relayData, midBlockNumber, destinationChainId)];
|
|
268
270
|
case 10:
|
|
269
|
-
fillStatus =
|
|
271
|
+
fillStatus = _g.sent();
|
|
270
272
|
if (fillStatus === interfaces_1.FillStatus.Filled) {
|
|
271
273
|
highBlockNumber = midBlockNumber;
|
|
272
274
|
}
|
|
273
275
|
else {
|
|
274
276
|
lowBlockNumber = midBlockNumber + 1;
|
|
275
277
|
}
|
|
276
|
-
|
|
278
|
+
_g.label = 11;
|
|
277
279
|
case 11:
|
|
278
280
|
if (lowBlockNumber < highBlockNumber) return [3, 9];
|
|
279
|
-
|
|
281
|
+
_g.label = 12;
|
|
280
282
|
case 12: return [2, lowBlockNumber];
|
|
281
283
|
}
|
|
282
284
|
});
|
|
@@ -318,7 +320,7 @@ function findFillEvent(spokePool, relayData, lowBlockNumber, highBlockNumber) {
|
|
|
318
320
|
case 6:
|
|
319
321
|
destinationChainId = _b;
|
|
320
322
|
fillEvent = (0, utils_1.spreadEventWithBlockNumber)(event);
|
|
321
|
-
fill = tslib_1.__assign(tslib_1.__assign({}, fillEvent), { inputToken: (0, utils_1.toAddressType)(fillEvent.inputToken, relayData.originChainId), outputToken: (0, utils_1.toAddressType)(fillEvent.outputToken, destinationChainId), depositor: (0, utils_1.toAddressType)(fillEvent.depositor, relayData.originChainId), recipient: (0, utils_1.toAddressType)(fillEvent.recipient, destinationChainId), exclusiveRelayer: (0, utils_1.toAddressType)(fillEvent.exclusiveRelayer, destinationChainId), relayer: (0, utils_1.toAddressType)(fillEvent.relayer,
|
|
323
|
+
fill = tslib_1.__assign(tslib_1.__assign({}, fillEvent), { inputToken: (0, utils_1.toAddressType)(fillEvent.inputToken, relayData.originChainId), outputToken: (0, utils_1.toAddressType)(fillEvent.outputToken, destinationChainId), depositor: (0, utils_1.toAddressType)(fillEvent.depositor, relayData.originChainId), recipient: (0, utils_1.toAddressType)(fillEvent.recipient, destinationChainId), exclusiveRelayer: (0, utils_1.toAddressType)(fillEvent.exclusiveRelayer, destinationChainId), relayer: (0, utils_1.toAddressType)(fillEvent.relayer, fillEvent.repaymentChainId), relayExecutionInfo: tslib_1.__assign(tslib_1.__assign({}, fillEvent.relayExecutionInfo), { updatedRecipient: (0, utils_1.toAddressType)(fillEvent.relayExecutionInfo.updatedRecipient, destinationChainId) }), destinationChainId: destinationChainId, messageHash: (0, utils_1.getMessageHash)(event.args.message) });
|
|
322
324
|
return [2, fill];
|
|
323
325
|
}
|
|
324
326
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":";;;;AAAA,0DAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"SpokeUtils.js","sourceRoot":"","sources":["../../../../src/arch/evm/SpokeUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { MessageTransmitterClient, SvmSpokeClient } from "@across-protocol/contracts";
|
|
2
2
|
import { Mint } from "@solana-program/token";
|
|
3
|
-
import { Account, Address, FetchAccountConfig, IAccountMeta, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner, type Commitment } from "@solana/kit";
|
|
3
|
+
import { Account, Address, FetchAccountConfig, IAccountMeta, IInstruction, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type ReadonlyAccount, type Commitment } from "@solana/kit";
|
|
4
4
|
import winston from "winston";
|
|
5
5
|
import { DepositWithBlock, FillStatus, FillWithBlock, RelayData, RelayDataWithMessageHash } from "../../interfaces";
|
|
6
6
|
import { BigNumber, EvmAddress, Address as SdkAddress, SvmAddress } from "../../utils";
|
|
7
|
+
import { type AcrossPlusMessage } from "./";
|
|
7
8
|
import { SvmCpiEventsClient } from "./eventsClient";
|
|
8
9
|
import { AttestedCCTPMessage, SVMProvider } from "./types";
|
|
9
10
|
export declare const SLOT_DURATION_MS = 400;
|
|
@@ -27,19 +28,28 @@ export declare function getFillRelayTx(spokePoolAddr: SvmAddress, solanaClient:
|
|
|
27
28
|
recipient: SvmAddress;
|
|
28
29
|
outputToken: SvmAddress;
|
|
29
30
|
}, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: SdkAddress): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
30
|
-
instructions: readonly
|
|
31
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
31
32
|
version: 0;
|
|
32
33
|
}>, "feePayer">>;
|
|
33
|
-
export declare
|
|
34
|
-
|
|
34
|
+
export declare function getIPFillRelayTx(spokePoolAddr: SvmAddress, solanaClient: SVMProvider, relayData: Omit<RelayData, "recipient" | "outputToken"> & {
|
|
35
|
+
destinationChainId: number;
|
|
36
|
+
recipient: SvmAddress;
|
|
37
|
+
outputToken: SvmAddress;
|
|
38
|
+
}, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: SdkAddress): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
39
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
40
|
+
version: 0;
|
|
41
|
+
}>, "feePayer">>;
|
|
42
|
+
export declare const createFillInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, fillInput: SvmSpokeClient.FillRelayInput, relayData: Pick<SvmSpokeClient.RelayDataArgs, "outputAmount" | "recipient">, tokenDecimals: number, createRecipientAtaIfNeeded?: boolean, remainingAccounts?: (WritableAccount | ReadonlyAccount)[]) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
43
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
35
44
|
version: 0;
|
|
36
45
|
}>, "feePayer">>;
|
|
46
|
+
export declare function deserializeMessage(_message: string): AcrossPlusMessage;
|
|
37
47
|
export declare const createDepositInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, depositInput: SvmSpokeClient.DepositInput, tokenDecimals: number, createVaultAtaIfNeeded?: boolean) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
38
|
-
instructions: readonly
|
|
48
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
39
49
|
version: 0;
|
|
40
50
|
}>, "feePayer">>;
|
|
41
51
|
export declare const createRequestSlowFillInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, requestSlowFillInput: SvmSpokeClient.RequestSlowFillInput) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
42
|
-
instructions: readonly
|
|
52
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
43
53
|
version: 0;
|
|
44
54
|
}>, "feePayer">>;
|
|
45
55
|
export declare function getSlowFillRequestTx(spokePoolAddr: SvmAddress, solanaClient: SVMProvider, relayData: Omit<RelayData, "recipient" | "outputToken"> & {
|
|
@@ -47,21 +57,22 @@ export declare function getSlowFillRequestTx(spokePoolAddr: SvmAddress, solanaCl
|
|
|
47
57
|
recipient: SvmAddress;
|
|
48
58
|
outputToken: SvmAddress;
|
|
49
59
|
}, signer: TransactionSigner): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
50
|
-
instructions: readonly
|
|
60
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
51
61
|
version: 0;
|
|
52
62
|
}>, "feePayer">>;
|
|
53
63
|
export declare const createCloseFillPdaInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, fillStatusPda: Address) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
54
|
-
instructions: readonly
|
|
64
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
55
65
|
version: 0;
|
|
56
66
|
}>, "feePayer">>;
|
|
57
67
|
export declare const createReceiveMessageInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, input: MessageTransmitterClient.ReceiveMessageInput, remainingAccounts: IAccountMeta<string>[]) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
58
|
-
instructions: readonly
|
|
68
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
59
69
|
version: 0;
|
|
60
70
|
}>, "feePayer">>;
|
|
61
71
|
export declare function getAssociatedTokenAddress(owner: SvmAddress, mint: SvmAddress, tokenProgramId?: Address<string>): Promise<Address<string>>;
|
|
62
72
|
export declare function getRelayDataHash(relayData: RelayData & {
|
|
63
73
|
messageHash: string;
|
|
64
74
|
}, destinationChainId: number): string;
|
|
75
|
+
export declare function getFillRelayViaInstructionParamsInstructions(spokePool: Address<string>, relayData: RelayData, repaymentChainId: number, repaymentAddress: SdkAddress, signer: TransactionSigner<string>, maxWriteSize?: number): Promise<IInstruction[]>;
|
|
65
76
|
export declare function getDepositDelegatePda(depositData: {
|
|
66
77
|
depositor: Address<string>;
|
|
67
78
|
recipient: Address<string>;
|
|
@@ -93,7 +104,7 @@ export declare function getFillRelayDelegatePda(relayHash: Uint8Array, repayment
|
|
|
93
104
|
export declare const hasCCTPV1MessageBeenProcessed: (solanaClient: SVMProvider, signer: KeyPairSigner, nonce: number, sourceDomain: number) => Promise<boolean>;
|
|
94
105
|
export declare function getAccountMetasForTokenlessMessage(solanaClient: SVMProvider, signer: KeyPairSigner, messageBytes: string): Promise<IAccountMeta<string>[]>;
|
|
95
106
|
export declare function getCCTPV1ReceiveMessageTx(solanaClient: SVMProvider, signer: KeyPairSigner, message: AttestedCCTPMessage, hubChainId: number, recipientAta: SvmAddress): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
96
|
-
instructions: readonly
|
|
107
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
97
108
|
version: 0;
|
|
98
109
|
}>, "feePayer">>;
|
|
99
110
|
export declare function finalizeCCTPV1Messages(solanaClient: SVMProvider, attestedMessages: AttestedCCTPMessage[], signer: KeyPairSigner, recipientAta: SvmAddress, simulate?: boolean, hubChainId?: number): Promise<string[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMintInfo = exports.finalizeCCTPV1Messages = exports.getCCTPV1ReceiveMessageTx = exports.getAccountMetasForTokenlessMessage = exports.hasCCTPV1MessageBeenProcessed = exports.getFillRelayDelegatePda = exports.getDepositNowDelegatePda = exports.getDepositDelegatePda = exports.getRelayDataHash = exports.getAssociatedTokenAddress = exports.createReceiveMessageInstruction = exports.createCloseFillPdaInstruction = exports.getSlowFillRequestTx = exports.createRequestSlowFillInstruction = exports.createDepositInstruction = exports.createFillInstruction = exports.getFillRelayTx = exports.createTokenAccountsInstruction = exports.fillRelayInstruction = exports.findFillEvent = exports.fillStatusArray = exports.relayFillStatus = exports.findDeposit = exports.getDepositIdAtBlock = exports.getFillDeadline = exports.getTimestampForSlot = exports.getSlot = exports.SLOT_DURATION_MS = void 0;
|
|
3
|
+
exports.getMintInfo = exports.finalizeCCTPV1Messages = exports.getCCTPV1ReceiveMessageTx = exports.getAccountMetasForTokenlessMessage = exports.hasCCTPV1MessageBeenProcessed = exports.getFillRelayDelegatePda = exports.getDepositNowDelegatePda = exports.getDepositDelegatePda = exports.getFillRelayViaInstructionParamsInstructions = exports.getRelayDataHash = exports.getAssociatedTokenAddress = exports.createReceiveMessageInstruction = exports.createCloseFillPdaInstruction = exports.getSlowFillRequestTx = exports.createRequestSlowFillInstruction = exports.createDepositInstruction = exports.deserializeMessage = exports.createFillInstruction = exports.getIPFillRelayTx = exports.getFillRelayTx = exports.createTokenAccountsInstruction = exports.fillRelayInstruction = exports.findFillEvent = exports.fillStatusArray = exports.relayFillStatus = exports.findDeposit = exports.getDepositIdAtBlock = exports.getFillDeadline = exports.getTimestampForSlot = exports.getSlot = exports.SLOT_DURATION_MS = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var contracts_1 = require("@across-protocol/contracts");
|
|
6
6
|
var SvmSpoke_1 = require("@across-protocol/contracts/dist/src/svm/clients/SvmSpoke");
|
|
@@ -320,7 +320,7 @@ function findFillEvent(relayData, destinationChainId, svmEventsClient, fromSlot,
|
|
|
320
320
|
rawFillEvent = fillEvents[0];
|
|
321
321
|
eventData = (0, _1.unwrapEventData)(rawFillEvent.data, ["depositId", "inputAmount"]);
|
|
322
322
|
originChainId = eventData.originChainId;
|
|
323
|
-
parsedFillEvent = tslib_1.__assign(tslib_1.__assign({}, eventData), {
|
|
323
|
+
parsedFillEvent = tslib_1.__assign(tslib_1.__assign({}, eventData), { txnRef: rawFillEvent.signature, blockNumber: Number(rawFillEvent.slot), txnIndex: 0, logIndex: 0, destinationChainId: destinationChainId, inputToken: (0, utils_2.toAddressType)(eventData.inputToken, originChainId), outputToken: (0, utils_2.toAddressType)(eventData.outputToken, destinationChainId), relayer: (0, utils_2.toAddressType)(eventData.relayer, eventData.repaymentChainId), exclusiveRelayer: (0, utils_2.toAddressType)(eventData.exclusiveRelayer, destinationChainId), depositor: (0, utils_2.toAddressType)(eventData.depositor, originChainId), recipient: (0, utils_2.toAddressType)(eventData.recipient, destinationChainId), relayExecutionInfo: tslib_1.__assign(tslib_1.__assign({}, eventData.relayExecutionInfo), { updatedRecipient: eventData.relayExecutionInfo.updatedRecipient }) });
|
|
324
324
|
return [2, parsedFillEvent];
|
|
325
325
|
}
|
|
326
326
|
return [2, undefined];
|
|
@@ -380,7 +380,7 @@ function createTokenAccountsInstruction(mint, relayer) {
|
|
|
380
380
|
exports.createTokenAccountsInstruction = createTokenAccountsInstruction;
|
|
381
381
|
function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymentChainId, repaymentAddress) {
|
|
382
382
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
383
|
-
var svmRelayData, program, messageHash, _relayDataHash, relayDataHash, _a, state, delegate, mintInfo, fillStatus, eventAuthority, _b, recipientAta, relayerAta, fillInput;
|
|
383
|
+
var svmRelayData, program, messageHash, _relayDataHash, relayDataHash, _a, state, delegate, mintInfo, fillStatus, eventAuthority, _b, recipientAta, relayerAta, remainingAccounts, acrossPlusMessage_1, fillInput;
|
|
384
384
|
return tslib_1.__generator(this, function (_c) {
|
|
385
385
|
switch (_c.label) {
|
|
386
386
|
case 0:
|
|
@@ -405,6 +405,14 @@ function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymen
|
|
|
405
405
|
])];
|
|
406
406
|
case 2:
|
|
407
407
|
_b = _c.sent(), recipientAta = _b[0], relayerAta = _b[1];
|
|
408
|
+
remainingAccounts = [];
|
|
409
|
+
if (relayData.message !== "0x") {
|
|
410
|
+
acrossPlusMessage_1 = deserializeMessage(relayData.message);
|
|
411
|
+
remainingAccounts.push((0, _1.getAccountMeta)(acrossPlusMessage_1.handler, true));
|
|
412
|
+
remainingAccounts.push.apply(remainingAccounts, acrossPlusMessage_1.accounts.map(function (account, idx) {
|
|
413
|
+
return (0, _1.getAccountMeta)(account, idx < acrossPlusMessage_1.accounts.length - acrossPlusMessage_1.read_only_len);
|
|
414
|
+
}));
|
|
415
|
+
}
|
|
408
416
|
fillInput = {
|
|
409
417
|
signer: signer,
|
|
410
418
|
state: state,
|
|
@@ -423,27 +431,90 @@ function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymen
|
|
|
423
431
|
repaymentChainId: BigInt(repaymentChainId),
|
|
424
432
|
repaymentAddress: (0, _1.toAddress)(repaymentAddress),
|
|
425
433
|
};
|
|
426
|
-
return [2, (0, exports.createFillInstruction)(signer, solanaClient, fillInput, mintInfo.data.decimals, true)];
|
|
434
|
+
return [2, (0, exports.createFillInstruction)(signer, solanaClient, fillInput, svmRelayData, mintInfo.data.decimals, true, remainingAccounts)];
|
|
427
435
|
}
|
|
428
436
|
});
|
|
429
437
|
});
|
|
430
438
|
}
|
|
431
439
|
exports.getFillRelayTx = getFillRelayTx;
|
|
432
|
-
|
|
440
|
+
function getIPFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymentChainId, repaymentAddress) {
|
|
441
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
442
|
+
var program, _relayDataHash, relayDataHash, _a, state, delegate, instructionParams, mint, mintInfo, _b, recipientAta, relayerAta, fillStatus, eventAuthority, remainingAccounts, acrossPlusMessage_2, fillInput;
|
|
443
|
+
return tslib_1.__generator(this, function (_c) {
|
|
444
|
+
switch (_c.label) {
|
|
445
|
+
case 0:
|
|
446
|
+
program = (0, _1.toAddress)(spokePoolAddr);
|
|
447
|
+
_relayDataHash = getRelayDataHash(tslib_1.__assign(tslib_1.__assign({}, relayData), { messageHash: (0, utils_2.getMessageHash)(relayData.message) }), relayData.destinationChainId);
|
|
448
|
+
relayDataHash = new Uint8Array(Buffer.from(_relayDataHash.slice(2), "hex"));
|
|
449
|
+
return [4, Promise.all([
|
|
450
|
+
(0, _1.getStatePda)(program),
|
|
451
|
+
getFillRelayDelegatePda(relayDataHash, BigInt(repaymentChainId), (0, _1.toAddress)(repaymentAddress), program),
|
|
452
|
+
(0, _1.getInstructionParamsPda)(program, signer.address),
|
|
453
|
+
])];
|
|
454
|
+
case 1:
|
|
455
|
+
_a = _c.sent(), state = _a[0], delegate = _a[1], instructionParams = _a[2];
|
|
456
|
+
mint = (0, _1.toAddress)(relayData.outputToken);
|
|
457
|
+
return [4, getMintInfo(solanaClient, mint)];
|
|
458
|
+
case 2:
|
|
459
|
+
mintInfo = _c.sent();
|
|
460
|
+
return [4, Promise.all([
|
|
461
|
+
getAssociatedTokenAddress(relayData.recipient, relayData.outputToken, mintInfo.programAddress),
|
|
462
|
+
getAssociatedTokenAddress(utils_2.SvmAddress.from(signer.address), relayData.outputToken, mintInfo.programAddress),
|
|
463
|
+
(0, _1.getFillStatusPda)(program, relayData, relayData.destinationChainId),
|
|
464
|
+
(0, _1.getEventAuthority)(program),
|
|
465
|
+
])];
|
|
466
|
+
case 3:
|
|
467
|
+
_b = _c.sent(), recipientAta = _b[0], relayerAta = _b[1], fillStatus = _b[2], eventAuthority = _b[3];
|
|
468
|
+
remainingAccounts = [];
|
|
469
|
+
if (relayData.message !== "0x") {
|
|
470
|
+
acrossPlusMessage_2 = deserializeMessage(relayData.message);
|
|
471
|
+
remainingAccounts.push((0, _1.getAccountMeta)(acrossPlusMessage_2.handler, true));
|
|
472
|
+
remainingAccounts.push.apply(remainingAccounts, acrossPlusMessage_2.accounts.map(function (account, idx) {
|
|
473
|
+
return (0, _1.getAccountMeta)(account, idx < acrossPlusMessage_2.accounts.length - acrossPlusMessage_2.read_only_len);
|
|
474
|
+
}));
|
|
475
|
+
}
|
|
476
|
+
fillInput = {
|
|
477
|
+
signer: signer,
|
|
478
|
+
state: state,
|
|
479
|
+
delegate: delegate,
|
|
480
|
+
mint: mint,
|
|
481
|
+
relayerTokenAccount: relayerAta,
|
|
482
|
+
recipientTokenAccount: recipientAta,
|
|
483
|
+
fillStatus: fillStatus,
|
|
484
|
+
tokenProgram: mintInfo.programAddress,
|
|
485
|
+
associatedTokenProgram: token_1.ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
|
|
486
|
+
systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
|
|
487
|
+
eventAuthority: eventAuthority,
|
|
488
|
+
program: program,
|
|
489
|
+
instructionParams: instructionParams,
|
|
490
|
+
relayHash: relayDataHash,
|
|
491
|
+
relayData: null,
|
|
492
|
+
repaymentChainId: null,
|
|
493
|
+
repaymentAddress: null,
|
|
494
|
+
};
|
|
495
|
+
return [2, (0, exports.createFillInstruction)(signer, solanaClient, fillInput, { outputAmount: relayData.outputAmount.toBigInt(), recipient: (0, _1.toAddress)(relayData.recipient) }, mintInfo.data.decimals, true, remainingAccounts)];
|
|
496
|
+
}
|
|
497
|
+
});
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
exports.getIPFillRelayTx = getIPFillRelayTx;
|
|
501
|
+
var createFillInstruction = function (signer, solanaClient, fillInput, relayData, tokenDecimals, createRecipientAtaIfNeeded, remainingAccounts) {
|
|
433
502
|
if (createRecipientAtaIfNeeded === void 0) { createRecipientAtaIfNeeded = true; }
|
|
503
|
+
if (remainingAccounts === void 0) { remainingAccounts = []; }
|
|
434
504
|
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
435
505
|
var mintInfo, approveIx, getCreateAssociatedTokenIdempotentIx, createFillIx, _a;
|
|
436
|
-
|
|
437
|
-
|
|
506
|
+
var _b;
|
|
507
|
+
return tslib_1.__generator(this, function (_c) {
|
|
508
|
+
switch (_c.label) {
|
|
438
509
|
case 0: return [4, getMintInfo(solanaClient, fillInput.mint)];
|
|
439
510
|
case 1:
|
|
440
|
-
mintInfo =
|
|
511
|
+
mintInfo = _c.sent();
|
|
441
512
|
approveIx = (0, token_1.getApproveCheckedInstruction)({
|
|
442
513
|
source: fillInput.relayerTokenAccount,
|
|
443
514
|
mint: fillInput.mint,
|
|
444
515
|
delegate: fillInput.delegate,
|
|
445
516
|
owner: fillInput.signer,
|
|
446
|
-
amount:
|
|
517
|
+
amount: relayData.outputAmount,
|
|
447
518
|
decimals: tokenDecimals,
|
|
448
519
|
}, {
|
|
449
520
|
programAddress: mintInfo.programAddress,
|
|
@@ -451,7 +522,7 @@ var createFillInstruction = function (signer, solanaClient, fillInput, tokenDeci
|
|
|
451
522
|
getCreateAssociatedTokenIdempotentIx = function () {
|
|
452
523
|
return (0, token_1.getCreateAssociatedTokenIdempotentInstruction)({
|
|
453
524
|
payer: signer,
|
|
454
|
-
owner:
|
|
525
|
+
owner: relayData.recipient,
|
|
455
526
|
mint: fillInput.mint,
|
|
456
527
|
ata: fillInput.recipientTokenAccount,
|
|
457
528
|
systemProgram: system_1.SYSTEM_PROGRAM_ADDRESS,
|
|
@@ -459,9 +530,10 @@ var createFillInstruction = function (signer, solanaClient, fillInput, tokenDeci
|
|
|
459
530
|
});
|
|
460
531
|
};
|
|
461
532
|
createFillIx = contracts_1.SvmSpokeClient.getFillRelayInstruction(fillInput);
|
|
533
|
+
(_b = createFillIx.accounts).push.apply(_b, remainingAccounts);
|
|
462
534
|
_a = kit_1.pipe;
|
|
463
535
|
return [4, (0, _1.createDefaultTransaction)(solanaClient, signer)];
|
|
464
|
-
case 2: return [2, _a.apply(void 0, [
|
|
536
|
+
case 2: return [2, _a.apply(void 0, [_c.sent(), function (tx) {
|
|
465
537
|
return createRecipientAtaIfNeeded ? (0, kit_1.appendTransactionMessageInstruction)(getCreateAssociatedTokenIdempotentIx(), tx) : tx;
|
|
466
538
|
},
|
|
467
539
|
function (tx) { return (0, kit_1.appendTransactionMessageInstruction)(approveIx, tx); },
|
|
@@ -471,6 +543,12 @@ var createFillInstruction = function (signer, solanaClient, fillInput, tokenDeci
|
|
|
471
543
|
});
|
|
472
544
|
};
|
|
473
545
|
exports.createFillInstruction = createFillInstruction;
|
|
546
|
+
function deserializeMessage(_message) {
|
|
547
|
+
var message = new Uint8Array(Buffer.from(_message.startsWith("0x") ? _message.slice(2) : _message, "hex"));
|
|
548
|
+
var acrossPlusMessageDecoder = (0, _1.getAcrossPlusMessageDecoder)();
|
|
549
|
+
return acrossPlusMessageDecoder.decode(message);
|
|
550
|
+
}
|
|
551
|
+
exports.deserializeMessage = deserializeMessage;
|
|
474
552
|
var createDepositInstruction = function (signer, solanaClient, depositInput, tokenDecimals, createVaultAtaIfNeeded) {
|
|
475
553
|
if (createVaultAtaIfNeeded === void 0) { createVaultAtaIfNeeded = true; }
|
|
476
554
|
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
@@ -699,6 +777,46 @@ function fetchBatchFillStatusFromPdaAccounts(provider, fillStatusPdas, relayData
|
|
|
699
777
|
});
|
|
700
778
|
});
|
|
701
779
|
}
|
|
780
|
+
function getFillRelayViaInstructionParamsInstructions(spokePool, relayData, repaymentChainId, repaymentAddress, signer, maxWriteSize) {
|
|
781
|
+
if (maxWriteSize === void 0) { maxWriteSize = 450; }
|
|
782
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
783
|
+
var instructionParams, relayDataEncoder, svmRelayData, encodedRelayData, initInstructionParamsIx, instructions, i, offset, offsetEnd, fragment, writeInstructionParamsIx;
|
|
784
|
+
return tslib_1.__generator(this, function (_a) {
|
|
785
|
+
switch (_a.label) {
|
|
786
|
+
case 0: return [4, (0, _1.getInstructionParamsPda)(spokePool, signer.address)];
|
|
787
|
+
case 1:
|
|
788
|
+
instructionParams = _a.sent();
|
|
789
|
+
relayDataEncoder = contracts_1.SvmSpokeClient.getFillRelayParamsEncoder();
|
|
790
|
+
svmRelayData = (0, _1.toSvmRelayData)(relayData);
|
|
791
|
+
encodedRelayData = relayDataEncoder.encode({
|
|
792
|
+
relayData: svmRelayData,
|
|
793
|
+
repaymentChainId: repaymentChainId,
|
|
794
|
+
repaymentAddress: (0, _1.toAddress)(repaymentAddress),
|
|
795
|
+
});
|
|
796
|
+
initInstructionParamsIx = contracts_1.SvmSpokeClient.getInitializeInstructionParamsInstruction({
|
|
797
|
+
signer: signer,
|
|
798
|
+
instructionParams: instructionParams,
|
|
799
|
+
totalSize: encodedRelayData.length,
|
|
800
|
+
});
|
|
801
|
+
instructions = [initInstructionParamsIx];
|
|
802
|
+
for (i = 0; i <= encodedRelayData.length / maxWriteSize; ++i) {
|
|
803
|
+
offset = i * maxWriteSize;
|
|
804
|
+
offsetEnd = Math.min(offset + maxWriteSize, encodedRelayData.length);
|
|
805
|
+
fragment = encodedRelayData.slice(offset, offsetEnd);
|
|
806
|
+
writeInstructionParamsIx = contracts_1.SvmSpokeClient.getWriteInstructionParamsFragmentInstruction({
|
|
807
|
+
signer: signer,
|
|
808
|
+
instructionParams: instructionParams,
|
|
809
|
+
offset: offset,
|
|
810
|
+
fragment: fragment,
|
|
811
|
+
});
|
|
812
|
+
instructions.push(writeInstructionParamsIx);
|
|
813
|
+
}
|
|
814
|
+
return [2, instructions];
|
|
815
|
+
}
|
|
816
|
+
});
|
|
817
|
+
});
|
|
818
|
+
}
|
|
819
|
+
exports.getFillRelayViaInstructionParamsInstructions = getFillRelayViaInstructionParamsInstructions;
|
|
702
820
|
function getDepositDelegatePda(depositData, programId) {
|
|
703
821
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
704
822
|
var addrEnc, u64, u32, parts, seedHash, pda;
|