@debridge-finance/borderless-validation-sdk 0.0.10 → 0.0.12

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 (160) hide show
  1. package/README.md +11 -4
  2. package/dist/cjs/graylists/evm/token-permit-metadata.js +39 -6
  3. package/dist/cjs/graylists/evm/token-permit-metadata.js.map +1 -1
  4. package/dist/cjs/helpers/quote-mode.js +23 -0
  5. package/dist/cjs/helpers/quote-mode.js.map +1 -0
  6. package/dist/cjs/helpers/synthetic-native-wrap.js +13 -13
  7. package/dist/cjs/helpers/synthetic-native-wrap.js.map +1 -1
  8. package/dist/cjs/helpers/zod.js +42 -0
  9. package/dist/cjs/helpers/zod.js.map +1 -1
  10. package/dist/cjs/types/request.js +42 -36
  11. package/dist/cjs/types/request.js.map +1 -1
  12. package/dist/cjs/types/response.js +23 -23
  13. package/dist/cjs/types/response.js.map +1 -1
  14. package/dist/cjs/types/validation.js +24 -2
  15. package/dist/cjs/types/validation.js.map +1 -1
  16. package/dist/cjs/validations/accumulative-token.js +7 -1
  17. package/dist/cjs/validations/accumulative-token.js.map +1 -1
  18. package/dist/cjs/validations/evm-op-budget.js +10 -3
  19. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  20. package/dist/cjs/validations/evm-op-wrap.js +8 -3
  21. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  22. package/dist/cjs/validations/evm-permit.js +4 -3
  23. package/dist/cjs/validations/evm-permit.js.map +1 -1
  24. package/dist/cjs/validations/evm-required-actions.js +3 -3
  25. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  26. package/dist/cjs/validations/evm-sign712-metamask.js +4 -3
  27. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  28. package/dist/cjs/validations/external-call.js +13 -22
  29. package/dist/cjs/validations/external-call.js.map +1 -1
  30. package/dist/cjs/validations/hooks-common.js +82 -26
  31. package/dist/cjs/validations/hooks-common.js.map +1 -1
  32. package/dist/cjs/validations/intent-tokens.js +4 -0
  33. package/dist/cjs/validations/intent-tokens.js.map +1 -1
  34. package/dist/cjs/validations/refill.js +587 -0
  35. package/dist/cjs/validations/refill.js.map +1 -0
  36. package/dist/cjs/validations/required-actions.js +2 -2
  37. package/dist/cjs/validations/required-actions.js.map +1 -1
  38. package/dist/cjs/validations/solana-hook.js +35 -14
  39. package/dist/cjs/validations/solana-hook.js.map +1 -1
  40. package/dist/cjs/validations/solana-op-budget.js +20 -10
  41. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  42. package/dist/cjs/validations/solana-op-wrap.js +8 -3
  43. package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
  44. package/dist/cjs/validations/solana-required-actions.js +3 -3
  45. package/dist/cjs/validations/solana-required-actions.js.map +1 -1
  46. package/dist/cjs/validations/solana-transaction.js +81 -45
  47. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  48. package/dist/cjs/validations/trade-grouping.js +11 -0
  49. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  50. package/dist/cjs/validator.js +43 -20
  51. package/dist/cjs/validator.js.map +1 -1
  52. package/dist/cjs/whitelists/environment-config.js +89 -56
  53. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  54. package/dist/cjs/whitelists/evm/index.js +3 -1
  55. package/dist/cjs/whitelists/evm/index.js.map +1 -1
  56. package/dist/cjs/whitelists/solana/intent-signature.js +6 -10
  57. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  58. package/dist/esm/graylists/evm/token-permit-metadata.js +39 -6
  59. package/dist/esm/graylists/evm/token-permit-metadata.js.map +1 -1
  60. package/dist/esm/helpers/quote-mode.js +17 -0
  61. package/dist/esm/helpers/quote-mode.js.map +1 -0
  62. package/dist/esm/helpers/synthetic-native-wrap.js +13 -13
  63. package/dist/esm/helpers/synthetic-native-wrap.js.map +1 -1
  64. package/dist/esm/helpers/zod.js +36 -0
  65. package/dist/esm/helpers/zod.js.map +1 -1
  66. package/dist/esm/types/request.js +43 -37
  67. package/dist/esm/types/request.js.map +1 -1
  68. package/dist/esm/types/response.js +24 -24
  69. package/dist/esm/types/response.js.map +1 -1
  70. package/dist/esm/types/validation.js +24 -2
  71. package/dist/esm/types/validation.js.map +1 -1
  72. package/dist/esm/validations/accumulative-token.js +7 -1
  73. package/dist/esm/validations/accumulative-token.js.map +1 -1
  74. package/dist/esm/validations/evm-op-budget.js +10 -3
  75. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  76. package/dist/esm/validations/evm-op-wrap.js +8 -3
  77. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  78. package/dist/esm/validations/evm-permit.js +4 -3
  79. package/dist/esm/validations/evm-permit.js.map +1 -1
  80. package/dist/esm/validations/evm-required-actions.js +3 -3
  81. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  82. package/dist/esm/validations/evm-sign712-metamask.js +1 -1
  83. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  84. package/dist/esm/validations/external-call.js +13 -22
  85. package/dist/esm/validations/external-call.js.map +1 -1
  86. package/dist/esm/validations/hooks-common.js +83 -27
  87. package/dist/esm/validations/hooks-common.js.map +1 -1
  88. package/dist/esm/validations/intent-tokens.js +4 -0
  89. package/dist/esm/validations/intent-tokens.js.map +1 -1
  90. package/dist/esm/validations/refill.js +584 -0
  91. package/dist/esm/validations/refill.js.map +1 -0
  92. package/dist/esm/validations/required-actions.js +2 -2
  93. package/dist/esm/validations/required-actions.js.map +1 -1
  94. package/dist/esm/validations/solana-hook.js +35 -14
  95. package/dist/esm/validations/solana-hook.js.map +1 -1
  96. package/dist/esm/validations/solana-op-budget.js +20 -10
  97. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  98. package/dist/esm/validations/solana-op-wrap.js +8 -3
  99. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  100. package/dist/esm/validations/solana-required-actions.js +3 -3
  101. package/dist/esm/validations/solana-required-actions.js.map +1 -1
  102. package/dist/esm/validations/solana-transaction.js +81 -45
  103. package/dist/esm/validations/solana-transaction.js.map +1 -1
  104. package/dist/esm/validations/trade-grouping.js +11 -0
  105. package/dist/esm/validations/trade-grouping.js.map +1 -1
  106. package/dist/esm/validator.js +44 -21
  107. package/dist/esm/validator.js.map +1 -1
  108. package/dist/esm/whitelists/environment-config.js +84 -52
  109. package/dist/esm/whitelists/environment-config.js.map +1 -1
  110. package/dist/esm/whitelists/evm/index.js +1 -0
  111. package/dist/esm/whitelists/evm/index.js.map +1 -1
  112. package/dist/esm/whitelists/solana/intent-signature.js +4 -9
  113. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  114. package/dist/types/graylists/evm/token-permit-metadata.d.ts +2 -2
  115. package/dist/types/graylists/evm/token-permit-metadata.d.ts.map +1 -1
  116. package/dist/types/helpers/quote-mode.d.ts +6 -0
  117. package/dist/types/helpers/quote-mode.d.ts.map +1 -0
  118. package/dist/types/helpers/synthetic-native-wrap.d.ts.map +1 -1
  119. package/dist/types/helpers/zod.d.ts +6 -0
  120. package/dist/types/helpers/zod.d.ts.map +1 -1
  121. package/dist/types/types/request.d.ts +88 -88
  122. package/dist/types/types/request.d.ts.map +1 -1
  123. package/dist/types/types/response.d.ts +71 -71
  124. package/dist/types/types/response.d.ts.map +1 -1
  125. package/dist/types/types/validation.d.ts +23 -2
  126. package/dist/types/types/validation.d.ts.map +1 -1
  127. package/dist/types/validations/accumulative-token.d.ts +1 -1
  128. package/dist/types/validations/accumulative-token.d.ts.map +1 -1
  129. package/dist/types/validations/evm-op-budget.d.ts +1 -1
  130. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  131. package/dist/types/validations/evm-op-wrap.d.ts +1 -1
  132. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
  133. package/dist/types/validations/evm-required-actions.d.ts +1 -1
  134. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  135. package/dist/types/validations/evm-sign712-metamask.d.ts +1 -0
  136. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  137. package/dist/types/validations/external-call.d.ts +2 -2
  138. package/dist/types/validations/external-call.d.ts.map +1 -1
  139. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  140. package/dist/types/validations/refill.d.ts +4 -0
  141. package/dist/types/validations/refill.d.ts.map +1 -0
  142. package/dist/types/validations/required-actions.d.ts.map +1 -1
  143. package/dist/types/validations/solana-op-budget.d.ts +1 -1
  144. package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
  145. package/dist/types/validations/solana-op-wrap.d.ts +1 -1
  146. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  147. package/dist/types/validations/solana-required-actions.d.ts +1 -1
  148. package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
  149. package/dist/types/validations/solana-transaction.d.ts +2 -2
  150. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  151. package/dist/types/validations/trade-grouping.d.ts +2 -0
  152. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  153. package/dist/types/validator.d.ts.map +1 -1
  154. package/dist/types/whitelists/environment-config.d.ts +17 -0
  155. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  156. package/dist/types/whitelists/evm/index.d.ts +1 -0
  157. package/dist/types/whitelists/evm/index.d.ts.map +1 -1
  158. package/dist/types/whitelists/solana/intent-signature.d.ts +1 -0
  159. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  160. package/package.json +1 -1
package/README.md CHANGED
@@ -111,8 +111,9 @@ The SDK is designed to run **between** receiving the API response and presenting
111
111
  import { Environment } from "@debridge-finance/borderless-validation-sdk";
112
112
  ```
113
113
 
114
- - `Environment.Prod` — production.
115
- - `Environment.Hanoi`, `Environment.Dubai` — non-prod deployments (may have empty whitelists; ask the SDK team before use).
114
+ - `Environment.Prod` — production without gasless features.
115
+ - `Environment.Gasless` — production with gasless features.
116
+ - `Environment.Dev` — developer environment (also known as Stage).
116
117
 
117
118
  Pass the same environment your app is already configured for — don't make it user-selectable.
118
119
 
@@ -159,11 +160,17 @@ Full type declarations ship in `dist/types/`. `ValidatorConfig`, `ValidationResu
159
160
  ## Development
160
161
 
161
162
  See [`CLAUDE.md`](./CLAUDE.md) for project conventions, validation rules, and security guidelines.
163
+ See [`src/README.md`](./src/README.md) for an overview of the source code structure and validation flow.
162
164
 
163
165
  - Unit tests: `npm test`
164
- - Coverage: `npm run coverage`
166
+ - Unit test coverage: `npm run coverage`
165
167
  - E2E tests (hit the staging API): `npm run test:e2e`
166
- - Build: `npm run build`
168
+ - E2E coverage: `npm run coverage:e2e`
169
+ - Full build: `npm run build`
170
+ - Build ESM only: `npm run build:esm`
171
+ - Build CJS only: `npm run build:cjs`
172
+ - Build type declarations only: `npm run build:types`
173
+ - Clean build output: `npm run clean`
167
174
 
168
175
  ## License
169
176
 
@@ -6,17 +6,50 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.TOKEN_PERMIT_METADATA = void 0;
8
8
  exports.getTokenPermitMetadata = getTokenPermitMetadata;
9
- // Note: addresses in this map MUST be lowercased.
10
9
  const enums_1 = require("../../types/enums");
10
+ // Note: addresses in this map MUST be lowercased.
11
11
  exports.TOKEN_PERMIT_METADATA = {
12
- // TODO: verify this list. At the moment it contains TEST values.
12
+ // TODO: extend this verified-only graylist with additional tokens after
13
+ // checking the exact token contract on the exact chain. Unknown tokens, or
14
+ // unverified fields such as version, must stay absent so the SDK skips
15
+ // best-effort metadata checks instead of risking false positives.
13
16
  [enums_1.ChainId.Ethereum]: {
14
- "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { name: "USD Coin", version: "2" }, // USDC
15
- "0x6b175474e89094c44da98b954eedeac495271d0f": { name: "Dai Stablecoin", version: "1" }, // DAI
16
- "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": { name: "Aave Token", version: "1" }, // AAVE
17
+ "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { name: "USD Coin", version: "2" },
18
+ "0x6b175474e89094c44da98b954eedeac495271d0f": { name: "Dai Stablecoin", version: "1" },
19
+ "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": { name: "Aave Token" },
20
+ },
21
+ [enums_1.ChainId.Optimism]: {
22
+ "0x0b2c639c533813f4aa9d7837caf62653d097ff85": { name: "USD Coin", version: "2" },
23
+ },
24
+ [enums_1.ChainId.Polygon]: {
25
+ "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359": { name: "USD Coin", version: "2" },
26
+ },
27
+ [enums_1.ChainId.Monad]: {
28
+ "0x754704bc059f8c67012fed69bc8a327a5aafb603": { name: "USDC", version: "2" },
29
+ },
30
+ [enums_1.ChainId.Sonic]: {
31
+ "0x29219dd400f2bf60e5a23d13be72b486d4038894": { name: "USDC", version: "2" },
32
+ },
33
+ [enums_1.ChainId.HyperEVM]: {
34
+ "0xb88339cb7199b77e23db6e890353e22632ba630f": { name: "USDC", version: "2" },
35
+ },
36
+ [enums_1.ChainId.Sei]: {
37
+ "0xe15fc38f6d8c56af07bbcbe3baf5708a2bf42392": { name: "USDC", version: "2" },
38
+ },
39
+ [enums_1.ChainId.Injective]: {
40
+ "0xa00c59ff5a080d2b954d0c75e46e22a0c371235a": { name: "USDC", version: "2" },
41
+ },
42
+ [enums_1.ChainId.Base]: {
43
+ "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913": { name: "USD Coin", version: "2" },
44
+ },
45
+ [enums_1.ChainId.Linea]: {
46
+ "0x176211869ca2b568f2a7d4ee941e073a821ee1ff": { name: "USDC", version: "2" },
17
47
  },
18
48
  [enums_1.ChainId.Arbitrum]: {
19
- "0xaf88d065e77c8cc2239327c5edb3a432268e5831": { name: "USD Coin", version: "2" }, // USDC
49
+ "0xaf88d065e77c8cc2239327c5edb3a432268e5831": { name: "USD Coin", version: "2" },
50
+ },
51
+ [enums_1.ChainId.Avalanche]: {
52
+ "0xb97ef9ef8734c71904d8002f8b6bc66dd9c48a6e": { name: "USD Coin", version: "2" },
20
53
  },
21
54
  };
22
55
  function getTokenPermitMetadata(realChainId, tokenAddress) {
@@ -1 +1 @@
1
- {"version":3,"file":"token-permit-metadata.js","sourceRoot":"","sources":["../../../../src/graylists/evm/token-permit-metadata.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;;;AA+BpE,wDAOC;AAtBD,kDAAkD;AAClD,6CAA4C;AAE/B,QAAA,qBAAqB,GAA2B;IACzD,iEAAiE;IACjE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO;QACzF,4CAA4C,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM;QAC9F,4CAA4C,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO;KAC9F;IACD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO;KAC5F;CACJ,CAAC;AAEF,SAAgB,sBAAsB,CAClC,WAAoB,EACpB,YAAoB;IAEpB,MAAM,KAAK,GAAG,6BAAqB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"token-permit-metadata.js","sourceRoot":"","sources":["../../../../src/graylists/evm/token-permit-metadata.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;;;AAgEpE,wDAOC;AArED,6CAA4C;AAgB5C,kDAAkD;AACrC,QAAA,qBAAqB,GAA2B;IACzD,wEAAwE;IACxE,2EAA2E;IAC3E,uEAAuE;IACvE,kEAAkE;IAClE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE;QAChF,4CAA4C,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE;QACtF,4CAA4C,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;KACvE;IACD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE;KACnF;IACD,CAAC,eAAO,CAAC,OAAO,CAAC,EAAE;QACf,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE;KACnF;IACD,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE;QACb,4CAA4C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/E;IACD,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE;QACb,4CAA4C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/E;IACD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/E;IACD,CAAC,eAAO,CAAC,GAAG,CAAC,EAAE;QACX,4CAA4C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/E;IACD,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE;QACjB,4CAA4C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/E;IACD,CAAC,eAAO,CAAC,IAAI,CAAC,EAAE;QACZ,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE;KACnF;IACD,CAAC,eAAO,CAAC,KAAK,CAAC,EAAE;QACb,4CAA4C,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;KAC/E;IACD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE;KACnF;IACD,CAAC,eAAO,CAAC,SAAS,CAAC,EAAE;QACjB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE;KACnF;CACJ,CAAC;AAEF,SAAgB,sBAAsB,CAClC,WAAoB,EACpB,YAAoB;IAEpB,MAAM,KAAK,GAAG,6BAAqB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasAllExecutionAddresses = hasAllExecutionAddresses;
4
+ exports.hasAnyExecutionAddress = hasAnyExecutionAddress;
5
+ exports.isQuoteModeRequest = isQuoteModeRequest;
6
+ exports.hasUnverifiableQuoteGrouping = hasUnverifiableQuoteGrouping;
7
+ function hasAllExecutionAddresses(trade) {
8
+ return trade.srcChainAuthorityAddress !== undefined
9
+ && trade.dstChainTokenOutRecipient !== undefined
10
+ && trade.dstChainAuthorityAddress !== undefined;
11
+ }
12
+ function hasAnyExecutionAddress(trade) {
13
+ return trade.srcChainAuthorityAddress !== undefined
14
+ || trade.dstChainTokenOutRecipient !== undefined
15
+ || trade.dstChainAuthorityAddress !== undefined;
16
+ }
17
+ function isQuoteModeRequest(trades) {
18
+ return !trades.every(hasAllExecutionAddresses);
19
+ }
20
+ function hasUnverifiableQuoteGrouping(trades) {
21
+ return isQuoteModeRequest(trades) && trades.some(hasAnyExecutionAddress);
22
+ }
23
+ //# sourceMappingURL=quote-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-mode.js","sourceRoot":"","sources":["../../../src/helpers/quote-mode.ts"],"names":[],"mappings":";;AAEA,4DAIC;AAED,wDAIC;AAED,gDAEC;AAED,oEAEC;AAlBD,SAAgB,wBAAwB,CAAC,KAAmB;IACxD,OAAO,KAAK,CAAC,wBAAwB,KAAK,SAAS;WAC5C,KAAK,CAAC,yBAAyB,KAAK,SAAS;WAC7C,KAAK,CAAC,wBAAwB,KAAK,SAAS,CAAC;AACxD,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAmB;IACtD,OAAO,KAAK,CAAC,wBAAwB,KAAK,SAAS;WAC5C,KAAK,CAAC,yBAAyB,KAAK,SAAS;WAC7C,KAAK,CAAC,wBAAwB,KAAK,SAAS,CAAC;AACxD,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAA+B;IAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,4BAA4B,CAAC,MAA+B;IACxE,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC7E,CAAC"}
@@ -11,14 +11,15 @@ exports.SYNTHETIC_NATIVE_WRAP_INTENT_ID = "wrap";
11
11
  // In this path the response intent is only a container for the Wrap action; it
12
12
  // is not a normal signed intent and intentionally has a minimal token shape.
13
13
  function isSyntheticNativeWrapBundle(request, response) {
14
- if (!isSyntheticNativeWrapRequest(request))
15
- return false;
16
14
  if (response.trades.length !== 1 || response.intents.length !== 1)
17
15
  return false;
18
- return (response.trades[0].relatedIntentId === exports.SYNTHETIC_NATIVE_WRAP_INTENT_ID
16
+ const responseHasSyntheticWrapMarkers = (response.trades[0].relatedIntentId === exports.SYNTHETIC_NATIVE_WRAP_INTENT_ID
19
17
  && response.intents[0].intent.intentId === exports.SYNTHETIC_NATIVE_WRAP_INTENT_ID);
18
+ if (!responseHasSyntheticWrapMarkers)
19
+ return false;
20
+ return isSyntheticNativeWrapRequest(request, responseHasSyntheticWrapMarkers);
20
21
  }
21
- function isSyntheticNativeWrapRequest(request) {
22
+ function isSyntheticNativeWrapRequest(request, responseHasSyntheticWrapMarkers) {
22
23
  if (request.enableAccountAbstraction)
23
24
  return false;
24
25
  if (request.trades.length !== 1)
@@ -38,19 +39,18 @@ function isSyntheticNativeWrapRequest(request) {
38
39
  return false;
39
40
  if (!(0, address_1.addressEquals)(realChainId, wrapped, trade.dstChainTokenOut))
40
41
  return false;
41
- return authorityMatchesRecipient(request);
42
+ return authorityMatchesRecipient(trade, realChainId, responseHasSyntheticWrapMarkers);
42
43
  }
43
- function authorityMatchesRecipient(request) {
44
- const trade = request.trades[0];
44
+ function authorityMatchesRecipient(trade, realChainId, responseHasSyntheticWrapMarkers) {
45
45
  if (trade.srcChainAuthorityAddress === undefined && trade.dstChainTokenOutRecipient === undefined) {
46
46
  return true;
47
47
  }
48
- const realChainId = (0, subscription_to_chain_id_1.resolveChainId)(trade.srcChainId);
49
- if (realChainId === undefined)
50
- return false;
51
- if (trade.srcChainAuthorityAddress === undefined || trade.dstChainTokenOutRecipient === undefined) {
52
- return false;
48
+ if (trade.srcChainAuthorityAddress !== undefined && trade.dstChainTokenOutRecipient !== undefined) {
49
+ return (0, address_1.addressEquals)(realChainId, trade.srcChainAuthorityAddress, trade.dstChainTokenOutRecipient);
53
50
  }
54
- return (0, address_1.addressEquals)(realChainId, trade.srcChainAuthorityAddress, trade.dstChainTokenOutRecipient);
51
+ // Quote-mode requests may omit one execution-side address. A synthetic
52
+ // wrap-marked response proves the missing address was resolved to the same
53
+ // execution identity before the response was built.
54
+ return responseHasSyntheticWrapMarkers;
55
55
  }
56
56
  //# sourceMappingURL=synthetic-native-wrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synthetic-native-wrap.js","sourceRoot":"","sources":["../../../src/helpers/synthetic-native-wrap.ts"],"names":[],"mappings":";;;AAcA,kEAWC;AAzBD,oCAIkB;AAClB,uCAAyE;AACzE,2CAAyD;AACzD,qFAAwE;AAE3D,QAAA,+BAA+B,GAAG,MAAM,CAAC;AAEtD,2EAA2E;AAC3E,+EAA+E;AAC/E,6EAA6E;AAC7E,SAAgB,2BAA2B,CACvC,OAA8B,EAC9B,QAAgC;IAEhC,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IACzD,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhF,OAAO,CACH,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,uCAA+B;WACnE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,uCAA+B,CAC7E,CAAC;AACN,CAAC;AAED,SAAS,4BAA4B,CAAC,OAA8B;IAChE,IAAI,OAAO,CAAC,wBAAwB;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAExD,MAAM,WAAW,GAAG,IAAA,yCAAc,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,IAAA,wBAAc,EAAC,WAAW,CAAC,KAAK,mBAAW,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,IAAA,uBAAa,EAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAErE,MAAM,OAAO,GAAG,IAAA,sCAA0B,EAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC/E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,IAAA,uBAAa,EAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/E,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA8B;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,IAAI,KAAK,CAAC,yBAAyB,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,yCAAc,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,IAAI,KAAK,CAAC,yBAAyB,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAA,uBAAa,EAChB,WAAW,EACX,KAAK,CAAC,wBAAwB,EAC9B,KAAK,CAAC,yBAAyB,CAClC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"synthetic-native-wrap.js","sourceRoot":"","sources":["../../../src/helpers/synthetic-native-wrap.ts"],"names":[],"mappings":";;;AAgBA,kEAaC;AA7BD,oCAMkB;AAClB,uCAAyE;AACzE,2CAAyD;AACzD,qFAAwE;AAE3D,QAAA,+BAA+B,GAAG,MAAM,CAAC;AAEtD,2EAA2E;AAC3E,+EAA+E;AAC/E,6EAA6E;AAC7E,SAAgB,2BAA2B,CACvC,OAA8B,EAC9B,QAAgC;IAEhC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhF,MAAM,+BAA+B,GAAG,CACpC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,uCAA+B;WACnE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,uCAA+B,CAC7E,CAAC;IACF,IAAI,CAAC,+BAA+B;QAAE,OAAO,KAAK,CAAC;IAEnD,OAAO,4BAA4B,CAAC,OAAO,EAAE,+BAA+B,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,4BAA4B,CACjC,OAA8B,EAC9B,+BAAwC;IAExC,IAAI,OAAO,CAAC,wBAAwB;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAExD,MAAM,WAAW,GAAG,IAAA,yCAAc,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,IAAA,wBAAc,EAAC,WAAW,CAAC,KAAK,mBAAW,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAClE,IAAI,CAAC,IAAA,uBAAa,EAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IAErE,MAAM,OAAO,GAAG,IAAA,sCAA0B,EAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC/E,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,IAAA,uBAAa,EAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/E,OAAO,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,+BAA+B,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,yBAAyB,CAC9B,KAAmB,EACnB,WAAoB,EACpB,+BAAwC;IAExC,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,IAAI,KAAK,CAAC,yBAAyB,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,KAAK,CAAC,wBAAwB,KAAK,SAAS,IAAI,KAAK,CAAC,yBAAyB,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,IAAA,uBAAa,EAChB,WAAW,EACX,KAAK,CAAC,wBAAwB,EAC9B,KAAK,CAAC,yBAAyB,CAClC,CAAC;IACN,CAAC;IAED,uEAAuE;IACvE,2EAA2E;IAC3E,oDAAoD;IACpD,OAAO,+BAA+B,CAAC;AAC3C,CAAC"}
@@ -7,6 +7,12 @@ exports.apiBoolean = apiBoolean;
7
7
  exports.apiBooleanSchema = apiBooleanSchema;
8
8
  exports.optionalApiBooleanSchema = optionalApiBooleanSchema;
9
9
  exports.defaultedApiBooleanSchema = defaultedApiBooleanSchema;
10
+ exports.apiStringSchema = apiStringSchema;
11
+ exports.apiNumberSchema = apiNumberSchema;
12
+ exports.integerNumberSchema = integerNumberSchema;
13
+ exports.nonNegativeIntegerNumberSchema = nonNegativeIntegerNumberSchema;
14
+ exports.apiIntegerNumberSchema = apiIntegerNumberSchema;
15
+ exports.apiNonNegativeIntegerNumberSchema = apiNonNegativeIntegerNumberSchema;
10
16
  const zod_1 = require("zod");
11
17
  function formatPath(segments) {
12
18
  return segments.reduce((result, segment) => {
@@ -38,4 +44,40 @@ function optionalApiBooleanSchema() {
38
44
  function defaultedApiBooleanSchema(defaultValue) {
39
45
  return zod_1.z.preprocess(apiBoolean, zod_1.z.boolean().optional()).default(defaultValue);
40
46
  }
47
+ function apiScalarString(value) {
48
+ if (value === undefined || value === null)
49
+ return value;
50
+ if (typeof value === "string")
51
+ return value;
52
+ if (typeof value === "number" || typeof value === "boolean")
53
+ return String(value);
54
+ return value;
55
+ }
56
+ function apiStringSchema() {
57
+ return zod_1.z.preprocess(apiScalarString, zod_1.z.string());
58
+ }
59
+ function apiNumber(value) {
60
+ if (value === undefined || value === null)
61
+ return value;
62
+ if (typeof value === "number")
63
+ return value;
64
+ if (typeof value === "string" || typeof value === "boolean")
65
+ return Number(value);
66
+ return value;
67
+ }
68
+ function apiNumberSchema() {
69
+ return zod_1.z.preprocess(apiNumber, zod_1.z.number());
70
+ }
71
+ function integerNumberSchema() {
72
+ return zod_1.z.number().int();
73
+ }
74
+ function nonNegativeIntegerNumberSchema() {
75
+ return integerNumberSchema().nonnegative();
76
+ }
77
+ function apiIntegerNumberSchema() {
78
+ return apiNumberSchema().pipe(integerNumberSchema());
79
+ }
80
+ function apiNonNegativeIntegerNumberSchema() {
81
+ return apiNumberSchema().pipe(nonNegativeIntegerNumberSchema());
82
+ }
41
83
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":";;AAEA,gCAMC;AAED,0CAEC;AAED,4CAEC;AAED,gCAIC;AAED,4CAEC;AAED,4DAKC;AAED,8DAEC;AArCD,6BAAwB;AAExB,SAAgB,UAAU,CAAC,QAAuB;IAC9C,OAAO,QAAQ,CAAC,MAAM,CAAS,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;QAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC1C,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED,SAAgB,gBAAgB,CAAsB,MAAS;IAC3D,OAAO,OAAC,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAgB,UAAU,CAAC,KAAc;IACrC,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC;AAED,SAAgB,gBAAgB;IAC5B,OAAO,OAAC,CAAC,UAAU,CAAC,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,wBAAwB;IACpC,OAAO,OAAC,CAAC,UAAU,CACf,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EACvD,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CACzB,CAAC;AACN,CAAC;AAED,SAAgB,yBAAyB,CAAC,YAAqB;IAC3D,OAAO,OAAC,CAAC,UAAU,CAAC,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAClF,CAAC"}
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":"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"}
@@ -6,17 +6,17 @@ const zod_1 = require("zod");
6
6
  const zod_2 = require("../helpers/zod");
7
7
  const enums_1 = require("./enums");
8
8
  exports.RequestGasCompensationInfoSchema = zod_1.z.object({
9
- tokenAddress: zod_1.z.string(),
10
- chainId: zod_1.z.number(),
11
- sender: zod_1.z.string(),
9
+ tokenAddress: (0, zod_2.apiStringSchema)(),
10
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
11
+ sender: (0, zod_2.apiStringSchema)(),
12
12
  });
13
13
  // tokenAddress and address are required only for eager placeholders.
14
14
  // Deferred placeholders are filled at submit time, so trade-group fields are not needed.
15
15
  exports.RequestPlaceholderSchema = zod_1.z.object({
16
- nameVariable: zod_1.z.string(),
17
- tokenAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
18
- address: (0, zod_2.nullableOptional)(zod_1.z.string()),
19
- additionalAmount: (0, zod_2.nullableOptional)(zod_1.z.string()),
16
+ nameVariable: (0, zod_2.apiStringSchema)(),
17
+ tokenAddress: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
18
+ address: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
19
+ additionalAmount: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
20
20
  type: (0, zod_2.nullableOptional)(zod_1.z.enum(enums_1.PlaceholderType)),
21
21
  }).superRefine((placeholder, ctx) => {
22
22
  const isEager = placeholder.type === undefined || placeholder.type === enums_1.PlaceholderType.Eager;
@@ -38,28 +38,28 @@ exports.RequestPlaceholderSchema = zod_1.z.object({
38
38
  }
39
39
  });
40
40
  exports.RequestHookV2Schema = zod_1.z.object({
41
- chainId: zod_1.z.number(),
42
- from: zod_1.z.string(),
43
- to: (0, zod_2.nullableOptional)(zod_1.z.string()),
44
- data: zod_1.z.string(),
45
- value: (0, zod_2.nullableOptional)(zod_1.z.string()),
41
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
42
+ from: (0, zod_2.apiStringSchema)(),
43
+ to: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
44
+ data: (0, zod_2.apiStringSchema)(),
45
+ value: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
46
46
  isAtomic: (0, zod_2.apiBooleanSchema)(),
47
47
  placeHolders: zod_1.z.array(exports.RequestPlaceholderSchema),
48
48
  gasCompensationInfo: (0, zod_2.nullableOptional)(exports.RequestGasCompensationInfoSchema),
49
49
  type: (0, zod_2.nullableOptional)(zod_1.z.enum(enums_1.BundleHookType)),
50
- gasLimit: (0, zod_2.nullableOptional)(zod_1.z.string()),
50
+ gasLimit: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
51
51
  });
52
52
  exports.RequestHookV1Schema = zod_1.z.object({
53
- chainId: zod_1.z.number(),
54
- from: zod_1.z.string(),
55
- to: zod_1.z.string(),
56
- data: zod_1.z.string(),
57
- value: zod_1.z.string(),
53
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
54
+ from: (0, zod_2.apiStringSchema)(),
55
+ to: (0, zod_2.apiStringSchema)(),
56
+ data: (0, zod_2.apiStringSchema)(),
57
+ value: (0, zod_2.apiStringSchema)(),
58
58
  isAtomic: (0, zod_2.apiBooleanSchema)(),
59
- tokenAddress: zod_1.z.string(),
59
+ tokenAddress: (0, zod_2.apiStringSchema)(),
60
60
  preparePreRequiredActions: (0, zod_2.optionalApiBooleanSchema)(),
61
- additionalAmountForPlaceholder: (0, zod_2.nullableOptional)(zod_1.z.string()),
62
- allowedSender: (0, zod_2.nullableOptional)(zod_1.z.string()),
61
+ additionalAmountForPlaceholder: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
62
+ allowedSender: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
63
63
  version: (0, zod_2.nullableOptional)(zod_1.z.string()),
64
64
  });
65
65
  exports.RequestHookSchema = zod_1.z.union([exports.RequestHookV2Schema, exports.RequestHookV1Schema]);
@@ -67,8 +67,8 @@ function isRequestHookV2(hook) {
67
67
  return "placeHolders" in hook;
68
68
  }
69
69
  exports.RequestCostTokenSchema = zod_1.z.object({
70
- chainId: zod_1.z.number(),
71
- tokenAddress: zod_1.z.string(),
70
+ chainId: (0, zod_2.apiNonNegativeIntegerNumberSchema)(),
71
+ tokenAddress: (0, zod_2.apiStringSchema)(),
72
72
  });
73
73
  // The API applies field-specific string transforms for these two trade flags.
74
74
  // Generic request booleans use API-compatible Boolean() coercion below; these
@@ -77,37 +77,43 @@ const RequestPrependOperatingExpensesSchema = zod_1.z.preprocess(value => value
77
77
  const RequestPtpSchema = zod_1.z.preprocess(value => value === null ? undefined : typeof value === "string" ? value === "true" : value, zod_1.z.boolean().optional());
78
78
  // Explicit null has the same wire semantics as an omitted expirationTimestamp:
79
79
  // the server chooses the effective bundle/on-chain expiration values.
80
- const RequestExpirationTimestampSchema = (0, zod_2.nullableOptional)(zod_1.z.number());
80
+ const RequestExpirationTimestampSchema = (0, zod_2.nullableOptional)((0, zod_2.nonNegativeIntegerNumberSchema)());
81
+ // Some request fields are normalized by the API before validation. Mirror only
82
+ // those compatibility conversions at the schema boundary; semantic validators
83
+ // still check the normalized values below.
84
+ const RequestOptionalAmountStringSchema = (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)());
85
+ const RequestTradeReferralCodeSchema = (0, zod_2.nullableOptional)(zod_1.z.union([zod_1.z.number(), zod_1.z.string()]));
86
+ const RequestHookListSchema = zod_1.z.preprocess(value => value ? value : undefined, zod_1.z.array(exports.RequestHookSchema).optional());
81
87
  // Free-form integrator metadata. Echoed back in the response unchanged;
82
88
  // validated for round-trip equality.
83
89
  exports.RequestMetadataEntrySchema = zod_1.z.object({
84
90
  key: zod_1.z.string(),
85
91
  value: zod_1.z.string(),
86
92
  });
87
- // `chainId` fields below use z.number() rather than a chain enum on purpose:
88
- // the public API contract narrows accepted chains to a smaller subset than
89
- // the SDK knows about, but the SDK uses a wider chain set elsewhere (e.g.
93
+ // `chainId` fields below are non-negative integers rather than a chain enum on
94
+ // purpose: the public API contract narrows accepted chains to a smaller subset
95
+ // than the SDK knows about, but the SDK uses a wider chain set elsewhere (e.g.
90
96
  // downstream chain-engine resolution). Validating chain support is delegated
91
- // to those downstream checks rather than encoded here. Same applies to `chainId`
92
- // in RequestCostTokenSchema, RequestHookV2Schema, and
97
+ // to those downstream checks rather than encoded here. Same applies to
98
+ // `chainId` in RequestCostTokenSchema, RequestHookV2Schema, and
93
99
  // RequestGasCompensationInfoSchema.
94
100
  exports.RequestTradeSchema = zod_1.z.object({
95
- srcChainId: zod_1.z.number(),
101
+ srcChainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
96
102
  srcChainTokenIn: zod_1.z.string(),
97
103
  srcChainTokenInAmount: zod_1.z.string(),
98
- dstChainId: zod_1.z.number(),
104
+ dstChainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
99
105
  dstChainTokenOut: zod_1.z.string(),
100
- dstChainTokenOutAmount: (0, zod_2.nullableOptional)(zod_1.z.string()),
106
+ dstChainTokenOutAmount: RequestOptionalAmountStringSchema,
101
107
  srcChainAuthorityAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
102
108
  dstChainTokenOutRecipient: (0, zod_2.nullableOptional)(zod_1.z.string()),
103
109
  dstChainAuthorityAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
104
- partnerFeeBps: (0, zod_2.nullableOptional)(zod_1.z.number()),
110
+ partnerFeeBps: (0, zod_2.nullableOptional)((0, zod_2.nonNegativeIntegerNumberSchema)()),
105
111
  allowedTaker: (0, zod_2.nullableOptional)(zod_1.z.string()),
106
112
  dlnHook: (0, zod_2.nullableOptional)(zod_1.z.string()),
107
113
  prependOperatingExpenses: RequestPrependOperatingExpensesSchema,
108
114
  ptp: RequestPtpSchema,
109
115
  dlnMetadata: (0, zod_2.nullableOptional)(zod_1.z.string()),
110
- referralCode: (0, zod_2.nullableOptional)(zod_1.z.number()),
116
+ referralCode: RequestTradeReferralCodeSchema,
111
117
  srcAllowedCancelBeneficiary: (0, zod_2.nullableOptional)(zod_1.z.string()),
112
118
  // Field is intentionally absent from the public API schema but is accepted
113
119
  // by the server and round-trips into the response intent. Security-critical
@@ -126,8 +132,8 @@ exports.BundleCreationRequestSchema = zod_1.z.object({
126
132
  userId: (0, zod_2.nullableOptional)(zod_1.z.string()),
127
133
  referralCode: (0, zod_2.nullableOptional)(zod_1.z.number()),
128
134
  trades: zod_1.z.array(exports.RequestTradeSchema),
129
- preHooks: (0, zod_2.nullableOptional)(zod_1.z.array(exports.RequestHookSchema)),
130
- postHooks: (0, zod_2.nullableOptional)(zod_1.z.array(exports.RequestHookSchema)),
135
+ preHooks: RequestHookListSchema,
136
+ postHooks: RequestHookListSchema,
131
137
  costToken: (0, zod_2.nullableOptional)(exports.RequestCostTokenSchema),
132
138
  clientMetadata: (0, zod_2.nullableOptional)(zod_1.z.array(exports.RequestMetadataEntrySchema)),
133
139
  totalDstAmount: (0, zod_2.nullableOptional)(zod_1.z.string()),
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/types/request.ts"],"names":[],"mappings":"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"}
@@ -36,11 +36,11 @@ exports.ResponseComparedAggregatorSchema = zod_1.z.object({
36
36
  });
37
37
  // --- Response Trade ---
38
38
  exports.ResponseSrcChainTokenInSchema = zod_1.z.object({
39
- chainId: zod_1.z.number(),
39
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
40
40
  address: zod_1.z.string(),
41
41
  name: zod_1.z.string(),
42
42
  symbol: zod_1.z.string(),
43
- decimals: zod_1.z.number(),
43
+ decimals: (0, zod_2.nonNegativeIntegerNumberSchema)(),
44
44
  amount: zod_1.z.string(),
45
45
  approximateOperatingExpense: zod_1.z.string(),
46
46
  mutatedWithOperatingExpense: zod_1.z.boolean(),
@@ -49,21 +49,21 @@ exports.ResponseSrcChainTokenInSchema = zod_1.z.object({
49
49
  isWrapped: (0, zod_2.nullableOptional)(zod_1.z.boolean()),
50
50
  });
51
51
  exports.ResponseSrcChainTokenOutSchema = zod_1.z.object({
52
- chainId: zod_1.z.number(),
52
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
53
53
  address: zod_1.z.string(),
54
54
  name: zod_1.z.string(),
55
55
  symbol: zod_1.z.string(),
56
- decimals: zod_1.z.number(),
56
+ decimals: (0, zod_2.nonNegativeIntegerNumberSchema)(),
57
57
  amount: zod_1.z.string(),
58
58
  maxRefundAmount: (0, zod_2.nullableOptional)(zod_1.z.string()),
59
59
  approximateUsdValue: (0, zod_2.nullableOptional)(zod_1.z.number()),
60
60
  });
61
61
  exports.ResponseDstChainTokenOutSchema = zod_1.z.object({
62
- chainId: zod_1.z.number(),
62
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
63
63
  address: zod_1.z.string(),
64
64
  name: zod_1.z.string(),
65
65
  symbol: zod_1.z.string(),
66
- decimals: zod_1.z.number(),
66
+ decimals: (0, zod_2.nonNegativeIntegerNumberSchema)(),
67
67
  amount: zod_1.z.string(),
68
68
  recommendedAmount: zod_1.z.string(),
69
69
  approximateUsdValue: zod_1.z.number(),
@@ -91,13 +91,13 @@ exports.ResponseTradeSchema = zod_1.z.object({
91
91
  actualIntegratorPoints: (0, zod_2.nullableOptional)(zod_1.z.number()),
92
92
  usdPriceImpact: zod_1.z.number().nullable(),
93
93
  comparedAggregators: (0, zod_2.nullableOptional)(zod_1.z.array(exports.ResponseComparedAggregatorSchema)),
94
- partnerFeeBps: (0, zod_2.nullableOptional)(zod_1.z.number()),
94
+ partnerFeeBps: (0, zod_2.nullableOptional)((0, zod_2.nonNegativeIntegerNumberSchema)()),
95
95
  externalCallData: (0, zod_2.nullableOptional)(zod_1.z.string()),
96
96
  });
97
97
  // --- Response Intent ---
98
98
  exports.ResponseDestinationDetailsSchema = zod_1.z.object({
99
99
  address: zod_1.z.string(),
100
- destinationChainIds: zod_1.z.union([zod_1.z.array(zod_1.z.number()), zod_1.z.literal("any")]),
100
+ destinationChainIds: zod_1.z.union([zod_1.z.array((0, zod_2.nonNegativeIntegerNumberSchema)()), zod_1.z.literal("any")]),
101
101
  });
102
102
  exports.ResponseInputTokenSchema = zod_1.z.object({
103
103
  address: zod_1.z.string(),
@@ -114,17 +114,17 @@ exports.ResponseGiveTokenSchema = zod_1.z.object({
114
114
  exports.ResponseTakeTokenSchema = zod_1.z.object({
115
115
  fromTokenAddress: zod_1.z.string(),
116
116
  takeTokenAddress: zod_1.z.string(),
117
- takeTokenChainId: zod_1.z.number(),
117
+ takeTokenChainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
118
118
  numerator: zod_1.z.string(),
119
119
  denominator: zod_1.z.string(),
120
120
  });
121
121
  exports.ResponseIntentSchema = zod_1.z.object({
122
122
  intentId: zod_1.z.string(),
123
- intentChainId: zod_1.z.number(),
123
+ intentChainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
124
124
  intentAuthority: zod_1.z.string(),
125
125
  intentOwner: zod_1.z.string(),
126
- expirationTimestamp: zod_1.z.number(),
127
- intentTimestamp: zod_1.z.number(),
126
+ expirationTimestamp: (0, zod_2.nonNegativeIntegerNumberSchema)(),
127
+ intentTimestamp: (0, zod_2.nonNegativeIntegerNumberSchema)(),
128
128
  receiverDetails: (0, zod_2.nullableOptional)(zod_1.z.array(exports.ResponseDestinationDetailsSchema)),
129
129
  inputToken: (0, zod_2.nullableOptional)(zod_1.z.array(exports.ResponseInputTokenSchema)),
130
130
  giveToken: (0, zod_2.nullableOptional)(zod_1.z.array(exports.ResponseGiveTokenSchema)),
@@ -148,7 +148,7 @@ exports.EvmTransactionDataSchema = zod_1.z.object({
148
148
  to: zod_1.z.string(),
149
149
  data: zod_1.z.string(),
150
150
  value: zod_1.z.string(),
151
- });
151
+ }).strict();
152
152
  /**
153
153
  * Hook-scope only — payload for `Transaction` actions inside
154
154
  * `response.preHooks[].requiredActions[]` and
@@ -161,7 +161,7 @@ exports.EvmDirectTransactionDataSchema = zod_1.z.object({
161
161
  to: zod_1.z.string(),
162
162
  data: zod_1.z.string(),
163
163
  value: zod_1.z.string(),
164
- chainId: zod_1.z.number(),
164
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
165
165
  });
166
166
  /**
167
167
  * Both scopes (intent and hook) — payload for `Sign7702Authorization`
@@ -170,7 +170,7 @@ exports.EvmDirectTransactionDataSchema = zod_1.z.object({
170
170
  */
171
171
  exports.EvmSign7702AuthorizationDataSchema = zod_1.z.object({
172
172
  contractAddress: zod_1.z.string(),
173
- nonce: zod_1.z.number(),
173
+ nonce: (0, zod_2.nonNegativeIntegerNumberSchema)(),
174
174
  });
175
175
  /**
176
176
  * Generic EIP-712 typed-data payload. Reused by several action types:
@@ -189,7 +189,7 @@ exports.EvmSign712DataSchema = zod_1.z.object({
189
189
  domain: zod_1.z.object({
190
190
  name: zod_1.z.string(),
191
191
  version: (0, zod_2.nullableOptional)(zod_1.z.string()),
192
- chainId: (0, zod_2.nullableOptional)(zod_1.z.number()),
192
+ chainId: (0, zod_2.nullableOptional)((0, zod_2.nonNegativeIntegerNumberSchema)()),
193
193
  verifyingContract: (0, zod_2.nullableOptional)(zod_1.z.string()),
194
194
  }),
195
195
  types: zod_1.z.record(zod_1.z.string(), zod_1.z.array(zod_1.z.object({ name: zod_1.z.string(), type: zod_1.z.string() }))),
@@ -257,14 +257,14 @@ exports.NetworkDetailsSchema = zod_1.z.object({
257
257
  maxPriorityFeePerGas: (0, zod_2.nullableOptional)(zod_1.z.string()),
258
258
  });
259
259
  exports.CostItemSchema = zod_1.z.object({
260
- costChainId: zod_1.z.number(),
260
+ costChainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
261
261
  costTokenAddress: zod_1.z.string(),
262
262
  amount: zod_1.z.string(),
263
263
  approximateUsdValue: zod_1.z.number(),
264
264
  type: zod_1.z.enum(enums_1.CostItemType),
265
- feeBps: (0, zod_2.nullableOptional)(zod_1.z.number()),
265
+ feeBps: (0, zod_2.nullableOptional)((0, zod_2.nonNegativeIntegerNumberSchema)()),
266
266
  details: (0, zod_2.nullableOptional)(zod_1.z.object({
267
- originalChainId: zod_1.z.number(),
267
+ originalChainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
268
268
  })),
269
269
  });
270
270
  exports.EvmCostItemSchema = exports.CostItemSchema.extend({
@@ -341,14 +341,14 @@ exports.ResponseIntentPayloadSchema = zod_1.z.object({
341
341
  });
342
342
  // --- Accumulative Token Input / Output ---
343
343
  exports.AccumulativeTokenInputSchema = zod_1.z.object({
344
- chainId: zod_1.z.number(),
344
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
345
345
  tokenAddress: zod_1.z.string(),
346
346
  spenderAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
347
347
  amount: zod_1.z.string(),
348
348
  approximateUsdValue: zod_1.z.number(),
349
349
  });
350
350
  exports.AccumulativeTokenOutputSchema = zod_1.z.object({
351
- chainId: zod_1.z.number(),
351
+ chainId: (0, zod_2.nonNegativeIntegerNumberSchema)(),
352
352
  tokenAddress: zod_1.z.string(),
353
353
  recipientAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
354
354
  amount: zod_1.z.string(),
@@ -366,7 +366,7 @@ exports.ResponseHookPayloadSchema = zod_1.z.object({
366
366
  // --- Top-level response ---
367
367
  exports.BundleCreationResponseSchema = zod_1.z.object({
368
368
  requestId: zod_1.z.string(),
369
- expirationTimestamp: zod_1.z.number(),
369
+ expirationTimestamp: (0, zod_2.nonNegativeIntegerNumberSchema)(),
370
370
  userId: (0, zod_2.nullableOptional)(zod_1.z.string()),
371
371
  referralCode: (0, zod_2.nullableOptional)(zod_1.z.number()),
372
372
  trades: zod_1.z.array(exports.ResponseTradeSchema),
@@ -378,6 +378,6 @@ exports.BundleCreationResponseSchema = zod_1.z.object({
378
378
  bundleCosts: zod_1.z.array(exports.CostItemSchema),
379
379
  clientMetadata: (0, zod_2.nullableOptional)(zod_1.z.array(request_1.RequestMetadataEntrySchema)),
380
380
  estimatedTotalDstAmount: (0, zod_2.nullableOptional)(zod_1.z.string()),
381
- useRefill: (0, zod_2.nullableOptional)(zod_1.z.boolean()),
381
+ useRefill: zod_1.z.boolean(),
382
382
  });
383
383
  //# sourceMappingURL=response.js.map