@across-protocol/sdk 4.3.33 → 4.3.34-alpha.1
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/svm/SpokeUtils.d.ts +21 -10
- package/dist/cjs/arch/svm/SpokeUtils.js +134 -27
- 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/arch/svm/utils.d.ts +2 -0
- package/dist/cjs/arch/svm/utils.js +18 -1
- package/dist/cjs/arch/svm/utils.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +38 -10
- package/dist/esm/arch/svm/SpokeUtils.js +160 -28
- 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/arch/svm/utils.d.ts +8 -0
- package/dist/esm/arch/svm/utils.js +22 -0
- package/dist/esm/arch/svm/utils.js.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/arch/svm/utils.d.ts +8 -0
- package/dist/types/arch/svm/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/arch/svm/SpokeUtils.ts +193 -22
- package/src/arch/svm/encoders.ts +86 -0
- package/src/arch/svm/index.ts +1 -0
- package/src/arch/svm/utils.ts +23 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.numberToU8a32 = exports.bigToU8a32 = exports.bigintToU8a32 = exports.getEmergencyDeleteRootBundleRootBundleId = exports.isEmergencyDeleteRootBundleMessageBody = exports.isRelayRootBundleMessageBody = exports.isDepositForBurnEvent = exports.getCCTPNoncePda = exports.simulateAndDecode = exports.createDefaultTransaction = exports.getRandomSvmAddress = exports.getSelfAuthority = exports.getEventAuthority = exports.getClaimAccountPda = exports.getInstructionParamsPda = exports.getRootBundlePda = exports.getTransferLiabilityPda = exports.getRoutePda = exports.getFillStatusPda = exports.getStatePda = exports.unwrapEventData = exports.getEventName = exports.decodeEvent = exports.parseEventData = exports.getLatestFinalizedSlotWithBlock = exports.getNearestSlotTime = exports.toAddress = exports.isDevnet = exports.SolanaVoidSigner = exports.isSolanaError = void 0;
|
|
3
|
+
exports.numberToU8a32 = exports.bigToU8a32 = exports.bigintToU8a32 = exports.toSvmRelayData = exports.getEmergencyDeleteRootBundleRootBundleId = exports.isEmergencyDeleteRootBundleMessageBody = exports.isRelayRootBundleMessageBody = exports.isDepositForBurnEvent = exports.getCCTPNoncePda = exports.simulateAndDecode = exports.createDefaultTransaction = exports.getRandomSvmAddress = exports.getSelfAuthority = exports.getEventAuthority = exports.getClaimAccountPda = exports.getInstructionParamsPda = exports.getRootBundlePda = exports.getTransferLiabilityPda = exports.getRoutePda = exports.getFillStatusPda = exports.getStatePda = exports.unwrapEventData = exports.getEventName = exports.decodeEvent = exports.parseEventData = exports.getLatestFinalizedSlotWithBlock = exports.getNearestSlotTime = exports.toAddress = exports.isDevnet = exports.SolanaVoidSigner = exports.isSolanaError = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var contracts_1 = require("@across-protocol/contracts");
|
|
6
6
|
var anchor_1 = require("@coral-xyz/anchor");
|
|
@@ -481,6 +481,23 @@ var getEmergencyDeleteRootBundleRootBundleId = function (body) {
|
|
|
481
481
|
return result.rootBundleId.toNumber();
|
|
482
482
|
};
|
|
483
483
|
exports.getEmergencyDeleteRootBundleRootBundleId = getEmergencyDeleteRootBundleRootBundleId;
|
|
484
|
+
function toSvmRelayData(relayData) {
|
|
485
|
+
return {
|
|
486
|
+
originChainId: BigInt(relayData.originChainId),
|
|
487
|
+
depositor: (0, kit_1.address)(relayData.depositor.toBase58()),
|
|
488
|
+
recipient: (0, kit_1.address)(relayData.recipient.toBase58()),
|
|
489
|
+
depositId: ethers_1.ethers.utils.arrayify(ethers_1.ethers.utils.hexZeroPad(relayData.depositId.toHexString(), 32)),
|
|
490
|
+
inputToken: (0, kit_1.address)(relayData.inputToken.toBase58()),
|
|
491
|
+
outputToken: (0, kit_1.address)(relayData.outputToken.toBase58()),
|
|
492
|
+
inputAmount: ethers_1.ethers.utils.arrayify(ethers_1.ethers.utils.hexZeroPad(relayData.inputAmount.toHexString(), 32)),
|
|
493
|
+
outputAmount: relayData.outputAmount.toBigInt(),
|
|
494
|
+
message: Uint8Array.from(Buffer.from(relayData.message.slice(2), "hex")),
|
|
495
|
+
fillDeadline: relayData.fillDeadline,
|
|
496
|
+
exclusiveRelayer: (0, kit_1.address)(relayData.exclusiveRelayer.toBase58()),
|
|
497
|
+
exclusivityDeadline: relayData.exclusivityDeadline,
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
exports.toSvmRelayData = toSvmRelayData;
|
|
484
501
|
function bigintToU8a32(n) {
|
|
485
502
|
if (n < BigInt(0) || n > ethers_1.ethers.constants.MaxUint256.toBigInt()) {
|
|
486
503
|
throw new RangeError("Value must fit in 256 bits");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/arch/svm/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/arch/svm/utils.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 } from "@solana/kit";
|
|
3
|
+
import { Account, Address, FetchAccountConfig, IAccountMeta, IInstruction, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type ReadonlyAccount } from "@solana/kit";
|
|
4
4
|
import { Logger } from "winston";
|
|
5
5
|
import { DepositWithBlock, FillStatus, FillWithBlock, RelayData } 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
|
/**
|
|
@@ -131,7 +132,25 @@ export declare function getFillRelayTx(spokePoolAddr: SvmAddress, solanaClient:
|
|
|
131
132
|
recipient: SvmAddress;
|
|
132
133
|
outputToken: SvmAddress;
|
|
133
134
|
}, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: SdkAddress): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
134
|
-
instructions: readonly
|
|
135
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
136
|
+
version: 0;
|
|
137
|
+
}>, "feePayer">>;
|
|
138
|
+
/**
|
|
139
|
+
* Creates a fill instruction with an instruction params PDA as the relayData input.
|
|
140
|
+
* @param spokePoolAddr Address of the spoke pool we're trying to fill through
|
|
141
|
+
* @param solanaClient RPC client to interact with Solana chain
|
|
142
|
+
* @param relayData RelayData instance, supplemented with destinationChainId
|
|
143
|
+
* @param signer signer associated with the relayer creating a Fill. Can be VoidSigner for gas estimation
|
|
144
|
+
* @param repaymentChainId Chain id where relayer repayment is desired
|
|
145
|
+
* @param repaymentAddress Address to which repayment will go to on repaymentChainId
|
|
146
|
+
* @returns FillRelay transaction
|
|
147
|
+
*/
|
|
148
|
+
export declare function getIPFillRelayTx(spokePoolAddr: SvmAddress, solanaClient: SVMProvider, relayData: Omit<RelayData, "recipient" | "outputToken"> & {
|
|
149
|
+
destinationChainId: number;
|
|
150
|
+
recipient: SvmAddress;
|
|
151
|
+
outputToken: SvmAddress;
|
|
152
|
+
}, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: SdkAddress): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
153
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
135
154
|
version: 0;
|
|
136
155
|
}>, "feePayer">>;
|
|
137
156
|
/**
|
|
@@ -143,10 +162,11 @@ export declare function getFillRelayTx(spokePoolAddr: SvmAddress, solanaClient:
|
|
|
143
162
|
* @param createRecipientAtaIfNeeded - Whether to create a recipient token account.
|
|
144
163
|
* @returns The fill instruction.
|
|
145
164
|
*/
|
|
146
|
-
export declare const createFillInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, fillInput: SvmSpokeClient.FillRelayInput, tokenDecimals: number, createRecipientAtaIfNeeded?: boolean) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
147
|
-
instructions: readonly
|
|
165
|
+
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<{
|
|
166
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
148
167
|
version: 0;
|
|
149
168
|
}>, "feePayer">>;
|
|
169
|
+
export declare function deserializeMessage(_message: string): AcrossPlusMessage;
|
|
150
170
|
/**
|
|
151
171
|
* Creates a deposit instruction.
|
|
152
172
|
* @param signer - The signer of the transaction.
|
|
@@ -157,7 +177,7 @@ export declare const createFillInstruction: (signer: TransactionSigner, solanaCl
|
|
|
157
177
|
* @returns The deposit instruction.
|
|
158
178
|
*/
|
|
159
179
|
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<{
|
|
160
|
-
instructions: readonly
|
|
180
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
161
181
|
version: 0;
|
|
162
182
|
}>, "feePayer">>;
|
|
163
183
|
/**
|
|
@@ -168,7 +188,7 @@ export declare const createDepositInstruction: (signer: TransactionSigner, solan
|
|
|
168
188
|
* @returns The request slow fill instruction.
|
|
169
189
|
*/
|
|
170
190
|
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<{
|
|
171
|
-
instructions: readonly
|
|
191
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
172
192
|
version: 0;
|
|
173
193
|
}>, "feePayer">>;
|
|
174
194
|
/**
|
|
@@ -184,7 +204,7 @@ export declare function getSlowFillRequestTx(spokePoolAddr: SvmAddress, solanaCl
|
|
|
184
204
|
recipient: SvmAddress;
|
|
185
205
|
outputToken: SvmAddress;
|
|
186
206
|
}, signer: TransactionSigner): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
187
|
-
instructions: readonly
|
|
207
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
188
208
|
version: 0;
|
|
189
209
|
}>, "feePayer">>;
|
|
190
210
|
/**
|
|
@@ -195,15 +215,23 @@ export declare function getSlowFillRequestTx(spokePoolAddr: SvmAddress, solanaCl
|
|
|
195
215
|
* @returns The close fill PDA instruction.
|
|
196
216
|
*/
|
|
197
217
|
export declare const createCloseFillPdaInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, fillStatusPda: Address) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
|
|
198
|
-
instructions: readonly
|
|
218
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
199
219
|
version: 0;
|
|
200
220
|
}>, "feePayer">>;
|
|
201
221
|
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<{
|
|
202
|
-
instructions: readonly
|
|
222
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
203
223
|
version: 0;
|
|
204
224
|
}>, "feePayer">>;
|
|
205
225
|
export declare function getAssociatedTokenAddress(owner: SvmAddress, mint: SvmAddress, tokenProgramId?: Address<string>): Promise<Address<string>>;
|
|
206
226
|
export declare function getRelayDataHash(relayData: RelayData, destinationChainId: number): string;
|
|
227
|
+
/**
|
|
228
|
+
* Returns a set of instructions to execute to fill a relay via instruction params.
|
|
229
|
+
* @param spokePool The program ID of the Solana spoke pool.
|
|
230
|
+
* @param relayData The relay data to write to the instruction params PDA.
|
|
231
|
+
* @param signer The transaction signer and authority of the instruction params PDA.
|
|
232
|
+
* @param maxWriteSize The maximum fragment size to write to instruction params.
|
|
233
|
+
*/
|
|
234
|
+
export declare function getFillRelayViaInstructionParamsInstructions(spokePool: Address<string>, relayData: RelayData, signer: TransactionSigner<string>, maxWriteSize?: number): Promise<IInstruction[]>;
|
|
207
235
|
/**
|
|
208
236
|
* Returns the delegate PDA for deposit.
|
|
209
237
|
*/
|
|
@@ -265,7 +293,7 @@ export declare function getAccountMetasForTokenlessMessage(solanaClient: SVMProv
|
|
|
265
293
|
* @returns The CCTP v1 receive message transaction.
|
|
266
294
|
*/
|
|
267
295
|
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<{
|
|
268
|
-
instructions: readonly
|
|
296
|
+
instructions: readonly IInstruction<string, readonly (IAccountMeta<string> | import("@solana/kit").IAccountLookupMeta<string, string>)[]>[];
|
|
269
297
|
version: 0;
|
|
270
298
|
}>, "feePayer">>;
|
|
271
299
|
/**
|
|
@@ -7,11 +7,11 @@ import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system";
|
|
|
7
7
|
import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS, fetchMint, getApproveCheckedInstruction, getCreateAssociatedTokenIdempotentInstruction, } from "@solana-program/token";
|
|
8
8
|
import { AccountRole, appendTransactionMessageInstruction, fetchEncodedAccount, fetchEncodedAccounts, getAddressEncoder, getBase64EncodedWireTransaction, getProgramDerivedAddress, getSignatureFromTransaction, getU32Encoder, getU64Encoder, pipe, signTransactionMessageWithSigners, some, } from "@solana/kit";
|
|
9
9
|
import assert from "assert";
|
|
10
|
-
import { arrayify
|
|
10
|
+
import { arrayify } from "ethers/lib/utils";
|
|
11
11
|
import { CHAIN_IDs, TOKEN_SYMBOLS_MAP } from "../../constants";
|
|
12
12
|
import { FillStatus } from "../../interfaces";
|
|
13
13
|
import { EvmAddress, SvmAddress, bs58, chainIsProd, chainIsSvm, chunk, delay, isUnsafeDepositId, keccak256, mapAsync, toAddressType, } from "../../utils";
|
|
14
|
-
import { bigToU8a32, createDefaultTransaction, getCCTPNoncePda, getEventAuthority, getFillStatusPda, getSelfAuthority, getStatePda, isDepositForBurnEvent, simulateAndDecode, toAddress, unwrapEventData, getRootBundlePda, } from "./";
|
|
14
|
+
import { bigToU8a32, createDefaultTransaction, getCCTPNoncePda, getEventAuthority, getFillStatusPda, getSelfAuthority, getStatePda, isDepositForBurnEvent, simulateAndDecode, toAddress, unwrapEventData, getRootBundlePda, getAcrossPlusMessageDecoder, getAccountMeta, toSvmRelayData, getInstructionParamsPda, } from "./";
|
|
15
15
|
import { SVM_BLOCK_NOT_AVAILABLE, SVM_SLOT_SKIPPED, isSolanaError } from "./provider";
|
|
16
16
|
import { SVMEventNames } from "./types";
|
|
17
17
|
import { getEmergencyDeleteRootBundleRootBundleId, getNearestSlotTime, isEmergencyDeleteRootBundleMessageBody, isRelayRootBundleMessageBody, } from "./utils";
|
|
@@ -461,7 +461,7 @@ export function createTokenAccountsInstruction(mint, relayer) {
|
|
|
461
461
|
*/
|
|
462
462
|
export function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymentChainId, repaymentAddress) {
|
|
463
463
|
return __awaiter(this, void 0, void 0, function () {
|
|
464
|
-
var depositor, recipient, inputToken, outputToken, exclusiveRelayer, destinationChainId, program, _relayDataHash, relayDataHash, _a, state, delegate, mint, mintInfo, _b, recipientAta, relayerAta, fillStatus, eventAuthority, svmRelayData, fillInput;
|
|
464
|
+
var depositor, recipient, inputToken, outputToken, exclusiveRelayer, destinationChainId, program, _relayDataHash, relayDataHash, _a, state, delegate, mint, mintInfo, _b, recipientAta, relayerAta, fillStatus, eventAuthority, message, svmRelayData, remainingAccounts, acrossPlusMessage_1, fillInput;
|
|
465
465
|
return __generator(this, function (_c) {
|
|
466
466
|
switch (_c.label) {
|
|
467
467
|
case 0:
|
|
@@ -488,6 +488,7 @@ export function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, r
|
|
|
488
488
|
])];
|
|
489
489
|
case 3:
|
|
490
490
|
_b = _c.sent(), recipientAta = _b[0], relayerAta = _b[1], fillStatus = _b[2], eventAuthority = _b[3];
|
|
491
|
+
message = new Uint8Array(Buffer.from(relayData.message.slice(2), "hex"));
|
|
491
492
|
svmRelayData = {
|
|
492
493
|
depositor: toAddress(depositor),
|
|
493
494
|
recipient: toAddress(recipient),
|
|
@@ -500,8 +501,18 @@ export function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, r
|
|
|
500
501
|
depositId: new Uint8Array(intToU8Array32(relayData.depositId.toNumber())),
|
|
501
502
|
fillDeadline: relayData.fillDeadline,
|
|
502
503
|
exclusivityDeadline: relayData.exclusivityDeadline,
|
|
503
|
-
message:
|
|
504
|
+
message: message,
|
|
504
505
|
};
|
|
506
|
+
remainingAccounts = [];
|
|
507
|
+
if (relayData.message !== "0x") {
|
|
508
|
+
acrossPlusMessage_1 = deserializeMessage(relayData.message);
|
|
509
|
+
// The first `remainingAccount` _must_ be the handler address.
|
|
510
|
+
// https://github.com/across-protocol/contracts/blob/3310f8dc716407a5f97ef5fd2eae63df83251f2f/programs/svm-spoke/src/utils/message_utils.rs#L36.
|
|
511
|
+
remainingAccounts.push(getAccountMeta(acrossPlusMessage_1.handler, true));
|
|
512
|
+
remainingAccounts.push.apply(remainingAccounts, acrossPlusMessage_1.accounts.map(function (account, idx) {
|
|
513
|
+
return getAccountMeta(account, idx < acrossPlusMessage_1.accounts.length - acrossPlusMessage_1.read_only_len);
|
|
514
|
+
}));
|
|
515
|
+
}
|
|
505
516
|
fillInput = {
|
|
506
517
|
signer: signer,
|
|
507
518
|
state: state,
|
|
@@ -522,7 +533,81 @@ export function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, r
|
|
|
522
533
|
};
|
|
523
534
|
// Pass createRecipientAtaIfNeeded =true to the createFillInstruction function to create the recipient token account
|
|
524
535
|
// if it doesn't exist.
|
|
525
|
-
return [2 /*return*/, createFillInstruction(signer, solanaClient, fillInput, mintInfo.data.decimals, true)];
|
|
536
|
+
return [2 /*return*/, createFillInstruction(signer, solanaClient, fillInput, svmRelayData, mintInfo.data.decimals, true, remainingAccounts)];
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Creates a fill instruction with an instruction params PDA as the relayData input.
|
|
543
|
+
* @param spokePoolAddr Address of the spoke pool we're trying to fill through
|
|
544
|
+
* @param solanaClient RPC client to interact with Solana chain
|
|
545
|
+
* @param relayData RelayData instance, supplemented with destinationChainId
|
|
546
|
+
* @param signer signer associated with the relayer creating a Fill. Can be VoidSigner for gas estimation
|
|
547
|
+
* @param repaymentChainId Chain id where relayer repayment is desired
|
|
548
|
+
* @param repaymentAddress Address to which repayment will go to on repaymentChainId
|
|
549
|
+
* @returns FillRelay transaction
|
|
550
|
+
*/
|
|
551
|
+
export function getIPFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymentChainId, repaymentAddress) {
|
|
552
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
553
|
+
var program, _relayDataHash, relayDataHash, _a, state, delegate, instructionParams, mint, mintInfo, _b, recipientAta, relayerAta, fillStatus, eventAuthority, remainingAccounts, acrossPlusMessage_2, fillInput;
|
|
554
|
+
return __generator(this, function (_c) {
|
|
555
|
+
switch (_c.label) {
|
|
556
|
+
case 0:
|
|
557
|
+
program = toAddress(spokePoolAddr);
|
|
558
|
+
_relayDataHash = getRelayDataHash(relayData, relayData.destinationChainId);
|
|
559
|
+
relayDataHash = new Uint8Array(Buffer.from(_relayDataHash.slice(2), "hex"));
|
|
560
|
+
return [4 /*yield*/, Promise.all([
|
|
561
|
+
getStatePda(program),
|
|
562
|
+
getFillRelayDelegatePda(relayDataHash, BigInt(repaymentChainId), toAddress(repaymentAddress), program),
|
|
563
|
+
getInstructionParamsPda(program, signer.address),
|
|
564
|
+
])];
|
|
565
|
+
case 1:
|
|
566
|
+
_a = _c.sent(), state = _a[0], delegate = _a[1], instructionParams = _a[2];
|
|
567
|
+
mint = toAddress(relayData.outputToken);
|
|
568
|
+
return [4 /*yield*/, getMintInfo(solanaClient, mint)];
|
|
569
|
+
case 2:
|
|
570
|
+
mintInfo = _c.sent();
|
|
571
|
+
return [4 /*yield*/, Promise.all([
|
|
572
|
+
getAssociatedTokenAddress(relayData.recipient, relayData.outputToken, mintInfo.programAddress),
|
|
573
|
+
getAssociatedTokenAddress(SvmAddress.from(signer.address), relayData.outputToken, mintInfo.programAddress),
|
|
574
|
+
getFillStatusPda(program, relayData, relayData.destinationChainId),
|
|
575
|
+
getEventAuthority(program),
|
|
576
|
+
])];
|
|
577
|
+
case 3:
|
|
578
|
+
_b = _c.sent(), recipientAta = _b[0], relayerAta = _b[1], fillStatus = _b[2], eventAuthority = _b[3];
|
|
579
|
+
remainingAccounts = [];
|
|
580
|
+
if (relayData.message !== "0x") {
|
|
581
|
+
acrossPlusMessage_2 = deserializeMessage(relayData.message);
|
|
582
|
+
// The first `remainingAccount` _must_ be the handler address.
|
|
583
|
+
// https://github.com/across-protocol/contracts/blob/3310f8dc716407a5f97ef5fd2eae63df83251f2f/programs/svm-spoke/src/utils/message_utils.rs#L36.
|
|
584
|
+
remainingAccounts.push(getAccountMeta(acrossPlusMessage_2.handler, true));
|
|
585
|
+
remainingAccounts.push.apply(remainingAccounts, acrossPlusMessage_2.accounts.map(function (account, idx) {
|
|
586
|
+
return getAccountMeta(account, idx < acrossPlusMessage_2.accounts.length - acrossPlusMessage_2.read_only_len);
|
|
587
|
+
}));
|
|
588
|
+
}
|
|
589
|
+
fillInput = {
|
|
590
|
+
signer: signer,
|
|
591
|
+
state: state,
|
|
592
|
+
delegate: delegate,
|
|
593
|
+
mint: mint,
|
|
594
|
+
relayerTokenAccount: relayerAta,
|
|
595
|
+
recipientTokenAccount: recipientAta,
|
|
596
|
+
fillStatus: fillStatus,
|
|
597
|
+
tokenProgram: mintInfo.programAddress,
|
|
598
|
+
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
|
|
599
|
+
systemProgram: SYSTEM_PROGRAM_ADDRESS,
|
|
600
|
+
eventAuthority: eventAuthority,
|
|
601
|
+
program: program,
|
|
602
|
+
instructionParams: instructionParams,
|
|
603
|
+
relayHash: relayDataHash,
|
|
604
|
+
relayData: null,
|
|
605
|
+
repaymentChainId: null,
|
|
606
|
+
repaymentAddress: null,
|
|
607
|
+
};
|
|
608
|
+
// Pass createRecipientAtaIfNeeded =true to the createFillInstruction function to create the recipient token account
|
|
609
|
+
// if it doesn't exist.
|
|
610
|
+
return [2 /*return*/, createFillInstruction(signer, solanaClient, fillInput, { outputAmount: relayData.outputAmount.toBigInt(), recipient: toAddress(relayData.recipient) }, mintInfo.data.decimals, true, remainingAccounts)];
|
|
526
611
|
}
|
|
527
612
|
});
|
|
528
613
|
});
|
|
@@ -536,21 +621,23 @@ export function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, r
|
|
|
536
621
|
* @param createRecipientAtaIfNeeded - Whether to create a recipient token account.
|
|
537
622
|
* @returns The fill instruction.
|
|
538
623
|
*/
|
|
539
|
-
export var createFillInstruction = function (signer, solanaClient, fillInput, tokenDecimals, createRecipientAtaIfNeeded) {
|
|
624
|
+
export var createFillInstruction = function (signer, solanaClient, fillInput, relayData, tokenDecimals, createRecipientAtaIfNeeded, remainingAccounts) {
|
|
540
625
|
if (createRecipientAtaIfNeeded === void 0) { createRecipientAtaIfNeeded = true; }
|
|
626
|
+
if (remainingAccounts === void 0) { remainingAccounts = []; }
|
|
541
627
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
542
628
|
var mintInfo, approveIx, getCreateAssociatedTokenIdempotentIx, createFillIx, _a;
|
|
543
|
-
|
|
544
|
-
|
|
629
|
+
var _b;
|
|
630
|
+
return __generator(this, function (_c) {
|
|
631
|
+
switch (_c.label) {
|
|
545
632
|
case 0: return [4 /*yield*/, getMintInfo(solanaClient, fillInput.mint)];
|
|
546
633
|
case 1:
|
|
547
|
-
mintInfo =
|
|
634
|
+
mintInfo = _c.sent();
|
|
548
635
|
approveIx = getApproveCheckedInstruction({
|
|
549
636
|
source: fillInput.relayerTokenAccount,
|
|
550
637
|
mint: fillInput.mint,
|
|
551
638
|
delegate: fillInput.delegate,
|
|
552
639
|
owner: fillInput.signer,
|
|
553
|
-
amount:
|
|
640
|
+
amount: relayData.outputAmount,
|
|
554
641
|
decimals: tokenDecimals,
|
|
555
642
|
}, {
|
|
556
643
|
programAddress: mintInfo.programAddress,
|
|
@@ -558,7 +645,7 @@ export var createFillInstruction = function (signer, solanaClient, fillInput, to
|
|
|
558
645
|
getCreateAssociatedTokenIdempotentIx = function () {
|
|
559
646
|
return getCreateAssociatedTokenIdempotentInstruction({
|
|
560
647
|
payer: signer,
|
|
561
|
-
owner:
|
|
648
|
+
owner: relayData.recipient,
|
|
562
649
|
mint: fillInput.mint,
|
|
563
650
|
ata: fillInput.recipientTokenAccount,
|
|
564
651
|
systemProgram: SYSTEM_PROGRAM_ADDRESS,
|
|
@@ -566,9 +653,11 @@ export var createFillInstruction = function (signer, solanaClient, fillInput, to
|
|
|
566
653
|
});
|
|
567
654
|
};
|
|
568
655
|
createFillIx = SvmSpokeClient.getFillRelayInstruction(fillInput);
|
|
656
|
+
// Add remaining accounts.
|
|
657
|
+
(_b = createFillIx.accounts).push.apply(_b, remainingAccounts);
|
|
569
658
|
_a = pipe;
|
|
570
659
|
return [4 /*yield*/, createDefaultTransaction(solanaClient, signer)];
|
|
571
|
-
case 2: return [2 /*return*/, _a.apply(void 0, [
|
|
660
|
+
case 2: return [2 /*return*/, _a.apply(void 0, [_c.sent(), function (tx) {
|
|
572
661
|
return createRecipientAtaIfNeeded ? appendTransactionMessageInstruction(getCreateAssociatedTokenIdempotentIx(), tx) : tx;
|
|
573
662
|
},
|
|
574
663
|
function (tx) { return appendTransactionMessageInstruction(approveIx, tx); },
|
|
@@ -577,6 +666,13 @@ export var createFillInstruction = function (signer, solanaClient, fillInput, to
|
|
|
577
666
|
});
|
|
578
667
|
});
|
|
579
668
|
};
|
|
669
|
+
export function deserializeMessage(_message) {
|
|
670
|
+
var message = new Uint8Array(Buffer.from(_message.slice(2), "hex"));
|
|
671
|
+
// Add remaining accounts if the relayData has a non-empty message.
|
|
672
|
+
// @dev ! since in the context of creating a `fillRelayTx`, `relayData` must be defined.
|
|
673
|
+
var acrossPlusMessageDecoder = getAcrossPlusMessageDecoder();
|
|
674
|
+
return acrossPlusMessageDecoder.decode(message);
|
|
675
|
+
}
|
|
580
676
|
/**
|
|
581
677
|
* Creates a deposit instruction.
|
|
582
678
|
* @param signer - The signer of the transaction.
|
|
@@ -771,24 +867,18 @@ export function getAssociatedTokenAddress(owner, mint, tokenProgramId) {
|
|
|
771
867
|
});
|
|
772
868
|
}
|
|
773
869
|
export function getRelayDataHash(relayData, destinationChainId) {
|
|
774
|
-
var addressEncoder = getAddressEncoder();
|
|
775
|
-
var uint64Encoder = getU64Encoder();
|
|
776
|
-
var uint32Encoder = getU32Encoder();
|
|
777
870
|
assert(relayData.message.startsWith("0x"), "Message must be a hex string");
|
|
778
|
-
var
|
|
871
|
+
var uint64Encoder = getU64Encoder();
|
|
872
|
+
var svmRelayData = toSvmRelayData(relayData);
|
|
873
|
+
var relayDataEncoder = SvmSpokeClient.getRelayDataEncoder();
|
|
874
|
+
var encodedRelayData = relayDataEncoder.encode(svmRelayData);
|
|
875
|
+
var encodedMessage = Buffer.from(relayData.message.slice(2), "hex");
|
|
876
|
+
// Reformat the encoded relay data the same way it is done in the SvmSpoke:
|
|
877
|
+
// https://github.com/across-protocol/contracts/blob/3310f8dc716407a5f97ef5fd2eae63df83251f2f/programs/svm-spoke/src/utils/merkle_proof_utils.rs#L5
|
|
878
|
+
var messageOffset = encodedRelayData.length - 4 - encodedMessage.length;
|
|
779
879
|
var contentToHash = Buffer.concat([
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
encodeAddress(relayData.exclusiveRelayer),
|
|
783
|
-
encodeAddress(relayData.inputToken),
|
|
784
|
-
encodeAddress(relayData.outputToken),
|
|
785
|
-
arrayify(hexZeroPad(hexlify(relayData.inputAmount), 32)),
|
|
786
|
-
Uint8Array.from(uint64Encoder.encode(BigInt(relayData.outputAmount.toString()))),
|
|
787
|
-
Uint8Array.from(uint64Encoder.encode(BigInt(relayData.originChainId.toString()))),
|
|
788
|
-
arrayify(hexZeroPad(hexlify(relayData.depositId), 32)),
|
|
789
|
-
Uint8Array.from(uint32Encoder.encode(relayData.fillDeadline)),
|
|
790
|
-
Uint8Array.from(uint32Encoder.encode(relayData.exclusivityDeadline)),
|
|
791
|
-
hashNonEmptyMessage(Buffer.from(arrayify(relayData.message))),
|
|
880
|
+
encodedRelayData.slice(0, messageOffset),
|
|
881
|
+
hashNonEmptyMessage(encodedMessage),
|
|
792
882
|
Uint8Array.from(uint64Encoder.encode(BigInt(destinationChainId))),
|
|
793
883
|
]);
|
|
794
884
|
return keccak256(contentToHash);
|
|
@@ -872,6 +962,48 @@ function fetchBatchFillStatusFromPdaAccounts(provider, fillStatusPdas, relayData
|
|
|
872
962
|
});
|
|
873
963
|
});
|
|
874
964
|
}
|
|
965
|
+
/**
|
|
966
|
+
* Returns a set of instructions to execute to fill a relay via instruction params.
|
|
967
|
+
* @param spokePool The program ID of the Solana spoke pool.
|
|
968
|
+
* @param relayData The relay data to write to the instruction params PDA.
|
|
969
|
+
* @param signer The transaction signer and authority of the instruction params PDA.
|
|
970
|
+
* @param maxWriteSize The maximum fragment size to write to instruction params.
|
|
971
|
+
*/
|
|
972
|
+
export function getFillRelayViaInstructionParamsInstructions(spokePool, relayData, signer, maxWriteSize) {
|
|
973
|
+
if (maxWriteSize === void 0) { maxWriteSize = 450; }
|
|
974
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
975
|
+
var instructionParams, relayDataEncoder, svmRelayData, encodedRelayData, initInstructionParamsIx, instructions, i, offset, offsetEnd, fragment, writeInstructionParamsIx;
|
|
976
|
+
return __generator(this, function (_a) {
|
|
977
|
+
switch (_a.label) {
|
|
978
|
+
case 0: return [4 /*yield*/, getInstructionParamsPda(spokePool, signer.address)];
|
|
979
|
+
case 1:
|
|
980
|
+
instructionParams = _a.sent();
|
|
981
|
+
relayDataEncoder = SvmSpokeClient.getRelayDataEncoder();
|
|
982
|
+
svmRelayData = toSvmRelayData(relayData);
|
|
983
|
+
encodedRelayData = relayDataEncoder.encode(svmRelayData);
|
|
984
|
+
initInstructionParamsIx = SvmSpokeClient.getInitializeInstructionParamsInstruction({
|
|
985
|
+
signer: signer,
|
|
986
|
+
instructionParams: instructionParams,
|
|
987
|
+
totalSize: encodedRelayData.length,
|
|
988
|
+
});
|
|
989
|
+
instructions = [initInstructionParamsIx];
|
|
990
|
+
for (i = 0; i <= encodedRelayData.length / maxWriteSize; ++i) {
|
|
991
|
+
offset = i * maxWriteSize;
|
|
992
|
+
offsetEnd = Math.min(offset + maxWriteSize, encodedRelayData.length);
|
|
993
|
+
fragment = encodedRelayData.slice(offset, offsetEnd);
|
|
994
|
+
writeInstructionParamsIx = SvmSpokeClient.getWriteInstructionParamsFragmentInstruction({
|
|
995
|
+
signer: signer,
|
|
996
|
+
instructionParams: instructionParams,
|
|
997
|
+
offset: offset,
|
|
998
|
+
fragment: fragment,
|
|
999
|
+
});
|
|
1000
|
+
instructions.push(writeInstructionParamsIx);
|
|
1001
|
+
}
|
|
1002
|
+
return [2 /*return*/, instructions];
|
|
1003
|
+
}
|
|
1004
|
+
});
|
|
1005
|
+
});
|
|
1006
|
+
}
|
|
875
1007
|
/**
|
|
876
1008
|
* Returns the delegate PDA for deposit.
|
|
877
1009
|
*/
|