@debridge-finance/borderless-validation-sdk 0.0.6 → 0.0.8

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 (283) hide show
  1. package/dist/cjs/helpers/eip712-types.js +29 -0
  2. package/dist/cjs/helpers/eip712-types.js.map +1 -0
  3. package/dist/cjs/helpers/evm-action.js +18 -2
  4. package/dist/cjs/helpers/evm-action.js.map +1 -1
  5. package/dist/cjs/helpers/evm-dln-hook-pack.js +8 -6
  6. package/dist/cjs/helpers/evm-dln-hook-pack.js.map +1 -1
  7. package/dist/cjs/helpers/evm-gas-compensation-tx.js +26 -7
  8. package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -1
  9. package/dist/cjs/helpers/evm-intent-id.js +6 -5
  10. package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
  11. package/dist/cjs/helpers/evm-token.js +1 -1
  12. package/dist/cjs/helpers/evm-token.js.map +1 -1
  13. package/dist/cjs/helpers/evm-trade-amounts.js +2 -1
  14. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
  15. package/dist/cjs/helpers/expected-delegate.js +10 -11
  16. package/dist/cjs/helpers/expected-delegate.js.map +1 -1
  17. package/dist/cjs/helpers/gas-compensation.js +3 -0
  18. package/dist/cjs/helpers/gas-compensation.js.map +1 -1
  19. package/dist/cjs/helpers/hex.js +35 -0
  20. package/dist/cjs/helpers/hex.js.map +1 -1
  21. package/dist/cjs/helpers/integer.js +10 -0
  22. package/dist/cjs/helpers/integer.js.map +1 -0
  23. package/dist/cjs/helpers/placeholder.js +99 -4
  24. package/dist/cjs/helpers/placeholder.js.map +1 -1
  25. package/dist/cjs/helpers/solana-intent-id.js +6 -5
  26. package/dist/cjs/helpers/solana-intent-id.js.map +1 -1
  27. package/dist/cjs/helpers/synthetic-native-wrap.js +56 -0
  28. package/dist/cjs/helpers/synthetic-native-wrap.js.map +1 -0
  29. package/dist/cjs/types/enums.js +2 -0
  30. package/dist/cjs/types/enums.js.map +1 -1
  31. package/dist/cjs/types/request.js +25 -5
  32. package/dist/cjs/types/request.js.map +1 -1
  33. package/dist/cjs/types/response.js +10 -3
  34. package/dist/cjs/types/response.js.map +1 -1
  35. package/dist/cjs/types/validation.js +28 -1
  36. package/dist/cjs/types/validation.js.map +1 -1
  37. package/dist/cjs/validations/accumulative-token.js +5 -4
  38. package/dist/cjs/validations/accumulative-token.js.map +1 -1
  39. package/dist/cjs/validations/compensation-hook.js +14 -4
  40. package/dist/cjs/validations/compensation-hook.js.map +1 -1
  41. package/dist/cjs/validations/dln-metadata.js +63 -0
  42. package/dist/cjs/validations/dln-metadata.js.map +1 -0
  43. package/dist/cjs/validations/evm-caveats.js +12 -11
  44. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  45. package/dist/cjs/validations/evm-op-budget.js +162 -53
  46. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  47. package/dist/cjs/validations/evm-op-hook.js +67 -26
  48. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  49. package/dist/cjs/validations/evm-op-wrap.js +29 -26
  50. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  51. package/dist/cjs/validations/evm-permit.js +143 -42
  52. package/dist/cjs/validations/evm-permit.js.map +1 -1
  53. package/dist/cjs/validations/evm-permit2.js +32 -39
  54. package/dist/cjs/validations/evm-permit2.js.map +1 -1
  55. package/dist/cjs/validations/evm-required-actions.js +17 -9
  56. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  57. package/dist/cjs/validations/evm-sign712-metamask.js +126 -3
  58. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  59. package/dist/cjs/validations/evm-sign712-shared.js +4 -5
  60. package/dist/cjs/validations/evm-sign712-shared.js.map +1 -1
  61. package/dist/cjs/validations/evm-sign712.js +3 -23
  62. package/dist/cjs/validations/evm-sign712.js.map +1 -1
  63. package/dist/cjs/validations/evm-sign7702.js +4 -5
  64. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  65. package/dist/cjs/validations/external-call.js +330 -0
  66. package/dist/cjs/validations/external-call.js.map +1 -0
  67. package/dist/cjs/validations/hooks-common.js +279 -25
  68. package/dist/cjs/validations/hooks-common.js.map +1 -1
  69. package/dist/cjs/validations/intent-tokens.js +23 -15
  70. package/dist/cjs/validations/intent-tokens.js.map +1 -1
  71. package/dist/cjs/validations/intent.js +194 -72
  72. package/dist/cjs/validations/intent.js.map +1 -1
  73. package/dist/cjs/validations/ptp.js +7 -6
  74. package/dist/cjs/validations/ptp.js.map +1 -1
  75. package/dist/cjs/validations/required-actions.js +6 -4
  76. package/dist/cjs/validations/required-actions.js.map +1 -1
  77. package/dist/cjs/validations/solana-hook.js +74 -9
  78. package/dist/cjs/validations/solana-hook.js.map +1 -1
  79. package/dist/cjs/validations/solana-op-budget.js +71 -2
  80. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  81. package/dist/cjs/validations/solana-op-wrap.js +32 -4
  82. package/dist/cjs/validations/solana-op-wrap.js.map +1 -1
  83. package/dist/cjs/validations/solana-sign.js +31 -15
  84. package/dist/cjs/validations/solana-sign.js.map +1 -1
  85. package/dist/cjs/validations/solana-transaction.js +29 -2
  86. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  87. package/dist/cjs/validations/total-dst-amount.js +36 -22
  88. package/dist/cjs/validations/total-dst-amount.js.map +1 -1
  89. package/dist/cjs/validations/trade-grouping.js +67 -31
  90. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  91. package/dist/cjs/validations/trade-matching.js +112 -0
  92. package/dist/cjs/validations/trade-matching.js.map +1 -0
  93. package/dist/cjs/validations/trades.js +53 -52
  94. package/dist/cjs/validations/trades.js.map +1 -1
  95. package/dist/cjs/validator.js +19 -7
  96. package/dist/cjs/validator.js.map +1 -1
  97. package/dist/cjs/whitelists/environment-config.js +65 -16
  98. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  99. package/dist/cjs/whitelists/solana/intent-signature.js +7 -2
  100. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  101. package/dist/cjs/whitelists/types.js.map +1 -1
  102. package/dist/esm/helpers/eip712-types.js +26 -0
  103. package/dist/esm/helpers/eip712-types.js.map +1 -0
  104. package/dist/esm/helpers/evm-action.js +16 -2
  105. package/dist/esm/helpers/evm-action.js.map +1 -1
  106. package/dist/esm/helpers/evm-dln-hook-pack.js +8 -6
  107. package/dist/esm/helpers/evm-dln-hook-pack.js.map +1 -1
  108. package/dist/esm/helpers/evm-gas-compensation-tx.js +26 -7
  109. package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -1
  110. package/dist/esm/helpers/evm-intent-id.js +6 -5
  111. package/dist/esm/helpers/evm-intent-id.js.map +1 -1
  112. package/dist/esm/helpers/evm-token.js +3 -3
  113. package/dist/esm/helpers/evm-token.js.map +1 -1
  114. package/dist/esm/helpers/evm-trade-amounts.js +2 -1
  115. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
  116. package/dist/esm/helpers/expected-delegate.js +10 -11
  117. package/dist/esm/helpers/expected-delegate.js.map +1 -1
  118. package/dist/esm/helpers/gas-compensation.js +3 -0
  119. package/dist/esm/helpers/gas-compensation.js.map +1 -1
  120. package/dist/esm/helpers/hex.js +29 -0
  121. package/dist/esm/helpers/hex.js.map +1 -1
  122. package/dist/esm/helpers/integer.js +7 -0
  123. package/dist/esm/helpers/integer.js.map +1 -0
  124. package/dist/esm/helpers/placeholder.js +98 -4
  125. package/dist/esm/helpers/placeholder.js.map +1 -1
  126. package/dist/esm/helpers/solana-intent-id.js +6 -5
  127. package/dist/esm/helpers/solana-intent-id.js.map +1 -1
  128. package/dist/esm/helpers/synthetic-native-wrap.js +52 -0
  129. package/dist/esm/helpers/synthetic-native-wrap.js.map +1 -0
  130. package/dist/esm/types/enums.js +2 -0
  131. package/dist/esm/types/enums.js.map +1 -1
  132. package/dist/esm/types/request.js +23 -4
  133. package/dist/esm/types/request.js.map +1 -1
  134. package/dist/esm/types/response.js +10 -3
  135. package/dist/esm/types/response.js.map +1 -1
  136. package/dist/esm/types/validation.js +28 -1
  137. package/dist/esm/types/validation.js.map +1 -1
  138. package/dist/esm/validations/accumulative-token.js +5 -4
  139. package/dist/esm/validations/accumulative-token.js.map +1 -1
  140. package/dist/esm/validations/compensation-hook.js +14 -4
  141. package/dist/esm/validations/compensation-hook.js.map +1 -1
  142. package/dist/esm/validations/dln-metadata.js +56 -0
  143. package/dist/esm/validations/dln-metadata.js.map +1 -0
  144. package/dist/esm/validations/evm-caveats.js +12 -11
  145. package/dist/esm/validations/evm-caveats.js.map +1 -1
  146. package/dist/esm/validations/evm-op-budget.js +162 -54
  147. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  148. package/dist/esm/validations/evm-op-hook.js +68 -27
  149. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  150. package/dist/esm/validations/evm-op-wrap.js +30 -27
  151. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  152. package/dist/esm/validations/evm-permit.js +144 -43
  153. package/dist/esm/validations/evm-permit.js.map +1 -1
  154. package/dist/esm/validations/evm-permit2.js +33 -40
  155. package/dist/esm/validations/evm-permit2.js.map +1 -1
  156. package/dist/esm/validations/evm-required-actions.js +18 -10
  157. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  158. package/dist/esm/validations/evm-sign712-metamask.js +126 -3
  159. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  160. package/dist/esm/validations/evm-sign712-shared.js +4 -5
  161. package/dist/esm/validations/evm-sign712-shared.js.map +1 -1
  162. package/dist/esm/validations/evm-sign712.js +3 -23
  163. package/dist/esm/validations/evm-sign712.js.map +1 -1
  164. package/dist/esm/validations/evm-sign7702.js +4 -5
  165. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  166. package/dist/esm/validations/external-call.js +325 -0
  167. package/dist/esm/validations/external-call.js.map +1 -0
  168. package/dist/esm/validations/hooks-common.js +280 -26
  169. package/dist/esm/validations/hooks-common.js.map +1 -1
  170. package/dist/esm/validations/intent-tokens.js +23 -15
  171. package/dist/esm/validations/intent-tokens.js.map +1 -1
  172. package/dist/esm/validations/intent.js +197 -75
  173. package/dist/esm/validations/intent.js.map +1 -1
  174. package/dist/esm/validations/ptp.js +7 -6
  175. package/dist/esm/validations/ptp.js.map +1 -1
  176. package/dist/esm/validations/required-actions.js +7 -5
  177. package/dist/esm/validations/required-actions.js.map +1 -1
  178. package/dist/esm/validations/solana-hook.js +74 -9
  179. package/dist/esm/validations/solana-hook.js.map +1 -1
  180. package/dist/esm/validations/solana-op-budget.js +71 -2
  181. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  182. package/dist/esm/validations/solana-op-wrap.js +32 -4
  183. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  184. package/dist/esm/validations/solana-sign.js +31 -15
  185. package/dist/esm/validations/solana-sign.js.map +1 -1
  186. package/dist/esm/validations/solana-transaction.js +29 -2
  187. package/dist/esm/validations/solana-transaction.js.map +1 -1
  188. package/dist/esm/validations/total-dst-amount.js +36 -22
  189. package/dist/esm/validations/total-dst-amount.js.map +1 -1
  190. package/dist/esm/validations/trade-grouping.js +67 -31
  191. package/dist/esm/validations/trade-grouping.js.map +1 -1
  192. package/dist/esm/validations/trade-matching.js +109 -0
  193. package/dist/esm/validations/trade-matching.js.map +1 -0
  194. package/dist/esm/validations/trades.js +53 -52
  195. package/dist/esm/validations/trades.js.map +1 -1
  196. package/dist/esm/validator.js +19 -7
  197. package/dist/esm/validator.js.map +1 -1
  198. package/dist/esm/whitelists/environment-config.js +65 -16
  199. package/dist/esm/whitelists/environment-config.js.map +1 -1
  200. package/dist/esm/whitelists/solana/intent-signature.js +7 -2
  201. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  202. package/dist/esm/whitelists/types.js.map +1 -1
  203. package/dist/types/helpers/eip712-types.d.ts +7 -0
  204. package/dist/types/helpers/eip712-types.d.ts.map +1 -0
  205. package/dist/types/helpers/evm-action.d.ts +6 -0
  206. package/dist/types/helpers/evm-action.d.ts.map +1 -1
  207. package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +1 -1
  208. package/dist/types/helpers/evm-gas-compensation-tx.d.ts +3 -1
  209. package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -1
  210. package/dist/types/helpers/evm-intent-id.d.ts.map +1 -1
  211. package/dist/types/helpers/evm-token.d.ts.map +1 -1
  212. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
  213. package/dist/types/helpers/expected-delegate.d.ts.map +1 -1
  214. package/dist/types/helpers/gas-compensation.d.ts.map +1 -1
  215. package/dist/types/helpers/hex.d.ts +6 -0
  216. package/dist/types/helpers/hex.d.ts.map +1 -1
  217. package/dist/types/helpers/integer.d.ts +2 -0
  218. package/dist/types/helpers/integer.d.ts.map +1 -0
  219. package/dist/types/helpers/placeholder.d.ts +3 -1
  220. package/dist/types/helpers/placeholder.d.ts.map +1 -1
  221. package/dist/types/helpers/solana-intent-id.d.ts.map +1 -1
  222. package/dist/types/helpers/synthetic-native-wrap.d.ts +4 -0
  223. package/dist/types/helpers/synthetic-native-wrap.d.ts.map +1 -0
  224. package/dist/types/types/enums.d.ts +4 -2
  225. package/dist/types/types/enums.d.ts.map +1 -1
  226. package/dist/types/types/request.d.ts +83 -6
  227. package/dist/types/types/request.d.ts.map +1 -1
  228. package/dist/types/types/response.d.ts +95 -12
  229. package/dist/types/types/response.d.ts.map +1 -1
  230. package/dist/types/types/validation.d.ts +29 -1
  231. package/dist/types/types/validation.d.ts.map +1 -1
  232. package/dist/types/validations/accumulative-token.d.ts.map +1 -1
  233. package/dist/types/validations/compensation-hook.d.ts +2 -1
  234. package/dist/types/validations/compensation-hook.d.ts.map +1 -1
  235. package/dist/types/validations/dln-metadata.d.ts +7 -0
  236. package/dist/types/validations/dln-metadata.d.ts.map +1 -0
  237. package/dist/types/validations/evm-caveats.d.ts +2 -1
  238. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  239. package/dist/types/validations/evm-op-budget.d.ts +8 -0
  240. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  241. package/dist/types/validations/evm-op-hook.d.ts +2 -1
  242. package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
  243. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
  244. package/dist/types/validations/evm-permit.d.ts.map +1 -1
  245. package/dist/types/validations/evm-permit2.d.ts.map +1 -1
  246. package/dist/types/validations/evm-required-actions.d.ts +1 -1
  247. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  248. package/dist/types/validations/evm-sign712-metamask.d.ts +2 -1
  249. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  250. package/dist/types/validations/evm-sign712-shared.d.ts +3 -2
  251. package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -1
  252. package/dist/types/validations/evm-sign712.d.ts.map +1 -1
  253. package/dist/types/validations/evm-sign7702.d.ts +3 -2
  254. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  255. package/dist/types/validations/external-call.d.ts +15 -0
  256. package/dist/types/validations/external-call.d.ts.map +1 -0
  257. package/dist/types/validations/hooks-common.d.ts +5 -1
  258. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  259. package/dist/types/validations/intent-tokens.d.ts.map +1 -1
  260. package/dist/types/validations/intent.d.ts +1 -1
  261. package/dist/types/validations/intent.d.ts.map +1 -1
  262. package/dist/types/validations/ptp.d.ts.map +1 -1
  263. package/dist/types/validations/required-actions.d.ts +1 -1
  264. package/dist/types/validations/required-actions.d.ts.map +1 -1
  265. package/dist/types/validations/solana-hook.d.ts +2 -1
  266. package/dist/types/validations/solana-hook.d.ts.map +1 -1
  267. package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
  268. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  269. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  270. package/dist/types/validations/total-dst-amount.d.ts.map +1 -1
  271. package/dist/types/validations/trade-grouping.d.ts +2 -1
  272. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  273. package/dist/types/validations/trade-matching.d.ts +13 -0
  274. package/dist/types/validations/trade-matching.d.ts.map +1 -0
  275. package/dist/types/validations/trades.d.ts +2 -1
  276. package/dist/types/validations/trades.d.ts.map +1 -1
  277. package/dist/types/validator.d.ts.map +1 -1
  278. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  279. package/dist/types/whitelists/solana/intent-signature.d.ts +1 -0
  280. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  281. package/dist/types/whitelists/types.d.ts +9 -0
  282. package/dist/types/whitelists/types.d.ts.map +1 -1
  283. package/package.json +1 -1
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.eip712TypesEqual = eip712TypesEqual;
4
+ function eip712TypesEqual(actual, expected) {
5
+ const actualKeys = Object.keys(actual).sort();
6
+ const expectedKeys = Object.keys(expected).sort();
7
+ if (actualKeys.length !== expectedKeys.length)
8
+ return false;
9
+ if (!actualKeys.every((key, i) => key === expectedKeys[i]))
10
+ return false;
11
+ for (const key of expectedKeys) {
12
+ if (!eip712TypeFieldsEqual(actual[key], expected[key]))
13
+ return false;
14
+ }
15
+ return true;
16
+ }
17
+ function eip712TypeFieldsEqual(actual, expected) {
18
+ if (!actual)
19
+ return false;
20
+ if (actual.length !== expected.length)
21
+ return false;
22
+ for (let i = 0; i < expected.length; i++) {
23
+ if (actual[i].name !== expected[i].name || actual[i].type !== expected[i].type) {
24
+ return false;
25
+ }
26
+ }
27
+ return true;
28
+ }
29
+ //# sourceMappingURL=eip712-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712-types.js","sourceRoot":"","sources":["../../../src/helpers/eip712-types.ts"],"names":[],"mappings":";;AAOA,4CAeC;AAfD,SAAgB,gBAAgB,CAC5B,MAAmB,EACnB,QAAqB;IAErB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,UAAU,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAEzE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACzE,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC1B,MAAqC,EACrC,QAA2B;IAE3B,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.actionUsesTransactionCalls = actionUsesTransactionCalls;
4
4
  exports.getTransactionCalls = getTransactionCalls;
5
+ exports.getTransactionCallRefs = getTransactionCallRefs;
6
+ exports.getTransactionCallsContainerPath = getTransactionCallsContainerPath;
5
7
  const types_1 = require("../types");
6
8
  // Transaction and Sign712MetaMaskCaveats(WithPlaceholders) actions carry
7
9
  // transactionCalls; Sign712 (Permit/Permit2) and Sign7702Authorization do not.
@@ -14,9 +16,23 @@ function actionUsesTransactionCalls(action) {
14
16
  // For Sign712MetaMaskCaveats(WithPlaceholders)-type actions (AA), the calls
15
17
  // are in details.transactionCalls.
16
18
  function getTransactionCalls(action) {
19
+ return getTransactionCallRefs(action, "").map(ref => ref.call);
20
+ }
21
+ function getTransactionCallRefs(action, actionPath) {
17
22
  if (action.type === types_1.EvmActionKind.Transaction) {
18
- return [action.data];
23
+ return [{
24
+ call: action.data,
25
+ path: `${actionPath}.data`,
26
+ }];
19
27
  }
20
- return action.details?.transactionCalls ?? [];
28
+ return (action.details?.transactionCalls ?? []).map((call, index) => ({
29
+ call,
30
+ path: `${actionPath}.details.transactionCalls[${index}]`,
31
+ }));
32
+ }
33
+ function getTransactionCallsContainerPath(action, actionPath) {
34
+ return action.type === types_1.EvmActionKind.Transaction
35
+ ? `${actionPath}.data`
36
+ : `${actionPath}.details.transactionCalls`;
21
37
  }
22
38
  //# sourceMappingURL=evm-action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm-action.js","sourceRoot":"","sources":["../../../src/helpers/evm-action.ts"],"names":[],"mappings":";;AAIA,gEAIC;AAKD,kDAKC;AAlBD,oCAAgF;AAEhF,yEAAyE;AACzE,+EAA+E;AAC/E,SAAgB,0BAA0B,CAAC,MAAyB;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,WAAW;WACzC,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,sBAAsB;WACpD,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,sCAAsC,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,mCAAmC;AACnC,SAAgB,mBAAmB,CAAC,MAAyB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC,MAAM,CAAC,IAA0B,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"evm-action.js","sourceRoot":"","sources":["../../../src/helpers/evm-action.ts"],"names":[],"mappings":";;AASA,gEAIC;AAKD,kDAEC;AAED,wDAeC;AAED,4EAOC;AA9CD,oCAAgF;AAOhF,yEAAyE;AACzE,+EAA+E;AAC/E,SAAgB,0BAA0B,CAAC,MAAyB;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,WAAW;WACzC,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,sBAAsB;WACpD,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,sCAAsC,CAAC;AAChF,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,mCAAmC;AACnC,SAAgB,mBAAmB,CAAC,MAAyB;IACzD,OAAO,sBAAsB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,SAAgB,sBAAsB,CAClC,MAAyB,EACzB,UAAkB;IAElB,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC;gBACJ,IAAI,EAAE,MAAM,CAAC,IAA0B;gBACvC,IAAI,EAAE,GAAG,UAAU,OAAO;aAC7B,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI;QACJ,IAAI,EAAE,GAAG,UAAU,6BAA6B,KAAK,GAAG;KAC3D,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAgB,gCAAgC,CAC5C,MAAyB,EACzB,UAAkB;IAElB,OAAO,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,WAAW;QAC5C,CAAC,CAAC,GAAG,UAAU,OAAO;QACtB,CAAC,CAAC,GAAG,UAAU,2BAA2B,CAAC;AACnD,CAAC"}
@@ -5,6 +5,7 @@ exports.packEvmTransactionCall = packEvmTransactionCall;
5
5
  exports.serializeDlnHook = serializeDlnHook;
6
6
  const viem_1 = require("viem");
7
7
  const enums_1 = require("../types/enums");
8
+ const hex_1 = require("./hex");
8
9
  // Hook envelope: ABI-encoded tuple prefixed with a `uint8 version=1` byte.
9
10
  // keccak256 of these bytes is what ends up in `intent.externalCallHash`.
10
11
  const ENVELOPE_TUPLE = {
@@ -26,7 +27,7 @@ function packEvmHookV1(data) {
26
27
  executionFee: BigInt(data.reward),
27
28
  allowDelayedExecution: data.isNonAtomic,
28
29
  requireSuccessfullExecution: data.isSuccessRequired,
29
- payload: data.targetPayload,
30
+ payload: (0, hex_1.normalizeHexByteString)(data.targetPayload),
30
31
  }]);
31
32
  return (0, viem_1.concatHex)([ENVELOPE_VERSION_PREFIX, tuple]);
32
33
  }
@@ -48,7 +49,7 @@ function packEvmTransactionCall(data, dstChainAuthorityAddress) {
48
49
  }], [{
49
50
  to: data.to,
50
51
  txGas: Number(data.gas ?? 0),
51
- callData: data.calldata,
52
+ callData: (0, hex_1.normalizeHexByteString)(data.calldata),
52
53
  }]);
53
54
  return packEvmHookV1({
54
55
  fallbackAddress: dstChainAuthorityAddress,
@@ -59,10 +60,11 @@ function packEvmTransactionCall(data, dstChainAuthorityAddress) {
59
60
  targetPayload: inner,
60
61
  });
61
62
  }
62
- // Parses a request trade's `dlnHook` JSON and returns the bytes the API
63
- // hashes into `intent.externalCallHash`. Returns `undefined` when the trade
64
- // has no hook. Throws on unknown / Solana hook types — Solana hooks live in
65
- // the response under their own validator and never feed into this hash.
63
+ // Parses an EVM request trade's `dlnHook` JSON and returns the serialized
64
+ // external-call bytes used for hashing. Returns `undefined` when the trade has
65
+ // no hook. Throws on unknown / Solana hook types; Solana hooks are verified
66
+ // through response trade `externalCallData`, because their serialized bytes may
67
+ // depend on route-level external-call processing.
66
68
  function serializeDlnHook(trade) {
67
69
  if (!trade.dlnHook)
68
70
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"evm-dln-hook-pack.js","sourceRoot":"","sources":["../../../src/helpers/evm-dln-hook-pack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-dln-hook-pack.js","sourceRoot":"","sources":["../../../src/helpers/evm-dln-hook-pack.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ exports.validateEvmGasCompensationTx = validateEvmGasCompensationTx;
4
4
  const evm_calldata_1 = require("./evm-calldata");
5
5
  const evm_token_1 = require("./evm-token");
6
6
  const address_1 = require("./address");
7
+ const integer_1 = require("./integer");
8
+ const types_1 = require("../whitelists/types");
7
9
  // Validates an EVM `{to, data, value}` triplet that is expected to encode a
8
10
  // gas-compensation transfer. `groups` are the gas-compensation groups
9
11
  // associated with this triplet's source (already filtered to the relevant
@@ -14,13 +16,13 @@ const address_1 = require("./address");
14
16
  // and at least one group must carry a native token).
15
17
  // - otherwise → ERC20 compensation (`triplet.to` matches some non-native
16
18
  // group's tokenAddress, data is `transfer(...)`, value === "0").
17
- function validateEvmGasCompensationTx(triplet, groups, realChainId, basePath, codes) {
19
+ function validateEvmGasCompensationTx(triplet, groups, realChainId, basePath, codes, delegateContracts) {
18
20
  if (triplet.data === "0x") {
19
- return validateNativeCompensation(triplet, groups, basePath, codes);
21
+ return validateNativeCompensation(triplet, groups, realChainId, basePath, codes, delegateContracts);
20
22
  }
21
- return validateErc20Compensation(triplet, groups, realChainId, basePath, codes);
23
+ return validateErc20Compensation(triplet, groups, realChainId, basePath, codes, delegateContracts);
22
24
  }
23
- function validateNativeCompensation(triplet, groups, basePath, codes) {
25
+ function validateNativeCompensation(triplet, groups, realChainId, basePath, codes, delegateContracts) {
24
26
  const violations = [];
25
27
  // CRITICAL: data="0x" implies native — must have at least one native group.
26
28
  const hasNativeGroup = groups.some(g => (0, evm_token_1.isNativeToken)(g.tokenAddress, g.realChainId));
@@ -33,13 +35,22 @@ function validateNativeCompensation(triplet, groups, basePath, codes) {
33
35
  actual: "0x",
34
36
  });
35
37
  }
38
+ // CRITICAL: native compensation must transfer to the configured delegate.
39
+ if (!(0, types_1.isWhitelisted)(delegateContracts, realChainId, triplet.to)) {
40
+ violations.push({
41
+ code: codes.recipientMismatch,
42
+ message: "native compensation recipient is not whitelisted",
43
+ path: `${basePath}.to`,
44
+ actual: triplet.to,
45
+ });
46
+ }
36
47
  // HIGH: native compensation value must parse and be > 0.
37
48
  violations.push(...validateNativeValue(triplet.value, basePath, codes));
38
49
  return violations;
39
50
  }
40
51
  function validateNativeValue(rawValue, basePath, codes) {
41
52
  try {
42
- if (BigInt(rawValue) <= 0n) {
53
+ if ((0, integer_1.parseIntegerString)(rawValue) <= 0n) {
43
54
  return [{
44
55
  code: codes.valueInvalid,
45
56
  message: "native compensation must have value > 0",
@@ -59,7 +70,7 @@ function validateNativeValue(rawValue, basePath, codes) {
59
70
  }];
60
71
  }
61
72
  }
62
- function validateErc20Compensation(triplet, groups, realChainId, basePath, codes) {
73
+ function validateErc20Compensation(triplet, groups, realChainId, basePath, codes, delegateContracts) {
63
74
  const violations = [];
64
75
  // CRITICAL: `to` must equal some non-native group's tokenAddress.
65
76
  const erc20Groups = groups.filter(g => !(0, evm_token_1.isNativeToken)(g.tokenAddress, g.realChainId));
@@ -76,7 +87,15 @@ function validateErc20Compensation(triplet, groups, realChainId, basePath, codes
76
87
  }
77
88
  // CRITICAL: data must be a valid ERC20 transfer calldata.
78
89
  try {
79
- (0, evm_calldata_1.decodeTransferCalldata)(triplet.data);
90
+ const decoded = (0, evm_calldata_1.decodeTransferCalldata)(triplet.data);
91
+ if (!(0, types_1.isWhitelisted)(delegateContracts, realChainId, decoded.to)) {
92
+ violations.push({
93
+ code: codes.recipientMismatch,
94
+ message: "ERC20 compensation transfer recipient is not whitelisted",
95
+ path: `${basePath}.data`,
96
+ actual: decoded.to,
97
+ });
98
+ }
80
99
  }
81
100
  catch (error) {
82
101
  violations.push({
@@ -1 +1 @@
1
- {"version":3,"file":"evm-gas-compensation-tx.js","sourceRoot":"","sources":["../../../src/helpers/evm-gas-compensation-tx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-gas-compensation-tx.js","sourceRoot":"","sources":["../../../src/helpers/evm-gas-compensation-tx.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ const viem_1 = require("viem");
5
5
  const evm_intent_id_abi_1 = require("./evm-intent-id-abi");
6
6
  const address_1 = require("./address");
7
7
  const subscription_to_chain_id_1 = require("../whitelists/subscription-to-chain-id");
8
+ const integer_1 = require("./integer");
8
9
  function computeIntentId(intent) {
9
10
  const struct = convertToIntentStruct(intent);
10
11
  const encoded = (0, viem_1.encodeAbiParameters)(evm_intent_id_abi_1.SUBMIT_INTENT_ABI_PARAMS, [struct]);
@@ -53,9 +54,9 @@ function convertInputTokens(tokens) {
53
54
  return [];
54
55
  return tokens.map(t => ({
55
56
  token: t.address,
56
- minPartialAmount: BigInt(t.minPartialAmount),
57
- maxPartialAmount: BigInt(t.maxPartialAmount),
58
- budget: BigInt(t.constraintBudget),
57
+ minPartialAmount: (0, integer_1.parseIntegerString)(t.minPartialAmount),
58
+ maxPartialAmount: (0, integer_1.parseIntegerString)(t.maxPartialAmount),
59
+ budget: (0, integer_1.parseIntegerString)(t.constraintBudget),
59
60
  }));
60
61
  }
61
62
  function convertGiveTokens(tokens) {
@@ -64,7 +65,7 @@ function convertGiveTokens(tokens) {
64
65
  return tokens.map(t => ({
65
66
  inputToken: t.inputTokenAddress,
66
67
  giveToken: t.giveTokenAddress,
67
- numerator: BigInt(t.numerator),
68
+ numerator: (0, integer_1.parseIntegerString)(t.numerator),
68
69
  denominator: Number(t.denominator),
69
70
  }));
70
71
  }
@@ -76,7 +77,7 @@ function convertTakeTokens(tokens) {
76
77
  giveToken: t.fromTokenAddress,
77
78
  takeTokenChain: t.takeTokenChainId,
78
79
  takeToken: (0, address_1.addressToHex)(realChainId, t.takeTokenAddress),
79
- numerator: BigInt(t.numerator),
80
+ numerator: (0, integer_1.parseIntegerString)(t.numerator),
80
81
  denominator: Number(t.denominator),
81
82
  };
82
83
  });
@@ -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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"}
@@ -19,7 +19,7 @@ function resolveWrappedTokenAddress(tokenAddress, realChainId) {
19
19
  if (!(0, address_1.isNativeToken)(tokenAddress, realChainId)) {
20
20
  return tokenAddress;
21
21
  }
22
- if (realChainId === enums_1.ChainId.Solana) {
22
+ if ((0, address_1.getChainEngine)(realChainId) === enums_1.ChainEngine.Solana) {
23
23
  return programs_1.SPL_NATIVE_MINT;
24
24
  }
25
25
  const wethAddresses = evm_1.WETH_CONTRACTS[realChainId] ?? evm_1.WETH_CONTRACTS[enums_1.ChainId.Wildcard];
@@ -1 +1 @@
1
- {"version":3,"file":"evm-token.js","sourceRoot":"","sources":["../../../src/helpers/evm-token.ts"],"names":[],"mappings":";;;AAcA,gEAaC;AA3BD,2CAAmD;AACnD,4DAAgE;AAChE,0CAAyC;AACzC,uCAA0C;AAE1C,mEAAmE;AACnE,sCAAsC;AACtC,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,kGAAkG;AAClG,iEAAiE;AACjE,6DAA6D;AAC7D,wDAAwD;AACxD,iDAAiD;AACjD,SAAgB,0BAA0B,CACtC,YAAoB,EACpB,WAAoB;IAEpB,IAAI,CAAC,IAAA,uBAAa,EAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,WAAW,KAAK,eAAO,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,0BAAe,CAAC;IAC3B,CAAC;IACD,MAAM,aAAa,GAAG,oBAAc,CAAC,WAAW,CAAC,IAAI,oBAAc,CAAC,eAAO,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"evm-token.js","sourceRoot":"","sources":["../../../src/helpers/evm-token.ts"],"names":[],"mappings":";;;AAcA,gEAaC;AA3BD,2CAAmD;AACnD,4DAAgE;AAChE,0CAAsD;AACtD,uCAA0D;AAE1D,mEAAmE;AACnE,sCAAsC;AACtC,qCAA0C;AAAjC,wGAAA,aAAa,OAAA;AAEtB,kGAAkG;AAClG,iEAAiE;AACjE,6DAA6D;AAC7D,wDAAwD;AACxD,iDAAiD;AACjD,SAAgB,0BAA0B,CACtC,YAAoB,EACpB,WAAoB;IAEpB,IAAI,CAAC,IAAA,uBAAa,EAAC,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,IAAI,IAAA,wBAAc,EAAC,WAAW,CAAC,KAAK,mBAAW,CAAC,MAAM,EAAE,CAAC;QACrD,OAAO,0BAAe,CAAC;IAC3B,CAAC;IACD,MAAM,aAAa,GAAG,oBAAc,CAAC,WAAW,CAAC,IAAI,oBAAc,CAAC,eAAO,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC"}
@@ -4,6 +4,7 @@ exports.sumTradeAmounts = sumTradeAmounts;
4
4
  const types_1 = require("../types");
5
5
  const address_1 = require("./address");
6
6
  const evm_token_1 = require("./evm-token");
7
+ const integer_1 = require("./integer");
7
8
  // Sums `response.trades[i].srcChainTokenIn.amount` over trades whose input
8
9
  // token resolves to the given address. Returns `skip` only when the response
9
10
  // has fewer trades than the request (a separate Violation is already raised
@@ -37,7 +38,7 @@ function sumTradeAmounts(trades, tokenAddress, realChainId, responseTrades) {
37
38
  }
38
39
  const responseAmount = responseTrade.srcChainTokenIn.amount;
39
40
  try {
40
- sum += BigInt(responseAmount);
41
+ sum += (0, integer_1.parseIntegerString)(responseAmount);
41
42
  }
42
43
  catch {
43
44
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":";;AA0BA,0CAkDC;AA5ED,oCAMkB;AAClB,uCAA6C;AAC7C,2CAAyD;AAOzD,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,MAAM,CAAC,cAAc,CAAC,CAAC;QAClC,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,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,15 +1,14 @@
1
1
  "use strict";
2
- // Helpers that derive the user-controlled `delegate` value for the scoped
3
- // delegate validation. After the API split "solver executor" (who picks up
4
- // the order) and "delegate" (who signs on the user's behalf), the user's
5
- // `trade.srcAllowedSender` no longer lands in `intent.srcAllowedSender`.
6
- // It surfaces in EVM `Sign712MetaMaskCaveats.data.message.delegate` and
7
- // the Solana `SignTransaction` `feePayer` instead. These helpers return
8
- // the value the validator should see in those fields — but only when the
9
- // request itself specifies `srcAllowedSender`. Without a request-side
10
- // value the API substitutes its own per-chain `delegateAddress` from
11
- // config; we have no whitelist for that fallback, so the helpers return
12
- // `undefined` and the caller skips the check.
2
+ // Helpers that derive the user-controlled delegate value from request trades.
3
+ // When a chain has a configured solver executor, intent.srcAllowedSender is
4
+ // hardcoded to that executor. Otherwise the API uses the first request
5
+ // srcAllowedSender as the selected delegate. The same selected delegate also
6
+ // appears in scoped action fields such as EVM Sign712MetaMaskCaveats
7
+ // data.message.delegate and the Solana SignTransaction feePayer.
8
+ //
9
+ // Without a request-side value the API substitutes its own per-chain
10
+ // delegateAddress from config; we have no whitelist for that fallback, so
11
+ // these helpers return undefined and the caller skips the check.
13
12
  Object.defineProperty(exports, "__esModule", { value: true });
14
13
  exports.hasSolverExecutorOverride = hasSolverExecutorOverride;
15
14
  exports.getExpectedIntentDelegate = getExpectedIntentDelegate;
@@ -1 +1 @@
1
- {"version":3,"file":"expected-delegate.js","sourceRoot":"","sources":["../../../src/helpers/expected-delegate.ts"],"names":[],"mappings":";AAAA,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,wEAAwE;AACxE,yEAAyE;AACzE,sEAAsE;AACtE,qEAAqE;AACrE,wEAAwE;AACxE,8CAA8C;;AAQ9C,8DAKC;AAMD,8DAMC;AAMD,sEAaC;AAtCD,wEAAwE;AACxE,iCAAiC;AACjC,SAAgB,yBAAyB,CACrC,uBAAwC,EACxC,OAAgB;IAEhB,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,oDAAoD;AACpD,SAAgB,yBAAyB,CACrC,MAA+B;IAE/B,OAAO,MAAM;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;SAC5B,IAAI,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AACvE,yCAAyC;AACzC,SAAgB,6BAA6B,CACzC,MAA+B,EAC/B,kBAA0B;IAE1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IACI,KAAK,CAAC,UAAU,KAAK,kBAAkB;eACpC,KAAK,CAAC,gBAAgB,KAAK,SAAS,EACzC,CAAC;YACC,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAClC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"expected-delegate.js","sourceRoot":"","sources":["../../../src/helpers/expected-delegate.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,4EAA4E;AAC5E,uEAAuE;AACvE,6EAA6E;AAC7E,qEAAqE;AACrE,iEAAiE;AACjE,EAAE;AACF,qEAAqE;AACrE,0EAA0E;AAC1E,iEAAiE;;AAQjE,8DAKC;AAMD,8DAMC;AAMD,sEAaC;AAtCD,wEAAwE;AACxE,iCAAiC;AACjC,SAAgB,yBAAyB,CACrC,uBAAwC,EACxC,OAAgB;IAEhB,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED,iEAAiE;AACjE,sEAAsE;AACtE,uEAAuE;AACvE,oDAAoD;AACpD,SAAgB,yBAAyB,CACrC,MAA+B;IAE/B,OAAO,MAAM;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;SAC5B,IAAI,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,0EAA0E;AAC1E,uEAAuE;AACvE,uEAAuE;AACvE,yCAAyC;AACzC,SAAgB,6BAA6B,CACzC,MAA+B,EAC/B,kBAA0B;IAE1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,IACI,KAAK,CAAC,UAAU,KAAK,kBAAkB;eACpC,KAAK,CAAC,gBAAgB,KAAK,SAAS,EACzC,CAAC;YACC,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAClC,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractGasCompensationGroups = extractGasCompensationGroups;
4
4
  const address_1 = require("./address");
5
5
  const subscription_to_chain_id_1 = require("../whitelists/subscription-to-chain-id");
6
+ const request_1 = require("../types/request");
6
7
  // Groups `gasCompensationInfo` entries from request.preHooks by
7
8
  // (chainId, tokenAddress, sender). One compensation hook per
8
9
  // unique group is expected to be appended to response.preHooks.
@@ -12,6 +13,8 @@ function extractGasCompensationGroups(request) {
12
13
  const seen = new Set();
13
14
  const groups = [];
14
15
  for (const hook of request.preHooks ?? []) {
16
+ if (!(0, request_1.isRequestHookV2)(hook))
17
+ continue;
15
18
  const info = hook.gasCompensationInfo;
16
19
  if (!info)
17
20
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"gas-compensation.js","sourceRoot":"","sources":["../../../src/helpers/gas-compensation.ts"],"names":[],"mappings":";;AAiBA,oEA8BC;AA7CD,uCAA6C;AAC7C,qFAAwE;AASxE,gEAAgE;AAChE,6DAA6D;AAC7D,gEAAgE;AAChE,+EAA+E;AAC/E,uDAAuD;AACvD,SAAgB,4BAA4B,CACxC,OAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,WAAW,GAAG,IAAA,yCAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QAExC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE;cACtB,IAAI,IAAA,0BAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;cACtD,IAAI,IAAA,0BAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"gas-compensation.js","sourceRoot":"","sources":["../../../src/helpers/gas-compensation.ts"],"names":[],"mappings":";;AAkBA,oEA+BC;AA/CD,uCAA6C;AAC7C,qFAAwE;AACxE,8CAAmD;AASnD,gEAAgE;AAChE,6DAA6D;AAC7D,gEAAgE;AAChE,+EAA+E;AAC/E,uDAAuD;AACvD,SAAgB,4BAA4B,CACxC,OAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,IAAA,yBAAe,EAAC,IAAI,CAAC;YAAE,SAAS;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACtC,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,WAAW,GAAG,IAAA,yCAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS;QAExC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE;cACtB,IAAI,IAAA,0BAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;cACtD,IAAI,IAAA,0BAAgB,EAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAE5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,MAAM,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isEmptyHex = isEmptyHex;
4
4
  exports.hexEquals = hexEquals;
5
+ exports.isHexByteString = isHexByteString;
6
+ exports.isHexString = isHexString;
7
+ exports.isNonEmptyHexString = isNonEmptyHexString;
8
+ exports.getHexByteLength = getHexByteLength;
9
+ exports.getHexPairByteLength = getHexPairByteLength;
10
+ exports.normalizeHexByteString = normalizeHexByteString;
5
11
  const viem_1 = require("viem");
6
12
  // Treats undefined, "0x" and `zeroHash` (`0x000...0`) as the same empty value.
7
13
  function isEmptyHex(value) {
@@ -21,4 +27,33 @@ function hexEquals(a, b) {
21
27
  return false;
22
28
  return a.toLowerCase() === b.toLowerCase();
23
29
  }
30
+ function isHexByteString(value) {
31
+ return /^0x(?:[0-9a-f]{2})*$/iu.test(value);
32
+ }
33
+ function isHexString(value) {
34
+ return /^0x[0-9a-f]*$/iu.test(value);
35
+ }
36
+ function isNonEmptyHexString(value) {
37
+ return /^0x[0-9a-f]+$/iu.test(value);
38
+ }
39
+ function getHexByteLength(value) {
40
+ if (!isHexByteString(value))
41
+ return undefined;
42
+ const hexPrefixLength = 2;
43
+ const hexCharsPerByte = 2;
44
+ return (value.length - hexPrefixLength) / hexCharsPerByte;
45
+ }
46
+ function getHexPairByteLength(value) {
47
+ if (!isHexString(value))
48
+ return undefined;
49
+ const hexPrefixLength = 2;
50
+ const hexCharsPerByte = 2;
51
+ return Math.floor((value.length - hexPrefixLength) / hexCharsPerByte);
52
+ }
53
+ function normalizeHexByteString(value) {
54
+ const hexPrefixLength = 2;
55
+ const hexBody = value.slice(hexPrefixLength);
56
+ const normalizedBody = hexBody.length % 2 === 0 ? hexBody : `0${hexBody}`;
57
+ return `0x${normalizedBody}`;
58
+ }
24
59
  //# sourceMappingURL=hex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/helpers/hex.ts"],"names":[],"mappings":";;AAGA,gCAIC;AAKD,8BAUC;AAtBD,+BAAgC;AAEhC,+EAA+E;AAC/E,SAAgB,UAAU,CAAC,KAAyB;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,eAAQ,CAAC;AAC1D,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,yDAAyD;AACzD,SAAgB,SAAS,CACrB,CAAqB,EACrB,CAAqB;IAErB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,kEAAkE;IAClE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAErD,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"hex.js","sourceRoot":"","sources":["../../../src/helpers/hex.ts"],"names":[],"mappings":";;AAGA,gCAIC;AAKD,8BAUC;AAED,0CAEC;AAED,kCAEC;AAED,kDAEC;AAED,4CAMC;AAED,oDAMC;AAED,wDAKC;AAzDD,+BAAgC;AAEhC,+EAA+E;AAC/E,SAAgB,UAAU,CAAC,KAAyB;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,eAAQ,CAAC;AAC1D,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,yDAAyD;AACzD,SAAgB,SAAS,CACrB,CAAqB,EACrB,CAAqB;IAErB,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,kEAAkE;IAClE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAErD,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa;IACzC,OAAO,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,WAAW,CAAC,KAAa;IACrC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,mBAAmB,CAAC,KAAa;IAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,gBAAgB,CAAC,KAAa;IAC1C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE9C,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC;AAC9D,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAC9C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE1C,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC,CAAC;AAC1E,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAa;IAChD,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IAC1E,OAAO,KAAK,cAAc,EAAE,CAAC;AACjC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseIntegerString = parseIntegerString;
4
+ function parseIntegerString(value) {
5
+ if (value.length === 0 || value.trim() !== value) {
6
+ throw new Error(`Integer string is empty or contains surrounding whitespace: "${value}"`);
7
+ }
8
+ return BigInt(value);
9
+ }
10
+ //# sourceMappingURL=integer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.js","sourceRoot":"","sources":["../../../src/helpers/integer.ts"],"names":[],"mappings":";;AAAA,gDAKC;AALD,SAAgB,kBAAkB,CAAC,KAAa;IAC5C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,gEAAgE,KAAK,GAAG,CAAC,CAAC;IAC9F,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
@@ -4,8 +4,10 @@ exports.PlaceholderResolutionErrorReason = exports.HookMode = exports.SOLANA_DEF
4
4
  exports.encodePlaceholderAmount = encodePlaceholderAmount;
5
5
  exports.computeCumulativeTradeAmount = computeCumulativeTradeAmount;
6
6
  exports.resolveEagerPlaceholders = resolveEagerPlaceholders;
7
+ exports.resolveEagerValuePlaceholders = resolveEagerValuePlaceholders;
7
8
  const enums_1 = require("../types/enums");
8
9
  const address_1 = require("./address");
10
+ const integer_1 = require("./integer");
9
11
  const MIN_PLACEHOLDER_BYTE_COUNT = 1;
10
12
  const MAX_PLACEHOLDER_BYTE_COUNT = 32;
11
13
  exports.EVM_DEFAULT_PLACEHOLDER_BYTE_COUNT = MAX_PLACEHOLDER_BYTE_COUNT;
@@ -22,7 +24,8 @@ var PlaceholderResolutionErrorReason;
22
24
  PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["Overflow"] = 2] = "Overflow";
23
25
  PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidByteCount"] = 3] = "InvalidByteCount";
24
26
  PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidAdditionalAmount"] = 4] = "InvalidAdditionalAmount";
25
- PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["NoMatchingTradeOrAdditional"] = 5] = "NoMatchingTradeOrAdditional";
27
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["InvalidTradeAmount"] = 5] = "InvalidTradeAmount";
28
+ PlaceholderResolutionErrorReason[PlaceholderResolutionErrorReason["NoMatchingTradeOrAdditional"] = 6] = "NoMatchingTradeOrAdditional";
26
29
  })(PlaceholderResolutionErrorReason || (exports.PlaceholderResolutionErrorReason = PlaceholderResolutionErrorReason = {}));
27
30
  // Encodes a non-negative integer as a zero-padded hex string (no "0x" prefix),
28
31
  // fitting exactly `byteCount` bytes, using the chain engine's endianness.
@@ -87,7 +90,7 @@ function computeCumulativeTradeAmount(trades, mode, chainId, tokenAddress, addre
87
90
  const amount = mode === HookMode.PreHooks
88
91
  ? trade.srcChainTokenIn.amount
89
92
  : trade.dstChainTokenOut.amount;
90
- sum += BigInt(amount);
93
+ sum += (0, integer_1.parseIntegerString)(amount);
91
94
  matchCount++;
92
95
  }
93
96
  return { cumulative: sum, matchCount };
@@ -121,7 +124,7 @@ function resolveEagerPlaceholders(data, hookChainId, placeholders, trades, mode)
121
124
  let additional = 0n;
122
125
  if (placeholder.additionalAmount !== undefined) {
123
126
  try {
124
- additional = BigInt(placeholder.additionalAmount);
127
+ additional = (0, integer_1.parseIntegerString)(placeholder.additionalAmount);
125
128
  }
126
129
  catch (error) {
127
130
  errors.push({
@@ -132,7 +135,19 @@ function resolveEagerPlaceholders(data, hookChainId, placeholders, trades, mode)
132
135
  continue;
133
136
  }
134
137
  }
135
- const { cumulative, matchCount } = computeCumulativeTradeAmount(trades, mode, hookChainId, placeholder.tokenAddress, placeholder.address);
138
+ let cumulative;
139
+ let matchCount;
140
+ try {
141
+ ({ cumulative, matchCount } = computeCumulativeTradeAmount(trades, mode, hookChainId, placeholder.tokenAddress, placeholder.address));
142
+ }
143
+ catch (error) {
144
+ errors.push({
145
+ nameVariable: placeholder.nameVariable,
146
+ reason: PlaceholderResolutionErrorReason.InvalidTradeAmount,
147
+ details: error,
148
+ });
149
+ continue;
150
+ }
136
151
  const expectedAmount = cumulative + additional;
137
152
  const nameEscaped = escapeRegex(placeholder.nameVariable);
138
153
  const markerRegex = new RegExp(`\\{${nameEscaped}(?:\\.(\\d+))?\\}`, "g");
@@ -168,6 +183,86 @@ function resolveEagerPlaceholders(data, hookChainId, placeholders, trades, mode)
168
183
  }
169
184
  return { resolved: result, errors };
170
185
  }
186
+ // Applies eager-placeholder substitution to an EVM value string. Value is a
187
+ // decimal integer, so markers are replaced with the decimal resolved amount
188
+ // instead of ABI-width hex bytes. Deferred markers remain untouched.
189
+ function resolveEagerValuePlaceholders(value, hookChainId, placeholders, trades, mode) {
190
+ let result = value;
191
+ const errors = [];
192
+ for (const placeholder of placeholders) {
193
+ if (placeholder.type === enums_1.PlaceholderType.Deferred)
194
+ continue;
195
+ const resolved = resolveSingleValuePlaceholder(placeholder, hookChainId, trades, mode);
196
+ if (!resolved.ok) {
197
+ errors.push(resolved.error);
198
+ continue;
199
+ }
200
+ const nameEscaped = escapeRegex(placeholder.nameVariable);
201
+ const markerRegex = new RegExp(`\\{${nameEscaped}(?:\\.(\\d+))?\\}`, "g");
202
+ if (resolved.matchCount === 0
203
+ && placeholder.additionalAmount === undefined
204
+ && markerRegex.test(result)) {
205
+ errors.push({
206
+ nameVariable: placeholder.nameVariable,
207
+ reason: PlaceholderResolutionErrorReason.NoMatchingTradeOrAdditional,
208
+ });
209
+ markerRegex.lastIndex = 0;
210
+ continue;
211
+ }
212
+ result = result.replace(markerRegex, resolved.amount.toString());
213
+ }
214
+ return { resolved: result, errors };
215
+ }
216
+ function resolveSingleValuePlaceholder(placeholder, hookChainId, trades, mode) {
217
+ if (placeholder.tokenAddress === undefined || placeholder.address === undefined) {
218
+ return {
219
+ ok: false,
220
+ error: {
221
+ nameVariable: placeholder.nameVariable,
222
+ reason: PlaceholderResolutionErrorReason.MissingTokenOrAddress,
223
+ },
224
+ };
225
+ }
226
+ const additional = parseAdditionalAmount(placeholder);
227
+ if (!additional.ok)
228
+ return additional;
229
+ try {
230
+ const { cumulative, matchCount } = computeCumulativeTradeAmount(trades, mode, hookChainId, placeholder.tokenAddress, placeholder.address);
231
+ return { ok: true, amount: cumulative + additional.amount, matchCount };
232
+ }
233
+ catch (error) {
234
+ return {
235
+ ok: false,
236
+ error: {
237
+ nameVariable: placeholder.nameVariable,
238
+ reason: PlaceholderResolutionErrorReason.InvalidTradeAmount,
239
+ details: error,
240
+ },
241
+ };
242
+ }
243
+ }
244
+ function parseAdditionalAmount(placeholder) {
245
+ if (placeholder.additionalAmount === undefined) {
246
+ return { ok: true, amount: 0n, matchCount: 0 };
247
+ }
248
+ try {
249
+ return {
250
+ ok: true,
251
+ amount: (0, integer_1.parseIntegerString)(placeholder.additionalAmount),
252
+ matchCount: 0,
253
+ };
254
+ }
255
+ catch (error) {
256
+ return {
257
+ ok: false,
258
+ error: {
259
+ nameVariable: placeholder.nameVariable,
260
+ reason: PlaceholderResolutionErrorReason.InvalidAdditionalAmount,
261
+ details: error,
262
+ },
263
+ };
264
+ }
265
+ }
171
266
  function escapeRegex(s) {
172
267
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
173
268
  }