@across-protocol/sdk 4.3.104 → 4.3.106-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cjs/arch/svm/SpokeUtils.d.ts +8 -1
  2. package/dist/cjs/arch/svm/SpokeUtils.js +26 -3
  3. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  4. package/dist/cjs/arch/svm/encoders.d.ts +1 -0
  5. package/dist/cjs/arch/svm/encoders.js +4 -0
  6. package/dist/cjs/arch/svm/encoders.js.map +1 -1
  7. package/dist/cjs/arch/svm/eventsClient.js +9 -11
  8. package/dist/cjs/arch/svm/eventsClient.js.map +1 -1
  9. package/dist/cjs/providers/solana/utils.d.ts +13 -0
  10. package/dist/cjs/providers/solana/utils.js.map +1 -1
  11. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
  12. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +77 -27
  13. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  14. package/dist/esm/arch/svm/SpokeUtils.d.ts +27 -1
  15. package/dist/esm/arch/svm/SpokeUtils.js +44 -3
  16. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  17. package/dist/esm/arch/svm/encoders.d.ts +1 -0
  18. package/dist/esm/arch/svm/encoders.js +3 -0
  19. package/dist/esm/arch/svm/encoders.js.map +1 -1
  20. package/dist/esm/arch/svm/eventsClient.js +10 -12
  21. package/dist/esm/arch/svm/eventsClient.js.map +1 -1
  22. package/dist/esm/providers/solana/utils.d.ts +13 -0
  23. package/dist/esm/providers/solana/utils.js.map +1 -1
  24. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
  25. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +82 -31
  26. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  27. package/dist/types/arch/svm/SpokeUtils.d.ts +27 -1
  28. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
  29. package/dist/types/arch/svm/encoders.d.ts +1 -0
  30. package/dist/types/arch/svm/encoders.d.ts.map +1 -1
  31. package/dist/types/arch/svm/eventsClient.d.ts.map +1 -1
  32. package/dist/types/providers/solana/utils.d.ts +13 -0
  33. package/dist/types/providers/solana/utils.d.ts.map +1 -1
  34. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
  35. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -1
  36. package/package.json +1 -1
  37. package/src/arch/svm/SpokeUtils.ts +50 -1
  38. package/src/arch/svm/encoders.ts +4 -0
  39. package/src/arch/svm/eventsClient.ts +3 -4
  40. package/src/providers/solana/utils.ts +14 -0
  41. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +80 -5
@@ -1,11 +1,11 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
1
+ import { __assign, __awaiter, __generator, __spreadArray } from "tslib";
2
2
  import assert from "assert";
3
- import { getComputeUnitEstimateForTransactionMessageFactory, fetchEncodedAccount, isSome, } from "@solana/kit";
4
- import { SolanaVoidSigner, getFillRelayTx, toAddress, getAssociatedTokenAddress } from "../../arch/svm";
3
+ import { getComputeUnitEstimateForTransactionMessageFactory, fetchEncodedAccount, isSome, pipe, appendTransactionMessageInstruction, } from "@solana/kit";
4
+ import { SolanaVoidSigner, getFillRelayTx, getIPFillRelayTx, getFillRelayViaInstructionParamsInstructions, toAddress, createDefaultTransaction, getAssociatedTokenAddress, isSVMFillTooLarge, } from "../../arch/svm";
5
5
  import { Coingecko } from "../../coingecko";
6
6
  import { CHAIN_IDs } from "../../constants";
7
7
  import { getGasPriceEstimate } from "../../gasPriceOracle";
8
- import { toBN } from "../../utils";
8
+ import { toBN, mapAsync } from "../../utils";
9
9
  import { getDefaultRelayer } from "../relayFeeCalculator";
10
10
  import { TOKEN_PROGRAM_ADDRESS } from "@solana-program/token";
11
11
  import { TOKEN_2022_PROGRAM_ADDRESS, getTokenSize, fetchMint } from "@solana-program/token-2022";
@@ -52,11 +52,11 @@ var SvmQuery = /** @class */ (function () {
52
52
  */
53
53
  SvmQuery.prototype.getGasCosts = function (relayData_1) {
54
54
  return __awaiter(this, arguments, void 0, function (relayData, relayer, options) {
55
- var destinationChainId, recipient, outputToken, exclusiveRelayer, _a, repaymentChainId, repaymentAddress, fillRelayTx, _b, computeUnitsConsumed, gasPriceEstimate, tokenAccountInfo, _c, _d, _e, tokenOwner, recipientAta, encodedAta, gasPrice, tokenGasCost, extensions, mint, tokenAccountSize, rentCostInLamports;
55
+ var destinationChainId, recipient, outputToken, exclusiveRelayer, _a, repaymentChainId, repaymentAddress, _fillRelayTx, fillTooLarge, fillRelayTx, _b, _c, _computeUnitsConsumed, gasPriceEstimate, tokenAccountInfo, computeUnitsConsumed, tokenOwner, recipientAta, encodedAta, gasPrice, tokenGasCost, extensions, mint, tokenAccountSize, rentCostInLamports;
56
56
  if (relayer === void 0) { relayer = getDefaultRelayer(relayData.destinationChainId); }
57
57
  if (options === void 0) { options = {}; }
58
- return __generator(this, function (_f) {
59
- switch (_f.label) {
58
+ return __generator(this, function (_d) {
59
+ switch (_d.label) {
60
60
  case 0:
61
61
  destinationChainId = relayData.destinationChainId, recipient = relayData.recipient, outputToken = relayData.outputToken, exclusiveRelayer = relayData.exclusiveRelayer;
62
62
  assert(recipient.isSVM(), "getGasCosts: recipient not an SVM address (".concat(recipient, ")"));
@@ -66,48 +66,59 @@ var SvmQuery = /** @class */ (function () {
66
66
  _a = [destinationChainId, relayer], repaymentChainId = _a[0], repaymentAddress = _a[1];
67
67
  return [4 /*yield*/, this.getFillRelayTx(__assign(__assign({}, relayData), { recipient: recipient, outputToken: outputToken, exclusiveRelayer: exclusiveRelayer }), SolanaVoidSigner(relayer.toBase58()), repaymentChainId, repaymentAddress)];
68
68
  case 1:
69
- fillRelayTx = _f.sent();
70
- _d = (_c = Promise).all;
71
- _e = toBN;
72
- return [4 /*yield*/, this.computeUnitEstimator(fillRelayTx)];
73
- case 2: return [4 /*yield*/, _d.apply(_c, [[
74
- _e.apply(void 0, [_f.sent()]),
69
+ _fillRelayTx = _d.sent();
70
+ fillTooLarge = isSVMFillTooLarge(_fillRelayTx);
71
+ if (!fillTooLarge.tooLarge) return [3 /*break*/, 3];
72
+ return [4 /*yield*/, this.getFillRelayTx(__assign(__assign({}, relayData), { recipient: recipient, outputToken: outputToken, exclusiveRelayer: exclusiveRelayer, message: "0x" }), SolanaVoidSigner(relayer.toBase58()), repaymentChainId, repaymentAddress)];
73
+ case 2:
74
+ _b = _d.sent();
75
+ return [3 /*break*/, 4];
76
+ case 3:
77
+ _b = _fillRelayTx;
78
+ _d.label = 4;
79
+ case 4:
80
+ fillRelayTx = _b;
81
+ return [4 /*yield*/, Promise.all([
82
+ fillTooLarge.tooLarge
83
+ ? this.estimateComputeUnits(__assign(__assign({}, relayData), { recipient: recipient, outputToken: outputToken, exclusiveRelayer: exclusiveRelayer }), relayer, repaymentChainId, repaymentAddress)
84
+ : this.computeUnitEstimator(fillRelayTx),
75
85
  getGasPriceEstimate(this.provider, {
76
86
  unsignedTx: fillRelayTx,
77
87
  baseFeeMultiplier: options.baseFeeMultiplier,
78
88
  priorityFeeMultiplier: options.priorityFeeMultiplier,
79
89
  }),
80
- this.provider.getAccountInfo(toAddress(outputToken), { encoding: "base58" }).send()
81
- ]])];
82
- case 3:
83
- _b = _f.sent(), computeUnitsConsumed = _b[0], gasPriceEstimate = _b[1], tokenAccountInfo = _b[2];
90
+ this.provider.getAccountInfo(toAddress(outputToken), { encoding: "base58" }).send(),
91
+ ])];
92
+ case 5:
93
+ _c = _d.sent(), _computeUnitsConsumed = _c[0], gasPriceEstimate = _c[1], tokenAccountInfo = _c[2];
94
+ computeUnitsConsumed = toBN(_computeUnitsConsumed);
84
95
  tokenOwner = tokenAccountInfo.value.owner;
85
96
  assert(tokenOwner === TOKEN_2022_PROGRAM_ADDRESS || tokenOwner === TOKEN_PROGRAM_ADDRESS, "".concat(outputToken, " has invalid token account owner ").concat(tokenOwner, "."));
86
97
  return [4 /*yield*/, getAssociatedTokenAddress(recipient, outputToken, tokenOwner)];
87
- case 4:
88
- recipientAta = _f.sent();
98
+ case 6:
99
+ recipientAta = _d.sent();
89
100
  return [4 /*yield*/, fetchEncodedAccount(this.provider, recipientAta)];
90
- case 5:
91
- encodedAta = _f.sent();
101
+ case 7:
102
+ encodedAta = _d.sent();
92
103
  gasPrice = gasPriceEstimate.baseFee.add(gasPriceEstimate.microLamportsPerComputeUnit.mul(computeUnitsConsumed).div(toBN(1000000)) // 1_000_000 microLamports/lamport.
93
104
  );
94
105
  tokenGasCost = gasPrice;
95
- if (!!encodedAta.exists) return [3 /*break*/, 9];
106
+ if (!!encodedAta.exists) return [3 /*break*/, 11];
96
107
  extensions = undefined;
97
- if (!(tokenOwner === TOKEN_2022_PROGRAM_ADDRESS)) return [3 /*break*/, 7];
108
+ if (!(tokenOwner === TOKEN_2022_PROGRAM_ADDRESS)) return [3 /*break*/, 9];
98
109
  return [4 /*yield*/, fetchMint(this.provider, toAddress(outputToken))];
99
- case 6:
100
- mint = _f.sent();
110
+ case 8:
111
+ mint = _d.sent();
101
112
  extensions = isSome(mint.data.extensions) ? mint.data.extensions.value : undefined;
102
- _f.label = 7;
103
- case 7:
113
+ _d.label = 9;
114
+ case 9:
104
115
  tokenAccountSize = getTokenSize(extensions);
105
116
  return [4 /*yield*/, this.provider.getMinimumBalanceForRentExemption(BigInt(tokenAccountSize)).send()];
106
- case 8:
107
- rentCostInLamports = _f.sent();
117
+ case 10:
118
+ rentCostInLamports = _d.sent();
108
119
  tokenGasCost = tokenGasCost.add(toBN(Number(rentCostInLamports)));
109
- _f.label = 9;
110
- case 9: return [2 /*return*/, {
120
+ _d.label = 11;
121
+ case 11: return [2 /*return*/, {
111
122
  nativeGasCost: computeUnitsConsumed,
112
123
  tokenGasCost: tokenGasCost,
113
124
  gasPrice: gasPrice,
@@ -203,6 +214,46 @@ var SvmQuery = /** @class */ (function () {
203
214
  throw new Error("".concat(tokenSymbol, " does not exist in mapping"));
204
215
  return this.symbolMapping[tokenSymbol].decimals;
205
216
  };
217
+ // The fill is too large; we need to simulate the transaction in a bundle.
218
+ SvmQuery.prototype.estimateComputeUnits = function (relayData, relayer, repaymentChainId, repaymentAddress) {
219
+ return __awaiter(this, void 0, void 0, function () {
220
+ var provider, spokePoolAddr, voidSigner, _a, instructionParamsIxs, fillRelayTx, instructionParamsTxs, simulateBundleResponse;
221
+ var _this = this;
222
+ return __generator(this, function (_b) {
223
+ switch (_b.label) {
224
+ case 0:
225
+ provider = this.provider;
226
+ spokePoolAddr = toAddress(this.spokePool);
227
+ voidSigner = SolanaVoidSigner(relayer.toBase58());
228
+ return [4 /*yield*/, Promise.all([
229
+ getFillRelayViaInstructionParamsInstructions(spokePoolAddr, relayData, repaymentChainId, repaymentAddress, voidSigner),
230
+ getIPFillRelayTx(this.spokePool, provider, relayData, voidSigner, repaymentChainId, repaymentAddress),
231
+ ])];
232
+ case 1:
233
+ _a = _b.sent(), instructionParamsIxs = _a[0], fillRelayTx = _a[1];
234
+ return [4 /*yield*/, mapAsync(instructionParamsIxs, function (ix) { return __awaiter(_this, void 0, void 0, function () {
235
+ var _a;
236
+ return __generator(this, function (_b) {
237
+ switch (_b.label) {
238
+ case 0:
239
+ _a = pipe;
240
+ return [4 /*yield*/, createDefaultTransaction(provider, voidSigner)];
241
+ case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent(), function (tx) {
242
+ return appendTransactionMessageInstruction(ix, tx);
243
+ }])];
244
+ }
245
+ });
246
+ }); })];
247
+ case 2:
248
+ instructionParamsTxs = _b.sent();
249
+ return [4 /*yield*/, provider.simulateBundle(__spreadArray(__spreadArray([], instructionParamsTxs, true), [fillRelayTx], false)).send()];
250
+ case 3:
251
+ simulateBundleResponse = _b.sent();
252
+ return [2 /*return*/, simulateBundleResponse.result.unitsConsumed];
253
+ }
254
+ });
255
+ });
256
+ };
206
257
  return SvmQuery;
207
258
  }());
208
259
  export { SvmQuery };
@@ -1 +1 @@
1
- {"version":3,"file":"svmQuery.js","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"svmQuery.js","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { MessageTransmitterClient, SvmSpokeClient } from "@across-protocol/contracts";
2
2
  import { Mint } from "@solana-program/token";
3
- import { Account, Address, FetchAccountConfig, IAccountMeta, IInstruction, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type ReadonlyAccount, type Commitment } from "@solana/kit";
3
+ import { Account, Address, FetchAccountConfig, IAccountMeta, IInstruction, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner, type WritableAccount, type ReadonlyAccount, type Commitment, type CompilableTransactionMessage } 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";
@@ -12,6 +12,7 @@ import { AttestedCCTPMessage, SVMProvider, LatestBlockhash } from "./types";
12
12
  * and choose 400 to ensure that the most slots get included in our ranges
13
13
  */
14
14
  export declare const SLOT_DURATION_MS = 400;
15
+ export declare const SOLANA_TX_SIZE_LIMIT = 1232;
15
16
  type ProtoFill = Omit<RelayData, "recipient" | "outputToken"> & {
16
17
  destinationChainId: number;
17
18
  recipient: SvmAddress;
@@ -240,6 +241,8 @@ export declare function getRelayDataHash(relayData: RelayData & {
240
241
  * Returns a set of instructions to execute to fill a relay via instruction params.
241
242
  * @param spokePool The program ID of the Solana spoke pool.
242
243
  * @param relayData The relay data to write to the instruction params PDA.
244
+ * @param repaymentChainId: The chain ID to take repayment.
245
+ * @param repaymentAddress: The address to receive repayment on the specified repayment chain.
243
246
  * @param signer The transaction signer and authority of the instruction params PDA.
244
247
  * @param maxWriteSize The maximum fragment size to write to instruction params.
245
248
  */
@@ -306,6 +309,29 @@ export declare function getAccountMetasForTokenlessMessage(solanaClient: SVMProv
306
309
  * @param messageTransmitterAddress The message transmitter address.
307
310
  */
308
311
  export declare function getCCTPDepositAccounts(hubChainId: number, cctpDestinationDomainId: number, tokenMessengerMinterAddress: Address, messageTransmitterAddress: Address): Promise<CCTPDepositAccounts>;
312
+ /**
313
+ * Returns true if the input deposit's corresponding relay data would result in a transaction size
314
+ * that is larger than the Solana transaction size limit.
315
+ * @param fillRelayTx The compilable fill relay transaction to check.
316
+ * @returns Object containing a boolean if the input deposit requires a multipart fill, false otherwise and
317
+ * the number of bytes in the serialized transaction.
318
+ */
319
+ export declare function isSVMFillTooLarge(fillRelayTx: CompilableTransactionMessage): {
320
+ tooLarge: boolean;
321
+ sizeBytes: number;
322
+ };
323
+ /**
324
+ * Returns the byte size of a base64 transaction.
325
+ * @param base64TxString base64 serialized Solana transaction.
326
+ * @returns The number of bytes in the transaction.
327
+ */
328
+ export declare function base64StrToByteSize(base64TxString: string): number;
329
+ /**
330
+ * Returns the size of the fill relay transaction using the input relayData.
331
+ * @param fillTx The compilable fill relay transaction.
332
+ * @returns The number of bytes in the serialized fillRelay transaction.
333
+ */
334
+ export declare function calculateFillSizeBytes(fillTx: CompilableTransactionMessage): number;
309
335
  /**
310
336
  * Returns the CCTP v1 receive message transaction.
311
337
  * @param solanaClient The Solana client.
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/SpokeUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/SpokeUtils.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export type CompiledIx = {
14
14
  export declare function getAcrossPlusMessageEncoder(): Encoder<AcrossPlusMessage>;
15
15
  export declare function getAcrossPlusMessageDecoder(): Decoder<AcrossPlusMessage>;
16
16
  export declare function getHandlerMessageEncoder(): Encoder<Array<CompiledIx>>;
17
+ export declare function getHandlerMessageDecoder(): Decoder<Array<CompiledIx>>;
17
18
  export declare function getCompiledIxEncoder(): Encoder<CompiledIx>;
18
19
  export declare function getCompiledIxDecoder(): Decoder<CompiledIx>;
19
20
  export declare function getAccountMeta(value: Address, isWritable: boolean): WritableAccount | ReadonlyAccount;
@@ -1 +1 @@
1
- {"version":3,"file":"encoders.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/encoders.ts"],"names":[],"mappings":"AAAA,OAAO,EAkBL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,eAAe,EAAE,kBAAkB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAQxE;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAQxE;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAErE;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAM1D;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAM1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,CAKrG"}
1
+ {"version":3,"file":"encoders.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/encoders.ts"],"names":[],"mappings":"AAAA,OAAO,EAkBL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACzB,eAAe,EAAE,kBAAkB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,EAAE,kBAAkB,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAQxE;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAQxE;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAErE;AAED,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAErE;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAM1D;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,UAAU,CAAC,CAM1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,CAKrG"}
@@ -1 +1 @@
1
- {"version":3,"file":"eventsClient.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/eventsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAEL,OAAO,EACP,UAAU,EAEV,0BAA0B,EAE1B,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAW,eAAe,EAAQ,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAahF,KAAK,6BAA6B,GAAG,UAAU,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAI1G,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa,CAAC,CAAC;AAC/F,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAElD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,GAAG,CAAM;IAEjB;;OAEG;gBACS,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG;IAOjF;;OAEG;WACiB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;WAOrD,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC;IASzG;;;;;;;;OAQG;IACU,WAAW,CACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,6BAAwE,GAChF,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3B;;;;;;;;OAQG;IACU,yBAAyB,CACpC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,6BAAwE,GAChF,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3B;;;;;;;;OAQG;YACW,cAAc;IAsD5B;;;;;;OAMG;IACG,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,GAAE,UAAwB;iBAef,OAAO;cAAQ,OAAO;cAAQ,MAAM;;IAN/G;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;;;;;;OAOG;IACU,6BAA6B,CACxC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,EACtB,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,yBAAyB,EAAE,GAAG,SAAS,CAAC;IAsDnD;;;;;;OAMG;IACU,0BAA0B,CACrC,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,SAAS,EACtB,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAuDzC,iBAAiB,IAAI,OAAO;IAI5B,MAAM,IAAI,WAAW;CAG7B"}
1
+ {"version":3,"file":"eventsClient.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/eventsClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGxC,OAAO,EAEL,OAAO,EACP,UAAU,EAEV,0BAA0B,EAE1B,SAAS,EACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAW,eAAe,EAAQ,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAahF,KAAK,6BAA6B,GAAG,UAAU,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAI1G,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,aAAa,CAAC,CAAC;AAC/F,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAElD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,GAAG,CAAM;IAEjB;;OAEG;gBACS,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG;IAOjF;;OAEG;WACiB,MAAM,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;WAOrD,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC;IASzG;;;;;;;;OAQG;IACU,WAAW,CACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,6BAAwE,GAChF,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3B;;;;;;;;OAQG;IACU,yBAAyB,CACpC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,OAAO,EACvB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,6BAAwE,GAChF,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3B;;;;;;;;OAQG;YACW,cAAc;IAsD5B;;;;;;OAMG;IACG,uBAAuB,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,GAAE,UAAwB;iBAcd,OAAO;cAAQ,OAAO;cAAQ,MAAM;;IANhH;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAiC1B;;;;;;;OAOG;IACU,6BAA6B,CACxC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,SAAS,EACtB,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,yBAAyB,EAAE,GAAG,SAAS,CAAC;IAsDnD;;;;;;OAMG;IACU,0BAA0B,CACrC,kBAAkB,EAAE,MAAM,EAC1B,WAAW,EAAE,SAAS,EACtB,UAAU,GAAE,UAAwB,GACnC,OAAO,CAAC,sBAAsB,EAAE,GAAG,SAAS,CAAC;IAuDzC,iBAAiB,IAAI,OAAO;IAI5B,MAAM,IAAI,WAAW;CAG7B"}
@@ -1,4 +1,5 @@
1
1
  import { RpcTransport } from "@solana/rpc-spec";
2
+ import { CompilableTransactionMessage, SolanaRpcApi } from "@solana/kit";
2
3
  /**
3
4
  * This is the type we pass to define a Solana RPC request "task".
4
5
  */
@@ -7,6 +8,18 @@ export interface SolanaRateLimitTask {
7
8
  resolve: (result: unknown) => void;
8
9
  reject: (err: unknown) => void;
9
10
  }
11
+ export type SolanaBundleSimulation = {
12
+ result: {
13
+ unitsConsumed: number;
14
+ returnData: {
15
+ programId: string;
16
+ data: string;
17
+ };
18
+ };
19
+ };
20
+ export interface JitoInterface extends SolanaRpcApi {
21
+ simulateBundle(transactions: CompilableTransactionMessage[]): SolanaBundleSimulation;
22
+ }
10
23
  /**
11
24
  * Determine whether a Solana RPC error indicates an unrecoverable error that should not be retried.
12
25
  * @param method RPC method name.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAIlC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAe3E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGzE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAElC,OAAO,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IAIlC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAGD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACjD,CAAC;CACH,CAAC;AAGF,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,cAAc,CAAC,YAAY,EAAE,4BAA4B,EAAE,GAAG,sBAAsB,CAAC;CACtF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAe3E"}
@@ -91,5 +91,11 @@ export declare class SvmQuery implements QueryInterface {
91
91
  * @returns The number of decimals of precision for the corresponding tokenSymbol
92
92
  */
93
93
  getTokenDecimals(tokenSymbol: string): number;
94
+ estimateComputeUnits(relayData: RelayData & {
95
+ destinationChainId: number;
96
+ recipient: SvmAddress;
97
+ outputToken: SvmAddress;
98
+ exclusiveRelayer: SvmAddress;
99
+ }, relayer: SvmAddress, repaymentChainId: number, repaymentAddress: SvmAddress): Promise<number>;
94
100
  }
95
101
  //# sourceMappingURL=svmQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"svmQuery.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAGlB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAA0E,MAAM,gBAAgB,CAAC;AAIrH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAQ,MAAM,aAAa,CAAC;AAC1G,OAAO,EAAE,MAAM,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAKvC;;;GAGG;AACH,qBAAa,QAAS,YAAW,cAAc;IAe3C,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,aAAa,EAAE,iBAAiB;IACzC,QAAQ,CAAC,SAAS,EAAE,UAAU;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,UAAU;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,YAAY;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM;IArBxC,SAAS,CAAC,oBAAoB,uYAAC;IAE/B;;;;;;;;;;OAUG;gBAEQ,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,UAAU,EACrB,uBAAuB,EAAE,UAAU,EACnC,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,MAAM,YAAA,EAC3B,aAAa,CAAC,EAAE,YAAY,YAAA,EAC5B,qBAAqB,GAAE,MAAc;IAOhD;;;;;;;;;OASG;IACG,WAAW,CACf,SAAS,EAAE,SAAS,GAAG;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,EACrD,OAAO,UAAkD,EACzD,OAAO,GAAE,OAAO,CAAC;QACf,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,EAAE,YAAY,CAAC;QACvB,iBAAiB,EAAE,SAAS,CAAC;QAC7B,qBAAqB,EAAE,SAAS,CAAC;KAClC,CAAM,GACN,OAAO,CAAC,uBAAuB,CAAC;IA8DnC;;;;;OAKG;IACG,gBAAgB,CACpB,OAAO,EAAE,SAAS,GAAG;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,EACnD,OAAO,UAAgD,GACtD,OAAO,CAAC,SAAS,CAAC;IAiBrB;;;;;;OAMG;IACH,2BAA2B,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS;IAI1D;;;;;OAKG;cACa,cAAc,CAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,aAAa,CAAC,GAAG;QACxD,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,UAAU,CAAC;QACtB,WAAW,EAAE,UAAU,CAAC;KACzB,EACD,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,OAAO;;;;IAK3B;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzD;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;CAI9C"}
1
+ {"version":3,"file":"svmQuery.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAMlB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EASZ,MAAM,gBAAgB,CAAC;AAKxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAkB,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAKvC;;;GAGG;AACH,qBAAa,QAAS,YAAW,cAAc;IAe3C,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAC9B,QAAQ,CAAC,aAAa,EAAE,iBAAiB;IACzC,QAAQ,CAAC,SAAS,EAAE,UAAU;IAC9B,QAAQ,CAAC,uBAAuB,EAAE,UAAU;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,YAAY;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM;IArBxC,SAAS,CAAC,oBAAoB,uYAAC;IAE/B;;;;;;;;;;OAUG;gBAEQ,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,UAAU,EACrB,uBAAuB,EAAE,UAAU,EACnC,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,MAAM,YAAA,EAC3B,aAAa,CAAC,EAAE,YAAY,YAAA,EAC5B,qBAAqB,GAAE,MAAc;IAOhD;;;;;;;;;OASG;IACG,WAAW,CACf,SAAS,EAAE,SAAS,GAAG;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,EACrD,OAAO,UAAkD,EACzD,OAAO,GAAE,OAAO,CAAC;QACf,QAAQ,EAAE,YAAY,CAAC;QACvB,QAAQ,EAAE,YAAY,CAAC;QACvB,iBAAiB,EAAE,SAAS,CAAC;QAC7B,qBAAqB,EAAE,SAAS,CAAC;KAClC,CAAM,GACN,OAAO,CAAC,uBAAuB,CAAC;IAmFnC;;;;;OAKG;IACG,gBAAgB,CACpB,OAAO,EAAE,SAAS,GAAG;QAAE,kBAAkB,EAAE,MAAM,CAAA;KAAE,EACnD,OAAO,UAAgD,GACtD,OAAO,CAAC,SAAS,CAAC;IAiBrB;;;;;;OAMG;IACH,2BAA2B,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS;IAI1D;;;;;OAKG;cACa,cAAc,CAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,aAAa,CAAC,GAAG;QACxD,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,UAAU,CAAC;QACtB,WAAW,EAAE,UAAU,CAAC;KACzB,EACD,MAAM,EAAE,iBAAiB,EACzB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,OAAO;;;;IAK3B;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzD;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAMvC,oBAAoB,CACxB,SAAS,EAAE,SAAS,GAAG;QACrB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,SAAS,EAAE,UAAU,CAAC;QACtB,WAAW,EAAE,UAAU,CAAC;QACxB,gBAAgB,EAAE,UAAU,CAAC;KAC9B,EACD,OAAO,EAAE,UAAU,EACnB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,UAAU,GAC3B,OAAO,CAAC,MAAM,CAAC;CA4BnB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "4.3.104",
4
+ "version": "4.3.106-beta.0",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "repository": {
@@ -32,10 +32,12 @@ import {
32
32
  pipe,
33
33
  signTransactionMessageWithSigners,
34
34
  some,
35
+ compileTransaction,
35
36
  type TransactionSigner,
36
37
  type WritableAccount,
37
38
  type ReadonlyAccount,
38
39
  type Commitment,
40
+ type CompilableTransactionMessage,
39
41
  } from "@solana/kit";
40
42
  import assert from "assert";
41
43
  import winston from "winston";
@@ -100,6 +102,8 @@ import {
100
102
  */
101
103
  export const SLOT_DURATION_MS = 400;
102
104
 
105
+ export const SOLANA_TX_SIZE_LIMIT = 1232;
106
+
103
107
  type ProtoFill = Omit<RelayData, "recipient" | "outputToken"> & {
104
108
  destinationChainId: number;
105
109
  recipient: SvmAddress;
@@ -693,6 +697,8 @@ export async function getIPFillRelayTx(
693
697
  getEventAuthority(program),
694
698
  ]);
695
699
 
700
+ const recipientAtaEncodedAccount = await fetchEncodedAccount(solanaClient, recipientAta);
701
+
696
702
  // Add remaining accounts if the relayData has a non-empty message.
697
703
  // @dev ! since in the context of creating a `fillRelayTx`, `relayData` must be defined.
698
704
  const remainingAccounts: (WritableAccount | ReadonlyAccount)[] = [];
@@ -736,7 +742,7 @@ export async function getIPFillRelayTx(
736
742
  fillInput,
737
743
  { outputAmount: relayData.outputAmount.toBigInt(), recipient: toAddress(relayData.recipient) },
738
744
  mintInfo.data.decimals,
739
- true,
745
+ !recipientAtaEncodedAccount.exists,
740
746
  remainingAccounts
741
747
  );
742
748
  }
@@ -1084,6 +1090,8 @@ async function fetchBatchFillStatusFromPdaAccounts(
1084
1090
  * Returns a set of instructions to execute to fill a relay via instruction params.
1085
1091
  * @param spokePool The program ID of the Solana spoke pool.
1086
1092
  * @param relayData The relay data to write to the instruction params PDA.
1093
+ * @param repaymentChainId: The chain ID to take repayment.
1094
+ * @param repaymentAddress: The address to receive repayment on the specified repayment chain.
1087
1095
  * @param signer The transaction signer and authority of the instruction params PDA.
1088
1096
  * @param maxWriteSize The maximum fragment size to write to instruction params.
1089
1097
  */
@@ -1413,6 +1421,47 @@ export async function getCCTPDepositAccounts(
1413
1421
  };
1414
1422
  }
1415
1423
 
1424
+ /**
1425
+ * Returns true if the input deposit's corresponding relay data would result in a transaction size
1426
+ * that is larger than the Solana transaction size limit.
1427
+ * @param fillRelayTx The compilable fill relay transaction to check.
1428
+ * @returns Object containing a boolean if the input deposit requires a multipart fill, false otherwise and
1429
+ * the number of bytes in the serialized transaction.
1430
+ */
1431
+ export function isSVMFillTooLarge(fillRelayTx: CompilableTransactionMessage): {
1432
+ tooLarge: boolean;
1433
+ sizeBytes: number;
1434
+ } {
1435
+ const sizeBytes = calculateFillSizeBytes(fillRelayTx);
1436
+ return {
1437
+ tooLarge: sizeBytes > SOLANA_TX_SIZE_LIMIT,
1438
+ sizeBytes,
1439
+ };
1440
+ }
1441
+
1442
+ /**
1443
+ * Returns the byte size of a base64 transaction.
1444
+ * @param base64TxString base64 serialized Solana transaction.
1445
+ * @returns The number of bytes in the transaction.
1446
+ */
1447
+ export function base64StrToByteSize(base64TxString: string): number {
1448
+ // base64 string has 6 bits per character, so every 4 symbols represent 3 bytes
1449
+ // However, we also need to account for padding: https://en.wikipedia.org/wiki/Base64#Padding
1450
+ const paddingLen = base64TxString.endsWith("==") ? 2 : base64TxString.endsWith("=") ? 1 : 0;
1451
+ return (base64TxString.length * 3) / 4 - paddingLen;
1452
+ }
1453
+
1454
+ /**
1455
+ * Returns the size of the fill relay transaction using the input relayData.
1456
+ * @param fillTx The compilable fill relay transaction.
1457
+ * @returns The number of bytes in the serialized fillRelay transaction.
1458
+ */
1459
+ export function calculateFillSizeBytes(fillTx: CompilableTransactionMessage): number {
1460
+ const signedTransaction = compileTransaction(fillTx);
1461
+ const serializedTx = getBase64EncodedWireTransaction(signedTransaction);
1462
+ return base64StrToByteSize(serializedTx);
1463
+ }
1464
+
1416
1465
  /**
1417
1466
  * Returns the account metas for a deposit message.
1418
1467
  * @param message The CCTP message.
@@ -62,6 +62,10 @@ export function getHandlerMessageEncoder(): Encoder<Array<CompiledIx>> {
62
62
  return getArrayEncoder(getCompiledIxEncoder());
63
63
  }
64
64
 
65
+ export function getHandlerMessageDecoder(): Decoder<Array<CompiledIx>> {
66
+ return getArrayDecoder(getCompiledIxDecoder());
67
+ }
68
+
65
69
  export function getCompiledIxEncoder(): Encoder<CompiledIx> {
66
70
  return getStructEncoder([
67
71
  ["program_id_index", getU8Encoder()],
@@ -10,7 +10,7 @@ import {
10
10
  GetTransactionApi,
11
11
  Signature,
12
12
  } from "@solana/kit";
13
- import { bs58, chainIsSvm, getMessageHash, toAddressType } from "../../utils";
13
+ import { bs58, chainIsSvm, getMessageHash, isDefined, toAddressType } from "../../utils";
14
14
  import { EventName, EventWithData, SVMProvider } from "./types";
15
15
  import { decodeEvent, isDevnet } from "./utils";
16
16
  import { Deposit, DepositWithTime, Fill, FillWithTime } from "../../interfaces";
@@ -182,7 +182,6 @@ export class SvmCpiEventsClient {
182
182
  .getTransaction(txSignature, { commitment, maxSupportedTransactionVersion: 0 })
183
183
  .send();
184
184
 
185
- if (txResult === null) return [];
186
185
  return this.processEventFromTx(txResult);
187
186
  }
188
187
 
@@ -192,8 +191,8 @@ export class SvmCpiEventsClient {
192
191
  * @param txResult - The transaction result.
193
192
  * @returns A promise that resolves to an array of events with their data and name.
194
193
  */
195
- private processEventFromTx(txResult: GetTransactionReturnType): { program: Address; data: unknown; name: string }[] {
196
- if (!txResult) return [];
194
+ private processEventFromTx(txResult?: GetTransactionReturnType): { program: Address; data: unknown; name: string }[] {
195
+ if (!isDefined(txResult) || isDefined(txResult.meta?.err)) return [];
197
196
  const events: { program: Address; data: unknown; name: string }[] = [];
198
197
 
199
198
  const accountKeys = txResult.transaction.message.accountKeys;
@@ -1,4 +1,5 @@
1
1
  import { RpcTransport } from "@solana/rpc-spec";
2
+ import { CompilableTransactionMessage, SolanaRpcApi } from "@solana/kit";
2
3
  import { isSolanaError, SVM_SLOT_SKIPPED, SVM_LONG_TERM_STORAGE_SLOT_SKIPPED } from "../../arch/svm";
3
4
 
4
5
  /**
@@ -14,6 +15,19 @@ export interface SolanaRateLimitTask {
14
15
  reject: (err: unknown) => void;
15
16
  }
16
17
 
18
+ // `simulateBundle` minimal response struct.
19
+ export type SolanaBundleSimulation = {
20
+ result: {
21
+ unitsConsumed: number;
22
+ returnData: { programId: string; data: string };
23
+ };
24
+ };
25
+
26
+ // Minimal extension of a Solana RPC Api which also supports some JITO RPC endpoints.
27
+ export interface JitoInterface extends SolanaRpcApi {
28
+ simulateBundle(transactions: CompilableTransactionMessage[]): SolanaBundleSimulation;
29
+ }
30
+
17
31
  /**
18
32
  * Determine whether a Solana RPC error indicates an unrecoverable error that should not be retried.
19
33
  * @param method RPC method name.