@across-protocol/sdk 4.2.14 → 4.2.16-alpha.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.
- package/dist/cjs/arch/svm/SpokeUtils.d.ts +4 -4
- package/dist/cjs/arch/svm/SpokeUtils.js +4 -4
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/utils.d.ts +4 -0
- package/dist/cjs/arch/svm/utils.js +15 -1
- package/dist/cjs/arch/svm/utils.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +1 -0
- package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.d.ts +1 -1
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js +4 -3
- package/dist/cjs/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
- package/dist/cjs/clients/mocks/MockSvmSpokePoolClient.d.ts +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +1 -1
- package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +4 -4
- package/dist/esm/arch/svm/SpokeUtils.js +5 -5
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/utils.d.ts +7 -0
- package/dist/esm/arch/svm/utils.js +14 -0
- package/dist/esm/arch/svm/utils.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +1 -0
- package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.d.ts +1 -1
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js +5 -4
- package/dist/esm/clients/mocks/MockSvmCpiEventsClient.js.map +1 -1
- package/dist/esm/clients/mocks/MockSvmSpokePoolClient.d.ts +1 -1
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +2 -2
- package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts +4 -4
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/utils.d.ts +7 -0
- package/dist/types/arch/svm/utils.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts +1 -1
- package/dist/types/clients/mocks/MockSvmCpiEventsClient.d.ts.map +1 -1
- package/dist/types/clients/mocks/MockSvmSpokePoolClient.d.ts +1 -1
- package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/arch/svm/SpokeUtils.ts +8 -6
- package/src/arch/svm/utils.ts +16 -0
- package/src/clients/SpokePoolClient/SpokePoolClient.ts +1 -0
- package/src/clients/mocks/MockSvmCpiEventsClient.ts +5 -3
- package/src/relayFeeCalculator/chain-queries/svmQuery.ts +2 -1
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
getU32Encoder,
|
|
20
20
|
getU64Encoder,
|
|
21
21
|
pipe,
|
|
22
|
+
ReadonlyUint8Array,
|
|
22
23
|
some,
|
|
23
24
|
type TransactionSigner,
|
|
24
25
|
} from "@solana/kit";
|
|
@@ -31,6 +32,7 @@ import { Deposit, DepositWithBlock, FillStatus, FillWithBlock, RelayData } from
|
|
|
31
32
|
import { BigNumber, SvmAddress, chainIsSvm, chunk, isUnsafeDepositId, keccak256, toAddressType } from "../../utils";
|
|
32
33
|
import {
|
|
33
34
|
SvmCpiEventsClient,
|
|
35
|
+
bigToU8a32,
|
|
34
36
|
createDefaultTransaction,
|
|
35
37
|
getEventAuthority,
|
|
36
38
|
getFillStatusPda,
|
|
@@ -398,7 +400,7 @@ export async function fillRelayInstruction(
|
|
|
398
400
|
exclusiveRelayer: exclusiveRelayer.toV2Address(),
|
|
399
401
|
inputToken: inputToken.toV2Address(),
|
|
400
402
|
outputToken: outputToken.toV2Address(),
|
|
401
|
-
inputAmount: deposit.inputAmount
|
|
403
|
+
inputAmount: bigToU8a32(deposit.inputAmount),
|
|
402
404
|
outputAmount: deposit.outputAmount.toBigInt(),
|
|
403
405
|
originChainId: BigInt(deposit.originChainId),
|
|
404
406
|
fillDeadline: deposit.fillDeadline,
|
|
@@ -596,7 +598,7 @@ export function getRelayDataHash(relayData: RelayData, destinationChainId: numbe
|
|
|
596
598
|
Uint8Array.from(addressEncoder.encode(SvmAddress.from(relayData.exclusiveRelayer, "base16").toV2Address())),
|
|
597
599
|
Uint8Array.from(addressEncoder.encode(SvmAddress.from(relayData.inputToken, "base16").toV2Address())),
|
|
598
600
|
Uint8Array.from(addressEncoder.encode(SvmAddress.from(relayData.outputToken, "base16").toV2Address())),
|
|
599
|
-
|
|
601
|
+
arrayify(hexZeroPad(hexlify(relayData.inputAmount), 32)),
|
|
600
602
|
Uint8Array.from(uint64Encoder.encode(BigInt(relayData.outputAmount.toString()))),
|
|
601
603
|
Uint8Array.from(uint64Encoder.encode(BigInt(relayData.originChainId.toString()))),
|
|
602
604
|
arrayify(hexZeroPad(hexlify(relayData.depositId), 32)),
|
|
@@ -704,7 +706,7 @@ export async function getDepositDelegatePda(
|
|
|
704
706
|
inputToken: Address<string>;
|
|
705
707
|
outputToken: Address<string>;
|
|
706
708
|
inputAmount: bigint;
|
|
707
|
-
outputAmount:
|
|
709
|
+
outputAmount: ReadonlyUint8Array;
|
|
708
710
|
destinationChainId: bigint;
|
|
709
711
|
exclusiveRelayer: Address<string>;
|
|
710
712
|
quoteTimestamp: bigint;
|
|
@@ -724,7 +726,7 @@ export async function getDepositDelegatePda(
|
|
|
724
726
|
Uint8Array.from(addrEnc.encode(depositData.inputToken)),
|
|
725
727
|
Uint8Array.from(addrEnc.encode(depositData.outputToken)),
|
|
726
728
|
Uint8Array.from(u64.encode(depositData.inputAmount)),
|
|
727
|
-
Uint8Array.from(
|
|
729
|
+
Uint8Array.from(depositData.outputAmount),
|
|
728
730
|
Uint8Array.from(u64.encode(depositData.destinationChainId)),
|
|
729
731
|
Uint8Array.from(addrEnc.encode(depositData.exclusiveRelayer)),
|
|
730
732
|
Uint8Array.from(u32.encode(depositData.quoteTimestamp)),
|
|
@@ -754,7 +756,7 @@ export async function getDepositNowDelegatePda(
|
|
|
754
756
|
inputToken: Address<string>;
|
|
755
757
|
outputToken: Address<string>;
|
|
756
758
|
inputAmount: bigint;
|
|
757
|
-
outputAmount:
|
|
759
|
+
outputAmount: ReadonlyUint8Array;
|
|
758
760
|
destinationChainId: bigint;
|
|
759
761
|
exclusiveRelayer: Address<string>;
|
|
760
762
|
fillDeadlineOffset: bigint;
|
|
@@ -773,7 +775,7 @@ export async function getDepositNowDelegatePda(
|
|
|
773
775
|
Uint8Array.from(addrEnc.encode(depositData.inputToken)),
|
|
774
776
|
Uint8Array.from(addrEnc.encode(depositData.outputToken)),
|
|
775
777
|
Uint8Array.from(u64.encode(depositData.inputAmount)),
|
|
776
|
-
Uint8Array.from(
|
|
778
|
+
Uint8Array.from(depositData.outputAmount),
|
|
777
779
|
Uint8Array.from(u64.encode(depositData.destinationChainId)),
|
|
778
780
|
Uint8Array.from(addrEnc.encode(depositData.exclusiveRelayer)),
|
|
779
781
|
Uint8Array.from(u32.encode(depositData.fillDeadlineOffset)),
|
package/src/arch/svm/utils.ts
CHANGED
|
@@ -304,3 +304,19 @@ export const createDefaultTransaction = async (rpcClient: SVMProvider, signer: T
|
|
|
304
304
|
(tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx)
|
|
305
305
|
);
|
|
306
306
|
};
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Convert a bigint (0 ≤ n < 2^256) to a 32-byte Uint8Array (big-endian).
|
|
310
|
+
*/
|
|
311
|
+
export function bigintToU8a32(n: bigint): Uint8Array {
|
|
312
|
+
if (n < BigInt(0) || n > ethers.constants.MaxUint256.toBigInt()) {
|
|
313
|
+
throw new RangeError("Value must fit in 256 bits");
|
|
314
|
+
}
|
|
315
|
+
const hexPadded = ethers.utils.hexZeroPad("0x" + n.toString(16), 32);
|
|
316
|
+
return ethers.utils.arrayify(hexPadded);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export const bigToU8a32 = (bn: bigint | BigNumber) =>
|
|
320
|
+
bigintToU8a32(typeof bn === "bigint" ? bn : BigInt(bn.toString()));
|
|
321
|
+
|
|
322
|
+
export const numberToU8a32 = (n: number) => bigintToU8a32(BigInt(n));
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
SVMEventNames,
|
|
17
17
|
SVMProvider,
|
|
18
18
|
getRandomSvmAddress,
|
|
19
|
+
bigToU8a32,
|
|
19
20
|
} from "../../arch/svm";
|
|
20
21
|
import { bnZero, bnOne, bs58, getCurrentTime, randomAddress, EvmAddress } from "../../utils";
|
|
21
22
|
import { FillType } from "../../interfaces";
|
|
@@ -79,7 +80,7 @@ export class MockSvmCpiEventsClient extends SvmCpiEventsClient {
|
|
|
79
80
|
const inputToken = deposit.inputToken ?? getRandomSvmAddress();
|
|
80
81
|
const outputToken = deposit.outputToken ?? EvmAddress.from(randomAddress()).toBase58();
|
|
81
82
|
inputAmount ??= BigInt(random(1, 1000, false));
|
|
82
|
-
outputAmount ??= (inputAmount * BigInt(95)) / BigInt(100);
|
|
83
|
+
outputAmount ??= bigToU8a32((inputAmount * BigInt(95)) / BigInt(100));
|
|
83
84
|
const message = deposit.message ?? new Uint8Array(32);
|
|
84
85
|
const quoteTimestamp = deposit.quoteTimestamp ?? getCurrentTime();
|
|
85
86
|
|
|
@@ -111,8 +112,9 @@ export class MockSvmCpiEventsClient extends SvmCpiEventsClient {
|
|
|
111
112
|
const { slot } = fill;
|
|
112
113
|
let { depositId, inputAmount, outputAmount, fillDeadline } = fill;
|
|
113
114
|
depositId ??= arrayify(hexZeroPad(hexlify(random(1, 100_000, false)), 32));
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
const inputAmountBigInt = BigInt(random(1, 1000, false));
|
|
116
|
+
inputAmount ??= bigToU8a32(inputAmountBigInt);
|
|
117
|
+
outputAmount ??= (inputAmountBigInt * BigInt(95)) / BigInt(100);
|
|
116
118
|
fillDeadline ??= getCurrentTime() + 60;
|
|
117
119
|
|
|
118
120
|
const depositor = fill.depositor ?? EvmAddress.from(randomAddress()).toBase58();
|
|
@@ -6,6 +6,7 @@ import { getComputeUnitEstimateForTransactionMessageFactory } from "@solana/kit"
|
|
|
6
6
|
import {
|
|
7
7
|
SVMProvider,
|
|
8
8
|
SolanaVoidSigner,
|
|
9
|
+
bigToU8a32,
|
|
9
10
|
createFillInstruction,
|
|
10
11
|
getAssociatedTokenAddress,
|
|
11
12
|
getEventAuthority,
|
|
@@ -166,7 +167,7 @@ export class SvmQuery implements QueryInterface {
|
|
|
166
167
|
exclusiveRelayer: toSvmAddress(deposit.exclusiveRelayer),
|
|
167
168
|
inputToken: toSvmAddress(deposit.inputToken),
|
|
168
169
|
outputToken: mint.toV2Address(),
|
|
169
|
-
inputAmount: deposit.inputAmount
|
|
170
|
+
inputAmount: bigToU8a32(deposit.inputAmount),
|
|
170
171
|
outputAmount: deposit.outputAmount.toBigInt(),
|
|
171
172
|
originChainId: deposit.originChainId,
|
|
172
173
|
depositId: new Uint8Array(intToU8Array32(deposit.depositId.toNumber())),
|