@across-protocol/sdk 4.3.22 → 4.3.23

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 (43) hide show
  1. package/dist/cjs/arch/svm/SpokeUtils.d.ts +1 -1
  2. package/dist/cjs/arch/svm/SpokeUtils.js +53 -22
  3. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  4. package/dist/cjs/arch/svm/utils.d.ts +4 -1
  5. package/dist/cjs/arch/svm/utils.js +25 -3
  6. package/dist/cjs/arch/svm/utils.js.map +1 -1
  7. package/dist/cjs/caching/Arweave/ArweaveClient.d.ts +4 -1
  8. package/dist/cjs/caching/Arweave/ArweaveClient.js +66 -17
  9. package/dist/cjs/caching/Arweave/ArweaveClient.js.map +1 -1
  10. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +24 -24
  11. package/dist/cjs/gasPriceOracle/adapters/ethereum.js +1 -5
  12. package/dist/cjs/gasPriceOracle/adapters/ethereum.js.map +1 -1
  13. package/dist/cjs/gasPriceOracle/adapters/solana.js +1 -5
  14. package/dist/cjs/gasPriceOracle/adapters/solana.js.map +1 -1
  15. package/dist/esm/arch/svm/SpokeUtils.d.ts +1 -1
  16. package/dist/esm/arch/svm/SpokeUtils.js +57 -26
  17. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  18. package/dist/esm/arch/svm/utils.d.ts +15 -1
  19. package/dist/esm/arch/svm/utils.js +33 -3
  20. package/dist/esm/arch/svm/utils.js.map +1 -1
  21. package/dist/esm/caching/Arweave/ArweaveClient.d.ts +4 -1
  22. package/dist/esm/caching/Arweave/ArweaveClient.js +72 -20
  23. package/dist/esm/caching/Arweave/ArweaveClient.js.map +1 -1
  24. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +24 -24
  25. package/dist/esm/gasPriceOracle/adapters/ethereum.js +2 -6
  26. package/dist/esm/gasPriceOracle/adapters/ethereum.js.map +1 -1
  27. package/dist/esm/gasPriceOracle/adapters/solana.js +2 -6
  28. package/dist/esm/gasPriceOracle/adapters/solana.js.map +1 -1
  29. package/dist/types/arch/svm/SpokeUtils.d.ts +1 -1
  30. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
  31. package/dist/types/arch/svm/utils.d.ts +15 -1
  32. package/dist/types/arch/svm/utils.d.ts.map +1 -1
  33. package/dist/types/caching/Arweave/ArweaveClient.d.ts +4 -1
  34. package/dist/types/caching/Arweave/ArweaveClient.d.ts.map +1 -1
  35. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +24 -24
  36. package/dist/types/gasPriceOracle/adapters/ethereum.d.ts.map +1 -1
  37. package/dist/types/gasPriceOracle/adapters/solana.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/arch/svm/SpokeUtils.ts +61 -11
  40. package/src/arch/svm/utils.ts +40 -5
  41. package/src/caching/Arweave/ArweaveClient.ts +47 -12
  42. package/src/gasPriceOracle/adapters/ethereum.ts +2 -6
  43. package/src/gasPriceOracle/adapters/solana.ts +2 -7
@@ -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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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { Idl } from "@coral-xyz/anchor";
3
- import { Address, type Commitment, IInstruction, KeyPairSigner, type TransactionSigner } from "@solana/kit";
3
+ import { Address, IInstruction, KeyPairSigner, type Commitment, type TransactionSigner } from "@solana/kit";
4
4
  import { RelayData } from "../../interfaces";
5
5
  import { BigNumber, Address as SdkAddress } from "../../utils";
6
6
  import { AttestedCCTPMessage, EventName, SVMProvider } from "./types";
@@ -152,6 +152,20 @@ export declare const getCCTPNoncePda: (solanaClient: SVMProvider, signer: KeyPai
152
152
  * @returns True if the message is a deposit for burn event, false otherwise.
153
153
  */
154
154
  export declare function isDepositForBurnEvent(event: AttestedCCTPMessage): boolean;
155
+ /**
156
+ * True if `body` encodes a `relayRootBundle(bytes32,bytes32)` call.
157
+ */
158
+ export declare const isRelayRootBundleMessageBody: (body: Buffer) => boolean;
159
+ /**
160
+ * True if `body` encodes a `emergencyDeleteRootBundle(uint32)` call.
161
+ */
162
+ export declare const isEmergencyDeleteRootBundleMessageBody: (body: Buffer) => boolean;
163
+ /**
164
+ * Decodes the root bundle ID from an emergency delete root bundle message body.
165
+ * @param body The message body.
166
+ * @returns The root bundle ID.
167
+ */
168
+ export declare const getEmergencyDeleteRootBundleRootBundleId: (body: Buffer) => number;
155
169
  /**
156
170
  * Convert a bigint (0 ≤ n < 2^256) to a 32-byte Uint8Array (big-endian).
157
171
  * @param n The bigint to convert.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/utils.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,11 @@ import { BigNumber } from "../../utils";
5
5
  export declare class ArweaveClient {
6
6
  private arweaveJWT;
7
7
  private logger;
8
+ private readonly retries;
9
+ private readonly retryDelaySeconds;
8
10
  private client;
9
11
  private gatewayUrl;
10
- constructor(arweaveJWT: JWKInterface, logger: winston.Logger, gatewayURL?: string, protocol?: string, port?: number);
12
+ constructor(arweaveJWT: JWKInterface, logger: winston.Logger, gatewayURL?: string, protocol?: string, port?: number, retries?: number, retryDelaySeconds?: number);
11
13
  /**
12
14
  * Stores an arbitrary record in the Arweave network. The record is stored as a JSON string and uses
13
15
  * JSON.stringify to convert the record to a string. The record has all of its big numbers converted
@@ -53,6 +55,7 @@ export declare class ArweaveClient {
53
55
  * @returns The address of the signer in this client
54
56
  */
55
57
  getAddress(): Promise<string>;
58
+ private _retryRequest;
56
59
  /**
57
60
  * The balance of the signer
58
61
  * @returns The balance of the signer in winston units
@@ -1 +1 @@
1
- {"version":3,"file":"ArweaveClient.d.ts","sourceRoot":"","sources":["../../../../src/caching/Arweave/ArweaveClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAA+C,MAAM,aAAa,CAAC;AAErF,qBAAa,aAAa;IAKtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IALhB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAS;gBAGjB,UAAU,EAAE,YAAY,EACxB,MAAM,EAAE,OAAO,CAAC,MAAM,EAC9B,UAAU,SAAgB,EAC1B,QAAQ,SAAU,EAClB,IAAI,SAAM;IAiBZ;;;;;;;;OAQG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwCrG;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgC5E;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EACpB,kBAAkB,SAAkC,GACnD,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IA0DvC;;;;OAIG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAkBhF;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;CAavC"}
1
+ {"version":3,"file":"ArweaveClient.d.ts","sourceRoot":"","sources":["../../../../src/caching/Arweave/ArweaveClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,MAAM,EAAU,MAAM,aAAa,CAAC;AAC7C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAsD,MAAM,aAAa,CAAC;AAE5F,qBAAa,aAAa;IAKtB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAVpC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,UAAU,CAAS;gBAGjB,UAAU,EAAE,YAAY,EACxB,MAAM,EAAE,OAAO,CAAC,MAAM,EAC9B,UAAU,SAAgB,EAC1B,QAAQ,SAAU,EAClB,IAAI,SAAM,EACO,OAAO,SAAI,EACX,iBAAiB,SAAI;IAuBxC;;;;;;;;OAQG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAwCrG;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAgC5E;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EACpB,kBAAkB,SAAkC,GACnD,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IA0DvC;;;;OAIG;IACG,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAkBhF;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;YAIf,aAAa;IAqB3B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;CAmBvC"}
@@ -24,9 +24,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
24
24
  exclusivityDeadline: number;
25
25
  destinationChainId: number;
26
26
  quoteTimestamp: number;
27
+ messageHash: string;
27
28
  fromLiteChain: boolean;
28
29
  toLiteChain: boolean;
29
- messageHash: string;
30
30
  blockNumber: number;
31
31
  logIndex: number;
32
32
  quoteBlockNumber: number;
@@ -35,10 +35,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
35
35
  updatedMessage?: string | undefined;
36
36
  transactionHash?: string | undefined;
37
37
  transactionIndex?: number | undefined;
38
+ relayerFeePct?: BigNumber | undefined;
38
39
  speedUpSignature?: string | undefined;
39
40
  txnIndex?: number | undefined;
40
41
  txnRef?: string | undefined;
41
- relayerFeePct?: BigNumber | undefined;
42
42
  }[]>>;
43
43
  bundleFillsV3: Record<string, Record<string, {
44
44
  fills: {
@@ -56,11 +56,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
56
56
  destinationChainId: number;
57
57
  repaymentChainId: number;
58
58
  quoteTimestamp: number;
59
- messageHash: string;
60
- blockNumber: number;
61
- logIndex: number;
62
- lpFeePct: BigNumber;
63
59
  relayer: SvmAddress | EvmAddress | RawAddress;
60
+ messageHash: string;
64
61
  relayExecutionInfo: {
65
62
  updatedRecipient: SvmAddress | EvmAddress | RawAddress;
66
63
  updatedOutputAmount: BigNumber;
@@ -68,6 +65,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
68
65
  updatedMessageHash: string;
69
66
  updatedMessage?: string | undefined;
70
67
  };
68
+ blockNumber: number;
69
+ logIndex: number;
70
+ lpFeePct: BigNumber;
71
71
  message?: string | undefined;
72
72
  transactionHash?: string | undefined;
73
73
  transactionIndex?: number | undefined;
@@ -93,9 +93,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
93
93
  exclusivityDeadline: number;
94
94
  destinationChainId: number;
95
95
  quoteTimestamp: number;
96
+ messageHash: string;
96
97
  fromLiteChain: boolean;
97
98
  toLiteChain: boolean;
98
- messageHash: string;
99
99
  blockNumber: number;
100
100
  logIndex: number;
101
101
  quoteBlockNumber: number;
@@ -105,10 +105,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
105
105
  updatedMessage?: string | undefined;
106
106
  transactionHash?: string | undefined;
107
107
  transactionIndex?: number | undefined;
108
+ relayerFeePct?: BigNumber | undefined;
108
109
  speedUpSignature?: string | undefined;
109
110
  txnIndex?: number | undefined;
110
111
  txnRef?: string | undefined;
111
- relayerFeePct?: BigNumber | undefined;
112
112
  }[]>>;
113
113
  expiredDepositsToRefundV3: Record<string, Record<string, {
114
114
  message: string;
@@ -125,9 +125,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
125
125
  exclusivityDeadline: number;
126
126
  destinationChainId: number;
127
127
  quoteTimestamp: number;
128
+ messageHash: string;
128
129
  fromLiteChain: boolean;
129
130
  toLiteChain: boolean;
130
- messageHash: string;
131
131
  blockNumber: number;
132
132
  logIndex: number;
133
133
  quoteBlockNumber: number;
@@ -136,10 +136,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
136
136
  updatedMessage?: string | undefined;
137
137
  transactionHash?: string | undefined;
138
138
  transactionIndex?: number | undefined;
139
+ relayerFeePct?: BigNumber | undefined;
139
140
  speedUpSignature?: string | undefined;
140
141
  txnIndex?: number | undefined;
141
142
  txnRef?: string | undefined;
142
- relayerFeePct?: BigNumber | undefined;
143
143
  }[]>>;
144
144
  unexecutableSlowFills: Record<string, Record<string, {
145
145
  message: string;
@@ -156,9 +156,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
156
156
  exclusivityDeadline: number;
157
157
  destinationChainId: number;
158
158
  quoteTimestamp: number;
159
+ messageHash: string;
159
160
  fromLiteChain: boolean;
160
161
  toLiteChain: boolean;
161
- messageHash: string;
162
162
  blockNumber: number;
163
163
  logIndex: number;
164
164
  quoteBlockNumber: number;
@@ -168,10 +168,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
168
168
  updatedMessage?: string | undefined;
169
169
  transactionHash?: string | undefined;
170
170
  transactionIndex?: number | undefined;
171
+ relayerFeePct?: BigNumber | undefined;
171
172
  speedUpSignature?: string | undefined;
172
173
  txnIndex?: number | undefined;
173
174
  txnRef?: string | undefined;
174
- relayerFeePct?: BigNumber | undefined;
175
175
  }[]>>;
176
176
  }, {
177
177
  bundleDepositsV3: import("superstruct").Struct<Record<string, Record<string, {
@@ -189,9 +189,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
189
189
  exclusivityDeadline: number;
190
190
  destinationChainId: number;
191
191
  quoteTimestamp: number;
192
+ messageHash: string;
192
193
  fromLiteChain: boolean;
193
194
  toLiteChain: boolean;
194
- messageHash: string;
195
195
  blockNumber: number;
196
196
  logIndex: number;
197
197
  quoteBlockNumber: number;
@@ -200,10 +200,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
200
200
  updatedMessage?: string | undefined;
201
201
  transactionHash?: string | undefined;
202
202
  transactionIndex?: number | undefined;
203
+ relayerFeePct?: BigNumber | undefined;
203
204
  speedUpSignature?: string | undefined;
204
205
  txnIndex?: number | undefined;
205
206
  txnRef?: string | undefined;
206
- relayerFeePct?: BigNumber | undefined;
207
207
  }[]>>, null>;
208
208
  expiredDepositsToRefundV3: import("superstruct").Struct<Record<string, Record<string, {
209
209
  message: string;
@@ -220,9 +220,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
220
220
  exclusivityDeadline: number;
221
221
  destinationChainId: number;
222
222
  quoteTimestamp: number;
223
+ messageHash: string;
223
224
  fromLiteChain: boolean;
224
225
  toLiteChain: boolean;
225
- messageHash: string;
226
226
  blockNumber: number;
227
227
  logIndex: number;
228
228
  quoteBlockNumber: number;
@@ -231,10 +231,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
231
231
  updatedMessage?: string | undefined;
232
232
  transactionHash?: string | undefined;
233
233
  transactionIndex?: number | undefined;
234
+ relayerFeePct?: BigNumber | undefined;
234
235
  speedUpSignature?: string | undefined;
235
236
  txnIndex?: number | undefined;
236
237
  txnRef?: string | undefined;
237
- relayerFeePct?: BigNumber | undefined;
238
238
  }[]>>, null>;
239
239
  unexecutableSlowFills: import("superstruct").Struct<Record<string, Record<string, {
240
240
  message: string;
@@ -251,9 +251,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
251
251
  exclusivityDeadline: number;
252
252
  destinationChainId: number;
253
253
  quoteTimestamp: number;
254
+ messageHash: string;
254
255
  fromLiteChain: boolean;
255
256
  toLiteChain: boolean;
256
- messageHash: string;
257
257
  blockNumber: number;
258
258
  logIndex: number;
259
259
  quoteBlockNumber: number;
@@ -263,10 +263,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
263
263
  updatedMessage?: string | undefined;
264
264
  transactionHash?: string | undefined;
265
265
  transactionIndex?: number | undefined;
266
+ relayerFeePct?: BigNumber | undefined;
266
267
  speedUpSignature?: string | undefined;
267
268
  txnIndex?: number | undefined;
268
269
  txnRef?: string | undefined;
269
- relayerFeePct?: BigNumber | undefined;
270
270
  }[]>>, null>;
271
271
  bundleSlowFillsV3: import("superstruct").Struct<Record<string, Record<string, {
272
272
  message: string;
@@ -283,9 +283,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
283
283
  exclusivityDeadline: number;
284
284
  destinationChainId: number;
285
285
  quoteTimestamp: number;
286
+ messageHash: string;
286
287
  fromLiteChain: boolean;
287
288
  toLiteChain: boolean;
288
- messageHash: string;
289
289
  blockNumber: number;
290
290
  logIndex: number;
291
291
  quoteBlockNumber: number;
@@ -295,10 +295,10 @@ export declare const BundleDataSS: import("superstruct").Struct<{
295
295
  updatedMessage?: string | undefined;
296
296
  transactionHash?: string | undefined;
297
297
  transactionIndex?: number | undefined;
298
+ relayerFeePct?: BigNumber | undefined;
298
299
  speedUpSignature?: string | undefined;
299
300
  txnIndex?: number | undefined;
300
301
  txnRef?: string | undefined;
301
- relayerFeePct?: BigNumber | undefined;
302
302
  }[]>>, null>;
303
303
  bundleFillsV3: import("superstruct").Struct<Record<string, Record<string, {
304
304
  fills: {
@@ -316,11 +316,8 @@ export declare const BundleDataSS: import("superstruct").Struct<{
316
316
  destinationChainId: number;
317
317
  repaymentChainId: number;
318
318
  quoteTimestamp: number;
319
- messageHash: string;
320
- blockNumber: number;
321
- logIndex: number;
322
- lpFeePct: BigNumber;
323
319
  relayer: SvmAddress | EvmAddress | RawAddress;
320
+ messageHash: string;
324
321
  relayExecutionInfo: {
325
322
  updatedRecipient: SvmAddress | EvmAddress | RawAddress;
326
323
  updatedOutputAmount: BigNumber;
@@ -328,6 +325,9 @@ export declare const BundleDataSS: import("superstruct").Struct<{
328
325
  updatedMessageHash: string;
329
326
  updatedMessage?: string | undefined;
330
327
  };
328
+ blockNumber: number;
329
+ logIndex: number;
330
+ lpFeePct: BigNumber;
331
331
  message?: string | undefined;
332
332
  transactionHash?: string | undefined;
333
333
  transactionIndex?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/ethereum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAA4D,MAAM,aAAa,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEjH;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,SAAS,EAC5B,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAkB9B;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
1
+ {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/ethereum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,SAAS,EAAgD,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEjH;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,SAAS,EAC5B,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAc9B;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAC1B,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAC5B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAoCnH"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../../src/gasPriceOracle/adapters/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,WAAW,CAAC;AAGpD;;;GAGG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA+BnH"}
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.22",
4
+ "version": "4.3.23",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -1,6 +1,6 @@
1
1
  import { MessageTransmitterClient, SvmSpokeClient, TokenMessengerMinterClient } from "@across-protocol/contracts";
2
2
  import { decodeFillStatusAccount, fetchState } from "@across-protocol/contracts/dist/src/svm/clients/SvmSpoke";
3
- import { hashNonEmptyMessage } from "@across-protocol/contracts/dist/src/svm/web3-v1";
3
+ import { decodeMessageHeader, hashNonEmptyMessage } from "@across-protocol/contracts/dist/src/svm/web3-v1";
4
4
  import { intToU8Array32 } from "@across-protocol/contracts/dist/src/svm/web3-v1/conversionUtils";
5
5
  import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system";
6
6
  import {
@@ -64,11 +64,17 @@ import {
64
64
  simulateAndDecode,
65
65
  toAddress,
66
66
  unwrapEventData,
67
+ getRootBundlePda,
67
68
  } from "./";
68
69
  import { SvmCpiEventsClient } from "./eventsClient";
69
70
  import { SVM_NO_BLOCK_AT_SLOT, isSolanaError } from "./provider";
70
71
  import { AttestedCCTPMessage, SVMEventNames, SVMProvider } from "./types";
71
- import { getNearestSlotTime } from "./utils";
72
+ import {
73
+ getEmergencyDeleteRootBundleRootBundleId,
74
+ getNearestSlotTime,
75
+ isEmergencyDeleteRootBundleMessageBody,
76
+ isRelayRootBundleMessageBody,
77
+ } from "./utils";
72
78
 
73
79
  /**
74
80
  * @note: Average Solana slot duration is about 400-500ms. We can be conservative
@@ -1115,15 +1121,59 @@ export const hasCCTPV1MessageBeenProcessed = async (
1115
1121
  * Returns the account metas for a tokenless message.
1116
1122
  * @returns The account metas for a tokenless message.
1117
1123
  */
1118
- export async function getAccountMetasForTokenlessMessage(): Promise<IAccountMeta<string>[]> {
1119
- const statePda = await getStatePda(SvmSpokeClient.SVM_SPOKE_PROGRAM_ADDRESS);
1120
- return [
1124
+ export async function getAccountMetasForTokenlessMessage(
1125
+ solanaClient: SVMProvider,
1126
+ signer: KeyPairSigner,
1127
+ messageBytes: string
1128
+ ): Promise<IAccountMeta<string>[]> {
1129
+ const messageHeader = decodeMessageHeader(Buffer.from(messageBytes, "hex"));
1130
+ const programAddress = SvmSpokeClient.SVM_SPOKE_PROGRAM_ADDRESS;
1131
+ const statePda = await getStatePda(programAddress);
1132
+ const selfAuthority = await getSelfAuthority();
1133
+ const eventAuthority = await getEventAuthority(programAddress);
1134
+
1135
+ const base: IAccountMeta<string>[] = [
1121
1136
  { address: statePda, role: AccountRole.READONLY },
1122
- { address: await getSelfAuthority(), role: AccountRole.READONLY },
1123
- { address: SvmSpokeClient.SVM_SPOKE_PROGRAM_ADDRESS, role: AccountRole.READONLY },
1137
+ { address: selfAuthority, role: AccountRole.READONLY },
1138
+ { address: programAddress, role: AccountRole.READONLY },
1139
+ ];
1140
+
1141
+ if (isRelayRootBundleMessageBody(messageHeader.messageBody)) {
1142
+ const {
1143
+ data: { rootBundleId },
1144
+ } = await SvmSpokeClient.fetchState(solanaClient, statePda);
1145
+ const rootBundle = await getRootBundlePda(programAddress, rootBundleId);
1146
+
1147
+ return [
1148
+ ...base,
1149
+ { address: signer.address, role: AccountRole.WRITABLE },
1150
+ { address: statePda, role: AccountRole.WRITABLE },
1151
+ { address: rootBundle, role: AccountRole.WRITABLE },
1152
+ { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY },
1153
+ { address: eventAuthority, role: AccountRole.READONLY },
1154
+ { address: programAddress, role: AccountRole.READONLY },
1155
+ ];
1156
+ }
1157
+
1158
+ if (isEmergencyDeleteRootBundleMessageBody(messageHeader.messageBody)) {
1159
+ const rootBundleId = getEmergencyDeleteRootBundleRootBundleId(messageHeader.messageBody);
1160
+ const rootBundle = await getRootBundlePda(programAddress, rootBundleId);
1161
+
1162
+ return [
1163
+ ...base,
1164
+ { address: signer.address, role: AccountRole.READONLY },
1165
+ { address: statePda, role: AccountRole.READONLY },
1166
+ { address: rootBundle, role: AccountRole.WRITABLE },
1167
+ { address: eventAuthority, role: AccountRole.READONLY },
1168
+ { address: programAddress, role: AccountRole.READONLY },
1169
+ ];
1170
+ }
1171
+
1172
+ return [
1173
+ ...base,
1124
1174
  { address: statePda, role: AccountRole.WRITABLE },
1125
- { address: await getEventAuthority(SvmSpokeClient.SVM_SPOKE_PROGRAM_ADDRESS), role: AccountRole.READONLY },
1126
- { address: SvmSpokeClient.SVM_SPOKE_PROGRAM_ADDRESS, role: AccountRole.READONLY },
1175
+ { address: eventAuthority, role: AccountRole.READONLY },
1176
+ { address: programAddress, role: AccountRole.READONLY },
1127
1177
  ];
1128
1178
  }
1129
1179
 
@@ -1249,7 +1299,7 @@ export async function getCCTPV1ReceiveMessageTx(
1249
1299
  hubChainId,
1250
1300
  TokenMessengerMinterClient.TOKEN_MESSENGER_MINTER_PROGRAM_ADDRESS
1251
1301
  )
1252
- : await getAccountMetasForTokenlessMessage();
1302
+ : await getAccountMetasForTokenlessMessage(solanaClient, signer, message.messageBytes);
1253
1303
 
1254
1304
  const messageBytes = message.messageBytes.startsWith("0x")
1255
1305
  ? Buffer.from(message.messageBytes.slice(2), "hex")
@@ -1263,7 +1313,7 @@ export async function getCCTPV1ReceiveMessageTx(
1263
1313
  messageTransmitter: messageTransmitterPda,
1264
1314
  eventAuthority: eventAuthorityPda,
1265
1315
  usedNonces,
1266
- receiver: SvmSpokeClient.SVM_SPOKE_PROGRAM_ADDRESS,
1316
+ receiver: cctpMessageReceiver,
1267
1317
  systemProgram: SYSTEM_PROGRAM_ADDRESS,
1268
1318
  message: messageBytes,
1269
1319
  attestation: Buffer.from(message.attestation.slice(2), "hex"),
@@ -1,9 +1,7 @@
1
- import assert from "assert";
2
- import { MessageTransmitterClient, SvmSpokeClient } from "@across-protocol/contracts";
1
+ import { MessageTransmitterClient, SpokePool__factory, SvmSpokeClient } from "@across-protocol/contracts";
3
2
  import { BN, BorshEventCoder, Idl } from "@coral-xyz/anchor";
4
3
  import {
5
4
  Address,
6
- type Commitment,
7
5
  IInstruction,
8
6
  KeyPairSigner,
9
7
  address,
@@ -19,14 +17,16 @@ import {
19
17
  setTransactionMessageFeePayerSigner,
20
18
  setTransactionMessageLifetimeUsingBlockhash,
21
19
  signTransactionMessageWithSigners,
20
+ type Commitment,
22
21
  type TransactionSigner,
23
22
  } from "@solana/kit";
23
+ import assert from "assert";
24
24
  import bs58 from "bs58";
25
25
  import { ethers } from "ethers";
26
26
  import { FillType, RelayData } from "../../interfaces";
27
- import { BigNumber, biMin, Address as SdkAddress, getRelayDataHash, isDefined, isUint8Array } from "../../utils";
28
- import { AttestedCCTPMessage, EventName, SVMEventNames, SVMProvider } from "./types";
27
+ import { BigNumber, Address as SdkAddress, biMin, getRelayDataHash, isDefined, isUint8Array } from "../../utils";
29
28
  import { getTimestampForSlot } from "./SpokeUtils";
29
+ import { AttestedCCTPMessage, EventName, SVMEventNames, SVMProvider } from "./types";
30
30
 
31
31
  export { isSolanaError } from "@solana/kit";
32
32
 
@@ -472,6 +472,41 @@ export function isDepositForBurnEvent(event: AttestedCCTPMessage): boolean {
472
472
  return event.type === "transfer";
473
473
  }
474
474
 
475
+ /**
476
+ * True if `body` encodes a `relayRootBundle(bytes32,bytes32)` call.
477
+ */
478
+ export const isRelayRootBundleMessageBody = (body: Buffer): boolean => {
479
+ if (body.length < 4) return false;
480
+
481
+ const spokePoolInterface = new ethers.utils.Interface(SpokePool__factory.abi);
482
+ const relayRootBundleSelector = spokePoolInterface.getSighash("relayRootBundle");
483
+
484
+ return body.slice(0, 4).equals(Buffer.from(relayRootBundleSelector.slice(2), "hex"));
485
+ };
486
+
487
+ /**
488
+ * True if `body` encodes a `emergencyDeleteRootBundle(uint32)` call.
489
+ */
490
+ export const isEmergencyDeleteRootBundleMessageBody = (body: Buffer): boolean => {
491
+ if (body.length < 4) return false;
492
+
493
+ const spokePoolInterface = new ethers.utils.Interface(SpokePool__factory.abi);
494
+ const emergencyDeleteRootBundleSelector = spokePoolInterface.getSighash("emergencyDeleteRootBundle");
495
+
496
+ return body.slice(0, 4).equals(Buffer.from(emergencyDeleteRootBundleSelector.slice(2), "hex"));
497
+ };
498
+
499
+ /**
500
+ * Decodes the root bundle ID from an emergency delete root bundle message body.
501
+ * @param body The message body.
502
+ * @returns The root bundle ID.
503
+ */
504
+ export const getEmergencyDeleteRootBundleRootBundleId = (body: Buffer): number => {
505
+ const spokePoolInterface = new ethers.utils.Interface(SpokePool__factory.abi);
506
+ const result = spokePoolInterface.decodeFunctionData("emergencyDeleteRootBundle", body);
507
+ return result.rootBundleId.toNumber();
508
+ };
509
+
475
510
  /**
476
511
  * Convert a bigint (0 ≤ n < 2^256) to a 32-byte Uint8Array (big-endian).
477
512
  * @param n The bigint to convert.
@@ -4,7 +4,7 @@ import axios from "axios";
4
4
  import { Struct, create } from "superstruct";
5
5
  import winston from "winston";
6
6
  import { ARWEAVE_TAG_APP_NAME, ARWEAVE_TAG_APP_VERSION, DEFAULT_ARWEAVE_STORAGE_ADDRESS } from "../../constants";
7
- import { BigNumber, isDefined, jsonReplacerWithBigNumbers, toBN } from "../../utils";
7
+ import { BigNumber, delay, isDefined, jsonReplacerWithBigNumbers, toBN } from "../../utils";
8
8
 
9
9
  export class ArweaveClient {
10
10
  private client: Arweave;
@@ -15,7 +15,9 @@ export class ArweaveClient {
15
15
  private logger: winston.Logger,
16
16
  gatewayURL = "arweave.net",
17
17
  protocol = "https",
18
- port = 443
18
+ port = 443,
19
+ private readonly retries = 2,
20
+ private readonly retryDelaySeconds = 1
19
21
  ) {
20
22
  this.gatewayUrl = `${protocol}://${gatewayURL}:${port}`;
21
23
  this.client = new Arweave({
@@ -30,6 +32,12 @@ export class ArweaveClient {
30
32
  message: "Arweave client initialized",
31
33
  gateway: this.gatewayUrl,
32
34
  });
35
+ if (this.retries < 0) {
36
+ throw new Error(`retries cannot be < 0 and must be an integer. Currently set to ${this.retries}`);
37
+ }
38
+ if (this.retryDelaySeconds < 0) {
39
+ throw new Error(`delay cannot be < 0. Currently set to ${this.retryDelaySeconds}`);
40
+ }
33
41
  }
34
42
 
35
43
  /**
@@ -225,21 +233,48 @@ export class ArweaveClient {
225
233
  return this.client.wallets.jwkToAddress(this.arweaveJWT);
226
234
  }
227
235
 
236
+ private async _retryRequest<T>(request: () => Promise<T>, retryCount: number): Promise<T> {
237
+ try {
238
+ return request();
239
+ } catch (e) {
240
+ if (retryCount < this.retries) {
241
+ // Implement a slightly aggressive exponential backoff to account for fierce parallelism.
242
+ const baseDelay = this.retryDelaySeconds * Math.pow(2, retryCount); // ms; attempt = [0, 1, 2, ...]
243
+ const delayS = baseDelay + baseDelay * Math.random();
244
+ this.logger.debug({
245
+ at: "ArweaveClient:getBalance",
246
+ message: `Arweave request failed, retrying after waiting ${delayS} seconds: ${e}`,
247
+ retryCount,
248
+ });
249
+ await delay(delayS);
250
+ return this._retryRequest(request, retryCount + 1);
251
+ } else {
252
+ throw e;
253
+ }
254
+ }
255
+ }
256
+
228
257
  /**
229
258
  * The balance of the signer
230
259
  * @returns The balance of the signer in winston units
231
260
  */
232
261
  async getBalance(): Promise<BigNumber> {
233
262
  const address = await this.getAddress();
234
- const balanceInFloat = await this.client.wallets.getBalance(address);
235
- // Sometimes the balance is returned in scientific notation, so we need to
236
- // convert it to a BigNumber
237
- if (balanceInFloat.includes("e")) {
238
- const [balance, exponent] = balanceInFloat.split("e");
239
- const resultingBN = BigNumber.from(balance).mul(toBN(10).pow(exponent.replace("+", "")));
240
- return BigNumber.from(resultingBN.toString());
241
- } else {
242
- return BigNumber.from(balanceInFloat);
243
- }
263
+ const request = async () => {
264
+ const balanceInFloat = await this.client.wallets.getBalance(address);
265
+ // @dev The reason we add in the BN.from into this retry loop is because the client.getBalance call
266
+ // does not correctly throw an error if the request fails, instead it will return the error string as the
267
+ // balanceInFloat.
268
+ // Sometimes the balance is returned in scientific notation, so we need to
269
+ // convert it to a BigNumber
270
+ if (balanceInFloat.includes("e")) {
271
+ const [balance, exponent] = balanceInFloat.split("e");
272
+ const resultingBN = BigNumber.from(balance).mul(toBN(10).pow(exponent.replace("+", "")));
273
+ return BigNumber.from(resultingBN.toString());
274
+ } else {
275
+ return BigNumber.from(balanceInFloat);
276
+ }
277
+ };
278
+ return await this._retryRequest(request, 0);
244
279
  }
245
280
  }
@@ -1,6 +1,6 @@
1
1
  import assert from "assert";
2
2
  import { providers } from "ethers";
3
- import { BigNumber, bnZero, fixedPointAdjustment, getNetworkName, parseUnits } from "../../utils";
3
+ import { BigNumber, bnZero, fixedPointAdjustment, getNetworkName } from "../../utils";
4
4
  import { EvmGasPriceEstimate } from "../types";
5
5
  import { gasPriceError } from "../util";
6
6
  import { GasPriceEstimateOptions } from "../oracle";
@@ -37,11 +37,7 @@ export async function eip1559Raw(
37
37
  const maxPriorityFeePerGas = BigNumber.from(_maxPriorityFeePerGas);
38
38
  assert(BigNumber.isBigNumber(baseFeePerGas), `No baseFeePerGas received on ${getNetworkName(chainId)}`);
39
39
 
40
- let scaledPriorityFee = maxPriorityFeePerGas.mul(priorityFeeMultiplier).div(fixedPointAdjustment);
41
- const flooredPriorityFeePerGas = parseUnits(process.env[`MIN_PRIORITY_FEE_PER_GAS_${chainId}`] || "0", 9);
42
- if (scaledPriorityFee.lt(flooredPriorityFeePerGas)) {
43
- scaledPriorityFee = BigNumber.from(flooredPriorityFeePerGas);
44
- }
40
+ const scaledPriorityFee = maxPriorityFeePerGas.mul(priorityFeeMultiplier).div(fixedPointAdjustment);
45
41
  const scaledBaseFee = baseFeePerGas.mul(baseFeeMultiplier).div(fixedPointAdjustment);
46
42
  return {
47
43
  maxFeePerGas: scaledPriorityFee.add(scaledBaseFee),