@debridge-finance/borderless-validation-sdk 0.0.9 → 0.0.11

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 (213) hide show
  1. package/README.md +20 -7
  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/address.js +6 -0
  5. package/dist/cjs/helpers/address.js.map +1 -1
  6. package/dist/cjs/helpers/evm-intent-id.js +18 -14
  7. package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
  8. package/dist/cjs/helpers/evm-trade-amounts.js +2 -1
  9. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
  10. package/dist/cjs/helpers/quote-mode.js +23 -0
  11. package/dist/cjs/helpers/quote-mode.js.map +1 -0
  12. package/dist/cjs/helpers/synthetic-native-wrap.js +13 -13
  13. package/dist/cjs/helpers/synthetic-native-wrap.js.map +1 -1
  14. package/dist/cjs/helpers/zod.js +55 -0
  15. package/dist/cjs/helpers/zod.js.map +1 -1
  16. package/dist/cjs/types/request.js +69 -54
  17. package/dist/cjs/types/request.js.map +1 -1
  18. package/dist/cjs/types/response.js +67 -66
  19. package/dist/cjs/types/response.js.map +1 -1
  20. package/dist/cjs/types/validation.js +5 -5
  21. package/dist/cjs/types/validation.js.map +1 -1
  22. package/dist/cjs/validations/accumulative-token.js +7 -1
  23. package/dist/cjs/validations/accumulative-token.js.map +1 -1
  24. package/dist/cjs/validations/cost-token.js +14 -4
  25. package/dist/cjs/validations/cost-token.js.map +1 -1
  26. package/dist/cjs/validations/echo-fields.js +8 -0
  27. package/dist/cjs/validations/echo-fields.js.map +1 -1
  28. package/dist/cjs/validations/evm-caveats.js +4 -3
  29. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  30. package/dist/cjs/validations/evm-op-budget.js +14 -7
  31. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  32. package/dist/cjs/validations/evm-op-hook.js +19 -1
  33. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  34. package/dist/cjs/validations/evm-op-wrap.js +10 -4
  35. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  36. package/dist/cjs/validations/evm-permit.js +4 -3
  37. package/dist/cjs/validations/evm-permit.js.map +1 -1
  38. package/dist/cjs/validations/evm-required-actions.js +3 -3
  39. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  40. package/dist/cjs/validations/evm-sign712-metamask.js +4 -3
  41. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  42. package/dist/cjs/validations/evm-sign712.js +2 -2
  43. package/dist/cjs/validations/evm-sign712.js.map +1 -1
  44. package/dist/cjs/validations/evm-sign7702.js +2 -1
  45. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  46. package/dist/cjs/validations/external-call.js +15 -23
  47. package/dist/cjs/validations/external-call.js.map +1 -1
  48. package/dist/cjs/validations/hooks-common.js +82 -44
  49. package/dist/cjs/validations/hooks-common.js.map +1 -1
  50. package/dist/cjs/validations/intent-destinations.js +42 -16
  51. package/dist/cjs/validations/intent-destinations.js.map +1 -1
  52. package/dist/cjs/validations/intent-tokens.js +37 -25
  53. package/dist/cjs/validations/intent-tokens.js.map +1 -1
  54. package/dist/cjs/validations/intent.js +24 -10
  55. package/dist/cjs/validations/intent.js.map +1 -1
  56. package/dist/cjs/validations/required-actions.js +2 -2
  57. package/dist/cjs/validations/required-actions.js.map +1 -1
  58. package/dist/cjs/validations/solana-hook.js +35 -14
  59. package/dist/cjs/validations/solana-hook.js.map +1 -1
  60. package/dist/cjs/validations/solana-op-budget.js +28 -12
  61. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  62. package/dist/cjs/validations/solana-op-wrap.js +10 -5
  63. package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
  64. package/dist/cjs/validations/solana-required-actions.js +3 -3
  65. package/dist/cjs/validations/solana-required-actions.js.map +1 -1
  66. package/dist/cjs/validations/solana-transaction.js +81 -45
  67. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  68. package/dist/cjs/validations/trade-grouping.js +20 -3
  69. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  70. package/dist/cjs/validations/trades.js +75 -109
  71. package/dist/cjs/validations/trades.js.map +1 -1
  72. package/dist/cjs/validator.js +98 -52
  73. package/dist/cjs/validator.js.map +1 -1
  74. package/dist/cjs/whitelists/environment-config.js +89 -56
  75. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  76. package/dist/cjs/whitelists/evm/index.js +3 -1
  77. package/dist/cjs/whitelists/evm/index.js.map +1 -1
  78. package/dist/cjs/whitelists/solana/intent-signature.js +6 -10
  79. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  80. package/dist/esm/graylists/evm/token-permit-metadata.js +39 -6
  81. package/dist/esm/graylists/evm/token-permit-metadata.js.map +1 -1
  82. package/dist/esm/helpers/address.js +6 -0
  83. package/dist/esm/helpers/address.js.map +1 -1
  84. package/dist/esm/helpers/evm-intent-id.js +18 -14
  85. package/dist/esm/helpers/evm-intent-id.js.map +1 -1
  86. package/dist/esm/helpers/evm-trade-amounts.js +2 -1
  87. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
  88. package/dist/esm/helpers/quote-mode.js +17 -0
  89. package/dist/esm/helpers/quote-mode.js.map +1 -0
  90. package/dist/esm/helpers/synthetic-native-wrap.js +13 -13
  91. package/dist/esm/helpers/synthetic-native-wrap.js.map +1 -1
  92. package/dist/esm/helpers/zod.js +47 -0
  93. package/dist/esm/helpers/zod.js.map +1 -1
  94. package/dist/esm/types/request.js +69 -54
  95. package/dist/esm/types/request.js.map +1 -1
  96. package/dist/esm/types/response.js +67 -66
  97. package/dist/esm/types/response.js.map +1 -1
  98. package/dist/esm/types/validation.js +5 -5
  99. package/dist/esm/types/validation.js.map +1 -1
  100. package/dist/esm/validations/accumulative-token.js +7 -1
  101. package/dist/esm/validations/accumulative-token.js.map +1 -1
  102. package/dist/esm/validations/cost-token.js +14 -4
  103. package/dist/esm/validations/cost-token.js.map +1 -1
  104. package/dist/esm/validations/echo-fields.js +8 -0
  105. package/dist/esm/validations/echo-fields.js.map +1 -1
  106. package/dist/esm/validations/evm-caveats.js +4 -3
  107. package/dist/esm/validations/evm-caveats.js.map +1 -1
  108. package/dist/esm/validations/evm-op-budget.js +14 -7
  109. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  110. package/dist/esm/validations/evm-op-hook.js +19 -1
  111. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  112. package/dist/esm/validations/evm-op-wrap.js +10 -4
  113. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  114. package/dist/esm/validations/evm-permit.js +4 -3
  115. package/dist/esm/validations/evm-permit.js.map +1 -1
  116. package/dist/esm/validations/evm-required-actions.js +3 -3
  117. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  118. package/dist/esm/validations/evm-sign712-metamask.js +1 -1
  119. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  120. package/dist/esm/validations/evm-sign712.js +2 -2
  121. package/dist/esm/validations/evm-sign712.js.map +1 -1
  122. package/dist/esm/validations/evm-sign7702.js +2 -1
  123. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  124. package/dist/esm/validations/external-call.js +15 -23
  125. package/dist/esm/validations/external-call.js.map +1 -1
  126. package/dist/esm/validations/hooks-common.js +83 -45
  127. package/dist/esm/validations/hooks-common.js.map +1 -1
  128. package/dist/esm/validations/intent-destinations.js +43 -17
  129. package/dist/esm/validations/intent-destinations.js.map +1 -1
  130. package/dist/esm/validations/intent-tokens.js +37 -25
  131. package/dist/esm/validations/intent-tokens.js.map +1 -1
  132. package/dist/esm/validations/intent.js +24 -10
  133. package/dist/esm/validations/intent.js.map +1 -1
  134. package/dist/esm/validations/required-actions.js +2 -2
  135. package/dist/esm/validations/required-actions.js.map +1 -1
  136. package/dist/esm/validations/solana-hook.js +35 -14
  137. package/dist/esm/validations/solana-hook.js.map +1 -1
  138. package/dist/esm/validations/solana-op-budget.js +28 -12
  139. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  140. package/dist/esm/validations/solana-op-wrap.js +10 -5
  141. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  142. package/dist/esm/validations/solana-required-actions.js +3 -3
  143. package/dist/esm/validations/solana-required-actions.js.map +1 -1
  144. package/dist/esm/validations/solana-transaction.js +81 -45
  145. package/dist/esm/validations/solana-transaction.js.map +1 -1
  146. package/dist/esm/validations/trade-grouping.js +21 -4
  147. package/dist/esm/validations/trade-grouping.js.map +1 -1
  148. package/dist/esm/validations/trades.js +75 -109
  149. package/dist/esm/validations/trades.js.map +1 -1
  150. package/dist/esm/validator.js +99 -53
  151. package/dist/esm/validator.js.map +1 -1
  152. package/dist/esm/whitelists/environment-config.js +84 -52
  153. package/dist/esm/whitelists/environment-config.js.map +1 -1
  154. package/dist/esm/whitelists/evm/index.js +1 -0
  155. package/dist/esm/whitelists/evm/index.js.map +1 -1
  156. package/dist/esm/whitelists/solana/intent-signature.js +4 -9
  157. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  158. package/dist/types/graylists/evm/token-permit-metadata.d.ts +2 -2
  159. package/dist/types/graylists/evm/token-permit-metadata.d.ts.map +1 -1
  160. package/dist/types/helpers/address.d.ts.map +1 -1
  161. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
  162. package/dist/types/helpers/quote-mode.d.ts +6 -0
  163. package/dist/types/helpers/quote-mode.d.ts.map +1 -0
  164. package/dist/types/helpers/synthetic-native-wrap.d.ts.map +1 -1
  165. package/dist/types/helpers/zod.d.ts +9 -0
  166. package/dist/types/helpers/zod.d.ts.map +1 -1
  167. package/dist/types/types/request.d.ts +159 -159
  168. package/dist/types/types/request.d.ts.map +1 -1
  169. package/dist/types/types/response.d.ts +456 -456
  170. package/dist/types/types/response.d.ts.map +1 -1
  171. package/dist/types/types/validation.d.ts +5 -4
  172. package/dist/types/types/validation.d.ts.map +1 -1
  173. package/dist/types/validations/accumulative-token.d.ts +1 -1
  174. package/dist/types/validations/accumulative-token.d.ts.map +1 -1
  175. package/dist/types/validations/cost-token.d.ts.map +1 -1
  176. package/dist/types/validations/echo-fields.d.ts.map +1 -1
  177. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  178. package/dist/types/validations/evm-op-budget.d.ts +1 -1
  179. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  180. package/dist/types/validations/evm-op-wrap.d.ts +1 -1
  181. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
  182. package/dist/types/validations/evm-required-actions.d.ts +1 -1
  183. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  184. package/dist/types/validations/evm-sign712-metamask.d.ts +1 -0
  185. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  186. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  187. package/dist/types/validations/external-call.d.ts +2 -2
  188. package/dist/types/validations/external-call.d.ts.map +1 -1
  189. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  190. package/dist/types/validations/intent-destinations.d.ts +3 -3
  191. package/dist/types/validations/intent-destinations.d.ts.map +1 -1
  192. package/dist/types/validations/intent-tokens.d.ts.map +1 -1
  193. package/dist/types/validations/intent.d.ts +1 -1
  194. package/dist/types/validations/intent.d.ts.map +1 -1
  195. package/dist/types/validations/required-actions.d.ts.map +1 -1
  196. package/dist/types/validations/solana-op-budget.d.ts +1 -1
  197. package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
  198. package/dist/types/validations/solana-op-wrap.d.ts +1 -1
  199. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  200. package/dist/types/validations/solana-required-actions.d.ts +1 -1
  201. package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
  202. package/dist/types/validations/solana-transaction.d.ts +2 -2
  203. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  204. package/dist/types/validations/trade-grouping.d.ts +2 -0
  205. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  206. package/dist/types/validator.d.ts.map +1 -1
  207. package/dist/types/whitelists/environment-config.d.ts +17 -0
  208. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  209. package/dist/types/whitelists/evm/index.d.ts +1 -0
  210. package/dist/types/whitelists/evm/index.d.ts.map +1 -1
  211. package/dist/types/whitelists/solana/intent-signature.d.ts +1 -0
  212. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  213. package/package.json +1 -1
package/README.md CHANGED
@@ -58,7 +58,13 @@ if (!result.ok) {
58
58
  ### API
59
59
 
60
60
  ```ts
61
- createValidator(config: { environment: Environment }): Validator
61
+ createValidator(config: ValidatorConfig): Validator
62
+
63
+ type ValidatorConfig = {
64
+ environment: Environment;
65
+ allowLegacyHookV1?: boolean;
66
+ validateSolverExecutorAddress?: boolean;
67
+ };
62
68
 
63
69
  type Validator = {
64
70
  validate(url: string, request: object, response: object): ValidationResult;
@@ -105,8 +111,9 @@ The SDK is designed to run **between** receiving the API response and presenting
105
111
  import { Environment } from "@debridge-finance/borderless-validation-sdk";
106
112
  ```
107
113
 
108
- - `Environment.Prod` — production.
109
- - `Environment.Hanoi`, `Environment.Dubai`, `Environment.Madrid` — 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).
110
117
 
111
118
  Pass the same environment your app is already configured for — don't make it user-selectable.
112
119
 
@@ -118,7 +125,7 @@ const response = await fetch(url, { ... });
118
125
  const result = validator.validate(url, request, response);
119
126
  ```
120
127
 
121
- The `url` argument is checked against a per-environment whitelist. Passing a hardcoded constant defeats the check — pass the same string you handed to `fetch`.
128
+ The `url` argument is accepted for API compatibility and future endpoint checks. Pass the same string you handed to `fetch`; do not rely on URL validation until it is explicitly enabled in a release.
122
129
 
123
130
  ### 4. Handling violations
124
131
 
@@ -131,7 +138,7 @@ On `result.ok === false`:
131
138
 
132
139
  ### 5. Browser compatibility
133
140
 
134
- The SDK is published as both CJS and ESM and uses only browser-compatible APIs (no `fs`, `crypto`, `Buffer`, `process`). It has been smoke-tested in a plain `<script type="module">` environment — see [`tmp/front/`](./tmp/front/) for a minimal example.
141
+ The SDK is published as both CJS and ESM and uses only browser-compatible APIs (no `fs`, `crypto`, `Buffer`, `process`).
135
142
 
136
143
  Tree-shaking: the ESM build preserves named exports. Importing only `createValidator` will not pull in unused validators.
137
144
 
@@ -153,11 +160,17 @@ Full type declarations ship in `dist/types/`. `ValidatorConfig`, `ValidationResu
153
160
  ## Development
154
161
 
155
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.
156
164
 
157
165
  - Unit tests: `npm test`
158
- - Coverage: `npm run coverage`
166
+ - Unit test coverage: `npm run coverage`
159
167
  - E2E tests (hit the staging API): `npm run test:e2e`
160
- - 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`
161
174
 
162
175
  ## License
163
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"}
@@ -88,6 +88,12 @@ function addressToHexByValue(address) {
88
88
  return applyEngineToHex(address, detectChainEngine(address));
89
89
  }
90
90
  function applyEngineToHex(address, engine) {
91
+ // API address parsing treats 0x-prefixed values as raw hex for every
92
+ // chain, including Tron. Preserve that behavior before engine-specific
93
+ // human-readable decoding.
94
+ if (address.startsWith("0x")) {
95
+ return address.toLowerCase();
96
+ }
91
97
  if (engine === enums_1.ChainEngine.EVM) {
92
98
  return address.toLowerCase();
93
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/helpers/address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/helpers/address.ts"],"names":[],"mappings":"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"}
@@ -12,24 +12,28 @@ function computeIntentId(intent) {
12
12
  return (0, viem_1.keccak256)(encoded);
13
13
  }
14
14
  function convertToIntentStruct(intent) {
15
+ const intentRealChainId = (0, subscription_to_chain_id_1.resolveChainId)(intent.intentChainId) ?? intent.intentChainId;
15
16
  return {
16
17
  intentChainId: intent.intentChainId,
17
- intentOwner: intent.intentOwner,
18
+ intentOwner: (0, address_1.addressToHex)(intentRealChainId, intent.intentOwner),
18
19
  receiverDetails: convertAllowedAddresses(intent.receiverDetails),
19
- inputToken: convertInputTokens(intent.inputToken),
20
- giveToken: convertGiveTokens(intent.giveToken),
21
- takeToken: convertTakeTokens(intent.takeToken),
20
+ inputToken: convertInputTokens(intentRealChainId, intent.inputToken),
21
+ giveToken: convertGiveTokens(intentRealChainId, intent.giveToken),
22
+ takeToken: convertTakeTokens(intent.takeToken, intentRealChainId),
22
23
  expirationTimestamp: BigInt(intent.expirationTimestamp),
23
24
  intentTimestamp: BigInt(intent.intentTimestamp),
24
- srcAllowedSender: (intent.srcAllowedSender ?? []),
25
+ srcAllowedSender: (intent.srcAllowedSender ?? [])
26
+ .map(address => (0, address_1.addressToHex)(intentRealChainId, address)),
25
27
  executionMetadata: (intent.executionMetadata ?? viem_1.zeroHash),
26
28
  isAnyDlnMetadataAllowed: !intent.dlnMetadata,
27
29
  dlnMetadata: (intent.dlnMetadata ?? "0x"),
28
30
  externalCallHash: (intent.externalCallHash ?? viem_1.zeroHash),
29
31
  combinedInteractions: "0x",
30
- allowedCancelBeneficiary: (intent.allowedCancelBeneficiary ?? viem_1.zeroAddress),
32
+ allowedCancelBeneficiary: intent.allowedCancelBeneficiary
33
+ ? (0, address_1.addressToHex)(intentRealChainId, intent.allowedCancelBeneficiary)
34
+ : viem_1.zeroAddress,
31
35
  dstAuthorityAddress: convertAllowedAddresses(intent.dstAuthorityAddress),
32
- intentAuthority: intent.intentAuthority,
36
+ intentAuthority: (0, address_1.addressToHex)(intentRealChainId, intent.intentAuthority),
33
37
  };
34
38
  }
35
39
  // Encodes addresses as raw bytes — non-EVM strings can't be passed as-is.
@@ -49,32 +53,32 @@ function convertAllowedAddresses(details) {
49
53
  return { allowedAddress, chains, isAnyChain };
50
54
  });
51
55
  }
52
- function convertInputTokens(tokens) {
56
+ function convertInputTokens(intentRealChainId, tokens) {
53
57
  if (!tokens)
54
58
  return [];
55
59
  return tokens.map(t => ({
56
- token: t.address,
60
+ token: (0, address_1.addressToHex)(intentRealChainId, t.address),
57
61
  minPartialAmount: (0, integer_1.parseIntegerString)(t.minPartialAmount),
58
62
  maxPartialAmount: (0, integer_1.parseIntegerString)(t.maxPartialAmount),
59
63
  budget: (0, integer_1.parseIntegerString)(t.constraintBudget),
60
64
  }));
61
65
  }
62
- function convertGiveTokens(tokens) {
66
+ function convertGiveTokens(intentRealChainId, tokens) {
63
67
  if (!tokens)
64
68
  return [];
65
69
  return tokens.map(t => ({
66
- inputToken: t.inputTokenAddress,
67
- giveToken: t.giveTokenAddress,
70
+ inputToken: (0, address_1.addressToHex)(intentRealChainId, t.inputTokenAddress),
71
+ giveToken: (0, address_1.addressToHex)(intentRealChainId, t.giveTokenAddress),
68
72
  numerator: (0, integer_1.parseIntegerString)(t.numerator),
69
73
  denominator: Number(t.denominator),
70
74
  }));
71
75
  }
72
76
  // Encode addresses as raw bytes — non-EVM strings can't be passed as-is.
73
- function convertTakeTokens(tokens) {
77
+ function convertTakeTokens(tokens, intentRealChainId) {
74
78
  return tokens.map(t => {
75
79
  const realChainId = (0, subscription_to_chain_id_1.resolveChainId)(t.takeTokenChainId) ?? t.takeTokenChainId;
76
80
  return {
77
- giveToken: t.fromTokenAddress,
81
+ giveToken: (0, address_1.addressToHex)(intentRealChainId, t.fromTokenAddress),
78
82
  takeTokenChain: t.takeTokenChainId,
79
83
  takeToken: (0, address_1.addressToHex)(realChainId, t.takeTokenAddress),
80
84
  numerator: (0, integer_1.parseIntegerString)(t.numerator),
@@ -1 +1 @@
1
- {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
@@ -40,13 +40,14 @@ function sumTradeAmounts(trades, tokenAddress, realChainId, responseTrades) {
40
40
  try {
41
41
  sum += (0, integer_1.parseIntegerString)(responseAmount);
42
42
  }
43
- catch {
43
+ catch (error) {
44
44
  return {
45
45
  violations: [{
46
46
  code: types_1.ViolationCode.TradeAmountInvalid,
47
47
  message: "response.trades[].srcChainTokenIn.amount is not a valid number",
48
48
  path: `response.trades[${i}].srcChainTokenIn.amount`,
49
49
  actual: responseAmount,
50
+ details: error,
50
51
  }],
51
52
  };
52
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":";;AA2BA,0CAkDC;AA7ED,oCAMkB;AAClB,uCAA6C;AAC7C,2CAAyD;AACzD,uCAA+C;AAO/C,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,SAAgB,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB,EACpB,cAA6C;IAE7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,6FAA6F;IAC7F,MAAM,aAAa,GAAG,IAAA,sCAA0B,EAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,IAAA,0BAAgB,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,IAAA,sCAA0B,EAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,IAAA,0BAAgB,EACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC;YACD,GAAG,IAAI,IAAA,4BAAkB,EAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,MAAM,CAAC;YACL,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,qBAAa,CAAC,kBAAkB;wBACtC,OAAO,EACH,gEAAgE;wBACpE,IAAI,EAAE,mBAAmB,CAAC,0BAA0B;wBACpD,MAAM,EAAE,cAAc;qBACzB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAEpC,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":";;AA2BA,0CAmDC;AA9ED,oCAMkB;AAClB,uCAA6C;AAC7C,2CAAyD;AACzD,uCAA+C;AAO/C,2EAA2E;AAC3E,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,+CAA+C;AAC/C,SAAgB,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB,EACpB,cAA6C;IAE7C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,6FAA6F;IAC7F,MAAM,aAAa,GAAG,IAAA,sCAA0B,EAAC,YAAY,EAAE,WAAW,CAAC,IAAI,YAAY,CAAC;IAC5F,MAAM,UAAU,GAAG,IAAA,0BAAgB,EAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,kBAAkB,GAAG,IAAA,sCAA0B,EAAC,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAC1F,MAAM,oBAAoB,GAAG,IAAA,0BAAgB,EACzC,WAAW,EAAE,kBAAkB,IAAI,KAAK,CAAC,eAAe,CAC3D,CAAC;QACF,IAAI,oBAAoB,KAAK,UAAU,EAAE,CAAC;YACtC,SAAS;QACb,CAAC;QAED,UAAU,GAAG,IAAI,CAAC;QAClB,MAAM,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACxC,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC;QAC5D,IAAI,CAAC;YACD,GAAG,IAAI,IAAA,4BAAkB,EAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,qBAAa,CAAC,kBAAkB;wBACtC,OAAO,EACH,gEAAgE;wBACpE,IAAI,EAAE,mBAAmB,CAAC,0BAA0B;wBACpD,MAAM,EAAE,cAAc;wBACtB,OAAO,EAAE,KAAK;qBACjB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAEpC,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,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"}
@@ -1,6 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatPath = formatPath;
4
+ exports.nullAsUndefined = nullAsUndefined;
5
+ exports.nullableOptional = nullableOptional;
6
+ exports.apiBoolean = apiBoolean;
7
+ exports.apiBooleanSchema = apiBooleanSchema;
8
+ exports.optionalApiBooleanSchema = optionalApiBooleanSchema;
9
+ exports.defaultedApiBooleanSchema = defaultedApiBooleanSchema;
10
+ exports.apiStringSchema = apiStringSchema;
11
+ exports.apiNumberSchema = apiNumberSchema;
12
+ const zod_1 = require("zod");
4
13
  function formatPath(segments) {
5
14
  return segments.reduce((result, segment) => {
6
15
  if (typeof segment === "number")
@@ -9,4 +18,50 @@ function formatPath(segments) {
9
18
  return result ? `${result}.${key}` : key;
10
19
  }, "");
11
20
  }
21
+ function nullAsUndefined(value) {
22
+ return value === null ? undefined : value;
23
+ }
24
+ function nullableOptional(schema) {
25
+ return zod_1.z.preprocess(nullAsUndefined, schema.optional());
26
+ }
27
+ function apiBoolean(value) {
28
+ if (value === undefined)
29
+ return undefined;
30
+ if (value === null)
31
+ return null;
32
+ return Boolean(value);
33
+ }
34
+ function apiBooleanSchema() {
35
+ return zod_1.z.preprocess(apiBoolean, zod_1.z.boolean());
36
+ }
37
+ function optionalApiBooleanSchema() {
38
+ return zod_1.z.preprocess(value => value === null ? undefined : apiBoolean(value), zod_1.z.boolean().optional());
39
+ }
40
+ function defaultedApiBooleanSchema(defaultValue) {
41
+ return zod_1.z.preprocess(apiBoolean, zod_1.z.boolean().optional()).default(defaultValue);
42
+ }
43
+ function apiScalarString(value) {
44
+ if (value === undefined || value === null)
45
+ return value;
46
+ if (typeof value === "string")
47
+ return value;
48
+ if (typeof value === "number" || typeof value === "boolean")
49
+ return String(value);
50
+ return value;
51
+ }
52
+ function apiStringSchema() {
53
+ return zod_1.z.preprocess(apiScalarString, zod_1.z.string());
54
+ }
55
+ function apiNumber(value) {
56
+ if (value === undefined || value === null)
57
+ return value;
58
+ if (typeof value === "number")
59
+ return value;
60
+ if (typeof value === "string" || typeof value === "boolean")
61
+ return Number(value);
62
+ return value;
63
+ }
64
+ function apiNumberSchema() {
65
+ return zod_1.z.preprocess(apiNumber, zod_1.z.number());
66
+ }
12
67
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":";;AAAA,gCAMC;AAND,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"}
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/helpers/zod.ts"],"names":[],"mappings":"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"}
@@ -3,20 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BundleCreationRequestSchema = exports.RequestTradeSchema = exports.RequestMetadataEntrySchema = exports.RequestCostTokenSchema = exports.RequestHookSchema = exports.RequestHookV1Schema = exports.RequestHookV2Schema = exports.RequestPlaceholderSchema = exports.RequestGasCompensationInfoSchema = void 0;
4
4
  exports.isRequestHookV2 = isRequestHookV2;
5
5
  const zod_1 = require("zod");
6
+ const zod_2 = require("../helpers/zod");
6
7
  const enums_1 = require("./enums");
7
8
  exports.RequestGasCompensationInfoSchema = zod_1.z.object({
8
- tokenAddress: zod_1.z.string(),
9
+ tokenAddress: (0, zod_2.apiStringSchema)(),
9
10
  chainId: zod_1.z.number(),
10
- sender: zod_1.z.string(),
11
+ sender: (0, zod_2.apiStringSchema)(),
11
12
  });
12
13
  // tokenAddress and address are required only for eager placeholders.
13
14
  // Deferred placeholders are filled at submit time, so trade-group fields are not needed.
14
15
  exports.RequestPlaceholderSchema = zod_1.z.object({
15
- nameVariable: zod_1.z.string(),
16
- tokenAddress: zod_1.z.string().optional(),
17
- address: zod_1.z.string().optional(),
18
- additionalAmount: zod_1.z.string().optional(),
19
- type: zod_1.z.enum(enums_1.PlaceholderType).optional(),
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
+ type: (0, zod_2.nullableOptional)(zod_1.z.enum(enums_1.PlaceholderType)),
20
21
  }).superRefine((placeholder, ctx) => {
21
22
  const isEager = placeholder.type === undefined || placeholder.type === enums_1.PlaceholderType.Eager;
22
23
  if (!isEager)
@@ -38,37 +39,51 @@ exports.RequestPlaceholderSchema = zod_1.z.object({
38
39
  });
39
40
  exports.RequestHookV2Schema = zod_1.z.object({
40
41
  chainId: zod_1.z.number(),
41
- from: zod_1.z.string(),
42
- to: zod_1.z.string().optional(),
43
- data: zod_1.z.string(),
44
- value: zod_1.z.string().optional(),
45
- isAtomic: zod_1.z.boolean(),
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
+ isAtomic: (0, zod_2.apiBooleanSchema)(),
46
47
  placeHolders: zod_1.z.array(exports.RequestPlaceholderSchema),
47
- gasCompensationInfo: exports.RequestGasCompensationInfoSchema.optional(),
48
- type: zod_1.z.enum(enums_1.BundleHookType).optional(),
49
- gasLimit: zod_1.z.string().optional(),
48
+ gasCompensationInfo: (0, zod_2.nullableOptional)(exports.RequestGasCompensationInfoSchema),
49
+ type: (0, zod_2.nullableOptional)(zod_1.z.enum(enums_1.BundleHookType)),
50
+ gasLimit: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
50
51
  });
51
52
  exports.RequestHookV1Schema = zod_1.z.object({
52
53
  chainId: zod_1.z.number(),
53
- from: zod_1.z.string(),
54
- to: zod_1.z.string(),
55
- data: zod_1.z.string(),
56
- value: zod_1.z.string(),
57
- isAtomic: zod_1.z.boolean(),
58
- tokenAddress: zod_1.z.string(),
59
- preparePreRequiredActions: zod_1.z.boolean().optional(),
60
- additionalAmountForPlaceholder: zod_1.z.string().optional(),
61
- allowedSender: zod_1.z.string().optional(),
62
- version: zod_1.z.string().optional(),
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
+ isAtomic: (0, zod_2.apiBooleanSchema)(),
59
+ tokenAddress: (0, zod_2.apiStringSchema)(),
60
+ preparePreRequiredActions: (0, zod_2.optionalApiBooleanSchema)(),
61
+ additionalAmountForPlaceholder: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
62
+ allowedSender: (0, zod_2.nullableOptional)((0, zod_2.apiStringSchema)()),
63
+ version: (0, zod_2.nullableOptional)(zod_1.z.string()),
63
64
  });
64
65
  exports.RequestHookSchema = zod_1.z.union([exports.RequestHookV2Schema, exports.RequestHookV1Schema]);
65
66
  function isRequestHookV2(hook) {
66
67
  return "placeHolders" in hook;
67
68
  }
68
69
  exports.RequestCostTokenSchema = zod_1.z.object({
69
- chainId: zod_1.z.number(),
70
- tokenAddress: zod_1.z.string(),
70
+ chainId: (0, zod_2.apiNumberSchema)(),
71
+ tokenAddress: (0, zod_2.apiStringSchema)(),
71
72
  });
73
+ // The API applies field-specific string transforms for these two trade flags.
74
+ // Generic request booleans use API-compatible Boolean() coercion below; these
75
+ // fields keep their custom API semantics instead.
76
+ const RequestPrependOperatingExpensesSchema = zod_1.z.preprocess(value => value === null ? undefined : typeof value === "string" ? value !== "false" : value, zod_1.z.boolean().optional());
77
+ const RequestPtpSchema = zod_1.z.preprocess(value => value === null ? undefined : typeof value === "string" ? value === "true" : value, zod_1.z.boolean().optional());
78
+ // Explicit null has the same wire semantics as an omitted expirationTimestamp:
79
+ // the server chooses the effective bundle/on-chain expiration values.
80
+ const RequestExpirationTimestampSchema = (0, zod_2.nullableOptional)(zod_1.z.number());
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());
72
87
  // Free-form integrator metadata. Echoed back in the response unchanged;
73
88
  // validated for round-trip equality.
74
89
  exports.RequestMetadataEntrySchema = zod_1.z.object({
@@ -88,40 +103,40 @@ exports.RequestTradeSchema = zod_1.z.object({
88
103
  srcChainTokenInAmount: zod_1.z.string(),
89
104
  dstChainId: zod_1.z.number(),
90
105
  dstChainTokenOut: zod_1.z.string(),
91
- dstChainTokenOutAmount: zod_1.z.string().optional(),
92
- srcChainAuthorityAddress: zod_1.z.string().optional(),
93
- dstChainTokenOutRecipient: zod_1.z.string().optional(),
94
- dstChainAuthorityAddress: zod_1.z.string().optional(),
95
- partnerFeeBps: zod_1.z.number().optional(),
96
- allowedTaker: zod_1.z.string().optional(),
97
- dlnHook: zod_1.z.string().optional(),
98
- prependOperatingExpenses: zod_1.z.boolean().optional(),
99
- ptp: zod_1.z.boolean().optional(),
100
- dlnMetadata: zod_1.z.string().optional(),
101
- referralCode: zod_1.z.number().optional(),
102
- srcAllowedCancelBeneficiary: zod_1.z.string().optional(),
106
+ dstChainTokenOutAmount: RequestOptionalAmountStringSchema,
107
+ srcChainAuthorityAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
108
+ dstChainTokenOutRecipient: (0, zod_2.nullableOptional)(zod_1.z.string()),
109
+ dstChainAuthorityAddress: (0, zod_2.nullableOptional)(zod_1.z.string()),
110
+ partnerFeeBps: (0, zod_2.nullableOptional)(zod_1.z.number()),
111
+ allowedTaker: (0, zod_2.nullableOptional)(zod_1.z.string()),
112
+ dlnHook: (0, zod_2.nullableOptional)(zod_1.z.string()),
113
+ prependOperatingExpenses: RequestPrependOperatingExpensesSchema,
114
+ ptp: RequestPtpSchema,
115
+ dlnMetadata: (0, zod_2.nullableOptional)(zod_1.z.string()),
116
+ referralCode: RequestTradeReferralCodeSchema,
117
+ srcAllowedCancelBeneficiary: (0, zod_2.nullableOptional)(zod_1.z.string()),
103
118
  // Field is intentionally absent from the public API schema but is accepted
104
119
  // by the server and round-trips into the response intent. Security-critical
105
120
  // for execution-mode validation.
106
- srcAllowedSender: zod_1.z.string().optional(),
121
+ srcAllowedSender: (0, zod_2.nullableOptional)(zod_1.z.string()),
107
122
  });
108
123
  exports.BundleCreationRequestSchema = zod_1.z.object({
109
124
  requestId: zod_1.z.string(),
110
- expirationTimestamp: zod_1.z.number().optional(),
111
- enableAccountAbstraction: zod_1.z.boolean(),
112
- isAtomic: zod_1.z.boolean().optional().default(true),
125
+ expirationTimestamp: RequestExpirationTimestampSchema,
126
+ enableAccountAbstraction: (0, zod_2.apiBooleanSchema)(),
127
+ isAtomic: (0, zod_2.defaultedApiBooleanSchema)(true),
113
128
  tradingAlgorithm: zod_1.z.enum(enums_1.TradingAlgorithm).optional().default(enums_1.TradingAlgorithm.Market),
114
- approveAmountFlag: zod_1.z.enum(enums_1.ApproveAmountFlag).optional(),
115
- approvalMode: zod_1.z.enum(enums_1.ApprovalMode).optional(),
116
- useRefill: zod_1.z.boolean().optional(),
117
- userId: zod_1.z.string().optional(),
118
- referralCode: zod_1.z.number().optional(),
129
+ approveAmountFlag: (0, zod_2.nullableOptional)(zod_1.z.enum(enums_1.ApproveAmountFlag)),
130
+ approvalMode: (0, zod_2.nullableOptional)(zod_1.z.enum(enums_1.ApprovalMode)),
131
+ useRefill: (0, zod_2.optionalApiBooleanSchema)(),
132
+ userId: (0, zod_2.nullableOptional)(zod_1.z.string()),
133
+ referralCode: (0, zod_2.nullableOptional)(zod_1.z.number()),
119
134
  trades: zod_1.z.array(exports.RequestTradeSchema),
120
- preHooks: zod_1.z.array(exports.RequestHookSchema).optional(),
121
- postHooks: zod_1.z.array(exports.RequestHookSchema).optional(),
122
- costToken: exports.RequestCostTokenSchema.optional(),
123
- clientMetadata: zod_1.z.array(exports.RequestMetadataEntrySchema).optional(),
124
- totalDstAmount: zod_1.z.string().optional(),
125
- allowPartialFill: zod_1.z.boolean().optional(),
135
+ preHooks: RequestHookListSchema,
136
+ postHooks: RequestHookListSchema,
137
+ costToken: (0, zod_2.nullableOptional)(exports.RequestCostTokenSchema),
138
+ clientMetadata: (0, zod_2.nullableOptional)(zod_1.z.array(exports.RequestMetadataEntrySchema)),
139
+ totalDstAmount: (0, zod_2.nullableOptional)(zod_1.z.string()),
140
+ allowPartialFill: (0, zod_2.optionalApiBooleanSchema)(),
126
141
  });
127
142
  //# sourceMappingURL=request.js.map