@eco-incorp/sauce 0.99.6 → 0.99.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1159) hide show
  1. package/README.md +58 -16
  2. package/actions/action-program.schema.json +480 -379
  3. package/actions/dist/abis.d.ts +19 -18
  4. package/actions/dist/abis.d.ts.map +1 -1
  5. package/actions/dist/abis.js +29 -29
  6. package/actions/dist/compile.d.ts +4 -4
  7. package/actions/dist/compile.d.ts.map +1 -1
  8. package/actions/dist/compile.js +3 -1
  9. package/actions/dist/compose.d.ts +63 -6
  10. package/actions/dist/compose.d.ts.map +1 -1
  11. package/actions/dist/compose.js +100 -16
  12. package/actions/dist/index.d.ts +1 -1
  13. package/actions/dist/index.d.ts.map +1 -1
  14. package/actions/dist/names.d.ts +88 -0
  15. package/actions/dist/names.d.ts.map +1 -0
  16. package/actions/dist/names.js +334 -0
  17. package/actions/dist/program.d.ts.map +1 -1
  18. package/actions/dist/program.js +115 -5
  19. package/actions/dist/registry.d.ts +10 -8
  20. package/actions/dist/registry.d.ts.map +1 -1
  21. package/actions/dist/registry.js +10 -8
  22. package/actions/dist/schema.d.ts.map +1 -1
  23. package/actions/dist/schema.js +99 -12
  24. package/actions/dist/semantics.d.ts +12 -2
  25. package/actions/dist/semantics.d.ts.map +1 -1
  26. package/actions/dist/semantics.js +78 -8
  27. package/actions/dist/spec.d.ts +30 -0
  28. package/actions/dist/spec.d.ts.map +1 -1
  29. package/actions/dist/spec.js +151 -138
  30. package/actions/dist/split-swap.d.ts +10 -5
  31. package/actions/dist/split-swap.d.ts.map +1 -1
  32. package/actions/dist/split-swap.js +48 -7
  33. package/actions/dist/to-quote.d.ts +14 -5
  34. package/actions/dist/to-quote.d.ts.map +1 -1
  35. package/actions/dist/to-quote.js +210 -244
  36. package/actions/dist/to-sauce.d.ts +18 -4
  37. package/actions/dist/to-sauce.d.ts.map +1 -1
  38. package/actions/dist/to-sauce.js +232 -205
  39. package/actions/dist/types.d.ts +245 -147
  40. package/actions/dist/types.d.ts.map +1 -1
  41. package/actions/dist/types.js +4 -0
  42. package/docs/README.md +38 -0
  43. package/docs/api/README.md +37 -23
  44. package/docs/api/compiler.md +53 -12
  45. package/docs/api/contracts.md +105 -0
  46. package/docs/api/coverage.md +96 -57
  47. package/docs/api/router.md +238 -0
  48. package/docs/api/routes.md +31 -22
  49. package/docs/concepts/architecture.md +26 -3
  50. package/docs/concepts/saucescript.md +35 -55
  51. package/docs/examples/README.md +21 -14
  52. package/docs/examples/action-program.ts +51 -35
  53. package/docs/examples/cross-chain-cascade.sauce.ts +4 -0
  54. package/docs/examples/cross-chain-intent.sauce.ts +2 -1
  55. package/docs/examples/evm-execution.ts +2 -4
  56. package/docs/examples/first-intent.ts +7 -2
  57. package/docs/examples/pot-router.ts +19 -0
  58. package/docs/examples/registry-names.ts +52 -0
  59. package/docs/examples/router-route.sauce.ts +31 -0
  60. package/docs/examples/router-route.ts +72 -0
  61. package/docs/examples/router-swap.sauce.ts +16 -0
  62. package/docs/examples/router-swap.ts +47 -0
  63. package/docs/examples/venue-where-deployed.sauce.ts +14 -0
  64. package/docs/guides/actions.md +230 -120
  65. package/docs/guides/builders-and-actions.md +20 -14
  66. package/docs/guides/cli.md +1446 -0
  67. package/docs/guides/compiling.md +19 -7
  68. package/docs/guides/intents.md +228 -15
  69. package/docs/guides/mcp.md +540 -0
  70. package/docs/guides/nested-intents.md +21 -6
  71. package/docs/guides/protocols-and-tokens.md +218 -39
  72. package/docs/guides/quick-start.md +5 -0
  73. package/docs/guides/solana.md +199 -52
  74. package/docs/guides/verification.md +2 -2
  75. package/mcp/dist/config.js +78 -0
  76. package/mcp/dist/config.js.map +1 -0
  77. package/mcp/dist/entry.js +112 -0
  78. package/mcp/dist/entry.js.map +1 -0
  79. package/mcp/dist/files.js +64 -0
  80. package/mcp/dist/files.js.map +1 -0
  81. package/mcp/dist/guard.js +262 -0
  82. package/mcp/dist/guard.js.map +1 -0
  83. package/mcp/dist/http.js +111 -0
  84. package/mcp/dist/http.js.map +1 -0
  85. package/mcp/dist/intents.js +579 -0
  86. package/mcp/dist/intents.js.map +1 -0
  87. package/mcp/dist/prompts.js +153 -0
  88. package/mcp/dist/prompts.js.map +1 -0
  89. package/mcp/dist/reach.js +98 -0
  90. package/mcp/dist/reach.js.map +1 -0
  91. package/mcp/dist/resources.js +154 -0
  92. package/mcp/dist/resources.js.map +1 -0
  93. package/mcp/dist/sdk.js +34 -0
  94. package/mcp/dist/sdk.js.map +1 -0
  95. package/mcp/dist/server.js +119 -0
  96. package/mcp/dist/server.js.map +1 -0
  97. package/mcp/dist/setup.js +189 -0
  98. package/mcp/dist/setup.js.map +1 -0
  99. package/mcp/dist/skilltools.js +520 -0
  100. package/mcp/dist/skilltools.js.map +1 -0
  101. package/mcp/dist/terms.js +93 -0
  102. package/mcp/dist/terms.js.map +1 -0
  103. package/mcp/dist/tools.js +1499 -0
  104. package/mcp/dist/tools.js.map +1 -0
  105. package/mcp/dist/wallets.js +168 -0
  106. package/mcp/dist/wallets.js.map +1 -0
  107. package/package.json +18 -13
  108. package/sdk/dist/artifacts/V12Deployments.json +3 -1
  109. package/sdk/dist/artifacts/V12EngineGate.json +1 -2
  110. package/sdk/dist/artifacts/V12KitchenProxy.json +1 -0
  111. package/sdk/dist/chains/canonical.d.ts +15 -24
  112. package/sdk/dist/chains/canonical.d.ts.map +1 -1
  113. package/sdk/dist/chains/canonical.js +18 -29
  114. package/sdk/dist/chains/canonical.js.map +1 -1
  115. package/sdk/dist/cli/actions.d.ts +29 -0
  116. package/sdk/dist/cli/actions.d.ts.map +1 -0
  117. package/sdk/dist/cli/actions.js +122 -0
  118. package/sdk/dist/cli/actions.js.map +1 -0
  119. package/sdk/dist/cli/args.d.ts +118 -0
  120. package/sdk/dist/cli/args.d.ts.map +1 -0
  121. package/sdk/dist/cli/args.js +354 -0
  122. package/sdk/dist/cli/args.js.map +1 -0
  123. package/sdk/dist/cli/assume.d.ts +51 -0
  124. package/sdk/dist/cli/assume.d.ts.map +1 -0
  125. package/sdk/dist/cli/assume.js +207 -0
  126. package/sdk/dist/cli/assume.js.map +1 -0
  127. package/sdk/dist/cli/chain.d.ts +173 -0
  128. package/sdk/dist/cli/chain.d.ts.map +1 -0
  129. package/sdk/dist/cli/chain.js +462 -0
  130. package/sdk/dist/cli/chain.js.map +1 -0
  131. package/sdk/dist/cli/commands.d.ts +226 -0
  132. package/sdk/dist/cli/commands.d.ts.map +1 -0
  133. package/sdk/dist/cli/commands.js +637 -0
  134. package/sdk/dist/cli/commands.js.map +1 -0
  135. package/sdk/dist/cli/create.d.ts +70 -0
  136. package/sdk/dist/cli/create.d.ts.map +1 -0
  137. package/sdk/dist/cli/create.js +483 -0
  138. package/sdk/dist/cli/create.js.map +1 -0
  139. package/sdk/dist/cli/diagnostics.d.ts +12 -0
  140. package/sdk/dist/cli/diagnostics.d.ts.map +1 -0
  141. package/sdk/dist/cli/diagnostics.js +225 -0
  142. package/sdk/dist/cli/diagnostics.js.map +1 -0
  143. package/sdk/dist/cli/effects.d.ts +71 -0
  144. package/sdk/dist/cli/effects.d.ts.map +1 -0
  145. package/sdk/dist/cli/effects.js +279 -0
  146. package/sdk/dist/cli/effects.js.map +1 -0
  147. package/sdk/dist/cli/fill.d.ts +83 -0
  148. package/sdk/dist/cli/fill.d.ts.map +1 -0
  149. package/sdk/dist/cli/fill.js +734 -0
  150. package/sdk/dist/cli/fill.js.map +1 -0
  151. package/sdk/dist/cli/funding.d.ts +126 -0
  152. package/sdk/dist/cli/funding.d.ts.map +1 -0
  153. package/sdk/dist/cli/funding.js +514 -0
  154. package/sdk/dist/cli/funding.js.map +1 -0
  155. package/sdk/dist/cli/globals.d.ts +16 -0
  156. package/sdk/dist/cli/globals.d.ts.map +1 -0
  157. package/sdk/dist/cli/globals.js +219 -0
  158. package/sdk/dist/cli/globals.js.map +1 -0
  159. package/sdk/dist/cli/init.d.ts +34 -0
  160. package/sdk/dist/cli/init.d.ts.map +1 -0
  161. package/sdk/dist/cli/init.js +181 -0
  162. package/sdk/dist/cli/init.js.map +1 -0
  163. package/sdk/dist/cli/inputs.d.ts +72 -0
  164. package/sdk/dist/cli/inputs.d.ts.map +1 -0
  165. package/sdk/dist/cli/inputs.js +152 -0
  166. package/sdk/dist/cli/inputs.js.map +1 -0
  167. package/sdk/dist/cli/inspect.d.ts +48 -0
  168. package/sdk/dist/cli/inspect.d.ts.map +1 -0
  169. package/sdk/dist/cli/inspect.js +536 -0
  170. package/sdk/dist/cli/inspect.js.map +1 -0
  171. package/sdk/dist/cli/intent-commands.d.ts +71 -0
  172. package/sdk/dist/cli/intent-commands.d.ts.map +1 -0
  173. package/sdk/dist/cli/intent-commands.js +698 -0
  174. package/sdk/dist/cli/intent-commands.js.map +1 -0
  175. package/sdk/dist/cli/intent-svm.d.ts +15 -0
  176. package/sdk/dist/cli/intent-svm.d.ts.map +1 -0
  177. package/sdk/dist/cli/intent-svm.js +222 -0
  178. package/sdk/dist/cli/intent-svm.js.map +1 -0
  179. package/sdk/dist/cli/intents.d.ts +43 -0
  180. package/sdk/dist/cli/intents.d.ts.map +1 -0
  181. package/sdk/dist/cli/intents.js +89 -0
  182. package/sdk/dist/cli/intents.js.map +1 -0
  183. package/sdk/dist/cli/interactive.d.ts +11 -0
  184. package/sdk/dist/cli/interactive.d.ts.map +1 -0
  185. package/sdk/dist/cli/interactive.js +161 -0
  186. package/sdk/dist/cli/interactive.js.map +1 -0
  187. package/sdk/dist/cli/lifecycle-svm.d.ts +109 -0
  188. package/sdk/dist/cli/lifecycle-svm.d.ts.map +1 -0
  189. package/sdk/dist/cli/lifecycle-svm.js +299 -0
  190. package/sdk/dist/cli/lifecycle-svm.js.map +1 -0
  191. package/sdk/dist/cli/lifecycle.d.ts +439 -0
  192. package/sdk/dist/cli/lifecycle.d.ts.map +1 -0
  193. package/sdk/dist/cli/lifecycle.js +1721 -0
  194. package/sdk/dist/cli/lifecycle.js.map +1 -0
  195. package/sdk/dist/cli/main.d.ts +3 -0
  196. package/sdk/dist/cli/main.d.ts.map +1 -0
  197. package/sdk/dist/cli/main.js +8 -0
  198. package/sdk/dist/cli/main.js.map +1 -0
  199. package/sdk/dist/cli/mcp.d.ts +66 -0
  200. package/sdk/dist/cli/mcp.d.ts.map +1 -0
  201. package/sdk/dist/cli/mcp.js +169 -0
  202. package/sdk/dist/cli/mcp.js.map +1 -0
  203. package/sdk/dist/cli/password.d.ts +54 -0
  204. package/sdk/dist/cli/password.d.ts.map +1 -0
  205. package/sdk/dist/cli/password.js +148 -0
  206. package/sdk/dist/cli/password.js.map +1 -0
  207. package/sdk/dist/cli/policy.d.ts +130 -0
  208. package/sdk/dist/cli/policy.d.ts.map +1 -0
  209. package/sdk/dist/cli/policy.js +702 -0
  210. package/sdk/dist/cli/policy.js.map +1 -0
  211. package/sdk/dist/cli/pools.d.ts +140 -0
  212. package/sdk/dist/cli/pools.d.ts.map +1 -0
  213. package/sdk/dist/cli/pools.js +658 -0
  214. package/sdk/dist/cli/pools.js.map +1 -0
  215. package/sdk/dist/cli/price.d.ts +74 -0
  216. package/sdk/dist/cli/price.d.ts.map +1 -0
  217. package/sdk/dist/cli/price.js +321 -0
  218. package/sdk/dist/cli/price.js.map +1 -0
  219. package/sdk/dist/cli/prompt.d.ts +30 -0
  220. package/sdk/dist/cli/prompt.d.ts.map +1 -0
  221. package/sdk/dist/cli/prompt.js +53 -0
  222. package/sdk/dist/cli/prompt.js.map +1 -0
  223. package/sdk/dist/cli/publish.d.ts +48 -0
  224. package/sdk/dist/cli/publish.d.ts.map +1 -0
  225. package/sdk/dist/cli/publish.js +480 -0
  226. package/sdk/dist/cli/publish.js.map +1 -0
  227. package/sdk/dist/cli/receipt.d.ts +35 -0
  228. package/sdk/dist/cli/receipt.d.ts.map +1 -0
  229. package/sdk/dist/cli/receipt.js +63 -0
  230. package/sdk/dist/cli/receipt.js.map +1 -0
  231. package/sdk/dist/cli/rehearse.d.ts +80 -0
  232. package/sdk/dist/cli/rehearse.d.ts.map +1 -0
  233. package/sdk/dist/cli/rehearse.js +265 -0
  234. package/sdk/dist/cli/rehearse.js.map +1 -0
  235. package/sdk/dist/cli/report.d.ts +69 -0
  236. package/sdk/dist/cli/report.d.ts.map +1 -0
  237. package/sdk/dist/cli/report.js +206 -0
  238. package/sdk/dist/cli/report.js.map +1 -0
  239. package/sdk/dist/cli/returned.d.ts +16 -0
  240. package/sdk/dist/cli/returned.d.ts.map +1 -0
  241. package/sdk/dist/cli/returned.js +111 -0
  242. package/sdk/dist/cli/returned.js.map +1 -0
  243. package/sdk/dist/cli/run.d.ts +40 -0
  244. package/sdk/dist/cli/run.d.ts.map +1 -0
  245. package/sdk/dist/cli/run.js +3163 -0
  246. package/sdk/dist/cli/run.js.map +1 -0
  247. package/sdk/dist/cli/signer.d.ts +72 -0
  248. package/sdk/dist/cli/signer.d.ts.map +1 -0
  249. package/sdk/dist/cli/signer.js +243 -0
  250. package/sdk/dist/cli/signer.js.map +1 -0
  251. package/sdk/dist/cli/simulate.d.ts +11 -0
  252. package/sdk/dist/cli/simulate.d.ts.map +1 -0
  253. package/sdk/dist/cli/simulate.js +246 -0
  254. package/sdk/dist/cli/simulate.js.map +1 -0
  255. package/sdk/dist/cli/skills.d.ts +77 -0
  256. package/sdk/dist/cli/skills.d.ts.map +1 -0
  257. package/sdk/dist/cli/skills.js +527 -0
  258. package/sdk/dist/cli/skills.js.map +1 -0
  259. package/sdk/dist/cli/solana.d.ts +184 -0
  260. package/sdk/dist/cli/solana.d.ts.map +1 -0
  261. package/sdk/dist/cli/solana.js +1370 -0
  262. package/sdk/dist/cli/solana.js.map +1 -0
  263. package/sdk/dist/cli/store.d.ts +60 -0
  264. package/sdk/dist/cli/store.d.ts.map +1 -0
  265. package/sdk/dist/cli/store.js +196 -0
  266. package/sdk/dist/cli/store.js.map +1 -0
  267. package/sdk/dist/cli/support.d.ts +144 -0
  268. package/sdk/dist/cli/support.d.ts.map +1 -0
  269. package/sdk/dist/cli/support.js +217 -0
  270. package/sdk/dist/cli/support.js.map +1 -0
  271. package/sdk/dist/cli/svm-effects.d.ts +50 -0
  272. package/sdk/dist/cli/svm-effects.d.ts.map +1 -0
  273. package/sdk/dist/cli/svm-effects.js +196 -0
  274. package/sdk/dist/cli/svm-effects.js.map +1 -0
  275. package/sdk/dist/cli/terminal.d.ts +42 -0
  276. package/sdk/dist/cli/terminal.d.ts.map +1 -0
  277. package/sdk/dist/cli/terminal.js +136 -0
  278. package/sdk/dist/cli/terminal.js.map +1 -0
  279. package/sdk/dist/cli/verify.d.ts +32 -0
  280. package/sdk/dist/cli/verify.d.ts.map +1 -0
  281. package/sdk/dist/cli/verify.js +185 -0
  282. package/sdk/dist/cli/verify.js.map +1 -0
  283. package/sdk/dist/cli/wallet-commands.d.ts +59 -0
  284. package/sdk/dist/cli/wallet-commands.d.ts.map +1 -0
  285. package/sdk/dist/cli/wallet-commands.js +222 -0
  286. package/sdk/dist/cli/wallet-commands.js.map +1 -0
  287. package/sdk/dist/cli/wallet-send.d.ts +38 -0
  288. package/sdk/dist/cli/wallet-send.d.ts.map +1 -0
  289. package/sdk/dist/cli/wallet-send.js +303 -0
  290. package/sdk/dist/cli/wallet-send.js.map +1 -0
  291. package/sdk/dist/cli/wallets.d.ts +79 -0
  292. package/sdk/dist/cli/wallets.d.ts.map +1 -0
  293. package/sdk/dist/cli/wallets.js +297 -0
  294. package/sdk/dist/cli/wallets.js.map +1 -0
  295. package/sdk/dist/deployments/index.d.ts +4 -62
  296. package/sdk/dist/deployments/index.d.ts.map +1 -1
  297. package/sdk/dist/deployments/index.js +4 -84
  298. package/sdk/dist/deployments/index.js.map +1 -1
  299. package/sdk/dist/deployments/pot.d.ts +17 -7
  300. package/sdk/dist/deployments/pot.d.ts.map +1 -1
  301. package/sdk/dist/deployments/pot.js +25 -10
  302. package/sdk/dist/deployments/pot.js.map +1 -1
  303. package/sdk/dist/deployments/releases.d.ts +36 -0
  304. package/sdk/dist/deployments/releases.d.ts.map +1 -0
  305. package/sdk/dist/deployments/releases.js +61 -0
  306. package/sdk/dist/deployments/releases.js.map +1 -0
  307. package/sdk/dist/deployments/releases.json +76 -0
  308. package/sdk/dist/deployments/v12-addresses.d.ts +13 -0
  309. package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
  310. package/sdk/dist/deployments/v12-addresses.js +16 -3
  311. package/sdk/dist/deployments/v12-addresses.js.map +1 -1
  312. package/sdk/dist/deposit/index.d.ts +6 -6
  313. package/sdk/dist/deposit/index.d.ts.map +1 -1
  314. package/sdk/dist/deposit/index.js +1 -1
  315. package/sdk/dist/deposit/index.js.map +1 -1
  316. package/sdk/dist/deposit/params.d.ts +4 -4
  317. package/sdk/dist/deposit/params.d.ts.map +1 -1
  318. package/sdk/dist/deposit/params.js +7 -4
  319. package/sdk/dist/deposit/params.js.map +1 -1
  320. package/sdk/dist/deposit/source.d.ts +3 -30
  321. package/sdk/dist/deposit/source.d.ts.map +1 -1
  322. package/sdk/dist/deposit/source.js +7 -83
  323. package/sdk/dist/deposit/source.js.map +1 -1
  324. package/sdk/dist/deposit/templates.d.ts +1 -2
  325. package/sdk/dist/deposit/templates.d.ts.map +1 -1
  326. package/sdk/dist/deposit/templates.js +10 -2
  327. package/sdk/dist/deposit/templates.js.map +1 -1
  328. package/sdk/dist/deposit/types.d.ts +14 -12
  329. package/sdk/dist/deposit/types.d.ts.map +1 -1
  330. package/sdk/dist/deposit/types.js +6 -0
  331. package/sdk/dist/deposit/types.js.map +1 -1
  332. package/sdk/dist/descriptors/accessors.d.ts +38 -35
  333. package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
  334. package/sdk/dist/descriptors/accessors.js +16 -0
  335. package/sdk/dist/descriptors/accessors.js.map +1 -1
  336. package/sdk/dist/descriptors/call.d.ts +66 -14
  337. package/sdk/dist/descriptors/call.d.ts.map +1 -1
  338. package/sdk/dist/descriptors/call.js +94 -13
  339. package/sdk/dist/descriptors/call.js.map +1 -1
  340. package/sdk/dist/descriptors/contracts.generated.d.ts +3393 -0
  341. package/sdk/dist/descriptors/contracts.generated.d.ts.map +1 -0
  342. package/sdk/dist/descriptors/contracts.generated.js +728 -0
  343. package/sdk/dist/descriptors/contracts.generated.js.map +1 -0
  344. package/sdk/dist/descriptors/derive.d.ts +20 -11
  345. package/sdk/dist/descriptors/derive.d.ts.map +1 -1
  346. package/sdk/dist/descriptors/derive.js +68 -30
  347. package/sdk/dist/descriptors/derive.js.map +1 -1
  348. package/sdk/dist/descriptors/index.d.ts +6 -7
  349. package/sdk/dist/descriptors/index.d.ts.map +1 -1
  350. package/sdk/dist/descriptors/index.js +2 -2
  351. package/sdk/dist/descriptors/index.js.map +1 -1
  352. package/sdk/dist/descriptors/links.d.ts +23 -214
  353. package/sdk/dist/descriptors/links.d.ts.map +1 -1
  354. package/sdk/dist/descriptors/links.js +1 -232
  355. package/sdk/dist/descriptors/links.js.map +1 -1
  356. package/sdk/dist/descriptors/query.d.ts +1 -1
  357. package/sdk/dist/descriptors/query.d.ts.map +1 -1
  358. package/sdk/dist/descriptors/query.js +1 -1
  359. package/sdk/dist/descriptors/query.js.map +1 -1
  360. package/sdk/dist/descriptors/registry.d.ts +2 -5
  361. package/sdk/dist/descriptors/registry.d.ts.map +1 -1
  362. package/sdk/dist/descriptors/registry.js +11 -66
  363. package/sdk/dist/descriptors/registry.js.map +1 -1
  364. package/sdk/dist/embedded/resolve.d.ts +4 -4
  365. package/sdk/dist/embedded/resolve.d.ts.map +1 -1
  366. package/sdk/dist/embedded/resolve.js +12 -8
  367. package/sdk/dist/embedded/resolve.js.map +1 -1
  368. package/sdk/dist/embedded/skills.generated.d.ts +1 -1
  369. package/sdk/dist/embedded/skills.generated.d.ts.map +1 -1
  370. package/sdk/dist/embedded/skills.generated.js +137 -136
  371. package/sdk/dist/embedded/skills.generated.js.map +1 -1
  372. package/sdk/dist/embedded/sources.generated.d.ts.map +1 -1
  373. package/sdk/dist/embedded/sources.generated.js +40 -6
  374. package/sdk/dist/embedded/sources.generated.js.map +1 -1
  375. package/sdk/dist/evm/engine.d.ts +813 -10
  376. package/sdk/dist/evm/engine.d.ts.map +1 -1
  377. package/sdk/dist/evm/engine.js +127 -8
  378. package/sdk/dist/evm/engine.js.map +1 -1
  379. package/sdk/dist/index.d.ts +3 -2
  380. package/sdk/dist/index.d.ts.map +1 -1
  381. package/sdk/dist/index.js +6 -2
  382. package/sdk/dist/index.js.map +1 -1
  383. package/sdk/dist/price.d.ts +40 -0
  384. package/sdk/dist/price.d.ts.map +1 -0
  385. package/sdk/dist/price.js +101 -0
  386. package/sdk/dist/price.js.map +1 -0
  387. package/sdk/dist/protocols/aerodrome/abis.d.ts +76 -0
  388. package/sdk/dist/protocols/aerodrome/abis.d.ts.map +1 -1
  389. package/sdk/dist/protocols/aerodrome/abis.js +61 -0
  390. package/sdk/dist/protocols/aerodrome/abis.js.map +1 -1
  391. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +70 -0
  392. package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -1
  393. package/sdk/dist/protocols/aerodrome-slipstream/abis.js +54 -0
  394. package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -1
  395. package/sdk/dist/protocols/camelot/abis.d.ts +178 -0
  396. package/sdk/dist/protocols/camelot/abis.d.ts.map +1 -1
  397. package/sdk/dist/protocols/camelot/abis.js +139 -0
  398. package/sdk/dist/protocols/camelot/abis.js.map +1 -1
  399. package/sdk/dist/protocols/eco-routes/abis.d.ts +792 -50
  400. package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -1
  401. package/sdk/dist/protocols/eco-routes/abis.js +1058 -49
  402. package/sdk/dist/protocols/eco-routes/abis.js.map +1 -1
  403. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +44 -61
  404. package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -1
  405. package/sdk/dist/protocols/eco-routes/addresses.generated.js +45 -62
  406. package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -1
  407. package/sdk/dist/protocols/eco-routes/lookup.d.ts +10 -0
  408. package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -1
  409. package/sdk/dist/protocols/eco-routes/lookup.js +16 -0
  410. package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -1
  411. package/sdk/dist/protocols/maverick/abis.d.ts +77 -0
  412. package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
  413. package/sdk/dist/protocols/maverick/abis.js +58 -0
  414. package/sdk/dist/protocols/maverick/abis.js.map +1 -1
  415. package/sdk/dist/protocols/maverick/addresses.d.ts.map +1 -1
  416. package/sdk/dist/protocols/maverick/addresses.js +4 -0
  417. package/sdk/dist/protocols/maverick/addresses.js.map +1 -1
  418. package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts +52 -0
  419. package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts.map +1 -1
  420. package/sdk/dist/protocols/pancakeswap-v2/abis.js +43 -0
  421. package/sdk/dist/protocols/pancakeswap-v2/abis.js.map +1 -1
  422. package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +73 -0
  423. package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts.map +1 -1
  424. package/sdk/dist/protocols/pancakeswap-v3/abis.js +56 -0
  425. package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
  426. package/sdk/dist/protocols/permit2/abis.d.ts +113 -0
  427. package/sdk/dist/protocols/permit2/abis.d.ts.map +1 -1
  428. package/sdk/dist/protocols/permit2/abis.js +63 -0
  429. package/sdk/dist/protocols/permit2/abis.js.map +1 -1
  430. package/sdk/dist/protocols/quickswap/abis.d.ts +148 -0
  431. package/sdk/dist/protocols/quickswap/abis.d.ts.map +1 -1
  432. package/sdk/dist/protocols/quickswap/abis.js +119 -0
  433. package/sdk/dist/protocols/quickswap/abis.js.map +1 -1
  434. package/sdk/dist/protocols/sushiswap-v2/abis.d.ts +52 -0
  435. package/sdk/dist/protocols/sushiswap-v2/abis.d.ts.map +1 -1
  436. package/sdk/dist/protocols/sushiswap-v2/abis.js +42 -0
  437. package/sdk/dist/protocols/sushiswap-v2/abis.js.map +1 -1
  438. package/sdk/dist/protocols/synthra-v3/abis.d.ts +73 -0
  439. package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -1
  440. package/sdk/dist/protocols/synthra-v3/abis.js +55 -0
  441. package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -1
  442. package/sdk/dist/protocols/trader-joe/abis.d.ts +133 -0
  443. package/sdk/dist/protocols/trader-joe/abis.d.ts.map +1 -1
  444. package/sdk/dist/protocols/trader-joe/abis.js +101 -0
  445. package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
  446. package/sdk/dist/protocols/trader-joe/addresses.d.ts.map +1 -1
  447. package/sdk/dist/protocols/trader-joe/addresses.js +5 -0
  448. package/sdk/dist/protocols/trader-joe/addresses.js.map +1 -1
  449. package/sdk/dist/protocols/uniswap-v2/abis.d.ts +52 -0
  450. package/sdk/dist/protocols/uniswap-v2/abis.d.ts.map +1 -1
  451. package/sdk/dist/protocols/uniswap-v2/abis.js +44 -0
  452. package/sdk/dist/protocols/uniswap-v2/abis.js.map +1 -1
  453. package/sdk/dist/protocols/uniswap-v3/abis.d.ts +73 -0
  454. package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
  455. package/sdk/dist/protocols/uniswap-v3/abis.js +55 -0
  456. package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
  457. package/sdk/dist/protocols/uniswap-v4/abis.d.ts +247 -0
  458. package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
  459. package/sdk/dist/protocols/uniswap-v4/abis.js +167 -0
  460. package/sdk/dist/protocols/uniswap-v4/abis.js.map +1 -1
  461. package/sdk/dist/protocols/uniswap-v4/addresses.d.ts.map +1 -1
  462. package/sdk/dist/protocols/uniswap-v4/addresses.js +50 -0
  463. package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
  464. package/sdk/dist/protocols/unitflow-v3/abis.d.ts +73 -0
  465. package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -1
  466. package/sdk/dist/protocols/unitflow-v3/abis.js +56 -0
  467. package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -1
  468. package/sdk/dist/protocols/velodrome/abis.d.ts +76 -0
  469. package/sdk/dist/protocols/velodrome/abis.d.ts.map +1 -1
  470. package/sdk/dist/protocols/velodrome/abis.js +61 -0
  471. package/sdk/dist/protocols/velodrome/abis.js.map +1 -1
  472. package/sdk/dist/recipes/cctp-split.sauce.ts +2 -2
  473. package/sdk/dist/recipes/plain-transfer.sauce.ts +2 -2
  474. package/sdk/dist/routes/accessor-index.d.ts +2 -2
  475. package/sdk/dist/routes/accessor-index.d.ts.map +1 -1
  476. package/sdk/dist/routes/accessor-index.js +4 -3
  477. package/sdk/dist/routes/accessor-index.js.map +1 -1
  478. package/sdk/dist/routes/ambient.d.ts +5 -0
  479. package/sdk/dist/routes/ambient.d.ts.map +1 -1
  480. package/sdk/dist/routes/ambient.js +20 -0
  481. package/sdk/dist/routes/ambient.js.map +1 -1
  482. package/sdk/dist/routes/ast-walk.d.ts +17 -3
  483. package/sdk/dist/routes/ast-walk.d.ts.map +1 -1
  484. package/sdk/dist/routes/ast-walk.js +24 -2
  485. package/sdk/dist/routes/ast-walk.js.map +1 -1
  486. package/sdk/dist/routes/available.d.ts +43 -0
  487. package/sdk/dist/routes/available.d.ts.map +1 -0
  488. package/sdk/dist/routes/available.js +230 -0
  489. package/sdk/dist/routes/available.js.map +1 -0
  490. package/sdk/dist/routes/builtins.generated.d.ts +180 -0
  491. package/sdk/dist/routes/builtins.generated.d.ts.map +1 -0
  492. package/sdk/dist/routes/builtins.generated.js +2 -0
  493. package/sdk/dist/routes/builtins.generated.js.map +1 -0
  494. package/sdk/dist/routes/chain-exports.generated.d.ts +13 -8
  495. package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -1
  496. package/sdk/dist/routes/chain-exports.generated.js.map +1 -1
  497. package/sdk/dist/routes/closure.d.ts.map +1 -1
  498. package/sdk/dist/routes/closure.js +13 -26
  499. package/sdk/dist/routes/closure.js.map +1 -1
  500. package/sdk/dist/routes/composed.d.ts.map +1 -1
  501. package/sdk/dist/routes/composed.js +20 -8
  502. package/sdk/dist/routes/composed.js.map +1 -1
  503. package/sdk/dist/routes/encode.d.ts +17 -0
  504. package/sdk/dist/routes/encode.d.ts.map +1 -1
  505. package/sdk/dist/routes/encode.js +14 -11
  506. package/sdk/dist/routes/encode.js.map +1 -1
  507. package/sdk/dist/routes/entry.d.ts +76 -0
  508. package/sdk/dist/routes/entry.d.ts.map +1 -0
  509. package/sdk/dist/routes/entry.js +478 -0
  510. package/sdk/dist/routes/entry.js.map +1 -0
  511. package/sdk/dist/routes/index.d.ts +19 -12
  512. package/sdk/dist/routes/index.d.ts.map +1 -1
  513. package/sdk/dist/routes/index.js +11 -8
  514. package/sdk/dist/routes/index.js.map +1 -1
  515. package/sdk/dist/routes/intent-body.d.ts +97 -0
  516. package/sdk/dist/routes/intent-body.d.ts.map +1 -0
  517. package/sdk/dist/routes/intent-body.js +441 -0
  518. package/sdk/dist/routes/intent-body.js.map +1 -0
  519. package/sdk/dist/routes/intent-dsl.d.ts +21 -6
  520. package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
  521. package/sdk/dist/routes/intent-dsl.js +34 -17
  522. package/sdk/dist/routes/intent-dsl.js.map +1 -1
  523. package/sdk/dist/routes/intent-sugar.d.ts +77 -4
  524. package/sdk/dist/routes/intent-sugar.d.ts.map +1 -1
  525. package/sdk/dist/routes/intent-sugar.js +318 -129
  526. package/sdk/dist/routes/intent-sugar.js.map +1 -1
  527. package/sdk/dist/routes/intent.d.ts +13 -1
  528. package/sdk/dist/routes/intent.d.ts.map +1 -1
  529. package/sdk/dist/routes/intent.js +37 -1
  530. package/sdk/dist/routes/intent.js.map +1 -1
  531. package/sdk/dist/routes/nest.d.ts +3 -2
  532. package/sdk/dist/routes/nest.d.ts.map +1 -1
  533. package/sdk/dist/routes/nest.js +5 -3
  534. package/sdk/dist/routes/nest.js.map +1 -1
  535. package/sdk/dist/routes/parse.d.ts +6 -0
  536. package/sdk/dist/routes/parse.d.ts.map +1 -0
  537. package/sdk/dist/routes/parse.js +39 -0
  538. package/sdk/dist/routes/parse.js.map +1 -0
  539. package/sdk/dist/routes/portal.d.ts +258 -4
  540. package/sdk/dist/routes/portal.d.ts.map +1 -1
  541. package/sdk/dist/routes/portal.js +588 -9
  542. package/sdk/dist/routes/portal.js.map +1 -1
  543. package/sdk/dist/routes/protocol-rewrite.d.ts +71 -1
  544. package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
  545. package/sdk/dist/routes/protocol-rewrite.js +178 -54
  546. package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
  547. package/sdk/dist/routes/rs-compile.d.ts +25 -22
  548. package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
  549. package/sdk/dist/routes/rs-compile.js +55 -49
  550. package/sdk/dist/routes/rs-compile.js.map +1 -1
  551. package/sdk/dist/routes/sauce-calls.d.ts +26 -12
  552. package/sdk/dist/routes/sauce-calls.d.ts.map +1 -1
  553. package/sdk/dist/routes/sauce-calls.js +16 -23
  554. package/sdk/dist/routes/sauce-calls.js.map +1 -1
  555. package/sdk/dist/routes/sauce-route.d.ts +74 -7
  556. package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
  557. package/sdk/dist/routes/sauce-route.js +225 -75
  558. package/sdk/dist/routes/sauce-route.js.map +1 -1
  559. package/sdk/dist/routes/source-globals.d.ts +107 -0
  560. package/sdk/dist/routes/source-globals.d.ts.map +1 -0
  561. package/sdk/dist/routes/source-globals.generated.d.ts +5601 -933
  562. package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
  563. package/sdk/dist/routes/source-globals.generated.js +3 -4
  564. package/sdk/dist/routes/source-globals.generated.js.map +1 -1
  565. package/sdk/dist/routes/source-globals.js +175 -0
  566. package/sdk/dist/routes/source-globals.js.map +1 -0
  567. package/sdk/dist/routes/stock-tokens.d.ts +89 -0
  568. package/sdk/dist/routes/stock-tokens.d.ts.map +1 -0
  569. package/sdk/dist/routes/stock-tokens.generated.d.ts +7 -0
  570. package/sdk/dist/routes/stock-tokens.generated.d.ts.map +1 -0
  571. package/sdk/dist/routes/stock-tokens.generated.js +3664 -0
  572. package/sdk/dist/routes/stock-tokens.generated.js.map +1 -0
  573. package/sdk/dist/routes/stock-tokens.js +89 -0
  574. package/sdk/dist/routes/stock-tokens.js.map +1 -0
  575. package/sdk/dist/routes/token-registry.d.ts +68 -8
  576. package/sdk/dist/routes/token-registry.d.ts.map +1 -1
  577. package/sdk/dist/routes/token-registry.js +218 -32
  578. package/sdk/dist/routes/token-registry.js.map +1 -1
  579. package/sdk/dist/routes/token-rewrite.d.ts +1 -1
  580. package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
  581. package/sdk/dist/routes/token-rewrite.js +5 -9
  582. package/sdk/dist/routes/token-rewrite.js.map +1 -1
  583. package/sdk/dist/routes/unknown-global.d.ts +32 -0
  584. package/sdk/dist/routes/unknown-global.d.ts.map +1 -0
  585. package/sdk/dist/routes/unknown-global.js +106 -0
  586. package/sdk/dist/routes/unknown-global.js.map +1 -0
  587. package/sdk/dist/routes/vault.d.ts +38 -8
  588. package/sdk/dist/routes/vault.d.ts.map +1 -1
  589. package/sdk/dist/routes/vault.js +47 -8
  590. package/sdk/dist/routes/vault.js.map +1 -1
  591. package/sdk/dist/sauce-script/builtins.d.ts +309 -0
  592. package/sdk/dist/sauce-script/declarations.d.ts +3 -0
  593. package/sdk/dist/sauce-script/declarations.d.ts.map +1 -0
  594. package/sdk/dist/sauce-script/declarations.js +229 -0
  595. package/sdk/dist/sauce-script/declarations.js.map +1 -0
  596. package/sdk/dist/sauce-script/index.d.ts +2714 -0
  597. package/sdk/dist/sauce-script/ts-plugin.cjs +85 -0
  598. package/sdk/dist/skills/loader.d.ts.map +1 -1
  599. package/sdk/dist/skills/loader.js +4 -3
  600. package/sdk/dist/skills/loader.js.map +1 -1
  601. package/sdk/dist/std/router/balancer-v2-vault.abi.json +78 -0
  602. package/sdk/dist/std/router/curve-cryptoswap.abi.json +29 -0
  603. package/sdk/dist/std/router/curve-stableswap.abi.json +29 -0
  604. package/sdk/dist/std/router/dodo-v2-pool.abi.json +39 -0
  605. package/sdk/dist/std/router/lb-pair.abi.json +55 -0
  606. package/sdk/dist/std/router/package.json +7 -0
  607. package/sdk/dist/std/router/router.evm.js +567 -0
  608. package/sdk/dist/std/router/sauce-router.abi.json +202 -0
  609. package/sdk/dist/std/router/uniswap-v2-pair.abi.json +49 -0
  610. package/sdk/dist/std/router/woo-pp-v2.abi.json +42 -0
  611. package/sdk/dist/std/token/permit2.abi.json +226 -0
  612. package/sdk/dist/std/token/token.evm.js +73 -0
  613. package/sdk/dist/std/token/token.svm.js +194 -41
  614. package/sdk/dist/svm/client.d.ts +62 -15
  615. package/sdk/dist/svm/client.d.ts.map +1 -1
  616. package/sdk/dist/svm/client.js +103 -42
  617. package/sdk/dist/svm/client.js.map +1 -1
  618. package/sdk/dist/svm/engine.d.ts +66 -5
  619. package/sdk/dist/svm/engine.d.ts.map +1 -1
  620. package/sdk/dist/svm/engine.js +73 -5
  621. package/sdk/dist/svm/engine.js.map +1 -1
  622. package/sdk/dist/svm/index.d.ts +2 -0
  623. package/sdk/dist/svm/index.d.ts.map +1 -1
  624. package/sdk/dist/svm/index.js +2 -0
  625. package/sdk/dist/svm/index.js.map +1 -1
  626. package/sdk/dist/svm/instructions.d.ts +72 -1
  627. package/sdk/dist/svm/instructions.d.ts.map +1 -1
  628. package/sdk/dist/svm/instructions.js +81 -2
  629. package/sdk/dist/svm/instructions.js.map +1 -1
  630. package/sdk/dist/svm/kitchen.d.ts +20 -1
  631. package/sdk/dist/svm/kitchen.d.ts.map +1 -1
  632. package/sdk/dist/svm/kitchen.js +47 -1
  633. package/sdk/dist/svm/kitchen.js.map +1 -1
  634. package/sdk/dist/svm/portal.d.ts +250 -0
  635. package/sdk/dist/svm/portal.d.ts.map +1 -0
  636. package/sdk/dist/svm/portal.js +462 -0
  637. package/sdk/dist/svm/portal.js.map +1 -0
  638. package/sdk/dist/svm/send.d.ts +18 -2
  639. package/sdk/dist/svm/send.d.ts.map +1 -1
  640. package/sdk/dist/svm/send.js +28 -3
  641. package/sdk/dist/svm/send.js.map +1 -1
  642. package/sdk/dist/svm/token-accounts.d.ts +49 -0
  643. package/sdk/dist/svm/token-accounts.d.ts.map +1 -0
  644. package/sdk/dist/svm/token-accounts.js +58 -0
  645. package/sdk/dist/svm/token-accounts.js.map +1 -0
  646. package/sdk/dist/svm/token-extensions.d.ts +18 -7
  647. package/sdk/dist/svm/token-extensions.d.ts.map +1 -1
  648. package/sdk/dist/svm/token-extensions.js +58 -5
  649. package/sdk/dist/svm/token-extensions.js.map +1 -1
  650. package/sdk/dist/token/evm.js +1 -1
  651. package/sdk/dist/token/index.d.ts +1 -1
  652. package/sdk/dist/token/index.js +1 -1
  653. package/sdk/dist/token/params.js +1 -1
  654. package/sdk/dist/token/source.js +3 -3
  655. package/sdk/dist/token/source.js.map +1 -1
  656. package/sdk/dist/token/types.d.ts +2 -2
  657. package/sdk/dist/token/types.js +2 -2
  658. package/sdk/src/protocols/aerodrome/AerodromePoolABI.json +105 -0
  659. package/sdk/src/protocols/aerodrome/abis.ts +62 -0
  660. package/sdk/src/protocols/aerodrome-slipstream/AerodromeSlipstreamPoolABI.json +96 -0
  661. package/sdk/src/protocols/aerodrome-slipstream/abis.ts +55 -0
  662. package/sdk/src/protocols/camelot/CamelotV2FactoryABI.json +25 -0
  663. package/sdk/src/protocols/camelot/CamelotV2PairABI.json +109 -0
  664. package/sdk/src/protocols/camelot/CamelotV3FactoryABI.json +25 -0
  665. package/sdk/src/protocols/camelot/CamelotV3PoolABI.json +92 -0
  666. package/sdk/src/protocols/camelot/abis.ts +143 -0
  667. package/sdk/src/protocols/eco-routes/PortalABI.json +1448 -0
  668. package/sdk/src/protocols/eco-routes/ProverABI.json +162 -0
  669. package/sdk/src/protocols/eco-routes/abis.ts +1060 -51
  670. package/sdk/src/protocols/eco-routes/addresses.generated.ts +45 -62
  671. package/sdk/src/protocols/eco-routes/lookup.ts +18 -0
  672. package/sdk/src/protocols/maverick/MaverickV2PoolABI.json +107 -0
  673. package/sdk/src/protocols/maverick/abis.ts +59 -0
  674. package/sdk/src/protocols/maverick/addresses.ts +4 -0
  675. package/sdk/src/protocols/pancakeswap-v2/PancakeSwapV2PairABI.json +72 -0
  676. package/sdk/src/protocols/pancakeswap-v2/abis.ts +44 -0
  677. package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3PoolABI.json +100 -0
  678. package/sdk/src/protocols/pancakeswap-v3/abis.ts +57 -0
  679. package/sdk/src/protocols/permit2/Permit2ABI.json +154 -0
  680. package/sdk/src/protocols/permit2/abis.ts +63 -0
  681. package/sdk/src/protocols/quickswap/QuickSwapV2FactoryABI.json +25 -0
  682. package/sdk/src/protocols/quickswap/QuickSwapV2PairABI.json +72 -0
  683. package/sdk/src/protocols/quickswap/QuickSwapV3FactoryABI.json +25 -0
  684. package/sdk/src/protocols/quickswap/QuickSwapV3PoolABI.json +88 -0
  685. package/sdk/src/protocols/quickswap/abis.ts +123 -0
  686. package/sdk/src/protocols/sushiswap-v2/SushiSwapV2PairABI.json +72 -0
  687. package/sdk/src/protocols/sushiswap-v2/abis.ts +43 -0
  688. package/sdk/src/protocols/synthra-v3/SynthraV3PoolABI.json +100 -0
  689. package/sdk/src/protocols/synthra-v3/abis.ts +56 -0
  690. package/sdk/src/protocols/trader-joe/LBPairABI.json +185 -0
  691. package/sdk/src/protocols/trader-joe/abis.ts +102 -0
  692. package/sdk/src/protocols/trader-joe/addresses.ts +5 -0
  693. package/sdk/src/protocols/uniswap-v2/UniswapV2PairABI.json +72 -0
  694. package/sdk/src/protocols/uniswap-v2/abis.ts +45 -0
  695. package/sdk/src/protocols/uniswap-v3/UniswapV3PoolABI.json +100 -0
  696. package/sdk/src/protocols/uniswap-v3/abis.ts +56 -0
  697. package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +38 -0
  698. package/sdk/src/protocols/uniswap-v4/UniswapV4StateViewABI.json +307 -0
  699. package/sdk/src/protocols/uniswap-v4/abis.ts +168 -0
  700. package/sdk/src/protocols/uniswap-v4/addresses.ts +50 -0
  701. package/sdk/src/protocols/unitflow-v3/UnitFlowV3PoolABI.json +100 -0
  702. package/sdk/src/protocols/unitflow-v3/abis.ts +57 -0
  703. package/sdk/src/protocols/velodrome/VelodromePoolABI.json +105 -0
  704. package/sdk/src/protocols/velodrome/abis.ts +62 -0
  705. package/skills/sauce-actions/SKILL.md +166 -0
  706. package/skills/sauce-actions/examples/swap-and-supply.json +24 -0
  707. package/skills/sauce-actions/examples/swap-by-key.json +15 -0
  708. package/skills/sauce-actions/references/actions.md +731 -0
  709. package/skills/sauce-chains/SKILL.md +137 -0
  710. package/skills/sauce-chains/examples/chains.sauce.ts +25 -0
  711. package/skills/sauce-chains/references/arbitrum.md +158 -0
  712. package/skills/sauce-chains/references/arc.md +107 -0
  713. package/skills/sauce-chains/references/aurora.md +33 -0
  714. package/skills/sauce-chains/references/avalanche.md +106 -0
  715. package/skills/sauce-chains/references/base-stocks.md +77 -0
  716. package/skills/sauce-chains/references/base.md +141 -0
  717. package/skills/sauce-chains/references/berachain.md +33 -0
  718. package/skills/sauce-chains/references/blast.md +60 -0
  719. package/skills/sauce-chains/references/boba.md +33 -0
  720. package/skills/sauce-chains/references/bsc.md +97 -0
  721. package/skills/sauce-chains/references/celo.md +57 -0
  722. package/skills/sauce-chains/references/core.md +33 -0
  723. package/skills/sauce-chains/references/cronos.md +33 -0
  724. package/skills/sauce-chains/references/ethereum-stocks.md +1741 -0
  725. package/skills/sauce-chains/references/ethereum.md +255 -0
  726. package/skills/sauce-chains/references/evmos.md +33 -0
  727. package/skills/sauce-chains/references/fantom.md +61 -0
  728. package/skills/sauce-chains/references/fuse.md +33 -0
  729. package/skills/sauce-chains/references/gnosis.md +57 -0
  730. package/skills/sauce-chains/references/index.md +58 -0
  731. package/skills/sauce-chains/references/ink.md +55 -0
  732. package/skills/sauce-chains/references/kava.md +33 -0
  733. package/skills/sauce-chains/references/klaytn.md +33 -0
  734. package/skills/sauce-chains/references/linea.md +65 -0
  735. package/skills/sauce-chains/references/manta.md +33 -0
  736. package/skills/sauce-chains/references/mantle.md +33 -0
  737. package/skills/sauce-chains/references/metis.md +54 -0
  738. package/skills/sauce-chains/references/mode.md +55 -0
  739. package/skills/sauce-chains/references/monad.md +79 -0
  740. package/skills/sauce-chains/references/moonbeam.md +33 -0
  741. package/skills/sauce-chains/references/opbnb.md +55 -0
  742. package/skills/sauce-chains/references/optimism.md +123 -0
  743. package/skills/sauce-chains/references/plasma.md +35 -0
  744. package/skills/sauce-chains/references/polygon.md +123 -0
  745. package/skills/sauce-chains/references/pulsechain.md +33 -0
  746. package/skills/sauce-chains/references/ronin.md +35 -0
  747. package/skills/sauce-chains/references/scroll.md +62 -0
  748. package/skills/sauce-chains/references/sei.md +55 -0
  749. package/skills/sauce-chains/references/solana-stocks.md +1812 -0
  750. package/skills/sauce-chains/references/solana.md +56 -0
  751. package/skills/sauce-chains/references/sonic.md +57 -0
  752. package/skills/sauce-chains/references/unichain.md +61 -0
  753. package/skills/sauce-chains/references/zetachain.md +33 -0
  754. package/skills/sauce-chains/references/zksync.md +59 -0
  755. package/skills/sauce-chains/references/zora.md +57 -0
  756. package/skills/sauce-cli/SKILL.md +366 -0
  757. package/skills/sauce-cli/examples/pay.sauce.ts +23 -0
  758. package/skills/sauce-cli/examples/split.sauce.ts +30 -0
  759. package/skills/sauce-distributed-swap/SKILL.md +392 -0
  760. package/skills/sauce-distributed-swap/examples/distributed-swap.mts +251 -0
  761. package/skills/sauce-distributed-swap/examples/distributed-swap.sauce.ts +115 -0
  762. package/skills/sauce-examples/SKILL.md +96 -0
  763. package/skills/sauce-globals/SKILL.md +213 -0
  764. package/skills/sauce-globals/examples/globals.mts +111 -0
  765. package/skills/sauce-globals/examples/globals.sauce.ts +47 -0
  766. package/skills/sauce-globals/references/chains.md +53 -0
  767. package/skills/sauce-globals/references/protocols.md +405 -0
  768. package/skills/sauce-globals/references/stocks.md +3635 -0
  769. package/skills/sauce-globals/references/tokens.md +53 -0
  770. package/skills/sauce-intents/SKILL.md +505 -0
  771. package/skills/sauce-intents/examples/cross-chain.sauce.ts +37 -0
  772. package/skills/sauce-intents/examples/fund-by-transfer.sauce.ts +54 -0
  773. package/skills/sauce-intents/examples/intents.mts +343 -0
  774. package/skills/sauce-intents/examples/swap-on-base.sauce.ts +135 -0
  775. package/skills/sauce-intents/references/portal.md +77 -0
  776. package/skills/sauce-overview/SKILL.md +161 -0
  777. package/skills/sauce-protocols/SKILL.md +118 -0
  778. package/skills/sauce-protocols/examples/protocols.mts +77 -0
  779. package/skills/sauce-protocols/examples/protocols.sauce.ts +27 -0
  780. package/{sdk/src/skills → skills/sauce-protocols/references}/aave-v2.md +35 -17
  781. package/skills/sauce-protocols/references/aave-v3.md +144 -0
  782. package/skills/sauce-protocols/references/aave-v4.md +50 -0
  783. package/skills/sauce-protocols/references/abracadabra.md +72 -0
  784. package/skills/sauce-protocols/references/across.md +73 -0
  785. package/skills/sauce-protocols/references/aerodrome-slipstream.md +50 -0
  786. package/{sdk/src/skills → skills/sauce-protocols/references}/aerodrome.md +43 -24
  787. package/skills/sauce-protocols/references/aevo.md +49 -0
  788. package/{sdk/src/skills → skills/sauce-protocols/references}/alchemix.md +10 -25
  789. package/{sdk/src/skills → skills/sauce-protocols/references}/ambient.md +14 -21
  790. package/{sdk/src/skills → skills/sauce-protocols/references}/arbitrum-bridge.md +11 -14
  791. package/{sdk/src/skills → skills/sauce-protocols/references}/arrakis.md +10 -26
  792. package/skills/sauce-protocols/references/axelar.md +56 -0
  793. package/{sdk/src/skills → skills/sauce-protocols/references}/balancer-v2.md +13 -29
  794. package/{sdk/src/skills → skills/sauce-protocols/references}/base-bridge.md +11 -16
  795. package/{sdk/src/skills → skills/sauce-protocols/references}/baseswap.md +12 -19
  796. package/{sdk/src/skills → skills/sauce-protocols/references}/beefy.md +10 -30
  797. package/{sdk/src/skills → skills/sauce-protocols/references}/benqi.md +11 -21
  798. package/{sdk/src/skills → skills/sauce-protocols/references}/camelot.md +13 -27
  799. package/{sdk/src/skills → skills/sauce-protocols/references}/cbeth.md +10 -22
  800. package/skills/sauce-protocols/references/cctp.md +47 -0
  801. package/{sdk/src/skills → skills/sauce-protocols/references}/celer.md +11 -18
  802. package/{sdk/src/skills → skills/sauce-protocols/references}/chainlink-ccip.md +11 -21
  803. package/skills/sauce-protocols/references/chainlink.md +47 -0
  804. package/{sdk/src/skills → skills/sauce-protocols/references}/circle-gateway.md +12 -38
  805. package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v2.md +11 -25
  806. package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v3.md +43 -27
  807. package/{sdk/src/skills → skills/sauce-protocols/references}/connext.md +11 -15
  808. package/{sdk/src/skills → skills/sauce-protocols/references}/convex.md +10 -28
  809. package/{sdk/src/skills → skills/sauce-protocols/references}/cowswap.md +12 -19
  810. package/{sdk/src/skills → skills/sauce-protocols/references}/crvusd.md +10 -19
  811. package/skills/sauce-protocols/references/curve.md +98 -0
  812. package/{sdk/src/skills → skills/sauce-protocols/references}/debridge.md +11 -33
  813. package/{sdk/src/skills → skills/sauce-protocols/references}/dodo.md +13 -18
  814. package/skills/sauce-protocols/references/eigenlayer.md +48 -0
  815. package/{sdk/src/skills → skills/sauce-protocols/references}/ens.md +10 -26
  816. package/{sdk/src/skills → skills/sauce-protocols/references}/erc20.md +10 -24
  817. package/{sdk/src/skills → skills/sauce-protocols/references}/erc3156.md +10 -13
  818. package/{sdk/src/skills → skills/sauce-protocols/references}/erc4626.md +11 -27
  819. package/{sdk/src/skills → skills/sauce-protocols/references}/ethena.md +10 -27
  820. package/{sdk/src/skills → skills/sauce-protocols/references}/etherfi.md +10 -32
  821. package/{sdk/src/skills → skills/sauce-protocols/references}/euler-v2.md +11 -21
  822. package/{sdk/src/skills → skills/sauce-protocols/references}/fenix.md +12 -18
  823. package/{sdk/src/skills → skills/sauce-protocols/references}/fluid.md +11 -20
  824. package/{sdk/src/skills → skills/sauce-protocols/references}/frax-ether.md +10 -26
  825. package/{sdk/src/skills → skills/sauce-protocols/references}/frax.md +10 -19
  826. package/{sdk/src/skills → skills/sauce-protocols/references}/gains-network.md +11 -28
  827. package/skills/sauce-protocols/references/gamma.md +57 -0
  828. package/{sdk/src/skills → skills/sauce-protocols/references}/gelato.md +12 -20
  829. package/{sdk/src/skills → skills/sauce-protocols/references}/gho.md +10 -19
  830. package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v1.md +12 -34
  831. package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v2.md +15 -28
  832. package/skills/sauce-protocols/references/harvest.md +41 -0
  833. package/{sdk/src/skills → skills/sauce-protocols/references}/hegic.md +10 -18
  834. package/{sdk/src/skills → skills/sauce-protocols/references}/hop.md +11 -21
  835. package/{sdk/src/skills → skills/sauce-protocols/references}/hyperlane.md +11 -21
  836. package/skills/sauce-protocols/references/index.md +355 -0
  837. package/{sdk/src/skills → skills/sauce-protocols/references}/instadapp.md +10 -18
  838. package/skills/sauce-protocols/references/kelp.md +46 -0
  839. package/{sdk/src/skills → skills/sauce-protocols/references}/kim.md +12 -18
  840. package/{sdk/src/skills → skills/sauce-protocols/references}/kyberswap-aggregator.md +12 -35
  841. package/skills/sauce-protocols/references/kyberswap.md +72 -0
  842. package/{sdk/src/skills → skills/sauce-protocols/references}/layerbank.md +11 -26
  843. package/{sdk/src/skills → skills/sauce-protocols/references}/layerzero.md +11 -25
  844. package/{sdk/src/skills → skills/sauce-protocols/references}/level-finance.md +10 -24
  845. package/{sdk/src/skills → skills/sauce-protocols/references}/lido.md +10 -28
  846. package/{sdk/src/skills → skills/sauce-protocols/references}/lifi.md +11 -25
  847. package/{sdk/src/skills → skills/sauce-protocols/references}/linea-bridge.md +11 -14
  848. package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v1.md +10 -21
  849. package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v2.md +10 -19
  850. package/{sdk/src/skills → skills/sauce-protocols/references}/lynex.md +12 -18
  851. package/skills/sauce-protocols/references/maker.md +57 -0
  852. package/skills/sauce-protocols/references/mantle-meth.md +43 -0
  853. package/{sdk/src/skills → skills/sauce-protocols/references}/maverick.md +13 -25
  854. package/{sdk/src/skills → skills/sauce-protocols/references}/moonwell.md +11 -21
  855. package/{sdk/src/skills → skills/sauce-protocols/references}/morpho-blue.md +44 -21
  856. package/{sdk/src/skills → skills/sauce-protocols/references}/mux-protocol.md +10 -30
  857. package/skills/sauce-protocols/references/olympus.md +39 -0
  858. package/skills/sauce-protocols/references/oneinch.md +81 -0
  859. package/skills/sauce-protocols/references/openocean.md +69 -0
  860. package/{sdk/src/skills → skills/sauce-protocols/references}/optimism-bridge.md +11 -16
  861. package/{sdk/src/skills → skills/sauce-protocols/references}/opyn.md +10 -21
  862. package/{sdk/src/skills → skills/sauce-protocols/references}/pancakeswap-v2.md +39 -41
  863. package/skills/sauce-protocols/references/pancakeswap-v3.md +72 -0
  864. package/skills/sauce-protocols/references/paraswap.md +39 -0
  865. package/{sdk/src/skills → skills/sauce-protocols/references}/pendle.md +47 -29
  866. package/skills/sauce-protocols/references/permit2.md +101 -0
  867. package/skills/sauce-protocols/references/perpetual-protocol.md +53 -0
  868. package/{sdk/src/skills → skills/sauce-protocols/references}/polygon-bridge.md +11 -17
  869. package/{sdk/src/skills → skills/sauce-protocols/references}/premia.md +10 -19
  870. package/{sdk/src/skills → skills/sauce-protocols/references}/puffer.md +10 -21
  871. package/skills/sauce-protocols/references/pyth.md +45 -0
  872. package/{sdk/src/skills → skills/sauce-protocols/references}/quickswap.md +13 -27
  873. package/{sdk/src/skills → skills/sauce-protocols/references}/radiant.md +11 -15
  874. package/{sdk/src/skills → skills/sauce-protocols/references}/ramses.md +12 -18
  875. package/skills/sauce-protocols/references/reflexer.md +52 -0
  876. package/skills/sauce-protocols/references/registry/aave-v2.md +43 -0
  877. package/skills/sauce-protocols/references/registry/aave-v3.md +62 -0
  878. package/skills/sauce-protocols/references/registry/aave-v4.md +80 -0
  879. package/skills/sauce-protocols/references/registry/abracadabra.md +54 -0
  880. package/skills/sauce-protocols/references/registry/across.md +57 -0
  881. package/skills/sauce-protocols/references/registry/aerodrome-slipstream.md +72 -0
  882. package/skills/sauce-protocols/references/registry/aerodrome.md +58 -0
  883. package/skills/sauce-protocols/references/registry/aevo.md +39 -0
  884. package/skills/sauce-protocols/references/registry/alchemix.md +46 -0
  885. package/skills/sauce-protocols/references/registry/ambient.md +40 -0
  886. package/skills/sauce-protocols/references/registry/arbitrum-bridge.md +40 -0
  887. package/skills/sauce-protocols/references/registry/arrakis.md +49 -0
  888. package/skills/sauce-protocols/references/registry/axelar.md +65 -0
  889. package/skills/sauce-protocols/references/registry/balancer-v2.md +50 -0
  890. package/skills/sauce-protocols/references/registry/base-bridge.md +42 -0
  891. package/skills/sauce-protocols/references/registry/baseswap.md +40 -0
  892. package/skills/sauce-protocols/references/registry/beefy.md +51 -0
  893. package/skills/sauce-protocols/references/registry/benqi.md +49 -0
  894. package/skills/sauce-protocols/references/registry/camelot.md +82 -0
  895. package/skills/sauce-protocols/references/registry/cbeth.md +43 -0
  896. package/skills/sauce-protocols/references/registry/cctp.md +48 -0
  897. package/skills/sauce-protocols/references/registry/celer.md +44 -0
  898. package/skills/sauce-protocols/references/registry/chainlink-ccip.md +45 -0
  899. package/skills/sauce-protocols/references/registry/chainlink.md +49 -0
  900. package/skills/sauce-protocols/references/registry/circle-gateway.md +70 -0
  901. package/skills/sauce-protocols/references/registry/compound-v2.md +53 -0
  902. package/skills/sauce-protocols/references/registry/compound-v3.md +52 -0
  903. package/skills/sauce-protocols/references/registry/connext.md +41 -0
  904. package/skills/sauce-protocols/references/registry/convex.md +51 -0
  905. package/skills/sauce-protocols/references/registry/cowswap.md +40 -0
  906. package/skills/sauce-protocols/references/registry/crvusd.md +40 -0
  907. package/skills/sauce-protocols/references/registry/curve.md +81 -0
  908. package/skills/sauce-protocols/references/registry/debridge.md +59 -0
  909. package/skills/sauce-protocols/references/registry/dodo.md +39 -0
  910. package/skills/sauce-protocols/references/registry/eco-routes.md +65 -0
  911. package/skills/sauce-protocols/references/registry/eigenlayer.md +58 -0
  912. package/skills/sauce-protocols/references/registry/ens.md +49 -0
  913. package/skills/sauce-protocols/references/registry/erc20.md +44 -0
  914. package/skills/sauce-protocols/references/registry/erc3156.md +38 -0
  915. package/skills/sauce-protocols/references/registry/erc4626.md +51 -0
  916. package/skills/sauce-protocols/references/registry/ethena.md +50 -0
  917. package/skills/sauce-protocols/references/registry/etherfi.md +57 -0
  918. package/skills/sauce-protocols/references/registry/euler-v2.md +49 -0
  919. package/skills/sauce-protocols/references/registry/fenix.md +39 -0
  920. package/skills/sauce-protocols/references/registry/fluid.md +48 -0
  921. package/skills/sauce-protocols/references/registry/frax-ether.md +49 -0
  922. package/skills/sauce-protocols/references/registry/frax.md +40 -0
  923. package/skills/sauce-protocols/references/registry/gains-network.md +43 -0
  924. package/skills/sauce-protocols/references/registry/gamma.md +56 -0
  925. package/skills/sauce-protocols/references/registry/gelato.md +45 -0
  926. package/skills/sauce-protocols/references/registry/gho.md +40 -0
  927. package/skills/sauce-protocols/references/registry/gmx-v1.md +59 -0
  928. package/skills/sauce-protocols/references/registry/gmx-v2.md +41 -0
  929. package/skills/sauce-protocols/references/registry/harvest.md +44 -0
  930. package/skills/sauce-protocols/references/registry/hegic.md +39 -0
  931. package/skills/sauce-protocols/references/registry/hop.md +49 -0
  932. package/skills/sauce-protocols/references/registry/hyperlane.md +48 -0
  933. package/skills/sauce-protocols/references/registry/instadapp.md +39 -0
  934. package/skills/sauce-protocols/references/registry/kelp.md +47 -0
  935. package/skills/sauce-protocols/references/registry/kim.md +39 -0
  936. package/skills/sauce-protocols/references/registry/kyberswap-aggregator.md +49 -0
  937. package/skills/sauce-protocols/references/registry/kyberswap.md +63 -0
  938. package/skills/sauce-protocols/references/registry/layerbank.md +54 -0
  939. package/skills/sauce-protocols/references/registry/layerzero.md +49 -0
  940. package/skills/sauce-protocols/references/registry/level-finance.md +41 -0
  941. package/skills/sauce-protocols/references/registry/lido.md +51 -0
  942. package/skills/sauce-protocols/references/registry/lifi.md +48 -0
  943. package/skills/sauce-protocols/references/registry/linea-bridge.md +40 -0
  944. package/skills/sauce-protocols/references/registry/liquity-v1.md +42 -0
  945. package/skills/sauce-protocols/references/registry/liquity-v2.md +40 -0
  946. package/skills/sauce-protocols/references/registry/lynex.md +39 -0
  947. package/skills/sauce-protocols/references/registry/maker.md +55 -0
  948. package/skills/sauce-protocols/references/registry/mantle-meth.md +48 -0
  949. package/skills/sauce-protocols/references/registry/maverick.md +60 -0
  950. package/skills/sauce-protocols/references/registry/moonwell.md +49 -0
  951. package/skills/sauce-protocols/references/registry/morpho-blue.md +47 -0
  952. package/skills/sauce-protocols/references/registry/mux-protocol.md +49 -0
  953. package/skills/sauce-protocols/references/registry/olympus.md +42 -0
  954. package/skills/sauce-protocols/references/registry/oneinch.md +45 -0
  955. package/skills/sauce-protocols/references/registry/openocean.md +44 -0
  956. package/skills/sauce-protocols/references/registry/optimism-bridge.md +42 -0
  957. package/skills/sauce-protocols/references/registry/opyn.md +42 -0
  958. package/skills/sauce-protocols/references/registry/pancakeswap-v2.md +71 -0
  959. package/skills/sauce-protocols/references/registry/pancakeswap-v3.md +76 -0
  960. package/skills/sauce-protocols/references/registry/paraswap.md +51 -0
  961. package/skills/sauce-protocols/references/registry/pendle.md +43 -0
  962. package/skills/sauce-protocols/references/registry/permit2.md +50 -0
  963. package/skills/sauce-protocols/references/registry/perpetual-protocol.md +49 -0
  964. package/skills/sauce-protocols/references/registry/polygon-bridge.md +43 -0
  965. package/skills/sauce-protocols/references/registry/premia.md +40 -0
  966. package/skills/sauce-protocols/references/registry/puffer.md +43 -0
  967. package/skills/sauce-protocols/references/registry/pyth.md +40 -0
  968. package/skills/sauce-protocols/references/registry/quickswap.md +80 -0
  969. package/skills/sauce-protocols/references/registry/radiant.md +41 -0
  970. package/skills/sauce-protocols/references/registry/ramses.md +39 -0
  971. package/skills/sauce-protocols/references/registry/reflexer.md +56 -0
  972. package/skills/sauce-protocols/references/registry/renzo.md +47 -0
  973. package/skills/sauce-protocols/references/registry/rocket-pool.md +49 -0
  974. package/skills/sauce-protocols/references/registry/sablier.md +40 -0
  975. package/skills/sauce-protocols/references/registry/safe.md +47 -0
  976. package/skills/sauce-protocols/references/registry/scroll-bridge.md +48 -0
  977. package/skills/sauce-protocols/references/registry/seamless.md +42 -0
  978. package/skills/sauce-protocols/references/registry/seaport.md +44 -0
  979. package/skills/sauce-protocols/references/registry/silo.md +48 -0
  980. package/skills/sauce-protocols/references/registry/socket.md +44 -0
  981. package/skills/sauce-protocols/references/registry/sommelier.md +43 -0
  982. package/skills/sauce-protocols/references/registry/spark.md +42 -0
  983. package/skills/sauce-protocols/references/registry/spookyswap.md +40 -0
  984. package/skills/sauce-protocols/references/registry/squid.md +45 -0
  985. package/skills/sauce-protocols/references/registry/stader.md +47 -0
  986. package/skills/sauce-protocols/references/registry/stargate.md +45 -0
  987. package/skills/sauce-protocols/references/registry/superfluid.md +49 -0
  988. package/skills/sauce-protocols/references/registry/sushiswap-v2.md +71 -0
  989. package/skills/sauce-protocols/references/registry/swell.md +49 -0
  990. package/skills/sauce-protocols/references/registry/synapse.md +46 -0
  991. package/skills/sauce-protocols/references/registry/syncswap.md +38 -0
  992. package/skills/sauce-protocols/references/registry/synthetix-v3.md +48 -0
  993. package/skills/sauce-protocols/references/registry/synthra-v3.md +77 -0
  994. package/skills/sauce-protocols/references/registry/thales.md +51 -0
  995. package/skills/sauce-protocols/references/registry/thena.md +39 -0
  996. package/skills/sauce-protocols/references/registry/thruster.md +38 -0
  997. package/skills/sauce-protocols/references/registry/tokemak.md +45 -0
  998. package/skills/sauce-protocols/references/registry/trader-joe.md +66 -0
  999. package/skills/sauce-protocols/references/registry/uniswap-v2.md +77 -0
  1000. package/skills/sauce-protocols/references/registry/uniswap-v3.md +113 -0
  1001. package/skills/sauce-protocols/references/registry/uniswap-v4.md +117 -0
  1002. package/skills/sauce-protocols/references/registry/unitflow-v3.md +65 -0
  1003. package/skills/sauce-protocols/references/registry/velodrome.md +58 -0
  1004. package/skills/sauce-protocols/references/registry/venus.md +62 -0
  1005. package/skills/sauce-protocols/references/registry/vertex.md +46 -0
  1006. package/skills/sauce-protocols/references/registry/wormhole.md +59 -0
  1007. package/skills/sauce-protocols/references/registry/yearn-v3.md +46 -0
  1008. package/skills/sauce-protocols/references/registry/zerolend.md +41 -0
  1009. package/skills/sauce-protocols/references/registry/zerox.md +44 -0
  1010. package/skills/sauce-protocols/references/registry/zksync-bridge.md +40 -0
  1011. package/{sdk/src/skills → skills/sauce-protocols/references}/renzo.md +10 -24
  1012. package/{sdk/src/skills → skills/sauce-protocols/references}/rocket-pool.md +10 -26
  1013. package/{sdk/src/skills → skills/sauce-protocols/references}/sablier.md +10 -27
  1014. package/skills/sauce-protocols/references/safe.md +42 -0
  1015. package/{sdk/src/skills → skills/sauce-protocols/references}/scroll-bridge.md +11 -20
  1016. package/{sdk/src/skills → skills/sauce-protocols/references}/seamless.md +11 -16
  1017. package/skills/sauce-protocols/references/seaport.md +38 -0
  1018. package/{sdk/src/skills → skills/sauce-protocols/references}/silo.md +11 -20
  1019. package/{sdk/src/skills → skills/sauce-protocols/references}/socket.md +11 -18
  1020. package/skills/sauce-protocols/references/sommelier.md +40 -0
  1021. package/{sdk/src/skills → skills/sauce-protocols/references}/spark.md +11 -16
  1022. package/{sdk/src/skills → skills/sauce-protocols/references}/spookyswap.md +12 -19
  1023. package/{sdk/src/skills → skills/sauce-protocols/references}/squid.md +11 -21
  1024. package/skills/sauce-protocols/references/stader.md +39 -0
  1025. package/{sdk/src/skills → skills/sauce-protocols/references}/stargate.md +11 -22
  1026. package/{sdk/src/skills → skills/sauce-protocols/references}/superfluid.md +10 -28
  1027. package/{sdk/src/skills → skills/sauce-protocols/references}/sushiswap-v2.md +38 -43
  1028. package/skills/sauce-protocols/references/swell.md +49 -0
  1029. package/skills/sauce-protocols/references/synapse.md +54 -0
  1030. package/{sdk/src/skills → skills/sauce-protocols/references}/syncswap.md +12 -17
  1031. package/{sdk/src/skills → skills/sauce-protocols/references}/synthetix-v3.md +10 -29
  1032. package/skills/sauce-protocols/references/synthra-v3.md +63 -0
  1033. package/skills/sauce-protocols/references/thales.md +58 -0
  1034. package/{sdk/src/skills → skills/sauce-protocols/references}/thena.md +12 -18
  1035. package/{sdk/src/skills → skills/sauce-protocols/references}/thruster.md +13 -18
  1036. package/skills/sauce-protocols/references/tokemak.md +40 -0
  1037. package/{sdk/src/skills → skills/sauce-protocols/references}/trader-joe.md +13 -26
  1038. package/{sdk/src/skills → skills/sauce-protocols/references}/uniswap-v2.md +46 -44
  1039. package/skills/sauce-protocols/references/uniswap-v3.md +188 -0
  1040. package/skills/sauce-protocols/references/uniswap-v4.md +155 -0
  1041. package/skills/sauce-protocols/references/unitflow-v3.md +63 -0
  1042. package/{sdk/src/skills → skills/sauce-protocols/references}/velodrome.md +12 -24
  1043. package/{sdk/src/skills → skills/sauce-protocols/references}/venus.md +12 -31
  1044. package/skills/sauce-protocols/references/vertex.md +42 -0
  1045. package/skills/sauce-protocols/references/wormhole.md +57 -0
  1046. package/{sdk/src/skills → skills/sauce-protocols/references}/yearn-v3.md +10 -25
  1047. package/{sdk/src/skills → skills/sauce-protocols/references}/zerolend.md +11 -15
  1048. package/skills/sauce-protocols/references/zerox.md +39 -0
  1049. package/{sdk/src/skills → skills/sauce-protocols/references}/zksync-bridge.md +11 -14
  1050. package/skills/sauce-script/SKILL.md +407 -0
  1051. package/skills/sauce-script/examples/IOracle.json +12 -0
  1052. package/skills/sauce-script/examples/saucescript.mts +167 -0
  1053. package/skills/sauce-script/examples/twap.sauce.ts +29 -0
  1054. package/skills/sauce-script/references/builtins.json +823 -0
  1055. package/skills/sauce-script/references/builtins.md +674 -0
  1056. package/skills/sauce-solana/SKILL.md +324 -0
  1057. package/skills/sauce-solana/examples/solana.mts +166 -0
  1058. package/skills/sauce-solana/examples/solana.sauce.ts +45 -0
  1059. package/skills/sauce-solana/examples/token-2022.sauce.ts +38 -0
  1060. package/skills/sauce-swaps/SKILL.md +200 -0
  1061. package/skills/sauce-swaps/examples/swap-leg.sauce.ts +50 -0
  1062. package/skills/sauce-swaps/examples/swaps.mts +124 -0
  1063. package/skills/sauce-typescript/SKILL.md +178 -0
  1064. package/skills/sauce-typescript/examples/actions.mts +100 -0
  1065. package/skills/sauce-typescript/examples/compiler.mts +69 -0
  1066. package/skills/sauce-typescript/examples/cook.mts +65 -0
  1067. package/skills/sauce-typescript/examples/verify.mts +104 -0
  1068. package/dev-tools/README.md +0 -16
  1069. package/dev-tools/artifacts/IERC20.json +0 -1
  1070. package/dev-tools/artifacts/ISauceRouter.json +0 -1
  1071. package/dev-tools/artifacts/IUniswapV3Pool.json +0 -1
  1072. package/dev-tools/artifacts/Router.json +0 -1
  1073. package/dev-tools/hardhat.config.cjs +0 -18
  1074. package/dev-tools/sauce/js/add.js +0 -4
  1075. package/dev-tools/sauce/js/call.js +0 -8
  1076. package/dev-tools/sauce/js/erc20.js +0 -18
  1077. package/dev-tools/sauce/js/example.js +0 -6
  1078. package/dev-tools/sauce/js/fibonacci.js +0 -13
  1079. package/dev-tools/sauce/ts/add.ts +0 -4
  1080. package/dev-tools/sauce/ts/call.ts +0 -8
  1081. package/dev-tools/sauce/ts/erc20.ts +0 -18
  1082. package/dev-tools/sauce/ts/example.ts +0 -6
  1083. package/dev-tools/sauce/ts/fibonacci.ts +0 -13
  1084. package/dev-tools/sauce/ts/saucescript.d.ts +0 -1
  1085. package/dev-tools/sauce/ts/tsconfig.json +0 -12
  1086. package/dev-tools/scripts/deploy.ts +0 -107
  1087. package/dev-tools/scripts/init.js +0 -132
  1088. package/dev-tools/scripts/run.ts +0 -67
  1089. package/dev-tools/scripts/start-fork.sh +0 -92
  1090. package/dev-tools/scripts/start-local.sh +0 -120
  1091. package/dev-tools/scripts/stop-local.sh +0 -40
  1092. package/dev-tools/scripts/sync-artifacts.js +0 -46
  1093. package/dev-tools/scripts/sync-price.ts +0 -58
  1094. package/dev-tools/src/contracts.ts +0 -59
  1095. package/dev-tools/src/runner.ts +0 -355
  1096. package/dev-tools/src/svm-local.ts +0 -305
  1097. package/dev-tools/src/sync-price.ts +0 -217
  1098. package/sdk/dist/deployments/v12.generated.d.ts +0 -95
  1099. package/sdk/dist/deployments/v12.generated.d.ts.map +0 -1
  1100. package/sdk/dist/deployments/v12.generated.js +0 -50
  1101. package/sdk/dist/deployments/v12.generated.js.map +0 -1
  1102. package/sdk/dist/swap/index.d.ts +0 -29
  1103. package/sdk/dist/swap/index.d.ts.map +0 -1
  1104. package/sdk/dist/swap/index.js +0 -27
  1105. package/sdk/dist/swap/index.js.map +0 -1
  1106. package/sdk/dist/swap/params.d.ts +0 -29
  1107. package/sdk/dist/swap/params.d.ts.map +0 -1
  1108. package/sdk/dist/swap/params.js +0 -123
  1109. package/sdk/dist/swap/params.js.map +0 -1
  1110. package/sdk/dist/swap/source.d.ts +0 -30
  1111. package/sdk/dist/swap/source.d.ts.map +0 -1
  1112. package/sdk/dist/swap/source.js +0 -101
  1113. package/sdk/dist/swap/source.js.map +0 -1
  1114. package/sdk/dist/swap/types.d.ts +0 -160
  1115. package/sdk/dist/swap/types.d.ts.map +0 -1
  1116. package/sdk/dist/swap/types.js +0 -106
  1117. package/sdk/dist/swap/types.js.map +0 -1
  1118. package/sdk/src/skills/aave-v3.md +0 -134
  1119. package/sdk/src/skills/aave-v4.md +0 -91
  1120. package/sdk/src/skills/abracadabra.md +0 -93
  1121. package/sdk/src/skills/across.md +0 -90
  1122. package/sdk/src/skills/aerodrome-slipstream.md +0 -57
  1123. package/sdk/src/skills/aevo.md +0 -58
  1124. package/sdk/src/skills/axelar.md +0 -80
  1125. package/sdk/src/skills/chainlink.md +0 -62
  1126. package/sdk/src/skills/curve.md +0 -141
  1127. package/sdk/src/skills/eigenlayer.md +0 -71
  1128. package/sdk/src/skills/gamma.md +0 -79
  1129. package/sdk/src/skills/harvest.md +0 -49
  1130. package/sdk/src/skills/index.md +0 -299
  1131. package/sdk/src/skills/kelp.md +0 -60
  1132. package/sdk/src/skills/kyberswap.md +0 -100
  1133. package/sdk/src/skills/loader.ts +0 -46
  1134. package/sdk/src/skills/maker.md +0 -79
  1135. package/sdk/src/skills/mantle-meth.md +0 -60
  1136. package/sdk/src/skills/olympus.md +0 -46
  1137. package/sdk/src/skills/oneinch.md +0 -64
  1138. package/sdk/src/skills/openocean.md +0 -86
  1139. package/sdk/src/skills/pancakeswap-v3.md +0 -104
  1140. package/sdk/src/skills/paraswap.md +0 -67
  1141. package/sdk/src/skills/permit2.md +0 -73
  1142. package/sdk/src/skills/perpetual-protocol.md +0 -73
  1143. package/sdk/src/skills/pyth.md +0 -58
  1144. package/sdk/src/skills/reflexer.md +0 -73
  1145. package/sdk/src/skills/safe.md +0 -56
  1146. package/sdk/src/skills/seaport.md +0 -65
  1147. package/sdk/src/skills/sommelier.md +0 -47
  1148. package/sdk/src/skills/stader.md +0 -53
  1149. package/sdk/src/skills/swell.md +0 -65
  1150. package/sdk/src/skills/synapse.md +0 -63
  1151. package/sdk/src/skills/synthra-v3.md +0 -57
  1152. package/sdk/src/skills/thales.md +0 -74
  1153. package/sdk/src/skills/tokemak.md +0 -48
  1154. package/sdk/src/skills/uniswap-v3.md +0 -202
  1155. package/sdk/src/skills/uniswap-v4.md +0 -125
  1156. package/sdk/src/skills/unitflow-v3.md +0 -62
  1157. package/sdk/src/skills/vertex.md +0 -55
  1158. package/sdk/src/skills/wormhole.md +0 -76
  1159. package/sdk/src/skills/zerox.md +0 -51
@@ -1,29 +0,0 @@
1
- /**
2
- * EVM swap program builders for `@eco-incorp/sauce`.
3
- *
4
- * `toSwapParams` normalizes a swap specification into the Sauce Router's `SwapParams` shape.
5
- * `swapSource` emits a complete program; `swapCallStatement` emits a statement for composition.
6
- * These helpers construct source synchronously and do not compile or send transactions.
7
- *
8
- * Compile the generated source with `routes.compileSauceRoute`, supplying both `pot` and `engine`.
9
- * The route compiler serves the `ISauceRouter`/`IERC20` ABIs the program imports, and annotates a
10
- * falling-through `main` as `void` before passing it to the compiler dependency.
11
- *
12
- * A program calls the Router through `ctx.self()`, using the Pot's Router dispatch. Multiple
13
- * specifications passed to `swapSource` become sequential swaps in one program and one cook.
14
- * Separate compiled programs can be composed with
15
- * `routes.buildSauceEvmCalls({ pot, engine, cooks: [swapHex, settleHex] })`.
16
- *
17
- * The unified `swap()` path supports pool types 0..8. Pancake Infinity CL/Bin require different
18
- * Router entry points and are rejected here. Callback data, when supported by the pool type,
19
- * must be supplied as an already compiled program. This builder discards the swap's return
20
- * values; enforce an output requirement with an explicit balance/delta check or settlement.
21
- *
22
- * See `docs/guides/builders-and-actions.md` for public usage and composition examples.
23
- */
24
- export { SwapPoolType, UndispatchablePoolType, ZERO_POOL_KEY, SWAP_PARAMS_FIELDS, POOL_KEY_FIELDS, isCallbackVenue, isCallbackFree, usesPoolKey, } from "./types.js";
25
- export type { Address, Hex, AddressInput, AmountInput, PoolKey, PoolKeyInput, SwapSpec, SwapSourceSpec, SwapParams, } from "./types.js";
26
- export { toSwapParams, amountSpecifiedFor } from "./params.js";
27
- export { swapCallStatement, swapSource, swapImportLines } from "./source.js";
28
- export type { SwapSourceOptions } from "./source.js";
29
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,OAAO,EACP,GAAG,EACH,YAAY,EACZ,WAAW,EACX,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,27 +0,0 @@
1
- /**
2
- * EVM swap program builders for `@eco-incorp/sauce`.
3
- *
4
- * `toSwapParams` normalizes a swap specification into the Sauce Router's `SwapParams` shape.
5
- * `swapSource` emits a complete program; `swapCallStatement` emits a statement for composition.
6
- * These helpers construct source synchronously and do not compile or send transactions.
7
- *
8
- * Compile the generated source with `routes.compileSauceRoute`, supplying both `pot` and `engine`.
9
- * The route compiler serves the `ISauceRouter`/`IERC20` ABIs the program imports, and annotates a
10
- * falling-through `main` as `void` before passing it to the compiler dependency.
11
- *
12
- * A program calls the Router through `ctx.self()`, using the Pot's Router dispatch. Multiple
13
- * specifications passed to `swapSource` become sequential swaps in one program and one cook.
14
- * Separate compiled programs can be composed with
15
- * `routes.buildSauceEvmCalls({ pot, engine, cooks: [swapHex, settleHex] })`.
16
- *
17
- * The unified `swap()` path supports pool types 0..8. Pancake Infinity CL/Bin require different
18
- * Router entry points and are rejected here. Callback data, when supported by the pool type,
19
- * must be supplied as an already compiled program. This builder discards the swap's return
20
- * values; enforce an output requirement with an explicit balance/delta check or settlement.
21
- *
22
- * See `docs/guides/builders-and-actions.md` for public usage and composition examples.
23
- */
24
- export { SwapPoolType, UndispatchablePoolType, ZERO_POOL_KEY, SWAP_PARAMS_FIELDS, POOL_KEY_FIELDS, isCallbackVenue, isCallbackFree, usesPoolKey, } from "./types.js";
25
- export { toSwapParams, amountSpecifiedFor } from "./params.js";
26
- export { swapCallStatement, swapSource, swapImportLines } from "./source.js";
27
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AAapB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE/D,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC"}
@@ -1,29 +0,0 @@
1
- import { SwapPoolType, type SwapParams, type SwapSpec } from "./types.js";
2
- /**
3
- * The single, standalone sign rule (E4.3): given a POSITIVE exact-input amount, returns the
4
- * `amountSpecified` value the given pool type's handler actually wants.
5
- *
6
- * - UniV3 (`Router.sol:431`, passthrough into Uniswap V3's own `pool.swap`): POSITIVE = exact
7
- * input (fork-verified; contradicts `IRouter.sol`'s own struct doc comment — see `SwapParams`).
8
- * - UniV4 (`Router.sol`'s `unlockCallback` → `V4SwapParams`): NEGATIVE = exact input (Uniswap V4's
9
- * flipped convention). Encoded as the exact two's-complement `uint256` (`2**256 - amountIn`), not
10
- * `-amountIn` — see the module doc for why the compact spelling is deliberately deferred.
11
- * - Every other pool type (0, 3, 4, 5, 6, 7, 8): the handler takes `abs(amountSpecified)`, so the
12
- * canonical positive form is used as-is.
13
- */
14
- export declare function amountSpecifiedFor(poolType: SwapPoolType, amountIn: bigint): bigint;
15
- /**
16
- * The whole normalization + sign + defaulting + guard decision: lowers a chain-agnostic
17
- * {@link SwapSpec} into a fully normalized {@link SwapParams} — plain bigints (+ the `"self"`
18
- * sentinel for a defaulted `payer`/`recipient`), in exact ABI-declaration order, so
19
- * `Object.keys(toSwapParams(spec))` matches the vendored `ISauceRouter.json` component order.
20
- *
21
- * Throws (never emits a program that would revert on-chain) for: poolType 9/10 (Infinity — not
22
- * dispatchable through `swap()`, see {@link UndispatchablePoolType}); any other out-of-range
23
- * poolType; UniV4 missing `poolKey`; UniV2 `poolKey.fee >= 1_000_000`; a non-empty `callback` on a
24
- * non-callback-driven pool type; a non-empty `callback` with an overridden `payer`/`recipient`; and
25
- * any numeric field given as a `number` that is not a safe integer (past 2^53-1 pass a bigint or a
26
- * string, since the double has already been rounded).
27
- */
28
- export declare function toSwapParams(spec: SwapSpec): SwapParams;
29
- //# sourceMappingURL=params.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"params.d.ts","sourceRoot":"","sources":["../../src/swap/params.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,YAAY,EASZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAyDpB;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUnF;AAwBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAoCvD"}
@@ -1,123 +0,0 @@
1
- /**
2
- * Normalization core for E4.1's universal swap adapter — `toSwapParams` + `amountSpecifiedFor`.
3
- * See `sdk/src/swap/index.ts` for the module overview.
4
- */
5
- import { toExactBigInt } from "../numeric.js";
6
- import { isCallbackVenue, SwapPoolType, UndispatchablePoolType, usesPoolKey, ZERO_POOL_KEY, } from "./types.js";
7
- const DISPATCHABLE_POOL_TYPES = new Set(Object.values(SwapPoolType));
8
- const UNDISPATCHABLE_POOL_TYPES = new Set(Object.values(UndispatchablePoolType));
9
- /** UniV2's pair-fee ceiling — `Router.sol#_swapV2` reverts at/above this (ppm; 1_000_000 = 100%). */
10
- const MAX_UNIV2_FEE_PPM = 1000000n;
11
- function toBigIntStrict(value, label) {
12
- if (typeof value === "bigint")
13
- return value;
14
- if (typeof value === "number")
15
- return toExactBigInt(value, label);
16
- // string: decimal or 0x-hex, either accepted by BigInt() directly.
17
- return BigInt(value);
18
- }
19
- function toAddressBigint(value, _label) {
20
- if (typeof value === "bigint")
21
- return value;
22
- return BigInt(value);
23
- }
24
- function normalizePoolKey(poolType, input) {
25
- if (poolType === SwapPoolType.UniV4) {
26
- if (input === undefined) {
27
- throw new Error("toSwapParams: poolKey is required for UniV4 (currency0, currency1, fee, tickSpacing, hooks)");
28
- }
29
- return {
30
- currency0: input.currency0 !== undefined ? toAddressBigint(input.currency0, "poolKey.currency0") : 0n,
31
- currency1: input.currency1 !== undefined ? toAddressBigint(input.currency1, "poolKey.currency1") : 0n,
32
- fee: input.fee !== undefined ? toBigIntStrict(input.fee, "poolKey.fee") : 0n,
33
- tickSpacing: input.tickSpacing !== undefined
34
- ? toBigIntStrict(input.tickSpacing, "poolKey.tickSpacing")
35
- : 0n,
36
- hooks: input.hooks !== undefined ? toAddressBigint(input.hooks, "poolKey.hooks") : 0n,
37
- };
38
- }
39
- if (poolType === SwapPoolType.UniV2) {
40
- const fee = input?.fee !== undefined ? toBigIntStrict(input.fee, "poolKey.fee") : 0n;
41
- if (fee >= MAX_UNIV2_FEE_PPM) {
42
- throw new Error(`toSwapParams: poolKey.fee (${fee}) must be < ${MAX_UNIV2_FEE_PPM} ppm for UniV2 (Router.sol reverts at/above it); 0 means the engine's default 3000 (0.30%)`);
43
- }
44
- return { ...ZERO_POOL_KEY, fee };
45
- }
46
- // Every other pool type ignores poolKey entirely — see usesPoolKey.
47
- return ZERO_POOL_KEY;
48
- }
49
- /**
50
- * The single, standalone sign rule (E4.3): given a POSITIVE exact-input amount, returns the
51
- * `amountSpecified` value the given pool type's handler actually wants.
52
- *
53
- * - UniV3 (`Router.sol:431`, passthrough into Uniswap V3's own `pool.swap`): POSITIVE = exact
54
- * input (fork-verified; contradicts `IRouter.sol`'s own struct doc comment — see `SwapParams`).
55
- * - UniV4 (`Router.sol`'s `unlockCallback` → `V4SwapParams`): NEGATIVE = exact input (Uniswap V4's
56
- * flipped convention). Encoded as the exact two's-complement `uint256` (`2**256 - amountIn`), not
57
- * `-amountIn` — see the module doc for why the compact spelling is deliberately deferred.
58
- * - Every other pool type (0, 3, 4, 5, 6, 7, 8): the handler takes `abs(amountSpecified)`, so the
59
- * canonical positive form is used as-is.
60
- */
61
- export function amountSpecifiedFor(poolType, amountIn) {
62
- if (amountIn < 0n) {
63
- throw new Error(`amountSpecifiedFor: amountIn must be a positive exact-input amount, got ${amountIn}`);
64
- }
65
- if (poolType === SwapPoolType.UniV4) {
66
- return amountIn === 0n ? 0n : 2n ** 256n - amountIn;
67
- }
68
- return amountIn;
69
- }
70
- function normalizeCallback(poolType, callback, payerOverridden, recipientOverridden) {
71
- const value = callback ?? "0x";
72
- if (value === "0x")
73
- return value;
74
- if (!isCallbackVenue(poolType)) {
75
- throw new Error(`toSwapParams: a non-empty callback is only valid for a callback-driven pool type (UniV3, UniV4, MaverickV2) — Router.sol's swap() rejects it for poolType ${poolType}`);
76
- }
77
- if (payerOverridden || recipientOverridden) {
78
- throw new Error("toSwapParams: a non-empty callback requires payer and recipient to both stay ctx.self() — Router.sol's callback-driven handlers require payer == recipient == address(this)");
79
- }
80
- return value;
81
- }
82
- /**
83
- * The whole normalization + sign + defaulting + guard decision: lowers a chain-agnostic
84
- * {@link SwapSpec} into a fully normalized {@link SwapParams} — plain bigints (+ the `"self"`
85
- * sentinel for a defaulted `payer`/`recipient`), in exact ABI-declaration order, so
86
- * `Object.keys(toSwapParams(spec))` matches the vendored `ISauceRouter.json` component order.
87
- *
88
- * Throws (never emits a program that would revert on-chain) for: poolType 9/10 (Infinity — not
89
- * dispatchable through `swap()`, see {@link UndispatchablePoolType}); any other out-of-range
90
- * poolType; UniV4 missing `poolKey`; UniV2 `poolKey.fee >= 1_000_000`; a non-empty `callback` on a
91
- * non-callback-driven pool type; a non-empty `callback` with an overridden `payer`/`recipient`; and
92
- * any numeric field given as a `number` that is not a safe integer (past 2^53-1 pass a bigint or a
93
- * string, since the double has already been rounded).
94
- */
95
- export function toSwapParams(spec) {
96
- const { poolType } = spec;
97
- if (UNDISPATCHABLE_POOL_TYPES.has(poolType)) {
98
- throw new Error(`toSwapParams: poolType ${poolType} (PancakeInfinity CL/Bin) is not dispatchable through the unified swap() — Router.sol falls through to revert SwapFailed(). Use the dedicated swapInfinityCL/swapInfinityBin entry points instead (a follow-up, not built by this module).`);
99
- }
100
- if (!DISPATCHABLE_POOL_TYPES.has(poolType)) {
101
- throw new Error(`toSwapParams: unknown poolType ${poolType} (expected one of SwapPoolType's 0..8)`);
102
- }
103
- const payerOverridden = spec.payer !== undefined;
104
- const recipientOverridden = spec.recipient !== undefined;
105
- const params = {
106
- poolType,
107
- pool: toAddressBigint(spec.pool, "pool"),
108
- poolKey: usesPoolKey(poolType) ? normalizePoolKey(poolType, spec.poolKey) : ZERO_POOL_KEY,
109
- tokenIn: toAddressBigint(spec.tokenIn, "tokenIn"),
110
- tokenOut: toAddressBigint(spec.tokenOut, "tokenOut"),
111
- amountSpecified: amountSpecifiedFor(poolType, toBigIntStrict(spec.amountIn, "amountIn")),
112
- sqrtPriceLimitX96: spec.sqrtPriceLimitX96 !== undefined
113
- ? toBigIntStrict(spec.sqrtPriceLimitX96, "sqrtPriceLimitX96")
114
- : 0n,
115
- payer: payerOverridden ? toAddressBigint(spec.payer, "payer") : "self",
116
- recipient: recipientOverridden
117
- ? toAddressBigint(spec.recipient, "recipient")
118
- : "self",
119
- callback: normalizeCallback(poolType, spec.callback, payerOverridden, recipientOverridden),
120
- };
121
- return params;
122
- }
123
- //# sourceMappingURL=params.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"params.js","sourceRoot":"","sources":["../../src/swap/params.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import { type SwapSourceSpec } from "./types.js";
2
- /**
3
- * One `ISauceRouter.at(ctx.self()).swap({...})` statement for `spec` — for splicing into a
4
- * larger, hand-written program. Runs the FULL `toSwapParams` normalization/guard pass (a
5
- * `"balance"` `amountIn` reuses every other field's normalization, only the amount itself is
6
- * emitted as a runtime expression instead of a literal).
7
- */
8
- export declare function swapCallStatement(spec: SwapSourceSpec): string;
9
- export interface SwapSourceOptions {
10
- /** Defaults to `"main"`. */
11
- functionName?: string;
12
- /** Extra import lines spliced in verbatim, ahead of the generated `main`/`functionName` body. */
13
- imports?: readonly string[];
14
- }
15
- /**
16
- * The import lines a `swapSource(specs)` program needs — `ISauceRouter` always, plus `IERC20` iff
17
- * any spec uses `amountIn: "balance"`. Extracted so `swapThenDepositSource` (E4.2's composition
18
- * seam) can union these with the deposit side's own import lines instead of duplicating this rule;
19
- * `swapSource` itself just calls this, so its own output is unaffected byte-for-byte.
20
- */
21
- export declare function swapImportLines(specs: SwapSourceSpec | readonly SwapSourceSpec[]): readonly string[];
22
- /**
23
- * A complete, compilable `function main() { ... }` program: one `ISauceRouter.swap(...)` statement
24
- * per spec, in the given order, inside ONE function — because `V12Pot.cook` takes exactly one
25
- * program (its own doc), a multi-hop route is ONE program with N swap statements, not N separate
26
- * cooks. See `sdk/src/swap/index.ts` for the full compile → `routes.buildSauceEvmCall`
27
- * seam.
28
- */
29
- export declare function swapSource(spec: SwapSourceSpec | readonly SwapSourceSpec[], opts?: SwapSourceOptions): string;
30
- //# sourceMappingURL=source.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/swap/source.ts"],"names":[],"mappings":"AASA,OAAO,EAA0B,KAAK,cAAc,EAAiB,MAAM,YAAY,CAAC;AAiCxF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CA4B9D;AAED,MAAM,WAAW,iBAAiB;IAChC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GAChD,SAAS,MAAM,EAAE,CAOnB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,EAChD,IAAI,GAAE,iBAAsB,GAC3B,MAAM,CAiBR"}
@@ -1,101 +0,0 @@
1
- /**
2
- * SauceScript SOURCE emission for E4.1's universal swap adapter — pure string templating over
3
- * {@link toSwapParams}'s normalized output. Imports NO compiler (matches `sdk/src/recipes/index.ts`
4
- * and `sdk/src/svm/recipes/index.ts`'s posture: every compile option stays explicit at the call
5
- * site). See `sdk/src/swap/index.ts` for the full E3-composition example. The route compiler serves
6
- * the `./artifacts/ISauceRouter.json` (and, for a `"balance"` leg, `./artifacts/IERC20.json`) a
7
- * generated program imports.
8
- */
9
- import { toSwapParams } from "./params.js";
10
- import { SwapPoolType } from "./types.js";
11
- function formatBigint(value) {
12
- return `${value.toString()}n`;
13
- }
14
- /** `bigint` → its numeric literal; the `"self"` sentinel → the SauceScript `ctx.self()` global. */
15
- function formatAddressField(value) {
16
- return value === "self" ? "ctx.self()" : formatBigint(value);
17
- }
18
- /** The bytes as a SauceScript `hex` literal; `"0x"` yields the empty one. */
19
- function formatCallback(callback) {
20
- const digits = callback.slice(2);
21
- if (digits.length % 2 !== 0)
22
- throw new Error(`formatCallback: odd-length hex string ${callback}`);
23
- return `hex\`${digits.toLowerCase()}\``;
24
- }
25
- function formatPoolKey(poolKey) {
26
- return (`{ currency0: ${formatBigint(poolKey.currency0)}, currency1: ${formatBigint(poolKey.currency1)}, ` +
27
- `fee: ${formatBigint(poolKey.fee)}, tickSpacing: ${formatBigint(poolKey.tickSpacing)}, ` +
28
- `hooks: ${formatBigint(poolKey.hooks)} }`);
29
- }
30
- function fieldsFromParams(params) {
31
- const { amountSpecified: _amountSpecified, ...rest } = params;
32
- return rest;
33
- }
34
- /**
35
- * One `ISauceRouter.at(ctx.self()).swap({...})` statement for `spec` — for splicing into a
36
- * larger, hand-written program. Runs the FULL `toSwapParams` normalization/guard pass (a
37
- * `"balance"` `amountIn` reuses every other field's normalization, only the amount itself is
38
- * emitted as a runtime expression instead of a literal).
39
- */
40
- export function swapCallStatement(spec) {
41
- const concreteSpec = spec.amountIn === "balance" ? { ...spec, amountIn: 0n } : spec;
42
- const params = toSwapParams(concreteSpec);
43
- const fields = fieldsFromParams(params);
44
- const tokenInLiteral = formatAddressField(fields.tokenIn);
45
- const amountExpr = spec.amountIn === "balance"
46
- ? spec.poolType === SwapPoolType.UniV4
47
- ? `(0n - (IERC20.at(${tokenInLiteral}).balanceOf(ctx.self())))`
48
- : `IERC20.at(${tokenInLiteral}).balanceOf(ctx.self())`
49
- : formatBigint(params.amountSpecified);
50
- const lines = [
51
- "ISauceRouter.at(ctx.self()).swap({",
52
- ` poolType: ${fields.poolType}n,`,
53
- ` pool: ${formatAddressField(fields.pool)},`,
54
- ` poolKey: ${formatPoolKey(fields.poolKey)},`,
55
- ` tokenIn: ${tokenInLiteral},`,
56
- ` tokenOut: ${formatAddressField(fields.tokenOut)},`,
57
- ` amountSpecified: ${amountExpr},`,
58
- ` sqrtPriceLimitX96: ${formatBigint(fields.sqrtPriceLimitX96)},`,
59
- ` payer: ${formatAddressField(fields.payer)},`,
60
- ` recipient: ${formatAddressField(fields.recipient)},`,
61
- ` callback: ${formatCallback(fields.callback)},`,
62
- "});",
63
- ];
64
- return lines.join("\n");
65
- }
66
- /**
67
- * The import lines a `swapSource(specs)` program needs — `ISauceRouter` always, plus `IERC20` iff
68
- * any spec uses `amountIn: "balance"`. Extracted so `swapThenDepositSource` (E4.2's composition
69
- * seam) can union these with the deposit side's own import lines instead of duplicating this rule;
70
- * `swapSource` itself just calls this, so its own output is unaffected byte-for-byte.
71
- */
72
- export function swapImportLines(specs) {
73
- const list = Array.isArray(specs) ? specs : [specs];
74
- const needsBalanceImport = list.some((s) => s.amountIn === "balance");
75
- return [
76
- `import { ISauceRouter } from "./artifacts/ISauceRouter.json";`,
77
- ...(needsBalanceImport ? [`import { IERC20 } from "./artifacts/IERC20.json";`] : []),
78
- ];
79
- }
80
- /**
81
- * A complete, compilable `function main() { ... }` program: one `ISauceRouter.swap(...)` statement
82
- * per spec, in the given order, inside ONE function — because `V12Pot.cook` takes exactly one
83
- * program (its own doc), a multi-hop route is ONE program with N swap statements, not N separate
84
- * cooks. See `sdk/src/swap/index.ts` for the full compile → `routes.buildSauceEvmCall`
85
- * seam.
86
- */
87
- export function swapSource(spec, opts = {}) {
88
- const specs = Array.isArray(spec) ? spec : [spec];
89
- if (specs.length === 0)
90
- throw new Error("swapSource: at least one swap spec is required");
91
- const importLines = [...swapImportLines(specs), ...(opts.imports ?? [])];
92
- const fnName = opts.functionName ?? "main";
93
- const body = specs
94
- .map((s) => swapCallStatement(s)
95
- .split("\n")
96
- .map((line) => ` ${line}`)
97
- .join("\n"))
98
- .join("\n");
99
- return [...importLines, "", `function ${fnName}() {`, body, "}", ""].join("\n");
100
- }
101
- //# sourceMappingURL=source.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/swap/source.ts"],"names":[],"mappings":"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"}
@@ -1,160 +0,0 @@
1
- /**
2
- * `@eco-incorp/sauce`'s `swap` module — E4.1, the universal swap adapter.
3
- *
4
- * Types + pool-type registry for lowering a chain-agnostic swap SPEC into a `ISauceRouter.swap`
5
- * call. See `sdk/src/swap/index.ts` for the module-level overview and the E3 composition example.
6
- */
7
- /**
8
- * `SwapPoolType` — pinned verbatim from the engine's `IRouter.sol` `enum SwapPoolType`, whose own
9
- * doc says values are APPEND-ONLY (the enum rides `SwapParams.poolType` as `uint8`, so reordering
10
- * breaks the ABI of every compiled recipe). Only 0..8 are dispatchable through the unified
11
- * `swap()` entry point — see {@link UndispatchablePoolType} for 9/10.
12
- */
13
- export declare const SwapPoolType: {
14
- readonly UniV2: 0;
15
- readonly UniV3: 1;
16
- readonly UniV4: 2;
17
- readonly Curve: 3;
18
- readonly BalancerV2: 4;
19
- readonly DODOV2: 5;
20
- readonly TraderJoeLB: 6;
21
- readonly MaverickV2: 7;
22
- readonly WOOFi: 8;
23
- };
24
- export type SwapPoolType = (typeof SwapPoolType)[keyof typeof SwapPoolType];
25
- /**
26
- * Pool types that exist on the engine's `SwapPoolType` enum but are NOT dispatchable through the
27
- * unified `swap()` — `Router.sol`'s `swap()` dispatch chain covers only 0..8 and falls through to
28
- * `revert SwapFailed()` for anything else. PancakeInfinity's CL/Bin pools need their own
29
- * `swapInfinityCL`/`swapInfinityBin` entry points (a different, 6-field `InfinityPoolKey` that
30
- * `SwapParams` cannot carry) — out of scope for this first cut. Exported so the value is nameable;
31
- * {@link toSwapParams} throws when handed one of these, pointing at this follow-up.
32
- */
33
- export declare const UndispatchablePoolType: {
34
- readonly PancakeInfinityCL: 9;
35
- readonly PancakeInfinityBin: 10;
36
- };
37
- export type UndispatchablePoolType = (typeof UndispatchablePoolType)[keyof typeof UndispatchablePoolType];
38
- /**
39
- * True for the three pool types `Router.sol` (`~279-283`) allows a non-empty `callback` for — the
40
- * pool re-enters the contract mid-swap to pull input, so servicing it requires the router's
41
- * compiled code. NOT the same partition as {@link isCallbackFree}: MaverickV2 is callback-driven
42
- * yet its handler still takes `abs(amountSpecified)` (see `amountSpecifiedFor`).
43
- */
44
- export declare function isCallbackVenue(poolType: SwapPoolType): boolean;
45
- /**
46
- * True for the pool types whose swap logic is callback-free (`Router.sol` reads reserves / calls a
47
- * plain `pool.swap(...)`) and so MAY, as a follow-up, be replicated as direct
48
- * `transfer` + `pool.swap` SauceScript instead of going through the Router. This module always
49
- * routes through the unified `swap()` regardless — see `sdk/src/swap/index.ts`'s scope notes.
50
- */
51
- export declare function isCallbackFree(poolType: SwapPoolType): boolean;
52
- /**
53
- * True for the pool types where `SwapParams.poolKey` is actually consulted by the engine:
54
- * UniV4 (all 5 fields, via `V4SwapParams`) and, less obviously, UniV2 (`Router.sol#_swapV2` reads
55
- * `poolKey.fee` as the pair's LP fee in ppm — `0` defaults to 3000 / 0.30%, `>= 1_000_000` reverts).
56
- * Every other pool type ignores `poolKey` entirely.
57
- */
58
- export declare function usesPoolKey(poolType: SwapPoolType): boolean;
59
- /** A 20-byte EVM address, as an ordinary `0x`-prefixed hex string. */
60
- export type Address = `0x${string}`;
61
- /** A `0x`-prefixed hex byte string (used for `SwapParams.callback`). */
62
- export type Hex = `0x${string}`;
63
- /** Anything {@link toSwapParams} accepts for an address-shaped field. */
64
- export type AddressInput = Address | bigint;
65
- /** Anything {@link toSwapParams} accepts for a numeric-shaped field. */
66
- export type AmountInput = bigint | number | string;
67
- /**
68
- * `SwapParams.poolKey` as the caller may supply it — every field optional; unset fields default to
69
- * `0n` (see `toSwapParams`'s per-pool-type rules for which defaults are actually meaningful).
70
- */
71
- export interface PoolKeyInput {
72
- currency0?: AddressInput;
73
- currency1?: AddressInput;
74
- fee?: AmountInput;
75
- tickSpacing?: AmountInput;
76
- hooks?: AddressInput;
77
- }
78
- /** `SwapParams.poolKey`, fully normalized — 5 bigint fields, in ABI-declaration order. */
79
- export interface PoolKey {
80
- currency0: bigint;
81
- currency1: bigint;
82
- fee: bigint;
83
- tickSpacing: bigint;
84
- hooks: bigint;
85
- }
86
- /** All-zero `poolKey`, used for any pool type that doesn't consult it (see {@link usesPoolKey}). */
87
- export declare const ZERO_POOL_KEY: PoolKey;
88
- /**
89
- * The chain-agnostic swap SPEC a caller builds — the input to {@link toSwapParams} /
90
- * `swapCallStatement` / `swapSource`. `amountIn` is always a single, unambiguous POSITIVE
91
- * exact-input amount; {@link amountSpecifiedFor} does the per-path sign normalization.
92
- *
93
- * `payer`/`recipient` default to the SauceScript call `ctx.self()` (Router swap entries are
94
- * `onlySelf`) — leave them unset unless you specifically need a different payer/recipient (which
95
- * then disqualifies a non-empty `callback`, see `toSwapParams`'s guard).
96
- */
97
- export interface SwapSpec {
98
- poolType: SwapPoolType;
99
- pool: AddressInput;
100
- /** Required (all 5 fields) for UniV4; `fee` alone is meaningful for UniV2 (LP fee in ppm, `0` →
101
- * engine default 3000). Ignored for every other pool type. See {@link usesPoolKey}. */
102
- poolKey?: PoolKeyInput;
103
- tokenIn: AddressInput;
104
- tokenOut: AddressInput;
105
- /** A positive exact-input amount. See `amountSpecifiedFor` for the per-path sign this becomes. */
106
- amountIn: AmountInput;
107
- sqrtPriceLimitX96?: AmountInput;
108
- /** Defaults to `ctx.self()`. Overriding this while also passing a non-empty `callback` is
109
- * rejected — see `toSwapParams`'s guard mirroring `Router.sol`'s own `payer == recipient ==
110
- * address(this)` check for a callback-driven swap. */
111
- payer?: AddressInput;
112
- /** Defaults to `ctx.self()`. See `payer`'s note. */
113
- recipient?: AddressInput;
114
- /** Opaque, already-compiled callback bytes for a Tier-1 flash fragment. Only valid for
115
- * {@link isCallbackVenue} pool types; building one is out of scope here — see
116
- * `sdk/src/swap/index.ts`'s scope notes. Defaults to empty (`"0x"`). */
117
- callback?: Hex;
118
- }
119
- /**
120
- * The one extra shape `swapCallStatement`/`swapSource` accept beyond {@link SwapSpec}:
121
- * `amountIn: "balance"` emits a RUNTIME `IERC20.at(tokenIn).balanceOf(ctx.self())` read instead
122
- * of a baked-in literal — the shape a multi-leg program needs when a later leg's input is an
123
- * earlier leg's (unknown at compile time) output. `toSwapParams` does NOT accept this shape: it
124
- * produces a concrete `SwapParams` object, which a runtime-derived amount cannot be.
125
- */
126
- export type SwapSourceSpec = SwapSpec | (Omit<SwapSpec, "amountIn"> & {
127
- amountIn: "balance";
128
- });
129
- /**
130
- * `ISauceRouter.swap`'s `SwapParams`, fully normalized — every scalar a `bigint` (SauceScript- and
131
- * viem-native), in exact ABI-declaration order (see `SWAP_PARAMS_FIELDS`, pinned against the
132
- * vendored artifact in `sdk/test/swap.test.ts`). `payer`/`recipient` are `bigint | "self"`: `"self"`
133
- * is the unresolved `ctx.self()` sentinel (this contract's own address, not knowable off-chain
134
- * without the Pot address), preserved rather than eagerly resolved so a caller can tell the two
135
- * cases apart.
136
- *
137
- * **Sign note (load-bearing, do not "fix" from the struct doc comment):** `IRouter.sol`'s own
138
- * `SwapParams.amountSpecified` comment claims "Negative = exact input, Positive = exact output"
139
- * universally. That is wrong for UniV3 — `Router.sol:431` passes it straight into Uniswap V3's
140
- * pool, whose OWN convention is positive = exact input (fork-verified; see this repo's CLAUDE.md).
141
- * `amountSpecifiedFor` follows the CODE, not the comment.
142
- */
143
- export interface SwapParams {
144
- poolType: SwapPoolType;
145
- pool: bigint;
146
- poolKey: PoolKey;
147
- tokenIn: bigint;
148
- tokenOut: bigint;
149
- amountSpecified: bigint;
150
- sqrtPriceLimitX96: bigint;
151
- payer: bigint | "self";
152
- recipient: bigint | "self";
153
- callback: Hex;
154
- }
155
- /** `SwapParams`'s top-level field names, in exact ABI-declaration order (pinned against the
156
- * vendored `ISauceRouter.json` artifact in `sdk/test/swap.test.ts`). */
157
- export declare const SWAP_PARAMS_FIELDS: readonly (keyof SwapParams)[];
158
- /** `SwapParams.poolKey`'s field names, in exact ABI-declaration order. */
159
- export declare const POOL_KEY_FIELDS: readonly (keyof PoolKey)[];
160
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/swap/types.ts"],"names":[],"mappings":"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"}