@debridge-finance/borderless-validation-sdk 0.0.0-dev-dee2389

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 (345) hide show
  1. package/dist/cjs/graylists/evm/token-permit-metadata.js +28 -0
  2. package/dist/cjs/graylists/evm/token-permit-metadata.js.map +1 -0
  3. package/dist/cjs/helpers/address.js +75 -0
  4. package/dist/cjs/helpers/address.js.map +1 -0
  5. package/dist/cjs/helpers/caveat-decoder.js +60 -0
  6. package/dist/cjs/helpers/caveat-decoder.js.map +1 -0
  7. package/dist/cjs/helpers/constants.js +6 -0
  8. package/dist/cjs/helpers/constants.js.map +1 -0
  9. package/dist/cjs/helpers/evm-action.js +20 -0
  10. package/dist/cjs/helpers/evm-action.js.map +1 -0
  11. package/dist/cjs/helpers/evm-calldata.js +45 -0
  12. package/dist/cjs/helpers/evm-calldata.js.map +1 -0
  13. package/dist/cjs/helpers/evm-intent-id-abi.js +67 -0
  14. package/dist/cjs/helpers/evm-intent-id-abi.js.map +1 -0
  15. package/dist/cjs/helpers/evm-intent-id.js +70 -0
  16. package/dist/cjs/helpers/evm-intent-id.js.map +1 -0
  17. package/dist/cjs/helpers/evm-token.js +30 -0
  18. package/dist/cjs/helpers/evm-token.js.map +1 -0
  19. package/dist/cjs/helpers/evm-trade-amounts.js +42 -0
  20. package/dist/cjs/helpers/evm-trade-amounts.js.map +1 -0
  21. package/dist/cjs/helpers/solana-instruction.js +160 -0
  22. package/dist/cjs/helpers/solana-instruction.js.map +1 -0
  23. package/dist/cjs/helpers/solana-intent-id.js +460 -0
  24. package/dist/cjs/helpers/solana-intent-id.js.map +1 -0
  25. package/dist/cjs/helpers/solana-transaction-decode.js +58 -0
  26. package/dist/cjs/helpers/solana-transaction-decode.js.map +1 -0
  27. package/dist/cjs/helpers/zod.js +12 -0
  28. package/dist/cjs/helpers/zod.js.map +1 -0
  29. package/dist/cjs/index.js +9 -0
  30. package/dist/cjs/index.js.map +1 -0
  31. package/dist/cjs/package.json +1 -0
  32. package/dist/cjs/types/enums.js +137 -0
  33. package/dist/cjs/types/enums.js.map +1 -0
  34. package/dist/cjs/types/index.js +21 -0
  35. package/dist/cjs/types/index.js.map +1 -0
  36. package/dist/cjs/types/request.js +65 -0
  37. package/dist/cjs/types/request.js.map +1 -0
  38. package/dist/cjs/types/response.js +252 -0
  39. package/dist/cjs/types/response.js.map +1 -0
  40. package/dist/cjs/types/validation.js +242 -0
  41. package/dist/cjs/types/validation.js.map +1 -0
  42. package/dist/cjs/validations/echo-fields.js +67 -0
  43. package/dist/cjs/validations/echo-fields.js.map +1 -0
  44. package/dist/cjs/validations/evm-caveats.js +235 -0
  45. package/dist/cjs/validations/evm-caveats.js.map +1 -0
  46. package/dist/cjs/validations/evm-op-budget.js +261 -0
  47. package/dist/cjs/validations/evm-op-budget.js.map +1 -0
  48. package/dist/cjs/validations/evm-op-gas-compensation.js +152 -0
  49. package/dist/cjs/validations/evm-op-gas-compensation.js.map +1 -0
  50. package/dist/cjs/validations/evm-op-hook.js +8 -0
  51. package/dist/cjs/validations/evm-op-hook.js.map +1 -0
  52. package/dist/cjs/validations/evm-op-wrap.js +112 -0
  53. package/dist/cjs/validations/evm-op-wrap.js.map +1 -0
  54. package/dist/cjs/validations/evm-permit.js +224 -0
  55. package/dist/cjs/validations/evm-permit.js.map +1 -0
  56. package/dist/cjs/validations/evm-permit2.js +361 -0
  57. package/dist/cjs/validations/evm-permit2.js.map +1 -0
  58. package/dist/cjs/validations/evm-required-actions.js +184 -0
  59. package/dist/cjs/validations/evm-required-actions.js.map +1 -0
  60. package/dist/cjs/validations/evm-sign712-metamask.js +147 -0
  61. package/dist/cjs/validations/evm-sign712-metamask.js.map +1 -0
  62. package/dist/cjs/validations/evm-sign712.js +203 -0
  63. package/dist/cjs/validations/evm-sign712.js.map +1 -0
  64. package/dist/cjs/validations/evm-sign7702.js +59 -0
  65. package/dist/cjs/validations/evm-sign7702.js.map +1 -0
  66. package/dist/cjs/validations/evm-transaction.js +38 -0
  67. package/dist/cjs/validations/evm-transaction.js.map +1 -0
  68. package/dist/cjs/validations/hooks-common.js +207 -0
  69. package/dist/cjs/validations/hooks-common.js.map +1 -0
  70. package/dist/cjs/validations/required-actions.js +69 -0
  71. package/dist/cjs/validations/required-actions.js.map +1 -0
  72. package/dist/cjs/validations/solana-hook.js +225 -0
  73. package/dist/cjs/validations/solana-hook.js.map +1 -0
  74. package/dist/cjs/validations/solana-op-budget.js +293 -0
  75. package/dist/cjs/validations/solana-op-budget.js.map +1 -0
  76. package/dist/cjs/validations/solana-op-wrap.js +191 -0
  77. package/dist/cjs/validations/solana-op-wrap.js.map +1 -0
  78. package/dist/cjs/validations/solana-required-actions.js +122 -0
  79. package/dist/cjs/validations/solana-required-actions.js.map +1 -0
  80. package/dist/cjs/validations/solana-sign.js +171 -0
  81. package/dist/cjs/validations/solana-sign.js.map +1 -0
  82. package/dist/cjs/validations/solana-transaction.js +238 -0
  83. package/dist/cjs/validations/solana-transaction.js.map +1 -0
  84. package/dist/cjs/validations/trade-grouping.js +165 -0
  85. package/dist/cjs/validations/trade-grouping.js.map +1 -0
  86. package/dist/cjs/validations/trade-intent-consistency.js +104 -0
  87. package/dist/cjs/validations/trade-intent-consistency.js.map +1 -0
  88. package/dist/cjs/validations/trades.js +517 -0
  89. package/dist/cjs/validations/trades.js.map +1 -0
  90. package/dist/cjs/validator.js +75 -0
  91. package/dist/cjs/validator.js.map +1 -0
  92. package/dist/cjs/whitelists/environment-config.js +118 -0
  93. package/dist/cjs/whitelists/environment-config.js.map +1 -0
  94. package/dist/cjs/whitelists/evm/caveat-enforcers.js +18 -0
  95. package/dist/cjs/whitelists/evm/caveat-enforcers.js.map +1 -0
  96. package/dist/cjs/whitelists/evm/delegation-manager.js +9 -0
  97. package/dist/cjs/whitelists/evm/delegation-manager.js.map +1 -0
  98. package/dist/cjs/whitelists/evm/eip7702-delegation.js +8 -0
  99. package/dist/cjs/whitelists/evm/eip7702-delegation.js.map +1 -0
  100. package/dist/cjs/whitelists/evm/index.js +17 -0
  101. package/dist/cjs/whitelists/evm/index.js.map +1 -0
  102. package/dist/cjs/whitelists/evm/permit2.js +18 -0
  103. package/dist/cjs/whitelists/evm/permit2.js.map +1 -0
  104. package/dist/cjs/whitelists/evm/weth.js +19 -0
  105. package/dist/cjs/whitelists/evm/weth.js.map +1 -0
  106. package/dist/cjs/whitelists/solana/index.js +19 -0
  107. package/dist/cjs/whitelists/solana/index.js.map +1 -0
  108. package/dist/cjs/whitelists/solana/intent-signature.js +25 -0
  109. package/dist/cjs/whitelists/solana/intent-signature.js.map +1 -0
  110. package/dist/cjs/whitelists/solana/programs.js +19 -0
  111. package/dist/cjs/whitelists/solana/programs.js.map +1 -0
  112. package/dist/cjs/whitelists/subscription-to-chain-id.js +36 -0
  113. package/dist/cjs/whitelists/subscription-to-chain-id.js.map +1 -0
  114. package/dist/cjs/whitelists/types.js +29 -0
  115. package/dist/cjs/whitelists/types.js.map +1 -0
  116. package/dist/esm/graylists/evm/token-permit-metadata.js +24 -0
  117. package/dist/esm/graylists/evm/token-permit-metadata.js.map +1 -0
  118. package/dist/esm/helpers/address.js +63 -0
  119. package/dist/esm/helpers/address.js.map +1 -0
  120. package/dist/esm/helpers/caveat-decoder.js +55 -0
  121. package/dist/esm/helpers/caveat-decoder.js.map +1 -0
  122. package/dist/esm/helpers/constants.js +3 -0
  123. package/dist/esm/helpers/constants.js.map +1 -0
  124. package/dist/esm/helpers/evm-action.js +16 -0
  125. package/dist/esm/helpers/evm-action.js.map +1 -0
  126. package/dist/esm/helpers/evm-calldata.js +39 -0
  127. package/dist/esm/helpers/evm-calldata.js.map +1 -0
  128. package/dist/esm/helpers/evm-intent-id-abi.js +64 -0
  129. package/dist/esm/helpers/evm-intent-id-abi.js.map +1 -0
  130. package/dist/esm/helpers/evm-intent-id.js +67 -0
  131. package/dist/esm/helpers/evm-intent-id.js.map +1 -0
  132. package/dist/esm/helpers/evm-token.js +25 -0
  133. package/dist/esm/helpers/evm-token.js.map +1 -0
  134. package/dist/esm/helpers/evm-trade-amounts.js +39 -0
  135. package/dist/esm/helpers/evm-trade-amounts.js.map +1 -0
  136. package/dist/esm/helpers/solana-instruction.js +146 -0
  137. package/dist/esm/helpers/solana-instruction.js.map +1 -0
  138. package/dist/esm/helpers/solana-intent-id.js +457 -0
  139. package/dist/esm/helpers/solana-intent-id.js.map +1 -0
  140. package/dist/esm/helpers/solana-transaction-decode.js +55 -0
  141. package/dist/esm/helpers/solana-transaction-decode.js.map +1 -0
  142. package/dist/esm/helpers/zod.js +9 -0
  143. package/dist/esm/helpers/zod.js.map +1 -0
  144. package/dist/esm/index.js +3 -0
  145. package/dist/esm/index.js.map +1 -0
  146. package/dist/esm/package.json +1 -0
  147. package/dist/esm/types/enums.js +134 -0
  148. package/dist/esm/types/enums.js.map +1 -0
  149. package/dist/esm/types/index.js +5 -0
  150. package/dist/esm/types/index.js.map +1 -0
  151. package/dist/esm/types/request.js +62 -0
  152. package/dist/esm/types/request.js.map +1 -0
  153. package/dist/esm/types/response.js +249 -0
  154. package/dist/esm/types/response.js.map +1 -0
  155. package/dist/esm/types/validation.js +239 -0
  156. package/dist/esm/types/validation.js.map +1 -0
  157. package/dist/esm/validations/echo-fields.js +64 -0
  158. package/dist/esm/validations/echo-fields.js.map +1 -0
  159. package/dist/esm/validations/evm-caveats.js +228 -0
  160. package/dist/esm/validations/evm-caveats.js.map +1 -0
  161. package/dist/esm/validations/evm-op-budget.js +258 -0
  162. package/dist/esm/validations/evm-op-budget.js.map +1 -0
  163. package/dist/esm/validations/evm-op-gas-compensation.js +149 -0
  164. package/dist/esm/validations/evm-op-gas-compensation.js.map +1 -0
  165. package/dist/esm/validations/evm-op-hook.js +5 -0
  166. package/dist/esm/validations/evm-op-hook.js.map +1 -0
  167. package/dist/esm/validations/evm-op-wrap.js +109 -0
  168. package/dist/esm/validations/evm-op-wrap.js.map +1 -0
  169. package/dist/esm/validations/evm-permit.js +221 -0
  170. package/dist/esm/validations/evm-permit.js.map +1 -0
  171. package/dist/esm/validations/evm-permit2.js +358 -0
  172. package/dist/esm/validations/evm-permit2.js.map +1 -0
  173. package/dist/esm/validations/evm-required-actions.js +181 -0
  174. package/dist/esm/validations/evm-required-actions.js.map +1 -0
  175. package/dist/esm/validations/evm-sign712-metamask.js +144 -0
  176. package/dist/esm/validations/evm-sign712-metamask.js.map +1 -0
  177. package/dist/esm/validations/evm-sign712.js +200 -0
  178. package/dist/esm/validations/evm-sign712.js.map +1 -0
  179. package/dist/esm/validations/evm-sign7702.js +56 -0
  180. package/dist/esm/validations/evm-sign7702.js.map +1 -0
  181. package/dist/esm/validations/evm-transaction.js +35 -0
  182. package/dist/esm/validations/evm-transaction.js.map +1 -0
  183. package/dist/esm/validations/hooks-common.js +204 -0
  184. package/dist/esm/validations/hooks-common.js.map +1 -0
  185. package/dist/esm/validations/required-actions.js +66 -0
  186. package/dist/esm/validations/required-actions.js.map +1 -0
  187. package/dist/esm/validations/solana-hook.js +222 -0
  188. package/dist/esm/validations/solana-hook.js.map +1 -0
  189. package/dist/esm/validations/solana-op-budget.js +290 -0
  190. package/dist/esm/validations/solana-op-budget.js.map +1 -0
  191. package/dist/esm/validations/solana-op-wrap.js +188 -0
  192. package/dist/esm/validations/solana-op-wrap.js.map +1 -0
  193. package/dist/esm/validations/solana-required-actions.js +119 -0
  194. package/dist/esm/validations/solana-required-actions.js.map +1 -0
  195. package/dist/esm/validations/solana-sign.js +168 -0
  196. package/dist/esm/validations/solana-sign.js.map +1 -0
  197. package/dist/esm/validations/solana-transaction.js +234 -0
  198. package/dist/esm/validations/solana-transaction.js.map +1 -0
  199. package/dist/esm/validations/trade-grouping.js +161 -0
  200. package/dist/esm/validations/trade-grouping.js.map +1 -0
  201. package/dist/esm/validations/trade-intent-consistency.js +101 -0
  202. package/dist/esm/validations/trade-intent-consistency.js.map +1 -0
  203. package/dist/esm/validations/trades.js +514 -0
  204. package/dist/esm/validations/trades.js.map +1 -0
  205. package/dist/esm/validator.js +72 -0
  206. package/dist/esm/validator.js.map +1 -0
  207. package/dist/esm/whitelists/environment-config.js +115 -0
  208. package/dist/esm/whitelists/environment-config.js.map +1 -0
  209. package/dist/esm/whitelists/evm/caveat-enforcers.js +15 -0
  210. package/dist/esm/whitelists/evm/caveat-enforcers.js.map +1 -0
  211. package/dist/esm/whitelists/evm/delegation-manager.js +6 -0
  212. package/dist/esm/whitelists/evm/delegation-manager.js.map +1 -0
  213. package/dist/esm/whitelists/evm/eip7702-delegation.js +5 -0
  214. package/dist/esm/whitelists/evm/eip7702-delegation.js.map +1 -0
  215. package/dist/esm/whitelists/evm/index.js +6 -0
  216. package/dist/esm/whitelists/evm/index.js.map +1 -0
  217. package/dist/esm/whitelists/evm/permit2.js +15 -0
  218. package/dist/esm/whitelists/evm/permit2.js.map +1 -0
  219. package/dist/esm/whitelists/evm/weth.js +16 -0
  220. package/dist/esm/whitelists/evm/weth.js.map +1 -0
  221. package/dist/esm/whitelists/solana/index.js +3 -0
  222. package/dist/esm/whitelists/solana/index.js.map +1 -0
  223. package/dist/esm/whitelists/solana/intent-signature.js +22 -0
  224. package/dist/esm/whitelists/solana/intent-signature.js.map +1 -0
  225. package/dist/esm/whitelists/solana/programs.js +16 -0
  226. package/dist/esm/whitelists/solana/programs.js.map +1 -0
  227. package/dist/esm/whitelists/subscription-to-chain-id.js +32 -0
  228. package/dist/esm/whitelists/subscription-to-chain-id.js.map +1 -0
  229. package/dist/esm/whitelists/types.js +26 -0
  230. package/dist/esm/whitelists/types.js.map +1 -0
  231. package/dist/types/graylists/evm/token-permit-metadata.d.ts +11 -0
  232. package/dist/types/graylists/evm/token-permit-metadata.d.ts.map +1 -0
  233. package/dist/types/helpers/address.d.ts +13 -0
  234. package/dist/types/helpers/address.d.ts.map +1 -0
  235. package/dist/types/helpers/caveat-decoder.d.ts +13 -0
  236. package/dist/types/helpers/caveat-decoder.d.ts.map +1 -0
  237. package/dist/types/helpers/constants.d.ts +2 -0
  238. package/dist/types/helpers/constants.d.ts.map +1 -0
  239. package/dist/types/helpers/evm-action.d.ts +4 -0
  240. package/dist/types/helpers/evm-action.d.ts.map +1 -0
  241. package/dist/types/helpers/evm-calldata.d.ts +15 -0
  242. package/dist/types/helpers/evm-calldata.d.ts.map +1 -0
  243. package/dist/types/helpers/evm-intent-id-abi.d.ts +106 -0
  244. package/dist/types/helpers/evm-intent-id-abi.d.ts.map +1 -0
  245. package/dist/types/helpers/evm-intent-id.d.ts +3 -0
  246. package/dist/types/helpers/evm-intent-id.d.ts.map +1 -0
  247. package/dist/types/helpers/evm-token.d.ts +4 -0
  248. package/dist/types/helpers/evm-token.d.ts.map +1 -0
  249. package/dist/types/helpers/evm-trade-amounts.d.ts +16 -0
  250. package/dist/types/helpers/evm-trade-amounts.d.ts.map +1 -0
  251. package/dist/types/helpers/solana-instruction.d.ts +44 -0
  252. package/dist/types/helpers/solana-instruction.d.ts.map +1 -0
  253. package/dist/types/helpers/solana-intent-id.d.ts +3 -0
  254. package/dist/types/helpers/solana-intent-id.d.ts.map +1 -0
  255. package/dist/types/helpers/solana-transaction-decode.d.ts +18 -0
  256. package/dist/types/helpers/solana-transaction-decode.d.ts.map +1 -0
  257. package/dist/types/helpers/zod.d.ts +2 -0
  258. package/dist/types/helpers/zod.d.ts.map +1 -0
  259. package/dist/types/index.d.ts +4 -0
  260. package/dist/types/index.d.ts.map +1 -0
  261. package/dist/types/types/enums.d.ts +112 -0
  262. package/dist/types/types/enums.d.ts.map +1 -0
  263. package/dist/types/types/index.d.ts +5 -0
  264. package/dist/types/types/index.d.ts.map +1 -0
  265. package/dist/types/types/request.d.ts +134 -0
  266. package/dist/types/types/request.d.ts.map +1 -0
  267. package/dist/types/types/response.d.ts +1140 -0
  268. package/dist/types/types/response.d.ts.map +1 -0
  269. package/dist/types/types/validation.d.ts +216 -0
  270. package/dist/types/types/validation.d.ts.map +1 -0
  271. package/dist/types/validations/echo-fields.d.ts +3 -0
  272. package/dist/types/validations/echo-fields.d.ts.map +1 -0
  273. package/dist/types/validations/evm-caveats.d.ts +33 -0
  274. package/dist/types/validations/evm-caveats.d.ts.map +1 -0
  275. package/dist/types/validations/evm-op-budget.d.ts +4 -0
  276. package/dist/types/validations/evm-op-budget.d.ts.map +1 -0
  277. package/dist/types/validations/evm-op-gas-compensation.d.ts +3 -0
  278. package/dist/types/validations/evm-op-gas-compensation.d.ts.map +1 -0
  279. package/dist/types/validations/evm-op-hook.d.ts +3 -0
  280. package/dist/types/validations/evm-op-hook.d.ts.map +1 -0
  281. package/dist/types/validations/evm-op-wrap.d.ts +3 -0
  282. package/dist/types/validations/evm-op-wrap.d.ts.map +1 -0
  283. package/dist/types/validations/evm-permit.d.ts +4 -0
  284. package/dist/types/validations/evm-permit.d.ts.map +1 -0
  285. package/dist/types/validations/evm-permit2.d.ts +4 -0
  286. package/dist/types/validations/evm-permit2.d.ts.map +1 -0
  287. package/dist/types/validations/evm-required-actions.d.ts +4 -0
  288. package/dist/types/validations/evm-required-actions.d.ts.map +1 -0
  289. package/dist/types/validations/evm-sign712-metamask.d.ts +3 -0
  290. package/dist/types/validations/evm-sign712-metamask.d.ts.map +1 -0
  291. package/dist/types/validations/evm-sign712.d.ts +4 -0
  292. package/dist/types/validations/evm-sign712.d.ts.map +1 -0
  293. package/dist/types/validations/evm-sign7702.d.ts +3 -0
  294. package/dist/types/validations/evm-sign7702.d.ts.map +1 -0
  295. package/dist/types/validations/evm-transaction.d.ts +3 -0
  296. package/dist/types/validations/evm-transaction.d.ts.map +1 -0
  297. package/dist/types/validations/hooks-common.d.ts +3 -0
  298. package/dist/types/validations/hooks-common.d.ts.map +1 -0
  299. package/dist/types/validations/required-actions.d.ts +4 -0
  300. package/dist/types/validations/required-actions.d.ts.map +1 -0
  301. package/dist/types/validations/solana-hook.d.ts +4 -0
  302. package/dist/types/validations/solana-hook.d.ts.map +1 -0
  303. package/dist/types/validations/solana-op-budget.d.ts +5 -0
  304. package/dist/types/validations/solana-op-budget.d.ts.map +1 -0
  305. package/dist/types/validations/solana-op-wrap.d.ts +4 -0
  306. package/dist/types/validations/solana-op-wrap.d.ts.map +1 -0
  307. package/dist/types/validations/solana-required-actions.d.ts +4 -0
  308. package/dist/types/validations/solana-required-actions.d.ts.map +1 -0
  309. package/dist/types/validations/solana-sign.d.ts +4 -0
  310. package/dist/types/validations/solana-sign.d.ts.map +1 -0
  311. package/dist/types/validations/solana-transaction.d.ts +5 -0
  312. package/dist/types/validations/solana-transaction.d.ts.map +1 -0
  313. package/dist/types/validations/trade-grouping.d.ts +22 -0
  314. package/dist/types/validations/trade-grouping.d.ts.map +1 -0
  315. package/dist/types/validations/trade-intent-consistency.d.ts +3 -0
  316. package/dist/types/validations/trade-intent-consistency.d.ts.map +1 -0
  317. package/dist/types/validations/trades.d.ts +3 -0
  318. package/dist/types/validations/trades.d.ts.map +1 -0
  319. package/dist/types/validator.d.ts +3 -0
  320. package/dist/types/validator.d.ts.map +1 -0
  321. package/dist/types/whitelists/environment-config.d.ts +4 -0
  322. package/dist/types/whitelists/environment-config.d.ts.map +1 -0
  323. package/dist/types/whitelists/evm/caveat-enforcers.d.ts +6 -0
  324. package/dist/types/whitelists/evm/caveat-enforcers.d.ts.map +1 -0
  325. package/dist/types/whitelists/evm/delegation-manager.d.ts +3 -0
  326. package/dist/types/whitelists/evm/delegation-manager.d.ts.map +1 -0
  327. package/dist/types/whitelists/evm/eip7702-delegation.d.ts +3 -0
  328. package/dist/types/whitelists/evm/eip7702-delegation.d.ts.map +1 -0
  329. package/dist/types/whitelists/evm/index.d.ts +6 -0
  330. package/dist/types/whitelists/evm/index.d.ts.map +1 -0
  331. package/dist/types/whitelists/evm/permit2.d.ts +3 -0
  332. package/dist/types/whitelists/evm/permit2.d.ts.map +1 -0
  333. package/dist/types/whitelists/evm/weth.d.ts +3 -0
  334. package/dist/types/whitelists/evm/weth.d.ts.map +1 -0
  335. package/dist/types/whitelists/solana/index.d.ts +3 -0
  336. package/dist/types/whitelists/solana/index.d.ts.map +1 -0
  337. package/dist/types/whitelists/solana/intent-signature.d.ts +9 -0
  338. package/dist/types/whitelists/solana/intent-signature.d.ts.map +1 -0
  339. package/dist/types/whitelists/solana/programs.d.ts +9 -0
  340. package/dist/types/whitelists/solana/programs.d.ts.map +1 -0
  341. package/dist/types/whitelists/subscription-to-chain-id.d.ts +4 -0
  342. package/dist/types/whitelists/subscription-to-chain-id.d.ts.map +1 -0
  343. package/dist/types/whitelists/types.d.ts +18 -0
  344. package/dist/types/whitelists/types.d.ts.map +1 -0
  345. package/package.json +59 -0
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ // "Graylists" are hardcoded lookup tables for known values that are NOT
3
+ // security-critical whitelists. They are used for informational or
4
+ // best-effort validation. If a value is absent from a graylist, the
5
+ // corresponding check is skipped rather than producing a violation.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TOKEN_PERMIT_METADATA = void 0;
8
+ exports.getTokenPermitMetadata = getTokenPermitMetadata;
9
+ // Note: addresses in this map MUST be lowercased.
10
+ const enums_1 = require("../../types/enums");
11
+ exports.TOKEN_PERMIT_METADATA = {
12
+ // TODO: verify this list. At the moment it contains TEST values.
13
+ [enums_1.ChainId.Ethereum]: {
14
+ "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { name: "USD Coin", version: "2" }, // USDC
15
+ "0x6b175474e89094c44da98b954eedeac495271d0f": { name: "Dai Stablecoin", version: "1" }, // DAI
16
+ "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9": { name: "Aave Token", version: "1" }, // AAVE
17
+ },
18
+ [enums_1.ChainId.Arbitrum]: {
19
+ "0xaf88d065e77c8cc2239327c5edb3a432268e5831": { name: "USD Coin", version: "2" }, // USDC
20
+ },
21
+ };
22
+ function getTokenPermitMetadata(realChainId, tokenAddress) {
23
+ const chain = exports.TOKEN_PERMIT_METADATA[realChainId];
24
+ if (!chain)
25
+ return undefined;
26
+ return chain[tokenAddress.toLowerCase()];
27
+ }
28
+ //# sourceMappingURL=token-permit-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-permit-metadata.js","sourceRoot":"","sources":["../../../../src/graylists/evm/token-permit-metadata.ts"],"names":[],"mappings":";AAAA,wEAAwE;AACxE,mEAAmE;AACnE,oEAAoE;AACpE,oEAAoE;;;AA+BpE,wDAOC;AAtBD,kDAAkD;AAClD,6CAA4C;AAE/B,QAAA,qBAAqB,GAA2B;IACzD,iEAAiE;IACjE,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO;QACzF,4CAA4C,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM;QAC9F,4CAA4C,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO;KAC9F;IACD,CAAC,eAAO,CAAC,QAAQ,CAAC,EAAE;QAChB,4CAA4C,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,OAAO;KAC5F;CACJ,CAAC;AAEF,SAAgB,sBAAsB,CAClC,WAAoB,EACpB,YAAoB;IAEpB,MAAM,KAAK,GAAG,6BAAqB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AddressFormat = exports.TRON_NATIVE_ADDRESS = void 0;
7
+ exports.getAddressFormat = getAddressFormat;
8
+ exports.isTronAddress = isTronAddress;
9
+ exports.tronAddressToEvmHex = tronAddressToEvmHex;
10
+ exports.normalizeAddress = normalizeAddress;
11
+ exports.addressEquals = addressEquals;
12
+ exports.isNativeToken = isNativeToken;
13
+ const viem_1 = require("viem");
14
+ const bs58_1 = __importDefault(require("bs58"));
15
+ const enums_1 = require("../types/enums");
16
+ const solana_1 = require("../whitelists/solana");
17
+ // Tron-specific addresses (Base58Check format)
18
+ exports.TRON_NATIVE_ADDRESS = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
19
+ var AddressFormat;
20
+ (function (AddressFormat) {
21
+ AddressFormat[AddressFormat["EVM"] = 0] = "EVM";
22
+ AddressFormat[AddressFormat["Tron"] = 1] = "Tron";
23
+ AddressFormat[AddressFormat["Solana"] = 2] = "Solana";
24
+ })(AddressFormat || (exports.AddressFormat = AddressFormat = {}));
25
+ function getAddressFormat(chainId) {
26
+ if (chainId === enums_1.ChainId.Tron)
27
+ return AddressFormat.Tron;
28
+ if (chainId === enums_1.ChainId.Solana)
29
+ return AddressFormat.Solana;
30
+ return AddressFormat.EVM;
31
+ }
32
+ function isTronAddress(address) {
33
+ if (!address)
34
+ return false;
35
+ if (address.startsWith("0x"))
36
+ return false;
37
+ if (!address.startsWith("T"))
38
+ return false;
39
+ if (address.length !== 34)
40
+ return false;
41
+ // AI: TODO: add Base58Check checksum verification if needed
42
+ return true;
43
+ }
44
+ // Converts Tron Base58Check address to EVM hex format (0x...)
45
+ // Tron address = 0x41 (1 byte prefix) + 20 bytes address + 4 bytes checksum
46
+ // We extract the 20-byte address part and return as 0x-prefixed hex
47
+ function tronAddressToEvmHex(tronAddress) {
48
+ const decoded = bs58_1.default.decode(tronAddress);
49
+ // Skip first byte (0x41 prefix) and last 4 bytes (checksum)
50
+ const addressBytes = decoded.slice(1, 21);
51
+ return (0, viem_1.bytesToHex)(addressBytes);
52
+ }
53
+ // Normalizes address for comparison based on chain format
54
+ function normalizeAddress(chainId, address) {
55
+ const format = getAddressFormat(chainId);
56
+ if (format === AddressFormat.Tron || format === AddressFormat.Solana) {
57
+ return address; // case-sensitive
58
+ }
59
+ return address.toLowerCase(); // EVM: case-insensitive
60
+ }
61
+ // Compares two addresses with chain-aware normalization
62
+ function addressEquals(chainId, a, b) {
63
+ return normalizeAddress(chainId, a) === normalizeAddress(chainId, b);
64
+ }
65
+ // Checks if address is native token for the given chain
66
+ function isNativeToken(address, chainId) {
67
+ if (chainId === enums_1.ChainId.Tron) {
68
+ return address === exports.TRON_NATIVE_ADDRESS;
69
+ }
70
+ if (chainId === enums_1.ChainId.Solana) {
71
+ return address === solana_1.SYSTEM_PROGRAM;
72
+ }
73
+ return address.toLowerCase() === viem_1.zeroAddress;
74
+ }
75
+ //# sourceMappingURL=address.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/helpers/address.ts"],"names":[],"mappings":";;;;;;AAcA,4CAIC;AAED,sCAOC;AAKD,kDAKC;AAGD,4CAMC;AAGD,sCAEC;AAGD,sCAQC;AA9DD,+BAA+C;AAC/C,gDAAwB;AACxB,0CAAyC;AACzC,iDAAsD;AAEtD,+CAA+C;AAClC,QAAA,mBAAmB,GAAG,oCAAoC,CAAC;AAExE,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,+CAAG,CAAA;IACH,iDAAI,CAAA;IACJ,qDAAM,CAAA;AACV,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,SAAgB,gBAAgB,CAAC,OAAe;IAC5C,IAAI,OAAO,KAAK,eAAO,CAAC,IAAI;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IACxD,IAAI,OAAO,KAAK,eAAO,CAAC,MAAM;QAAE,OAAO,aAAa,CAAC,MAAM,CAAC;IAC5D,OAAO,aAAa,CAAC,GAAG,CAAC;AAC7B,CAAC;AAED,SAAgB,aAAa,CAAC,OAAe;IACzC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IACxC,4DAA4D;IAC5D,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,8DAA8D;AAC9D,4EAA4E;AAC5E,oEAAoE;AACpE,SAAgB,mBAAmB,CAAC,WAAmB;IACnD,MAAM,OAAO,GAAG,cAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACzC,4DAA4D;IAC5D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,OAAO,IAAA,iBAAU,EAAC,YAAY,CAAC,CAAC;AACpC,CAAC;AAED,0DAA0D;AAC1D,SAAgB,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI,IAAI,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;QACnE,OAAO,OAAO,CAAC,CAAC,iBAAiB;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,wBAAwB;AAC1D,CAAC;AAED,wDAAwD;AACxD,SAAgB,aAAa,CAAC,OAAe,EAAE,CAAS,EAAE,CAAS;IAC/D,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,wDAAwD;AACxD,SAAgB,aAAa,CAAC,OAAe,EAAE,OAAgB;IAC3D,IAAI,OAAO,KAAK,eAAO,CAAC,IAAI,EAAE,CAAC;QAC3B,OAAO,OAAO,KAAK,2BAAmB,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,KAAK,eAAO,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,OAAO,KAAK,uBAAc,CAAC;IACtC,CAAC;IACD,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,kBAAW,CAAC;AACjD,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeExactExecution = decodeExactExecution;
4
+ exports.decodeExactExecutionBatch = decodeExactExecutionBatch;
5
+ exports.decodeTimestampEnforcer = decodeTimestampEnforcer;
6
+ const viem_1 = require("viem");
7
+ // ExactExecutionEnforcer uses packed encoding:
8
+ // bytes [0:20] — address target
9
+ // bytes [20:52] — uint256 value
10
+ // bytes [52:] — bytes callData
11
+ // See: https://docs.metamask.io/smart-accounts-kit/reference/delegation/caveats#exactexecution
12
+ function decodeExactExecution(terms) {
13
+ const hex = strip0x(terms);
14
+ if (hex.length < 104) { // 52 bytes minimum (20 + 32 + 0)
15
+ // This exception will be caught and reported as a violation in the validation logic
16
+ throw new Error(`ExactExecution terms too short: ${hex.length / 2} bytes`);
17
+ }
18
+ const to = "0x" + hex.slice(0, 40);
19
+ const value = BigInt("0x" + hex.slice(40, 104)).toString();
20
+ const data = "0x" + hex.slice(104);
21
+ return { to, value, data };
22
+ }
23
+ // ExactExecutionBatchEnforcer uses abi.encode(Execution[]):
24
+ // Execution = (address target, uint256 value, bytes callData)
25
+ // See: https://docs.metamask.io/smart-accounts-kit/reference/delegation/caveats#exactexecutionbatch
26
+ function decodeExactExecutionBatch(terms) {
27
+ const decoded = (0, viem_1.decodeAbiParameters)([
28
+ {
29
+ type: "tuple[]",
30
+ components: [
31
+ { name: "target", type: "address" },
32
+ { name: "value", type: "uint256" },
33
+ { name: "callData", type: "bytes" },
34
+ ],
35
+ },
36
+ ], terms);
37
+ const executions = decoded[0];
38
+ return executions.map(e => ({
39
+ to: e.target.toLowerCase(),
40
+ value: e.value.toString(),
41
+ data: e.callData,
42
+ }));
43
+ }
44
+ // TimestampEnforcer uses packed encoding:
45
+ // bytes [0:16] — uint128 afterThreshold
46
+ // bytes [16:32] — uint128 beforeThreshold
47
+ // See: https://docs.metamask.io/smart-accounts-kit/reference/delegation/caveats#timestamp
48
+ function decodeTimestampEnforcer(terms) {
49
+ const hex = strip0x(terms);
50
+ if (hex.length < 64) { // 32 bytes minimum (16 + 16)
51
+ throw new Error(`TimestampEnforcer terms too short: ${hex.length / 2} bytes`);
52
+ }
53
+ const afterThreshold = BigInt("0x" + hex.slice(0, 32));
54
+ const beforeThreshold = BigInt("0x" + hex.slice(32, 64));
55
+ return { afterThreshold, beforeThreshold };
56
+ }
57
+ function strip0x(hex) {
58
+ return hex.startsWith("0x") ? hex.slice(2) : hex;
59
+ }
60
+ //# sourceMappingURL=caveat-decoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"caveat-decoder.js","sourceRoot":"","sources":["../../../src/helpers/caveat-decoder.ts"],"names":[],"mappings":";;AAaA,oDAaC;AAKD,8DAsBC;AAWD,0DAWC;AA3ED,+BAA2C;AAQ3C,+CAA+C;AAC/C,mCAAmC;AACnC,kCAAkC;AAClC,mCAAmC;AACnC,+FAA+F;AAC/F,SAAgB,oBAAoB,CAAC,KAAa;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3B,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,iCAAiC;QACrD,oFAAoF;QACpF,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEnC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,4DAA4D;AAC5D,gEAAgE;AAChE,oGAAoG;AACpG,SAAgB,yBAAyB,CAAC,KAAa;IACnD,MAAM,OAAO,GAAG,IAAA,0BAAmB,EAC/B;QACI;YACI,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;gBACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;aACtC;SACJ;KACJ,EACD,KAAsB,CACzB,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAmE,CAAC;IAEhG,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE;QAC1B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;QACzB,IAAI,EAAE,CAAC,CAAC,QAAQ;KACnB,CAAC,CAAC,CAAC;AACR,CAAC;AAOD,0CAA0C;AAC1C,2CAA2C;AAC3C,4CAA4C;AAC5C,0FAA0F;AAC1F,SAAgB,uBAAuB,CAAC,KAAa;IACjD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAE3B,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,6BAA6B;QAChD,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAEzD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IACxB,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACrD,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_U64 = void 0;
4
+ // Solana max u64 value (used for "unlimited" approve amounts)
5
+ exports.MAX_U64 = (1n << 64n) - 1n;
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/helpers/constants.ts"],"names":[],"mappings":";;;AAAA,8DAA8D;AACjD,QAAA,OAAO,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.actionUsesTransactionCalls = actionUsesTransactionCalls;
4
+ exports.getTransactionCalls = getTransactionCalls;
5
+ const types_1 = require("../types");
6
+ // Transaction and Sign712MetaMask actions carry transactionCalls;
7
+ // Sign712 (Permit/Permit2) and Sign7702Authorization do not.
8
+ function actionUsesTransactionCalls(action) {
9
+ return action.type === types_1.EvmActionKind.Transaction
10
+ || action.type === types_1.EvmActionKind.Sign712MetaMask;
11
+ }
12
+ // For Transaction-type actions (non-AA), the call is in action.data directly.
13
+ // For Sign712MetaMask-type actions (AA), the calls are in details.transactionCalls.
14
+ function getTransactionCalls(action) {
15
+ if (action.type === types_1.EvmActionKind.Transaction) {
16
+ return [action.data];
17
+ }
18
+ return action.details?.transactionCalls ?? [];
19
+ }
20
+ //# sourceMappingURL=evm-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-action.js","sourceRoot":"","sources":["../../../src/helpers/evm-action.ts"],"names":[],"mappings":";;AAIA,gEAGC;AAID,kDAKC;AAhBD,oCAAgF;AAEhF,kEAAkE;AAClE,6DAA6D;AAC7D,SAAgB,0BAA0B,CAAC,MAAyB;IAChE,OAAO,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,WAAW;WACzC,MAAM,CAAC,IAAI,KAAK,qBAAa,CAAC,eAAe,CAAC;AACzD,CAAC;AAED,8EAA8E;AAC9E,oFAAoF;AACpF,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"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRANSFER_SELECTOR = exports.DEPOSIT_SELECTOR = exports.APPROVE_SELECTOR = void 0;
4
+ exports.decodeApproveCalldata = decodeApproveCalldata;
5
+ exports.isDepositCalldata = isDepositCalldata;
6
+ exports.decodeTransferCalldata = decodeTransferCalldata;
7
+ const viem_1 = require("viem");
8
+ exports.APPROVE_SELECTOR = "0x095ea7b3";
9
+ exports.DEPOSIT_SELECTOR = "0xd0e30db0";
10
+ exports.TRANSFER_SELECTOR = "0xa9059cbb";
11
+ function decodeApproveCalldata(data) {
12
+ if (!data.toLowerCase().startsWith(exports.APPROVE_SELECTOR)) {
13
+ throw new Error(`expected approve selector ${exports.APPROVE_SELECTOR}, got ${data.slice(0, 10)}`);
14
+ }
15
+ const decoded = (0, viem_1.decodeFunctionData)({
16
+ abi: viem_1.erc20Abi,
17
+ data: data,
18
+ });
19
+ if (decoded.functionName !== "approve") {
20
+ throw new Error(`unexpected function: ${decoded.functionName}`);
21
+ }
22
+ const [spender, amount] = decoded.args;
23
+ return { spender: spender.toLowerCase(), amount };
24
+ }
25
+ function isDepositCalldata(data) {
26
+ const normalized = data.toLowerCase();
27
+ return (normalized === exports.DEPOSIT_SELECTOR || // only selector
28
+ normalized === exports.DEPOSIT_SELECTOR + "0".repeat(56) // selector + padding
29
+ );
30
+ }
31
+ function decodeTransferCalldata(data) {
32
+ if (!data.toLowerCase().startsWith(exports.TRANSFER_SELECTOR)) {
33
+ throw new Error(`expected transfer selector ${exports.TRANSFER_SELECTOR}, got ${data.slice(0, 10)}`);
34
+ }
35
+ const decoded = (0, viem_1.decodeFunctionData)({
36
+ abi: viem_1.erc20Abi,
37
+ data: data,
38
+ });
39
+ if (decoded.functionName !== "transfer") {
40
+ throw new Error(`unexpected function: ${decoded.functionName}`);
41
+ }
42
+ const [to, amount] = decoded.args;
43
+ return { to: to.toLowerCase(), amount };
44
+ }
45
+ //# sourceMappingURL=evm-calldata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-calldata.js","sourceRoot":"","sources":["../../../src/helpers/evm-calldata.ts"],"names":[],"mappings":";;;AAgBA,sDAkBC;AAED,8CAMC;AAED,wDAkBC;AA9DD,+BAAoD;AAEvC,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAChC,QAAA,iBAAiB,GAAG,YAAY,CAAC;AAY9C,SAAgB,qBAAqB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,wBAAgB,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACX,6BAA6B,wBAAgB,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAC5E,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,yBAAkB,EAAC;QAC/B,GAAG,EAAE,eAAQ;QACb,IAAI,EAAE,IAAqB;KAC9B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAY;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CACH,UAAU,KAAK,wBAAgB,IAAI,gBAAgB;QACnD,UAAU,KAAK,wBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,qBAAqB;KACzE,CAAC;AACN,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAY;IAC/C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,yBAAiB,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACX,8BAA8B,yBAAiB,SAAS,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAC9E,CAAC;IACN,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,yBAAkB,EAAC;QAC/B,GAAG,EAAE,eAAQ;QACb,IAAI,EAAE,IAAqB;KAC9B,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAClC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ // ABI parameter definition for DeBridgeIntentManager.submitIntent(_intent)
3
+ // Extracted from the on-chain contract ABI — used for encoding the intent
4
+ // struct before hashing to compute intentId.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SUBMIT_INTENT_ABI_PARAMS = void 0;
7
+ const allowedAddressTuple = {
8
+ type: "tuple[]",
9
+ components: [
10
+ { name: "allowedAddress", type: "bytes" },
11
+ { name: "chains", type: "uint32[]" },
12
+ { name: "isAnyChain", type: "bool" },
13
+ ],
14
+ };
15
+ exports.SUBMIT_INTENT_ABI_PARAMS = [
16
+ {
17
+ type: "tuple",
18
+ components: [
19
+ { name: "intentChainId", type: "uint32" },
20
+ { name: "intentOwner", type: "address" },
21
+ { ...allowedAddressTuple, name: "receiverDetails" },
22
+ {
23
+ type: "tuple[]",
24
+ name: "inputToken",
25
+ components: [
26
+ { name: "token", type: "address" },
27
+ { name: "minPartialAmount", type: "uint256" },
28
+ { name: "maxPartialAmount", type: "uint256" },
29
+ { name: "budget", type: "uint256" },
30
+ ],
31
+ },
32
+ {
33
+ type: "tuple[]",
34
+ name: "giveToken",
35
+ components: [
36
+ { name: "inputToken", type: "address" },
37
+ { name: "giveToken", type: "address" },
38
+ { name: "numerator", type: "uint256" },
39
+ { name: "denominator", type: "uint8" },
40
+ ],
41
+ },
42
+ {
43
+ type: "tuple[]",
44
+ name: "takeToken",
45
+ components: [
46
+ { name: "giveToken", type: "address" },
47
+ { name: "takeTokenChain", type: "uint32" },
48
+ { name: "takeToken", type: "bytes" },
49
+ { name: "numerator", type: "uint256" },
50
+ { name: "denominator", type: "uint8" },
51
+ ],
52
+ },
53
+ { name: "expirationTimestamp", type: "uint64" },
54
+ { name: "intentTimestamp", type: "uint64" },
55
+ { name: "srcAllowedSender", type: "address[]" },
56
+ { name: "executionMetadata", type: "bytes" },
57
+ { name: "isAnyDlnMetadataAllowed", type: "bool" },
58
+ { name: "dlnMetadata", type: "bytes" },
59
+ { name: "externalCallHash", type: "bytes32" },
60
+ { name: "combinedInteractions", type: "bytes" },
61
+ { name: "allowedCancelBeneficiary", type: "address" },
62
+ { ...allowedAddressTuple, name: "dstAuthorityAddress" },
63
+ { name: "intentAuthority", type: "address" },
64
+ ],
65
+ },
66
+ ];
67
+ //# sourceMappingURL=evm-intent-id-abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-intent-id-abi.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id-abi.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,6CAA6C;;;AAE7C,MAAM,mBAAmB,GAAG;IACxB,IAAI,EAAE,SAAkB;IACxB,UAAU,EAAE;QACR,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE;QACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE;QACpC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;KACvC;CACJ,CAAC;AAEW,QAAA,wBAAwB,GAAG;IACpC;QACI,IAAI,EAAE,OAAgB;QACtB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,EAAE;YACnD;gBACI,IAAI,EAAE,SAAkB;gBACxB,IAAI,EAAE,YAAY;gBAClB,UAAU,EAAE;oBACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC7C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;iBACtC;aACJ;YACD;gBACI,IAAI,EAAE,SAAkB;gBACxB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE;oBACR,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;oBACvC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;iBACzC;aACJ;YACD;gBACI,IAAI,EAAE,SAAkB;gBACxB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE;oBACR,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC1C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;oBACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;oBACtC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;iBACzC;aACJ;YACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/C,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC3C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,EAAE;YAC/C,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;YAC5C,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,EAAE;YACjD,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;YACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC7C,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,EAAE;YAC/C,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,SAAS,EAAE;YACrD,EAAE,GAAG,mBAAmB,EAAE,IAAI,EAAE,qBAAqB,EAAE;YACvD,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;SAC/C;KACJ;CACK,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.computeIntentId = computeIntentId;
4
+ const viem_1 = require("viem");
5
+ const evm_intent_id_abi_1 = require("./evm-intent-id-abi");
6
+ function computeIntentId(intent) {
7
+ const struct = convertToIntentStruct(intent);
8
+ const encoded = (0, viem_1.encodeAbiParameters)(evm_intent_id_abi_1.SUBMIT_INTENT_ABI_PARAMS, [struct]);
9
+ return (0, viem_1.keccak256)(encoded);
10
+ }
11
+ function convertToIntentStruct(intent) {
12
+ return {
13
+ intentChainId: intent.intentChainId,
14
+ intentOwner: intent.intentOwner,
15
+ receiverDetails: convertAllowedAddresses(intent.receiverDetails),
16
+ inputToken: convertInputTokens(intent.inputToken),
17
+ giveToken: convertGiveTokens(intent.giveToken),
18
+ takeToken: convertTakeTokens(intent.takeToken),
19
+ expirationTimestamp: BigInt(intent.expirationTimestamp),
20
+ intentTimestamp: BigInt(intent.intentTimestamp),
21
+ srcAllowedSender: (intent.srcAllowedSender ?? []),
22
+ executionMetadata: (intent.executionMetadata ?? viem_1.zeroHash),
23
+ isAnyDlnMetadataAllowed: true,
24
+ dlnMetadata: (intent.dlnMetadata ?? "0x"),
25
+ externalCallHash: (intent.externalCallHash ?? viem_1.zeroHash),
26
+ combinedInteractions: "0x",
27
+ allowedCancelBeneficiary: (intent.allowedCancelBeneficiary ?? viem_1.zeroAddress),
28
+ dstAuthorityAddress: convertAllowedAddresses(intent.dstAuthorityAddress),
29
+ intentAuthority: intent.intentAuthority,
30
+ };
31
+ }
32
+ function convertAllowedAddresses(details) {
33
+ if (!details)
34
+ return [];
35
+ return details.map(d => ({
36
+ allowedAddress: d.address,
37
+ chains: d.destinationChainIds === "any" ? [] : d.destinationChainIds,
38
+ isAnyChain: d.destinationChainIds === "any",
39
+ }));
40
+ }
41
+ function convertInputTokens(tokens) {
42
+ if (!tokens)
43
+ return [];
44
+ return tokens.map(t => ({
45
+ token: t.address,
46
+ minPartialAmount: BigInt(t.minPartialAmount),
47
+ maxPartialAmount: BigInt(t.maxPartialAmount),
48
+ budget: BigInt(t.constraintBudget),
49
+ }));
50
+ }
51
+ function convertGiveTokens(tokens) {
52
+ if (!tokens)
53
+ return [];
54
+ return tokens.map(t => ({
55
+ inputToken: t.inputTokenAddress,
56
+ giveToken: t.giveTokenAddress,
57
+ numerator: BigInt(t.numerator),
58
+ denominator: Number(t.denominator),
59
+ }));
60
+ }
61
+ function convertTakeTokens(tokens) {
62
+ return tokens.map(t => ({
63
+ giveToken: t.fromTokenAddress,
64
+ takeTokenChain: t.takeTokenChainId,
65
+ takeToken: t.takeTokenAddress,
66
+ numerator: BigInt(t.numerator),
67
+ denominator: Number(t.denominator),
68
+ }));
69
+ }
70
+ //# sourceMappingURL=evm-intent-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-intent-id.js","sourceRoot":"","sources":["../../../src/helpers/evm-intent-id.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNativeToken = void 0;
4
+ exports.resolveWrappedTokenAddress = resolveWrappedTokenAddress;
5
+ const evm_1 = require("../whitelists/evm");
6
+ const programs_1 = require("../whitelists/solana/programs");
7
+ const enums_1 = require("../types/enums");
8
+ const address_1 = require("./address");
9
+ // Re-export for convenience — callers that only need isNativeToken
10
+ // don't have to know about address.ts
11
+ var address_2 = require("./address");
12
+ Object.defineProperty(exports, "isNativeToken", { enumerable: true, get: function () { return address_2.isNativeToken; } });
13
+ // Returns the wrapped token address for native tokens, or the token address as-is for non-native.
14
+ // For EVM native (0x000...0) → WETH address for the given chain.
15
+ // For Tron native (T9yD14N...) → WTRX (0x891... in EVM hex).
16
+ // For Solana native (111...1) → WSOL (SPL_NATIVE_MINT).
17
+ // For non-native tokens → the address unchanged.
18
+ function resolveWrappedTokenAddress(tokenAddress, realChainId) {
19
+ if (!(0, address_1.isNativeToken)(tokenAddress, realChainId)) {
20
+ return tokenAddress;
21
+ }
22
+ if (realChainId === enums_1.ChainId.Solana) {
23
+ return programs_1.SPL_NATIVE_MINT;
24
+ }
25
+ const wethAddresses = evm_1.WETH_CONTRACTS[realChainId] ?? evm_1.WETH_CONTRACTS[enums_1.ChainId.Wildcard];
26
+ if (!wethAddresses || wethAddresses.length === 0)
27
+ return undefined;
28
+ return wethAddresses[0];
29
+ }
30
+ //# sourceMappingURL=evm-token.js.map
@@ -0,0 +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"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sumTradeAmounts = sumTradeAmounts;
4
+ const types_1 = require("../types");
5
+ const address_1 = require("./address");
6
+ const evm_token_1 = require("./evm-token");
7
+ // Sums srcChainTokenInAmount for trades matching a given token address.
8
+ // Returns skip=true if any matching trade has max/auto amount.
9
+ // Returns violations if any matching trade has an invalid (non-numeric) amount.
10
+ function sumTradeAmounts(trades, tokenAddress, realChainId) {
11
+ let sum = 0n;
12
+ // Resolve native → WETH so Budget for WETH matches trades with native input (and vice versa)
13
+ const resolvedToken = (0, evm_token_1.resolveWrappedTokenAddress)(tokenAddress, realChainId) ?? tokenAddress;
14
+ const normalized = (0, address_1.normalizeAddress)(realChainId, resolvedToken);
15
+ for (let i = 0; i < trades.length; i++) {
16
+ const trade = trades[i];
17
+ const resolvedTradeToken = (0, evm_token_1.resolveWrappedTokenAddress)(trade.srcChainTokenIn, realChainId);
18
+ const normalizedTradeToken = (0, address_1.normalizeAddress)(realChainId, resolvedTradeToken ?? trade.srcChainTokenIn);
19
+ if (normalizedTradeToken !== normalized) {
20
+ continue;
21
+ }
22
+ const amount = trade.srcChainTokenInAmount;
23
+ if (amount === types_1.SpecialAmount.Max || amount === types_1.SpecialAmount.Auto) {
24
+ return { skip: true };
25
+ }
26
+ try {
27
+ sum += BigInt(amount);
28
+ }
29
+ catch {
30
+ return {
31
+ violations: [{
32
+ code: types_1.ViolationCode.TradeAmountInvalid,
33
+ message: `trade srcChainTokenInAmount is not a valid number`,
34
+ path: `request.trades[${i}].srcChainTokenInAmount`,
35
+ actual: amount,
36
+ }],
37
+ };
38
+ }
39
+ }
40
+ return { sum };
41
+ }
42
+ //# sourceMappingURL=evm-trade-amounts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-trade-amounts.js","sourceRoot":"","sources":["../../../src/helpers/evm-trade-amounts.ts"],"names":[],"mappings":";;AAkBA,0CAuCC;AAzDD,oCAMkB;AAClB,uCAA6C;AAC7C,2CAAyD;AAOzD,wEAAwE;AACxE,+DAA+D;AAC/D,gFAAgF;AAChF,SAAgB,eAAe,CAC3B,MAAsB,EACtB,YAAoB,EACpB,WAAoB;IAEpB,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,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,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC;QAC3C,IAAI,MAAM,KAAK,qBAAa,CAAC,GAAG,IAAI,MAAM,KAAK,qBAAa,CAAC,IAAI,EAAE,CAAC;YAChE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC;YACD,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACL,OAAO;gBACH,UAAU,EAAE,CAAC;wBACT,IAAI,EAAE,qBAAa,CAAC,kBAAkB;wBACtC,OAAO,EAAE,mDAAmD;wBAC5D,IAAI,EAAE,kBAAkB,CAAC,yBAAyB;wBAClD,MAAM,EAAE,MAAM;qBACjB,CAAC;aACL,CAAC;QACN,CAAC;IACL,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,CAAC;AACnB,CAAC"}