@across-protocol/sdk 4.3.113-alpha.2 → 4.3.113
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 +16 -1
- package/dist/cjs/arch/svm/SpokeUtils.js +63 -8
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/encoders.d.ts +1 -0
- package/dist/cjs/arch/svm/encoders.js +4 -0
- package/dist/cjs/arch/svm/encoders.js.map +1 -1
- package/dist/cjs/arch/svm/utils.d.ts +1 -0
- package/dist/cjs/arch/svm/utils.js +17 -0
- package/dist/cjs/arch/svm/utils.js.map +1 -1
- package/dist/cjs/constants.js +0 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/providers/solana/utils.d.ts +56 -0
- package/dist/cjs/providers/solana/utils.js.map +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +100 -27
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
- package/dist/cjs/typechain.d.ts +11 -10
- package/dist/cjs/typechain.js +5 -5
- package/dist/cjs/typechain.js.map +1 -1
- package/dist/cjs/utils/AddressUtils.d.ts +1 -1
- package/dist/cjs/utils/AddressUtils.js +2 -2
- package/dist/cjs/utils/AddressUtils.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +35 -1
- package/dist/esm/arch/svm/SpokeUtils.js +80 -8
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/encoders.d.ts +1 -0
- package/dist/esm/arch/svm/encoders.js +3 -0
- package/dist/esm/arch/svm/encoders.js.map +1 -1
- package/dist/esm/arch/svm/utils.d.ts +6 -0
- package/dist/esm/arch/svm/utils.js +21 -0
- package/dist/esm/arch/svm/utils.js.map +1 -1
- package/dist/esm/constants.js +0 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/providers/solana/utils.d.ts +56 -0
- package/dist/esm/providers/solana/utils.js.map +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +106 -31
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
- package/dist/esm/typechain.d.ts +11 -10
- package/dist/esm/typechain.js +5 -5
- package/dist/esm/typechain.js.map +1 -1
- package/dist/esm/utils/AddressUtils.d.ts +1 -1
- package/dist/esm/utils/AddressUtils.js +2 -2
- package/dist/esm/utils/AddressUtils.js.map +1 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts +35 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/encoders.d.ts +1 -0
- package/dist/types/arch/svm/encoders.d.ts.map +1 -1
- package/dist/types/arch/svm/utils.d.ts +6 -0
- package/dist/types/arch/svm/utils.d.ts.map +1 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/providers/solana/utils.d.ts +56 -0
- package/dist/types/providers/solana/utils.d.ts.map +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts +6 -0
- package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -1
- package/dist/types/typechain.d.ts +11 -10
- package/dist/types/typechain.d.ts.map +1 -1
- package/dist/types/utils/AddressUtils.d.ts +1 -1
- package/dist/types/utils/AddressUtils.d.ts.map +1 -1
- package/package.json +11 -14
- package/src/arch/svm/SpokeUtils.ts +77 -3
- package/src/arch/svm/encoders.ts +4 -0
- package/src/arch/svm/utils.ts +13 -0
- package/src/constants.ts +0 -1
- package/src/providers/solana/utils.ts +44 -0
- package/src/relayFeeCalculator/chain-queries/svmQuery.ts +121 -5
- package/src/typechain.ts +12 -10
- package/src/utils/AddressUtils.ts +3 -3
|
@@ -34,4 +34,10 @@ export declare class SvmQuery implements QueryInterface {
|
|
|
34
34
|
}, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: Address): Promise<CompilableTransactionMessage & TransactionMessageWithBlockhashLifetime>;
|
|
35
35
|
getTokenPrice(tokenSymbol: string): Promise<number>;
|
|
36
36
|
getTokenDecimals(tokenSymbol: string): number;
|
|
37
|
+
estimateComputeUnits(relayData: RelayData & {
|
|
38
|
+
destinationChainId: number;
|
|
39
|
+
recipient: SvmAddress;
|
|
40
|
+
outputToken: SvmAddress;
|
|
41
|
+
exclusiveRelayer: SvmAddress;
|
|
42
|
+
}, relayer: SvmAddress, repaymentChainId: number, repaymentAddress: SvmAddress): Promise<bigint>;
|
|
37
43
|
}
|
|
@@ -12,6 +12,7 @@ var utils_1 = require("../../utils");
|
|
|
12
12
|
var relayFeeCalculator_1 = require("../relayFeeCalculator");
|
|
13
13
|
var token_1 = require("@solana-program/token");
|
|
14
14
|
var token_2022_1 = require("@solana-program/token-2022");
|
|
15
|
+
var compute_budget_1 = require("@solana-program/compute-budget");
|
|
15
16
|
var __1 = require("../..");
|
|
16
17
|
var SvmQuery = (function () {
|
|
17
18
|
function SvmQuery(provider, symbolMapping, spokePool, simulatedRelayerAddress, logger, coingeckoProApiKey, fixedGasPrice, coingeckoBaseCurrency) {
|
|
@@ -30,11 +31,11 @@ var SvmQuery = (function () {
|
|
|
30
31
|
}
|
|
31
32
|
SvmQuery.prototype.getGasCosts = function (relayData_1) {
|
|
32
33
|
return tslib_1.__awaiter(this, arguments, void 0, function (relayData, relayer, options) {
|
|
33
|
-
var destinationChainId, recipient, outputToken, exclusiveRelayer, _a, repaymentChainId, repaymentAddress, fillRelayTx, _b,
|
|
34
|
+
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;
|
|
34
35
|
if (relayer === void 0) { relayer = (0, relayFeeCalculator_1.getDefaultRelayer)(relayData.destinationChainId); }
|
|
35
36
|
if (options === void 0) { options = {}; }
|
|
36
|
-
return tslib_1.__generator(this, function (
|
|
37
|
-
switch (
|
|
37
|
+
return tslib_1.__generator(this, function (_d) {
|
|
38
|
+
switch (_d.label) {
|
|
38
39
|
case 0:
|
|
39
40
|
destinationChainId = relayData.destinationChainId, recipient = relayData.recipient, outputToken = relayData.outputToken, exclusiveRelayer = relayData.exclusiveRelayer;
|
|
40
41
|
(0, assert_1.default)(recipient.isSVM(), "getGasCosts: recipient not an SVM address (".concat(recipient, ")"));
|
|
@@ -44,47 +45,58 @@ var SvmQuery = (function () {
|
|
|
44
45
|
_a = [destinationChainId, relayer], repaymentChainId = _a[0], repaymentAddress = _a[1];
|
|
45
46
|
return [4, this.getFillRelayTx(tslib_1.__assign(tslib_1.__assign({}, relayData), { recipient: recipient, outputToken: outputToken, exclusiveRelayer: exclusiveRelayer }), (0, svm_1.SolanaVoidSigner)(relayer.toBase58()), repaymentChainId, repaymentAddress)];
|
|
46
47
|
case 1:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return [4, this.
|
|
51
|
-
case 2:
|
|
52
|
-
|
|
48
|
+
_fillRelayTx = _d.sent();
|
|
49
|
+
fillTooLarge = (0, svm_1.isSVMFillTooLarge)(_fillRelayTx);
|
|
50
|
+
if (!fillTooLarge.tooLarge) return [3, 3];
|
|
51
|
+
return [4, this.getFillRelayTx(tslib_1.__assign(tslib_1.__assign({}, relayData), { recipient: recipient, outputToken: outputToken, exclusiveRelayer: exclusiveRelayer, message: "0x" }), (0, svm_1.SolanaVoidSigner)(relayer.toBase58()), repaymentChainId, repaymentAddress)];
|
|
52
|
+
case 2:
|
|
53
|
+
_b = _d.sent();
|
|
54
|
+
return [3, 4];
|
|
55
|
+
case 3:
|
|
56
|
+
_b = _fillRelayTx;
|
|
57
|
+
_d.label = 4;
|
|
58
|
+
case 4:
|
|
59
|
+
fillRelayTx = _b;
|
|
60
|
+
return [4, Promise.all([
|
|
61
|
+
fillTooLarge.tooLarge
|
|
62
|
+
? this.estimateComputeUnits(tslib_1.__assign(tslib_1.__assign({}, relayData), { recipient: recipient, outputToken: outputToken, exclusiveRelayer: exclusiveRelayer }), relayer, repaymentChainId, repaymentAddress)
|
|
63
|
+
: this.computeUnitEstimator(fillRelayTx),
|
|
53
64
|
(0, gasPriceOracle_1.getGasPriceEstimate)(this.provider, {
|
|
54
65
|
unsignedTx: fillRelayTx,
|
|
55
66
|
baseFeeMultiplier: options.baseFeeMultiplier,
|
|
56
67
|
priorityFeeMultiplier: options.priorityFeeMultiplier,
|
|
57
68
|
}),
|
|
58
|
-
this.provider.getAccountInfo((0, svm_1.toAddress)(outputToken), { encoding: "base58" }).send()
|
|
59
|
-
]
|
|
60
|
-
case
|
|
61
|
-
|
|
69
|
+
this.provider.getAccountInfo((0, svm_1.toAddress)(outputToken), { encoding: "base58" }).send(),
|
|
70
|
+
])];
|
|
71
|
+
case 5:
|
|
72
|
+
_c = _d.sent(), _computeUnitsConsumed = _c[0], gasPriceEstimate = _c[1], tokenAccountInfo = _c[2];
|
|
73
|
+
computeUnitsConsumed = (0, utils_1.toBN)(_computeUnitsConsumed);
|
|
62
74
|
tokenOwner = tokenAccountInfo.value.owner;
|
|
63
75
|
(0, assert_1.default)(tokenOwner === token_2022_1.TOKEN_2022_PROGRAM_ADDRESS || tokenOwner === token_1.TOKEN_PROGRAM_ADDRESS, "".concat(outputToken, " has invalid token account owner ").concat(tokenOwner, "."));
|
|
64
76
|
return [4, (0, svm_1.getAssociatedTokenAddress)(recipient, outputToken, tokenOwner)];
|
|
65
|
-
case
|
|
66
|
-
recipientAta =
|
|
77
|
+
case 6:
|
|
78
|
+
recipientAta = _d.sent();
|
|
67
79
|
return [4, (0, kit_1.fetchEncodedAccount)(this.provider, recipientAta)];
|
|
68
|
-
case
|
|
69
|
-
encodedAta =
|
|
80
|
+
case 7:
|
|
81
|
+
encodedAta = _d.sent();
|
|
70
82
|
gasPrice = gasPriceEstimate.baseFee.add(gasPriceEstimate.microLamportsPerComputeUnit.mul(computeUnitsConsumed).div((0, utils_1.toBN)(1000000)));
|
|
71
83
|
tokenGasCost = gasPrice;
|
|
72
|
-
if (!!encodedAta.exists) return [3,
|
|
84
|
+
if (!!encodedAta.exists) return [3, 11];
|
|
73
85
|
extensions = undefined;
|
|
74
|
-
if (!(tokenOwner === token_2022_1.TOKEN_2022_PROGRAM_ADDRESS)) return [3,
|
|
86
|
+
if (!(tokenOwner === token_2022_1.TOKEN_2022_PROGRAM_ADDRESS)) return [3, 9];
|
|
75
87
|
return [4, (0, token_2022_1.fetchMint)(this.provider, (0, svm_1.toAddress)(outputToken))];
|
|
76
|
-
case
|
|
77
|
-
mint =
|
|
88
|
+
case 8:
|
|
89
|
+
mint = _d.sent();
|
|
78
90
|
extensions = (0, kit_1.isSome)(mint.data.extensions) ? mint.data.extensions.value : undefined;
|
|
79
|
-
|
|
80
|
-
case
|
|
91
|
+
_d.label = 9;
|
|
92
|
+
case 9:
|
|
81
93
|
tokenAccountSize = (0, token_2022_1.getTokenSize)(extensions);
|
|
82
94
|
return [4, this.provider.getMinimumBalanceForRentExemption(BigInt(tokenAccountSize)).send()];
|
|
83
|
-
case
|
|
84
|
-
rentCostInLamports =
|
|
95
|
+
case 10:
|
|
96
|
+
rentCostInLamports = _d.sent();
|
|
85
97
|
tokenGasCost = tokenGasCost.add((0, utils_1.toBN)(Number(rentCostInLamports)));
|
|
86
|
-
|
|
87
|
-
case
|
|
98
|
+
_d.label = 11;
|
|
99
|
+
case 11: return [2, {
|
|
88
100
|
nativeGasCost: computeUnitsConsumed,
|
|
89
101
|
tokenGasCost: tokenGasCost,
|
|
90
102
|
gasPrice: gasPrice,
|
|
@@ -151,6 +163,67 @@ var SvmQuery = (function () {
|
|
|
151
163
|
throw new Error("".concat(tokenSymbol, " does not exist in mapping"));
|
|
152
164
|
return this.symbolMapping[tokenSymbol].decimals;
|
|
153
165
|
};
|
|
166
|
+
SvmQuery.prototype.estimateComputeUnits = function (relayData, relayer, repaymentChainId, repaymentAddress) {
|
|
167
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
168
|
+
var provider, spokePoolAddr, voidSigner, _a, instructionParamsIxs, _fillRelayTx, computeUnitLimitIx, fillRelayTx, instructionParamsTxs, bundleTxns, executionAccounts, simulateBundleResponse, failure, totalCuSpent;
|
|
169
|
+
var _this = this;
|
|
170
|
+
return tslib_1.__generator(this, function (_b) {
|
|
171
|
+
switch (_b.label) {
|
|
172
|
+
case 0:
|
|
173
|
+
provider = this.provider;
|
|
174
|
+
spokePoolAddr = (0, svm_1.toAddress)(this.spokePool);
|
|
175
|
+
voidSigner = (0, svm_1.SolanaVoidSigner)(relayer.toBase58());
|
|
176
|
+
return [4, Promise.all([
|
|
177
|
+
(0, svm_1.getFillRelayViaInstructionParamsInstructions)(spokePoolAddr, relayData, repaymentChainId, repaymentAddress, voidSigner, provider),
|
|
178
|
+
(0, svm_1.getIPFillRelayTx)(this.spokePool, provider, relayData, voidSigner, repaymentChainId, repaymentAddress),
|
|
179
|
+
])];
|
|
180
|
+
case 1:
|
|
181
|
+
_a = _b.sent(), instructionParamsIxs = _a[0], _fillRelayTx = _a[1];
|
|
182
|
+
computeUnitLimitIx = (0, compute_budget_1.getSetComputeUnitLimitInstruction)({ units: 10000000 });
|
|
183
|
+
fillRelayTx = (0, kit_1.pipe)(_fillRelayTx, function (tx) { return (0, kit_1.appendTransactionMessageInstruction)(computeUnitLimitIx, tx); });
|
|
184
|
+
return [4, (0, utils_1.mapAsync)(instructionParamsIxs, function (ix) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
185
|
+
var _a;
|
|
186
|
+
return tslib_1.__generator(this, function (_b) {
|
|
187
|
+
switch (_b.label) {
|
|
188
|
+
case 0:
|
|
189
|
+
_a = kit_1.pipe;
|
|
190
|
+
return [4, (0, svm_1.createDefaultTransaction)(provider, voidSigner)];
|
|
191
|
+
case 1: return [2, _a.apply(void 0, [_b.sent(), function (tx) {
|
|
192
|
+
return (0, kit_1.appendTransactionMessageInstruction)(ix, tx);
|
|
193
|
+
}])];
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
}); })];
|
|
197
|
+
case 2:
|
|
198
|
+
instructionParamsTxs = _b.sent();
|
|
199
|
+
bundleTxns = tslib_1.__spreadArray(tslib_1.__spreadArray([], instructionParamsTxs, true), [fillRelayTx], false).map(function (txn) {
|
|
200
|
+
var compiled = (0, kit_1.compileTransaction)(txn);
|
|
201
|
+
return (0, kit_1.getBase64EncodedWireTransaction)(compiled);
|
|
202
|
+
});
|
|
203
|
+
executionAccounts = bundleTxns.map(function () {
|
|
204
|
+
return { accountIndex: 0, addresses: [_this.spokePool.toBase58(), relayer.toBase58()] };
|
|
205
|
+
});
|
|
206
|
+
return [4, provider
|
|
207
|
+
.simulateBundle({
|
|
208
|
+
encodedTransactions: bundleTxns,
|
|
209
|
+
}, {
|
|
210
|
+
skipSigVerify: true,
|
|
211
|
+
preExecutionAccountsConfigs: executionAccounts,
|
|
212
|
+
postExecutionAccountsConfigs: executionAccounts,
|
|
213
|
+
})
|
|
214
|
+
.send()];
|
|
215
|
+
case 3:
|
|
216
|
+
simulateBundleResponse = _b.sent();
|
|
217
|
+
if (simulateBundleResponse.value.summary !== "succeeded") {
|
|
218
|
+
failure = simulateBundleResponse.value.summary.failed.error.TransactionFailure;
|
|
219
|
+
throw new Error("simulateBundle failed with result: ".concat(failure[1]));
|
|
220
|
+
}
|
|
221
|
+
totalCuSpent = simulateBundleResponse.value.transactionResults.reduce(function (sum, res) { return res.unitsConsumed + sum; }, BigInt(0));
|
|
222
|
+
return [2, totalCuSpent];
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
};
|
|
154
227
|
return SvmQuery;
|
|
155
228
|
}());
|
|
156
229
|
exports.SvmQuery = SvmQuery;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svmQuery.js","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":";;;;AAAA,0DAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"svmQuery.js","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/svmQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/typechain.d.ts
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
1
|
+
import type { TypedEvent, TypedEventFilter } from "@across-protocol/contracts/dist/typechain/common";
|
|
2
|
+
export type { TypedEvent, TypedEventFilter };
|
|
3
|
+
export { AcrossMerkleDistributor__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/merkle-distributor/AcrossMerkleDistributor__factory";
|
|
4
|
+
export { AcrossConfigStore__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/AcrossConfigStore__factory";
|
|
5
|
+
export { HubPool__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/HubPool__factory";
|
|
6
|
+
export { SpokePool__factory } from "@across-protocol/contracts/dist/typechain/factories/contracts/SpokePool__factory";
|
|
7
|
+
export { ERC20__factory } from "@across-protocol/contracts/dist/typechain/factories/@openzeppelin/contracts-v4/token/ERC20/ERC20__factory";
|
|
7
8
|
export { AcceleratingDistributor__factory } from "@across-protocol/across-token/dist/typechain/factories/AcceleratingDistributor__factory";
|
|
8
9
|
export { ClaimAndStake__factory } from "@across-protocol/across-token/dist/typechain/factories/ClaimAndStake__factory";
|
|
9
10
|
export { MerkleDistributor__factory } from "@across-protocol/across-token/dist/typechain/factories/MerkleDistributor__factory";
|
|
10
|
-
export type { AcrossMerkleDistributor, AcrossMerkleDistributorInterface, } from "@across-protocol/contracts/dist/typechain/AcrossMerkleDistributor";
|
|
11
|
-
export type { AcrossConfigStore, AcrossConfigStoreInterface, } from "@across-protocol/contracts/dist/typechain/AcrossConfigStore";
|
|
12
|
-
export type { HubPool, HubPoolInterface } from "@across-protocol/contracts/dist/typechain/HubPool";
|
|
13
|
-
export type { SpokePool, SpokePoolInterface, V3FundsDepositedEvent, FilledV3RelayEvent, } from "@across-protocol/contracts/dist/typechain/SpokePool";
|
|
11
|
+
export type { AcrossMerkleDistributor, AcrossMerkleDistributorInterface, } from "@across-protocol/contracts/dist/typechain/contracts/merkle-distributor/AcrossMerkleDistributor";
|
|
12
|
+
export type { AcrossConfigStore, AcrossConfigStoreInterface, } from "@across-protocol/contracts/dist/typechain/contracts/AcrossConfigStore";
|
|
13
|
+
export type { HubPool, HubPoolInterface } from "@across-protocol/contracts/dist/typechain/contracts/HubPool";
|
|
14
|
+
export type { SpokePool, SpokePoolInterface, V3FundsDepositedEvent, FilledV3RelayEvent, } from "@across-protocol/contracts/dist/typechain/contracts/SpokePool";
|
|
14
15
|
export type { AcceleratingDistributor, AcceleratingDistributorInterface, } from "@across-protocol/across-token/dist/typechain/AcceleratingDistributor";
|
|
15
16
|
export type { ClaimAndStake, ClaimAndStakeInterface } from "@across-protocol/across-token/dist/typechain/ClaimAndStake";
|
|
16
17
|
export type { MerkleDistributor, MerkleDistributorInterface, } from "@across-protocol/across-token/dist/typechain/MerkleDistributor";
|
package/dist/cjs/typechain.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MerkleDistributor__factory = exports.ClaimAndStake__factory = exports.AcceleratingDistributor__factory = exports.ERC20__factory = exports.SpokePool__factory = exports.HubPool__factory = exports.AcrossConfigStore__factory = exports.AcrossMerkleDistributor__factory = void 0;
|
|
4
|
-
var AcrossMerkleDistributor__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/AcrossMerkleDistributor__factory");
|
|
4
|
+
var AcrossMerkleDistributor__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/contracts/merkle-distributor/AcrossMerkleDistributor__factory");
|
|
5
5
|
Object.defineProperty(exports, "AcrossMerkleDistributor__factory", { enumerable: true, get: function () { return AcrossMerkleDistributor__factory_1.AcrossMerkleDistributor__factory; } });
|
|
6
|
-
var AcrossConfigStore__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/AcrossConfigStore__factory");
|
|
6
|
+
var AcrossConfigStore__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/contracts/AcrossConfigStore__factory");
|
|
7
7
|
Object.defineProperty(exports, "AcrossConfigStore__factory", { enumerable: true, get: function () { return AcrossConfigStore__factory_1.AcrossConfigStore__factory; } });
|
|
8
|
-
var HubPool__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/HubPool__factory");
|
|
8
|
+
var HubPool__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/contracts/HubPool__factory");
|
|
9
9
|
Object.defineProperty(exports, "HubPool__factory", { enumerable: true, get: function () { return HubPool__factory_1.HubPool__factory; } });
|
|
10
|
-
var SpokePool__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/SpokePool__factory");
|
|
10
|
+
var SpokePool__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/contracts/SpokePool__factory");
|
|
11
11
|
Object.defineProperty(exports, "SpokePool__factory", { enumerable: true, get: function () { return SpokePool__factory_1.SpokePool__factory; } });
|
|
12
|
-
var ERC20__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/ERC20__factory");
|
|
12
|
+
var ERC20__factory_1 = require("@across-protocol/contracts/dist/typechain/factories/@openzeppelin/contracts-v4/token/ERC20/ERC20__factory");
|
|
13
13
|
Object.defineProperty(exports, "ERC20__factory", { enumerable: true, get: function () { return ERC20__factory_1.ERC20__factory; } });
|
|
14
14
|
var AcceleratingDistributor__factory_1 = require("@across-protocol/across-token/dist/typechain/factories/AcceleratingDistributor__factory");
|
|
15
15
|
Object.defineProperty(exports, "AcceleratingDistributor__factory", { enumerable: true, get: function () { return AcceleratingDistributor__factory_1.AcceleratingDistributor__factory; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typechain.js","sourceRoot":"","sources":["../../src/typechain.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"typechain.js","sourceRoot":"","sources":["../../src/typechain.ts"],"names":[],"mappings":";;;AAQA,sKAAqK;AAA5J,oJAAA,gCAAgC,OAAA;AACzC,uIAAsI;AAA7H,wIAAA,0BAA0B,OAAA;AACnC,mHAAkH;AAAzG,oHAAA,gBAAgB,OAAA;AACzB,uHAAsH;AAA7G,wHAAA,kBAAkB,OAAA;AAC3B,4IAA2I;AAAlI,gHAAA,cAAc,OAAA;AAEvB,4IAA2I;AAAlI,oJAAA,gCAAgC,OAAA;AACzC,wHAAuH;AAA9G,gIAAA,sBAAsB,OAAA;AAC/B,gIAA+H;AAAtH,wIAAA,0BAA0B,OAAA"}
|
|
@@ -29,7 +29,7 @@ export declare abstract class Address {
|
|
|
29
29
|
toString(): string;
|
|
30
30
|
isZeroAddress(): boolean;
|
|
31
31
|
forceSvmAddress(): SvmAddress;
|
|
32
|
-
eq(other
|
|
32
|
+
eq(other?: Address): boolean;
|
|
33
33
|
compare(otherAddress: Address): 1 | -1 | 0;
|
|
34
34
|
isEVM(): this is EvmAddress;
|
|
35
35
|
isSVM(): this is SvmAddress;
|
|
@@ -100,7 +100,7 @@ var Address = (function () {
|
|
|
100
100
|
this.rawAddress = ethers_1.utils.zeroPad(_rawAddress, 32);
|
|
101
101
|
}
|
|
102
102
|
Address.isAddress = function (obj) {
|
|
103
|
-
return "__address_type_brand" in obj;
|
|
103
|
+
return typeof obj === "object" && obj !== null && "__address_type_brand" in obj;
|
|
104
104
|
};
|
|
105
105
|
Address.prototype.toJSON = function () {
|
|
106
106
|
return this.toNative();
|
|
@@ -154,7 +154,7 @@ var Address = (function () {
|
|
|
154
154
|
return SvmAddress.from(this.toBase58());
|
|
155
155
|
};
|
|
156
156
|
Address.prototype.eq = function (other) {
|
|
157
|
-
return this.toString() === other.toString();
|
|
157
|
+
return this.toString() === (other === null || other === void 0 ? void 0 : other.toString());
|
|
158
158
|
};
|
|
159
159
|
Address.prototype.compare = function (otherAddress) {
|
|
160
160
|
var bnAddressA = this.toBigNumber();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddressUtils.js","sourceRoot":"","sources":["../../../src/utils/AddressUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AddressUtils.js","sourceRoot":"","sources":["../../../src/utils/AddressUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
@@ -212,14 +213,24 @@ export declare function getAssociatedTokenAddress(owner: SvmAddress, mint: SvmAd
|
|
|
212
213
|
export declare function getRelayDataHash(relayData: RelayData & {
|
|
213
214
|
messageHash: string;
|
|
214
215
|
}, destinationChainId: number): string;
|
|
216
|
+
export declare function getIPForFillRelayTxs(spokePool: SvmAddress, relayData: RelayData, repaymentChainId: number, repaymentAddress: SdkAddress, signer: TransactionSigner<string>, provider: SVMProvider): Promise<(Omit<import("@solana/kit").ExcludeTransactionMessageWithinSizeLimit<import("@solana/transaction-messages/dist/types/lifetime").ExcludeTransactionMessageLifetime<Omit<Omit<Readonly<{
|
|
217
|
+
instructions: readonly import("@solana/kit").Instruction<string, readonly (import("@solana/kit").AccountLookupMeta<string, string> | import("@solana/kit").AccountMeta<string>)[]>[];
|
|
218
|
+
version: 0;
|
|
219
|
+
}>, "instructions"> & import("@solana/kit").TransactionMessageWithinSizeLimit & {
|
|
220
|
+
instructions: readonly [];
|
|
221
|
+
}, "feePayer"> & import("@solana/kit").TransactionMessageWithFeePayerSigner<string, TransactionSigner<string>>> & TransactionMessageWithBlockhashLifetime>, "instructions"> & {
|
|
222
|
+
readonly instructions: readonly [IInstruction];
|
|
223
|
+
})[]>;
|
|
215
224
|
/**
|
|
216
225
|
* Returns a set of instructions to execute to fill a relay via instruction params.
|
|
217
226
|
* @param spokePool The program ID of the Solana spoke pool.
|
|
218
227
|
* @param relayData The relay data to write to the instruction params PDA.
|
|
228
|
+
* @param repaymentChainId: The chain ID to take repayment.
|
|
229
|
+
* @param repaymentAddress: The address to receive repayment on the specified repayment chain.
|
|
219
230
|
* @param signer The transaction signer and authority of the instruction params PDA.
|
|
220
231
|
* @param maxWriteSize The maximum fragment size to write to instruction params.
|
|
221
232
|
*/
|
|
222
|
-
export declare function getFillRelayViaInstructionParamsInstructions(spokePool: Address<string>, relayData: RelayData, repaymentChainId: number, repaymentAddress: SdkAddress, signer: TransactionSigner<string>, maxWriteSize?: number): Promise<IInstruction[]>;
|
|
233
|
+
export declare function getFillRelayViaInstructionParamsInstructions(spokePool: Address<string>, relayData: RelayData, repaymentChainId: number, repaymentAddress: SdkAddress, signer: TransactionSigner<string>, provider: SVMProvider, maxWriteSize?: number): Promise<IInstruction[]>;
|
|
223
234
|
/**
|
|
224
235
|
* Returns the delegate PDA for deposit.
|
|
225
236
|
*/
|
|
@@ -282,6 +293,29 @@ export declare function getAccountMetasForTokenlessMessage(solanaClient: SVMProv
|
|
|
282
293
|
* @param messageTransmitterAddress The message transmitter address.
|
|
283
294
|
*/
|
|
284
295
|
export declare function getCCTPDepositAccounts(hubChainId: number, cctpDestinationDomainId: number, tokenMessengerMinterAddress: Address, messageTransmitterAddress: Address): Promise<CCTPDepositAccounts>;
|
|
296
|
+
/**
|
|
297
|
+
* Returns true if the input deposit's corresponding relay data would result in a transaction size
|
|
298
|
+
* that is larger than the Solana transaction size limit.
|
|
299
|
+
* @param fillRelayTx The compilable fill relay transaction to check.
|
|
300
|
+
* @returns Object containing a boolean if the input deposit requires a multipart fill, false otherwise and
|
|
301
|
+
* the number of bytes in the serialized transaction.
|
|
302
|
+
*/
|
|
303
|
+
export declare function isSVMFillTooLarge(fillRelayTx: CompilableTransactionMessage): {
|
|
304
|
+
tooLarge: boolean;
|
|
305
|
+
sizeBytes: number;
|
|
306
|
+
};
|
|
307
|
+
/**
|
|
308
|
+
* Returns the byte size of a base64 transaction.
|
|
309
|
+
* @param base64TxString base64 serialized Solana transaction.
|
|
310
|
+
* @returns The number of bytes in the transaction.
|
|
311
|
+
*/
|
|
312
|
+
export declare function base64StrToByteSize(base64TxString: string): number;
|
|
313
|
+
/**
|
|
314
|
+
* Returns the size of the fill relay transaction using the input relayData.
|
|
315
|
+
* @param fillTx The compilable fill relay transaction.
|
|
316
|
+
* @returns The number of bytes in the serialized fillRelay transaction.
|
|
317
|
+
*/
|
|
318
|
+
export declare function calculateFillSizeBytes(fillTx: CompilableTransactionMessage): number;
|
|
285
319
|
/**
|
|
286
320
|
* Returns the CCTP v1 receive message transaction.
|
|
287
321
|
* @param solanaClient The Solana client.
|
|
@@ -4,7 +4,7 @@ import { decodeFillStatusAccount, fetchState } from "@across-protocol/contracts/
|
|
|
4
4
|
import { decodeMessageHeader } from "@across-protocol/contracts/dist/src/svm/web3-v1";
|
|
5
5
|
import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system";
|
|
6
6
|
import { ASSOCIATED_TOKEN_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS, fetchMint, getApproveCheckedInstruction, getCreateAssociatedTokenIdempotentInstruction, getCreateAssociatedTokenInstruction, } from "@solana-program/token";
|
|
7
|
-
import { AccountRole, appendTransactionMessageInstruction, fetchEncodedAccount, fetchEncodedAccounts, getAddressEncoder, getBase64EncodedWireTransaction, getProgramDerivedAddress, getSignatureFromTransaction, getU32Encoder, getU64Encoder, pipe, signTransactionMessageWithSigners, some, } from "@solana/kit";
|
|
7
|
+
import { AccountRole, appendTransactionMessageInstruction, fetchEncodedAccount, fetchEncodedAccounts, getAddressEncoder, getBase64EncodedWireTransaction, getProgramDerivedAddress, getSignatureFromTransaction, getU32Encoder, getU64Encoder, pipe, signTransactionMessageWithSigners, some, compileTransaction, } from "@solana/kit";
|
|
8
8
|
import assert from "assert";
|
|
9
9
|
import { arrayify } from "ethers/lib/utils";
|
|
10
10
|
import { CHAIN_IDs, TOKEN_SYMBOLS_MAP } from "../../constants";
|
|
@@ -19,6 +19,7 @@ import { getEmergencyDeleteRootBundleRootBundleId, getNearestSlotTime, isEmergen
|
|
|
19
19
|
* and choose 400 to ensure that the most slots get included in our ranges
|
|
20
20
|
*/
|
|
21
21
|
export var SLOT_DURATION_MS = 400;
|
|
22
|
+
export var SOLANA_TX_SIZE_LIMIT = 1232;
|
|
22
23
|
export function getSlot(provider, commitment, logger) {
|
|
23
24
|
return _callGetSlotWithRetry(provider, commitment, logger);
|
|
24
25
|
}
|
|
@@ -427,7 +428,7 @@ export function fillRelayInstruction(spokePool, relayData, signer, recipientToke
|
|
|
427
428
|
return [2 /*return*/, SvmSpokeClient.getFillRelayInstruction({
|
|
428
429
|
signer: signer,
|
|
429
430
|
state: statePda,
|
|
430
|
-
delegate:
|
|
431
|
+
delegate: delegatePda,
|
|
431
432
|
mint: svmRelayData.outputToken,
|
|
432
433
|
relayerTokenAccount: relayerTokenAccount,
|
|
433
434
|
recipientTokenAccount: recipientTokenAccount,
|
|
@@ -541,7 +542,7 @@ export function getFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, r
|
|
|
541
542
|
*/
|
|
542
543
|
export function getIPFillRelayTx(spokePoolAddr, solanaClient, relayData, signer, repaymentChainId, repaymentAddress) {
|
|
543
544
|
return __awaiter(this, void 0, void 0, function () {
|
|
544
|
-
var program, _relayDataHash, relayDataHash, _a, state, delegate, instructionParams, mint, mintInfo, _b, recipientAta, relayerAta, fillStatus, eventAuthority, remainingAccounts, acrossPlusMessage_2, fillInput;
|
|
545
|
+
var program, _relayDataHash, relayDataHash, _a, state, delegate, instructionParams, mint, mintInfo, _b, recipientAta, relayerAta, fillStatus, eventAuthority, recipientAtaEncodedAccount, remainingAccounts, acrossPlusMessage_2, fillInput;
|
|
545
546
|
return __generator(this, function (_c) {
|
|
546
547
|
switch (_c.label) {
|
|
547
548
|
case 0:
|
|
@@ -567,6 +568,9 @@ export function getIPFillRelayTx(spokePoolAddr, solanaClient, relayData, signer,
|
|
|
567
568
|
])];
|
|
568
569
|
case 3:
|
|
569
570
|
_b = _c.sent(), recipientAta = _b[0], relayerAta = _b[1], fillStatus = _b[2], eventAuthority = _b[3];
|
|
571
|
+
return [4 /*yield*/, fetchEncodedAccount(solanaClient, recipientAta)];
|
|
572
|
+
case 4:
|
|
573
|
+
recipientAtaEncodedAccount = _c.sent();
|
|
570
574
|
remainingAccounts = [];
|
|
571
575
|
if (relayData.message !== "0x") {
|
|
572
576
|
acrossPlusMessage_2 = deserializeMessage(relayData.message);
|
|
@@ -598,7 +602,7 @@ export function getIPFillRelayTx(spokePoolAddr, solanaClient, relayData, signer,
|
|
|
598
602
|
};
|
|
599
603
|
// Pass createRecipientAtaIfNeeded =true to the createFillInstruction function to create the recipient token account
|
|
600
604
|
// if it doesn't exist.
|
|
601
|
-
return [2 /*return*/, createFillInstruction(signer, solanaClient, fillInput, { outputAmount: relayData.outputAmount.toBigInt(), recipient: toAddress(relayData.recipient) }, mintInfo.data.decimals,
|
|
605
|
+
return [2 /*return*/, createFillInstruction(signer, solanaClient, fillInput, { outputAmount: relayData.outputAmount.toBigInt(), recipient: toAddress(relayData.recipient) }, mintInfo.data.decimals, !recipientAtaEncodedAccount.exists, remainingAccounts)];
|
|
602
606
|
}
|
|
603
607
|
});
|
|
604
608
|
});
|
|
@@ -949,22 +953,54 @@ function fetchBatchFillStatusFromPdaAccounts(provider, fillStatusPdas, relayData
|
|
|
949
953
|
});
|
|
950
954
|
});
|
|
951
955
|
}
|
|
956
|
+
export function getIPForFillRelayTxs(spokePool, relayData, repaymentChainId, repaymentAddress, signer, provider) {
|
|
957
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
958
|
+
var ixs, txns;
|
|
959
|
+
var _this = this;
|
|
960
|
+
return __generator(this, function (_a) {
|
|
961
|
+
switch (_a.label) {
|
|
962
|
+
case 0: return [4 /*yield*/, getFillRelayViaInstructionParamsInstructions(toAddress(spokePool), relayData, repaymentChainId, repaymentAddress, signer, provider)];
|
|
963
|
+
case 1:
|
|
964
|
+
ixs = _a.sent();
|
|
965
|
+
return [4 /*yield*/, mapAsync(ixs, function (ix) { return __awaiter(_this, void 0, void 0, function () {
|
|
966
|
+
var _a;
|
|
967
|
+
return __generator(this, function (_b) {
|
|
968
|
+
switch (_b.label) {
|
|
969
|
+
case 0:
|
|
970
|
+
_a = pipe;
|
|
971
|
+
return [4 /*yield*/, createDefaultTransaction(provider, signer)];
|
|
972
|
+
case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent(), function (tx) { return appendTransactionMessageInstruction(ix, tx); }])];
|
|
973
|
+
}
|
|
974
|
+
});
|
|
975
|
+
}); })];
|
|
976
|
+
case 2:
|
|
977
|
+
txns = _a.sent();
|
|
978
|
+
return [2 /*return*/, txns];
|
|
979
|
+
}
|
|
980
|
+
});
|
|
981
|
+
});
|
|
982
|
+
}
|
|
952
983
|
/**
|
|
953
984
|
* Returns a set of instructions to execute to fill a relay via instruction params.
|
|
954
985
|
* @param spokePool The program ID of the Solana spoke pool.
|
|
955
986
|
* @param relayData The relay data to write to the instruction params PDA.
|
|
987
|
+
* @param repaymentChainId: The chain ID to take repayment.
|
|
988
|
+
* @param repaymentAddress: The address to receive repayment on the specified repayment chain.
|
|
956
989
|
* @param signer The transaction signer and authority of the instruction params PDA.
|
|
957
990
|
* @param maxWriteSize The maximum fragment size to write to instruction params.
|
|
958
991
|
*/
|
|
959
|
-
export function getFillRelayViaInstructionParamsInstructions(spokePool_1, relayData_1, repaymentChainId_1, repaymentAddress_1, signer_1) {
|
|
960
|
-
return __awaiter(this, arguments, void 0, function (spokePool, relayData, repaymentChainId, repaymentAddress, signer, maxWriteSize) {
|
|
961
|
-
var instructionParams, relayDataEncoder, svmRelayData, encodedRelayData, initInstructionParamsIx, instructions, i, offset, offsetEnd, fragment, writeInstructionParamsIx;
|
|
992
|
+
export function getFillRelayViaInstructionParamsInstructions(spokePool_1, relayData_1, repaymentChainId_1, repaymentAddress_1, signer_1, provider_1) {
|
|
993
|
+
return __awaiter(this, arguments, void 0, function (spokePool, relayData, repaymentChainId, repaymentAddress, signer, provider, maxWriteSize) {
|
|
994
|
+
var instructionParams, encodedInstructionParams, relayDataEncoder, svmRelayData, encodedRelayData, initInstructionParamsIx, instructions, i, offset, offsetEnd, fragment, writeInstructionParamsIx;
|
|
962
995
|
if (maxWriteSize === void 0) { maxWriteSize = 450; }
|
|
963
996
|
return __generator(this, function (_a) {
|
|
964
997
|
switch (_a.label) {
|
|
965
998
|
case 0: return [4 /*yield*/, getInstructionParamsPda(spokePool, signer.address)];
|
|
966
999
|
case 1:
|
|
967
1000
|
instructionParams = _a.sent();
|
|
1001
|
+
return [4 /*yield*/, fetchEncodedAccount(provider, instructionParams)];
|
|
1002
|
+
case 2:
|
|
1003
|
+
encodedInstructionParams = _a.sent();
|
|
968
1004
|
relayDataEncoder = SvmSpokeClient.getFillRelayParamsEncoder();
|
|
969
1005
|
svmRelayData = toSvmRelayData(relayData);
|
|
970
1006
|
encodedRelayData = relayDataEncoder.encode({
|
|
@@ -990,7 +1026,8 @@ export function getFillRelayViaInstructionParamsInstructions(spokePool_1, relayD
|
|
|
990
1026
|
});
|
|
991
1027
|
instructions.push(writeInstructionParamsIx);
|
|
992
1028
|
}
|
|
993
|
-
return [2 /*return*/,
|
|
1029
|
+
return [2 /*return*/, encodedInstructionParams.exists
|
|
1030
|
+
? __spreadArray([SvmSpokeClient.getCloseInstructionParamsInstruction({ signer: signer, instructionParams: instructionParams })], instructions, true) : instructions];
|
|
994
1031
|
}
|
|
995
1032
|
});
|
|
996
1033
|
});
|
|
@@ -1256,6 +1293,41 @@ export function getCCTPDepositAccounts(hubChainId, cctpDestinationDomainId, toke
|
|
|
1256
1293
|
});
|
|
1257
1294
|
});
|
|
1258
1295
|
}
|
|
1296
|
+
/**
|
|
1297
|
+
* Returns true if the input deposit's corresponding relay data would result in a transaction size
|
|
1298
|
+
* that is larger than the Solana transaction size limit.
|
|
1299
|
+
* @param fillRelayTx The compilable fill relay transaction to check.
|
|
1300
|
+
* @returns Object containing a boolean if the input deposit requires a multipart fill, false otherwise and
|
|
1301
|
+
* the number of bytes in the serialized transaction.
|
|
1302
|
+
*/
|
|
1303
|
+
export function isSVMFillTooLarge(fillRelayTx) {
|
|
1304
|
+
var sizeBytes = calculateFillSizeBytes(fillRelayTx);
|
|
1305
|
+
return {
|
|
1306
|
+
tooLarge: sizeBytes > SOLANA_TX_SIZE_LIMIT,
|
|
1307
|
+
sizeBytes: sizeBytes,
|
|
1308
|
+
};
|
|
1309
|
+
}
|
|
1310
|
+
/**
|
|
1311
|
+
* Returns the byte size of a base64 transaction.
|
|
1312
|
+
* @param base64TxString base64 serialized Solana transaction.
|
|
1313
|
+
* @returns The number of bytes in the transaction.
|
|
1314
|
+
*/
|
|
1315
|
+
export function base64StrToByteSize(base64TxString) {
|
|
1316
|
+
// base64 string has 6 bits per character, so every 4 symbols represent 3 bytes
|
|
1317
|
+
// However, we also need to account for padding: https://en.wikipedia.org/wiki/Base64#Padding
|
|
1318
|
+
var paddingLen = base64TxString.endsWith("==") ? 2 : base64TxString.endsWith("=") ? 1 : 0;
|
|
1319
|
+
return (base64TxString.length * 3) / 4 - paddingLen;
|
|
1320
|
+
}
|
|
1321
|
+
/**
|
|
1322
|
+
* Returns the size of the fill relay transaction using the input relayData.
|
|
1323
|
+
* @param fillTx The compilable fill relay transaction.
|
|
1324
|
+
* @returns The number of bytes in the serialized fillRelay transaction.
|
|
1325
|
+
*/
|
|
1326
|
+
export function calculateFillSizeBytes(fillTx) {
|
|
1327
|
+
var signedTransaction = compileTransaction(fillTx);
|
|
1328
|
+
var serializedTx = getBase64EncodedWireTransaction(signedTransaction);
|
|
1329
|
+
return base64StrToByteSize(serializedTx);
|
|
1330
|
+
}
|
|
1259
1331
|
/**
|
|
1260
1332
|
* Returns the account metas for a deposit message.
|
|
1261
1333
|
* @param message The CCTP message.
|