@debridge-finance/borderless-validation-sdk 0.0.1 → 0.0.2

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 (286) hide show
  1. package/README.md +164 -0
  2. package/dist/cjs/helpers/address.js +53 -18
  3. package/dist/cjs/helpers/address.js.map +1 -1
  4. package/dist/cjs/helpers/evm-action.js +3 -3
  5. package/dist/cjs/helpers/evm-action.js.map +1 -1
  6. package/dist/cjs/helpers/evm-dln-hook-pack.js +87 -0
  7. package/dist/cjs/helpers/evm-dln-hook-pack.js.map +1 -0
  8. package/dist/cjs/helpers/evm-gas-compensation-tx.js +102 -0
  9. package/dist/cjs/helpers/evm-gas-compensation-tx.js.map +1 -0
  10. package/dist/cjs/helpers/evm-intent-id.js +27 -13
  11. package/dist/cjs/helpers/evm-intent-id.js.map +1 -1
  12. package/dist/cjs/helpers/evm-trade-amounts.js +36 -1
  13. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -1
  14. package/dist/cjs/helpers/gas-compensation.js +36 -0
  15. package/dist/cjs/helpers/gas-compensation.js.map +1 -0
  16. package/dist/cjs/helpers/hex.js +24 -0
  17. package/dist/cjs/helpers/hex.js.map +1 -0
  18. package/dist/cjs/helpers/placeholder.js +174 -0
  19. package/dist/cjs/helpers/placeholder.js.map +1 -0
  20. package/dist/cjs/helpers/sets.js +13 -0
  21. package/dist/cjs/helpers/sets.js.map +1 -0
  22. package/dist/cjs/types/enums.js +32 -2
  23. package/dist/cjs/types/enums.js.map +1 -1
  24. package/dist/cjs/types/request.js +36 -3
  25. package/dist/cjs/types/request.js.map +1 -1
  26. package/dist/cjs/types/response.js +125 -5
  27. package/dist/cjs/types/response.js.map +1 -1
  28. package/dist/cjs/types/validation.js +81 -10
  29. package/dist/cjs/types/validation.js.map +1 -1
  30. package/dist/cjs/validations/compensation-hook.js +203 -0
  31. package/dist/cjs/validations/compensation-hook.js.map +1 -0
  32. package/dist/cjs/validations/evm-caveats.js +4 -14
  33. package/dist/cjs/validations/evm-caveats.js.map +1 -1
  34. package/dist/cjs/validations/evm-op-budget.js +13 -10
  35. package/dist/cjs/validations/evm-op-budget.js.map +1 -1
  36. package/dist/cjs/validations/evm-op-hook.js +410 -3
  37. package/dist/cjs/validations/evm-op-hook.js.map +1 -1
  38. package/dist/cjs/validations/evm-op-wrap.js +10 -7
  39. package/dist/cjs/validations/evm-op-wrap.js.map +1 -1
  40. package/dist/cjs/validations/evm-required-actions.js +7 -9
  41. package/dist/cjs/validations/evm-required-actions.js.map +1 -1
  42. package/dist/cjs/validations/evm-sign712-metamask.js +17 -94
  43. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -1
  44. package/dist/cjs/validations/evm-sign712-shared.js +116 -0
  45. package/dist/cjs/validations/evm-sign712-shared.js.map +1 -0
  46. package/dist/cjs/validations/evm-sign7702.js +34 -22
  47. package/dist/cjs/validations/evm-sign7702.js.map +1 -1
  48. package/dist/cjs/validations/hooks-common.js +252 -37
  49. package/dist/cjs/validations/hooks-common.js.map +1 -1
  50. package/dist/cjs/validations/intent-destinations.js +197 -0
  51. package/dist/cjs/validations/intent-destinations.js.map +1 -0
  52. package/dist/cjs/validations/intent-tokens.js +347 -0
  53. package/dist/cjs/validations/intent-tokens.js.map +1 -0
  54. package/dist/cjs/validations/intent.js +288 -0
  55. package/dist/cjs/validations/intent.js.map +1 -0
  56. package/dist/cjs/validations/required-actions.js +7 -7
  57. package/dist/cjs/validations/required-actions.js.map +1 -1
  58. package/dist/cjs/validations/solana-hook.js +33 -22
  59. package/dist/cjs/validations/solana-hook.js.map +1 -1
  60. package/dist/cjs/validations/solana-op-budget.js +56 -18
  61. package/dist/cjs/validations/solana-op-budget.js.map +1 -1
  62. package/dist/cjs/validations/solana-op-wrap.js +46 -13
  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 +5 -5
  67. package/dist/cjs/validations/solana-transaction.js.map +1 -1
  68. package/dist/cjs/validations/trade-grouping.js +139 -1
  69. package/dist/cjs/validations/trade-grouping.js.map +1 -1
  70. package/dist/cjs/validations/trades.js +168 -40
  71. package/dist/cjs/validations/trades.js.map +1 -1
  72. package/dist/cjs/validator.js +11 -16
  73. package/dist/cjs/validator.js.map +1 -1
  74. package/dist/cjs/whitelists/environment-config.js +47 -28
  75. package/dist/cjs/whitelists/environment-config.js.map +1 -1
  76. package/dist/cjs/whitelists/evm/caveat-enforcers.js +21 -5
  77. package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -1
  78. package/dist/cjs/whitelists/evm/delegation-manager.js +7 -2
  79. package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -1
  80. package/dist/cjs/whitelists/evm/eip7702-delegation.js +7 -2
  81. package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -1
  82. package/dist/cjs/whitelists/evm/index.js +14 -1
  83. package/dist/cjs/whitelists/evm/index.js.map +1 -1
  84. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js +16 -0
  85. package/dist/cjs/whitelists/evm/metamask-delegation-chains.js.map +1 -0
  86. package/dist/cjs/whitelists/evm/permit2.js +16 -12
  87. package/dist/cjs/whitelists/evm/permit2.js.map +1 -1
  88. package/dist/cjs/whitelists/evm/weth.js +16 -5
  89. package/dist/cjs/whitelists/evm/weth.js.map +1 -1
  90. package/dist/cjs/whitelists/solana/intent-signature.js +0 -1
  91. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -1
  92. package/dist/cjs/whitelists/subscription-to-chain-id.js +10 -0
  93. package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -1
  94. package/dist/cjs/whitelists/types.js +13 -3
  95. package/dist/cjs/whitelists/types.js.map +1 -1
  96. package/dist/esm/helpers/address.js +48 -17
  97. package/dist/esm/helpers/address.js.map +1 -1
  98. package/dist/esm/helpers/evm-action.js +3 -3
  99. package/dist/esm/helpers/evm-action.js.map +1 -1
  100. package/dist/esm/helpers/evm-dln-hook-pack.js +82 -0
  101. package/dist/esm/helpers/evm-dln-hook-pack.js.map +1 -0
  102. package/dist/esm/helpers/evm-gas-compensation-tx.js +99 -0
  103. package/dist/esm/helpers/evm-gas-compensation-tx.js.map +1 -0
  104. package/dist/esm/helpers/evm-intent-id.js +27 -13
  105. package/dist/esm/helpers/evm-intent-id.js.map +1 -1
  106. package/dist/esm/helpers/evm-trade-amounts.js +36 -1
  107. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -1
  108. package/dist/esm/helpers/gas-compensation.js +33 -0
  109. package/dist/esm/helpers/gas-compensation.js.map +1 -0
  110. package/dist/esm/helpers/hex.js +20 -0
  111. package/dist/esm/helpers/hex.js.map +1 -0
  112. package/dist/esm/helpers/placeholder.js +168 -0
  113. package/dist/esm/helpers/placeholder.js.map +1 -0
  114. package/dist/esm/helpers/sets.js +10 -0
  115. package/dist/esm/helpers/sets.js.map +1 -0
  116. package/dist/esm/types/enums.js +31 -1
  117. package/dist/esm/types/enums.js.map +1 -1
  118. package/dist/esm/types/request.js +37 -4
  119. package/dist/esm/types/request.js.map +1 -1
  120. package/dist/esm/types/response.js +124 -4
  121. package/dist/esm/types/response.js.map +1 -1
  122. package/dist/esm/types/validation.js +81 -10
  123. package/dist/esm/types/validation.js.map +1 -1
  124. package/dist/esm/validations/compensation-hook.js +200 -0
  125. package/dist/esm/validations/compensation-hook.js.map +1 -0
  126. package/dist/esm/validations/evm-caveats.js +4 -14
  127. package/dist/esm/validations/evm-caveats.js.map +1 -1
  128. package/dist/esm/validations/evm-op-budget.js +13 -10
  129. package/dist/esm/validations/evm-op-budget.js.map +1 -1
  130. package/dist/esm/validations/evm-op-hook.js +409 -2
  131. package/dist/esm/validations/evm-op-hook.js.map +1 -1
  132. package/dist/esm/validations/evm-op-wrap.js +10 -7
  133. package/dist/esm/validations/evm-op-wrap.js.map +1 -1
  134. package/dist/esm/validations/evm-required-actions.js +7 -9
  135. package/dist/esm/validations/evm-required-actions.js.map +1 -1
  136. package/dist/esm/validations/evm-sign712-metamask.js +17 -94
  137. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -1
  138. package/dist/esm/validations/evm-sign712-shared.js +110 -0
  139. package/dist/esm/validations/evm-sign712-shared.js.map +1 -0
  140. package/dist/esm/validations/evm-sign7702.js +33 -22
  141. package/dist/esm/validations/evm-sign7702.js.map +1 -1
  142. package/dist/esm/validations/hooks-common.js +251 -38
  143. package/dist/esm/validations/hooks-common.js.map +1 -1
  144. package/dist/esm/validations/intent-destinations.js +194 -0
  145. package/dist/esm/validations/intent-destinations.js.map +1 -0
  146. package/dist/esm/validations/intent-tokens.js +344 -0
  147. package/dist/esm/validations/intent-tokens.js.map +1 -0
  148. package/dist/esm/validations/intent.js +285 -0
  149. package/dist/esm/validations/intent.js.map +1 -0
  150. package/dist/esm/validations/required-actions.js +7 -7
  151. package/dist/esm/validations/required-actions.js.map +1 -1
  152. package/dist/esm/validations/solana-hook.js +35 -24
  153. package/dist/esm/validations/solana-hook.js.map +1 -1
  154. package/dist/esm/validations/solana-op-budget.js +56 -18
  155. package/dist/esm/validations/solana-op-budget.js.map +1 -1
  156. package/dist/esm/validations/solana-op-wrap.js +47 -14
  157. package/dist/esm/validations/solana-op-wrap.js.map +1 -1
  158. package/dist/esm/validations/solana-required-actions.js +3 -3
  159. package/dist/esm/validations/solana-required-actions.js.map +1 -1
  160. package/dist/esm/validations/solana-transaction.js +7 -7
  161. package/dist/esm/validations/solana-transaction.js.map +1 -1
  162. package/dist/esm/validations/trade-grouping.js +139 -1
  163. package/dist/esm/validations/trade-grouping.js.map +1 -1
  164. package/dist/esm/validations/trades.js +169 -41
  165. package/dist/esm/validations/trades.js.map +1 -1
  166. package/dist/esm/validator.js +11 -16
  167. package/dist/esm/validator.js.map +1 -1
  168. package/dist/esm/whitelists/environment-config.js +47 -28
  169. package/dist/esm/whitelists/environment-config.js.map +1 -1
  170. package/dist/esm/whitelists/evm/caveat-enforcers.js +20 -4
  171. package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -1
  172. package/dist/esm/whitelists/evm/delegation-manager.js +6 -1
  173. package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -1
  174. package/dist/esm/whitelists/evm/eip7702-delegation.js +6 -1
  175. package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -1
  176. package/dist/esm/whitelists/evm/index.js +4 -4
  177. package/dist/esm/whitelists/evm/index.js.map +1 -1
  178. package/dist/esm/whitelists/evm/metamask-delegation-chains.js +13 -0
  179. package/dist/esm/whitelists/evm/metamask-delegation-chains.js.map +1 -0
  180. package/dist/esm/whitelists/evm/permit2.js +9 -5
  181. package/dist/esm/whitelists/evm/permit2.js.map +1 -1
  182. package/dist/esm/whitelists/evm/weth.js +16 -5
  183. package/dist/esm/whitelists/evm/weth.js.map +1 -1
  184. package/dist/esm/whitelists/solana/intent-signature.js +0 -1
  185. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -1
  186. package/dist/esm/whitelists/subscription-to-chain-id.js +9 -0
  187. package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -1
  188. package/dist/esm/whitelists/types.js +14 -5
  189. package/dist/esm/whitelists/types.js.map +1 -1
  190. package/dist/types/helpers/address.d.ts +7 -7
  191. package/dist/types/helpers/address.d.ts.map +1 -1
  192. package/dist/types/helpers/evm-dln-hook-pack.d.ts +19 -0
  193. package/dist/types/helpers/evm-dln-hook-pack.d.ts.map +1 -0
  194. package/dist/types/helpers/evm-gas-compensation-tx.d.ts +13 -0
  195. package/dist/types/helpers/evm-gas-compensation-tx.d.ts.map +1 -0
  196. package/dist/types/helpers/evm-intent-id.d.ts.map +1 -1
  197. package/dist/types/helpers/evm-trade-amounts.d.ts +2 -2
  198. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -1
  199. package/dist/types/helpers/gas-compensation.d.ts +10 -0
  200. package/dist/types/helpers/gas-compensation.d.ts.map +1 -0
  201. package/dist/types/helpers/hex.d.ts +3 -0
  202. package/dist/types/helpers/hex.d.ts.map +1 -0
  203. package/dist/types/helpers/placeholder.d.ts +41 -0
  204. package/dist/types/helpers/placeholder.d.ts.map +1 -0
  205. package/dist/types/helpers/sets.d.ts +2 -0
  206. package/dist/types/helpers/sets.d.ts.map +1 -0
  207. package/dist/types/types/enums.d.ts +24 -1
  208. package/dist/types/types/enums.d.ts.map +1 -1
  209. package/dist/types/types/request.d.ts +21 -11
  210. package/dist/types/types/request.d.ts.map +1 -1
  211. package/dist/types/types/response.d.ts +1015 -17
  212. package/dist/types/types/response.d.ts.map +1 -1
  213. package/dist/types/types/validation.d.ts +73 -11
  214. package/dist/types/types/validation.d.ts.map +1 -1
  215. package/dist/types/validations/compensation-hook.d.ts +3 -0
  216. package/dist/types/validations/compensation-hook.d.ts.map +1 -0
  217. package/dist/types/validations/evm-caveats.d.ts.map +1 -1
  218. package/dist/types/validations/evm-op-budget.d.ts +2 -2
  219. package/dist/types/validations/evm-op-budget.d.ts.map +1 -1
  220. package/dist/types/validations/evm-op-hook.d.ts +4 -2
  221. package/dist/types/validations/evm-op-hook.d.ts.map +1 -1
  222. package/dist/types/validations/evm-op-wrap.d.ts +2 -2
  223. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -1
  224. package/dist/types/validations/evm-required-actions.d.ts +2 -2
  225. package/dist/types/validations/evm-required-actions.d.ts.map +1 -1
  226. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -1
  227. package/dist/types/validations/evm-sign712-shared.d.ts +7 -0
  228. package/dist/types/validations/evm-sign712-shared.d.ts.map +1 -0
  229. package/dist/types/validations/evm-sign7702.d.ts +2 -1
  230. package/dist/types/validations/evm-sign7702.d.ts.map +1 -1
  231. package/dist/types/validations/hooks-common.d.ts +1 -0
  232. package/dist/types/validations/hooks-common.d.ts.map +1 -1
  233. package/dist/types/validations/intent-destinations.d.ts +4 -0
  234. package/dist/types/validations/intent-destinations.d.ts.map +1 -0
  235. package/dist/types/validations/intent-tokens.d.ts +4 -0
  236. package/dist/types/validations/intent-tokens.d.ts.map +1 -0
  237. package/dist/types/validations/intent.d.ts +5 -0
  238. package/dist/types/validations/intent.d.ts.map +1 -0
  239. package/dist/types/validations/required-actions.d.ts +2 -1
  240. package/dist/types/validations/required-actions.d.ts.map +1 -1
  241. package/dist/types/validations/solana-hook.d.ts +4 -2
  242. package/dist/types/validations/solana-hook.d.ts.map +1 -1
  243. package/dist/types/validations/solana-op-budget.d.ts +2 -2
  244. package/dist/types/validations/solana-op-budget.d.ts.map +1 -1
  245. package/dist/types/validations/solana-op-wrap.d.ts +2 -2
  246. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -1
  247. package/dist/types/validations/solana-required-actions.d.ts +2 -2
  248. package/dist/types/validations/solana-required-actions.d.ts.map +1 -1
  249. package/dist/types/validations/solana-transaction.d.ts +3 -3
  250. package/dist/types/validations/solana-transaction.d.ts.map +1 -1
  251. package/dist/types/validations/trade-grouping.d.ts +6 -2
  252. package/dist/types/validations/trade-grouping.d.ts.map +1 -1
  253. package/dist/types/validations/trades.d.ts.map +1 -1
  254. package/dist/types/validator.d.ts.map +1 -1
  255. package/dist/types/whitelists/environment-config.d.ts.map +1 -1
  256. package/dist/types/whitelists/evm/caveat-enforcers.d.ts +8 -0
  257. package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -1
  258. package/dist/types/whitelists/evm/delegation-manager.d.ts +2 -0
  259. package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -1
  260. package/dist/types/whitelists/evm/eip7702-delegation.d.ts +2 -0
  261. package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -1
  262. package/dist/types/whitelists/evm/index.d.ts +4 -4
  263. package/dist/types/whitelists/evm/index.d.ts.map +1 -1
  264. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts +3 -0
  265. package/dist/types/whitelists/evm/metamask-delegation-chains.d.ts.map +1 -0
  266. package/dist/types/whitelists/evm/permit2.d.ts +1 -0
  267. package/dist/types/whitelists/evm/permit2.d.ts.map +1 -1
  268. package/dist/types/whitelists/evm/weth.d.ts.map +1 -1
  269. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -1
  270. package/dist/types/whitelists/subscription-to-chain-id.d.ts +1 -0
  271. package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -1
  272. package/dist/types/whitelists/types.d.ts +1 -1
  273. package/dist/types/whitelists/types.d.ts.map +1 -1
  274. package/package.json +4 -3
  275. package/dist/cjs/helpers/constants.js +0 -6
  276. package/dist/cjs/helpers/constants.js.map +0 -1
  277. package/dist/cjs/validations/evm-op-gas-compensation.js +0 -152
  278. package/dist/cjs/validations/evm-op-gas-compensation.js.map +0 -1
  279. package/dist/esm/helpers/constants.js +0 -3
  280. package/dist/esm/helpers/constants.js.map +0 -1
  281. package/dist/esm/validations/evm-op-gas-compensation.js +0 -149
  282. package/dist/esm/validations/evm-op-gas-compensation.js.map +0 -1
  283. package/dist/types/helpers/constants.d.ts +0 -2
  284. package/dist/types/helpers/constants.d.ts.map +0 -1
  285. package/dist/types/validations/evm-op-gas-compensation.d.ts +0 -3
  286. package/dist/types/validations/evm-op-gas-compensation.d.ts.map +0 -1
@@ -45,21 +45,11 @@ function classifyCaveats(caveats, actionId, actionPath, realChainId, violations)
45
45
  // CRITICAL: IdEnforcer ID must equal Number(actionId)
46
46
  validateIdEnforcerValue(caveat, actionId, path, violations);
47
47
  }
48
- // CRITICAL: exactly one TimestampEnforcer per action
49
48
  if (kind === CaveatKind.Timestamp) {
50
49
  result.timestampCount++;
51
50
  if (result.timestampCount === 1) {
52
51
  result.firstTimestamp = { caveat, index: i };
53
52
  }
54
- else if (result.timestampCount === 2) {
55
- violations.push({
56
- code: types_1.ViolationCode.Sign712MetaMaskDuplicateTimestampEnforcerCaveat,
57
- message: `Sign712MetaMask must have exactly one TimestampEnforcer`,
58
- path: `${path}.enforcer`,
59
- expected: 1,
60
- actual: result.timestampCount,
61
- });
62
- }
63
53
  }
64
54
  }
65
55
  return result;
@@ -111,13 +101,13 @@ function validateExactExecutionTerms(caveat, txCall, caveatIndex, actionPath, vi
111
101
  try {
112
102
  decoded = (0, caveat_decoder_1.decodeExactExecution)(caveat.terms);
113
103
  }
114
- catch (e) {
104
+ catch (error) {
115
105
  violations.push({
116
106
  code: types_1.ViolationCode.Sign712MetaMaskCaveatDecodeError,
117
107
  message: `failed to decode ExactExecution caveat terms`,
118
108
  path: `${caveatPath}.terms`,
119
109
  actual: caveat.terms,
120
- details: e,
110
+ details: error,
121
111
  });
122
112
  return;
123
113
  }
@@ -222,13 +212,13 @@ function validateTimestampEnforcerValue(caveat, expirationTimestamp, caveatIndex
222
212
  });
223
213
  }
224
214
  }
225
- catch (e) {
215
+ catch (error) {
226
216
  violations.push({
227
217
  code: types_1.ViolationCode.Sign712MetaMaskCaveatDecodeError,
228
218
  message: `failed to decode TimestampEnforcer caveat terms`,
229
219
  path: `${caveatPath}.terms`,
230
220
  actual: caveat.terms,
231
- details: e,
221
+ details: error,
232
222
  });
233
223
  }
234
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evm-caveats.js","sourceRoot":"","sources":["../../../src/validations/evm-caveats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-caveats.js","sourceRoot":"","sources":["../../../src/validations/evm-caveats.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ const evm_token_1 = require("../helpers/evm-token");
9
9
  const address_1 = require("../helpers/address");
10
10
  const evm_trade_amounts_1 = require("../helpers/evm-trade-amounts");
11
11
  const evm_action_1 = require("../helpers/evm-action");
12
- function validateBudgetOperations(actions, basePath, request, trades, realChainId, envConfig) {
12
+ function validateBudgetOperations(actions, basePath, request, trades, responseTrades, realChainId, envConfig) {
13
13
  const violations = [];
14
14
  for (let i = 0; i < actions.length; i++) {
15
15
  const action = actions[i];
@@ -19,11 +19,11 @@ function validateBudgetOperations(actions, basePath, request, trades, realChainI
19
19
  // Applies to ALL Budget actions regardless of type
20
20
  violations.push(...validateBudgetApproveNone(request, actionPath));
21
21
  // Token address and calldata checks only apply to actions that use transactionCalls
22
- // (Transaction, Sign712MetaMask). For Permit/Permit2 (Sign712), these are validated
23
- // by the permit/permit2 validators instead.
22
+ // (Transaction, Sign712MetaMaskCaveats). For Permit/Permit2 (Sign712), these are
23
+ // validated by the permit/permit2 validators instead.
24
24
  if (!(0, evm_action_1.actionUsesTransactionCalls)(action))
25
25
  continue;
26
- violations.push(...validateBudgetTokenAddress(action, actionPath, trades, realChainId), ...validateBudgetCalldata(action, actionPath, request, trades, realChainId, envConfig));
26
+ violations.push(...validateBudgetTokenAddress(action, actionPath, trades, realChainId), ...validateBudgetCalldata(action, actionPath, request, trades, responseTrades, realChainId, envConfig));
27
27
  }
28
28
  return violations;
29
29
  }
@@ -78,7 +78,7 @@ function validateBudgetTokenAddress(action, actionPath, trades, realChainId) {
78
78
  });
79
79
  }
80
80
  // CRITICAL: must be non-zero address
81
- if ((0, evm_token_1.isNativeToken)(tokenAddress)) {
81
+ if ((0, evm_token_1.isNativeToken)(tokenAddress, realChainId)) {
82
82
  violations.push({
83
83
  code: types_1.ViolationCode.BudgetTokenAddressZero,
84
84
  message: `Budget token address must not be the zero address`,
@@ -106,7 +106,7 @@ function validateBudgetTokenAddress(action, actionPath, trades, realChainId) {
106
106
  }
107
107
  // CRITICAL: decode approve calldata, validate spender + amount + allowanceHolder
108
108
  // Handles two-step approve: approve(spender, 0) reset + approve(spender, amount)
109
- function validateBudgetCalldata(action, actionPath, request, trades, realChainId, envConfig) {
109
+ function validateBudgetCalldata(action, actionPath, request, trades, responseTrades, realChainId, envConfig) {
110
110
  const txCalls = (0, evm_action_1.getTransactionCalls)(action);
111
111
  // Missing txCalls is reported by validateBudgetTokenAddress
112
112
  if (txCalls.length === 0)
@@ -115,7 +115,7 @@ function validateBudgetCalldata(action, actionPath, request, trades, realChainId
115
115
  if ("violations" in decoded)
116
116
  return decoded.violations;
117
117
  const violations = [];
118
- violations.push(...validateBudgetAmount(decoded.amount, actionPath, decoded.mainApproveIndex, request, trades, action, realChainId), ...validateBudgetAllowanceHolder(decoded.spender, action, actionPath, decoded.mainApproveIndex, realChainId, envConfig));
118
+ violations.push(...validateBudgetAmount(decoded.amount, actionPath, decoded.mainApproveIndex, request, trades, responseTrades, action, realChainId), ...validateBudgetAllowanceHolder(decoded.spender, action, actionPath, decoded.mainApproveIndex, realChainId, envConfig));
119
119
  return violations;
120
120
  }
121
121
  // Decodes one or two approve calls. Returns the "real" approve.
@@ -194,8 +194,11 @@ function validateBudgetResetCall(txCall, expectedSpender, calldataPath) {
194
194
  }
195
195
  return violations;
196
196
  }
197
- // CRITICAL: approve amount validation
198
- function validateBudgetAmount(approveAmount, actionPath, mainIndex, request, trades, action, realChainId) {
197
+ // CRITICAL: approve amount validation. When `prependOperatingExpenses=true` for
198
+ // a trade, the API increases its contribution to the approve sum by
199
+ // `response.trades[i].srcChainTokenIn.approximateOperatingExpense` — same
200
+ // mechanism as the Wrap deposit value (the wrapped budget is the same number).
201
+ function validateBudgetAmount(approveAmount, actionPath, mainIndex, request, trades, responseTrades, action, realChainId) {
199
202
  const flag = request.approveAmountFlag;
200
203
  const dataPath = `${actionPath}.details.transactionCalls[${mainIndex}].data`;
201
204
  // unlimited: must be maxUint256
@@ -216,7 +219,7 @@ function validateBudgetAmount(approveAmount, actionPath, mainIndex, request, tra
216
219
  // Skip if tokenAddress is missing — already reported by validateBudgetTokenAddress
217
220
  if (!tokenAddress)
218
221
  return [];
219
- const sumResult = (0, evm_trade_amounts_1.sumTradeAmounts)(trades, tokenAddress, realChainId);
222
+ const sumResult = (0, evm_trade_amounts_1.sumTradeAmounts)(trades, tokenAddress, realChainId, responseTrades);
220
223
  if (sumResult.violations)
221
224
  return sumResult.violations;
222
225
  if (sumResult.skip)
@@ -1 +1 @@
1
- {"version":3,"file":"evm-op-budget.js","sourceRoot":"","sources":["../../../src/validations/evm-op-budget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evm-op-budget.js","sourceRoot":"","sources":["../../../src/validations/evm-op-budget.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,415 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateHookOperations = validateHookOperations;
4
- // TODO: Hook operation validation rules
5
- function validateHookOperations(_actions, _basePath) {
3
+ exports.validateEvmHookActions = validateEvmHookActions;
4
+ const types_1 = require("../types");
5
+ const placeholder_1 = require("../helpers/placeholder");
6
+ const gas_compensation_1 = require("../helpers/gas-compensation");
7
+ const evm_gas_compensation_tx_1 = require("../helpers/evm-gas-compensation-tx");
8
+ const address_1 = require("../helpers/address");
9
+ const evm_sign7702_1 = require("./evm-sign7702");
10
+ const evm_sign712_shared_1 = require("./evm-sign712-shared");
11
+ const SIGN712_HOOK_TYPES = [
12
+ types_1.EvmActionKind.Sign712MetaMaskCaveats,
13
+ types_1.EvmActionKind.Sign712MetaMaskCaveatsWithPlaceholders,
14
+ ];
15
+ function validateEvmHookActions(hookPayload, requestHook, basePath, mode, responseTrades, realChainId, request) {
16
+ const violations = [];
17
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
18
+ const action = hookPayload.requiredActions[i];
19
+ const actionPath = `${basePath}.requiredActions[${i}]`;
20
+ violations.push(...validateHookSign7702Binding(action, actionPath, realChainId));
21
+ }
22
+ if (hookPayload.hook.type === types_1.BundleHookType.Direct) {
23
+ violations.push(...validateDirectEvmHookActions(hookPayload, requestHook, basePath));
24
+ }
25
+ else { // BundleHookType.Delegated (default)
26
+ violations.push(...validateDelegatedEvmHookActions(hookPayload, requestHook, basePath, realChainId, request.expirationTimestamp));
27
+ }
28
+ violations.push(...validateHookActionCalldata(hookPayload, requestHook, basePath, mode, responseTrades, realChainId));
29
+ violations.push(...validateHookActionTransactionCallsMatch(hookPayload, basePath));
30
+ if (requestHook === undefined && mode === placeholder_1.HookMode.PreHooks) {
31
+ violations.push(...validateCompensationHookTransactionCall(hookPayload, basePath, request, realChainId));
32
+ }
33
+ return violations;
34
+ }
35
+ // CRITICAL: every action that carries the `Delegate` operation must have
36
+ // type `Sign7702Authorization`, and every `Sign7702Authorization` action must
37
+ // carry exactly `[Delegate]` and a whitelisted contractAddress. Without this
38
+ // binding, an action with `actions:[Delegate]` and an arbitrary `type` (e.g.
39
+ // `Transaction`) would slip through the operation/position checks elsewhere.
40
+ // The per-action [Delegate] + contractAddress checks are shared with intent-scope
41
+ // via `validateSign7702Action`; the type <-> [Delegate] binding is hook-specific.
42
+ function validateHookSign7702Binding(action, actionPath, realChainId) {
43
+ const violations = [];
44
+ const ops = action.actions;
45
+ const hasDelegate = ops.includes(types_1.EvmActionOperation.Delegate);
46
+ const isSign7702 = action.type === types_1.EvmActionKind.Sign7702Authorization;
47
+ if (hasDelegate && !isSign7702) {
48
+ violations.push({
49
+ code: types_1.ViolationCode.HookDelegateOpWrongType,
50
+ message: "action with operation [Delegate] must have type"
51
+ + " Sign7702Authorization",
52
+ path: `${actionPath}.type`,
53
+ expected: types_1.EvmActionKind.Sign7702Authorization,
54
+ actual: action.type,
55
+ });
56
+ }
57
+ if (isSign7702) {
58
+ violations.push(...(0, evm_sign7702_1.validateSign7702Action)(action, actionPath, realChainId));
59
+ }
60
+ return violations;
61
+ }
62
+ // HIGH: a Direct EVM hook's hook-action must be `Transaction` (when no deferred
63
+ // placeholders are declared) or `ProvidePlaceholders` (when at least one
64
+ // deferred placeholder is declared). chainId and placeholder list are checked
65
+ // per-action below.
66
+ function validateDirectEvmHookActions(hookPayload, requestHook, basePath) {
67
+ const violations = [];
68
+ const expectedDeferred = collectDeferredPlaceholders(requestHook);
69
+ const expectsTransaction = expectedDeferred.length === 0;
70
+ const hookChainId = hookPayload.hook.chainId;
71
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
72
+ const action = hookPayload.requiredActions[i];
73
+ const actionPath = `${basePath}.requiredActions[${i}]`;
74
+ // Safe skip: Delegate-bearing actions in Direct hooks are reported
75
+ // as `HookDelegateInDirect` by `validateHookDelegateOp`.
76
+ if (action.actions.includes(types_1.EvmActionOperation.Delegate))
77
+ continue;
78
+ violations.push(...validateDirectAction(action, expectsTransaction, hookChainId, expectedDeferred, actionPath));
79
+ }
80
+ return violations;
81
+ }
82
+ function validateDirectAction(action, expectsTransaction, hookChainId, expectedDeferred, actionPath) {
83
+ const expectedType = expectsTransaction
84
+ ? types_1.EvmActionKind.Transaction
85
+ : types_1.EvmActionKind.ProvidePlaceholders;
86
+ if (action.type !== expectedType) {
87
+ return [{
88
+ code: types_1.ViolationCode.HookDirectActionTypeInvalid,
89
+ message: `Direct hook action must be of type ${expectedType}`,
90
+ path: `${actionPath}.type`,
91
+ expected: expectedType,
92
+ actual: action.type,
93
+ }];
94
+ }
95
+ if (expectsTransaction) {
96
+ return validateDirectTransactionAction(action.data, hookChainId, actionPath);
97
+ }
98
+ return validateProvidePlaceholdersAction(action.data, hookChainId, expectedDeferred, actionPath);
99
+ }
100
+ // HIGH: a Delegated EVM hook's hook-action must be `Sign712MetaMaskCaveats`
101
+ // (when no deferred placeholders are declared) or
102
+ // `Sign712MetaMaskCaveatsWithPlaceholders` (when at least one deferred
103
+ // placeholder is declared). transactionCalls form, placeholders match, and
104
+ // EIP-712 content checks (domain, delegator, caveats) are checked per-action below.
105
+ function validateDelegatedEvmHookActions(hookPayload, requestHook, basePath, realChainId, expirationTimestamp) {
106
+ const violations = [];
107
+ const expectedDeferred = collectDeferredPlaceholders(requestHook);
108
+ const hasDeferred = expectedDeferred.length > 0;
109
+ const ctx = {
110
+ expectedType: hasDeferred
111
+ ? types_1.EvmActionKind.Sign712MetaMaskCaveatsWithPlaceholders
112
+ : types_1.EvmActionKind.Sign712MetaMaskCaveats,
113
+ expectedDeferred,
114
+ hookFrom: hookPayload.hook.from,
115
+ realChainId,
116
+ expirationTimestamp,
117
+ };
118
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
119
+ const action = hookPayload.requiredActions[i];
120
+ const actionPath = `${basePath}.requiredActions[${i}]`;
121
+ // Safe skip: Delegate-bearing actions are validated by
122
+ // `validateHookSign7702Binding`.
123
+ if (action.actions.includes(types_1.EvmActionOperation.Delegate))
124
+ continue;
125
+ violations.push(...validateDelegatedAction(action, actionPath, ctx));
126
+ }
127
+ return violations;
128
+ }
129
+ function validateDelegatedAction(action, actionPath, ctx) {
130
+ if (action.type !== ctx.expectedType) {
131
+ return [{
132
+ code: types_1.ViolationCode.HookDelegatedActionTypeInvalid,
133
+ message: `Delegated hook action must be of type ${ctx.expectedType}`,
134
+ path: `${actionPath}.type`,
135
+ expected: ctx.expectedType,
136
+ actual: action.type,
137
+ }];
138
+ }
139
+ const violations = [
140
+ ...validateSign712TransactionCalls(action, actionPath),
141
+ ];
142
+ // CRITICAL: data structural presence — downstream content checks assume
143
+ // `data.domain` and `data.message` exist.
144
+ const data = action.data;
145
+ const presenceErrors = (0, evm_sign712_shared_1.validateSign712DataPresent)(data, actionPath);
146
+ if (presenceErrors.length > 0) {
147
+ violations.push(...presenceErrors);
148
+ return violations;
149
+ }
150
+ violations.push(...(0, evm_sign712_shared_1.validateSign712Domain)(data, actionPath, ctx.realChainId), ...(0, evm_sign712_shared_1.validateSign712Delegator)(data, actionPath, ctx.realChainId, ctx.hookFrom, "hook.from"));
151
+ const caveats = (data.message.caveats ?? []);
152
+ const txCalls = action.details?.transactionCalls ?? [];
153
+ violations.push(...(0, evm_sign712_shared_1.validateSign712Caveats)(caveats, action.actionId, txCalls, actionPath, ctx.realChainId, ctx.expirationTimestamp));
154
+ if (ctx.expectedType === types_1.EvmActionKind.Sign712MetaMaskCaveatsWithPlaceholders) {
155
+ const withPlaceholdersData = data;
156
+ const actualPlaceholders = withPlaceholdersData.placeholders ?? [];
157
+ if (!placeholderArraysEqual(actualPlaceholders, ctx.expectedDeferred)) {
158
+ violations.push({
159
+ code: types_1.ViolationCode.HookDelegatedPlaceholdersMismatch,
160
+ message: "Sign712MetaMaskCaveatsWithPlaceholders data.placeholders"
161
+ + " must match the deferred placeholders declared in the request hook",
162
+ path: `${actionPath}.data.placeholders`,
163
+ expected: ctx.expectedDeferred,
164
+ actual: actualPlaceholders,
165
+ });
166
+ }
167
+ }
168
+ return violations;
169
+ }
170
+ // CRITICAL: hook-scope `Sign712MetaMaskCaveats(WithPlaceholders)` actions
171
+ // must carry exactly one transactionCall (the wrapped hook tx itself). The API
172
+ // hard-codes `calls = [tx]` for hook scope; an empty or longer array signals
173
+ // that something tampered with the wrapped payload.
174
+ function validateSign712TransactionCalls(action, actionPath) {
175
+ const txCalls = action.details?.transactionCalls ?? [];
176
+ if (txCalls.length === 0) {
177
+ return [{
178
+ code: types_1.ViolationCode.HookSign712TransactionCallsEmpty,
179
+ message: "Sign712MetaMaskCaveats hook action must have exactly one"
180
+ + " transactionCall (got none)",
181
+ path: `${actionPath}.details.transactionCalls`,
182
+ expected: 1,
183
+ actual: 0,
184
+ }];
185
+ }
186
+ if (txCalls.length > 1) {
187
+ return [{
188
+ code: types_1.ViolationCode.HookSign712TransactionCallsTooMany,
189
+ message: "Sign712MetaMaskCaveats hook action must have exactly one"
190
+ + " transactionCall",
191
+ path: `${actionPath}.details.transactionCalls`,
192
+ expected: 1,
193
+ actual: txCalls.length,
194
+ }];
195
+ }
6
196
  return [];
7
197
  }
198
+ function collectDeferredPlaceholders(requestHook) {
199
+ return (requestHook?.placeHolders ?? [])
200
+ .filter(p => p.type === types_1.PlaceholderType.Deferred)
201
+ .map(p => ({ nameVariable: p.nameVariable }));
202
+ }
203
+ function validateDirectTransactionAction(data, hookChainId, actionPath) {
204
+ if (data.chainId === hookChainId)
205
+ return [];
206
+ return [{
207
+ code: types_1.ViolationCode.HookDirectChainIdMismatch,
208
+ message: "Direct hook Transaction data.chainId must equal hook.chainId",
209
+ path: `${actionPath}.data.chainId`,
210
+ expected: hookChainId,
211
+ actual: data.chainId,
212
+ }];
213
+ }
214
+ function validateProvidePlaceholdersAction(data, hookChainId, expectedDeferred, actionPath) {
215
+ const violations = [];
216
+ if (data.transaction.chainId !== hookChainId) {
217
+ violations.push({
218
+ code: types_1.ViolationCode.HookDirectChainIdMismatch,
219
+ message: "ProvidePlaceholders data.transaction.chainId must equal hook.chainId",
220
+ path: `${actionPath}.data.transaction.chainId`,
221
+ expected: hookChainId,
222
+ actual: data.transaction.chainId,
223
+ });
224
+ }
225
+ if (!placeholderArraysEqual(data.placeholders, expectedDeferred)) {
226
+ violations.push({
227
+ code: types_1.ViolationCode.HookDirectPlaceholdersMismatch,
228
+ message: "ProvidePlaceholders data.placeholders must match the deferred"
229
+ + " placeholders declared in the request hook",
230
+ path: `${actionPath}.data.placeholders`,
231
+ expected: expectedDeferred,
232
+ actual: data.placeholders,
233
+ });
234
+ }
235
+ return violations;
236
+ }
237
+ function placeholderArraysEqual(a, b) {
238
+ if (a.length !== b.length)
239
+ return false;
240
+ for (let i = 0; i < a.length; i++) {
241
+ if (a[i].nameVariable !== b[i].nameVariable)
242
+ return false;
243
+ }
244
+ return true;
245
+ }
246
+ // CRITICAL: every EVM hook-action's calldata must equal `request.hook.data`
247
+ // after eager-placeholder substitution (deferred markers must remain in place).
248
+ // Resolution errors themselves are emitted by `validateHookEcho`; here we only
249
+ // report shape mismatches between the action's calldata and the expected value.
250
+ function validateHookActionCalldata(hookPayload, requestHook, basePath, mode, responseTrades, realChainId) {
251
+ // Safe skip: compensation hooks (no requestHook) have no expected calldata
252
+ // to compare against; structural correctness is enforced by
253
+ // `validateCompensationHookStructure` and
254
+ // `validateCompensationHookTransactionCall`.
255
+ if (!requestHook)
256
+ return [];
257
+ const { resolved: expectedCalldata } = (0, placeholder_1.resolveEagerPlaceholders)(requestHook.data, realChainId, requestHook.placeHolders, responseTrades, mode);
258
+ const violations = [];
259
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
260
+ const action = hookPayload.requiredActions[i];
261
+ const actionPath = `${basePath}.requiredActions[${i}]`;
262
+ // Safe skip: Delegate-bearing actions carry EIP-7702 authorization,
263
+ // not hook calldata.
264
+ if (action.actions.includes(types_1.EvmActionOperation.Delegate))
265
+ continue;
266
+ // Safe skip: actions whose hook-tx calldata cannot be extracted
267
+ // (`Sign712MetaMaskCaveats` with empty `transactionCalls` — reported
268
+ // as `HookSign712TransactionCallsEmpty` by
269
+ // `validateSign712TransactionCalls`; or types like `Permit` /
270
+ // `Permit2` that should not appear in a hook — reported by
271
+ // `validateHookActionsList` as a forbidden operation).
272
+ const extracted = extractEvmHookActionCalldata(action);
273
+ if (!extracted)
274
+ continue;
275
+ if (extracted.calldata !== expectedCalldata) {
276
+ violations.push({
277
+ code: types_1.ViolationCode.HookActionCalldataMismatch,
278
+ message: "hook action calldata does not match request.hook.data after"
279
+ + " eager-placeholder substitution",
280
+ path: `${actionPath}.${extracted.path}`,
281
+ expected: expectedCalldata,
282
+ actual: extracted.calldata,
283
+ });
284
+ }
285
+ }
286
+ return violations;
287
+ }
288
+ // CRITICAL: `transactionCalls[0].{to, value}` must equal `hook.{to, value}` for
289
+ // `Sign712MetaMaskCaveats(WithPlaceholders)` actions — otherwise the user
290
+ // would sign a delegation that wraps a tx targeting / valued differently than
291
+ // the echoed hook fields.
292
+ function validateHookActionTransactionCallsMatch(hookPayload, basePath) {
293
+ const violations = [];
294
+ const hook = hookPayload.hook;
295
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
296
+ const action = hookPayload.requiredActions[i];
297
+ const actionPath = `${basePath}.requiredActions[${i}]`;
298
+ if (!SIGN712_HOOK_TYPES.includes(action.type))
299
+ continue;
300
+ // Safe skip: missing transactionCalls reported by
301
+ // `validateSign712TransactionCalls`.
302
+ const tx = action.details?.transactionCalls?.[0];
303
+ if (!tx)
304
+ continue;
305
+ violations.push(...compareTransactionCallToHook(tx, hook, actionPath));
306
+ }
307
+ return violations;
308
+ }
309
+ function compareTransactionCallToHook(tx, hook, actionPath) {
310
+ const violations = [];
311
+ if (hook.to !== undefined && tx.to !== hook.to) {
312
+ violations.push({
313
+ code: types_1.ViolationCode.HookActionTransactionToMismatch,
314
+ message: "transactionCalls[0].to must equal hook.to",
315
+ path: `${actionPath}.details.transactionCalls[0].to`,
316
+ expected: hook.to,
317
+ actual: tx.to,
318
+ });
319
+ }
320
+ const hookValue = hook.value ?? "0";
321
+ if (!evmValuesEqual(tx.value, hookValue)) {
322
+ violations.push({
323
+ code: types_1.ViolationCode.HookActionTransactionValueMismatch,
324
+ message: "transactionCalls[0].value must equal hook.value",
325
+ path: `${actionPath}.details.transactionCalls[0].value`,
326
+ expected: hookValue,
327
+ actual: tx.value,
328
+ });
329
+ }
330
+ return violations;
331
+ }
332
+ // Returns true if two EVM-value strings are byte-identical or if both parse as
333
+ // BigInt and represent the same number (e.g. `"0x100"` vs `"256"`). Returns
334
+ // false otherwise.
335
+ function evmValuesEqual(a, b) {
336
+ if (a === b)
337
+ return true;
338
+ try {
339
+ return BigInt(a) === BigInt(b);
340
+ }
341
+ catch {
342
+ return false;
343
+ }
344
+ }
345
+ // CRITICAL: a compensation hook's wrapped transaction must itself be a valid
346
+ // gas-compensation transfer — same rules as `compensation-hook.ts` applies to
347
+ // `hook.{to, data, value}`, but here applied to `transactionCalls[0]` so the
348
+ // user does not sign a delegation around a different (malicious) tx.
349
+ function validateCompensationHookTransactionCall(hookPayload, basePath, request, realChainId) {
350
+ const allGroups = (0, gas_compensation_1.extractGasCompensationGroups)(request);
351
+ const matchingGroups = allGroups.filter(g => g.realChainId === realChainId
352
+ && (0, address_1.addressEquals)(realChainId, g.sender, hookPayload.hook.from));
353
+ // Safe skip: from-mismatch reported by `validateCompensationHookStructure`
354
+ // (`CompensationHookFromMismatch`); without a matching group we can't
355
+ // meaningfully classify native vs ERC20.
356
+ if (matchingGroups.length === 0)
357
+ return [];
358
+ const violations = [];
359
+ for (let i = 0; i < hookPayload.requiredActions.length; i++) {
360
+ const action = hookPayload.requiredActions[i];
361
+ const actionPath = `${basePath}.requiredActions[${i}]`;
362
+ if (!SIGN712_HOOK_TYPES.includes(action.type))
363
+ continue;
364
+ // Safe skip: missing transactionCalls reported by
365
+ // `validateSign712TransactionCalls`.
366
+ const tx = action.details?.transactionCalls?.[0];
367
+ if (!tx)
368
+ continue;
369
+ violations.push(...(0, evm_gas_compensation_tx_1.validateEvmGasCompensationTx)(tx, matchingGroups, realChainId, `${actionPath}.details.transactionCalls[0]`, {
370
+ toMismatch: types_1.ViolationCode.CompensationHookEvmToMismatch,
371
+ dataInvalid: types_1.ViolationCode.CompensationHookEvmDataInvalid,
372
+ valueInvalid: types_1.ViolationCode.CompensationHookEvmValueInvalid,
373
+ }));
374
+ }
375
+ return violations;
376
+ }
377
+ // Returns the calldata field for an EVM hook-action, plus the relative path
378
+ // to it. `undefined` is reserved for action types that don't carry a
379
+ // hook-tx calldata (e.g. Sign7702Authorization, Permit), or for malformed
380
+ // payloads where the expected nested field is missing — those are reported by
381
+ // dedicated validators (`validateSign712TransactionCalls` for empty
382
+ // transactionCalls, `validateHookActionsList` for forbidden operations).
383
+ function extractEvmHookActionCalldata(action) {
384
+ if (action.type === types_1.EvmActionKind.Transaction) {
385
+ const data = action.data;
386
+ // Safe skip: malformed payload (action.type tampered to mismatch
387
+ // action.data shape). The type/payload mismatch is reported via
388
+ // `HookDirectActionTypeInvalid` / `HookDelegatedActionTypeInvalid`.
389
+ if (typeof data?.data !== "string")
390
+ return undefined;
391
+ return { calldata: data.data, path: "data.data" };
392
+ }
393
+ if (action.type === types_1.EvmActionKind.ProvidePlaceholders) {
394
+ const data = action.data;
395
+ // Safe skip: same as Transaction above.
396
+ if (typeof data?.transaction?.data !== "string")
397
+ return undefined;
398
+ return { calldata: data.transaction.data, path: "data.transaction.data" };
399
+ }
400
+ if (action.type === types_1.EvmActionKind.Sign712MetaMaskCaveats
401
+ || action.type === types_1.EvmActionKind.Sign712MetaMaskCaveatsWithPlaceholders) {
402
+ // The API wraps a single hook tx into a one-element `transactionCalls`
403
+ // array. Hook scope never produces batch delegations, so `[0]` is the
404
+ // hook-tx call we want. A `transactionCalls` array longer than one is
405
+ // a structural anomaly reported by `validateSign712TransactionCalls`.
406
+ const tx = action.details?.transactionCalls?.[0];
407
+ // Safe skip: empty / missing `transactionCalls` is reported as
408
+ // `HookSign712TransactionCallsEmpty` by `validateSign712TransactionCalls`.
409
+ if (!tx)
410
+ return undefined;
411
+ return { calldata: tx.data, path: "details.transactionCalls[0].data" };
412
+ }
413
+ return undefined;
414
+ }
8
415
  //# sourceMappingURL=evm-op-hook.js.map