@across-protocol/sdk 4.3.68 → 4.3.70

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 (70) hide show
  1. package/dist/cjs/arch/evm/MessageUtils.d.ts +3 -0
  2. package/dist/cjs/arch/evm/MessageUtils.js +8 -0
  3. package/dist/cjs/arch/evm/MessageUtils.js.map +1 -0
  4. package/dist/cjs/arch/evm/index.d.ts +1 -0
  5. package/dist/cjs/arch/evm/index.js +1 -0
  6. package/dist/cjs/arch/evm/index.js.map +1 -1
  7. package/dist/cjs/arch/svm/MessageUtils.d.ts +3 -0
  8. package/dist/cjs/arch/svm/MessageUtils.js +9 -0
  9. package/dist/cjs/arch/svm/MessageUtils.js.map +1 -0
  10. package/dist/cjs/arch/svm/SpokeUtils.js +22 -60
  11. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  12. package/dist/cjs/arch/svm/index.d.ts +1 -0
  13. package/dist/cjs/arch/svm/index.js +1 -0
  14. package/dist/cjs/arch/svm/index.js.map +1 -1
  15. package/dist/cjs/arch/svm/provider.d.ts +1 -1
  16. package/dist/cjs/arch/svm/provider.js +2 -1
  17. package/dist/cjs/arch/svm/provider.js.map +1 -1
  18. package/dist/cjs/providers/solana/retryRpcFactory.js +4 -0
  19. package/dist/cjs/providers/solana/retryRpcFactory.js.map +1 -1
  20. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +2 -1
  21. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  22. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js +2 -1
  23. package/dist/cjs/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  24. package/dist/esm/arch/evm/MessageUtils.d.ts +9 -0
  25. package/dist/esm/arch/evm/MessageUtils.js +11 -0
  26. package/dist/esm/arch/evm/MessageUtils.js.map +1 -0
  27. package/dist/esm/arch/evm/index.d.ts +1 -0
  28. package/dist/esm/arch/evm/index.js +1 -0
  29. package/dist/esm/arch/evm/index.js.map +1 -1
  30. package/dist/esm/arch/svm/MessageUtils.d.ts +9 -0
  31. package/dist/esm/arch/svm/MessageUtils.js +15 -0
  32. package/dist/esm/arch/svm/MessageUtils.js.map +1 -0
  33. package/dist/esm/arch/svm/SpokeUtils.js +25 -61
  34. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  35. package/dist/esm/arch/svm/index.d.ts +1 -0
  36. package/dist/esm/arch/svm/index.js +1 -0
  37. package/dist/esm/arch/svm/index.js.map +1 -1
  38. package/dist/esm/arch/svm/provider.d.ts +1 -1
  39. package/dist/esm/arch/svm/provider.js +1 -1
  40. package/dist/esm/arch/svm/provider.js.map +1 -1
  41. package/dist/esm/providers/solana/retryRpcFactory.js +7 -2
  42. package/dist/esm/providers/solana/retryRpcFactory.js.map +1 -1
  43. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +2 -1
  44. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  45. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js +4 -6
  46. package/dist/esm/relayFeeCalculator/chain-queries/svmQuery.js.map +1 -1
  47. package/dist/types/arch/evm/MessageUtils.d.ts +10 -0
  48. package/dist/types/arch/evm/MessageUtils.d.ts.map +1 -0
  49. package/dist/types/arch/evm/index.d.ts +1 -0
  50. package/dist/types/arch/evm/index.d.ts.map +1 -1
  51. package/dist/types/arch/svm/MessageUtils.d.ts +10 -0
  52. package/dist/types/arch/svm/MessageUtils.d.ts.map +1 -0
  53. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
  54. package/dist/types/arch/svm/index.d.ts +1 -0
  55. package/dist/types/arch/svm/index.d.ts.map +1 -1
  56. package/dist/types/arch/svm/provider.d.ts +1 -1
  57. package/dist/types/arch/svm/provider.d.ts.map +1 -1
  58. package/dist/types/providers/solana/retryRpcFactory.d.ts.map +1 -1
  59. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  60. package/dist/types/relayFeeCalculator/chain-queries/svmQuery.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/arch/evm/MessageUtils.ts +12 -0
  63. package/src/arch/evm/index.ts +1 -0
  64. package/src/arch/svm/MessageUtils.ts +16 -0
  65. package/src/arch/svm/SpokeUtils.ts +15 -42
  66. package/src/arch/svm/index.ts +1 -0
  67. package/src/arch/svm/provider.ts +1 -0
  68. package/src/providers/solana/retryRpcFactory.ts +7 -2
  69. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +2 -1
  70. package/src/relayFeeCalculator/chain-queries/svmQuery.ts +4 -22
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,aAAa,EACb,wDAAwD,IAAI,uBAAuB,EACnF,iDAAiD,IAAI,gBAAgB,EACrE,uEAAuE,IAAI,iCAAiC,GAC7G,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/arch/svm/provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,aAAa,EACb,wDAAwD,IAAI,uBAAuB,EACnF,iDAAiD,IAAI,gBAAgB,EACrE,mEAAmE,IAAI,kCAAkC,EACzG,uEAAuE,IAAI,iCAAiC,GAC7G,MAAM,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"retryRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/retryRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,qBAAa,qBAAsB,SAAQ,uBAAuB;IAO9D,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IANpC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAE7C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGd,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EAClC,GAAG,4BAA4B,EAAE,qBAAqB,CAAC,OAAO,2BAA2B,CAAC;IAuBrF,eAAe,IAAI,YAAY;IAMtC;;;;;OAKG;YACW,QAAQ;IA8BtB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"retryRpcFactory.d.ts","sourceRoot":"","sources":["../../../../src/providers/solana/retryRpcFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2C,MAAM,aAAa,CAAC;AAEpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAGtE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,qBAAa,qBAAsB,SAAQ,uBAAuB;IAO9D,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IANpC,SAAS,CAAC,oBAAoB,EAAE,YAAY,CAAC;IAE7C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAGd,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,EAClC,GAAG,4BAA4B,EAAE,qBAAqB,CAAC,OAAO,2BAA2B,CAAC;IAuBrF,eAAe,IAAI,YAAY;IAMtC;;;;;OAKG;YACW,QAAQ;IA8BtB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAQ5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseQuery.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/baseQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseQuery.d.ts","sourceRoot":"","sources":["../../../../src/relayFeeCalculator/chain-queries/baseQuery.ts"],"names":[],"mappings":"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"}
@@ -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,EACL,WAAW,EAMZ,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EACL,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,uBAAuB,EAIxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAIvC;;;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;IAO1D;;;;;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,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"}
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.68",
4
+ "version": "4.3.70",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -0,0 +1,12 @@
1
+ import { RelayData } from "../../interfaces";
2
+ import { BigNumber, bnZero } from "../../utils";
3
+
4
+ /**
5
+ * @notice Return the native token cost of filling a deposit beyond gas cost. We're not using msg.value in our fills,
6
+ * so return zero for EVM side
7
+ * @param deposit RelayData associated with Deposit we're estimating for
8
+ * @returns Native token cost
9
+ */
10
+ export function getAuxiliaryNativeTokenCost(_deposit: RelayData): BigNumber {
11
+ return bnZero;
12
+ }
@@ -1,3 +1,4 @@
1
1
  export * from "./SpokeUtils";
2
2
  export * from "./BlockUtils";
3
3
  export * from "./utils";
4
+ export * from "./MessageUtils";
@@ -0,0 +1,16 @@
1
+ import { deserializeMessage } from ".";
2
+ import { RelayData } from "../../interfaces";
3
+ import { BigNumber, bnZero, isMessageEmpty } from "../../utils";
4
+
5
+ /**
6
+ * @notice Return the native token cost of filling a deposit beyond gas cost. We're not using msg.value in our fills,
7
+ * so return zero for EVM side
8
+ * @param deposit RelayData associated with Deposit we're estimating for
9
+ * @returns Native token cost
10
+ */
11
+ export function getAuxiliaryNativeTokenCost(deposit: RelayData): BigNumber {
12
+ // Notice. We return `message.value_amount` here instead of simulating the Transaction. The reason is, we choose to
13
+ // rely hard on Solana program to protect us from not taking more than `value_amount` rather than relying on
14
+ // simulation. Chain state may change between simulation and execution, so simulation alone is unreliable
15
+ return isMessageEmpty(deposit.message) ? bnZero : BigNumber.from(deserializeMessage(deposit.message).value_amount);
16
+ }
@@ -86,7 +86,7 @@ import {
86
86
  toSvmRelayData,
87
87
  } from "./";
88
88
  import { SvmCpiEventsClient } from "./eventsClient";
89
- import { SVM_BLOCK_NOT_AVAILABLE, SVM_SLOT_SKIPPED, isSolanaError } from "./provider";
89
+ import { SVM_LONG_TERM_STORAGE_SLOT_SKIPPED, SVM_SLOT_SKIPPED, isSolanaError } from "./provider";
90
90
  import { AttestedCCTPMessage, SVMEventNames, SVMProvider } from "./types";
91
91
  import {
92
92
  getEmergencyDeleteRootBundleRootBundleId,
@@ -163,67 +163,40 @@ async function _callGetTimestampForSlotWithRetry(
163
163
  maxRetries: number,
164
164
  logger?: winston.Logger
165
165
  ): Promise<number | undefined> {
166
- // @note: getBlockTime receives a slot number, not a block number.
166
+ const slot = slotNumber.toString();
167
167
  let _timestamp: bigint;
168
168
 
169
- const retryCall = async () => {
170
- const slot = slotNumber.toString();
171
- // Implement exponential backoff with jitter where the # of seconds to wait is = 2^retryAttempt + jitter
172
- // e.g. First two retry delays are ~1.5s and ~2.5s.
173
- const delaySeconds = 2 ** retryAttempt + Math.random();
174
-
175
- if (retryAttempt >= maxRetries) {
176
- throw new Error(`Timeout on SVM getBlockTime() for slot ${slot} after ${retryAttempt} retry attempts`);
177
- }
178
- logger?.debug({
179
- at: "getTimestampForSlot",
180
- message: `Retrying getBlockTime() after ${delaySeconds} seconds for retry attempt #${retryAttempt}`,
181
- slot,
182
- retryAttempt,
183
- maxRetries,
184
- delaySeconds,
185
- });
186
- await delay(delaySeconds);
187
- return _callGetTimestampForSlotWithRetry(provider, slotNumber, ++retryAttempt, maxRetries, logger);
188
- };
189
-
190
169
  try {
170
+ // @note: getBlockTime receives a slot number, not a block number.
191
171
  _timestamp = await provider.getBlockTime(slotNumber).send();
192
172
  } catch (err) {
193
173
  if (!isSolanaError(err)) {
194
174
  throw err;
195
175
  }
196
176
 
177
+ const at = "getTimestampForSlot";
197
178
  const { __code: code } = err.context;
198
- const slot = slotNumber.toString();
199
179
 
200
180
  switch (err.context.__code) {
201
181
  case SVM_SLOT_SKIPPED:
182
+ case SVM_LONG_TERM_STORAGE_SLOT_SKIPPED:
183
+ // No block available for this slot; caller must decide on how to handle this.
202
184
  return undefined;
203
185
 
204
- case SVM_BLOCK_NOT_AVAILABLE: {
205
- return await retryCall();
206
- }
207
-
208
- default:
209
- logger?.debug({
210
- at: "getTimestampForSlot",
211
- message: "Caught error from getBlockTime()",
212
- errorCode: code,
213
- slot,
214
- retryAttempt,
215
- maxRetries,
216
- });
186
+ default: {
187
+ const message = "Caught error from getBlockTime()";
188
+ logger?.debug({ at, message, errorCode: code, slot, retryAttempt, maxRetries });
217
189
  throw new Error(`Unhandled SVM getBlockTime() error for slot ${slot}: ${code}`, { cause: err });
190
+ }
218
191
  }
219
192
  }
220
193
 
221
- // If the timestamp is null, then the timestamp is not available yet for the block so retrying might help.
222
- if (_timestamp === null) {
223
- return await retryCall();
224
- }
194
+ // _timestamp should be a BigInt or undefined. If not undefined, ensure that conversion to number does not truncate.
225
195
  const timestamp = Number(_timestamp);
226
- assert(BigInt(timestamp) === _timestamp, `Unexpected SVM block timestamp: ${_timestamp}`); // No truncation.
196
+ assert(
197
+ !isDefined(_timestamp) || BigInt(timestamp) === _timestamp,
198
+ `Unexpected block timestamp for SVM slot ${slot}: ${_timestamp}`
199
+ );
227
200
 
228
201
  return timestamp;
229
202
  }
@@ -6,3 +6,4 @@ export * from "./constants";
6
6
  export * from "./BlockUtils";
7
7
  export * from "./provider";
8
8
  export * from "./encoders";
9
+ export * from "./MessageUtils";
@@ -6,5 +6,6 @@ export {
6
6
  isSolanaError,
7
7
  SOLANA_ERROR__JSON_RPC__SERVER_ERROR_BLOCK_NOT_AVAILABLE as SVM_BLOCK_NOT_AVAILABLE,
8
8
  SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SLOT_SKIPPED as SVM_SLOT_SKIPPED,
9
+ SOLANA_ERROR__JSON_RPC__SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED as SVM_LONG_TERM_STORAGE_SLOT_SKIPPED,
9
10
  SOLANA_ERROR__JSON_RPC__SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE as SVM_TRANSACTION_PREFLIGHT_FAILURE,
10
11
  } from "@solana/kit";
@@ -2,7 +2,7 @@ import { RpcTransport, SOLANA_ERROR__RPC__TRANSPORT_HTTP_ERROR } from "@solana/k
2
2
  import { getThrowSolanaErrorResponseTransformer } from "@solana/rpc-transformers";
3
3
  import { SolanaClusterRpcFactory } from "./baseRpcFactories";
4
4
  import { RateLimitedSolanaRpcFactory } from "./rateLimitedRpcFactory";
5
- import { isSolanaError } from "../../arch/svm";
5
+ import { isSolanaError, SVM_SLOT_SKIPPED, SVM_LONG_TERM_STORAGE_SLOT_SKIPPED } from "../../arch/svm";
6
6
  import { delay } from "../../utils";
7
7
  import { Logger } from "winston";
8
8
 
@@ -93,8 +93,13 @@ export class RetrySolanaRpcFactory extends SolanaClusterRpcFactory {
93
93
  return false;
94
94
  }
95
95
 
96
- // const { __code: code } = error.context;
96
+ // JSON-RPC errors: https://www.quicknode.com/docs/solana/error-references
97
+ const { __code: code } = error.context;
97
98
  switch (method) {
99
+ case "getBlock":
100
+ case "getBlockTime":
101
+ // No block at the requested slot. This may not be correct for blocks > 1 year old.
102
+ return [SVM_SLOT_SKIPPED, SVM_LONG_TERM_STORAGE_SLOT_SKIPPED].includes(code);
98
103
  default:
99
104
  return false;
100
105
  }
@@ -22,6 +22,7 @@ import { Logger, QueryInterface, getDefaultRelayer } from "../relayFeeCalculator
22
22
  import { Transport } from "viem";
23
23
  import { getGasPriceEstimate } from "../../gasPriceOracle";
24
24
  import { EvmProvider } from "../../arch/evm/types";
25
+ import { arch } from "../..";
25
26
 
26
27
  export type SymbolMappingType = Record<
27
28
  string,
@@ -167,7 +168,7 @@ export class QueryBase implements QueryInterface {
167
168
  * @returns Native token cost
168
169
  */
169
170
  getAuxiliaryNativeTokenCost(_deposit: RelayData): BigNumber {
170
- return bnZero;
171
+ return arch.evm.getAuxiliaryNativeTokenCost(_deposit);
171
172
  }
172
173
 
173
174
  /**
@@ -5,32 +5,17 @@ import {
5
5
  fetchEncodedAccount,
6
6
  isSome,
7
7
  } from "@solana/kit";
8
- import {
9
- SVMProvider,
10
- SolanaVoidSigner,
11
- getFillRelayTx,
12
- toAddress,
13
- getAssociatedTokenAddress,
14
- deserializeMessage,
15
- } from "../../arch/svm";
8
+ import { SVMProvider, SolanaVoidSigner, getFillRelayTx, toAddress, getAssociatedTokenAddress } from "../../arch/svm";
16
9
  import { Coingecko } from "../../coingecko";
17
10
  import { CHAIN_IDs } from "../../constants";
18
11
  import { getGasPriceEstimate } from "../../gasPriceOracle";
19
12
  import { RelayData } from "../../interfaces";
20
- import {
21
- Address,
22
- BigNumber,
23
- BigNumberish,
24
- SvmAddress,
25
- TransactionCostEstimate,
26
- bnZero,
27
- isMessageEmpty,
28
- toBN,
29
- } from "../../utils";
13
+ import { Address, BigNumber, BigNumberish, SvmAddress, TransactionCostEstimate, toBN } from "../../utils";
30
14
  import { Logger, QueryInterface, getDefaultRelayer } from "../relayFeeCalculator";
31
15
  import { SymbolMappingType } from "./";
32
16
  import { TOKEN_PROGRAM_ADDRESS } from "@solana-program/token";
33
17
  import { TOKEN_2022_PROGRAM_ADDRESS, getTokenSize, fetchMint, Extension } from "@solana-program/token-2022";
18
+ import { arch } from "../..";
34
19
 
35
20
  /**
36
21
  * A special QueryBase implementation for SVM used for querying gas costs, token prices, and decimals of various tokens
@@ -180,10 +165,7 @@ export class SvmQuery implements QueryInterface {
180
165
  * @returns Native token cost
181
166
  */
182
167
  getAuxiliaryNativeTokenCost(deposit: RelayData): BigNumber {
183
- // Notice. We return `message.value_amount` here instead of simulating the Transaction. The reason is, we choose to
184
- // rely hard on Solana program to protect us from not taking more than `value_amount` rather than relying on
185
- // simulation. Chain state may change between simulation and execution, so simulation alone is unreliable
186
- return isMessageEmpty(deposit.message) ? bnZero : BigNumber.from(deserializeMessage(deposit.message).value_amount);
168
+ return arch.svm.getAuxiliaryNativeTokenCost(deposit);
187
169
  }
188
170
 
189
171
  /**