@eco-incorp/sauce 0.99.4 → 0.99.6

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 (1343) hide show
  1. package/README.md +105 -63
  2. package/actions/action-program.schema.json +1810 -0
  3. package/actions/dist/abis.d.ts +167 -0
  4. package/actions/dist/abis.d.ts.map +1 -0
  5. package/actions/dist/abis.js +215 -0
  6. package/actions/dist/compile.d.ts +15 -8
  7. package/actions/dist/compile.d.ts.map +1 -1
  8. package/actions/dist/compile.js +11 -33
  9. package/actions/dist/compose.d.ts +46 -0
  10. package/actions/dist/compose.d.ts.map +1 -0
  11. package/actions/dist/compose.js +118 -0
  12. package/actions/dist/emit.d.ts +0 -35
  13. package/actions/dist/emit.d.ts.map +1 -1
  14. package/actions/dist/emit.js +15 -46
  15. package/actions/dist/index.d.ts +11 -8
  16. package/actions/dist/index.d.ts.map +1 -1
  17. package/actions/dist/index.js +6 -4
  18. package/actions/dist/program.d.ts +23 -0
  19. package/actions/dist/program.d.ts.map +1 -0
  20. package/actions/dist/program.js +358 -0
  21. package/actions/dist/registry.d.ts +37 -0
  22. package/actions/dist/registry.d.ts.map +1 -0
  23. package/actions/dist/registry.js +36 -0
  24. package/actions/dist/schema.d.ts +6 -0
  25. package/actions/dist/schema.d.ts.map +1 -0
  26. package/actions/dist/schema.js +166 -0
  27. package/actions/dist/semantics.d.ts +18 -0
  28. package/actions/dist/semantics.d.ts.map +1 -0
  29. package/actions/dist/semantics.js +164 -0
  30. package/actions/dist/spec.d.ts +97 -0
  31. package/actions/dist/spec.d.ts.map +1 -0
  32. package/actions/dist/spec.js +323 -0
  33. package/actions/dist/split-swap.d.ts +35 -0
  34. package/actions/dist/split-swap.d.ts.map +1 -0
  35. package/actions/dist/split-swap.js +175 -0
  36. package/actions/dist/to-quote.d.ts +32 -56
  37. package/actions/dist/to-quote.d.ts.map +1 -1
  38. package/actions/dist/to-quote.js +134 -141
  39. package/actions/dist/to-sauce.d.ts +48 -32
  40. package/actions/dist/to-sauce.d.ts.map +1 -1
  41. package/actions/dist/to-sauce.js +691 -753
  42. package/actions/dist/types.d.ts +227 -335
  43. package/actions/dist/types.d.ts.map +1 -1
  44. package/actions/dist/types.js +12 -3
  45. package/dev-tools/README.md +9 -9
  46. package/dev-tools/artifacts/ISauceRouter.json +1 -1
  47. package/dev-tools/artifacts/Router.json +1 -1
  48. package/dev-tools/scripts/start-fork.sh +1 -1
  49. package/dev-tools/scripts/start-local.sh +5 -1
  50. package/dev-tools/src/svm-local.ts +23 -13
  51. package/docs/README.md +45 -34
  52. package/docs/api/README.md +37 -29
  53. package/docs/api/compiler.md +116 -55
  54. package/docs/api/coverage.md +99 -48
  55. package/docs/api/routes.md +51 -22
  56. package/docs/concepts/architecture.md +85 -116
  57. package/docs/concepts/saucescript.md +46 -25
  58. package/docs/examples/README.md +18 -10
  59. package/docs/examples/action-program.ts +75 -0
  60. package/docs/examples/cross-chain-cascade.sauce.ts +21 -0
  61. package/docs/examples/cross-chain-cascade.ts +43 -0
  62. package/docs/examples/cross-chain-intent.sauce.ts +23 -0
  63. package/docs/examples/cross-chain-intent.ts +49 -0
  64. package/docs/examples/first-intent.ts +7 -10
  65. package/docs/examples/protocol-approval.ts +3 -7
  66. package/docs/guides/actions.md +395 -0
  67. package/docs/guides/builders-and-actions.md +34 -37
  68. package/docs/guides/compiling.md +99 -98
  69. package/docs/guides/intents.md +273 -25
  70. package/docs/guides/nested-intents.md +165 -5
  71. package/docs/guides/protocols-and-tokens.md +36 -8
  72. package/docs/guides/quick-start.md +51 -22
  73. package/docs/guides/solana.md +38 -40
  74. package/docs/guides/verification.md +70 -31
  75. package/package.json +7 -2
  76. package/sdk/dist/artifacts/ISauceRouter.json +1 -1
  77. package/sdk/dist/artifacts/Router.json +1 -1
  78. package/sdk/dist/artifacts/V12Deployments.json +23 -22
  79. package/sdk/dist/artifacts/V12EngineGate.json +2 -2
  80. package/sdk/dist/artifacts/V12Kitchen.json +1 -1
  81. package/sdk/dist/artifacts/V12Pot.json +1 -1
  82. package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
  83. package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
  84. package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
  85. package/sdk/dist/bytes.d.ts +10 -0
  86. package/sdk/dist/bytes.d.ts.map +1 -0
  87. package/sdk/dist/bytes.js +31 -0
  88. package/sdk/dist/bytes.js.map +1 -0
  89. package/sdk/dist/chains/canonical.d.ts +7 -1
  90. package/sdk/dist/chains/canonical.d.ts.map +1 -1
  91. package/sdk/dist/chains/canonical.js +6 -2
  92. package/sdk/dist/chains/canonical.js.map +1 -1
  93. package/sdk/dist/chains/index.d.ts +16 -2
  94. package/sdk/dist/chains/index.d.ts.map +1 -1
  95. package/sdk/dist/chains/index.js +51 -34
  96. package/sdk/dist/chains/index.js.map +1 -1
  97. package/sdk/dist/compact-arguments.d.ts +4 -1
  98. package/sdk/dist/compact-arguments.d.ts.map +1 -1
  99. package/sdk/dist/compact-arguments.js +25 -4
  100. package/sdk/dist/compact-arguments.js.map +1 -1
  101. package/sdk/dist/compiler.d.ts +13 -1
  102. package/sdk/dist/compiler.d.ts.map +1 -1
  103. package/sdk/dist/compiler.js +5 -6
  104. package/sdk/dist/compiler.js.map +1 -1
  105. package/sdk/dist/core/types.d.ts +18 -2
  106. package/sdk/dist/core/types.d.ts.map +1 -1
  107. package/sdk/dist/deployments/pot.d.ts +39 -0
  108. package/sdk/dist/deployments/pot.d.ts.map +1 -0
  109. package/sdk/dist/deployments/pot.js +48 -0
  110. package/sdk/dist/deployments/pot.js.map +1 -0
  111. package/sdk/dist/deployments/v12-addresses.d.ts +1 -4
  112. package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
  113. package/sdk/dist/deployments/v12-addresses.js +7 -21
  114. package/sdk/dist/deployments/v12-addresses.js.map +1 -1
  115. package/sdk/dist/deposit/index.d.ts +5 -5
  116. package/sdk/dist/deposit/index.d.ts.map +1 -1
  117. package/sdk/dist/deposit/index.js +1 -1
  118. package/sdk/dist/deposit/index.js.map +1 -1
  119. package/sdk/dist/deposit/params.d.ts +3 -2
  120. package/sdk/dist/deposit/params.d.ts.map +1 -1
  121. package/sdk/dist/deposit/params.js +40 -3
  122. package/sdk/dist/deposit/params.js.map +1 -1
  123. package/sdk/dist/deposit/source.d.ts +0 -19
  124. package/sdk/dist/deposit/source.d.ts.map +1 -1
  125. package/sdk/dist/deposit/source.js +17 -34
  126. package/sdk/dist/deposit/source.js.map +1 -1
  127. package/sdk/dist/descriptors/accessors.d.ts +2 -2
  128. package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
  129. package/sdk/dist/descriptors/accessors.js +15 -4
  130. package/sdk/dist/descriptors/accessors.js.map +1 -1
  131. package/sdk/dist/descriptors/call.d.ts +8 -13
  132. package/sdk/dist/descriptors/call.d.ts.map +1 -1
  133. package/sdk/dist/descriptors/call.js +7 -19
  134. package/sdk/dist/descriptors/call.js.map +1 -1
  135. package/sdk/dist/descriptors/derive.d.ts +1 -1
  136. package/sdk/dist/descriptors/derive.d.ts.map +1 -1
  137. package/sdk/dist/descriptors/derive.js +1 -1
  138. package/sdk/dist/descriptors/derive.js.map +1 -1
  139. package/sdk/dist/descriptors/index.d.ts +1 -1
  140. package/sdk/dist/descriptors/index.d.ts.map +1 -1
  141. package/sdk/dist/descriptors/index.js +1 -1
  142. package/sdk/dist/descriptors/index.js.map +1 -1
  143. package/sdk/dist/descriptors/links.d.ts +3 -12
  144. package/sdk/dist/descriptors/links.d.ts.map +1 -1
  145. package/sdk/dist/descriptors/links.js +2 -32
  146. package/sdk/dist/descriptors/links.js.map +1 -1
  147. package/sdk/dist/descriptors/query.d.ts +7 -3
  148. package/sdk/dist/descriptors/query.d.ts.map +1 -1
  149. package/sdk/dist/descriptors/query.js +9 -5
  150. package/sdk/dist/descriptors/query.js.map +1 -1
  151. package/sdk/dist/descriptors/registry.d.ts.map +1 -1
  152. package/sdk/dist/descriptors/registry.js +1 -0
  153. package/sdk/dist/descriptors/registry.js.map +1 -1
  154. package/sdk/dist/embedded/recipes.d.ts +3 -0
  155. package/sdk/dist/embedded/recipes.d.ts.map +1 -0
  156. package/sdk/dist/embedded/recipes.js +15 -0
  157. package/sdk/dist/embedded/recipes.js.map +1 -0
  158. package/sdk/dist/embedded/resolve.d.ts +27 -0
  159. package/sdk/dist/embedded/resolve.d.ts.map +1 -0
  160. package/sdk/dist/embedded/resolve.js +99 -0
  161. package/sdk/dist/embedded/resolve.js.map +1 -0
  162. package/sdk/dist/embedded/skills.generated.d.ts +3 -0
  163. package/sdk/dist/embedded/skills.generated.d.ts.map +1 -0
  164. package/sdk/dist/embedded/skills.generated.js +141 -0
  165. package/sdk/dist/embedded/skills.generated.js.map +1 -0
  166. package/sdk/dist/embedded/sources.generated.d.ts +7 -0
  167. package/sdk/dist/embedded/sources.generated.d.ts.map +1 -0
  168. package/sdk/dist/embedded/sources.generated.js +231 -0
  169. package/sdk/dist/embedded/sources.generated.js.map +1 -0
  170. package/sdk/dist/evm/execution-fee.d.ts +30 -0
  171. package/sdk/dist/evm/execution-fee.d.ts.map +1 -0
  172. package/sdk/dist/evm/execution-fee.js +33 -0
  173. package/sdk/dist/evm/execution-fee.js.map +1 -0
  174. package/sdk/dist/index.d.ts +7 -2
  175. package/sdk/dist/index.d.ts.map +1 -1
  176. package/sdk/dist/index.js +16 -10
  177. package/sdk/dist/index.js.map +1 -1
  178. package/sdk/dist/plugin/index.d.ts +4 -3
  179. package/sdk/dist/plugin/index.d.ts.map +1 -1
  180. package/sdk/dist/plugin/index.js +5 -22
  181. package/sdk/dist/plugin/index.js.map +1 -1
  182. package/sdk/dist/protocols/aave-v4/abis.d.ts +201 -0
  183. package/sdk/dist/protocols/aave-v4/abis.d.ts.map +1 -0
  184. package/sdk/dist/protocols/aave-v4/abis.js +139 -0
  185. package/sdk/dist/protocols/aave-v4/abis.js.map +1 -0
  186. package/sdk/dist/protocols/aave-v4/addresses.d.ts +3 -0
  187. package/sdk/dist/protocols/aave-v4/addresses.d.ts.map +1 -0
  188. package/sdk/dist/protocols/aave-v4/addresses.js +65 -0
  189. package/sdk/dist/protocols/aave-v4/addresses.js.map +1 -0
  190. package/sdk/dist/protocols/aave-v4/functions.d.ts +5 -0
  191. package/sdk/dist/protocols/aave-v4/functions.d.ts.map +1 -0
  192. package/sdk/dist/protocols/aave-v4/functions.js +37 -0
  193. package/sdk/dist/protocols/aave-v4/functions.js.map +1 -0
  194. package/sdk/dist/protocols/aave-v4/index.d.ts +5 -0
  195. package/sdk/dist/protocols/aave-v4/index.d.ts.map +1 -0
  196. package/sdk/dist/protocols/aave-v4/index.js +5 -0
  197. package/sdk/dist/protocols/aave-v4/index.js.map +1 -0
  198. package/sdk/dist/protocols/aave-v4/info.d.ts +3 -0
  199. package/sdk/dist/protocols/aave-v4/info.d.ts.map +1 -0
  200. package/sdk/dist/protocols/aave-v4/info.js +12 -0
  201. package/sdk/dist/protocols/aave-v4/info.js.map +1 -0
  202. package/sdk/dist/protocols/across/abis.d.ts +24 -12
  203. package/sdk/dist/protocols/across/abis.d.ts.map +1 -1
  204. package/sdk/dist/protocols/across/abis.js +16 -8
  205. package/sdk/dist/protocols/across/abis.js.map +1 -1
  206. package/sdk/dist/protocols/across/addresses.d.ts.map +1 -1
  207. package/sdk/dist/protocols/across/addresses.js +10 -0
  208. package/sdk/dist/protocols/across/addresses.js.map +1 -1
  209. package/sdk/dist/protocols/across/functions.d.ts +1 -1
  210. package/sdk/dist/protocols/across/functions.d.ts.map +1 -1
  211. package/sdk/dist/protocols/across/functions.js +2 -2
  212. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +112 -0
  213. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -0
  214. package/sdk/dist/protocols/aerodrome-slipstream/abis.js +73 -0
  215. package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -0
  216. package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts +3 -0
  217. package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts.map +1 -0
  218. package/sdk/dist/protocols/aerodrome-slipstream/addresses.js +39 -0
  219. package/sdk/dist/protocols/aerodrome-slipstream/addresses.js.map +1 -0
  220. package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts +2 -0
  221. package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts.map +1 -0
  222. package/sdk/dist/protocols/aerodrome-slipstream/functions.js +9 -0
  223. package/sdk/dist/protocols/aerodrome-slipstream/functions.js.map +1 -0
  224. package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts +5 -0
  225. package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts.map +1 -0
  226. package/sdk/dist/protocols/aerodrome-slipstream/index.js +5 -0
  227. package/sdk/dist/protocols/aerodrome-slipstream/index.js.map +1 -0
  228. package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts +3 -0
  229. package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts.map +1 -0
  230. package/sdk/dist/protocols/aerodrome-slipstream/info.js +12 -0
  231. package/sdk/dist/protocols/aerodrome-slipstream/info.js.map +1 -0
  232. package/sdk/dist/protocols/aevo/abis.d.ts +17 -2
  233. package/sdk/dist/protocols/aevo/abis.d.ts.map +1 -1
  234. package/sdk/dist/protocols/aevo/abis.js +10 -2
  235. package/sdk/dist/protocols/aevo/abis.js.map +1 -1
  236. package/sdk/dist/protocols/aevo/functions.d.ts +1 -1
  237. package/sdk/dist/protocols/aevo/functions.d.ts.map +1 -1
  238. package/sdk/dist/protocols/aevo/functions.js +2 -2
  239. package/sdk/dist/protocols/alchemix/abis.d.ts +1 -1
  240. package/sdk/dist/protocols/alchemix/abis.js +1 -1
  241. package/sdk/dist/protocols/alchemix/abis.js.map +1 -1
  242. package/sdk/dist/protocols/ambient/abis.d.ts +2 -2
  243. package/sdk/dist/protocols/ambient/abis.d.ts.map +1 -1
  244. package/sdk/dist/protocols/ambient/abis.js +3 -2
  245. package/sdk/dist/protocols/ambient/abis.js.map +1 -1
  246. package/sdk/dist/protocols/ambient/addresses.d.ts.map +1 -1
  247. package/sdk/dist/protocols/ambient/addresses.js +2 -1
  248. package/sdk/dist/protocols/ambient/addresses.js.map +1 -1
  249. package/sdk/dist/protocols/arrakis/abis.d.ts +4 -13
  250. package/sdk/dist/protocols/arrakis/abis.d.ts.map +1 -1
  251. package/sdk/dist/protocols/arrakis/abis.js +2 -11
  252. package/sdk/dist/protocols/arrakis/abis.js.map +1 -1
  253. package/sdk/dist/protocols/arrakis/functions.d.ts +1 -1
  254. package/sdk/dist/protocols/arrakis/functions.d.ts.map +1 -1
  255. package/sdk/dist/protocols/arrakis/functions.js +2 -1
  256. package/sdk/dist/protocols/arrakis/functions.js.map +1 -1
  257. package/sdk/dist/protocols/axelar/abis.d.ts +1 -1
  258. package/sdk/dist/protocols/axelar/abis.js +1 -1
  259. package/sdk/dist/protocols/balancer-v2/abis.d.ts +7 -7
  260. package/sdk/dist/protocols/balancer-v2/abis.js +7 -7
  261. package/sdk/dist/protocols/balancer-v2/abis.js.map +1 -1
  262. package/sdk/dist/protocols/cbeth/abis.d.ts +7 -1
  263. package/sdk/dist/protocols/cbeth/abis.d.ts.map +1 -1
  264. package/sdk/dist/protocols/cbeth/abis.js +6 -2
  265. package/sdk/dist/protocols/cbeth/abis.js.map +1 -1
  266. package/sdk/dist/protocols/cbeth/functions.d.ts +2 -2
  267. package/sdk/dist/protocols/cbeth/functions.d.ts.map +1 -1
  268. package/sdk/dist/protocols/cbeth/functions.js +4 -6
  269. package/sdk/dist/protocols/cbeth/functions.js.map +1 -1
  270. package/sdk/dist/protocols/cctp/abis.d.ts +1 -4
  271. package/sdk/dist/protocols/cctp/abis.d.ts.map +1 -1
  272. package/sdk/dist/protocols/cctp/abis.js +3 -1
  273. package/sdk/dist/protocols/cctp/abis.js.map +1 -1
  274. package/sdk/dist/protocols/cctp/addresses.d.ts.map +1 -1
  275. package/sdk/dist/protocols/cctp/addresses.js +3 -0
  276. package/sdk/dist/protocols/cctp/addresses.js.map +1 -1
  277. package/sdk/dist/protocols/chainlink/abis.d.ts +6 -6
  278. package/sdk/dist/protocols/chainlink/abis.js +6 -6
  279. package/sdk/dist/protocols/chainlink/abis.js.map +1 -1
  280. package/sdk/dist/protocols/chainlink/addresses.d.ts.map +1 -1
  281. package/sdk/dist/protocols/chainlink/addresses.js +10 -0
  282. package/sdk/dist/protocols/chainlink/addresses.js.map +1 -1
  283. package/sdk/dist/protocols/chainlink-ccip/abis.d.ts +1 -1
  284. package/sdk/dist/protocols/chainlink-ccip/abis.js +1 -1
  285. package/sdk/dist/protocols/chainlink-ccip/addresses.d.ts.map +1 -1
  286. package/sdk/dist/protocols/chainlink-ccip/addresses.js +9 -0
  287. package/sdk/dist/protocols/chainlink-ccip/addresses.js.map +1 -1
  288. package/sdk/dist/protocols/circle-gateway/abis.d.ts +114 -0
  289. package/sdk/dist/protocols/circle-gateway/abis.d.ts.map +1 -0
  290. package/sdk/dist/protocols/circle-gateway/abis.js +86 -0
  291. package/sdk/dist/protocols/circle-gateway/abis.js.map +1 -0
  292. package/sdk/dist/protocols/circle-gateway/addresses.d.ts +3 -0
  293. package/sdk/dist/protocols/circle-gateway/addresses.d.ts.map +1 -0
  294. package/sdk/dist/protocols/circle-gateway/addresses.js +37 -0
  295. package/sdk/dist/protocols/circle-gateway/addresses.js.map +1 -0
  296. package/sdk/dist/protocols/circle-gateway/functions.d.ts +4 -0
  297. package/sdk/dist/protocols/circle-gateway/functions.d.ts.map +1 -0
  298. package/sdk/dist/protocols/circle-gateway/functions.js +27 -0
  299. package/sdk/dist/protocols/circle-gateway/functions.js.map +1 -0
  300. package/sdk/dist/protocols/circle-gateway/index.d.ts +5 -0
  301. package/sdk/dist/protocols/circle-gateway/index.d.ts.map +1 -0
  302. package/sdk/dist/protocols/circle-gateway/index.js +5 -0
  303. package/sdk/dist/protocols/circle-gateway/index.js.map +1 -0
  304. package/sdk/dist/protocols/circle-gateway/info.d.ts +3 -0
  305. package/sdk/dist/protocols/circle-gateway/info.d.ts.map +1 -0
  306. package/sdk/dist/protocols/circle-gateway/info.js +12 -0
  307. package/sdk/dist/protocols/circle-gateway/info.js.map +1 -0
  308. package/sdk/dist/protocols/compound-v2/abis.d.ts +2 -2
  309. package/sdk/dist/protocols/compound-v2/abis.js +2 -2
  310. package/sdk/dist/protocols/compound-v2/abis.js.map +1 -1
  311. package/sdk/dist/protocols/connext/abis.d.ts +46 -6
  312. package/sdk/dist/protocols/connext/abis.d.ts.map +1 -1
  313. package/sdk/dist/protocols/connext/abis.js +27 -5
  314. package/sdk/dist/protocols/connext/abis.js.map +1 -1
  315. package/sdk/dist/protocols/connext/addresses.d.ts.map +1 -1
  316. package/sdk/dist/protocols/connext/addresses.js +1 -7
  317. package/sdk/dist/protocols/connext/addresses.js.map +1 -1
  318. package/sdk/dist/protocols/connext/functions.d.ts +1 -1
  319. package/sdk/dist/protocols/connext/functions.d.ts.map +1 -1
  320. package/sdk/dist/protocols/connext/functions.js +3 -2
  321. package/sdk/dist/protocols/connext/functions.js.map +1 -1
  322. package/sdk/dist/protocols/crvusd/functions.d.ts +2 -2
  323. package/sdk/dist/protocols/crvusd/functions.d.ts.map +1 -1
  324. package/sdk/dist/protocols/crvusd/functions.js +6 -6
  325. package/sdk/dist/protocols/curve/abis.d.ts +119 -7
  326. package/sdk/dist/protocols/curve/abis.d.ts.map +1 -1
  327. package/sdk/dist/protocols/curve/abis.js +90 -7
  328. package/sdk/dist/protocols/curve/abis.js.map +1 -1
  329. package/sdk/dist/protocols/debridge/abis.d.ts +7 -7
  330. package/sdk/dist/protocols/debridge/abis.js +5 -5
  331. package/sdk/dist/protocols/debridge/abis.js.map +1 -1
  332. package/sdk/dist/protocols/debridge/addresses.d.ts.map +1 -1
  333. package/sdk/dist/protocols/debridge/addresses.js +11 -0
  334. package/sdk/dist/protocols/debridge/addresses.js.map +1 -1
  335. package/sdk/dist/protocols/eco-routes/abis.d.ts +463 -0
  336. package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -0
  337. package/sdk/dist/protocols/eco-routes/abis.js +632 -0
  338. package/sdk/dist/protocols/eco-routes/abis.js.map +1 -0
  339. package/sdk/dist/protocols/eco-routes/addresses.d.ts +9 -0
  340. package/sdk/dist/protocols/eco-routes/addresses.d.ts.map +1 -0
  341. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +585 -0
  342. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -0
  343. package/sdk/dist/protocols/eco-routes/addresses.generated.js +590 -0
  344. package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -0
  345. package/sdk/dist/protocols/eco-routes/addresses.js +21 -0
  346. package/sdk/dist/protocols/eco-routes/addresses.js.map +1 -0
  347. package/sdk/dist/protocols/eco-routes/functions.d.ts +12 -0
  348. package/sdk/dist/protocols/eco-routes/functions.d.ts.map +1 -0
  349. package/sdk/dist/protocols/eco-routes/functions.js +45 -0
  350. package/sdk/dist/protocols/eco-routes/functions.js.map +1 -0
  351. package/sdk/dist/protocols/eco-routes/index.d.ts +6 -0
  352. package/sdk/dist/protocols/eco-routes/index.d.ts.map +1 -0
  353. package/sdk/dist/protocols/eco-routes/index.js +6 -0
  354. package/sdk/dist/protocols/eco-routes/index.js.map +1 -0
  355. package/sdk/dist/protocols/eco-routes/info.d.ts +3 -0
  356. package/sdk/dist/protocols/eco-routes/info.d.ts.map +1 -0
  357. package/sdk/dist/protocols/eco-routes/info.js +12 -0
  358. package/sdk/dist/protocols/eco-routes/info.js.map +1 -0
  359. package/sdk/dist/protocols/eco-routes/lookup.d.ts +82 -0
  360. package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -0
  361. package/sdk/dist/protocols/eco-routes/lookup.js +148 -0
  362. package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -0
  363. package/sdk/dist/protocols/eigenlayer/abis.d.ts +4 -4
  364. package/sdk/dist/protocols/eigenlayer/abis.d.ts.map +1 -1
  365. package/sdk/dist/protocols/eigenlayer/abis.js +5 -4
  366. package/sdk/dist/protocols/eigenlayer/abis.js.map +1 -1
  367. package/sdk/dist/protocols/ens/abis.d.ts +4 -4
  368. package/sdk/dist/protocols/ens/abis.js +4 -4
  369. package/sdk/dist/protocols/erc20/functions.d.ts +3 -3
  370. package/sdk/dist/protocols/erc20/functions.d.ts.map +1 -1
  371. package/sdk/dist/protocols/erc20/functions.js +6 -9
  372. package/sdk/dist/protocols/erc20/functions.js.map +1 -1
  373. package/sdk/dist/protocols/etherfi/abis.d.ts +1 -1
  374. package/sdk/dist/protocols/etherfi/abis.d.ts.map +1 -1
  375. package/sdk/dist/protocols/etherfi/abis.js +2 -1
  376. package/sdk/dist/protocols/etherfi/abis.js.map +1 -1
  377. package/sdk/dist/protocols/euler-v2/abis.d.ts +2 -2
  378. package/sdk/dist/protocols/euler-v2/abis.js +2 -2
  379. package/sdk/dist/protocols/euler-v2/abis.js.map +1 -1
  380. package/sdk/dist/protocols/fluid/abis.d.ts +47 -26
  381. package/sdk/dist/protocols/fluid/abis.d.ts.map +1 -1
  382. package/sdk/dist/protocols/fluid/abis.js +39 -18
  383. package/sdk/dist/protocols/fluid/abis.js.map +1 -1
  384. package/sdk/dist/protocols/fluid/functions.d.ts +4 -4
  385. package/sdk/dist/protocols/fluid/functions.d.ts.map +1 -1
  386. package/sdk/dist/protocols/fluid/functions.js +18 -16
  387. package/sdk/dist/protocols/fluid/functions.js.map +1 -1
  388. package/sdk/dist/protocols/frax/functions.d.ts +2 -2
  389. package/sdk/dist/protocols/frax/functions.d.ts.map +1 -1
  390. package/sdk/dist/protocols/frax/functions.js +6 -6
  391. package/sdk/dist/protocols/gains-network/abis.d.ts +44 -35
  392. package/sdk/dist/protocols/gains-network/abis.d.ts.map +1 -1
  393. package/sdk/dist/protocols/gains-network/abis.js +26 -21
  394. package/sdk/dist/protocols/gains-network/abis.js.map +1 -1
  395. package/sdk/dist/protocols/gains-network/functions.d.ts +3 -3
  396. package/sdk/dist/protocols/gains-network/functions.d.ts.map +1 -1
  397. package/sdk/dist/protocols/gains-network/functions.js +6 -6
  398. package/sdk/dist/protocols/gamma/abis.d.ts +43 -0
  399. package/sdk/dist/protocols/gamma/abis.d.ts.map +1 -1
  400. package/sdk/dist/protocols/gamma/abis.js +30 -0
  401. package/sdk/dist/protocols/gamma/abis.js.map +1 -1
  402. package/sdk/dist/protocols/gamma/addresses.d.ts.map +1 -1
  403. package/sdk/dist/protocols/gamma/addresses.js +2 -7
  404. package/sdk/dist/protocols/gamma/addresses.js.map +1 -1
  405. package/sdk/dist/protocols/gamma/functions.d.ts +1 -0
  406. package/sdk/dist/protocols/gamma/functions.d.ts.map +1 -1
  407. package/sdk/dist/protocols/gamma/functions.js +9 -0
  408. package/sdk/dist/protocols/gamma/functions.js.map +1 -1
  409. package/sdk/dist/protocols/gelato/abis.d.ts +2 -2
  410. package/sdk/dist/protocols/gelato/abis.js +2 -2
  411. package/sdk/dist/protocols/gho/functions.d.ts +2 -2
  412. package/sdk/dist/protocols/gho/functions.d.ts.map +1 -1
  413. package/sdk/dist/protocols/gho/functions.js +4 -6
  414. package/sdk/dist/protocols/gho/functions.js.map +1 -1
  415. package/sdk/dist/protocols/gmx-v1/abis.d.ts +15 -3
  416. package/sdk/dist/protocols/gmx-v1/abis.d.ts.map +1 -1
  417. package/sdk/dist/protocols/gmx-v1/abis.js +5 -3
  418. package/sdk/dist/protocols/gmx-v1/abis.js.map +1 -1
  419. package/sdk/dist/protocols/gmx-v1/functions.d.ts +2 -2
  420. package/sdk/dist/protocols/gmx-v1/functions.d.ts.map +1 -1
  421. package/sdk/dist/protocols/gmx-v1/functions.js +2 -2
  422. package/sdk/dist/protocols/gmx-v2/abis.d.ts +11 -5
  423. package/sdk/dist/protocols/gmx-v2/abis.d.ts.map +1 -1
  424. package/sdk/dist/protocols/gmx-v2/abis.js +7 -4
  425. package/sdk/dist/protocols/gmx-v2/abis.js.map +1 -1
  426. package/sdk/dist/protocols/gmx-v2/addresses.d.ts.map +1 -1
  427. package/sdk/dist/protocols/gmx-v2/addresses.js +3 -1
  428. package/sdk/dist/protocols/gmx-v2/addresses.js.map +1 -1
  429. package/sdk/dist/protocols/gmx-v2/functions.d.ts +1 -1
  430. package/sdk/dist/protocols/gmx-v2/functions.d.ts.map +1 -1
  431. package/sdk/dist/protocols/gmx-v2/functions.js +4 -2
  432. package/sdk/dist/protocols/gmx-v2/functions.js.map +1 -1
  433. package/sdk/dist/protocols/harvest/abis.d.ts +8 -2
  434. package/sdk/dist/protocols/harvest/abis.d.ts.map +1 -1
  435. package/sdk/dist/protocols/harvest/abis.js +2 -2
  436. package/sdk/dist/protocols/harvest/abis.js.map +1 -1
  437. package/sdk/dist/protocols/hegic/abis.d.ts +5 -2
  438. package/sdk/dist/protocols/hegic/abis.d.ts.map +1 -1
  439. package/sdk/dist/protocols/hegic/abis.js +7 -2
  440. package/sdk/dist/protocols/hegic/abis.js.map +1 -1
  441. package/sdk/dist/protocols/hegic/addresses.d.ts.map +1 -1
  442. package/sdk/dist/protocols/hegic/addresses.js +1 -0
  443. package/sdk/dist/protocols/hegic/addresses.js.map +1 -1
  444. package/sdk/dist/protocols/hegic/functions.d.ts +1 -1
  445. package/sdk/dist/protocols/hegic/functions.d.ts.map +1 -1
  446. package/sdk/dist/protocols/hegic/functions.js +3 -3
  447. package/sdk/dist/protocols/hop/addresses.d.ts.map +1 -1
  448. package/sdk/dist/protocols/hop/addresses.js +5 -2
  449. package/sdk/dist/protocols/hop/addresses.js.map +1 -1
  450. package/sdk/dist/protocols/hyperlane/abis.d.ts +5 -5
  451. package/sdk/dist/protocols/hyperlane/abis.js +5 -5
  452. package/sdk/dist/protocols/hyperlane/abis.js.map +1 -1
  453. package/sdk/dist/protocols/hyperlane/addresses.d.ts.map +1 -1
  454. package/sdk/dist/protocols/hyperlane/addresses.js +9 -0
  455. package/sdk/dist/protocols/hyperlane/addresses.js.map +1 -1
  456. package/sdk/dist/protocols/index.d.ts +1 -0
  457. package/sdk/dist/protocols/index.d.ts.map +1 -1
  458. package/sdk/dist/protocols/index.js +13 -0
  459. package/sdk/dist/protocols/index.js.map +1 -1
  460. package/sdk/dist/protocols/kim/abis.d.ts +7 -20
  461. package/sdk/dist/protocols/kim/abis.d.ts.map +1 -1
  462. package/sdk/dist/protocols/kim/abis.js +6 -12
  463. package/sdk/dist/protocols/kim/abis.js.map +1 -1
  464. package/sdk/dist/protocols/kim/functions.d.ts +1 -1
  465. package/sdk/dist/protocols/kim/functions.d.ts.map +1 -1
  466. package/sdk/dist/protocols/kim/functions.js +3 -2
  467. package/sdk/dist/protocols/kim/functions.js.map +1 -1
  468. package/sdk/dist/protocols/kyberswap/abis.d.ts +41 -16
  469. package/sdk/dist/protocols/kyberswap/abis.d.ts.map +1 -1
  470. package/sdk/dist/protocols/kyberswap/abis.js +21 -8
  471. package/sdk/dist/protocols/kyberswap/abis.js.map +1 -1
  472. package/sdk/dist/protocols/kyberswap/addresses.d.ts.map +1 -1
  473. package/sdk/dist/protocols/kyberswap/addresses.js +12 -2
  474. package/sdk/dist/protocols/kyberswap/addresses.js.map +1 -1
  475. package/sdk/dist/protocols/kyberswap-aggregator/addresses.d.ts.map +1 -1
  476. package/sdk/dist/protocols/kyberswap-aggregator/addresses.js +12 -1
  477. package/sdk/dist/protocols/kyberswap-aggregator/addresses.js.map +1 -1
  478. package/sdk/dist/protocols/layerbank/abis.d.ts +81 -24
  479. package/sdk/dist/protocols/layerbank/abis.d.ts.map +1 -1
  480. package/sdk/dist/protocols/layerbank/abis.js +69 -17
  481. package/sdk/dist/protocols/layerbank/abis.js.map +1 -1
  482. package/sdk/dist/protocols/layerbank/addresses.d.ts.map +1 -1
  483. package/sdk/dist/protocols/layerbank/addresses.js +3 -1
  484. package/sdk/dist/protocols/layerbank/addresses.js.map +1 -1
  485. package/sdk/dist/protocols/layerbank/functions.d.ts +4 -4
  486. package/sdk/dist/protocols/layerbank/functions.d.ts.map +1 -1
  487. package/sdk/dist/protocols/layerbank/functions.js +18 -16
  488. package/sdk/dist/protocols/layerbank/functions.js.map +1 -1
  489. package/sdk/dist/protocols/layerzero/abis.d.ts +3 -3
  490. package/sdk/dist/protocols/layerzero/abis.js +3 -3
  491. package/sdk/dist/protocols/layerzero/addresses.d.ts.map +1 -1
  492. package/sdk/dist/protocols/layerzero/addresses.js +11 -1
  493. package/sdk/dist/protocols/layerzero/addresses.js.map +1 -1
  494. package/sdk/dist/protocols/level-finance/abis.d.ts +6 -0
  495. package/sdk/dist/protocols/level-finance/abis.d.ts.map +1 -1
  496. package/sdk/dist/protocols/level-finance/abis.js +2 -0
  497. package/sdk/dist/protocols/level-finance/abis.js.map +1 -1
  498. package/sdk/dist/protocols/level-finance/functions.d.ts +2 -2
  499. package/sdk/dist/protocols/level-finance/functions.d.ts.map +1 -1
  500. package/sdk/dist/protocols/level-finance/functions.js +4 -4
  501. package/sdk/dist/protocols/lifi/abis.d.ts +41 -4
  502. package/sdk/dist/protocols/lifi/abis.d.ts.map +1 -1
  503. package/sdk/dist/protocols/lifi/abis.js +24 -4
  504. package/sdk/dist/protocols/lifi/abis.js.map +1 -1
  505. package/sdk/dist/protocols/lifi/addresses.d.ts.map +1 -1
  506. package/sdk/dist/protocols/lifi/addresses.js +9 -0
  507. package/sdk/dist/protocols/lifi/addresses.js.map +1 -1
  508. package/sdk/dist/protocols/lifi/functions.d.ts +1 -1
  509. package/sdk/dist/protocols/lifi/functions.d.ts.map +1 -1
  510. package/sdk/dist/protocols/lifi/functions.js +5 -2
  511. package/sdk/dist/protocols/lifi/functions.js.map +1 -1
  512. package/sdk/dist/protocols/liquity-v1/abis.d.ts +6 -0
  513. package/sdk/dist/protocols/liquity-v1/abis.d.ts.map +1 -1
  514. package/sdk/dist/protocols/liquity-v1/abis.js +7 -1
  515. package/sdk/dist/protocols/liquity-v1/abis.js.map +1 -1
  516. package/sdk/dist/protocols/liquity-v1/functions.d.ts +1 -1
  517. package/sdk/dist/protocols/liquity-v1/functions.d.ts.map +1 -1
  518. package/sdk/dist/protocols/liquity-v1/functions.js +1 -1
  519. package/sdk/dist/protocols/liquity-v2/functions.d.ts +2 -2
  520. package/sdk/dist/protocols/liquity-v2/functions.d.ts.map +1 -1
  521. package/sdk/dist/protocols/liquity-v2/functions.js +4 -6
  522. package/sdk/dist/protocols/liquity-v2/functions.js.map +1 -1
  523. package/sdk/dist/protocols/mantle-meth/abis.d.ts +26 -25
  524. package/sdk/dist/protocols/mantle-meth/abis.d.ts.map +1 -1
  525. package/sdk/dist/protocols/mantle-meth/abis.js +22 -17
  526. package/sdk/dist/protocols/mantle-meth/abis.js.map +1 -1
  527. package/sdk/dist/protocols/mantle-meth/addresses.d.ts.map +1 -1
  528. package/sdk/dist/protocols/mantle-meth/addresses.js +3 -0
  529. package/sdk/dist/protocols/mantle-meth/addresses.js.map +1 -1
  530. package/sdk/dist/protocols/mantle-meth/functions.d.ts +1 -1
  531. package/sdk/dist/protocols/mantle-meth/functions.d.ts.map +1 -1
  532. package/sdk/dist/protocols/mantle-meth/functions.js +4 -4
  533. package/sdk/dist/protocols/maverick/abis.d.ts +9 -0
  534. package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
  535. package/sdk/dist/protocols/maverick/abis.js +7 -1
  536. package/sdk/dist/protocols/maverick/abis.js.map +1 -1
  537. package/sdk/dist/protocols/morpho-blue/addresses.d.ts.map +1 -1
  538. package/sdk/dist/protocols/morpho-blue/addresses.js +10 -0
  539. package/sdk/dist/protocols/morpho-blue/addresses.js.map +1 -1
  540. package/sdk/dist/protocols/mux-protocol/abis.d.ts +87 -32
  541. package/sdk/dist/protocols/mux-protocol/abis.d.ts.map +1 -1
  542. package/sdk/dist/protocols/mux-protocol/abis.js +54 -21
  543. package/sdk/dist/protocols/mux-protocol/abis.js.map +1 -1
  544. package/sdk/dist/protocols/mux-protocol/functions.d.ts +2 -2
  545. package/sdk/dist/protocols/mux-protocol/functions.d.ts.map +1 -1
  546. package/sdk/dist/protocols/mux-protocol/functions.js +8 -8
  547. package/sdk/dist/protocols/olympus/abis.d.ts +5 -2
  548. package/sdk/dist/protocols/olympus/abis.d.ts.map +1 -1
  549. package/sdk/dist/protocols/olympus/abis.js +2 -2
  550. package/sdk/dist/protocols/olympus/abis.js.map +1 -1
  551. package/sdk/dist/protocols/oneinch/abis.d.ts +5 -5
  552. package/sdk/dist/protocols/oneinch/abis.d.ts.map +1 -1
  553. package/sdk/dist/protocols/oneinch/abis.js +5 -3
  554. package/sdk/dist/protocols/oneinch/abis.js.map +1 -1
  555. package/sdk/dist/protocols/oneinch/functions.d.ts +1 -1
  556. package/sdk/dist/protocols/oneinch/functions.d.ts.map +1 -1
  557. package/sdk/dist/protocols/oneinch/functions.js +2 -2
  558. package/sdk/dist/protocols/openocean/abis.d.ts +14 -1
  559. package/sdk/dist/protocols/openocean/abis.d.ts.map +1 -1
  560. package/sdk/dist/protocols/openocean/abis.js +11 -1
  561. package/sdk/dist/protocols/openocean/abis.js.map +1 -1
  562. package/sdk/dist/protocols/openocean/functions.d.ts +1 -1
  563. package/sdk/dist/protocols/openocean/functions.d.ts.map +1 -1
  564. package/sdk/dist/protocols/openocean/functions.js +1 -1
  565. package/sdk/dist/protocols/opyn/abis.d.ts +4 -1
  566. package/sdk/dist/protocols/opyn/abis.d.ts.map +1 -1
  567. package/sdk/dist/protocols/opyn/abis.js +1 -1
  568. package/sdk/dist/protocols/opyn/abis.js.map +1 -1
  569. package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +6 -6
  570. package/sdk/dist/protocols/pancakeswap-v3/abis.js +6 -6
  571. package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
  572. package/sdk/dist/protocols/paraswap/abis.d.ts +1 -1
  573. package/sdk/dist/protocols/paraswap/abis.js +1 -1
  574. package/sdk/dist/protocols/pendle/abis.d.ts +288 -6
  575. package/sdk/dist/protocols/pendle/abis.d.ts.map +1 -1
  576. package/sdk/dist/protocols/pendle/abis.js +160 -6
  577. package/sdk/dist/protocols/pendle/abis.js.map +1 -1
  578. package/sdk/dist/protocols/permit2/abis.d.ts +1 -1
  579. package/sdk/dist/protocols/permit2/abis.js +1 -1
  580. package/sdk/dist/protocols/permit2/addresses.d.ts.map +1 -1
  581. package/sdk/dist/protocols/permit2/addresses.js +9 -0
  582. package/sdk/dist/protocols/permit2/addresses.js.map +1 -1
  583. package/sdk/dist/protocols/perpetual-protocol/abis.d.ts +46 -38
  584. package/sdk/dist/protocols/perpetual-protocol/abis.d.ts.map +1 -1
  585. package/sdk/dist/protocols/perpetual-protocol/abis.js +27 -14
  586. package/sdk/dist/protocols/perpetual-protocol/abis.js.map +1 -1
  587. package/sdk/dist/protocols/premia/abis.d.ts +18 -17
  588. package/sdk/dist/protocols/premia/abis.d.ts.map +1 -1
  589. package/sdk/dist/protocols/premia/abis.js +20 -10
  590. package/sdk/dist/protocols/premia/abis.js.map +1 -1
  591. package/sdk/dist/protocols/premia/addresses.d.ts.map +1 -1
  592. package/sdk/dist/protocols/premia/addresses.js +3 -8
  593. package/sdk/dist/protocols/premia/addresses.js.map +1 -1
  594. package/sdk/dist/protocols/premia/functions.d.ts +2 -2
  595. package/sdk/dist/protocols/premia/functions.d.ts.map +1 -1
  596. package/sdk/dist/protocols/premia/functions.js +8 -8
  597. package/sdk/dist/protocols/pyth/abis.d.ts +3 -3
  598. package/sdk/dist/protocols/pyth/abis.d.ts.map +1 -1
  599. package/sdk/dist/protocols/pyth/abis.js +6 -3
  600. package/sdk/dist/protocols/pyth/abis.js.map +1 -1
  601. package/sdk/dist/protocols/reflexer/abis.d.ts +8 -5
  602. package/sdk/dist/protocols/reflexer/abis.d.ts.map +1 -1
  603. package/sdk/dist/protocols/reflexer/abis.js +10 -6
  604. package/sdk/dist/protocols/reflexer/abis.js.map +1 -1
  605. package/sdk/dist/protocols/renzo/abis.d.ts +1 -1
  606. package/sdk/dist/protocols/renzo/abis.js +1 -1
  607. package/sdk/dist/protocols/renzo/abis.js.map +1 -1
  608. package/sdk/dist/protocols/sablier/abis.d.ts +2 -2
  609. package/sdk/dist/protocols/sablier/abis.js +2 -2
  610. package/sdk/dist/protocols/safe/addresses.d.ts.map +1 -1
  611. package/sdk/dist/protocols/safe/addresses.js +10 -0
  612. package/sdk/dist/protocols/safe/addresses.js.map +1 -1
  613. package/sdk/dist/protocols/seaport/abis.d.ts +65 -5
  614. package/sdk/dist/protocols/seaport/abis.d.ts.map +1 -1
  615. package/sdk/dist/protocols/seaport/abis.js +41 -5
  616. package/sdk/dist/protocols/seaport/abis.js.map +1 -1
  617. package/sdk/dist/protocols/seaport/addresses.d.ts.map +1 -1
  618. package/sdk/dist/protocols/seaport/addresses.js +10 -0
  619. package/sdk/dist/protocols/seaport/addresses.js.map +1 -1
  620. package/sdk/dist/protocols/seaport/functions.d.ts +1 -1
  621. package/sdk/dist/protocols/seaport/functions.d.ts.map +1 -1
  622. package/sdk/dist/protocols/seaport/functions.js +1 -0
  623. package/sdk/dist/protocols/seaport/functions.js.map +1 -1
  624. package/sdk/dist/protocols/silo/abis.d.ts +3 -0
  625. package/sdk/dist/protocols/silo/abis.d.ts.map +1 -1
  626. package/sdk/dist/protocols/silo/abis.js +4 -1
  627. package/sdk/dist/protocols/silo/abis.js.map +1 -1
  628. package/sdk/dist/protocols/silo/addresses.d.ts.map +1 -1
  629. package/sdk/dist/protocols/silo/addresses.js +2 -1
  630. package/sdk/dist/protocols/silo/addresses.js.map +1 -1
  631. package/sdk/dist/protocols/silo/functions.d.ts +1 -1
  632. package/sdk/dist/protocols/silo/functions.d.ts.map +1 -1
  633. package/sdk/dist/protocols/silo/functions.js +2 -1
  634. package/sdk/dist/protocols/silo/functions.js.map +1 -1
  635. package/sdk/dist/protocols/socket/abis.d.ts +1 -13
  636. package/sdk/dist/protocols/socket/abis.d.ts.map +1 -1
  637. package/sdk/dist/protocols/socket/abis.js +3 -11
  638. package/sdk/dist/protocols/socket/abis.js.map +1 -1
  639. package/sdk/dist/protocols/socket/functions.d.ts +1 -1
  640. package/sdk/dist/protocols/socket/functions.d.ts.map +1 -1
  641. package/sdk/dist/protocols/socket/functions.js +1 -1
  642. package/sdk/dist/protocols/spookyswap/addresses.d.ts.map +1 -1
  643. package/sdk/dist/protocols/spookyswap/addresses.js +2 -1
  644. package/sdk/dist/protocols/spookyswap/addresses.js.map +1 -1
  645. package/sdk/dist/protocols/squid/abis.d.ts +33 -21
  646. package/sdk/dist/protocols/squid/abis.d.ts.map +1 -1
  647. package/sdk/dist/protocols/squid/abis.js +19 -13
  648. package/sdk/dist/protocols/squid/abis.js.map +1 -1
  649. package/sdk/dist/protocols/squid/functions.d.ts +1 -1
  650. package/sdk/dist/protocols/squid/functions.d.ts.map +1 -1
  651. package/sdk/dist/protocols/squid/functions.js +2 -2
  652. package/sdk/dist/protocols/stargate/abis.d.ts +23 -3
  653. package/sdk/dist/protocols/stargate/abis.d.ts.map +1 -1
  654. package/sdk/dist/protocols/stargate/abis.js +19 -3
  655. package/sdk/dist/protocols/stargate/abis.js.map +1 -1
  656. package/sdk/dist/protocols/superfluid/abis.d.ts +2 -2
  657. package/sdk/dist/protocols/superfluid/abis.js +2 -2
  658. package/sdk/dist/protocols/superfluid/abis.js.map +1 -1
  659. package/sdk/dist/protocols/sushiswap-v2/addresses.d.ts.map +1 -1
  660. package/sdk/dist/protocols/sushiswap-v2/addresses.js +2 -1
  661. package/sdk/dist/protocols/sushiswap-v2/addresses.js.map +1 -1
  662. package/sdk/dist/protocols/swell/abis.d.ts +2 -8
  663. package/sdk/dist/protocols/swell/abis.d.ts.map +1 -1
  664. package/sdk/dist/protocols/swell/abis.js +4 -2
  665. package/sdk/dist/protocols/swell/abis.js.map +1 -1
  666. package/sdk/dist/protocols/swell/functions.d.ts +2 -2
  667. package/sdk/dist/protocols/swell/functions.d.ts.map +1 -1
  668. package/sdk/dist/protocols/swell/functions.js +4 -2
  669. package/sdk/dist/protocols/swell/functions.js.map +1 -1
  670. package/sdk/dist/protocols/synapse/addresses.d.ts.map +1 -1
  671. package/sdk/dist/protocols/synapse/addresses.js +2 -1
  672. package/sdk/dist/protocols/synapse/addresses.js.map +1 -1
  673. package/sdk/dist/protocols/synthetix-v3/abis.d.ts +40 -5
  674. package/sdk/dist/protocols/synthetix-v3/abis.d.ts.map +1 -1
  675. package/sdk/dist/protocols/synthetix-v3/abis.js +27 -5
  676. package/sdk/dist/protocols/synthetix-v3/abis.js.map +1 -1
  677. package/sdk/dist/protocols/synthetix-v3/addresses.d.ts.map +1 -1
  678. package/sdk/dist/protocols/synthetix-v3/addresses.js +2 -1
  679. package/sdk/dist/protocols/synthetix-v3/addresses.js.map +1 -1
  680. package/sdk/dist/protocols/synthra-v3/abis.d.ts +347 -0
  681. package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -0
  682. package/sdk/dist/protocols/synthra-v3/abis.js +242 -0
  683. package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -0
  684. package/sdk/dist/protocols/synthra-v3/addresses.d.ts +3 -0
  685. package/sdk/dist/protocols/synthra-v3/addresses.d.ts.map +1 -0
  686. package/sdk/dist/protocols/synthra-v3/addresses.js +16 -0
  687. package/sdk/dist/protocols/synthra-v3/addresses.js.map +1 -0
  688. package/sdk/dist/protocols/synthra-v3/functions.d.ts +2 -0
  689. package/sdk/dist/protocols/synthra-v3/functions.d.ts.map +1 -0
  690. package/sdk/dist/protocols/synthra-v3/functions.js +9 -0
  691. package/sdk/dist/protocols/synthra-v3/functions.js.map +1 -0
  692. package/sdk/dist/protocols/synthra-v3/index.d.ts +5 -0
  693. package/sdk/dist/protocols/synthra-v3/index.d.ts.map +1 -0
  694. package/sdk/dist/protocols/synthra-v3/index.js +5 -0
  695. package/sdk/dist/protocols/synthra-v3/index.js.map +1 -0
  696. package/sdk/dist/protocols/synthra-v3/info.d.ts +3 -0
  697. package/sdk/dist/protocols/synthra-v3/info.d.ts.map +1 -0
  698. package/sdk/dist/protocols/synthra-v3/info.js +11 -0
  699. package/sdk/dist/protocols/synthra-v3/info.js.map +1 -0
  700. package/sdk/dist/protocols/thales/abis.d.ts +53 -24
  701. package/sdk/dist/protocols/thales/abis.d.ts.map +1 -1
  702. package/sdk/dist/protocols/thales/abis.js +27 -11
  703. package/sdk/dist/protocols/thales/abis.js.map +1 -1
  704. package/sdk/dist/protocols/thales/functions.d.ts +2 -2
  705. package/sdk/dist/protocols/thales/functions.d.ts.map +1 -1
  706. package/sdk/dist/protocols/thales/functions.js +5 -6
  707. package/sdk/dist/protocols/thales/functions.js.map +1 -1
  708. package/sdk/dist/protocols/thruster/abis.d.ts +1 -1
  709. package/sdk/dist/protocols/thruster/abis.js +1 -1
  710. package/sdk/dist/protocols/trader-joe/abis.d.ts +3 -3
  711. package/sdk/dist/protocols/trader-joe/abis.js +2 -2
  712. package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
  713. package/sdk/dist/protocols/uniswap-v2/addresses.d.ts.map +1 -1
  714. package/sdk/dist/protocols/uniswap-v2/addresses.js +10 -0
  715. package/sdk/dist/protocols/uniswap-v2/addresses.js.map +1 -1
  716. package/sdk/dist/protocols/uniswap-v3/abis.d.ts +127 -8
  717. package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
  718. package/sdk/dist/protocols/uniswap-v3/abis.js +90 -8
  719. package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
  720. package/sdk/dist/protocols/uniswap-v3/addresses.d.ts.map +1 -1
  721. package/sdk/dist/protocols/uniswap-v3/addresses.js +14 -0
  722. package/sdk/dist/protocols/uniswap-v3/addresses.js.map +1 -1
  723. package/sdk/dist/protocols/uniswap-v4/abis.d.ts +27 -15
  724. package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
  725. package/sdk/dist/protocols/uniswap-v4/abis.js +25 -15
  726. package/sdk/dist/protocols/uniswap-v4/abis.js.map +1 -1
  727. package/sdk/dist/protocols/uniswap-v4/addresses.d.ts.map +1 -1
  728. package/sdk/dist/protocols/uniswap-v4/addresses.js +11 -0
  729. package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
  730. package/sdk/dist/protocols/unitflow-v3/abis.d.ts +104 -0
  731. package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -0
  732. package/sdk/dist/protocols/unitflow-v3/abis.js +70 -0
  733. package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -0
  734. package/sdk/dist/protocols/unitflow-v3/addresses.d.ts +3 -0
  735. package/sdk/dist/protocols/unitflow-v3/addresses.d.ts.map +1 -0
  736. package/sdk/dist/protocols/unitflow-v3/addresses.js +19 -0
  737. package/sdk/dist/protocols/unitflow-v3/addresses.js.map +1 -0
  738. package/sdk/dist/protocols/unitflow-v3/functions.d.ts +2 -0
  739. package/sdk/dist/protocols/unitflow-v3/functions.d.ts.map +1 -0
  740. package/sdk/dist/protocols/unitflow-v3/functions.js +9 -0
  741. package/sdk/dist/protocols/unitflow-v3/functions.js.map +1 -0
  742. package/sdk/dist/protocols/unitflow-v3/index.d.ts +5 -0
  743. package/sdk/dist/protocols/unitflow-v3/index.d.ts.map +1 -0
  744. package/sdk/dist/protocols/unitflow-v3/index.js +5 -0
  745. package/sdk/dist/protocols/unitflow-v3/index.js.map +1 -0
  746. package/sdk/dist/protocols/unitflow-v3/info.d.ts +3 -0
  747. package/sdk/dist/protocols/unitflow-v3/info.d.ts.map +1 -0
  748. package/sdk/dist/protocols/unitflow-v3/info.js +12 -0
  749. package/sdk/dist/protocols/unitflow-v3/info.js.map +1 -0
  750. package/sdk/dist/protocols/velodrome/addresses.d.ts.map +1 -1
  751. package/sdk/dist/protocols/velodrome/addresses.js +3 -1
  752. package/sdk/dist/protocols/velodrome/addresses.js.map +1 -1
  753. package/sdk/dist/protocols/venus/abis.d.ts +62 -1
  754. package/sdk/dist/protocols/venus/abis.d.ts.map +1 -1
  755. package/sdk/dist/protocols/venus/abis.js +48 -1
  756. package/sdk/dist/protocols/venus/abis.js.map +1 -1
  757. package/sdk/dist/protocols/vertex/abis.d.ts +16 -9
  758. package/sdk/dist/protocols/vertex/abis.d.ts.map +1 -1
  759. package/sdk/dist/protocols/vertex/abis.js +13 -4
  760. package/sdk/dist/protocols/vertex/abis.js.map +1 -1
  761. package/sdk/dist/protocols/wormhole/abis.d.ts +2 -2
  762. package/sdk/dist/protocols/wormhole/abis.js +2 -2
  763. package/sdk/dist/protocols/wormhole/addresses.d.ts.map +1 -1
  764. package/sdk/dist/protocols/wormhole/addresses.js +9 -0
  765. package/sdk/dist/protocols/wormhole/addresses.js.map +1 -1
  766. package/sdk/dist/protocols/zerolend/addresses.d.ts.map +1 -1
  767. package/sdk/dist/protocols/zerolend/addresses.js +2 -1
  768. package/sdk/dist/protocols/zerolend/addresses.js.map +1 -1
  769. package/sdk/dist/protocols/zerox/addresses.d.ts.map +1 -1
  770. package/sdk/dist/protocols/zerox/addresses.js +2 -1
  771. package/sdk/dist/protocols/zerox/addresses.js.map +1 -1
  772. package/sdk/dist/protocols/zksync-bridge/abis.d.ts +1 -1
  773. package/sdk/dist/protocols/zksync-bridge/abis.js +1 -1
  774. package/sdk/dist/recipes/cctp-split.sauce.ts +3 -1
  775. package/sdk/dist/recipes/cctp-transfer.d.ts +17 -6
  776. package/sdk/dist/recipes/cctp-transfer.d.ts.map +1 -1
  777. package/sdk/dist/recipes/cctp-transfer.js +7 -20
  778. package/sdk/dist/recipes/cctp-transfer.js.map +1 -1
  779. package/sdk/dist/recipes/index.d.ts +5 -15
  780. package/sdk/dist/recipes/index.d.ts.map +1 -1
  781. package/sdk/dist/recipes/index.js +19 -36
  782. package/sdk/dist/recipes/index.js.map +1 -1
  783. package/sdk/dist/recipes/plain-transfer.sauce.ts +3 -0
  784. package/sdk/dist/recipes/settle.sauce.ts +15 -2
  785. package/sdk/dist/routes/ast-walk.d.ts +4 -0
  786. package/sdk/dist/routes/ast-walk.d.ts.map +1 -1
  787. package/sdk/dist/routes/ast-walk.js +9 -2
  788. package/sdk/dist/routes/ast-walk.js.map +1 -1
  789. package/sdk/dist/routes/chain-exports.generated.d.ts +97 -0
  790. package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -0
  791. package/sdk/dist/routes/chain-exports.generated.js +91 -0
  792. package/sdk/dist/routes/chain-exports.generated.js.map +1 -0
  793. package/sdk/dist/routes/compile-types.d.ts +3 -0
  794. package/sdk/dist/routes/compile-types.d.ts.map +1 -1
  795. package/sdk/dist/routes/composed.d.ts +13 -0
  796. package/sdk/dist/routes/composed.d.ts.map +1 -0
  797. package/sdk/dist/routes/composed.js +94 -0
  798. package/sdk/dist/routes/composed.js.map +1 -0
  799. package/sdk/dist/routes/encode.d.ts +6 -6
  800. package/sdk/dist/routes/globals.d.ts +19 -4
  801. package/sdk/dist/routes/globals.d.ts.map +1 -1
  802. package/sdk/dist/routes/globals.js +51 -85
  803. package/sdk/dist/routes/globals.js.map +1 -1
  804. package/sdk/dist/routes/index.d.ts +17 -8
  805. package/sdk/dist/routes/index.d.ts.map +1 -1
  806. package/sdk/dist/routes/index.js +18 -6
  807. package/sdk/dist/routes/index.js.map +1 -1
  808. package/sdk/dist/routes/intent-dsl.d.ts +60 -19
  809. package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
  810. package/sdk/dist/routes/intent-dsl.js +175 -67
  811. package/sdk/dist/routes/intent-dsl.js.map +1 -1
  812. package/sdk/dist/routes/intent-pot.d.ts +49 -0
  813. package/sdk/dist/routes/intent-pot.d.ts.map +1 -0
  814. package/sdk/dist/routes/intent-pot.js +46 -0
  815. package/sdk/dist/routes/intent-pot.js.map +1 -0
  816. package/sdk/dist/routes/intent-sugar.d.ts +97 -0
  817. package/sdk/dist/routes/intent-sugar.d.ts.map +1 -0
  818. package/sdk/dist/routes/intent-sugar.js +632 -0
  819. package/sdk/dist/routes/intent-sugar.js.map +1 -0
  820. package/sdk/dist/routes/nest-dynamic.d.ts +146 -0
  821. package/sdk/dist/routes/nest-dynamic.d.ts.map +1 -0
  822. package/sdk/dist/routes/nest-dynamic.js +308 -0
  823. package/sdk/dist/routes/nest-dynamic.js.map +1 -0
  824. package/sdk/dist/routes/nest.d.ts +16 -5
  825. package/sdk/dist/routes/nest.d.ts.map +1 -1
  826. package/sdk/dist/routes/nest.js +29 -10
  827. package/sdk/dist/routes/nest.js.map +1 -1
  828. package/sdk/dist/routes/portal.d.ts +7 -272
  829. package/sdk/dist/routes/portal.d.ts.map +1 -1
  830. package/sdk/dist/routes/portal.js +13 -92
  831. package/sdk/dist/routes/portal.js.map +1 -1
  832. package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
  833. package/sdk/dist/routes/protocol-rewrite.js +2 -0
  834. package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
  835. package/sdk/dist/routes/rs-compile.d.ts +26 -15
  836. package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
  837. package/sdk/dist/routes/rs-compile.js +57 -169
  838. package/sdk/dist/routes/rs-compile.js.map +1 -1
  839. package/sdk/dist/routes/sauce-route.d.ts +26 -1
  840. package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
  841. package/sdk/dist/routes/sauce-route.js +133 -27
  842. package/sdk/dist/routes/sauce-route.js.map +1 -1
  843. package/sdk/dist/routes/source-globals.generated.d.ts +442 -23
  844. package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
  845. package/sdk/dist/routes/template.d.ts +184 -0
  846. package/sdk/dist/routes/template.d.ts.map +1 -0
  847. package/sdk/dist/routes/template.js +338 -0
  848. package/sdk/dist/routes/template.js.map +1 -0
  849. package/sdk/dist/routes/token-registry.d.ts.map +1 -1
  850. package/sdk/dist/routes/token-registry.js +41 -1
  851. package/sdk/dist/routes/token-registry.js.map +1 -1
  852. package/sdk/dist/routes/token-rewrite.d.ts +63 -28
  853. package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
  854. package/sdk/dist/routes/token-rewrite.js +390 -122
  855. package/sdk/dist/routes/token-rewrite.js.map +1 -1
  856. package/sdk/dist/skills/loader.d.ts +2 -7
  857. package/sdk/dist/skills/loader.d.ts.map +1 -1
  858. package/sdk/dist/skills/loader.js +14 -25
  859. package/sdk/dist/skills/loader.js.map +1 -1
  860. package/sdk/dist/std/token/token.evm.js +56 -15
  861. package/sdk/dist/std/token/token.svm.js +24 -3
  862. package/sdk/dist/svm/accessors.d.ts +3 -3
  863. package/sdk/dist/svm/accessors.js +3 -3
  864. package/sdk/dist/svm/client.d.ts +1 -0
  865. package/sdk/dist/svm/client.d.ts.map +1 -1
  866. package/sdk/dist/svm/client.js +6 -0
  867. package/sdk/dist/svm/client.js.map +1 -1
  868. package/sdk/dist/svm/clusters.d.ts +6 -2
  869. package/sdk/dist/svm/clusters.d.ts.map +1 -1
  870. package/sdk/dist/svm/clusters.js +0 -2
  871. package/sdk/dist/svm/clusters.js.map +1 -1
  872. package/sdk/dist/svm/engine-artifacts.d.ts +24 -13
  873. package/sdk/dist/svm/engine-artifacts.d.ts.map +1 -1
  874. package/sdk/dist/svm/engine-artifacts.js +31 -26
  875. package/sdk/dist/svm/engine-artifacts.js.map +1 -1
  876. package/sdk/dist/svm/engine-public.d.ts.map +1 -1
  877. package/sdk/dist/svm/engine-public.js +2 -1
  878. package/sdk/dist/svm/engine-public.js.map +1 -1
  879. package/sdk/dist/svm/index.d.ts +0 -1
  880. package/sdk/dist/svm/index.d.ts.map +1 -1
  881. package/sdk/dist/svm/index.js +3 -1
  882. package/sdk/dist/svm/index.js.map +1 -1
  883. package/sdk/dist/svm/intent.d.ts.map +1 -1
  884. package/sdk/dist/svm/intent.js +4 -3
  885. package/sdk/dist/svm/intent.js.map +1 -1
  886. package/sdk/dist/svm/loader.d.ts.map +1 -1
  887. package/sdk/dist/svm/loader.js +2 -3
  888. package/sdk/dist/svm/loader.js.map +1 -1
  889. package/sdk/dist/svm/recipes/index.d.ts +57 -4
  890. package/sdk/dist/svm/recipes/index.d.ts.map +1 -1
  891. package/sdk/dist/svm/recipes/index.js +7 -9
  892. package/sdk/dist/svm/recipes/index.js.map +1 -1
  893. package/sdk/dist/svm/venues/alphaq/index.d.ts.map +1 -1
  894. package/sdk/dist/svm/venues/alphaq/index.js +4 -2
  895. package/sdk/dist/svm/venues/alphaq/index.js.map +1 -1
  896. package/sdk/dist/svm/venues/binaryfi/index.d.ts.map +1 -1
  897. package/sdk/dist/svm/venues/binaryfi/index.js +2 -1
  898. package/sdk/dist/svm/venues/binaryfi/index.js.map +1 -1
  899. package/sdk/dist/svm/venues/fluxbeam/index.d.ts.map +1 -1
  900. package/sdk/dist/svm/venues/fluxbeam/index.js +2 -7
  901. package/sdk/dist/svm/venues/fluxbeam/index.js.map +1 -1
  902. package/sdk/dist/svm/venues/jupiter-lend-earn/index.d.ts.map +1 -1
  903. package/sdk/dist/svm/venues/jupiter-lend-earn/index.js +2 -1
  904. package/sdk/dist/svm/venues/jupiter-lend-earn/index.js.map +1 -1
  905. package/sdk/dist/svm/venues/kipseli/index.d.ts.map +1 -1
  906. package/sdk/dist/svm/venues/kipseli/index.js +31 -14
  907. package/sdk/dist/svm/venues/kipseli/index.js.map +1 -1
  908. package/sdk/dist/svm/venues/mercurial/index.d.ts.map +1 -1
  909. package/sdk/dist/svm/venues/mercurial/index.js +2 -7
  910. package/sdk/dist/svm/venues/mercurial/index.js.map +1 -1
  911. package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.d.ts.map +1 -1
  912. package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js +3 -2
  913. package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js.map +1 -1
  914. package/sdk/dist/svm/venues/mswap/index.d.ts.map +1 -1
  915. package/sdk/dist/svm/venues/mswap/index.js +2 -2
  916. package/sdk/dist/svm/venues/mswap/index.js.map +1 -1
  917. package/sdk/dist/svm/venues/orca-legacy-token-swap/index.d.ts.map +1 -1
  918. package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js +2 -7
  919. package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js.map +1 -1
  920. package/sdk/dist/svm/venues/saber-stableswap/index.d.ts.map +1 -1
  921. package/sdk/dist/svm/venues/saber-stableswap/index.js +2 -7
  922. package/sdk/dist/svm/venues/saber-stableswap/index.js.map +1 -1
  923. package/sdk/dist/svm/venues/sanctum-infinity/index.js +2 -2
  924. package/sdk/dist/svm/venues/sanctum-infinity/index.js.map +1 -1
  925. package/sdk/dist/svm/venues/sanctum-stake-pool/index.d.ts.map +1 -1
  926. package/sdk/dist/svm/venues/sanctum-stake-pool/index.js +2 -8
  927. package/sdk/dist/svm/venues/sanctum-stake-pool/index.js.map +1 -1
  928. package/sdk/dist/svm/venues/spl-token-swap-forks/index.d.ts.map +1 -1
  929. package/sdk/dist/svm/venues/spl-token-swap-forks/index.js +2 -7
  930. package/sdk/dist/svm/venues/spl-token-swap-forks/index.js.map +1 -1
  931. package/sdk/dist/svm/venues/stabble-common.d.ts.map +1 -1
  932. package/sdk/dist/svm/venues/stabble-common.js +3 -8
  933. package/sdk/dist/svm/venues/stabble-common.js.map +1 -1
  934. package/sdk/dist/svm/verify.d.ts.map +1 -1
  935. package/sdk/dist/svm/verify.js +1 -4
  936. package/sdk/dist/svm/verify.js.map +1 -1
  937. package/sdk/dist/swap/index.d.ts +4 -4
  938. package/sdk/dist/swap/index.d.ts.map +1 -1
  939. package/sdk/dist/swap/index.js +4 -4
  940. package/sdk/dist/swap/index.js.map +1 -1
  941. package/sdk/dist/swap/source.d.ts +0 -7
  942. package/sdk/dist/swap/source.d.ts.map +1 -1
  943. package/sdk/dist/swap/source.js +3 -11
  944. package/sdk/dist/swap/source.js.map +1 -1
  945. package/sdk/dist/token/api.d.ts +14 -12
  946. package/sdk/dist/token/api.d.ts.map +1 -1
  947. package/sdk/dist/token/api.js +4 -5
  948. package/sdk/dist/token/api.js.map +1 -1
  949. package/sdk/dist/token/evm.d.ts +5 -2
  950. package/sdk/dist/token/evm.d.ts.map +1 -1
  951. package/sdk/dist/token/evm.js +26 -15
  952. package/sdk/dist/token/evm.js.map +1 -1
  953. package/sdk/dist/token/index.d.ts +7 -7
  954. package/sdk/dist/token/index.js +7 -7
  955. package/sdk/dist/token/safe.d.ts +17 -0
  956. package/sdk/dist/token/safe.d.ts.map +1 -0
  957. package/sdk/dist/token/safe.js +211 -0
  958. package/sdk/dist/token/safe.js.map +1 -0
  959. package/sdk/dist/token/source.d.ts +0 -4
  960. package/sdk/dist/token/source.d.ts.map +1 -1
  961. package/sdk/dist/token/source.js +7 -10
  962. package/sdk/dist/token/source.js.map +1 -1
  963. package/sdk/dist/verify/decode.d.ts +6 -6
  964. package/sdk/dist/verify/decode.js +7 -7
  965. package/sdk/dist/verify/decode.js.map +1 -1
  966. package/sdk/dist/verify/index.js +2 -2
  967. package/sdk/dist/verify/intent.js +2 -2
  968. package/sdk/dist/verify/vectors.d.ts +1 -1
  969. package/sdk/dist/verify/vectors.d.ts.map +1 -1
  970. package/sdk/dist/verify/vectors.js +2 -2
  971. package/sdk/dist/verify/vectors.js.map +1 -1
  972. package/sdk/dist/verify/wire.d.ts +21 -4
  973. package/sdk/dist/verify/wire.d.ts.map +1 -1
  974. package/sdk/dist/verify/wire.js +21 -4
  975. package/sdk/dist/verify/wire.js.map +1 -1
  976. package/sdk/dist/wasm-compiler.d.ts +31 -0
  977. package/sdk/dist/wasm-compiler.d.ts.map +1 -0
  978. package/sdk/dist/wasm-compiler.js +52 -0
  979. package/sdk/dist/wasm-compiler.js.map +1 -0
  980. package/sdk/src/protocols/aave-v4/AaveV4HubABI.json +67 -0
  981. package/sdk/src/protocols/aave-v4/AaveV4SpokeABI.json +215 -0
  982. package/sdk/src/protocols/aave-v4/abis.ts +139 -0
  983. package/sdk/src/protocols/aave-v4/addresses.ts +66 -0
  984. package/sdk/src/protocols/aave-v4/functions.ts +39 -0
  985. package/sdk/src/protocols/aave-v4/index.ts +4 -0
  986. package/sdk/src/protocols/aave-v4/info.ts +14 -0
  987. package/sdk/src/protocols/across/AcrossHubPoolABI.json +2 -2
  988. package/sdk/src/protocols/across/AcrossSpokePoolABI.json +27 -11
  989. package/sdk/src/protocols/across/abis.ts +16 -8
  990. package/sdk/src/protocols/across/addresses.ts +10 -0
  991. package/sdk/src/protocols/across/functions.ts +2 -2
  992. package/sdk/src/protocols/aerodrome-slipstream/AeroMetarouterABI.json +24 -0
  993. package/sdk/src/protocols/aerodrome-slipstream/SlipstreamCLFactoryABI.json +58 -0
  994. package/sdk/src/protocols/aerodrome-slipstream/SlipstreamPositionManagerABI.json +77 -0
  995. package/sdk/src/protocols/aerodrome-slipstream/abis.ts +74 -0
  996. package/sdk/src/protocols/aerodrome-slipstream/addresses.ts +40 -0
  997. package/sdk/src/protocols/aerodrome-slipstream/functions.ts +8 -0
  998. package/sdk/src/protocols/aerodrome-slipstream/index.ts +4 -0
  999. package/sdk/src/protocols/aerodrome-slipstream/info.ts +14 -0
  1000. package/sdk/src/protocols/aevo/DepositContractABI.json +23 -2
  1001. package/sdk/src/protocols/aevo/abis.ts +10 -2
  1002. package/sdk/src/protocols/aevo/functions.ts +2 -2
  1003. package/sdk/src/protocols/alchemix/AlchemistABI.json +1 -1
  1004. package/sdk/src/protocols/alchemix/abis.ts +1 -1
  1005. package/sdk/src/protocols/ambient/CrocSwapDexABI.json +2 -2
  1006. package/sdk/src/protocols/ambient/abis.ts +3 -2
  1007. package/sdk/src/protocols/ambient/addresses.ts +2 -1
  1008. package/sdk/src/protocols/arrakis/ArrakisRouterABI.json +5 -1
  1009. package/sdk/src/protocols/arrakis/ArrakisVaultABI.json +0 -16
  1010. package/sdk/src/protocols/arrakis/abis.ts +2 -11
  1011. package/sdk/src/protocols/arrakis/functions.ts +2 -1
  1012. package/sdk/src/protocols/axelar/AxelarITSABI.json +1 -1
  1013. package/sdk/src/protocols/axelar/abis.ts +1 -1
  1014. package/sdk/src/protocols/balancer-v2/BalancerV2VaultABI.json +7 -7
  1015. package/sdk/src/protocols/balancer-v2/abis.ts +7 -7
  1016. package/sdk/src/protocols/cbeth/CbETHABI.json +10 -1
  1017. package/sdk/src/protocols/cbeth/abis.ts +6 -2
  1018. package/sdk/src/protocols/cbeth/functions.ts +4 -6
  1019. package/sdk/src/protocols/cctp/TokenMessengerABI.json +30 -9
  1020. package/sdk/src/protocols/cctp/abis.ts +3 -1
  1021. package/sdk/src/protocols/cctp/addresses.ts +3 -0
  1022. package/sdk/src/protocols/chainlink/AggregatorV3ABI.json +3 -3
  1023. package/sdk/src/protocols/chainlink/FeedRegistryABI.json +3 -3
  1024. package/sdk/src/protocols/chainlink/abis.ts +6 -6
  1025. package/sdk/src/protocols/chainlink/addresses.ts +10 -0
  1026. package/sdk/src/protocols/chainlink-ccip/CCIPRouterABI.json +1 -1
  1027. package/sdk/src/protocols/chainlink-ccip/abis.ts +1 -1
  1028. package/sdk/src/protocols/chainlink-ccip/addresses.ts +9 -0
  1029. package/sdk/src/protocols/circle-gateway/GatewayMinterABI.json +49 -0
  1030. package/sdk/src/protocols/circle-gateway/GatewayWalletABI.json +111 -0
  1031. package/sdk/src/protocols/circle-gateway/abis.ts +86 -0
  1032. package/sdk/src/protocols/circle-gateway/addresses.ts +39 -0
  1033. package/sdk/src/protocols/circle-gateway/functions.ts +28 -0
  1034. package/sdk/src/protocols/circle-gateway/index.ts +4 -0
  1035. package/sdk/src/protocols/circle-gateway/info.ts +14 -0
  1036. package/sdk/src/protocols/compound-v2/CErc20ABI.json +2 -2
  1037. package/sdk/src/protocols/compound-v2/abis.ts +2 -2
  1038. package/sdk/src/protocols/connext/EverclearSpokeABI.json +60 -6
  1039. package/sdk/src/protocols/connext/abis.ts +27 -5
  1040. package/sdk/src/protocols/connext/addresses.ts +1 -7
  1041. package/sdk/src/protocols/connext/functions.ts +3 -2
  1042. package/sdk/src/protocols/crvusd/functions.ts +6 -6
  1043. package/sdk/src/protocols/curve/CurveRouterNGABI.json +37 -0
  1044. package/sdk/src/protocols/curve/CurveStableSwapABI.json +7 -7
  1045. package/sdk/src/protocols/curve/CurveThreePoolABI.json +117 -0
  1046. package/sdk/src/protocols/curve/abis.ts +91 -7
  1047. package/sdk/src/protocols/debridge/DlnDestinationABI.json +7 -7
  1048. package/sdk/src/protocols/debridge/DlnSourceABI.json +1 -1
  1049. package/sdk/src/protocols/debridge/abis.ts +5 -5
  1050. package/sdk/src/protocols/debridge/addresses.ts +11 -0
  1051. package/sdk/src/protocols/eco-routes/abis.ts +633 -0
  1052. package/sdk/src/protocols/eco-routes/addresses.generated.ts +589 -0
  1053. package/sdk/src/protocols/eco-routes/addresses.ts +27 -0
  1054. package/sdk/src/protocols/eco-routes/functions.ts +45 -0
  1055. package/sdk/src/protocols/eco-routes/index.ts +5 -0
  1056. package/sdk/src/protocols/eco-routes/info.ts +14 -0
  1057. package/sdk/src/protocols/eco-routes/lookup.ts +215 -0
  1058. package/sdk/src/protocols/eigenlayer/DelegationManagerABI.json +2 -2
  1059. package/sdk/src/protocols/eigenlayer/StrategyManagerABI.json +2 -2
  1060. package/sdk/src/protocols/eigenlayer/abis.ts +5 -4
  1061. package/sdk/src/protocols/ens/ENSRegistryABI.json +4 -4
  1062. package/sdk/src/protocols/ens/abis.ts +4 -4
  1063. package/sdk/src/protocols/erc20/functions.ts +6 -9
  1064. package/sdk/src/protocols/etherfi/WeETHABI.json +1 -1
  1065. package/sdk/src/protocols/etherfi/abis.ts +2 -1
  1066. package/sdk/src/protocols/euler-v2/EVCABI.json +2 -2
  1067. package/sdk/src/protocols/euler-v2/abis.ts +2 -2
  1068. package/sdk/src/protocols/fluid/FluidLendingABI.json +20 -37
  1069. package/sdk/src/protocols/fluid/FluidVaultABI.json +41 -0
  1070. package/sdk/src/protocols/fluid/abis.ts +41 -18
  1071. package/sdk/src/protocols/fluid/functions.ts +18 -16
  1072. package/sdk/src/protocols/frax/functions.ts +6 -6
  1073. package/sdk/src/protocols/gains-network/DiamondABI.json +49 -37
  1074. package/sdk/src/protocols/gains-network/abis.ts +26 -21
  1075. package/sdk/src/protocols/gains-network/functions.ts +6 -6
  1076. package/sdk/src/protocols/gamma/UniProxyLegacyABI.json +62 -0
  1077. package/sdk/src/protocols/gamma/abis.ts +31 -0
  1078. package/sdk/src/protocols/gamma/addresses.ts +2 -7
  1079. package/sdk/src/protocols/gamma/functions.ts +10 -0
  1080. package/sdk/src/protocols/gelato/GelatoAutomateABI.json +2 -2
  1081. package/sdk/src/protocols/gelato/abis.ts +2 -2
  1082. package/sdk/src/protocols/gho/functions.ts +4 -6
  1083. package/sdk/src/protocols/gmx-v1/PositionRouterABI.json +21 -3
  1084. package/sdk/src/protocols/gmx-v1/abis.ts +5 -3
  1085. package/sdk/src/protocols/gmx-v1/functions.ts +2 -2
  1086. package/sdk/src/protocols/gmx-v2/ExchangeRouterABI.json +13 -5
  1087. package/sdk/src/protocols/gmx-v2/abis.ts +7 -4
  1088. package/sdk/src/protocols/gmx-v2/addresses.ts +3 -1
  1089. package/sdk/src/protocols/gmx-v2/functions.ts +4 -2
  1090. package/sdk/src/protocols/harvest/VaultABI.json +12 -2
  1091. package/sdk/src/protocols/harvest/abis.ts +2 -2
  1092. package/sdk/src/protocols/hegic/HegicABI.json +6 -2
  1093. package/sdk/src/protocols/hegic/abis.ts +7 -2
  1094. package/sdk/src/protocols/hegic/addresses.ts +1 -0
  1095. package/sdk/src/protocols/hegic/functions.ts +3 -3
  1096. package/sdk/src/protocols/hop/addresses.ts +5 -2
  1097. package/sdk/src/protocols/hyperlane/HyperlaneMailboxABI.json +5 -5
  1098. package/sdk/src/protocols/hyperlane/abis.ts +5 -5
  1099. package/sdk/src/protocols/hyperlane/addresses.ts +9 -0
  1100. package/sdk/src/protocols/index.ts +13 -0
  1101. package/sdk/src/protocols/kim/KimRouterABI.json +8 -27
  1102. package/sdk/src/protocols/kim/abis.ts +6 -12
  1103. package/sdk/src/protocols/kim/functions.ts +3 -2
  1104. package/sdk/src/protocols/kyberswap/KyberSwapElasticRouterABI.json +1 -1
  1105. package/sdk/src/protocols/kyberswap/KyberSwapMetaAggregationRouterABI.json +52 -18
  1106. package/sdk/src/protocols/kyberswap/abis.ts +21 -8
  1107. package/sdk/src/protocols/kyberswap/addresses.ts +12 -2
  1108. package/sdk/src/protocols/kyberswap-aggregator/addresses.ts +12 -1
  1109. package/sdk/src/protocols/layerbank/LTokenABI.json +19 -29
  1110. package/sdk/src/protocols/layerbank/LayerBankCoreABI.json +87 -2
  1111. package/sdk/src/protocols/layerbank/abis.ts +69 -17
  1112. package/sdk/src/protocols/layerbank/addresses.ts +3 -1
  1113. package/sdk/src/protocols/layerbank/functions.ts +18 -16
  1114. package/sdk/src/protocols/layerzero/LayerZeroEndpointV2ABI.json +3 -3
  1115. package/sdk/src/protocols/layerzero/abis.ts +3 -3
  1116. package/sdk/src/protocols/layerzero/addresses.ts +11 -1
  1117. package/sdk/src/protocols/level-finance/LiquidityPoolABI.json +8 -0
  1118. package/sdk/src/protocols/level-finance/abis.ts +2 -0
  1119. package/sdk/src/protocols/level-finance/functions.ts +4 -4
  1120. package/sdk/src/protocols/lifi/LiFiDiamondABI.json +54 -4
  1121. package/sdk/src/protocols/lifi/abis.ts +24 -4
  1122. package/sdk/src/protocols/lifi/addresses.ts +9 -0
  1123. package/sdk/src/protocols/lifi/functions.ts +5 -2
  1124. package/sdk/src/protocols/liquity-v1/BorrowerOperationsABI.json +8 -0
  1125. package/sdk/src/protocols/liquity-v1/abis.ts +7 -1
  1126. package/sdk/src/protocols/liquity-v1/functions.ts +1 -1
  1127. package/sdk/src/protocols/liquity-v2/functions.ts +4 -6
  1128. package/sdk/src/protocols/mantle-meth/METHABI.json +0 -46
  1129. package/sdk/src/protocols/mantle-meth/METHStakingABI.json +50 -0
  1130. package/sdk/src/protocols/mantle-meth/abis.ts +23 -17
  1131. package/sdk/src/protocols/mantle-meth/addresses.ts +3 -0
  1132. package/sdk/src/protocols/mantle-meth/functions.ts +4 -4
  1133. package/sdk/src/protocols/maverick/MaverickV2FactoryABI.json +8 -0
  1134. package/sdk/src/protocols/maverick/MaverickV2RouterABI.json +4 -0
  1135. package/sdk/src/protocols/maverick/abis.ts +7 -1
  1136. package/sdk/src/protocols/morpho-blue/addresses.ts +10 -0
  1137. package/sdk/src/protocols/mux-protocol/LiquidityPoolABI.json +45 -11
  1138. package/sdk/src/protocols/mux-protocol/OrderBookABI.json +59 -17
  1139. package/sdk/src/protocols/mux-protocol/abis.ts +55 -22
  1140. package/sdk/src/protocols/mux-protocol/functions.ts +8 -8
  1141. package/sdk/src/protocols/olympus/StakingABI.json +8 -3
  1142. package/sdk/src/protocols/olympus/abis.ts +2 -2
  1143. package/sdk/src/protocols/oneinch/AggregationRouterV6ABI.json +5 -5
  1144. package/sdk/src/protocols/oneinch/abis.ts +5 -3
  1145. package/sdk/src/protocols/oneinch/functions.ts +2 -2
  1146. package/sdk/src/protocols/openocean/OpenOceanExchangeV2ABI.json +19 -1
  1147. package/sdk/src/protocols/openocean/abis.ts +11 -1
  1148. package/sdk/src/protocols/openocean/functions.ts +1 -1
  1149. package/sdk/src/protocols/opyn/ControllerABI.json +6 -1
  1150. package/sdk/src/protocols/opyn/abis.ts +1 -1
  1151. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3FactoryABI.json +1 -1
  1152. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3NFPMABI.json +3 -3
  1153. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3SmartRouterABI.json +2 -2
  1154. package/sdk/src/protocols/pancakeswap-v3/abis.ts +6 -6
  1155. package/sdk/src/protocols/paraswap/AugustusV5ABI.json +1 -1
  1156. package/sdk/src/protocols/paraswap/abis.ts +1 -1
  1157. package/sdk/src/protocols/pendle/PendleRouterABI.json +392 -6
  1158. package/sdk/src/protocols/pendle/abis.ts +160 -6
  1159. package/sdk/src/protocols/permit2/Permit2ABI.json +1 -1
  1160. package/sdk/src/protocols/permit2/abis.ts +1 -1
  1161. package/sdk/src/protocols/permit2/addresses.ts +9 -0
  1162. package/sdk/src/protocols/perpetual-protocol/ClearingHouseABI.json +61 -49
  1163. package/sdk/src/protocols/perpetual-protocol/abis.ts +27 -14
  1164. package/sdk/src/protocols/premia/DiamondABI.json +24 -24
  1165. package/sdk/src/protocols/premia/abis.ts +20 -10
  1166. package/sdk/src/protocols/premia/addresses.ts +3 -8
  1167. package/sdk/src/protocols/premia/functions.ts +8 -8
  1168. package/sdk/src/protocols/pyth/PythOracleABI.json +3 -3
  1169. package/sdk/src/protocols/pyth/abis.ts +6 -3
  1170. package/sdk/src/protocols/reflexer/ETHJoinABI.json +5 -1
  1171. package/sdk/src/protocols/reflexer/SAFEEngineABI.json +4 -4
  1172. package/sdk/src/protocols/reflexer/abis.ts +10 -6
  1173. package/sdk/src/protocols/renzo/RestakeManagerABI.json +1 -1
  1174. package/sdk/src/protocols/renzo/abis.ts +1 -1
  1175. package/sdk/src/protocols/sablier/LockupLinearABI.json +2 -2
  1176. package/sdk/src/protocols/sablier/abis.ts +2 -2
  1177. package/sdk/src/protocols/safe/addresses.ts +10 -0
  1178. package/sdk/src/protocols/seaport/SeaportABI.json +87 -5
  1179. package/sdk/src/protocols/seaport/abis.ts +41 -5
  1180. package/sdk/src/protocols/seaport/addresses.ts +10 -0
  1181. package/sdk/src/protocols/seaport/functions.ts +1 -0
  1182. package/sdk/src/protocols/silo/SiloABI.json +4 -0
  1183. package/sdk/src/protocols/silo/abis.ts +4 -1
  1184. package/sdk/src/protocols/silo/addresses.ts +2 -1
  1185. package/sdk/src/protocols/silo/functions.ts +2 -1
  1186. package/sdk/src/protocols/socket/SocketGatewayABI.json +1 -17
  1187. package/sdk/src/protocols/socket/abis.ts +3 -11
  1188. package/sdk/src/protocols/socket/functions.ts +1 -1
  1189. package/sdk/src/protocols/spookyswap/addresses.ts +2 -1
  1190. package/sdk/src/protocols/squid/SquidRouterABI.json +42 -26
  1191. package/sdk/src/protocols/squid/abis.ts +19 -13
  1192. package/sdk/src/protocols/squid/functions.ts +2 -2
  1193. package/sdk/src/protocols/stargate/StargatePoolABI.json +31 -3
  1194. package/sdk/src/protocols/stargate/abis.ts +19 -3
  1195. package/sdk/src/protocols/superfluid/CFAForwarderABI.json +2 -2
  1196. package/sdk/src/protocols/superfluid/abis.ts +2 -2
  1197. package/sdk/src/protocols/sushiswap-v2/addresses.ts +2 -1
  1198. package/sdk/src/protocols/swell/RswETHABI.json +1 -6
  1199. package/sdk/src/protocols/swell/SwETHABI.json +1 -6
  1200. package/sdk/src/protocols/swell/abis.ts +4 -2
  1201. package/sdk/src/protocols/swell/functions.ts +4 -2
  1202. package/sdk/src/protocols/synapse/addresses.ts +2 -1
  1203. package/sdk/src/protocols/synthetix-v3/PerpsMarketProxyABI.json +54 -5
  1204. package/sdk/src/protocols/synthetix-v3/abis.ts +27 -5
  1205. package/sdk/src/protocols/synthetix-v3/addresses.ts +2 -1
  1206. package/sdk/src/protocols/synthra-v3/SynthraV3FactoryABI.json +54 -0
  1207. package/sdk/src/protocols/synthra-v3/SynthraV3NonfungiblePositionManagerABI.json +212 -0
  1208. package/sdk/src/protocols/synthra-v3/SynthraV3QuoterV2ABI.json +55 -0
  1209. package/sdk/src/protocols/synthra-v3/SynthraV3SwapRouter02ABI.json +168 -0
  1210. package/sdk/src/protocols/synthra-v3/abis.ts +244 -0
  1211. package/sdk/src/protocols/synthra-v3/addresses.ts +17 -0
  1212. package/sdk/src/protocols/synthra-v3/functions.ts +8 -0
  1213. package/sdk/src/protocols/synthra-v3/index.ts +4 -0
  1214. package/sdk/src/protocols/synthra-v3/info.ts +13 -0
  1215. package/sdk/src/protocols/thales/PositionalMarketABI.json +16 -0
  1216. package/sdk/src/protocols/thales/SpeedMarketsAMMABI.json +57 -22
  1217. package/sdk/src/protocols/thales/ThalesAMMABI.json +4 -11
  1218. package/sdk/src/protocols/thales/abis.ts +28 -11
  1219. package/sdk/src/protocols/thales/functions.ts +5 -6
  1220. package/sdk/src/protocols/thruster/ThrusterV3SwapRouterABI.json +1 -1
  1221. package/sdk/src/protocols/thruster/abis.ts +1 -1
  1222. package/sdk/src/protocols/trader-joe/LBRouterABI.json +3 -3
  1223. package/sdk/src/protocols/trader-joe/abis.ts +2 -2
  1224. package/sdk/src/protocols/uniswap-v2/addresses.ts +10 -0
  1225. package/sdk/src/protocols/uniswap-v3/UniswapV3FactoryABI.json +2 -2
  1226. package/sdk/src/protocols/uniswap-v3/UniswapV3NonfungiblePositionManagerABI.json +3 -3
  1227. package/sdk/src/protocols/uniswap-v3/UniswapV3QuoterV2ABI.json +1 -1
  1228. package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouter02ABI.json +168 -0
  1229. package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouterABI.json +2 -2
  1230. package/sdk/src/protocols/uniswap-v3/abis.ts +91 -8
  1231. package/sdk/src/protocols/uniswap-v3/addresses.ts +14 -0
  1232. package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +15 -15
  1233. package/sdk/src/protocols/uniswap-v4/UniswapV4UniversalRouterABI.json +16 -0
  1234. package/sdk/src/protocols/uniswap-v4/abis.ts +25 -15
  1235. package/sdk/src/protocols/uniswap-v4/addresses.ts +11 -0
  1236. package/sdk/src/protocols/unitflow-v3/UnitFlowV3FactoryABI.json +46 -0
  1237. package/sdk/src/protocols/unitflow-v3/UnitFlowV3QuoterABI.json +37 -0
  1238. package/sdk/src/protocols/unitflow-v3/UnitFlowV3RouterABI.json +67 -0
  1239. package/sdk/src/protocols/unitflow-v3/abis.ts +71 -0
  1240. package/sdk/src/protocols/unitflow-v3/addresses.ts +20 -0
  1241. package/sdk/src/protocols/unitflow-v3/functions.ts +8 -0
  1242. package/sdk/src/protocols/unitflow-v3/index.ts +4 -0
  1243. package/sdk/src/protocols/unitflow-v3/info.ts +14 -0
  1244. package/sdk/src/protocols/velodrome/addresses.ts +3 -1
  1245. package/sdk/src/protocols/venus/VBNBABI.json +86 -0
  1246. package/sdk/src/protocols/venus/VTokenABI.json +1 -1
  1247. package/sdk/src/protocols/venus/abis.ts +49 -1
  1248. package/sdk/src/protocols/vertex/ClearinghouseABI.json +20 -10
  1249. package/sdk/src/protocols/vertex/EndpointABI.json +1 -1
  1250. package/sdk/src/protocols/vertex/abis.ts +13 -4
  1251. package/sdk/src/protocols/wormhole/WormholeTokenBridgeABI.json +2 -2
  1252. package/sdk/src/protocols/wormhole/abis.ts +2 -2
  1253. package/sdk/src/protocols/wormhole/addresses.ts +9 -0
  1254. package/sdk/src/protocols/zerolend/addresses.ts +2 -1
  1255. package/sdk/src/protocols/zerox/addresses.ts +2 -1
  1256. package/sdk/src/protocols/zksync-bridge/ZkSyncDiamondProxyABI.json +1 -1
  1257. package/sdk/src/protocols/zksync-bridge/abis.ts +1 -1
  1258. package/sdk/src/skills/aave-v4.md +91 -0
  1259. package/sdk/src/skills/across.md +28 -10
  1260. package/sdk/src/skills/aerodrome-slipstream.md +57 -0
  1261. package/sdk/src/skills/aerodrome.md +1 -0
  1262. package/sdk/src/skills/aevo.md +12 -4
  1263. package/sdk/src/skills/ambient.md +2 -2
  1264. package/sdk/src/skills/arrakis.md +3 -3
  1265. package/sdk/src/skills/cbeth.md +6 -8
  1266. package/sdk/src/skills/chainlink-ccip.md +3 -2
  1267. package/sdk/src/skills/chainlink.md +1 -1
  1268. package/sdk/src/skills/circle-gateway.md +98 -0
  1269. package/sdk/src/skills/compound-v2.md +2 -2
  1270. package/sdk/src/skills/connext.md +8 -7
  1271. package/sdk/src/skills/crvusd.md +6 -6
  1272. package/sdk/src/skills/curve.md +17 -2
  1273. package/sdk/src/skills/debridge.md +3 -2
  1274. package/sdk/src/skills/eigenlayer.md +1 -1
  1275. package/sdk/src/skills/erc20.md +8 -10
  1276. package/sdk/src/skills/etherfi.md +1 -1
  1277. package/sdk/src/skills/fluid.md +46 -39
  1278. package/sdk/src/skills/frax.md +6 -6
  1279. package/sdk/src/skills/gains-network.md +13 -21
  1280. package/sdk/src/skills/gamma.md +12 -6
  1281. package/sdk/src/skills/gho.md +4 -6
  1282. package/sdk/src/skills/gmx-v1.md +4 -2
  1283. package/sdk/src/skills/gmx-v2.md +6 -2
  1284. package/sdk/src/skills/harvest.md +2 -2
  1285. package/sdk/src/skills/hegic.md +9 -8
  1286. package/sdk/src/skills/hop.md +8 -8
  1287. package/sdk/src/skills/hyperlane.md +4 -3
  1288. package/sdk/src/skills/index.md +84 -77
  1289. package/sdk/src/skills/kim.md +11 -14
  1290. package/sdk/src/skills/kyberswap-aggregator.md +5 -3
  1291. package/sdk/src/skills/kyberswap.md +6 -6
  1292. package/sdk/src/skills/layerbank.md +41 -35
  1293. package/sdk/src/skills/layerzero.md +3 -2
  1294. package/sdk/src/skills/level-finance.md +6 -4
  1295. package/sdk/src/skills/lido.md +5 -5
  1296. package/sdk/src/skills/lifi.md +41 -23
  1297. package/sdk/src/skills/liquity-v1.md +6 -2
  1298. package/sdk/src/skills/liquity-v2.md +4 -6
  1299. package/sdk/src/skills/loader.ts +15 -25
  1300. package/sdk/src/skills/mantle-meth.md +13 -5
  1301. package/sdk/src/skills/maverick.md +3 -3
  1302. package/sdk/src/skills/morpho-blue.md +1 -1
  1303. package/sdk/src/skills/mux-protocol.md +21 -17
  1304. package/sdk/src/skills/oneinch.md +4 -3
  1305. package/sdk/src/skills/openocean.md +2 -2
  1306. package/sdk/src/skills/opyn.md +1 -1
  1307. package/sdk/src/skills/permit2.md +1 -1
  1308. package/sdk/src/skills/perpetual-protocol.md +2 -2
  1309. package/sdk/src/skills/premia.md +21 -21
  1310. package/sdk/src/skills/reflexer.md +1 -1
  1311. package/sdk/src/skills/renzo.md +1 -1
  1312. package/sdk/src/skills/safe.md +1 -1
  1313. package/sdk/src/skills/seaport.md +3 -2
  1314. package/sdk/src/skills/silo.md +4 -3
  1315. package/sdk/src/skills/socket.md +4 -5
  1316. package/sdk/src/skills/spookyswap.md +2 -2
  1317. package/sdk/src/skills/squid.md +18 -10
  1318. package/sdk/src/skills/stargate.md +1 -1
  1319. package/sdk/src/skills/sushiswap-v2.md +1 -1
  1320. package/sdk/src/skills/swell.md +6 -4
  1321. package/sdk/src/skills/synapse.md +1 -1
  1322. package/sdk/src/skills/synthetix-v3.md +1 -1
  1323. package/sdk/src/skills/synthra-v3.md +57 -0
  1324. package/sdk/src/skills/thales.md +12 -10
  1325. package/sdk/src/skills/trader-joe.md +1 -1
  1326. package/sdk/src/skills/uniswap-v2.md +2 -1
  1327. package/sdk/src/skills/uniswap-v3.md +14 -4
  1328. package/sdk/src/skills/uniswap-v4.md +3 -1
  1329. package/sdk/src/skills/unitflow-v3.md +62 -0
  1330. package/sdk/src/skills/velodrome.md +2 -2
  1331. package/sdk/src/skills/venus.md +10 -2
  1332. package/sdk/src/skills/vertex.md +1 -1
  1333. package/sdk/src/skills/wormhole.md +1 -1
  1334. package/sdk/src/skills/zerolend.md +1 -1
  1335. package/sdk/src/skills/zerox.md +1 -1
  1336. package/sdk/src/skills/zksync-bridge.md +1 -1
  1337. package/actions/dist/megas-swap.d.ts +0 -97
  1338. package/actions/dist/megas-swap.d.ts.map +0 -1
  1339. package/actions/dist/megas-swap.js +0 -286
  1340. package/sdk/dist/routes/globals.generated.d.ts +0 -94
  1341. package/sdk/dist/routes/globals.generated.d.ts.map +0 -1
  1342. package/sdk/dist/routes/globals.generated.js +0 -2
  1343. package/sdk/dist/routes/globals.generated.js.map +0 -1
@@ -1,6 +1,9 @@
1
1
  import type { TokenApproveSpec, TokenBalanceSpec, TokenTransferSpec } from "./types.js";
2
2
  export declare const ERC20_IMPORT_LINE = "import { IERC20 } from \"./artifacts/IERC20.json\";";
3
- export declare function evmTransferStatement(spec: TokenTransferSpec): string;
4
- export declare function evmApproveStatement(spec: TokenApproveSpec): string;
3
+ /** `transfer`, with OpenZeppelin `SafeERC20` semantics — see `token/safe.ts` for why this is not
4
+ * `IERC20.at(t).transfer(...)`. `balanceOf` keeps that binding: a `uint256` return is always there. */
5
+ export declare function evmTransferStatements(spec: TokenTransferSpec, prefix?: string): readonly string[];
6
+ /** `approve`, with `SafeERC20` semantics plus `forceApprove`'s reset of a non-zero allowance. */
7
+ export declare function evmApproveStatements(spec: TokenApproveSpec, prefix?: string): readonly string[];
5
8
  export declare function evmBalanceExpression(spec: TokenBalanceSpec): string;
6
9
  //# sourceMappingURL=evm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,iBAAiB,wDAAsD,CAAC;AAmBrF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAIpE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAIlE;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAGnE"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExF,eAAO,MAAM,iBAAiB,wDAAsD,CAAC;AA0BrF;wGACwG;AACxG,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,MAAM,SAAQ,GAAG,SAAS,MAAM,EAAE,CAMhG;AAED,iGAAiG;AACjG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,SAAQ,GAAG,SAAS,MAAM,EAAE,CAM9F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAGnE"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * The ERC20 arm — statement/expression builders for the universal token interface's EVM lowering.
3
- * Typed-binding call against the engine-vendored `IERC20` artifact, the exact shape
4
- * `swap/source.ts`/`deposit/source.ts` already emit — nothing new reaches the compiler.
3
+ * The writes go through `safe.ts` (OpenZeppelin `SafeERC20`); the read is a typed call against the
4
+ * engine-vendored `IERC20` artifact, the shape `swap/source.ts`/`deposit/source.ts` already emit.
5
5
  */
6
- import { formatAddressField, formatBigint } from "../deposit/format.js";
6
+ import { formatAddressField } from "../deposit/format.js";
7
7
  import { toAddressBigint, toAmountBigint } from "./params.js";
8
+ import { safeApproveStatements, safeTransferStatements } from "./safe.js";
8
9
  export const ERC20_IMPORT_LINE = `import { IERC20 } from "./artifacts/IERC20.json";`;
9
10
  function formatOwner(owner) {
10
11
  if (owner === undefined)
@@ -13,22 +14,32 @@ function formatOwner(owner) {
13
14
  return "ctx.self()";
14
15
  return formatAddressField(toAddressBigint(owner, "owner"));
15
16
  }
16
- function amountExpr(amount, tokenLiteral, label) {
17
- if (amount === "balance")
18
- return `IERC20.at(${tokenLiteral}).balanceOf(ctx.self())`;
19
- // formatBigint takes a bigint, so a `number` amount CANNOT be stringified into the emitted
20
- // source without going through toAmountBigint first.
21
- return formatBigint(toAmountBigint(amount, label));
17
+ /** A write's amount as a `token/safe.ts` word: a literal folds into the calldata, a `"balance"`
18
+ * read is bound to a local first so the call and any later use see one value. */
19
+ function amountWord(spec, tokenLiteral, label, prefix) {
20
+ if (spec.amount !== "balance") {
21
+ return { word: { literal: toAmountBigint(spec.amount, label) }, pre: [] };
22
+ }
23
+ const local = `${prefix}amt`;
24
+ return {
25
+ word: { local },
26
+ pre: [`const ${local} = IERC20.at(${tokenLiteral}).balanceOf(ctx.self());`],
27
+ };
22
28
  }
23
- export function evmTransferStatement(spec) {
29
+ /** `transfer`, with OpenZeppelin `SafeERC20` semantics — see `token/safe.ts` for why this is not
30
+ * `IERC20.at(t).transfer(...)`. `balanceOf` keeps that binding: a `uint256` return is always there. */
31
+ export function evmTransferStatements(spec, prefix = "t0_") {
24
32
  const tokenLiteral = formatAddressField(toAddressBigint(spec.token, "token"));
25
- const toLiteral = formatAddressField(toAddressBigint(spec.to, "to"));
26
- return `IERC20.at(${tokenLiteral}).transfer(${toLiteral}, ${amountExpr(spec.amount, tokenLiteral, "Token.transfer amount")});`;
33
+ const to = toAddressBigint(spec.to, "to");
34
+ const { word, pre } = amountWord(spec, tokenLiteral, "Token.transfer amount", prefix);
35
+ return [...pre, ...safeTransferStatements(prefix, tokenLiteral, { literal: to }, word)];
27
36
  }
28
- export function evmApproveStatement(spec) {
37
+ /** `approve`, with `SafeERC20` semantics plus `forceApprove`'s reset of a non-zero allowance. */
38
+ export function evmApproveStatements(spec, prefix = "t0_") {
29
39
  const tokenLiteral = formatAddressField(toAddressBigint(spec.token, "token"));
30
- const spenderLiteral = formatAddressField(toAddressBigint(spec.spender, "spender"));
31
- return `IERC20.at(${tokenLiteral}).approve(${spenderLiteral}, ${amountExpr(spec.amount, tokenLiteral, "Token.approve amount")});`;
40
+ const spender = toAddressBigint(spec.spender, "spender");
41
+ const { word, pre } = amountWord(spec, tokenLiteral, "Token.approve amount", prefix);
42
+ return [...pre, ...safeApproveStatements(prefix, tokenLiteral, { literal: spender }, word)];
32
43
  }
33
44
  export function evmBalanceExpression(spec) {
34
45
  const tokenLiteral = formatAddressField(toAddressBigint(spec.token, "token"));
@@ -1 +1 @@
1
- {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,mDAAmD,CAAC;AAErF,SAAS,WAAW,CAAC,KAAgC;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAChG,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IAC1C,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,UAAU,CACjB,MAAmC,EACnC,YAAoB,EACpB,KAAa;IAEb,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,aAAa,YAAY,yBAAyB,CAAC;IACpF,2FAA2F;IAC3F,qDAAqD;IACrD,OAAO,YAAY,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAuB;IAC1D,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,SAAS,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,EAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACtE,OAAO,aAAa,YAAY,cAAc,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,uBAAuB,CAAC,IAAI,CAAC;AACjI,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAsB;IACxD,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,OAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IACrF,OAAO,aAAa,YAAY,aAAa,cAAc,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,sBAAsB,CAAC,IAAI,CAAC;AACpI,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAsB;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,OAAO,aAAa,YAAY,eAAe,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"evm.js","sourceRoot":"","sources":["../../src/token/evm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAG1E,MAAM,CAAC,MAAM,iBAAiB,GAAG,mDAAmD,CAAC;AAErF,SAAS,WAAW,CAAC,KAAgC;IACnD,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAChG,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IAC1C,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;kFACkF;AAClF,SAAS,UAAU,CACjB,IAA6C,EAC7C,YAAoB,EACpB,KAAa,EACb,MAAc;IAEd,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAC5E,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,MAAM,KAAK,CAAC;IAC7B,OAAO;QACL,IAAI,EAAE,EAAE,KAAK,EAAE;QACf,GAAG,EAAE,CAAC,SAAS,KAAK,gBAAgB,YAAY,0BAA0B,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED;wGACwG;AACxG,MAAM,UAAU,qBAAqB,CAAC,IAAuB,EAAE,MAAM,GAAG,KAAK;IAC3E,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAG,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,oBAAoB,CAAC,IAAsB,EAAE,MAAM,GAAG,KAAK;IACzE,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,OAAQ,EAAE,SAAS,CAAC,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;IAErF,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAsB;IACzD,MAAM,YAAY,GAAG,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,OAAO,aAAa,YAAY,eAAe,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5E,CAAC"}
@@ -2,19 +2,19 @@
2
2
  * `@eco-incorp/sauce`'s `token` module — the universal token interface.
3
3
  *
4
4
  * One object, `Token`, exposing `transfer`/`approve`/`balanceOf` — lowered to an ERC20 call on an
5
- * EVM compile target, and to an SPL Token program CPI on `svm`. Installed as a DEFAULT GLOBAL (zero
6
- * import, `const Token: TokenApi`) by `sdk/src/routes/globals.ts`; this module is also importable
7
- * directly as `token.Token` (or any of its named exports) for a caller who prefers not to rely on
8
- * the global.
5
+ * EVM compile target, and to an SPL Token program CPI on `svm`. Re-exported from the package root
6
+ * as `Token` (with the `Token(addr)` call signature intersected in — see
7
+ * `sdk/src/routes/chain-exports.generated.ts`); this module is also importable directly as
8
+ * `token.Token`, or any of its named exports.
9
9
  *
10
10
  * Compiler-free, like `swap/` and `deposit/`: every function here returns SauceScript SOURCE (or a
11
11
  * structured EVM `Call`); the caller runs `compile()` with explicit options. See
12
12
  * `sdk/src/token/source.ts` for the per-target emission seam and `sdk/src/token/api.ts` for the
13
13
  * `Token`/`TokenCall` builder shape.
14
14
  *
15
- * Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits a typed-binding
16
- * `IERC20.at(token).transfer(...)` call, identical to how `swap/source.ts`/`deposit/source.ts`
17
- * already call protocol contracts; the SPL arm (`svm.ts`) emits `svm.call(program, accounts,
15
+ * Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits the writes with
16
+ * OpenZeppelin `SafeERC20` semantics through `safe.ts`, and the `balanceOf` read as a typed
17
+ * `IERC20.at(token).balanceOf(...)` binding; the SPL arm (`svm.ts`) emits `svm.call(program, accounts,
18
18
  * accounts)` against the SPL Token program, reusing the `svmSettleSource` idiom
19
19
  * (`accountData`/`accountUint`, the `le8` u64 byteswap helper, `TransferChecked`/`ApproveChecked`).
20
20
  * The two arms are NOT interchangeable at compile time — the compiler rejects a contract binding on
@@ -2,19 +2,19 @@
2
2
  * `@eco-incorp/sauce`'s `token` module — the universal token interface.
3
3
  *
4
4
  * One object, `Token`, exposing `transfer`/`approve`/`balanceOf` — lowered to an ERC20 call on an
5
- * EVM compile target, and to an SPL Token program CPI on `svm`. Installed as a DEFAULT GLOBAL (zero
6
- * import, `const Token: TokenApi`) by `sdk/src/routes/globals.ts`; this module is also importable
7
- * directly as `token.Token` (or any of its named exports) for a caller who prefers not to rely on
8
- * the global.
5
+ * EVM compile target, and to an SPL Token program CPI on `svm`. Re-exported from the package root
6
+ * as `Token` (with the `Token(addr)` call signature intersected in — see
7
+ * `sdk/src/routes/chain-exports.generated.ts`); this module is also importable directly as
8
+ * `token.Token`, or any of its named exports.
9
9
  *
10
10
  * Compiler-free, like `swap/` and `deposit/`: every function here returns SauceScript SOURCE (or a
11
11
  * structured EVM `Call`); the caller runs `compile()` with explicit options. See
12
12
  * `sdk/src/token/source.ts` for the per-target emission seam and `sdk/src/token/api.ts` for the
13
13
  * `Token`/`TokenCall` builder shape.
14
14
  *
15
- * Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits a typed-binding
16
- * `IERC20.at(token).transfer(...)` call, identical to how `swap/source.ts`/`deposit/source.ts`
17
- * already call protocol contracts; the SPL arm (`svm.ts`) emits `svm.call(program, accounts,
15
+ * Two arms, chosen per call (not per accessor): the ERC20 arm (`evm.ts`) emits the writes with
16
+ * OpenZeppelin `SafeERC20` semantics through `safe.ts`, and the `balanceOf` read as a typed
17
+ * `IERC20.at(token).balanceOf(...)` binding; the SPL arm (`svm.ts`) emits `svm.call(program, accounts,
18
18
  * accounts)` against the SPL Token program, reusing the `svmSettleSource` idiom
19
19
  * (`accountData`/`accountUint`, the `le8` u64 byteswap helper, `TransferChecked`/`ApproveChecked`).
20
20
  * The two arms are NOT interchangeable at compile time — the compiler rejects a contract binding on
@@ -0,0 +1,17 @@
1
+ /** One ABI word: a build-time constant, or the name of a SauceScript local holding it. */
2
+ export type WordArg = {
3
+ readonly literal: bigint;
4
+ } | {
5
+ readonly local: string;
6
+ };
7
+ /** `transfer(to, amount)`, checked the way `SafeERC20.safeTransfer` checks it. */
8
+ export declare function safeTransferStatements(prefix: string, token: string, to: WordArg, amount: WordArg): readonly string[];
9
+ /**
10
+ * `approve(spender, amount)`, checked like `SafeERC20` and reset like `forceApprove`.
11
+ *
12
+ * Emits, in order: read the current allowance from this contract to `spender`; if it is non-zero,
13
+ * `approve(spender, 0)` and check that; then `approve(spender, amount)` and check that. A token
14
+ * that refuses either call still reverts the whole execution.
15
+ */
16
+ export declare function safeApproveStatements(prefix: string, token: string, spender: WordArg, amount: WordArg): readonly string[];
17
+ //# sourceMappingURL=safe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../src/token/safe.ts"],"names":[],"mappings":"AAqDA,0FAA0F;AAC1F,MAAM,MAAM,OAAO,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAoJhF,kFAAkF;AAClF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,OAAO,GACd,SAAS,MAAM,EAAE,CAEnB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,GACd,SAAS,MAAM,EAAE,CAgCnB"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * ERC-20 writes with OpenZeppelin `SafeERC20` semantics, in SauceScript.
3
+ *
4
+ * WHY NOT THE OBVIOUS THING. The vendored `IERC20` declares `transfer`/`approve` as returning
5
+ * `bool`, and compiler 2.3.0 lowers a declared output to call-THEN-DECODE even when the program
6
+ * discards it. Decoding from empty returndata reverts on this engine, so `IERC20.at(usdt).approve(…)`
7
+ * reverts on any token that returns nothing — USDT among them.
8
+ *
9
+ * The first fix here skipped the decode entirely. That cured the revert and bought two silent
10
+ * failures with it, both of which `SafeERC20` exists to prevent:
11
+ *
12
+ * - a token that returns `false` instead of reverting was treated as success — value lost, quietly;
13
+ * - a call to an address with no code "succeeded", because a call to an EOA always does.
14
+ *
15
+ * WHAT THIS EMITS is `SafeERC20`'s check: issue the call as raw bytes so nothing is decoded on the
16
+ * way out, then look at what came back. Empty returndata is accepted only if the target HAS code;
17
+ * anything else must be an ABI word equal to `1`. A callee that reverts still reverts, because
18
+ * `evm.call` bubbles it.
19
+ *
20
+ * ```
21
+ * const r = evm.call(token, 0n, calldata);
22
+ * if (r.length == 0) { require(ctx.codeSize(token) > 0); }
23
+ * else { const [rok] = abi.decode(r, ["Uint256"]); require(rok == 1n); }
24
+ * ```
25
+ *
26
+ * The decode is load-bearing, not ceremony. It refuses fewer than 32 bytes and reads only the first
27
+ * word of a longer return, which is what OpenZeppelin does. `r.toBe()`, the obvious alternative,
28
+ * zero-pads a 1- or 31-byte return into a `1` and accepts it, and refuses a 64-byte return whose
29
+ * first word is `1` — wrong in both directions, and exactly what this file emitted until the
30
+ * execution matrix in `test/std/token/evm.e2e.test.ts` ran it beside OpenZeppelin.
31
+ *
32
+ * APPROVE ALSO HANDLES USDT'S RULE, which is `forceApprove`'s job. USDT reverts when a non-zero
33
+ * allowance is changed to another non-zero value, and that is not a theoretical hazard here: every
34
+ * intent on a chain shares ONE Executor-owned Pot, so a residual allowance left by an earlier
35
+ * fulfilment breaks the next one. OZ tries the approve and falls back on catching the revert; a
36
+ * reverting `evm.call` cannot be caught in a Sauce program, so this READS the allowance first — a
37
+ * `uint256`, always safe to decode — and emits a reset to zero only when it is non-zero. Same end
38
+ * state, decided before the call instead of after, at the cost of one STATICCALL.
39
+ *
40
+ * The calldata itself is built off-chain by the same viem encoder every other ERC-20 call in this
41
+ * SDK goes through, cut at the words only known at run time, and reassembled by the program with
42
+ * `.concat` — the mechanism `routes/template.ts` uses to splice an intent.
43
+ *
44
+ * `@sauce/token`'s EVM writes have the same semantics, as library functions. This file does not call
45
+ * them, and stays INLINE on purpose: the settle recipe is compiled by partners whose resolver serves
46
+ * only `./artifacts/IERC20.json`, so an emitted program cannot assume the library resolves.
47
+ * `test/std/token/evm.e2e.test.ts` holds the two to one behaviour, running both — and OpenZeppelin's
48
+ * own `SafeERC20` — over the same matrix of tokens.
49
+ */
50
+ import { encodeFunctionData, getAbiItem } from "viem";
51
+ import { ERC20ABI } from "../protocols/erc20/abis.js";
52
+ /** Distinctive values with no chance of being a real spender or amount, planted in the run-time
53
+ * positions so the cut points can be FOUND rather than assumed. Two of them because viem validates
54
+ * an `address` argument as 20 bytes and will not accept a full word there. */
55
+ const ADDRESS_SENTINEL = "0x5a0ce00000000000000000000000000000000ce5";
56
+ const UINT_SENTINEL = (1n << 255n) + 0x5a0cen;
57
+ function isLocal(arg) {
58
+ return "local" in arg;
59
+ }
60
+ /** The declared input types of `fn`, so an argument is encoded as whatever the ABI says it is
61
+ * rather than as whatever this file assumed. */
62
+ function inputTypes(fn) {
63
+ const item = getAbiItem({ abi: ERC20ABI, name: fn });
64
+ if (item === undefined)
65
+ throw new Error(`token/safe: ERC20ABI declares no ${fn}`);
66
+ return item.inputs.map((input) => input.type);
67
+ }
68
+ function encodeArg(type, arg) {
69
+ if (type === "address") {
70
+ return isLocal(arg)
71
+ ? ADDRESS_SENTINEL
72
+ : `0x${arg.literal.toString(16).padStart(40, "0")}`;
73
+ }
74
+ return isLocal(arg) ? UINT_SENTINEL : arg.literal;
75
+ }
76
+ /** The 32-byte word `encodeArg`'s sentinel occupies, as lowercase hex without `0x`. */
77
+ function sentinelWord(type) {
78
+ return type === "address"
79
+ ? ADDRESS_SENTINEL.slice(2).padStart(64, "0")
80
+ : UINT_SENTINEL.toString(16).padStart(64, "0");
81
+ }
82
+ /**
83
+ * `<fn>(<args>)` calldata with every LITERAL argument already encoded, returned as the byte runs
84
+ * either side of the run-time words.
85
+ *
86
+ * Built by encoding the real call through viem with a sentinel in each run-time position and then
87
+ * cutting there, rather than by concatenating a hand-written selector with hand-padded words: the
88
+ * selector and the padding are then the encoder's, not this file's, and cannot drift from the ABI
89
+ * the rest of the SDK calls with. The sentinel is checked to land where expected, so a change in
90
+ * argument order fails here instead of shipping a mis-ordered call.
91
+ */
92
+ function chunksFor(fn, args) {
93
+ const types = inputTypes(fn);
94
+ if (types.length !== args.length) {
95
+ throw new Error(`token/safe: ERC20ABI declares ${fn} with ${types.length} argument(s), got ${args.length}`);
96
+ }
97
+ const encoded = encodeFunctionData({
98
+ abi: ERC20ABI,
99
+ functionName: fn,
100
+ args: args.map((arg, i) => encodeArg(types[i], arg)),
101
+ }).toLowerCase();
102
+ const body = encoded.slice(10); // strip the 4-byte selector
103
+ const chunks = [];
104
+ let cursor = 0;
105
+ for (const [index, arg] of args.entries()) {
106
+ if (!isLocal(arg))
107
+ continue;
108
+ const at = body.indexOf(sentinelWord(types[index]), cursor);
109
+ if (at === -1 || at % 64 !== 0 || at / 64 !== index) {
110
+ throw new Error(`token/safe: ${fn} argument ${index} did not encode to word ${index} — the ERC20 ABI's ` +
111
+ "argument order has moved and this lowering would emit a mis-ordered call.");
112
+ }
113
+ chunks.push(`0x${body.slice(cursor, at)}`);
114
+ cursor = at + 64;
115
+ }
116
+ chunks.push(`0x${body.slice(cursor)}`);
117
+ // Only the FIRST run carries the selector; every later one is a pure byte run, and the run BETWEEN
118
+ // two adjacent run-time words is legitimately empty (`transfer(local, local)` has one).
119
+ chunks[0] = `0x${encoded.slice(2, 10)}${chunks[0].slice(2)}`;
120
+ return chunks;
121
+ }
122
+ /**
123
+ * The statements that issue one ERC-20 write with no output decode.
124
+ *
125
+ * `prefix` namespaces the locals this introduces, the same discipline `nest.ts` and
126
+ * `nest-dynamic.ts` already use so several of these merge into one program scope. Each literal byte
127
+ * run is bound to its own `const` before `.concat` is called on it — a method call directly on a
128
+ * `hex` literal is outside the compiler's M1 subset.
129
+ */
130
+ function statementsFor(fn, prefix, token, args) {
131
+ const chunks = chunksFor(fn, args);
132
+ const statements = [];
133
+ const names = chunks.map((chunk, i) => {
134
+ const name = `${prefix}${fn === "approve" ? "ap" : "tr"}${i}`;
135
+ statements.push(`const ${name} = hex\`${chunk.slice(2)}\`;`);
136
+ return name;
137
+ });
138
+ let expr = names[0];
139
+ let chunkIndex = 1;
140
+ for (const arg of args) {
141
+ if (!isLocal(arg))
142
+ continue;
143
+ expr += `.concat(${arg.local}.toBytesBe(32))`;
144
+ // The trailing run after the LAST run-time word is empty whenever that word is last; binding and
145
+ // concatenating it would cost bytecode for nothing.
146
+ if (chunks[chunkIndex] !== "0x")
147
+ expr += `.concat(${names[chunkIndex]})`;
148
+ chunkIndex++;
149
+ }
150
+ const resultVar = `${prefix}${fn === "approve" ? "ar" : "tr"}`;
151
+ statements.push(`const ${resultVar} = evm.call(${token}, 0n, ${expr});`);
152
+ statements.push(optionalReturnCheck(resultVar, token));
153
+ // Drop the byte-run consts that were skipped above, so the program declares nothing unused. Only
154
+ // the `hex` chunks are candidates: the result const is named in the check below the call, not in
155
+ // the concat expression, and filtering on that would delete the call itself.
156
+ const unused = new Set(names.filter((name) => name !== names[0] && !expr.includes(name)));
157
+ return statements.filter((line) => {
158
+ const declared = /^const (\w+) = hex`/.exec(line);
159
+ return declared === null || !unused.has(declared[1]);
160
+ });
161
+ }
162
+ /**
163
+ * The `SafeERC20` check over the result of a write already issued into `resultVar`: empty
164
+ * returndata is success only from an address that has code, and anything else must decode as a
165
+ * word equal to 1 — see the header for why it is a decode and not `toBe()`.
166
+ */
167
+ function optionalReturnCheck(resultVar, token) {
168
+ return (`if (${resultVar}.length == 0) { require(ctx.codeSize(${token}) > 0); } ` +
169
+ `else { const [${resultVar}ok] = abi.decode(${resultVar}, ["Uint256"]); ` +
170
+ `require(${resultVar}ok == 1n); }`);
171
+ }
172
+ /** `transfer(to, amount)`, checked the way `SafeERC20.safeTransfer` checks it. */
173
+ export function safeTransferStatements(prefix, token, to, amount) {
174
+ return statementsFor("transfer", prefix, token, [to, amount]);
175
+ }
176
+ /**
177
+ * `approve(spender, amount)`, checked like `SafeERC20` and reset like `forceApprove`.
178
+ *
179
+ * Emits, in order: read the current allowance from this contract to `spender`; if it is non-zero,
180
+ * `approve(spender, 0)` and check that; then `approve(spender, amount)` and check that. A token
181
+ * that refuses either call still reverts the whole execution.
182
+ */
183
+ export function safeApproveStatements(prefix, token, spender, amount) {
184
+ const selfVar = `${prefix}self`;
185
+ const allowanceVar = `${prefix}cur`;
186
+ const statements = [`const ${selfVar} = ctx.self();`];
187
+ // `allowance(owner, spender)` — a `uint256` return, so this one is safe to decode normally. The
188
+ // owner is the executing contract, which is only known at run time, so it is spliced like any
189
+ // other run-time word.
190
+ const query = chunksFor("allowance", [{ local: selfVar }, spender]);
191
+ const queryVars = query.map((chunk, i) => {
192
+ statements.push(`const ${prefix}q${i} = hex\`${chunk.slice(2)}\`;`);
193
+ return `${prefix}q${i}`;
194
+ });
195
+ let queryExpr = `${queryVars[0]}.concat(${selfVar}.toBytesBe(32))`;
196
+ if (query[1] !== "0x")
197
+ queryExpr += `.concat(${queryVars[1]})`;
198
+ if (isLocal(spender)) {
199
+ queryExpr += `.concat(${spender.local}.toBytesBe(32))`;
200
+ if (query[2] !== undefined && query[2] !== "0x")
201
+ queryExpr += `.concat(${queryVars[2]})`;
202
+ }
203
+ statements.push(`const ${prefix}qd = ${queryExpr};`, `const ${prefix}qr = evm.static(${token}, ${prefix}qd);`, `const [${allowanceVar}] = abi.decode(${prefix}qr, ["Uint256"]);`);
204
+ // The reset, only when there is something to reset. USDT refuses a non-zero -> non-zero change,
205
+ // and a shared Pot is exactly where a stale allowance is waiting.
206
+ const reset = statementsFor("approve", `${prefix}z`, token, [spender, { literal: 0n }]);
207
+ statements.push(`if (${allowanceVar} > 0n) {`, ...reset.map((line) => ` ${line}`), `}`);
208
+ statements.push(...statementsFor("approve", prefix, token, [spender, amount]));
209
+ return statements;
210
+ }
211
+ //# sourceMappingURL=safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.js","sourceRoot":"","sources":["../../src/token/safe.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,5 @@
1
1
  import { type SvmEmitState } from "./svm.js";
2
2
  import type { TokenSpec, TokenTarget } from "./types.js";
3
- /** `baseDirs` for compiling any program `tokenSource`/`tokenCallStatement` produces — resolves the
4
- * generated `import { IERC20 } from "./artifacts/IERC20.json"` against this installed package's
5
- * dist root. Same value/pattern as `swap/source.ts`'s `SWAP_BASE_DIRS`. */
6
- export declare const TOKEN_BASE_DIRS: readonly string[];
7
3
  /** The import lines a `tokenSource(specs, target)` program needs. On an EVM target: `IERC20`, iff
8
4
  * any spec is `transfer`/`approve`/`balanceOf` (always — every op needs the binding). On `svm`:
9
5
  * none (SVM ops use only the built-in `svm.sload`/`svm.call` globals). */
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"AAcA,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAQlB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIzD;;4EAE4E;AAC5E,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA4B,CAAC;AAQ1E;;2EAE2E;AAC3E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,MAAM,EAAE,WAAW,GAClB,SAAS,MAAM,EAAE,CAGnB;AAED;;;oGAGoG;AACpG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,KAAK,SAAI,EACT,QAAQ,CAAC,EAAE,YAAY,GACtB,MAAM,CAiBR;AAED;sEACsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ5E;AAED;;iFAEiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,CAOxF;AAED,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,GAAG,SAAS,SAAS,EAAE,EACtC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,kBAAuB,GAC5B,MAAM,CAoCR"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"AAYA,OAAO,EAQL,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAQlB,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQzD;;2EAE2E;AAC3E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,MAAM,EAAE,WAAW,GAClB,SAAS,MAAM,EAAE,CAGnB;AAED;;;oGAGoG;AACpG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,WAAW,EACnB,KAAK,SAAI,EACT,QAAQ,CAAC,EAAE,YAAY,GACtB,MAAM,CAsBR;AAED;sEACsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ5E;AAED;;iFAEiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,MAAM,EAAE,CAOxF;AAED,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,SAAS,GAAG,SAAS,SAAS,EAAE,EACtC,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,kBAAuB,GAC5B,MAAM,CAoCR"}
@@ -1,18 +1,12 @@
1
1
  /**
2
2
  * SauceScript SOURCE emission for the universal token interface — pure string templating, no
3
3
  * compiler import (matches `swap/source.ts`/`deposit/source.ts`'s posture: every compile option
4
- * stays explicit at the call site).
4
+ * stays explicit at the call site). The `IERC20` ABI an EVM program imports is served by the route
5
+ * compiler itself (`embedded/resolve.ts`), so compiling one needs no resolver option.
5
6
  */
6
- import { dirname, join } from "node:path";
7
- import { fileURLToPath } from "node:url";
8
- import { evmApproveStatement, evmBalanceExpression, evmTransferStatement, ERC20_IMPORT_LINE, } from "./evm.js";
7
+ import { evmApproveStatements, evmBalanceExpression, evmTransferStatements, ERC20_IMPORT_LINE, } from "./evm.js";
9
8
  import { accountRefsForApprove, accountRefsForTransfer, newSvmEmitState, svmAccountParamList, svmApproveLines, svmBalanceExpression, svmTransferLines, } from "./svm.js";
10
9
  import { assertNoDuplicateSvmRefs, isEvmTarget, validateApproveSpec, validateBalanceSpec, validateTransferSpec, } from "./params.js";
11
- const __dirname = dirname(fileURLToPath(import.meta.url));
12
- /** `baseDirs` for compiling any program `tokenSource`/`tokenCallStatement` produces — resolves the
13
- * generated `import { IERC20 } from "./artifacts/IERC20.json"` against this installed package's
14
- * dist root. Same value/pattern as `swap/source.ts`'s `SWAP_BASE_DIRS`. */
15
- export const TOKEN_BASE_DIRS = [join(__dirname, "..")];
16
10
  function validateSpec(spec, target) {
17
11
  if (spec.op === "transfer")
18
12
  validateTransferSpec(spec, target);
@@ -40,7 +34,10 @@ export function tokenCallStatement(spec, target, index = 0, svmState) {
40
34
  throw new Error("tokenCallStatement: Token.balanceOf has no statement form — use tokenExpression instead");
41
35
  }
42
36
  if (isEvmTarget(target)) {
43
- return spec.op === "transfer" ? evmTransferStatement(spec) : evmApproveStatement(spec);
37
+ const prefix = `t${index}_`;
38
+ return (spec.op === "transfer"
39
+ ? evmTransferStatements(spec, prefix)
40
+ : evmApproveStatements(spec, prefix)).join("\n");
44
41
  }
45
42
  const lines = spec.op === "transfer"
46
43
  ? svmTransferLines(spec, index, state)
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D;;4EAE4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;AAE1E,SAAS,YAAY,CAAC,IAAe,EAAE,MAAmB;IACxD,IAAI,IAAI,CAAC,EAAE,KAAK,UAAU;QAAE,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;SAC1D,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS;QAAE,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;;QAC7D,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;2EAE2E;AAC3E,MAAM,UAAU,gBAAgB,CAC9B,KAA2B,EAC3B,MAAmB;IAEnB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;oGAGoG;AACpG,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,MAAmB,EACnB,KAAK,GAAG,CAAC,EACT,QAAuB;IAEvB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,KAAK,GAAG,QAAQ,IAAI,eAAe,EAAE,CAAC;IAE5C,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GACT,IAAI,CAAC,EAAE,KAAK,UAAU;QACpB,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;QACtC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;sEACsE;AACtE,MAAM,UAAU,eAAe,CAAC,IAAe,EAAE,MAAmB;IAClE,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,EAAE,0DAA0D,CAC5F,CAAC;IACJ,CAAC;IACD,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC;AAED;;iFAEiF;AACjF,MAAM,UAAU,gBAAgB,CAAC,IAAe,EAAE,MAAmB;IACnE,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,IAAI,CAAC,EAAE,KAAK,WAAW;QAAE,OAAO,CAAC,IAAI,CAAC,GAAI,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAI,CAAC;IACvB,OAAO,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC7F,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,IAAsC,EACtC,MAAmB,EACnB,OAA2B,EAAE;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAiB,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC5F,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAE1D,MAAM,WAAW,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,EAAE,KAAK,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS;SACnB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,IAAI;SACD,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;SACpB,IAAI,CAAC,IAAI,CAAC,CACd;SACA,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,2FAA2F;IAC3F,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACrE,+FAA+F;IAC/F,4FAA4F;IAC5F,MAAM,UAAU,GACd,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,YAAY,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAClG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/token/source.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ```
10
10
  * payload := program , args
11
- * program := 356 bytes ; SETTLE_WIRE.PROGRAM_BYTES — invariant
11
+ * program := 435 bytes ; SETTLE_WIRE.PROGRAM_BYTES — invariant
12
12
  * args := head , token_array
13
13
  * head := tokens_ptr , minout , recipient ; three 32-byte big-endian words
14
14
  * tokens_ptr := word, value = 96 ; byte offset WITHIN args of token_array
@@ -49,7 +49,7 @@
49
49
  *
50
50
  * WHAT THIS PROVES. `decodeSettleProgram` is STRUCTURAL: it pins the program's LENGTH and reads the
51
51
  * tail, so it tells you which `(tokens, minOut, recipient)` a payload carries and nothing about
52
- * what the 356 program bytes do. `validateSettleProgram` adds the authenticity half — one
52
+ * what the 435 program bytes do. `validateSettleProgram` adds the authenticity half — one
53
53
  * `keccak256` over the WHOLE program against `SETTLE_WIRE.PROGRAM_HASH` — and that is now a
54
54
  * complete answer rather than a partial one: because the arguments left the program, a matching
55
55
  * hash means the payload runs the audited `settle.sauce.ts` and nothing else — a statement about
@@ -163,18 +163,18 @@ export declare function bestEffortDecode(parse: SettleParse): DecodedSettleProgr
163
163
  * dirty upper bytes, and a zero recipient — see §4 for why. Throws `SettleDecodeError` (carrying a
164
164
  * stable `.code`) on any of the failures in `SettleFailureCode`.
165
165
  *
166
- * This is a STRUCTURAL decode: it proves the payload is `356 bytes || a canonical argument tail`.
167
- * It does NOT prove those 356 bytes are the settle program you audited — any 356-byte prefix
166
+ * This is a STRUCTURAL decode: it proves the payload is `435 bytes || a canonical argument tail`.
167
+ * It does NOT prove those 435 bytes are the settle program you audited — any 435-byte prefix
168
168
  * passes. Use `validateSettleProgram` when that matters, which is nearly always.
169
169
  */
170
170
  export declare function decodeSettleProgram(payload: Hex, programBytes?: number): DecodedSettleProgram;
171
171
  /**
172
- * `decodeSettleProgram` plus the authenticity pin: the payload's 356 program bytes must hash to
172
+ * `decodeSettleProgram` plus the authenticity pin: the payload's 435 program bytes must hash to
173
173
  * `SETTLE_WIRE.PROGRAM_HASH`. Because the arguments no longer live inside the program, a match
174
174
  * means the payload runs the audited `recipes/settle.sauce.ts` and nothing else — the whole
175
175
  * question, not the structural half.
176
176
  *
177
- * Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different 356 bytes,
177
+ * Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different 435 bytes,
178
178
  * and whatever `decodeSettleProgram` would throw otherwise.
179
179
  *
180
180
  * `accepted` overrides the pin. The dependency is a caret range and `SETTLE_WIRE` documents that a
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * ```
10
10
  * payload := program , args
11
- * program := 356 bytes ; SETTLE_WIRE.PROGRAM_BYTES — invariant
11
+ * program := 435 bytes ; SETTLE_WIRE.PROGRAM_BYTES — invariant
12
12
  * args := head , token_array
13
13
  * head := tokens_ptr , minout , recipient ; three 32-byte big-endian words
14
14
  * tokens_ptr := word, value = 96 ; byte offset WITHIN args of token_array
@@ -49,7 +49,7 @@
49
49
  *
50
50
  * WHAT THIS PROVES. `decodeSettleProgram` is STRUCTURAL: it pins the program's LENGTH and reads the
51
51
  * tail, so it tells you which `(tokens, minOut, recipient)` a payload carries and nothing about
52
- * what the 356 program bytes do. `validateSettleProgram` adds the authenticity half — one
52
+ * what the 435 program bytes do. `validateSettleProgram` adds the authenticity half — one
53
53
  * `keccak256` over the WHOLE program against `SETTLE_WIRE.PROGRAM_HASH` — and that is now a
54
54
  * complete answer rather than a partial one: because the arguments left the program, a matching
55
55
  * hash means the payload runs the audited `settle.sauce.ts` and nothing else — a statement about
@@ -290,8 +290,8 @@ export function bestEffortDecode(parse) {
290
290
  * dirty upper bytes, and a zero recipient — see §4 for why. Throws `SettleDecodeError` (carrying a
291
291
  * stable `.code`) on any of the failures in `SettleFailureCode`.
292
292
  *
293
- * This is a STRUCTURAL decode: it proves the payload is `356 bytes || a canonical argument tail`.
294
- * It does NOT prove those 356 bytes are the settle program you audited — any 356-byte prefix
293
+ * This is a STRUCTURAL decode: it proves the payload is `435 bytes || a canonical argument tail`.
294
+ * It does NOT prove those 435 bytes are the settle program you audited — any 435-byte prefix
295
295
  * passes. Use `validateSettleProgram` when that matters, which is nearly always.
296
296
  */
297
297
  export function decodeSettleProgram(payload, programBytes = SETTLE_WIRE.PROGRAM_BYTES) {
@@ -307,12 +307,12 @@ export function decodeSettleProgram(payload, programBytes = SETTLE_WIRE.PROGRAM_
307
307
  return decoded;
308
308
  }
309
309
  /**
310
- * `decodeSettleProgram` plus the authenticity pin: the payload's 356 program bytes must hash to
310
+ * `decodeSettleProgram` plus the authenticity pin: the payload's 435 program bytes must hash to
311
311
  * `SETTLE_WIRE.PROGRAM_HASH`. Because the arguments no longer live inside the program, a match
312
312
  * means the payload runs the audited `recipes/settle.sauce.ts` and nothing else — the whole
313
313
  * question, not the structural half.
314
314
  *
315
- * Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different 356 bytes,
315
+ * Throws `SettleDecodeError` with code `PROGRAM_HASH` when the program is a different 435 bytes,
316
316
  * and whatever `decodeSettleProgram` would throw otherwise.
317
317
  *
318
318
  * `accepted` overrides the pin. The dependency is a caret range and `SETTLE_WIRE` documents that a
@@ -347,7 +347,7 @@ export function validateSettleProgram(payload, accepted = [
347
347
  // That precedence is the guarantee, and it is the whole of it. Among parse errors there is no such
348
348
  // ordering: each is an artefact of the candidate that produced it, and the FIRST supplied pin's is
349
349
  // the one reported -- so with several pins and no match at all, the code can still differ by pin
350
- // order (a 356-byte program read at 338 reports TOKENS_OFFSET where reading it at 356 reports
350
+ // order (measured on v1's 588-byte payload: a 410-byte pin reports TOKENS_OFFSET, a 461-byte pin
351
351
  // ARGS_TRUNCATED). Diagnostic only: through `intent.ts` every one of them collapses to `null`, and
352
352
  // with a single pin -- the default and common case -- there is no order to depend on.
353
353
  let hashMismatch = null;