@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
@@ -4,7 +4,7 @@ Yield aggregator protocol. V3 vaults follow the ERC-4626 standard for automated
4
4
 
5
5
  ## Category
6
6
 
7
- yield | Chains: Ethereum
7
+ yield | Chains and addresses: [registry/yearn-v3.md](registry/yearn-v3.md)
8
8
 
9
9
  ## Key Operations
10
10
 
@@ -12,13 +12,12 @@ yield | Chains: Ethereum
12
12
  - **withdraw**: Withdraw assets by specifying asset amount
13
13
  - **redeem**: Withdraw by specifying share amount
14
14
 
15
- ## SDK Usage
15
+ ## Typed templates for the raw compiler (not for `sauce compile`)
16
16
 
17
- ```typescript
18
- import { protocolInfo, deployments, sauceFunctions } from "@eco-incorp/sauce/protocols/yearn-v3";
19
- ```
20
-
21
- ## SauceScript Examples
17
+ These import the protocol's ABI from `./abis`, the way the registry compiles them with the raw
18
+ compiler; `sauce compile` has no such module. In a program for a chain, name the contract by its
19
+ namespace, or import its ABI from `./protocols/<slug>/<Export>.json` as the registry file at the
20
+ top of this document shows, and write SauceScript's values (`~0n`, not `type(uint256).max`).
22
21
 
23
22
  ```typescript
24
23
  // Deposit into Yearn V3 vault
@@ -43,25 +42,11 @@ function main(vaultAddress: Address, shares: Uint256, receiver: Address, owner:
43
42
  }
44
43
  ```
45
44
 
46
- ## Key Addresses
47
-
48
- | Chain | Contract | Address |
49
- | -------- | ------------ | -------------------------------------------- |
50
- | Ethereum | vaultFactory | `0x770D0d1Fb036483Ed4AbB6d53c1C89fb277D812F` |
51
-
52
- ## ABI Methods
53
-
54
- ### YearnV3VaultABI (ERC-4626)
45
+ ## Deployments and ABI
55
46
 
56
- - `deposit(uint256,address)` - Deposit assets, receive shares. Returns shares minted
57
- - `withdraw(uint256,address,address)` - Withdraw by asset amount. Params: assets, receiver, owner
58
- - `redeem(uint256,address,address)` - Redeem by share amount. Returns assets
59
- - `convertToShares(uint256)` - Preview shares for asset amount
60
- - `convertToAssets(uint256)` - Preview assets for share amount
61
- - `totalAssets()` - Total assets managed by vault
62
- - `pricePerShare()` - Current share price (Yearn-specific, equivalent to convertToAssets(1e18))
63
- - `balanceOf(address)` - Query vault share balance
64
- - `approve(address,uint256)` - Approve share spending
47
+ The registry's addresses per chain, how a program names each contract there (a namespace, or
48
+ an ABI import bound to the address), and the ABI functions are generated in
49
+ [registry/yearn-v3.md](registry/yearn-v3.md).
65
50
 
66
51
  ## Notes
67
52
 
@@ -4,9 +4,14 @@ Leading lending protocol on zkSync Era. Aave V3 fork optimized for zero-knowledg
4
4
 
5
5
  ## Category
6
6
 
7
- lending | Chains: zkSync (324)
7
+ lending | Chains and addresses: [registry/zerolend.md](registry/zerolend.md)
8
8
 
9
- ## SauceScript Functions
9
+ ## Typed templates for the raw compiler (not for `sauce compile`)
10
+
11
+ These import the protocol's ABI from `./abis`, the way the registry compiles them with the raw
12
+ compiler; `sauce compile` has no such module. In a program for a chain, name the contract by its
13
+ namespace, or import its ABI from `./protocols/<slug>/<Export>.json` as the registry file at the
14
+ top of this document shows, and write SauceScript's values (`~0n`, not `type(uint256).max`).
10
15
 
11
16
  ### supply
12
17
 
@@ -85,20 +90,11 @@ function main(
85
90
  - `amount`: Use `type(uint256).max` to repay full debt
86
91
  - Requires ERC-20 approval to the Pool
87
92
 
88
- ## Deployed Addresses
89
-
90
- | Chain | Contract | Address |
91
- | ------ | -------- | -------------------------------------------- |
92
- | zkSync | pool | `0x4d9429246EA989C9CeE203B43F6d1C7D83e3B8F8` |
93
-
94
- ## ABI Reference
95
-
96
- ### ZeroLendPoolABI
93
+ ## Deployments and ABI
97
94
 
98
- - `supply(address asset, uint256 amount, address onBehalfOf, uint16 referralCode)` - Supply asset to earn interest
99
- - `withdraw(address asset, uint256 amount, address to) returns (uint256)` - Withdraw supplied asset
100
- - `borrow(address asset, uint256 amount, uint256 interestRateMode, uint16 referralCode, address onBehalfOf)` - Borrow against collateral
101
- - `repay(address asset, uint256 amount, uint256 interestRateMode, address onBehalfOf) returns (uint256)` - Repay debt
95
+ The registry's addresses per chain, how a program names each contract there (a namespace, or
96
+ an ABI import bound to the address), and the ABI functions are generated in
97
+ [registry/zerolend.md](registry/zerolend.md).
102
98
 
103
99
  ## Notes
104
100
 
@@ -0,0 +1,39 @@
1
+ # 0x Protocol
2
+
3
+ > **In a Sauce program**, swap through the Sauce Router wherever it services the pool, with a price limit, a minimum output and the unspent input returned (`sauce-swaps`; several pools under one limit, `sauce-distributed-swap`). The templates below call the protocol's own contracts.
4
+
5
+ DEX aggregation protocol powering swaps across the DeFi ecosystem. Exchange Proxy provides a single entry point for token swaps across multiple sources.
6
+
7
+ ## Category
8
+
9
+ aggregator | Chains and addresses: [registry/zerox.md](registry/zerox.md)
10
+
11
+ ## Key Operations
12
+
13
+ - **transformERC20**: Execute a token swap via the Exchange Proxy transformer pipeline
14
+
15
+ ## Typed templates for the raw compiler (not for `sauce compile`)
16
+
17
+ These import the protocol's ABI from `./abis`, the way the registry compiles them with the raw
18
+ compiler; `sauce compile` has no such module. In a program for a chain, name the contract by its
19
+ namespace, or import its ABI from `./protocols/<slug>/<Export>.json` as the registry file at the
20
+ top of this document shows, and write SauceScript's values (`~0n`, not `type(uint256).max`).
21
+
22
+ ```typescript
23
+ // Note: 0x requires off-chain route computation via 0x API before on-chain execution.
24
+ // The transformERC20 function uses transformations array populated from API response.
25
+ ```
26
+
27
+ ## Deployments and ABI
28
+
29
+ The registry's addresses per chain, how a program names each contract there (a namespace, or
30
+ an ABI import bound to the address), and the ABI functions are generated in
31
+ [registry/zerox.md](registry/zerox.md).
32
+
33
+ ## Notes
34
+
35
+ - Same Exchange Proxy address across all 7 chains
36
+ - Uses transformer pipeline architecture - each swap is a sequence of transformations
37
+ - Route computation happens via 0x API - transformations array comes from API response
38
+ - Approve inputToken to exchangeProxy before swapping
39
+ - 0x API provides the optimal route, slippage protection, and transformer calldata
@@ -4,9 +4,14 @@ Official zkSync Era bridge via DiamondProxy. Deposits ETH and executes L2 transa
4
4
 
5
5
  ## Category
6
6
 
7
- native L2 bridge | Direction: L1 to L2 (Ethereum to zkSync Era) | Chains: Ethereum (1), zkSync Era (324)
7
+ native L2 bridge | Direction: L1 to L2 (Ethereum to zkSync Era) | Chains and addresses: [registry/zksync-bridge.md](registry/zksync-bridge.md)
8
8
 
9
- ## SauceScript Functions
9
+ ## Typed templates for the raw compiler (not for `sauce compile`)
10
+
11
+ These import the protocol's ABI from `./abis`, the way the registry compiles them with the raw
12
+ compiler; `sauce compile` has no such module. In a program for a chain, name the contract by its
13
+ namespace, or import its ABI from `./protocols/<slug>/<Export>.json` as the registry file at the
14
+ top of this document shows, and write SauceScript's values (`~0n`, not `type(uint256).max`).
10
15
 
11
16
  ### depositETH
12
17
 
@@ -38,19 +43,11 @@ function main(diamondProxyAddress: Address, recipient: Address, l2GasLimit: Uint
38
43
  - `_refundRecipient`: Address to receive excess gas refund on L2 (use `msg.sender`)
39
44
  - `msg.value` must cover: L2 value + L2 gas costs. Use `l2TransactionBaseCost()` to estimate
40
45
 
41
- ## Deployed Addresses
42
-
43
- | Chain | Contract | Address |
44
- | -------- | ------------ | -------------------------------------------- |
45
- | Ethereum | diamondProxy | `0x32400084C286CF3E17e7B677ea9583e60a000324` |
46
- | zkSync | l2Bridge | `0x11f943b2c77b743AB90f4A0Ae7d5A4e7FCA3E102` |
47
-
48
- ## ABI Reference
49
-
50
- ### ZkSyncDiamondProxyABI
46
+ ## Deployments and ABI
51
47
 
52
- - `requestL2Transaction(address _contractL2, uint256 _l2Value, bytes _calldata, uint256 _l2GasLimit, uint256 _l2GasPerPubdataByteLimit, bytes[] _factoryDeps, address _refundRecipient) returns (bytes32 canonicalTxHash)` [payable] - Request an L2 transaction from L1. Used for ETH deposits, contract calls, and contract deployments
53
- - `l2TransactionBaseCost(uint256 _gasPrice, uint256 _l2GasLimit, uint256 _l2GasPerPubdataByteLimit) returns (uint256)` - Estimate the base cost of an L2 transaction (view). Use to calculate required msg.value
48
+ The registry's addresses per chain, how a program names each contract there (a namespace, or
49
+ an ABI import bound to the address), and the ABI functions are generated in
50
+ [registry/zksync-bridge.md](registry/zksync-bridge.md).
54
51
 
55
52
  ## Notes
56
53
 
@@ -0,0 +1,407 @@
1
+ ---
2
+ name: sauce-script
3
+ description: Writing SauceScript programs (.sauce.ts files) — the checked TypeScript subset Sauce compiles to on-chain bytecode, with a complete reference of its types, operators, statements and builtins (ctx, crypto, Math, abi, evm, svm, value methods, account properties, contract bindings, limits). Covers the two program forms (function main(...) with runtime arguments, and a file of top-level statements whose values are defines, the form for intent files), what compiling a file for a chain adds (its names and token syntax, the source otherwise as written), module constants as overridable defaults, helper functions, what syntax compiles and what to write instead, require/throw and atomic failure, catching a failed external call, and reading compile errors. Use when writing or editing any Sauce program, when a Sauce compile fails ("unsupported construct", "is not a declared variable", "expected a number, found a bool", "Unexpected token"), or when asked what SauceScript can or cannot express.
4
+ ---
5
+
6
+ # Writing SauceScript
7
+
8
+ A Sauce program is SauceScript: it looks like TypeScript, compiles to bytecode, and a Sauce engine
9
+ runs it atomically inside one transaction. This skill is the language.
10
+
11
+ **Look a builtin up in [references/builtins.md](references/builtins.md) before using it.** It lists
12
+ every type, literal, operator and statement, every `ctx`, `crypto`, `Math`, `abi`, `evm` and `svm`
13
+ builtin, the methods on values, account properties, contract bindings and limits, each with its
14
+ targets, an example and the exact error a misuse gives. Every example in it compiles and every
15
+ rejection it lists is refused. [references/builtins.json](references/builtins.json) is the same list
16
+ for a program to read. The names a chain supplies (`USDC`, `Token(...)`, `UniswapV3.Factory`,
17
+ `Ethereum(...)`) are in `sauce-globals`.
18
+
19
+ ## Two program forms
20
+
21
+ A program lives in a `.sauce.ts` file and is compiled **for a chain** (`--chain`), which decides
22
+ what every registry name means. A file takes one of two forms:
23
+
24
+ | Form | Values | Use it for |
25
+ | ---------------------- | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
26
+ | **`function main(…)`** | `main`'s parameters, passed at run time (`--args`); module constants for choices made per compile | reusable programs: one bytecode serves every input, such as a swap's tokens, amount and limit |
27
+ | **Top-level script** | names the file leaves undeclared, each set by a define (`--define NAME=VALUE`); no runtime arguments | intent files (`sauce-intents`), which are only statements, and one-off programs |
28
+
29
+ A program with runtime inputs declares `main`, and may declare helper functions and import ABIs.
30
+ (The `chain=…` after an example's opening fence here only says which chains it is checked on; it
31
+ is not part of the file.)
32
+
33
+ ```sauce chain=base,arbitrum
34
+ // A compile-time choice: a module constant, which a define of the same name replaces.
35
+ const FEE_BPS = 30n;
36
+
37
+ // A helper. It returns a value on every path.
38
+ function afterFee(amount: Uint256, bps: Uint256): Uint256 {
39
+ return amount - (amount * bps) / 10000n;
40
+ }
41
+
42
+ // Runtime inputs: main's parameters, passed with the transaction.
43
+ function main(recipient: Address, floor: Uint256) {
44
+ const held = USDC.balanceOf(ctx.self());
45
+ if (held < floor) {
46
+ throw "below floor";
47
+ }
48
+ USDC.transfer(recipient, afterFee(held, FEE_BPS));
49
+ }
50
+ ```
51
+
52
+ **`main` may return a value**, which the cook returns to whoever called it, so an `eth_call` of
53
+ the cook reads it before anything is sent (`sauce simulate` prints it after `returns`). Declare
54
+ the type: `main(): Address`, `: Uint256` or `: bool` comes back as one 32-byte word, a record as its
55
+ fields one word each, an array as its elements one word each, with no length or offset in front,
56
+ and `: bytes` as the bytes themselves, unwrapped, so `return abi.encode(spent, bought)` gives two
57
+ words. A `void` `main` returns nothing.
58
+
59
+ That makes a rehearsal a way to read a chain: a program that only looks something up and returns
60
+ it, rehearsed with `sauce simulate`, prints the answer and sends nothing.
61
+
62
+ ```sauce chain=base,arbitrum
63
+ // The Uniswap V3 WETH/USDC pool at the 0.05% tier (500 millionths), or 0 where there is none.
64
+ function main(): Address {
65
+ return UniswapV3.Factory.getPool(WETH, USDC, 500n);
66
+ }
67
+ ```
68
+
69
+ A top-level script runs its statements in order, after its imports, and may declare helper
70
+ functions beside them. Every value it does not compute is a define: the name stays undeclared in
71
+ the file, and `--define RECIPIENT=<address> --define FLOOR=1000000` sets it.
72
+
73
+ ```sauce chain=base,arbitrum define=RECIPIENT,FLOOR
74
+ // A helper takes what it needs as parameters.
75
+ function afterFee(amount: Uint256): Uint256 {
76
+ return amount - amount / 1000n;
77
+ }
78
+
79
+ require(RECIPIENT != 0n, "set RECIPIENT");
80
+ const held = USDC.balanceOf(ctx.self());
81
+ require(held >= FLOOR, "below floor");
82
+ USDC.transfer(RECIPIENT, afterFee(held));
83
+ ```
84
+
85
+ A `const` at the top of a script is the script's own local: a helper cannot read it (pass it in),
86
+ a define of the same name does not reach it, and the `sauce` command refuses such a define rather
87
+ than ignore it. Declare `main` to share a module constant with helpers, or to return a value.
88
+
89
+ ## The file's header
90
+
91
+ Every program starts with a comment that says how to run it, in this order:
92
+
93
+ 1. what the program does, in one line;
94
+ 2. the `sauce` command that runs it, with `--chain <chain>` and `--args` naming every `main`
95
+ parameter, in order: `--args <tokenIn> <tokenOut> <amountIn>`;
96
+ 3. one line per parameter, `name: Type`, then what it means and its units, in smallest units
97
+ (`5000000000` is 5,000 USDC, which has 6 decimals), and that an array or a record is passed as
98
+ JSON;
99
+ 4. one concrete run on a supported chain with real values: addresses taken from the registry
100
+ (`sauce globals --chain <chain> --tokens`), the developer's own inputs left as `<placeholders>`.
101
+
102
+ An intent file, which has no `main`, lists its defines and its `--intent-…` flags the same way.
103
+
104
+ ```sauce chain=base
105
+ // Pays each of `recipients` `amount` of the chain's USDC, from the Pot.
106
+ //
107
+ // sauce run payout.sauce.ts --chain <chain> --config sauce.config.json --keystore <keystore> \
108
+ // --args <recipients> <amount>
109
+ //
110
+ // recipients: Address[] who is paid, a JSON array: '["<recipient>","<recipient>"]'
111
+ // amount: Uint256 what each is paid, in USDC's smallest units (6 decimals):
112
+ // 5000000 is 5 USDC
113
+ //
114
+ // On Base, 5 USDC to each of two recipients:
115
+ //
116
+ // sauce run payout.sauce.ts --chain base --config sauce.config.json --keystore <keystore> \
117
+ // --args '["<recipient>","<recipient>"]' 5000000
118
+ function main(recipients: Address[], amount: Uint256) {
119
+ for (const to of recipients) {
120
+ USDC.transfer(to, amount);
121
+ }
122
+ }
123
+ ```
124
+
125
+ ## Runtime inputs and compile-time values
126
+
127
+ | Value | Write it as | Arrives |
128
+ | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------- | ------------------------------------------------------------------ |
129
+ | Anything the caller chooses per run: tokens, amounts, recipients, limits | a **`main(...)` parameter** | with the transaction (`--args`); one program serves every value |
130
+ | A choice made per compile: which venues exist on the chain, a fixed fee | a **module constant** beside `main`, which a **define** of its name replaces | folded into the bytecode; a different value is a different program |
131
+ | A value of a script, or of an intent file | an **undeclared name**, set by a define | folded into the bytecode |
132
+ | A value the chain supplies | a global (`sauce-globals`) | resolved when compiling for that chain |
133
+
134
+ `main`'s parameters are taken in declaration order, ABI-encoded by default, and appended to the
135
+ program's bytecode: that is the payload a cook runs. `--args` and `--args-json` of `sauce run`,
136
+ `simulate` and `tx` encode them (`sauce-cli`); `sauce-typescript` covers encoding them from
137
+ TypeScript. A program compiles for every chain the SDK knows; for the initial release its cook is
138
+ built and sent only on Ethereum, Base and Solana, and on every other chain (a preview chain) it is
139
+ compiled and simulated (`sauce-chains`).
140
+
141
+ ## Compiling for a chain
142
+
143
+ Compiling a file for a chain lowers the names the chain supplies (`sauce-globals`), the token
144
+ syntax and the intents the file opens; everything else reaches the compiler as written. A program
145
+ for a chain is the language of [references/builtins.md](references/builtins.md), with nothing
146
+ removed:
147
+
148
+ - Annotations go wherever the language takes them: `function half(x: Uint256): Uint256`, and a
149
+ local's `let total: Uint256 = 0n;`. A parameter with no annotation is a `Uint256`, and a local
150
+ without one takes its type from its initializer.
151
+ - A record is an `interface` or an inline object type, `orders: Order[]` or
152
+ `orders: { amount: Uint256, to: Address }[]` (`;` between the fields works too, as a formatter
153
+ writes them); `main`'s arguments are encoded the same way for either.
154
+ - Trailing commas are fine, after `main`'s last parameter as anywhere else.
155
+
156
+ ## Values
157
+
158
+ - Integers are 256-bit and checked: no floats (`1.5` is rejected), and a constant expression that
159
+ overflows or underflows (`0n - 1n`, `2n ** 256n - 1n`) is a compile error. Write the maximum as
160
+ `~0n`, and a negative (two's-complement) amount as **`-x`**, which never fails; `~x + 1n` reverts
161
+ when `x` is `0`.
162
+ - Amounts are in the token's smallest units; nothing scales decimals for you.
163
+ - Addresses are numbers: a `main` parameter, a global such as `USDC`, or a literal taken from the
164
+ registry, written with an `n` (`0x833589fcd6edb6e08f4c7c32d4f71b54bda02913n`); never an invented
165
+ one.
166
+ - `bytes`: `` hex`a9059cbb` ``, `"text"`, `.concat`, `.slice(a, b)`, `.length`, `b[i]`,
167
+ `x.toBytesBe(32n)`, `x.toBytesLe(8n)`, `abi.encode`/`abi.decode` (EVM). Bind a literal before
168
+ calling a method on it: ``const selector = hex`a9059cbb`; selector.concat(data)``. `hex` is the
169
+ only template form: every untagged template literal is rejected, with or without `${}`.
170
+ - Arrays and records: `[a, b]`, `new Array(n)`, `xs[i] = v`, `xs.length`, `{ amount: 1n }`.
171
+ Destructuring, `const [a, b] = …`, needs an initializer that produces a record (a multi-output
172
+ call, `abi.decode`); an array is indexed instead.
173
+ - `Account` parameters, with roles such as `Account<Writable>`, are `main`'s alone. On Solana they
174
+ are the transaction's accounts; on an EVM chain only a bare `Account` compiles, and it is an
175
+ address.
176
+ - A module-level `let` is scratch, reset on every run. Persistent state is `evm.sstore`/`evm.sload`
177
+ (or `svm.sstore`/`svm.sload`).
178
+ - **At module level, only scalar literals.** A `let` there starts as a number, address or boolean
179
+ literal; anything else (`[1n, 2n]`, `new Array(n)`, `-1n`, `1n << 160n`, a call) is refused with
180
+ "must be initialized with a literal". A `const` array there is a lookup table, read only at a
181
+ literal index (`FEES[0]`), never looped over. Declare arrays and computed values inside a function.
182
+
183
+ ## Calling a contract
184
+
185
+ Call a contract by name, in this order of preference:
186
+
187
+ 1. **A namespace**, for a contract the chain's registry records: `UniswapV3.Factory.getPool(...)`,
188
+ `AaveV3.Pool.supply(...)`, typed by the registry's ABI, its address the chain's. An interface, a
189
+ registry ABI with no address of its own, is called with the address it is at: a pool the
190
+ factory returned is `UniswapV3.Pool(pool)`, as in `UniswapV3.Pool(pool).slot0()`, and any
191
+ ERC-4626 vault `Erc4626.Vault(vault)`. A contract that has its own address takes `.at(address)`
192
+ to call another deployment of the same ABI: `AaveV3.Pool.at(address)`. The chain's file in
193
+ `sauce-chains`, or `sauce globals --chain <chain> --protocol <namespace>`, lists each
194
+ namespace's contracts, interfaces and methods.
195
+ 2. **A registry ABI import**, where the chain has no namespace for it: each protocol's registry
196
+ page in `sauce-protocols` gives the import line, such as
197
+ `import VaultABI from "./protocols/erc4626/VaultABI.json"`, and the binding takes the address
198
+ with `.at`: `VaultABI.at(vault).convertToAssets(shares)`.
199
+ 3. **The program's own ABI**, for a contract no registry knows, or a function its registry ABI
200
+ does not declare: a JSON ABI file beside the program, holding only the functions the program
201
+ calls, with the deployed contract's types from its verified source, imported by relative path
202
+ as the file's default export: `import IOracle from "./IOracle.json"`, then
203
+ `IOracle.at(pool).observe(...)`. The `sauce` command reads it from beside the file; through the
204
+ MCP server, pass it in `modules` with the program (`{ "IOracle.json": "<its JSON>" }`).
205
+ [examples/twap.sauce.ts](examples/twap.sauce.ts) finds a pool through `UniswapV3.Factory` and
206
+ reads its price history through [examples/IOracle.json](examples/IOracle.json), which declares
207
+ the one function the registry's pool ABI lacks, `observe`.
208
+
209
+ Never call through `evm.static` (or `evm.call`) with a hex selector where one of these is
210
+ possible: the typed call encodes the arguments, decodes the result and names its fields. Take only
211
+ what you need from a result: `const [sqrtPriceX96] = UniswapV3.Pool(pool).slot0();` and
212
+ `UniswapV3.Pool(pool).slot0().sqrtPriceX96` both read the first field alone.
213
+
214
+ ```sauce chain=base,ethereum
215
+ function main(vault: Address, shares: Uint256): Uint256 {
216
+ // A contract the chain's registry records: its factory, by name.
217
+ const pool = UniswapV3.Factory.getPool(WETH, USDC, 500n);
218
+ require(pool != 0n, "no WETH/USDC 0.05% pool");
219
+ // Interfaces, called with the address they are at: the pool it returned, and a vault.
220
+ const [sqrtPriceX96] = UniswapV3.Pool(pool).slot0();
221
+ require(sqrtPriceX96 > 0n, "the pool is not initialized");
222
+ return Erc4626.Vault(vault).convertToAssets(shares);
223
+ }
224
+ ```
225
+
226
+ ## Functions
227
+
228
+ - **Call what exists directly.** Typed bindings, namespaces and library functions are called as
229
+ they are: `USDC.transfer(...)`, `UniswapV3.Factory.getPool(...)`, `uniswapV3(...)` from
230
+ `@sauce/router`. Do not wrap a single call in a helper, and do not hand-roll a raw selector with
231
+ `evm.static` and `abi.decode` where a typed binding or a namespace exists. Keep a helper only for
232
+ real logic used more than once.
233
+ - Helpers are top-level `function` declarations, annotated on the signature. They may call each
234
+ other and recurse; `main` is never called.
235
+ - **A helper that returns a value returns it on every path**: an `if` with a `return` and no
236
+ `else`, or a loop that may end without one, fails the compile with "does not return on every
237
+ path". End the helper with a `return`.
238
+
239
+ ```sauce fails chain=base
240
+ function larger(a: Uint256, b: Uint256): Uint256 {
241
+ if (a > b) {
242
+ return a;
243
+ }
244
+ }
245
+
246
+ function main(a: Uint256, b: Uint256): Uint256 {
247
+ return larger(a, b);
248
+ }
249
+ ```
250
+
251
+ - **Arrays and records are passed by reference**: a helper that writes `xs[i] = v` changes the
252
+ caller's array, so a helper can fill an array it is given. Numbers, bools and bytes are copies.
253
+ - **A comparison is a `bool`, but a function with no return annotation returns a number**, even
254
+ `return a > b` (1 or 0). `if`, `while` and `&&` take either; a `: bool` function cannot return the
255
+ number. Give a helper that answers yes or no a `: bool` return type:
256
+
257
+ ```sauce chain=base,arbitrum
258
+ // Selling token0 (the lower address) pushes a pool's price down, so a higher price is better.
259
+ function isBetter(price: Uint256, than: Uint256, sellsToken0: bool): bool {
260
+ if (sellsToken0) {
261
+ return price > than;
262
+ }
263
+ return price < than;
264
+ }
265
+
266
+ // Fills `best` in place: an array goes to a helper by reference.
267
+ function keepBest(best: Uint256[], price: Uint256, sellsToken0: bool): void {
268
+ if (best[0] == 0n || isBetter(price, best[0], sellsToken0)) {
269
+ best[0] = price;
270
+ }
271
+ }
272
+
273
+ function main(prices: Uint256[], tokenIn: Address, tokenOut: Address): Uint256 {
274
+ let best = new Array(1);
275
+ for (const price of prices) {
276
+ keepBest(best, price, tokenIn < tokenOut);
277
+ }
278
+ return best[0];
279
+ }
280
+ ```
281
+
282
+ ## Syntax that compiles, and what to write instead
283
+
284
+ Compiles: `let`/`const`, `if`/`else if`/`else`, `while`, C-style `for`, `for...of` over an array,
285
+ `break`/`continue`, `i++` and `+=` as statements, ternaries, `&&`/`||`/`!`, `**`, bit operators,
286
+ `/` and `%`, helper functions, `Math.mulDiv(a, b, c)`, `Math.sqrt(x)`.
287
+ The full list, with what each rejection says, is section 14 of
288
+ [references/builtins.md](references/builtins.md).
289
+
290
+ | Rejected | Write instead |
291
+ | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
292
+ | `switch`, `for...in`, `class`, `enum`, `type` aliases, `await` | `if` chains, arrays, inline object types, plain functions |
293
+ | `try`/`catch`, `throw new Error(...)` | `require(cond, "reason")` or `throw "reason"`; for a failing external call, `.catch` (below) |
294
+ | arrow functions and nested functions, except the intent syntax `Chain(() => { ... })` and `.catch(() => { ... })` | top-level function declarations |
295
+ | template literals, comparing bytes with `==` | `"text"`, or bytes built with `.concat`; compare `crypto.keccak256` of each |
296
+ | `as` casts, default parameters, spread, object destructuring | explicit values and field access |
297
+ | `arr.push(x)`, `console.log`, `Math.min`/`max`/`abs`/`pow` | `new Array(n)` and an index; `if`; `**` |
298
+
299
+ ```sauce fails
300
+ function main(x: Uint256): Uint256 {
301
+ switch (x) {
302
+ case 1n:
303
+ return 1n;
304
+ }
305
+ return 0n;
306
+ }
307
+ ```
308
+
309
+ ## Failure is atomic
310
+
311
+ `require(false)`, `require(cond, "reason")`, `throw "reason"`, a reverting call, and every guard
312
+ the package emits revert the **whole transaction**: for an intent, the whole fulfilment, including
313
+ the calls that ran before the program. Nothing half-happens, so put every safety check in the
314
+ program.
315
+
316
+ The one way to survive a failure is on an external EVM call: `.catch(() => { ... })` runs instead
317
+ when that call reverts, and the call's own effects are undone. The handler may assign locals of the
318
+ enclosing function.
319
+
320
+ ```sauce chain=base
321
+ import { ISauceRouter } from "./artifacts/ISauceRouter.json";
322
+
323
+ function main(pool: Address, amount: Uint256, sqrtPriceLimitX96: Uint256) {
324
+ let filled = true;
325
+ ISauceRouter.at(ctx.self())
326
+ .swapV3(pool, WETH, USDC, amount, sqrtPriceLimitX96, ctx.self(), ctx.self())
327
+ .catch(() => {
328
+ filled = false;
329
+ });
330
+ require(filled, "the pool refused");
331
+ }
332
+ ```
333
+
334
+ The value form, `const v = <call>.catch(() => { return <constant>; });`, gives the constant when
335
+ the call fails. It takes a call that returns one value: a bound method with one output, such as
336
+ a namespace contract's or an imported ABI's. A raw `evm.call`, `evm.static` or `evm.delegate`
337
+ returns bytes, which no constant can stand in for ("a `.catch()` fallback: expected a bytes value,
338
+ found a number"). For a raw read that may fail, test it with the statement form, then read again
339
+ only when it worked. A read changes nothing, so the second call is safe; never repeat a write
340
+ that way.
341
+
342
+ `.catch()` catches a call that reverts, not a call to an address with no code. That call succeeds
343
+ and returns nothing, and decoding nothing reverts the cook, `.catch()` or not. When an address may
344
+ have no code, check `ctx.codeSize(address) > 0n` first:
345
+
346
+ ```sauce chain=base,arbitrum
347
+ // One word from a read that may fail, or 0: an address with no code, or a read that reverts.
348
+ function readWord(target: Address, query: bytes): Uint256 {
349
+ if (ctx.codeSize(target) == 0n) {
350
+ return 0n;
351
+ }
352
+ let readable = true;
353
+ evm.static(target, query).catch(() => {
354
+ readable = false;
355
+ });
356
+ if (!readable) {
357
+ return 0n;
358
+ }
359
+ return abi.decode(evm.static(target, query), ["Uint256"])[0];
360
+ }
361
+
362
+ function main(target: Address, query: bytes): Uint256 {
363
+ return readWord(target, query);
364
+ }
365
+ ```
366
+
367
+ ## What a program costs
368
+
369
+ On an EVM chain, a cook's gas is the transaction's own, the Kitchen's and the Pot's, plus the
370
+ program's, which the engine interprets step by step. Measured on a local chain through the engine
371
+ and a Kitchen-made Pot:
372
+
373
+ | What | Gas, about |
374
+ | --------------------------------------------------- | -------------------------------------------- |
375
+ | A cook whose program does almost nothing | 43,000, the transaction's 21,000 included |
376
+ | One loop iteration that adds two numbers | 1,000 |
377
+ | Writing an array element, or reading one | 500, or 300, on top |
378
+ | A call to a contract the transaction already called | 2,000 on top, plus what that contract spends |
379
+ | `.catch()` on that call | 100 more |
380
+ | `crypto.keccak256(abi.encode(a, b))` | 2,000 |
381
+
382
+ The first call to a contract in a transaction costs 2,600 more than later ones, as on any EVM
383
+ chain. A loop is what adds up in the program itself: a hundred iterations of a little arithmetic
384
+ cost about 100,000 gas. Read a value once and keep it in a local rather than calling for it twice,
385
+ and bound each loop by its input. The real figure is the rehearsal's:
386
+ `sauce simulate` prints it, and `sauce run` and most signers set the gas limit from an estimate.
387
+ Leave headroom when the chain can move between the rehearsal and the send; a swap that crosses more
388
+ ticks spends more.
389
+
390
+ ## Reading a compile error
391
+
392
+ Compile errors fail the command; there is no warning channel. `sauce compile` points at the file's
393
+ line and column, including on a line the package rewrote, and a `hint:` line names the flag or
394
+ define to add. `X is not a declared variable` usually means a missing define or `main` parameter.
395
+ `Unexpected token` is a syntax error at the line and column it names.
396
+ `a function argument: expected a number, found a bool` at a call usually means the called
397
+ function's parameter has no annotation, so it is a number: annotate it, `first: bool`. For any
398
+ other message, find it in [references/builtins.md](references/builtins.md). `a nested function
399
+ declaration is not supported` means a function declared inside another function or a block:
400
+ declare it at the top level. `X is called but never declared` means a function that is not in
401
+ scope, usually a typo.
402
+
403
+ ## Example
404
+
405
+ [examples/saucescript.mts](examples/saucescript.mts) compiles a guarded program, asserts each
406
+ rejection above, and pins what compiling for a chain adds. Complete programs are listed in
407
+ `sauce-examples`.
@@ -0,0 +1,12 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "observe",
5
+ "stateMutability": "view",
6
+ "inputs": [{ "name": "secondsAgos", "type": "uint32[]" }],
7
+ "outputs": [
8
+ { "name": "tickCumulatives", "type": "int56[]" },
9
+ { "name": "secondsPerLiquidityCumulativeX128s", "type": "uint160[]" }
10
+ ]
11
+ }
12
+ ]