@gala-chain/gswap-sdk 2.0.0 → 2.1.0-beta.1

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 (76) hide show
  1. package/README.md +8 -2
  2. package/dist/browser/classes/apply_results.js.map +1 -1
  3. package/dist/browser/classes/assets.js.map +1 -1
  4. package/dist/browser/classes/dex_fees.js +1 -1
  5. package/dist/browser/classes/dex_fees.js.map +1 -1
  6. package/dist/browser/classes/gateway.js +1 -1
  7. package/dist/browser/classes/gateway.js.map +1 -1
  8. package/dist/browser/classes/gdex_stream.js +1 -1
  9. package/dist/browser/classes/gdex_stream.js.map +1 -1
  10. package/dist/browser/classes/gswap.js +1 -1
  11. package/dist/browser/classes/gswap.js.map +1 -1
  12. package/dist/browser/classes/gswap_error_catalog.js +1 -1
  13. package/dist/browser/classes/gswap_error_catalog.js.map +1 -1
  14. package/dist/browser/classes/gswap_error_phase_table.js +1 -1
  15. package/dist/browser/classes/gswap_error_phase_table.js.map +1 -1
  16. package/dist/browser/classes/gswap_sdk_error.js +1 -1
  17. package/dist/browser/classes/gswap_sdk_error.js.map +1 -1
  18. package/dist/browser/classes/http_client.js.map +1 -1
  19. package/dist/browser/classes/leaderboard.js.map +1 -1
  20. package/dist/browser/classes/market.js.map +1 -1
  21. package/dist/browser/classes/onramper.js.map +1 -1
  22. package/dist/browser/classes/pending_swap_fate.js.map +1 -1
  23. package/dist/browser/classes/pending_swaps.js +1 -1
  24. package/dist/browser/classes/pending_swaps.js.map +1 -1
  25. package/dist/browser/classes/pools.js +1 -1
  26. package/dist/browser/classes/pools.js.map +1 -1
  27. package/dist/browser/classes/positions.js +1 -1
  28. package/dist/browser/classes/positions.js.map +1 -1
  29. package/dist/browser/classes/quoting.js +1 -1
  30. package/dist/browser/classes/quoting.js.map +1 -1
  31. package/dist/browser/classes/shadow_submit.js.map +1 -1
  32. package/dist/browser/classes/storage_adapters.js.map +1 -1
  33. package/dist/browser/classes/submitted_transaction.js +1 -1
  34. package/dist/browser/classes/submitted_transaction.js.map +1 -1
  35. package/dist/browser/classes/swaps.js +1 -1
  36. package/dist/browser/classes/swaps.js.map +1 -1
  37. package/dist/browser/classes/symbols.js +1 -1
  38. package/dist/browser/classes/symbols.js.map +1 -1
  39. package/dist/browser/types/env.js.map +1 -1
  40. package/dist/browser/types/fees.js.map +1 -1
  41. package/dist/browser/types/market.js.map +1 -1
  42. package/dist/browser/utils/chain_contract.js +2 -0
  43. package/dist/browser/utils/chain_contract.js.map +1 -0
  44. package/dist/browser/utils/classification.js.map +1 -1
  45. package/dist/browser/utils/confirmation_schedule.js.map +1 -1
  46. package/dist/browser/utils/confirmation_state.js.map +1 -1
  47. package/dist/browser/utils/debug.js.map +1 -1
  48. package/dist/browser/utils/dto_builders.js.map +1 -1
  49. package/dist/browser/utils/failure_classification.js +1 -1
  50. package/dist/browser/utils/failure_classification.js.map +1 -1
  51. package/dist/browser/utils/failure_guards.js +1 -1
  52. package/dist/browser/utils/failure_guards.js.map +1 -1
  53. package/dist/browser/utils/lenient.js.map +1 -1
  54. package/dist/browser/utils/ordering.js.map +1 -1
  55. package/dist/browser/utils/reconnection.js +1 -1
  56. package/dist/browser/utils/reconnection.js.map +1 -1
  57. package/dist/browser/utils/resolve_pre_send.js.map +1 -1
  58. package/dist/browser/utils/server_message.js.map +1 -1
  59. package/dist/browser/utils/shadow_errors.js.map +1 -1
  60. package/dist/browser/utils/submit_state.js.map +1 -1
  61. package/dist/browser/utils/tick_align.js.map +1 -1
  62. package/dist/browser/utils/tick_math.js.map +1 -1
  63. package/dist/browser/utils/tick_range.js.map +1 -1
  64. package/dist/browser/utils/ticks.js.map +1 -1
  65. package/dist/browser/utils/validation.js.map +1 -1
  66. package/dist/index.cjs +23 -6
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.d.cts +13 -5
  69. package/dist/index.d.ts +13 -5
  70. package/dist/index.mjs +23 -6
  71. package/dist/index.mjs.map +1 -1
  72. package/package.json +3 -3
  73. /package/dist/browser/_virtual/{_@oxc-project_runtime@0.153.0 → _@oxc-project_runtime@0.154.0}/helpers/esm/defineProperty.js +0 -0
  74. /package/dist/browser/_virtual/{_@oxc-project_runtime@0.153.0 → _@oxc-project_runtime@0.154.0}/helpers/esm/toPrimitive.js +0 -0
  75. /package/dist/browser/_virtual/{_@oxc-project_runtime@0.153.0 → _@oxc-project_runtime@0.154.0}/helpers/esm/toPropertyKey.js +0 -0
  76. /package/dist/browser/_virtual/{_@oxc-project_runtime@0.153.0 → _@oxc-project_runtime@0.154.0}/helpers/esm/typeof.js +0 -0
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { ErrorParamsOf, FailureOutcome, GALA_ERROR_CATALOG, GalaChainSigner, GalaChainTokenClassKey, GalaErrorCode, GalaErrorContext, GalaSDKError, HTTPResponse, HttpRequestor, UniqueKeyOptions, WireOptions } from "@gala-chain/gala-core-sdk";
1
+ import { ChainContractPath, ErrorParamsOf, FailureOutcome, GALA_ERROR_CATALOG, GalaChainSigner, GalaChainTokenClassKey, GalaErrorCode, GalaErrorContext, GalaSDKError, HTTPResponse, HttpRequestor, UniqueKeyOptions, WireOptions } from "@gala-chain/gala-core-sdk";
2
2
  import BigNumber from "bignumber.js";
3
3
  import "decimal.js";
4
4
  //#region src/types/confirm_options.d.ts
@@ -368,6 +368,13 @@ export declare const GSWAP_ERROR_CATALOG: {
368
368
  readonly serverMessage: 'string';
369
369
  };
370
370
  };
371
+ readonly DTO_OPERATION_MISMATCH: {
372
+ readonly phase: 'post_send';
373
+ readonly template: 'The signed DTO has no dtoOperation, or one that is not the call it was sent to: {serverMessage}';
374
+ readonly params: {
375
+ readonly serverMessage: 'string';
376
+ };
377
+ };
371
378
  readonly BOUNDS_VIOLATION: {
372
379
  readonly phase: 'post_send';
373
380
  readonly template: 'The gateway rejected a numeric, tick, symbol or range bound: {serverMessage}';
@@ -1200,7 +1207,7 @@ export declare function toChainDto(message: Record<string, unknown>): Record<str
1200
1207
  * recovers it (the gateway rejects it as REDUNDANT_SIGNER_PUBLIC_KEY). The wrapper carries its own
1201
1208
  * `uniqueKey`, distinct from the DTO's.
1202
1209
  */
1203
- export declare function buildDryRunWrapper(signer: GalaChainSigner, callerPublicKey: string, method: string, dto: Record<string, unknown>, uniqueKeyPrefix?: string): Promise<Record<string, unknown>>;
1210
+ export declare function buildDryRunWrapper(signer: GalaChainSigner, callerPublicKey: string, method: string, dto: Record<string, unknown>, uniqueKeyPrefix?: string, contractPath?: ChainContractPath): Promise<Record<string, unknown>>;
1204
1211
  /** The transport and backend a fee quote reads from. */
1205
1212
  export interface DexFeesClient {
1206
1213
  /** Swap backend origin, e.g. `https://dex-backend-prod1.defi.gala.com`. */
@@ -3472,6 +3479,7 @@ export declare const GSWAP_ERROR_PHASE_BY_CODE: {
3472
3479
  readonly SIGNATURE_INVALID: 'post_send';
3473
3480
  readonly SIGNER_MISMATCH: 'post_send';
3474
3481
  readonly DTO_INVALID: 'post_send';
3482
+ readonly DTO_OPERATION_MISMATCH: 'post_send';
3475
3483
  readonly BOUNDS_VIOLATION: 'post_send';
3476
3484
  readonly SYMBOL_CONFLICT: 'post_send';
3477
3485
  readonly RATE_LIMITED: 'post_send';
@@ -4142,8 +4150,8 @@ export declare function isUnprovenAcknowledgement(error: unknown): boolean;
4142
4150
  /**
4143
4151
  * True when the error is a gateway refusal whose `params.serverMessage` an app may relay to the
4144
4152
  * person as the gateway sent it: `GATEWAY_REPORTED_ERROR`, the gateway bounces (`METHOD_NOT_ALLOWED`,
4145
- * `SIGNATURE_INVALID`, `SIGNER_MISMATCH`, `DTO_INVALID`, `BOUNDS_VIOLATION`, `SYMBOL_CONFLICT`,
4146
- * `RATE_LIMITED`, `GATEWAY_REJECTED`) and `CHAIN_DISPATCH_FAILED`. The app shows `serverMessage` when
4153
+ * `SIGNATURE_INVALID`, `SIGNER_MISMATCH`, `DTO_INVALID`, `DTO_OPERATION_MISMATCH`, `BOUNDS_VIOLATION`,
4154
+ * `SYMBOL_CONFLICT`, `RATE_LIMITED`, `GATEWAY_REJECTED`) and `CHAIN_DISPATCH_FAILED`. The app shows `serverMessage` when
4147
4155
  * it is not empty and its own line when it is; the SDK's English `message` is never what to show.
4148
4156
  *
4149
4157
  * It accepts a plain-object view of an SDK error too ({@link FailureView}: an app's wrapper with a
@@ -4167,7 +4175,7 @@ export declare function isUnprovenAcknowledgement(error: unknown): boolean;
4167
4175
  export declare function isRelayableRefusal(error: GSwapSDKError): error is GSwapSDKError<RelayableCode>;
4168
4176
  export declare function isRelayableRefusal(error: unknown): boolean;
4169
4177
  /** The codes {@link isRelayableRefusal} is true for. */
4170
- export type RelayableCode = 'GATEWAY_REPORTED_ERROR' | 'METHOD_NOT_ALLOWED' | 'SIGNATURE_INVALID' | 'SIGNER_MISMATCH' | 'DTO_INVALID' | 'BOUNDS_VIOLATION' | 'SYMBOL_CONFLICT' | 'RATE_LIMITED' | 'CHAIN_DISPATCH_FAILED' | 'GATEWAY_REJECTED';
4178
+ export type RelayableCode = 'GATEWAY_REPORTED_ERROR' | 'METHOD_NOT_ALLOWED' | 'SIGNATURE_INVALID' | 'SIGNER_MISMATCH' | 'DTO_INVALID' | 'DTO_OPERATION_MISMATCH' | 'BOUNDS_VIOLATION' | 'SYMBOL_CONFLICT' | 'RATE_LIMITED' | 'CHAIN_DISPATCH_FAILED' | 'GATEWAY_REJECTED';
4171
4179
  /**
4172
4180
  * True when a write got a 2xx answer the SDK refused to interpret, so the answer itself is in
4173
4181
  * `error.body` (or `error.bodyText`) for the app to read: the five unproven acknowledgements
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ErrorParamsOf, FailureOutcome, GALA_ERROR_CATALOG, GalaChainSigner, GalaChainTokenClassKey, GalaErrorCode, GalaErrorContext, GalaSDKError, HTTPResponse, HttpRequestor, UniqueKeyOptions, WireOptions } from "@gala-chain/gala-core-sdk";
1
+ import { ChainContractPath, ErrorParamsOf, FailureOutcome, GALA_ERROR_CATALOG, GalaChainSigner, GalaChainTokenClassKey, GalaErrorCode, GalaErrorContext, GalaSDKError, HTTPResponse, HttpRequestor, UniqueKeyOptions, WireOptions } from "@gala-chain/gala-core-sdk";
2
2
  import BigNumber from "bignumber.js";
3
3
  import { Decimal } from "decimal.js";
4
4
  //#region src/types/confirm_options.d.ts
@@ -368,6 +368,13 @@ export declare const GSWAP_ERROR_CATALOG: {
368
368
  readonly serverMessage: 'string';
369
369
  };
370
370
  };
371
+ readonly DTO_OPERATION_MISMATCH: {
372
+ readonly phase: 'post_send';
373
+ readonly template: 'The signed DTO has no dtoOperation, or one that is not the call it was sent to: {serverMessage}';
374
+ readonly params: {
375
+ readonly serverMessage: 'string';
376
+ };
377
+ };
371
378
  readonly BOUNDS_VIOLATION: {
372
379
  readonly phase: 'post_send';
373
380
  readonly template: 'The gateway rejected a numeric, tick, symbol or range bound: {serverMessage}';
@@ -1200,7 +1207,7 @@ export declare function toChainDto(message: Record<string, unknown>): Record<str
1200
1207
  * recovers it (the gateway rejects it as REDUNDANT_SIGNER_PUBLIC_KEY). The wrapper carries its own
1201
1208
  * `uniqueKey`, distinct from the DTO's.
1202
1209
  */
1203
- export declare function buildDryRunWrapper(signer: GalaChainSigner, callerPublicKey: string, method: string, dto: Record<string, unknown>, uniqueKeyPrefix?: string): Promise<Record<string, unknown>>;
1210
+ export declare function buildDryRunWrapper(signer: GalaChainSigner, callerPublicKey: string, method: string, dto: Record<string, unknown>, uniqueKeyPrefix?: string, contractPath?: ChainContractPath): Promise<Record<string, unknown>>;
1204
1211
  /** The transport and backend a fee quote reads from. */
1205
1212
  export interface DexFeesClient {
1206
1213
  /** Swap backend origin, e.g. `https://dex-backend-prod1.defi.gala.com`. */
@@ -3472,6 +3479,7 @@ export declare const GSWAP_ERROR_PHASE_BY_CODE: {
3472
3479
  readonly SIGNATURE_INVALID: 'post_send';
3473
3480
  readonly SIGNER_MISMATCH: 'post_send';
3474
3481
  readonly DTO_INVALID: 'post_send';
3482
+ readonly DTO_OPERATION_MISMATCH: 'post_send';
3475
3483
  readonly BOUNDS_VIOLATION: 'post_send';
3476
3484
  readonly SYMBOL_CONFLICT: 'post_send';
3477
3485
  readonly RATE_LIMITED: 'post_send';
@@ -4142,8 +4150,8 @@ export declare function isUnprovenAcknowledgement(error: unknown): boolean;
4142
4150
  /**
4143
4151
  * True when the error is a gateway refusal whose `params.serverMessage` an app may relay to the
4144
4152
  * person as the gateway sent it: `GATEWAY_REPORTED_ERROR`, the gateway bounces (`METHOD_NOT_ALLOWED`,
4145
- * `SIGNATURE_INVALID`, `SIGNER_MISMATCH`, `DTO_INVALID`, `BOUNDS_VIOLATION`, `SYMBOL_CONFLICT`,
4146
- * `RATE_LIMITED`, `GATEWAY_REJECTED`) and `CHAIN_DISPATCH_FAILED`. The app shows `serverMessage` when
4153
+ * `SIGNATURE_INVALID`, `SIGNER_MISMATCH`, `DTO_INVALID`, `DTO_OPERATION_MISMATCH`, `BOUNDS_VIOLATION`,
4154
+ * `SYMBOL_CONFLICT`, `RATE_LIMITED`, `GATEWAY_REJECTED`) and `CHAIN_DISPATCH_FAILED`. The app shows `serverMessage` when
4147
4155
  * it is not empty and its own line when it is; the SDK's English `message` is never what to show.
4148
4156
  *
4149
4157
  * It accepts a plain-object view of an SDK error too ({@link FailureView}: an app's wrapper with a
@@ -4167,7 +4175,7 @@ export declare function isUnprovenAcknowledgement(error: unknown): boolean;
4167
4175
  export declare function isRelayableRefusal(error: GSwapSDKError): error is GSwapSDKError<RelayableCode>;
4168
4176
  export declare function isRelayableRefusal(error: unknown): boolean;
4169
4177
  /** The codes {@link isRelayableRefusal} is true for. */
4170
- export type RelayableCode = 'GATEWAY_REPORTED_ERROR' | 'METHOD_NOT_ALLOWED' | 'SIGNATURE_INVALID' | 'SIGNER_MISMATCH' | 'DTO_INVALID' | 'BOUNDS_VIOLATION' | 'SYMBOL_CONFLICT' | 'RATE_LIMITED' | 'CHAIN_DISPATCH_FAILED' | 'GATEWAY_REJECTED';
4178
+ export type RelayableCode = 'GATEWAY_REPORTED_ERROR' | 'METHOD_NOT_ALLOWED' | 'SIGNATURE_INVALID' | 'SIGNER_MISMATCH' | 'DTO_INVALID' | 'DTO_OPERATION_MISMATCH' | 'BOUNDS_VIOLATION' | 'SYMBOL_CONFLICT' | 'RATE_LIMITED' | 'CHAIN_DISPATCH_FAILED' | 'GATEWAY_REJECTED';
4171
4179
  /**
4172
4180
  * True when a write got a 2xx answer the SDK refused to interpret, so the answer itself is in
4173
4181
  * `error.body` (or `error.bodyText`) for the app to read: the five unproven acknowledgements
package/dist/index.mjs CHANGED
@@ -222,6 +222,11 @@ const GSWAP_ERROR_CATALOG = {
222
222
  template: "The gateway rejected the DTO shape: {serverMessage}",
223
223
  params: { serverMessage: "string" }
224
224
  },
225
+ DTO_OPERATION_MISMATCH: {
226
+ phase: "post_send",
227
+ template: "The signed DTO has no dtoOperation, or one that is not the call it was sent to: {serverMessage}",
228
+ params: { serverMessage: "string" }
229
+ },
225
230
  BOUNDS_VIOLATION: {
226
231
  phase: "post_send",
227
232
  template: "The gateway rejected a numeric, tick, symbol or range bound: {serverMessage}",
@@ -731,6 +736,7 @@ const GSWAP_ERROR_PHASE_BY_CODE = {
731
736
  SIGNATURE_INVALID: "post_send",
732
737
  SIGNER_MISMATCH: "post_send",
733
738
  DTO_INVALID: "post_send",
739
+ DTO_OPERATION_MISMATCH: "post_send",
734
740
  BOUNDS_VIOLATION: "post_send",
735
741
  SYMBOL_CONFLICT: "post_send",
736
742
  RATE_LIMITED: "post_send",
@@ -906,6 +912,7 @@ var GSwapSDKError = class GSwapSDKError extends GalaSDKError {
906
912
  case "SIGNATURE_INVALID": return new GSwapSDKError("SIGNATURE_INVALID", params, context);
907
913
  case "SIGNER_MISMATCH": return new GSwapSDKError("SIGNER_MISMATCH", params, context);
908
914
  case "DTO_INVALID": return new GSwapSDKError("DTO_INVALID", params, context);
915
+ case "DTO_OPERATION_MISMATCH": return new GSwapSDKError("DTO_OPERATION_MISMATCH", params, context);
909
916
  case "BOUNDS_VIOLATION": return new GSwapSDKError("BOUNDS_VIOLATION", params, context);
910
917
  case "SYMBOL_CONFLICT": return new GSwapSDKError("SYMBOL_CONFLICT", params, context);
911
918
  case "RATE_LIMITED": return new GSwapSDKError("RATE_LIMITED", params, context);
@@ -1715,8 +1722,8 @@ function toChainDto(message) {
1715
1722
  * recovers it (the gateway rejects it as REDUNDANT_SIGNER_PUBLIC_KEY). The wrapper carries its own
1716
1723
  * `uniqueKey`, distinct from the DTO's.
1717
1724
  */
1718
- function buildDryRunWrapper(signer, callerPublicKey, method, dto, uniqueKeyPrefix = DRY_RUN_UNIQUE_KEY_PREFIX) {
1719
- return signPreSend(signer, DRY_RUN_METHOD, {
1725
+ function buildDryRunWrapper(signer, callerPublicKey, method, dto, uniqueKeyPrefix = DRY_RUN_UNIQUE_KEY_PREFIX, contractPath = "asset/dexv3-contract") {
1726
+ return signPreSend(signer, contractPath, DRY_RUN_METHOD, {
1720
1727
  callerPublicKey,
1721
1728
  method,
1722
1729
  dto,
@@ -1771,7 +1778,7 @@ var DexFees = class {
1771
1778
  if (this.signer === void 0) throw GSwapSDKError.noSignerError();
1772
1779
  const channel = options.channel ?? "asset";
1773
1780
  const contract = options.contract ?? "dexv3-contract";
1774
- const wrapper = await buildDryRunWrapper(this.signer, callerPublicKey, method, toChainDto(message));
1781
+ const wrapper = await buildDryRunWrapper(this.signer, callerPublicKey, method, toChainDto(message), void 0, `asset/${contract}`);
1775
1782
  const url = `${this.baseUrl}/wallet/connect/galachain/api/${encodeURIComponent(channel)}/${encodeURIComponent(contract)}/${encodeURIComponent(method)}/fee`;
1776
1783
  let status;
1777
1784
  let ok;
@@ -1809,6 +1816,14 @@ function readQuote(body) {
1809
1816
  return body;
1810
1817
  }
1811
1818
 
1819
+ //#endregion
1820
+ //#region src/utils/chain_contract.ts
1821
+ /**
1822
+ * The contract every v2 write goes to: its route under `/v1/chain/` and (through core's table) the
1823
+ * `dtoOperation` each DTO is signed with. One constant for both, so they cannot disagree.
1824
+ */
1825
+ const DEX_CONTRACT_PATH = "asset/dex-contract";
1826
+
1812
1827
  //#endregion
1813
1828
  //#region src/utils/shadow_errors.ts
1814
1829
  /**
@@ -2170,7 +2185,7 @@ var ChainGateway = class {
2170
2185
  return (options === null || options === void 0 ? void 0 : options.walletAddress) === void 0 ? this.walletAddress : userRef(options.walletAddress, "walletAddress");
2171
2186
  }
2172
2187
  writeUrl(method) {
2173
- return `${this.dexBackendBaseUrl}/v1/chain/asset/dex-contract/${method}`;
2188
+ return `${this.dexBackendBaseUrl}/v1/chain/${DEX_CONTRACT_PATH}/${method}`;
2174
2189
  }
2175
2190
  /**
2176
2191
  * POSTs a signed body and reads the answer. Neither a timeout nor a transport failure proves the
@@ -4947,7 +4962,7 @@ var Positions = class {
4947
4962
  }
4948
4963
  async submit(method, dto, confirmation) {
4949
4964
  if (this.signer === void 0) throw GSwapSDKError.noSignerError();
4950
- const signed = await signPreSend(this.signer, method, dto);
4965
+ const signed = await signPreSend(this.signer, DEX_CONTRACT_PATH, method, dto);
4951
4966
  const submitOptions = this.walletAddress === void 0 ? {} : { walletAddress: this.walletAddress };
4952
4967
  const owner = this.walletAddress;
4953
4968
  const positionConfirmation = await this.buildPositionConfirmation(confirmation, owner);
@@ -5608,7 +5623,7 @@ var Swaps = class {
5608
5623
  async signRequestTrade(dto) {
5609
5624
  assertCanonicalV2Dto("RequestTrade", dto);
5610
5625
  if (this.signer === void 0) throw GSwapSDKError.noSignerError();
5611
- return signPreSend(this.signer, "RequestTrade", dto);
5626
+ return signPreSend(this.signer, DEX_CONTRACT_PATH, "RequestTrade", dto);
5612
5627
  }
5613
5628
  /** The pool's two symbols in contract order: the quote's own when pinned, else string order. */
5614
5629
  orientPool(tokenInSymbol, tokenOutSymbol, pool) {
@@ -5869,6 +5884,7 @@ const BY_CODE = {
5869
5884
  SIGNATURE_INVALID: NOT_QUEUED,
5870
5885
  SIGNER_MISMATCH: NOT_QUEUED,
5871
5886
  DTO_INVALID: NOT_QUEUED,
5887
+ DTO_OPERATION_MISMATCH: NOT_QUEUED,
5872
5888
  BOUNDS_VIOLATION: NOT_QUEUED,
5873
5889
  SYMBOL_CONFLICT: NOT_QUEUED,
5874
5890
  RATE_LIMITED: NOT_QUEUED,
@@ -6537,6 +6553,7 @@ const RELAYABLE_REFUSAL_CODES = [
6537
6553
  "SIGNATURE_INVALID",
6538
6554
  "SIGNER_MISMATCH",
6539
6555
  "DTO_INVALID",
6556
+ "DTO_OPERATION_MISMATCH",
6540
6557
  "BOUNDS_VIOLATION",
6541
6558
  "SYMBOL_CONFLICT",
6542
6559
  "RATE_LIMITED",