@eco-incorp/sauce 0.99.6 → 0.99.7

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 (1158) 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 +324 -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 +80 -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 +1442 -0
  67. package/docs/guides/compiling.md +19 -7
  68. package/docs/guides/intents.md +228 -15
  69. package/docs/guides/mcp.md +539 -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 +1497 -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 +170 -0
  128. package/sdk/dist/cli/chain.d.ts.map +1 -0
  129. package/sdk/dist/cli/chain.js +457 -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 +200 -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 +197 -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 +3162 -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 +183 -0
  260. package/sdk/dist/cli/solana.d.ts.map +1 -0
  261. package/sdk/dist/cli/solana.js +1360 -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 +5523 -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 +174 -0
  566. package/sdk/dist/routes/source-globals.js.map +1 -0
  567. package/sdk/dist/routes/stock-tokens.d.ts +69 -0
  568. package/sdk/dist/routes/stock-tokens.d.ts.map +1 -0
  569. package/sdk/dist/routes/stock-tokens.generated.d.ts +4 -0
  570. package/sdk/dist/routes/stock-tokens.generated.d.ts.map +1 -0
  571. package/sdk/dist/routes/stock-tokens.generated.js +1836 -0
  572. package/sdk/dist/routes/stock-tokens.generated.js.map +1 -0
  573. package/sdk/dist/routes/stock-tokens.js +65 -0
  574. package/sdk/dist/routes/stock-tokens.js.map +1 -0
  575. package/sdk/dist/routes/token-registry.d.ts +64 -8
  576. package/sdk/dist/routes/token-registry.d.ts.map +1 -1
  577. package/sdk/dist/routes/token-registry.js +202 -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.md +53 -0
  750. package/skills/sauce-chains/references/sonic.md +57 -0
  751. package/skills/sauce-chains/references/unichain.md +61 -0
  752. package/skills/sauce-chains/references/zetachain.md +33 -0
  753. package/skills/sauce-chains/references/zksync.md +59 -0
  754. package/skills/sauce-chains/references/zora.md +57 -0
  755. package/skills/sauce-cli/SKILL.md +366 -0
  756. package/skills/sauce-cli/examples/pay.sauce.ts +23 -0
  757. package/skills/sauce-cli/examples/split.sauce.ts +30 -0
  758. package/skills/sauce-distributed-swap/SKILL.md +392 -0
  759. package/skills/sauce-distributed-swap/examples/distributed-swap.mts +251 -0
  760. package/skills/sauce-distributed-swap/examples/distributed-swap.sauce.ts +115 -0
  761. package/skills/sauce-examples/SKILL.md +96 -0
  762. package/skills/sauce-globals/SKILL.md +175 -0
  763. package/skills/sauce-globals/examples/globals.mts +111 -0
  764. package/skills/sauce-globals/examples/globals.sauce.ts +47 -0
  765. package/skills/sauce-globals/references/chains.md +53 -0
  766. package/skills/sauce-globals/references/protocols.md +405 -0
  767. package/skills/sauce-globals/references/stocks.md +1824 -0
  768. package/skills/sauce-globals/references/tokens.md +53 -0
  769. package/skills/sauce-intents/SKILL.md +505 -0
  770. package/skills/sauce-intents/examples/cross-chain.sauce.ts +37 -0
  771. package/skills/sauce-intents/examples/fund-by-transfer.sauce.ts +54 -0
  772. package/skills/sauce-intents/examples/intents.mts +343 -0
  773. package/skills/sauce-intents/examples/swap-on-base.sauce.ts +135 -0
  774. package/skills/sauce-intents/references/portal.md +77 -0
  775. package/skills/sauce-overview/SKILL.md +161 -0
  776. package/skills/sauce-protocols/SKILL.md +118 -0
  777. package/skills/sauce-protocols/examples/protocols.mts +77 -0
  778. package/skills/sauce-protocols/examples/protocols.sauce.ts +27 -0
  779. package/{sdk/src/skills → skills/sauce-protocols/references}/aave-v2.md +35 -17
  780. package/skills/sauce-protocols/references/aave-v3.md +144 -0
  781. package/skills/sauce-protocols/references/aave-v4.md +50 -0
  782. package/skills/sauce-protocols/references/abracadabra.md +72 -0
  783. package/skills/sauce-protocols/references/across.md +73 -0
  784. package/skills/sauce-protocols/references/aerodrome-slipstream.md +50 -0
  785. package/{sdk/src/skills → skills/sauce-protocols/references}/aerodrome.md +43 -24
  786. package/skills/sauce-protocols/references/aevo.md +49 -0
  787. package/{sdk/src/skills → skills/sauce-protocols/references}/alchemix.md +10 -25
  788. package/{sdk/src/skills → skills/sauce-protocols/references}/ambient.md +14 -21
  789. package/{sdk/src/skills → skills/sauce-protocols/references}/arbitrum-bridge.md +11 -14
  790. package/{sdk/src/skills → skills/sauce-protocols/references}/arrakis.md +10 -26
  791. package/skills/sauce-protocols/references/axelar.md +56 -0
  792. package/{sdk/src/skills → skills/sauce-protocols/references}/balancer-v2.md +13 -29
  793. package/{sdk/src/skills → skills/sauce-protocols/references}/base-bridge.md +11 -16
  794. package/{sdk/src/skills → skills/sauce-protocols/references}/baseswap.md +12 -19
  795. package/{sdk/src/skills → skills/sauce-protocols/references}/beefy.md +10 -30
  796. package/{sdk/src/skills → skills/sauce-protocols/references}/benqi.md +11 -21
  797. package/{sdk/src/skills → skills/sauce-protocols/references}/camelot.md +13 -27
  798. package/{sdk/src/skills → skills/sauce-protocols/references}/cbeth.md +10 -22
  799. package/skills/sauce-protocols/references/cctp.md +47 -0
  800. package/{sdk/src/skills → skills/sauce-protocols/references}/celer.md +11 -18
  801. package/{sdk/src/skills → skills/sauce-protocols/references}/chainlink-ccip.md +11 -21
  802. package/skills/sauce-protocols/references/chainlink.md +47 -0
  803. package/{sdk/src/skills → skills/sauce-protocols/references}/circle-gateway.md +12 -38
  804. package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v2.md +11 -25
  805. package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v3.md +43 -27
  806. package/{sdk/src/skills → skills/sauce-protocols/references}/connext.md +11 -15
  807. package/{sdk/src/skills → skills/sauce-protocols/references}/convex.md +10 -28
  808. package/{sdk/src/skills → skills/sauce-protocols/references}/cowswap.md +12 -19
  809. package/{sdk/src/skills → skills/sauce-protocols/references}/crvusd.md +10 -19
  810. package/skills/sauce-protocols/references/curve.md +98 -0
  811. package/{sdk/src/skills → skills/sauce-protocols/references}/debridge.md +11 -33
  812. package/{sdk/src/skills → skills/sauce-protocols/references}/dodo.md +13 -18
  813. package/skills/sauce-protocols/references/eigenlayer.md +48 -0
  814. package/{sdk/src/skills → skills/sauce-protocols/references}/ens.md +10 -26
  815. package/{sdk/src/skills → skills/sauce-protocols/references}/erc20.md +10 -24
  816. package/{sdk/src/skills → skills/sauce-protocols/references}/erc3156.md +10 -13
  817. package/{sdk/src/skills → skills/sauce-protocols/references}/erc4626.md +11 -27
  818. package/{sdk/src/skills → skills/sauce-protocols/references}/ethena.md +10 -27
  819. package/{sdk/src/skills → skills/sauce-protocols/references}/etherfi.md +10 -32
  820. package/{sdk/src/skills → skills/sauce-protocols/references}/euler-v2.md +11 -21
  821. package/{sdk/src/skills → skills/sauce-protocols/references}/fenix.md +12 -18
  822. package/{sdk/src/skills → skills/sauce-protocols/references}/fluid.md +11 -20
  823. package/{sdk/src/skills → skills/sauce-protocols/references}/frax-ether.md +10 -26
  824. package/{sdk/src/skills → skills/sauce-protocols/references}/frax.md +10 -19
  825. package/{sdk/src/skills → skills/sauce-protocols/references}/gains-network.md +11 -28
  826. package/skills/sauce-protocols/references/gamma.md +57 -0
  827. package/{sdk/src/skills → skills/sauce-protocols/references}/gelato.md +12 -20
  828. package/{sdk/src/skills → skills/sauce-protocols/references}/gho.md +10 -19
  829. package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v1.md +12 -34
  830. package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v2.md +15 -28
  831. package/skills/sauce-protocols/references/harvest.md +41 -0
  832. package/{sdk/src/skills → skills/sauce-protocols/references}/hegic.md +10 -18
  833. package/{sdk/src/skills → skills/sauce-protocols/references}/hop.md +11 -21
  834. package/{sdk/src/skills → skills/sauce-protocols/references}/hyperlane.md +11 -21
  835. package/skills/sauce-protocols/references/index.md +355 -0
  836. package/{sdk/src/skills → skills/sauce-protocols/references}/instadapp.md +10 -18
  837. package/skills/sauce-protocols/references/kelp.md +46 -0
  838. package/{sdk/src/skills → skills/sauce-protocols/references}/kim.md +12 -18
  839. package/{sdk/src/skills → skills/sauce-protocols/references}/kyberswap-aggregator.md +12 -35
  840. package/skills/sauce-protocols/references/kyberswap.md +72 -0
  841. package/{sdk/src/skills → skills/sauce-protocols/references}/layerbank.md +11 -26
  842. package/{sdk/src/skills → skills/sauce-protocols/references}/layerzero.md +11 -25
  843. package/{sdk/src/skills → skills/sauce-protocols/references}/level-finance.md +10 -24
  844. package/{sdk/src/skills → skills/sauce-protocols/references}/lido.md +10 -28
  845. package/{sdk/src/skills → skills/sauce-protocols/references}/lifi.md +11 -25
  846. package/{sdk/src/skills → skills/sauce-protocols/references}/linea-bridge.md +11 -14
  847. package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v1.md +10 -21
  848. package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v2.md +10 -19
  849. package/{sdk/src/skills → skills/sauce-protocols/references}/lynex.md +12 -18
  850. package/skills/sauce-protocols/references/maker.md +57 -0
  851. package/skills/sauce-protocols/references/mantle-meth.md +43 -0
  852. package/{sdk/src/skills → skills/sauce-protocols/references}/maverick.md +13 -25
  853. package/{sdk/src/skills → skills/sauce-protocols/references}/moonwell.md +11 -21
  854. package/{sdk/src/skills → skills/sauce-protocols/references}/morpho-blue.md +44 -21
  855. package/{sdk/src/skills → skills/sauce-protocols/references}/mux-protocol.md +10 -30
  856. package/skills/sauce-protocols/references/olympus.md +39 -0
  857. package/skills/sauce-protocols/references/oneinch.md +81 -0
  858. package/skills/sauce-protocols/references/openocean.md +69 -0
  859. package/{sdk/src/skills → skills/sauce-protocols/references}/optimism-bridge.md +11 -16
  860. package/{sdk/src/skills → skills/sauce-protocols/references}/opyn.md +10 -21
  861. package/{sdk/src/skills → skills/sauce-protocols/references}/pancakeswap-v2.md +39 -41
  862. package/skills/sauce-protocols/references/pancakeswap-v3.md +72 -0
  863. package/skills/sauce-protocols/references/paraswap.md +39 -0
  864. package/{sdk/src/skills → skills/sauce-protocols/references}/pendle.md +47 -29
  865. package/skills/sauce-protocols/references/permit2.md +101 -0
  866. package/skills/sauce-protocols/references/perpetual-protocol.md +53 -0
  867. package/{sdk/src/skills → skills/sauce-protocols/references}/polygon-bridge.md +11 -17
  868. package/{sdk/src/skills → skills/sauce-protocols/references}/premia.md +10 -19
  869. package/{sdk/src/skills → skills/sauce-protocols/references}/puffer.md +10 -21
  870. package/skills/sauce-protocols/references/pyth.md +45 -0
  871. package/{sdk/src/skills → skills/sauce-protocols/references}/quickswap.md +13 -27
  872. package/{sdk/src/skills → skills/sauce-protocols/references}/radiant.md +11 -15
  873. package/{sdk/src/skills → skills/sauce-protocols/references}/ramses.md +12 -18
  874. package/skills/sauce-protocols/references/reflexer.md +52 -0
  875. package/skills/sauce-protocols/references/registry/aave-v2.md +43 -0
  876. package/skills/sauce-protocols/references/registry/aave-v3.md +62 -0
  877. package/skills/sauce-protocols/references/registry/aave-v4.md +80 -0
  878. package/skills/sauce-protocols/references/registry/abracadabra.md +54 -0
  879. package/skills/sauce-protocols/references/registry/across.md +57 -0
  880. package/skills/sauce-protocols/references/registry/aerodrome-slipstream.md +72 -0
  881. package/skills/sauce-protocols/references/registry/aerodrome.md +58 -0
  882. package/skills/sauce-protocols/references/registry/aevo.md +39 -0
  883. package/skills/sauce-protocols/references/registry/alchemix.md +46 -0
  884. package/skills/sauce-protocols/references/registry/ambient.md +40 -0
  885. package/skills/sauce-protocols/references/registry/arbitrum-bridge.md +40 -0
  886. package/skills/sauce-protocols/references/registry/arrakis.md +49 -0
  887. package/skills/sauce-protocols/references/registry/axelar.md +65 -0
  888. package/skills/sauce-protocols/references/registry/balancer-v2.md +50 -0
  889. package/skills/sauce-protocols/references/registry/base-bridge.md +42 -0
  890. package/skills/sauce-protocols/references/registry/baseswap.md +40 -0
  891. package/skills/sauce-protocols/references/registry/beefy.md +51 -0
  892. package/skills/sauce-protocols/references/registry/benqi.md +49 -0
  893. package/skills/sauce-protocols/references/registry/camelot.md +82 -0
  894. package/skills/sauce-protocols/references/registry/cbeth.md +43 -0
  895. package/skills/sauce-protocols/references/registry/cctp.md +48 -0
  896. package/skills/sauce-protocols/references/registry/celer.md +44 -0
  897. package/skills/sauce-protocols/references/registry/chainlink-ccip.md +45 -0
  898. package/skills/sauce-protocols/references/registry/chainlink.md +49 -0
  899. package/skills/sauce-protocols/references/registry/circle-gateway.md +70 -0
  900. package/skills/sauce-protocols/references/registry/compound-v2.md +53 -0
  901. package/skills/sauce-protocols/references/registry/compound-v3.md +52 -0
  902. package/skills/sauce-protocols/references/registry/connext.md +41 -0
  903. package/skills/sauce-protocols/references/registry/convex.md +51 -0
  904. package/skills/sauce-protocols/references/registry/cowswap.md +40 -0
  905. package/skills/sauce-protocols/references/registry/crvusd.md +40 -0
  906. package/skills/sauce-protocols/references/registry/curve.md +81 -0
  907. package/skills/sauce-protocols/references/registry/debridge.md +59 -0
  908. package/skills/sauce-protocols/references/registry/dodo.md +39 -0
  909. package/skills/sauce-protocols/references/registry/eco-routes.md +65 -0
  910. package/skills/sauce-protocols/references/registry/eigenlayer.md +58 -0
  911. package/skills/sauce-protocols/references/registry/ens.md +49 -0
  912. package/skills/sauce-protocols/references/registry/erc20.md +44 -0
  913. package/skills/sauce-protocols/references/registry/erc3156.md +38 -0
  914. package/skills/sauce-protocols/references/registry/erc4626.md +51 -0
  915. package/skills/sauce-protocols/references/registry/ethena.md +50 -0
  916. package/skills/sauce-protocols/references/registry/etherfi.md +57 -0
  917. package/skills/sauce-protocols/references/registry/euler-v2.md +49 -0
  918. package/skills/sauce-protocols/references/registry/fenix.md +39 -0
  919. package/skills/sauce-protocols/references/registry/fluid.md +48 -0
  920. package/skills/sauce-protocols/references/registry/frax-ether.md +49 -0
  921. package/skills/sauce-protocols/references/registry/frax.md +40 -0
  922. package/skills/sauce-protocols/references/registry/gains-network.md +43 -0
  923. package/skills/sauce-protocols/references/registry/gamma.md +56 -0
  924. package/skills/sauce-protocols/references/registry/gelato.md +45 -0
  925. package/skills/sauce-protocols/references/registry/gho.md +40 -0
  926. package/skills/sauce-protocols/references/registry/gmx-v1.md +59 -0
  927. package/skills/sauce-protocols/references/registry/gmx-v2.md +41 -0
  928. package/skills/sauce-protocols/references/registry/harvest.md +44 -0
  929. package/skills/sauce-protocols/references/registry/hegic.md +39 -0
  930. package/skills/sauce-protocols/references/registry/hop.md +49 -0
  931. package/skills/sauce-protocols/references/registry/hyperlane.md +48 -0
  932. package/skills/sauce-protocols/references/registry/instadapp.md +39 -0
  933. package/skills/sauce-protocols/references/registry/kelp.md +47 -0
  934. package/skills/sauce-protocols/references/registry/kim.md +39 -0
  935. package/skills/sauce-protocols/references/registry/kyberswap-aggregator.md +49 -0
  936. package/skills/sauce-protocols/references/registry/kyberswap.md +63 -0
  937. package/skills/sauce-protocols/references/registry/layerbank.md +54 -0
  938. package/skills/sauce-protocols/references/registry/layerzero.md +49 -0
  939. package/skills/sauce-protocols/references/registry/level-finance.md +41 -0
  940. package/skills/sauce-protocols/references/registry/lido.md +51 -0
  941. package/skills/sauce-protocols/references/registry/lifi.md +48 -0
  942. package/skills/sauce-protocols/references/registry/linea-bridge.md +40 -0
  943. package/skills/sauce-protocols/references/registry/liquity-v1.md +42 -0
  944. package/skills/sauce-protocols/references/registry/liquity-v2.md +40 -0
  945. package/skills/sauce-protocols/references/registry/lynex.md +39 -0
  946. package/skills/sauce-protocols/references/registry/maker.md +55 -0
  947. package/skills/sauce-protocols/references/registry/mantle-meth.md +48 -0
  948. package/skills/sauce-protocols/references/registry/maverick.md +60 -0
  949. package/skills/sauce-protocols/references/registry/moonwell.md +49 -0
  950. package/skills/sauce-protocols/references/registry/morpho-blue.md +47 -0
  951. package/skills/sauce-protocols/references/registry/mux-protocol.md +49 -0
  952. package/skills/sauce-protocols/references/registry/olympus.md +42 -0
  953. package/skills/sauce-protocols/references/registry/oneinch.md +45 -0
  954. package/skills/sauce-protocols/references/registry/openocean.md +44 -0
  955. package/skills/sauce-protocols/references/registry/optimism-bridge.md +42 -0
  956. package/skills/sauce-protocols/references/registry/opyn.md +42 -0
  957. package/skills/sauce-protocols/references/registry/pancakeswap-v2.md +71 -0
  958. package/skills/sauce-protocols/references/registry/pancakeswap-v3.md +76 -0
  959. package/skills/sauce-protocols/references/registry/paraswap.md +51 -0
  960. package/skills/sauce-protocols/references/registry/pendle.md +43 -0
  961. package/skills/sauce-protocols/references/registry/permit2.md +50 -0
  962. package/skills/sauce-protocols/references/registry/perpetual-protocol.md +49 -0
  963. package/skills/sauce-protocols/references/registry/polygon-bridge.md +43 -0
  964. package/skills/sauce-protocols/references/registry/premia.md +40 -0
  965. package/skills/sauce-protocols/references/registry/puffer.md +43 -0
  966. package/skills/sauce-protocols/references/registry/pyth.md +40 -0
  967. package/skills/sauce-protocols/references/registry/quickswap.md +80 -0
  968. package/skills/sauce-protocols/references/registry/radiant.md +41 -0
  969. package/skills/sauce-protocols/references/registry/ramses.md +39 -0
  970. package/skills/sauce-protocols/references/registry/reflexer.md +56 -0
  971. package/skills/sauce-protocols/references/registry/renzo.md +47 -0
  972. package/skills/sauce-protocols/references/registry/rocket-pool.md +49 -0
  973. package/skills/sauce-protocols/references/registry/sablier.md +40 -0
  974. package/skills/sauce-protocols/references/registry/safe.md +47 -0
  975. package/skills/sauce-protocols/references/registry/scroll-bridge.md +48 -0
  976. package/skills/sauce-protocols/references/registry/seamless.md +42 -0
  977. package/skills/sauce-protocols/references/registry/seaport.md +44 -0
  978. package/skills/sauce-protocols/references/registry/silo.md +48 -0
  979. package/skills/sauce-protocols/references/registry/socket.md +44 -0
  980. package/skills/sauce-protocols/references/registry/sommelier.md +43 -0
  981. package/skills/sauce-protocols/references/registry/spark.md +42 -0
  982. package/skills/sauce-protocols/references/registry/spookyswap.md +40 -0
  983. package/skills/sauce-protocols/references/registry/squid.md +45 -0
  984. package/skills/sauce-protocols/references/registry/stader.md +47 -0
  985. package/skills/sauce-protocols/references/registry/stargate.md +45 -0
  986. package/skills/sauce-protocols/references/registry/superfluid.md +49 -0
  987. package/skills/sauce-protocols/references/registry/sushiswap-v2.md +71 -0
  988. package/skills/sauce-protocols/references/registry/swell.md +49 -0
  989. package/skills/sauce-protocols/references/registry/synapse.md +46 -0
  990. package/skills/sauce-protocols/references/registry/syncswap.md +38 -0
  991. package/skills/sauce-protocols/references/registry/synthetix-v3.md +48 -0
  992. package/skills/sauce-protocols/references/registry/synthra-v3.md +77 -0
  993. package/skills/sauce-protocols/references/registry/thales.md +51 -0
  994. package/skills/sauce-protocols/references/registry/thena.md +39 -0
  995. package/skills/sauce-protocols/references/registry/thruster.md +38 -0
  996. package/skills/sauce-protocols/references/registry/tokemak.md +45 -0
  997. package/skills/sauce-protocols/references/registry/trader-joe.md +66 -0
  998. package/skills/sauce-protocols/references/registry/uniswap-v2.md +77 -0
  999. package/skills/sauce-protocols/references/registry/uniswap-v3.md +113 -0
  1000. package/skills/sauce-protocols/references/registry/uniswap-v4.md +117 -0
  1001. package/skills/sauce-protocols/references/registry/unitflow-v3.md +65 -0
  1002. package/skills/sauce-protocols/references/registry/velodrome.md +58 -0
  1003. package/skills/sauce-protocols/references/registry/venus.md +62 -0
  1004. package/skills/sauce-protocols/references/registry/vertex.md +46 -0
  1005. package/skills/sauce-protocols/references/registry/wormhole.md +59 -0
  1006. package/skills/sauce-protocols/references/registry/yearn-v3.md +46 -0
  1007. package/skills/sauce-protocols/references/registry/zerolend.md +41 -0
  1008. package/skills/sauce-protocols/references/registry/zerox.md +44 -0
  1009. package/skills/sauce-protocols/references/registry/zksync-bridge.md +40 -0
  1010. package/{sdk/src/skills → skills/sauce-protocols/references}/renzo.md +10 -24
  1011. package/{sdk/src/skills → skills/sauce-protocols/references}/rocket-pool.md +10 -26
  1012. package/{sdk/src/skills → skills/sauce-protocols/references}/sablier.md +10 -27
  1013. package/skills/sauce-protocols/references/safe.md +42 -0
  1014. package/{sdk/src/skills → skills/sauce-protocols/references}/scroll-bridge.md +11 -20
  1015. package/{sdk/src/skills → skills/sauce-protocols/references}/seamless.md +11 -16
  1016. package/skills/sauce-protocols/references/seaport.md +38 -0
  1017. package/{sdk/src/skills → skills/sauce-protocols/references}/silo.md +11 -20
  1018. package/{sdk/src/skills → skills/sauce-protocols/references}/socket.md +11 -18
  1019. package/skills/sauce-protocols/references/sommelier.md +40 -0
  1020. package/{sdk/src/skills → skills/sauce-protocols/references}/spark.md +11 -16
  1021. package/{sdk/src/skills → skills/sauce-protocols/references}/spookyswap.md +12 -19
  1022. package/{sdk/src/skills → skills/sauce-protocols/references}/squid.md +11 -21
  1023. package/skills/sauce-protocols/references/stader.md +39 -0
  1024. package/{sdk/src/skills → skills/sauce-protocols/references}/stargate.md +11 -22
  1025. package/{sdk/src/skills → skills/sauce-protocols/references}/superfluid.md +10 -28
  1026. package/{sdk/src/skills → skills/sauce-protocols/references}/sushiswap-v2.md +38 -43
  1027. package/skills/sauce-protocols/references/swell.md +49 -0
  1028. package/skills/sauce-protocols/references/synapse.md +54 -0
  1029. package/{sdk/src/skills → skills/sauce-protocols/references}/syncswap.md +12 -17
  1030. package/{sdk/src/skills → skills/sauce-protocols/references}/synthetix-v3.md +10 -29
  1031. package/skills/sauce-protocols/references/synthra-v3.md +63 -0
  1032. package/skills/sauce-protocols/references/thales.md +58 -0
  1033. package/{sdk/src/skills → skills/sauce-protocols/references}/thena.md +12 -18
  1034. package/{sdk/src/skills → skills/sauce-protocols/references}/thruster.md +13 -18
  1035. package/skills/sauce-protocols/references/tokemak.md +40 -0
  1036. package/{sdk/src/skills → skills/sauce-protocols/references}/trader-joe.md +13 -26
  1037. package/{sdk/src/skills → skills/sauce-protocols/references}/uniswap-v2.md +46 -44
  1038. package/skills/sauce-protocols/references/uniswap-v3.md +188 -0
  1039. package/skills/sauce-protocols/references/uniswap-v4.md +155 -0
  1040. package/skills/sauce-protocols/references/unitflow-v3.md +63 -0
  1041. package/{sdk/src/skills → skills/sauce-protocols/references}/velodrome.md +12 -24
  1042. package/{sdk/src/skills → skills/sauce-protocols/references}/venus.md +12 -31
  1043. package/skills/sauce-protocols/references/vertex.md +42 -0
  1044. package/skills/sauce-protocols/references/wormhole.md +57 -0
  1045. package/{sdk/src/skills → skills/sauce-protocols/references}/yearn-v3.md +10 -25
  1046. package/{sdk/src/skills → skills/sauce-protocols/references}/zerolend.md +11 -15
  1047. package/skills/sauce-protocols/references/zerox.md +39 -0
  1048. package/{sdk/src/skills → skills/sauce-protocols/references}/zksync-bridge.md +11 -14
  1049. package/skills/sauce-script/SKILL.md +407 -0
  1050. package/skills/sauce-script/examples/IOracle.json +12 -0
  1051. package/skills/sauce-script/examples/saucescript.mts +167 -0
  1052. package/skills/sauce-script/examples/twap.sauce.ts +29 -0
  1053. package/skills/sauce-script/references/builtins.json +823 -0
  1054. package/skills/sauce-script/references/builtins.md +674 -0
  1055. package/skills/sauce-solana/SKILL.md +322 -0
  1056. package/skills/sauce-solana/examples/solana.mts +166 -0
  1057. package/skills/sauce-solana/examples/solana.sauce.ts +45 -0
  1058. package/skills/sauce-solana/examples/token-2022.sauce.ts +38 -0
  1059. package/skills/sauce-swaps/SKILL.md +200 -0
  1060. package/skills/sauce-swaps/examples/swap-leg.sauce.ts +50 -0
  1061. package/skills/sauce-swaps/examples/swaps.mts +124 -0
  1062. package/skills/sauce-typescript/SKILL.md +178 -0
  1063. package/skills/sauce-typescript/examples/actions.mts +100 -0
  1064. package/skills/sauce-typescript/examples/compiler.mts +69 -0
  1065. package/skills/sauce-typescript/examples/cook.mts +65 -0
  1066. package/skills/sauce-typescript/examples/verify.mts +104 -0
  1067. package/dev-tools/README.md +0 -16
  1068. package/dev-tools/artifacts/IERC20.json +0 -1
  1069. package/dev-tools/artifacts/ISauceRouter.json +0 -1
  1070. package/dev-tools/artifacts/IUniswapV3Pool.json +0 -1
  1071. package/dev-tools/artifacts/Router.json +0 -1
  1072. package/dev-tools/hardhat.config.cjs +0 -18
  1073. package/dev-tools/sauce/js/add.js +0 -4
  1074. package/dev-tools/sauce/js/call.js +0 -8
  1075. package/dev-tools/sauce/js/erc20.js +0 -18
  1076. package/dev-tools/sauce/js/example.js +0 -6
  1077. package/dev-tools/sauce/js/fibonacci.js +0 -13
  1078. package/dev-tools/sauce/ts/add.ts +0 -4
  1079. package/dev-tools/sauce/ts/call.ts +0 -8
  1080. package/dev-tools/sauce/ts/erc20.ts +0 -18
  1081. package/dev-tools/sauce/ts/example.ts +0 -6
  1082. package/dev-tools/sauce/ts/fibonacci.ts +0 -13
  1083. package/dev-tools/sauce/ts/saucescript.d.ts +0 -1
  1084. package/dev-tools/sauce/ts/tsconfig.json +0 -12
  1085. package/dev-tools/scripts/deploy.ts +0 -107
  1086. package/dev-tools/scripts/init.js +0 -132
  1087. package/dev-tools/scripts/run.ts +0 -67
  1088. package/dev-tools/scripts/start-fork.sh +0 -92
  1089. package/dev-tools/scripts/start-local.sh +0 -120
  1090. package/dev-tools/scripts/stop-local.sh +0 -40
  1091. package/dev-tools/scripts/sync-artifacts.js +0 -46
  1092. package/dev-tools/scripts/sync-price.ts +0 -58
  1093. package/dev-tools/src/contracts.ts +0 -59
  1094. package/dev-tools/src/runner.ts +0 -355
  1095. package/dev-tools/src/svm-local.ts +0 -305
  1096. package/dev-tools/src/sync-price.ts +0 -217
  1097. package/sdk/dist/deployments/v12.generated.d.ts +0 -95
  1098. package/sdk/dist/deployments/v12.generated.d.ts.map +0 -1
  1099. package/sdk/dist/deployments/v12.generated.js +0 -50
  1100. package/sdk/dist/deployments/v12.generated.js.map +0 -1
  1101. package/sdk/dist/swap/index.d.ts +0 -29
  1102. package/sdk/dist/swap/index.d.ts.map +0 -1
  1103. package/sdk/dist/swap/index.js +0 -27
  1104. package/sdk/dist/swap/index.js.map +0 -1
  1105. package/sdk/dist/swap/params.d.ts +0 -29
  1106. package/sdk/dist/swap/params.d.ts.map +0 -1
  1107. package/sdk/dist/swap/params.js +0 -123
  1108. package/sdk/dist/swap/params.js.map +0 -1
  1109. package/sdk/dist/swap/source.d.ts +0 -30
  1110. package/sdk/dist/swap/source.d.ts.map +0 -1
  1111. package/sdk/dist/swap/source.js +0 -101
  1112. package/sdk/dist/swap/source.js.map +0 -1
  1113. package/sdk/dist/swap/types.d.ts +0 -160
  1114. package/sdk/dist/swap/types.d.ts.map +0 -1
  1115. package/sdk/dist/swap/types.js +0 -106
  1116. package/sdk/dist/swap/types.js.map +0 -1
  1117. package/sdk/src/skills/aave-v3.md +0 -134
  1118. package/sdk/src/skills/aave-v4.md +0 -91
  1119. package/sdk/src/skills/abracadabra.md +0 -93
  1120. package/sdk/src/skills/across.md +0 -90
  1121. package/sdk/src/skills/aerodrome-slipstream.md +0 -57
  1122. package/sdk/src/skills/aevo.md +0 -58
  1123. package/sdk/src/skills/axelar.md +0 -80
  1124. package/sdk/src/skills/chainlink.md +0 -62
  1125. package/sdk/src/skills/curve.md +0 -141
  1126. package/sdk/src/skills/eigenlayer.md +0 -71
  1127. package/sdk/src/skills/gamma.md +0 -79
  1128. package/sdk/src/skills/harvest.md +0 -49
  1129. package/sdk/src/skills/index.md +0 -299
  1130. package/sdk/src/skills/kelp.md +0 -60
  1131. package/sdk/src/skills/kyberswap.md +0 -100
  1132. package/sdk/src/skills/loader.ts +0 -46
  1133. package/sdk/src/skills/maker.md +0 -79
  1134. package/sdk/src/skills/mantle-meth.md +0 -60
  1135. package/sdk/src/skills/olympus.md +0 -46
  1136. package/sdk/src/skills/oneinch.md +0 -64
  1137. package/sdk/src/skills/openocean.md +0 -86
  1138. package/sdk/src/skills/pancakeswap-v3.md +0 -104
  1139. package/sdk/src/skills/paraswap.md +0 -67
  1140. package/sdk/src/skills/permit2.md +0 -73
  1141. package/sdk/src/skills/perpetual-protocol.md +0 -73
  1142. package/sdk/src/skills/pyth.md +0 -58
  1143. package/sdk/src/skills/reflexer.md +0 -73
  1144. package/sdk/src/skills/safe.md +0 -56
  1145. package/sdk/src/skills/seaport.md +0 -65
  1146. package/sdk/src/skills/sommelier.md +0 -47
  1147. package/sdk/src/skills/stader.md +0 -53
  1148. package/sdk/src/skills/swell.md +0 -65
  1149. package/sdk/src/skills/synapse.md +0 -63
  1150. package/sdk/src/skills/synthra-v3.md +0 -57
  1151. package/sdk/src/skills/thales.md +0 -74
  1152. package/sdk/src/skills/tokemak.md +0 -48
  1153. package/sdk/src/skills/uniswap-v3.md +0 -202
  1154. package/sdk/src/skills/uniswap-v4.md +0 -125
  1155. package/sdk/src/skills/unitflow-v3.md +0 -62
  1156. package/sdk/src/skills/vertex.md +0 -55
  1157. package/sdk/src/skills/wormhole.md +0 -76
  1158. package/sdk/src/skills/zerox.md +0 -51
@@ -0,0 +1,69 @@
1
+ // The raw compiler: one reusable program, arguments encoded separately (ABI-v1 or compact-v1), the
2
+ // SDK's own modules served from memory, and the one `ready()` a browser needs.
3
+ import {
4
+ compile,
5
+ decodeCompactArguments,
6
+ encodeCompactArguments,
7
+ ready,
8
+ resolveSdkModule,
9
+ resolveSdkPackage,
10
+ } from "@eco-incorp/sauce/compiler";
11
+ import { bytesToHex, encodeAbiParameters, hexToBytes } from "viem";
12
+
13
+ function check(condition: unknown, message: string): asserts condition {
14
+ if (!condition) throw new Error(`check failed: ${message}`);
15
+ }
16
+
17
+ await ready(); // resolves at once in Node; required once before the first compile in a browser
18
+
19
+ const source = new TextEncoder().encode(`
20
+ function main(amounts: Uint256[], minimum: Uint256): Uint256 {
21
+ let total = 0n;
22
+ for (let i = 0n; i < amounts.length; i++) {
23
+ total += amounts[i];
24
+ }
25
+ require(total >= minimum);
26
+ return total;
27
+ }
28
+ `);
29
+ const resolve = (path: string) => (path === "main.ts" ? source : undefined);
30
+
31
+ // ABI-v1 (default): append abi.encode of main's parameters; there is no selector.
32
+ const abi = compile({ target: "evm", entry: "main.ts", resolve });
33
+ const abiArgs = hexToBytes(
34
+ encodeAbiParameters([{ type: "uint256[]" }, { type: "uint256" }], [[25n, 75n], 100n]),
35
+ );
36
+ const abiPayload = new Uint8Array([...abi.bytecode, ...abiArgs]); // the `program` of Pot.cook
37
+
38
+ // compact-v1: pair the bytecode with ITS schema, never another artifact's.
39
+ const compact = compile({ target: "evm", entry: "main.ts", resolve, compactArgs: true });
40
+ if (compact.entryEncoding !== "compact-v1" || compact.entrySchema === undefined)
41
+ throw new Error("no schema");
42
+ const schema = compact.entrySchema;
43
+ const small = encodeCompactArguments(schema, [[25n, 75n], 100n]);
44
+ check(small.length < abiArgs.length, "compact is smaller");
45
+ // A fixed scalar width makes the payload length value-independent, so a number can be spliced later.
46
+ const w1 = encodeCompactArguments(schema, [[1n, 2n], 3n], { scalarWidth: 32 });
47
+ const w2 = encodeCompactArguments(schema, [[10n ** 30n, 2n], 3n], { scalarWidth: 32 });
48
+ check(w1.length === w2.length, "scalarWidth fixes offsets");
49
+ const back = decodeCompactArguments(schema, w2, { scalarWidth: 32 });
50
+ check(Array.isArray(back) && Array.isArray(back[0]) && back[0][0] === 10n ** 30n, "round trip");
51
+
52
+ // `@sauce/token` and every protocol ABI twin are served by the SDK: fall back to its resolvers.
53
+ const withToken = new TextEncoder().encode(`
54
+ import { balanceOf } from "@sauce/token";
55
+ function main(token: Address): Uint256 {
56
+ return balanceOf(token, ctx.self());
57
+ }
58
+ `);
59
+ const tokenRead = compile({
60
+ target: "evm",
61
+ entry: "main.ts",
62
+ resolve: (path) => (path === "main.ts" ? withToken : resolveSdkModule(path)),
63
+ resolvePackage: resolveSdkPackage,
64
+ });
65
+
66
+ console.log(
67
+ `isa ${abi.isaRevision}; abi payload ${abiPayload.length} bytes; compact args ${small.length} vs ${abiArgs.length}`,
68
+ );
69
+ console.log(`@sauce/token balanceOf program ${bytesToHex(tokenRead.bytecode).slice(0, 18)}…`);
@@ -0,0 +1,65 @@
1
+ // What `sauce pot` and `sauce tx` do, from TypeScript and offline: owner -> the owner's Pot -> the
2
+ // Pot's deploy transaction -> a program compiled for its chain -> its main(...) arguments -> the
3
+ // cook transaction. Also locates the packaged Solana binaries a LiteSVM harness loads. Sends
4
+ // nothing.
5
+ //
6
+ // node cook.mts --owner <Pot owner> --recipient <address>
7
+ import { existsSync, statSync } from "node:fs";
8
+
9
+ import { destinationExecutionFee, routes, v12PredictPot } from "@eco-incorp/sauce";
10
+ import { v12EngineAddress, v12KitchenAddress } from "@eco-incorp/sauce/deployments";
11
+ import { v12Pot, v12PotAbi } from "@eco-incorp/sauce/evm/engine";
12
+ import { svmEngineArtifacts } from "@eco-incorp/sauce/svm/engine-artifacts";
13
+ import { bytesToHex, concatHex, decodeFunctionData, getAddress, keccak256 } from "viem";
14
+
15
+ type Address = `0x${string}`;
16
+ function address(name: string): Address {
17
+ const i = process.argv.indexOf(`--${name}`);
18
+ const value = i === -1 ? undefined : process.argv[i + 1];
19
+ if (value === undefined || !/^0x[0-9a-fA-F]{40}$/.test(value))
20
+ throw new Error(`pass --${name} <address>`);
21
+ return getAddress(value);
22
+ }
23
+ function check(condition: unknown, message: string): asserts condition {
24
+ if (!condition) throw new Error(`check failed: ${message}`);
25
+ }
26
+
27
+ // 1. The owner's Pot: derived from the owner through the released Kitchen, deployed once.
28
+ const owner = address("owner");
29
+ const salt = `0x${"00".repeat(32)}` as const; // one Pot per owner and salt
30
+ const pot = v12PredictPot(owner, salt);
31
+ const deploy = routes.sauceEvmDeployPotCall({ owner, salt }); // through the released Kitchen
32
+ // Send deploy ({ to, data, value }) where the chain has no code at `pot`.
33
+
34
+ // 2. The program, compiled for its chain with that chain's names, as `sauce compile` does.
35
+ const source = `function main(recipient: Address, floor: Uint256) {
36
+ const held = USDC.balanceOf(ctx.self());
37
+ require(held >= floor, "the Pot holds less than floor");
38
+ USDC.transfer(recipient, held);
39
+ }`;
40
+ const program = routes.compileSauceProgram("base", source);
41
+
42
+ // 3. main(recipient, floor): encoded as `--args` encodes them, appended to the program.
43
+ const args = routes.encodeEntryArguments(program, [address("recipient"), 1_000_000n]);
44
+ const payload = concatHex([bytesToHex(program.bytecode), bytesToHex(args)]);
45
+
46
+ // 4. The cook, sent by the owner. Its value is the Kitchen's executionFee(), read at run time.
47
+ const engine = getAddress(v12EngineAddress());
48
+ const cook = { to: pot, data: v12Pot.encodeCook(engine, payload) };
49
+ const feeRead = destinationExecutionFee(); // { to, data, decode }: an eth_call on the same chain
50
+ const decoded = decodeFunctionData({ abi: v12PotAbi, data: cook.data });
51
+ check(
52
+ decoded.functionName === "cook" && decoded.args?.[1] === payload,
53
+ "the cook carries program and arguments",
54
+ );
55
+ check(deploy.to === getAddress(v12KitchenAddress()), "the Pot is deployed through the Kitchen");
56
+
57
+ // 5. Solana: the packaged engine and Kitchen binaries a local harness loads (Node-only paths).
58
+ const artifacts = svmEngineArtifacts("devnet");
59
+ for (const path of Object.values(artifacts)) {
60
+ check(existsSync(path) && statSync(path).size > 0, `packaged artifact ${path}`);
61
+ }
62
+
63
+ console.log(`Pot ${pot} (deploy via ${deploy.target}); program keccak ${keccak256(payload)}`);
64
+ console.log(`cook to ${cook.to}: ${(cook.data.length - 2) / 2} bytes; fee read from ${feeRead.to}`);
65
+ console.log(`LiteSVM inputs: ${Object.keys(artifacts).join(", ")}`);
@@ -0,0 +1,104 @@
1
+ // Settlement verification: is this payload THE settle program, and with what parameters? It does
2
+ // not say the surrounding intent is safe; the Pot, engine, chain and every other call stay yours.
3
+ //
4
+ // node verify.mts --recipient <address>
5
+ import { compile, resolveSdkModule } from "@eco-incorp/sauce/compiler";
6
+ import { v12Pot } from "@eco-incorp/sauce/evm/engine";
7
+ import { settleSource } from "@eco-incorp/sauce/recipes";
8
+ import { svmSettleSource } from "@eco-incorp/sauce/svm";
9
+ import { verifySvmSettleProgram } from "@eco-incorp/sauce/svm/verify";
10
+ import {
11
+ SETTLE_PROGRAM,
12
+ SETTLE_WIRE,
13
+ SettleDecodeError,
14
+ decodeSettleCall,
15
+ encodeSettleProgram,
16
+ validateSettleProgram,
17
+ type ProgramPin,
18
+ } from "@eco-incorp/sauce/verify";
19
+ import { routes } from "@eco-incorp/sauce";
20
+ import { v12EngineAddress } from "@eco-incorp/sauce/deployments";
21
+ import { bytesToHex, getAddress, toHex } from "viem";
22
+
23
+ type Address = `0x${string}`;
24
+ function address(name: string): Address {
25
+ const i = process.argv.indexOf(`--${name}`);
26
+ const value = i === -1 ? undefined : process.argv[i + 1];
27
+ if (value === undefined || !/^0x[0-9a-fA-F]{40}$/.test(value))
28
+ throw new Error(`pass --${name} <address>`);
29
+ return getAddress(value);
30
+ }
31
+ function check(condition: unknown, message: string): asserts condition {
32
+ if (!condition) throw new Error(`check failed: ${message}`);
33
+ }
34
+
35
+ const RECIPIENT = address("recipient");
36
+ const ENGINE = getAddress(v12EngineAddress()); // the released engine a cook names
37
+ const baseUsdc = routes.registryTokenAddress(routes.chain("base").chain, "USDC");
38
+ if (baseUsdc === undefined) throw new Error("no USDC on Base");
39
+ const USDC = toHex(baseUsdc, { size: 20 });
40
+
41
+ // 1. Build and validate a canonical payload (program hash + strict ABI-v1 tail).
42
+ const payload = encodeSettleProgram([USDC], 1_000_000n, RECIPIENT, SETTLE_PROGRAM);
43
+ const settle = validateSettleProgram(payload);
44
+ check(
45
+ settle.recipient === RECIPIENT.toLowerCase() && settle.minOut === 1_000_000n,
46
+ "decoded params",
47
+ );
48
+
49
+ // 2. The same check on cook calldata. The ENGINE is reported, not trusted: compare it to your list.
50
+ const call = decodeSettleCall(v12Pot.encodeCook(ENGINE, payload));
51
+ check(call !== null && call.engine === ENGINE.toLowerCase(), "cook unwrapped; engine reported");
52
+
53
+ // 3. A payload whose PROGRAM bytes differ is rejected with a machine-readable code. (Changing only
54
+ // the argument tail would decode fine: it is a valid settlement with other parameters.)
55
+ const at = 2 + 2 * 20; // a hex offset inside the program, ahead of its arguments
56
+ const flipped = (parseInt(payload.slice(at, at + 2), 16) ^ 0xff).toString(16).padStart(2, "0");
57
+ const tampered = `${payload.slice(0, at)}${flipped}${payload.slice(at + 2)}` as `0x${string}`;
58
+ try {
59
+ validateSettleProgram(tampered);
60
+ throw new Error("expected rejection");
61
+ } catch (error) {
62
+ if (!(error instanceof SettleDecodeError)) throw error;
63
+ console.log(`tampered payload rejected: ${error.code}`);
64
+ }
65
+
66
+ // 4. Accepting an older compiler's program is an explicit decision. An explicit list REPLACES the
67
+ // default pin, so always include the current one.
68
+ const accepted: ProgramPin[] = [
69
+ { hash: SETTLE_WIRE.PROGRAM_HASH, bytes: SETTLE_WIRE.PROGRAM_BYTES },
70
+ // A settle program an earlier compiler produced, accepted deliberately (hash and length).
71
+ { hash: "0xf9fffd262b32ad0cb07f2748f813626363497e09e4f4da134bed1b8da0c5d5fe", bytes: 356 },
72
+ ];
73
+ validateSettleProgram(payload, accepted);
74
+
75
+ // 5. Reproduce the pinned program from the shipped source with the pinned compiler.
76
+ const source = new TextEncoder().encode(settleSource());
77
+ const { bytecode } = compile({
78
+ target: "evm",
79
+ entry: "settle.sauce.ts",
80
+ resolve: (path) => (path === "settle.sauce.ts" ? source : resolveSdkModule(path)),
81
+ });
82
+ check(bytesToHex(bytecode) === SETTLE_PROGRAM.toLowerCase(), "settle program reproduces");
83
+
84
+ // 6. SVM: parameters are compiled in, so verification recompiles with the values you expect.
85
+ const svm = compile({
86
+ target: "svm",
87
+ resolve: (path) =>
88
+ path === "main.js" ? new TextEncoder().encode(svmSettleSource(1)) : undefined,
89
+ defines: [
90
+ ["SETTLE_MIN_OUT", "1000000"],
91
+ ["SETTLE_SPL_COUNT", "1"],
92
+ ],
93
+ });
94
+ if (svm.manifest === undefined) throw new Error("expected an SVM manifest");
95
+ const svmResult = verifySvmSettleProgram(svm.bytecode, svm.manifest, {
96
+ minOut: 1_000_000n,
97
+ splCount: 1n,
98
+ });
99
+ check(svmResult.genuine, "SVM settle reproduces");
100
+
101
+ console.log(`settle ${SETTLE_WIRE.PROGRAM_BYTES} bytes, compiler ${SETTLE_WIRE.PROGRAM_COMPILER}`);
102
+ console.log(
103
+ `validated: tokens ${settle.tokens.join(",")} minOut ${settle.minOut} -> ${settle.recipient}`,
104
+ );
@@ -1,16 +0,0 @@
1
- # Sauce dev-tools
2
-
3
- To build an application with Sauce, install the SDK — you do not need this workspace:
4
-
5
- ```sh
6
- pnpm add @eco-incorp/sauce
7
- ```
8
-
9
- Follow the [quick start](../docs/guides/quick-start.md) and the
10
- [examples](../docs/examples/README.md). After installing, the same manual is on disk at
11
- `node_modules/@eco-incorp/sauce/docs/README.md`.
12
-
13
- This workspace holds a local harness used while developing the SDK itself. Its compilation and
14
- argument helpers, and its Solana local-execution runner, are current. Its deployment and end-to-end
15
- scripts target an earlier EVM contract interface and do not work against Kitchen/Pot deployments;
16
- use the SDK's own [execution guides](../docs/guides/compiling.md) instead.
@@ -1 +0,0 @@
1
- {"abi":[{"type":"function","name":"allowance","stateMutability":"view","inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"type":"function","name":"approve","stateMutability":"nonpayable","inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"type":"function","name":"balanceOf","stateMutability":"view","inputs":[{"name":"account","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"type":"function","name":"totalSupply","stateMutability":"view","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"type":"function","name":"transfer","stateMutability":"nonpayable","inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]},{"type":"function","name":"transferFrom","stateMutability":"nonpayable","inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]}],"bytecode":{"object":"0x"}}
@@ -1 +0,0 @@
1
- {"abi":[{"type":"function","name":"algebraSwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lockAcquired","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"pancakeV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"quote","inputs":[{"name":"params","type":"tuple","internalType":"struct QuoteParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"stateView","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteInfinityBin","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"swapForY","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int128","internalType":"int128"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteInfinityCL","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteMaverickV2Bounded","inputs":[{"name":"params","type":"tuple","internalType":"struct QuoteParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"stateView","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"tickLimit","type":"int32","internalType":"int32"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapInfinityBin","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"swapForY","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int128","internalType":"int128"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapInfinityCL","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapMaverickV2Bounded","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}]},{"name":"tickLimit","type":"int32","internalType":"int32"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapV3","inputs":[{"name":"pool","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapV4","inputs":[{"name":"poolManager","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"synthraV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uniswapV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unitFlowV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"result","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"}]}
@@ -1 +0,0 @@
1
- {"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"CollectProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid1","type":"uint256"}],"name":"Flash","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16"}],"name":"IncreaseObservationCardinalityNext","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"feeProtocol0Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol0New","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1New","type":"uint8"}],"name":"SetFeeProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"int256","name":"amount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"amount1","type":"int256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Swap","type":"event"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"name":"increaseObservationCardinalityNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"name":"setFeeProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"bytecode":{"object":"0x"}}
@@ -1 +0,0 @@
1
- {"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"algebraSwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lockAcquired","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"maverickV2SwapCallback","inputs":[{"name":"","type":"address","internalType":"contract IERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pancakeV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"quote","inputs":[{"name":"params","type":"tuple","internalType":"struct QuoteParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"stateView","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteInfinityBin","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"swapForY","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int128","internalType":"int128"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteInfinityCL","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"quoteMaverickV2Bounded","inputs":[{"name":"params","type":"tuple","internalType":"struct QuoteParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"stateView","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"tickLimit","type":"int32","internalType":"int32"}],"outputs":[{"name":"result","type":"tuple","internalType":"struct SwapQuoteResult","components":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"simulateMaverickV2Bounded","inputs":[{"name":"params","type":"tuple","internalType":"struct QuoteParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"stateView","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"tickLimit","type":"int32","internalType":"int32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"simulateSwap","inputs":[{"name":"params","type":"tuple","internalType":"struct QuoteParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"stateView","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapInfinityBin","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"swapForY","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int128","internalType":"int128"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapInfinityCL","inputs":[{"name":"vault","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct InfinityPoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"hooks","type":"address","internalType":"address"},{"name":"poolManager","type":"address","internalType":"address"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"parameters","type":"bytes32","internalType":"bytes32"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapMaverickV2Bounded","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"poolType","type":"uint8","internalType":"enum SwapPoolType"},{"name":"pool","type":"address","internalType":"address"},{"name":"poolKey","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"callback","type":"bytes","internalType":"bytes"}]},{"name":"tickLimit","type":"int32","internalType":"int32"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapV3","inputs":[{"name":"pool","type":"address","internalType":"address"},{"name":"tokenIn","type":"address","internalType":"address"},{"name":"tokenOut","type":"address","internalType":"address"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapV4","inputs":[{"name":"poolManager","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"address"}]},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"},{"name":"payer","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[{"name":"amount0","type":"int256","internalType":"int256"},{"name":"amount1","type":"int256","internalType":"int256"}],"stateMutability":"nonpayable"},{"type":"function","name":"synthraV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"uniswapV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unitFlowV3SwapCallback","inputs":[{"name":"amount0Delta","type":"int256","internalType":"int256"},{"name":"amount1Delta","type":"int256","internalType":"int256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"error","name":"InputExceedsAuthorized","inputs":[{"name":"requested","type":"uint256","internalType":"uint256"},{"name":"authorized","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutput","inputs":[]},{"type":"error","name":"InvalidPool","inputs":[]},{"type":"error","name":"QuoteDeltasNotExactInput","inputs":[{"name":"inputDelta","type":"int256","internalType":"int256"},{"name":"outputDelta","type":"int256","internalType":"int256"}]},{"type":"error","name":"QuoteRevert","inputs":[{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"amountOut","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceAfter","type":"uint160","internalType":"uint160"},{"name":"gasEstimate","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"SettleDeltasNotExactInput","inputs":[{"name":"inputDelta","type":"int256","internalType":"int256"},{"name":"outputDelta","type":"int256","internalType":"int256"}]},{"type":"error","name":"SwapFailed","inputs":[]},{"type":"error","name":"UnauthorizedCallback","inputs":[]},{"type":"error","name":"UnauthorizedCaller","inputs":[]}],"bytecode":"0x60808060405234601557615f62908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80630249b0f61461014657806313abb0ca146100fb57806323a69e75146100fb5780632c8958f6146100fb578063400f510614610141578063469067b21461013c57806355d880f31461013757806367a6265e1461013257806367ca7c911461012d578063719b4468146101285780637c9e9da31461012357806382800e84146100fb57806391dd73461461011e57806392b1686614610119578063a5e2989d14610114578063ab6291fe1461010f578063c3b093a81461010a578063cebb6f4e14610105578063eb55e6f1146101005763fa461e330361000e575b6103e5565b611831565b611723565b6115db565b611276565b611143565b6110ce565b610c1a565b610b4b565b610b0a565b6109fe565b61099e565b610927565b610738565b61061c565b6101c8565b6001600160a01b0381160361015c57565b5f80fd5b359061016b8261014b565b565b60c090602319011261015c57602490565b60e43590811515820361015c57565b3590811515820361015c57565b9181601f8401121561015c5782359167ffffffffffffffff831161015c576020838186019501011161015c57565b3461015c576101a036600319011261015c576004356101e68161014b565b6101ef3661016d565b906101f861017e565b6101243592610104359161020b8561014b565b61014435906102198261014b565b61016435926102278461014b565b6101843567ffffffffffffffff811161015c5761024890369060040161019a565b969095303303610386575f8112156103775761035f986103229160a060405195600160208801526001600160a01b0381356102828161014b565b1660408801526001600160a01b03602082013561029e8161014b565b1660608801526001600160a01b0360408201356102ba8161014b565b1660808801526102e060608201356102d18161014b565b6001600160a01b031688840152565b6102fb6102ef6080830161191b565b62ffffff1660c0890152565b013560e08601528515156101008601526101208501526001600160a01b0316610140840152565b6001600160a01b0384166101608301526001600160a01b0385166101808301525f6101a08301526101a0825261035a6101c083611b22565b612903565b604080519283526020830191909152819081015b0390f35b63081ceff360e41b5f5260045ffd5b7f5c427cd9000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031982011261015c5760043591602435916044359067ffffffffffffffff821161015c576103e19160040161019a565b9091565b3461015c576001600160a01b036103fb366103ae565b50507f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6005c9290917f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6015c917f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6025c91907f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6035c907f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f5ff5c1633036105f4575f7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f5ff5d156105ef57925b5f8212610588575f8113610571575080831361054057506104fe6138c2565b5f821361050757005b6001600160a01b038316300361052c5761001892506001600160a01b03339116613a3d565b610018926001600160a01b0333921661399a565b7f3bf4a30d000000000000000000000000000000000000000000000000000000005f52600483905260245260445b5ffd5b6318e4bdd360e21b5f52600484905260245260445ffd5b836105b16105eb926105ab6105a561059f3361559a565b94612a71565b91612a71565b906151e1565b604051636255171f60e01b8152600481019290925260248201526001600160a01b0390911660448201525f60648201529081906084820190565b0390fd5b6104df565b7ff5c6c81a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461015c5761014036600319011261015c5760043561063a8161014b565b6106433661016d565b9061064c61017e565b9161010435906101243561065f8161014b565b610667611bae565b935a955f851215610377576001600160a01b03946106996106a7926106ac966040519687943093309360208801611926565b03601f198101845283611b22565b612a9d565b92909192166040840152602083015281525a8203918211610700576060818101928352604080518351815260208085015190820152928101516001600160a01b031690830152915191810191909152608090f35b611be3565b61018090600319011261015c57600490565b61018435908160030b820361015c57565b602435908160030b820361015c57565b3461015c576101a036600319011261015c5761086861075636610705565b61075e610717565b60405a9161076b84611c2c565b61081a61077a60208701612441565b8661080561078b6101008301612441565b6107f561079b6101208501612441565b916107d56107b26101606101408801359701612441565b966107c56107be611b62565b9a8b61244b565b6001600160a01b031660208a0152565b6107e1368b8e01611c4c565b888b01526001600160a01b03166060880152565b6001600160a01b03166080860152565b60a08401526001600160a01b031660c0830152565b3060e08201523061010082015261082f611efb565b610120820152825195869283927f55d880f300000000000000000000000000000000000000000000000000000000845260048401612cbb565b03815f305af1908115610913576108a66108966105ab6105eb9461089e975f905f926108e1575b508761568d565b9590946156f8565b915a90611bf7565b90604051948594636255171f60e01b865260048601909493926001600160a01b03906060936080840197845260208401521660408201520152565b9050610905915060403d60401161090c575b6108fd8183611b22565b8101906128ed565b905f61088f565b503d6108f3565b611ed4565b90816101c091031261015c5790565b3461015c57604036600319011261015c5760043567ffffffffffffffff811161015c57610958903690600401610918565b610960610728565b30330361038657813561097281611c04565b600b8110156109995760070361098b5761035f91612cdc565b62820f3560e61b5f5260045ffd5b611c0e565b3461015c5761018036600319011261015c576103736109c46109bf36610705565b611f3e565b60405191829182919091606080608083019480518452602081015160208501526001600160a01b0360408201511660408501520151910152565b3461015c57608036600319011261015c57610a1a60043561014b565b60243560643567ffffffffffffffff811161015c57610a3d90369060040161019a565b50507fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833dc5c907fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833dd5c7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833de5c6001600160a01b037fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833db5c1633036105f4575f7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833db5d80831161054057506105076138c2565b3461015c57602036600319011261015c5760043567ffffffffffffffff811161015c57610b3b903690600401610918565b3033036103865761035f906121c8565b3461015c5761016036600319011261015c57600435610b698161014b565b60a036602319011261015c5760c43590811515820361015c5761035f916101043560e435610b968261014b565b6101243592610ba48461014b565b6101443594610bb28661014b565b612397565b602060031982011261015c576004359067ffffffffffffffff821161015c576103e19160040161019a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b906020610c17928181520190610be2565b90565b3461015c57610c2836610bb7565b6001600160a01b037f90e3c11b9f78c2665fff76a0877f21f24da1c72476ad322cf0a9a0540c01f5575c1633036105f4576001600160a01b038080610c7585602095610cf1970190612457565b969a9498929395979199909a1696169416966001600160a01b03811615611088575b610cbd90610ca3611b44565b851515815292838501526001600160a01b03166040830152565b604051809981927ff3cd914c00000000000000000000000000000000000000000000000000000000835288600484016124d9565b03815f335af1968715610913575f97611057575b508660801d9487600f0b96610f6157508015610f5a5785905b5f82600f0b12610f2957505083600f0b955f8713610eac575b5f8613610e0d575b505090610d8e92915f61037396610d546138c2565b12610de4575b5f8512610d9a575b505060408051600f92830b60208201529390910b9083015281606081015b03601f198101835282611b22565b60405191829182610c06565b610db16020610ddd9301516001600160a01b031690565b90610dd6610dc1610dc1886125a6565b6fffffffffffffffffffffffffffffffff1690565b9133615297565b5f80610d62565b610e08610df883516001600160a01b031690565b82610dd6610dc1610dc1886125a6565b610d5a565b610e256020859493969501516001600160a01b031690565b333b1561015c57604051630b0d9c0960e01b81526001600160a01b039182166004820152951660248601526fffffffffffffffffffffffffffffffff1660448501525f8460648183335af180156109135761037396610d8e955f92610e92575b5096508192939450610d3f565b80610ea084610ea693611b22565b80611d68565b5f610e85565b83516001600160a01b0316333b1561015c57604051630b0d9c0960e01b81526001600160a01b03918216600482015290831660248201526fffffffffffffffffffffffffffffffff861660448201525f8160648183335af1801561091357610f15575b50610d37565b80610ea05f610f2393611b22565b5f610f0f565b90858761056e935f14610f5357505b6318e4bdd360e21b5f52600f90810b6004520b602452604490565b9050610f38565b8490610d1e565b848688841561104157610f7691600f0b6151e1565b919091925b5f9080610fc2575b506105eb9150604051938493636255171f60e01b8552600485016001600160a01b0360609295945f946080840197845260208401521660408201520152565b60809150610fd2610ff393615234565b906040518080958194633205590760e21b8352600483019190602083019252565b03915afa8015610913576105eb915f9161100f575b5084610f83565b611031915060803d60801161103a575b6110298183611b22565b810190612563565b50505084611008565b503d61101f565b61104e91600f0b906151e1565b91909192610f7b565b61107a91975060203d602011611081575b6110728183611b22565b8101906124ca565b955f610d05565b503d611068565b5082156110a057610cbd6401000276a45b9050610c97565b610cbd73fffd8963efd1fc6a506488495d951d5263988d25611099565b610104359081600f0b820361015c57565b3461015c5761012036600319011261015c576004356110ec8161014b565b6110f53661016d565b6110fd61017e565b6111056110bd565b9261110e611bae565b925a94600f0b915f831215610377576106a76106ac936106996001600160a01b03966040519586933092309260208701611a1e565b3461015c5760e036600319011261015c576004356111608161014b565b6024359061116d8261014b565b6044359161117a8361014b565b606435916084359361118b8561014b565b60a4356111978161014b565b60c435926111a48461014b565b3033036103865761035f9660209661122d6112529561121d61126399611242966112086111cf611b53565b915f83525f8f8401525f60408401525f60608401525f60808401526111f2611b62565b600181529e8f5b01906001600160a01b03169052565b60408d01526001600160a01b031660608c0152565b6001600160a01b031660808a0152565b60a08801526001600160a01b031660c0870152565b6001600160a01b031660e0850152565b6001600160a01b0316610100830152565b61126b611efb565b610120820152613e69565b3461015c5761128436610bb7565b906001600160a01b037f877b2b8439a2f09fcf270e240004e4f37f2fd6852f7b25487843cdc62828247b5c1633036105f4576112cc816001600160a01b0393849301906125d5565b97859991959294939416941692865f14611545575f92602092611380926001600160a01b0381161561150c575b61134a9061132361131761131760608d01516001600160a01b031690565b6001600160a01b031690565b9361133661132f611b44565b9415158552565b838701526001600160a01b03166040830152565b6040519485809481937fcd0cc1ce0000000000000000000000000000000000000000000000000000000083528b60048401612742565b03925af1908115610913575f916114ed575b50955b8660801d9487600f0b966113e057508015610f5a5785905f82600f0b12610f2957505083600f0b955f8713610eac575f8613610e0d57505090610d8e92915f61037396610d546138c2565b84868884156114d7576113f591600f0b6151e1565b919091925b5f9061143f575b6105eb9150604051938493636255171f60e01b8552600485016001600160a01b0360609295945f946080840197845260208401521660408201520152565b50608081611460611317611317606061149a9601516001600160a01b031690565b9060405161147681610d806020820194856127eb565b519020906040518080958194633205590760e21b8352600483019190602083019252565b03915afa8015610913576105eb915f916114b5575b50611401565b6114ce915060803d60801161103a576110298183611b22565b505050846114af565b6114e491600f0b906151e1565b919091926113fa565b611506915060203d602011611081576110728183611b22565b5f611392565b5050898414611527578961134a6401000276a45b90506112f9565b8961134a73fffd8963efd1fc6a506488495d951d5263988d25611520565b506020906115a39261156761131761131760608a01516001600160a01b031690565b905f6040518096819582947f911a63b7000000000000000000000000000000000000000000000000000000008452600f0b908c600485016126b5565b03925af1908115610913575f916115bc575b5095611395565b6115d5915060203d602011611081576110728183611b22565b5f6115b5565b3461015c5761018036600319011261015c576004356115f98161014b565b6116023661016d565b61160a61017e565b6116126110bd565b90610124356116208161014b565b610144359161162e8361014b565b6101643567ffffffffffffffff811161015c5761164f90369060040161019a565b95909430330361038657600f0b965f8812156103775761035f9760a0604051935f60208601526001600160a01b0381356116888161014b565b1660408601526001600160a01b0360208201356116a48161014b565b1660608601526001600160a01b0360408201356116c08161014b565b1660808601526116e660608201356116d78161014b565b6001600160a01b031686840152565b6117016116f56080830161191b565b62ffffff1660c0870152565b013560e08401528315156101008401526101208301525f610140830152610322565b3461015c576101a036600319011261015c5761173e36610705565b611746610717565b61174e611bae565b905a92303b1561015c57611792915f9160405193849283927f469067b200000000000000000000000000000000000000000000000000000000845260048401612857565b038183305af1908161181d575b50610377576117de610373926117d06117be6117b9611f0f565b613866565b6001600160a01b031660408701529091565b602085015283525a90611bf7565b606082015260405191829182919091606080608083019480518452602081015160208501526001600160a01b0360408201511660408501520151910152565b80610ea05f61182b93611b22565b5f61179f565b3461015c5761018036600319011261015c5761086861184f36610705565b5a604061185b83611c2c565b6118c161186a60208601612441565b6118776101008701612441565b6108056118876101208901612441565b6107f56101408a0135936118a16107b26101608d01612441565b6118ad368a8d01611c4c565b888a01526001600160a01b03166060880152565b3060e0820152306101008201526118d6611efb565b6101208201528151809581927f719b446800000000000000000000000000000000000000000000000000000000835260048301612caa565b62ffffff81160361015c57565b359061016b8261190e565b9261016b956119f561018096611a06936119de611a17979c9b969c60a06101a08b019e60018c526001600160a01b0381356119608161014b565b1660208d01526001600160a01b03602082013561197c8161014b565b1660408d01526001600160a01b0360408201356119988161014b565b1660608d01526119b38c60806060840135916111f98361014b565b6119ce8c836119c46080850161191b565b62ffffff16910152565b013560c08b0152151560e08a0152565b6101008801526001600160a01b0316610120870152565b6001600160a01b0316610140850152565b6001600160a01b0316610160830152565b6001910152565b9194611a0661016b9561018095611adb611a17959a9960a06101a089019c5f8a526001600160a01b038135611a528161014b565b1660208b01526001600160a01b036020820135611a6e8161014b565b1660408b01526001600160a01b036040820135611a8a8161014b565b1660608b0152611ab16060820135611aa18161014b565b6001600160a01b031660808c0152565b611acb611ac06080830161191b565b62ffffff168b840152565b013560c0890152151560e0880152565b6101008601525f6101208601526119f5565b634e487b7160e01b5f52604160045260245ffd5b60c0810190811067ffffffffffffffff821117611b1d57604052565b611aed565b90601f8019910116810190811067ffffffffffffffff821117611b1d57604052565b6040519061016b606083611b22565b6040519061016b60a083611b22565b6040519061016b61014083611b22565b6040519061016b61010083611b22565b6040519061016b608083611b22565b6040519061016b60c083611b22565b9061016b6040519283611b22565b604051906080820182811067ffffffffffffffff821117611b1d576040525f6060838281528260208201528260408201520152565b634e487b7160e01b5f52601160045260245ffd5b9190820391821161070057565b600b111561015c57565b634e487b7160e01b5f52602160045260245ffd5b600b111561099957565b35610c1781611c04565b359061016b82611c04565b8060020b0361015c57565b91908260a091031261015c5760405160a0810181811067ffffffffffffffff821117611b1d5760405260808082948035611c858161014b565b84526020810135611c958161014b565b60208501526040810135611ca88161190e565b60408501526060810135611cbb81611c41565b6060850152013591611ccc8361014b565b0152565b9190916101808184031261015c57610160611d6191611d16611cf0611b72565b95611cfa83611c36565b8752611d0860208401610160565b602088015260408301611c4c565b6040860152611d2760e08201610160565b6060860152611d396101008201610160565b6080860152611d4b6101208201610160565b60a086015261014081013560c086015201610160565b60e0830152565b5f91031261015c57565b90600b8210156109995752565b90610160611eb58161016b94611d9f858235611d9a81611c04565b611d72565b6001600160a01b036020820135611db58161014b565b1660208601526001600160a01b036040820135611dd18161014b565b1660408601526001600160a01b036060820135611ded8161014b565b16606086015262ffffff6080820135611e058161190e565b16608086015260a0810135611e1981611c41565b60020b60a0860152611e4260c0820135611e328161014b565b6001600160a01b031660c0870152565b611e61611e5160e08301610160565b6001600160a01b031660e0870152565b611e82611e716101008301610160565b6001600160a01b0316610100870152565b611ea3611e926101208301610160565b6001600160a01b0316610120870152565b61014081013561014086015201610160565b6001600160a01b0316910152565b6101808101929161016b9190611d7f565b6040513d5f823e3d90fd5b67ffffffffffffffff8111611b1d57601f01601f191660200190565b60405190611f0a602083611b22565b5f8252565b3d15611f39573d90611f2082611edf565b91611f2e6040519384611b22565b82523d5f602084013e565b606090565b90611f47611bae565b915a906002611f5582611c2c565b611f5e81611c22565b14612056576001611f6e82611c2c565b611f7781611c22565b1461201957303b1561015c575f611fbb91604051809381927feb55e6f100000000000000000000000000000000000000000000000000000000835260048301611ec3565b038183305af19081612005575b5061037757611ffe90611ff7611fdf6117b9611f0f565b91875260208701526001600160a01b03166040860152565b5a90611bf7565b6060830152565b80610ea05f61201393611b22565b5f611fc8565b90611ff761203661203161204e949695963690611cd0565b6135ea565b91865260208601526001600160a01b03166040850152565b606082015290565b90611ff761203661206e61204e949695963690611cd0565b61343c565b903590601e198136030182121561015c570180359067ffffffffffffffff821161015c5760200191813603831361015c57565b9291926120b282611edf565b916120c06040519384611b22565b82948184528183011161015c578281602093845f960137010152565b9080601f8301121561015c57816020610c17933591016120a6565b9190916101c08184031261015c5761210d611b62565b9261211782611c36565b845261212560208301610160565b60208501526121378160408401611c4c565b604085015261214860e08301610160565b606085015261215a6101008301610160565b608085015261012082013560a08501526121776101408301610160565b60c08501526121896101608301610160565b60e085015261219b6101808301610160565b6101008501526101a082013567ffffffffffffffff811161015c576121c092016120dc565b610120830152565b6121d66101a0820182612073565b905015158061237b575b8061235f575b80612343575b610377576121f981611c2c565b61220281611c22565b1561233a57600161221282611c2c565b61221b81611c22565b1461232757600261222b82611c2c565b61223481611c22565b1461231457600361224482611c2c565b61224d81611c22565b1461230b57600461225d82611c2c565b61226681611c22565b1461230257600561227682611c2c565b61227f81611c22565b146122f957600661228f82611c2c565b61229881611c22565b146122f05760076122a882611c2c565b6122b181611c22565b146122e75760086122c182611c2c565b6122ca81611c22565b146122de5763081ceff360e41b5f5260045ffd5b6103e1906150b7565b6103e190613094565b6103e190614d2c565b6103e190614a5e565b6103e190614850565b6103e19061451b565b6123226103e19136906120f7565b6142a2565b6123356103e19136906120f7565b613e69565b6103e190613b08565b50600761234f82611c2c565b61235881611c22565b14156121ec565b50600261236b82611c2c565b61237481611c22565b14156121e6565b50600161238782611c2c565b61239081611c22565b14156121e0565b94919293303303610386576112426020956124059561122d6103e19961121d61125297805f1461242e576123ce6113176024612441565b905b15612418576123fa6123e56113176044612441565b935b6123ef611b62565b600281529d8e6111f9565b611208366024611c4c565b61240d611efb565b6101208201526142a2565b6123fa6124286113176024612441565b936123e7565b61243b6113176044612441565b906123d0565b35610c178161014b565b600b8210156109995752565b6101808183031261015c57803561246d8161014b565b92612489602083013561247f8161014b565b9360408401611c4c565b9161249660e0820161018d565b91610100820135916101208101356124ad8161014b565b916101606124be610140840161018d565b920135610c178161014b565b9081602091031261015c575190565b90610140926125288361254f936001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b8051151560a0840152602081015160c0840152604001516001600160a01b031660e0830152565b6101206101008201525f6101208201520190565b919082608091031261015c57815161257a8161014b565b91602081015161258981611c41565b916060604083015161259a8161190e565b920151610c178161190e565b600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008114610700575f0390565b80929103916101a0831261015c5760c06125ee8261018d565b93601f19011261015c5760405161260481611b01565b60208201356126128161014b565b815260408201356126228161014b565b602082015260608201356126358161014b565b604082015260808201356126488161014b565b606082015260a082013561265b8161190e565b608082015260c082013560a08201529161267760e0830161018d565b916101008101359161268c6101208301610160565b9161269a6101408201610160565b91610c176101806126ae6101608501610160565b930161018d565b9161271f83610140959360a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b151560c0830152600f0b60e08201526101206101008201525f6101208201520190565b90610160926127af836127d79360a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b8051151560c0840152602081015160e0840152604001516001600160a01b0316610100830152565b6101406101208201525f6101408201520190565b61016b9092919260c081019360a080916001600160a01b0381511684526001600160a01b0360208201511660208501526001600160a01b0360408201511660408501526001600160a01b03606082015116606085015262ffffff60808201511660808501520151910152565b9092916101809061286d836101a0810196611d7f565b60030b910152565b9081602091031261015c5751610c178161014b565b60208183031261015c5780519067ffffffffffffffff821161015c570181601f8201121561015c578051906128be82611edf565b926128cc6040519485611b22565b8284526020838301011161015c57815f9260208093018386015e8301015290565b919082604091031261015c576020825192015190565b94909293959195612913866153ce565b82151594856129ba575b5050505061294c6001600160a01b03935f9283604051968780958194638154831960e01b835260048301610c06565b0393165af190811561091357612980925f92612996575b5061296c615485565b612989575b602080825183010191016128ed565b91156103e15791565b6129916154aa565b612971565b6129b39192503d805f833e6129ab8183611b22565b81019061288a565b905f612963565b929591926001600160a01b0316301480159190612a5d575b506103775760405192639fd004e160e01b8452602084600481305afa938415610913576001600160a01b03965f9561294c95612a22938892612a2a575b50612a1c919236916120a6565b906153f2565b92819561291d565b612a1c9250612a509060203d602011612a56575b612a488183611b22565b810190612875565b91612a0f565b503d612a3e565b6001600160a01b031630141590505f6129d2565b7f80000000000000000000000000000000000000000000000000000000000000008114610700575f0390565b612af25f916001600160a01b0393817f877b2b8439a2f09fcf270e240004e4f37f2fd6852f7b25487843cdc62828247b5d83604051958680958194638154831960e01b83526020600484018181520190610be2565b0393165af19081612b9c575b50612b3d57612b36612b0e611f0f565b5f7f877b2b8439a2f09fcf270e240004e4f37f2fd6852f7b25487843cdc62828247b5d613866565b9192909190565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f51756f74652073686f756c6420726576657274000000000000000000000000006044820152606490fd5b612baf903d805f833e6129ab8183611b22565b612afe565b906101c0610120610c1793612bca848251611d72565b6020818101516001600160a01b031690850152612c2c604082015160408601906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60608101516001600160a01b031660e085015260808101516001600160a01b031661010085015260a08101518483015260c08101516001600160a01b031661014085015260e08101516001600160a01b03166101608501526101008101516001600160a01b0316610180850152015191816101a08201520190610be2565b906020610c17928181520190612bb4565b90612cd3602091949394604084526040840190612bb4565b9360030b910152565b91909160208101612cf261131761131783612441565b6040519262fc63d160e41b8452602084600481855afa938415610913575f94613073575b50604051635f64b55b60e01b8152602081600481865afa8015610913576001600160a01b03915f91613054575b5060e083019582612d5388612441565b911692839116149182613031575b82159182612fec575b505061098b57612db5612d97946101208401355f81125f14612d8f57612d8f90612a71565b958691612441565b610160850197612daf612da98a612441565b91612441565b916158db565b6101a08201612dc48184612073565b905015159586612f25575b50506101806040949392612e0a612eb399612dfb612e1095612def611b82565b98895215156020890152565b5f8789015260030b6060870152565b01612441565b5f84518098819582947f3eece7db0000000000000000000000000000000000000000000000000000000084526004840190610100926001600160a01b03606092168352805160208401526020810151151560408401526040810151151582840152015160030b608082015260c060a0820152600160c08201527f010000000000000000000000000000000000000000000000000000000000000060e08201520190565b03925af1928315610913575f905f94612f01575b50612ed0615965565b8180612ef9575b61037757612ee891612eec57612a71565b9190565b612ef461598a565b612a71565b508015612ed7565b9050612f1d91935060403d60401161090c576108fd8183611b22565b92905f612ec7565b612f33909594939195612441565b6001600160a01b03163014801590612fd3575b6103775760405190639fd004e160e01b8252602082600481305afa801561091357612eb399612dfb612e1095612f9c612e0a9460409b610180985f92612faa575b50612f95612a1c9189612073565b36916120a6565b955050995050929394612dcf565b612a1c919250612fcb612f959160203d602011612a5657612a488183611b22565b929150612f87565b5030612fe56113176101808401612441565b1415612f46565b9091506001600160a01b038061300189612441565b921691161490811591613017575b505f80612d6a565b90506130296113176101008501612441565b14155f61300f565b91506130406101008401612441565b6001600160a01b0380831691161491612d61565b61306d915060203d602011612a5657612a488183611b22565b5f612d43565b61308d91945060203d602011612a5657612a488183611b22565b925f612d16565b9060208201916130a961131761131785612441565b926040519162fc63d160e41b8352602083600481885afa928315610913575f936132fa575b50604051635f64b55b60e01b8152602081600481895afa8015610913576001600160a01b03915f916132db575b5060e08301948261310b87612441565b9116928391161491826132b8575b82159182613273575b505061098b5761316161314f936101208401355f81125f146131475761314790612a71565b948591612441565b610160850196612daf612da989612441565b6101a082016131708184612073565b9050151594856131b7575b505094612e1061018060409493612e0a612eb399805f146131a857612dfb637fffffff915b612def611b82565b612dfb637fffffff19916131a0565b6131c690979294939197612441565b6001600160a01b0316301480159061325a575b6103775760405190639fd004e160e01b8252602082600481305afa90811561091357612e0a60409661322561018094612eb39c612e10975f92613231575b50612f95612a1c9187612073565b9499505093945061317b565b612a1c919250613252612f959160203d602011612a5657612a488183611b22565b929150613217565b503061326c6113176101808401612441565b14156131d9565b9091506001600160a01b038061328888612441565b92169116149081159161329e575b505f80613122565b90506132b06113176101008501612441565b14155f613296565b91506132c76101008401612441565b6001600160a01b0380831691161491613119565b6132f4915060203d602011612a5657612a488183611b22565b5f6130fb565b61331491935060203d602011612a5657612a488183611b22565b915f6130ce565b9590979692946001600160a01b039461338b61016097878096816101808d019e168c521660208b015260408a01906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b151560e088015261010087015216610120850152600161014085015216910152565b92946101609461341d5f976001600160a01b0380969b9a959b816101808a019d16895216602088015260408701906001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b151560e085015261010084015216610120820152826101408201520152565b604081019081519161346f611317602061346061131787516001600160a01b031690565b9501516001600160a01b031690565b6001600160a01b038061348c60808601516001600160a01b031690565b951694169380851494855f146135945750506001600160a01b03806134bb60a08601516001600160a01b031690565b921691160361098b575f9261353c61131761353360208796613525613559975b5161351760c08401516134f860e08601516001600160a01b031690565b60608601516001600160a01b0316916040519b8c9530308b890161331b565b03601f198101885287611b22565b01516001600160a01b031690565b611317816159bb565b906040519485809481936348c8949160e01b835260048301610c06565b03925af1908161357c575b50612b3d57612b36613574611f0f565b6117b96159df565b61358f903d805f833e6129ab8183611b22565b613564565b90916001600160a01b031614908115916135c9575b5061098b575f9261353c61131761353360208796613525613559976134db565b90506135e261131760a08501516001600160a01b031690565b14155f6135a9565b6020810161360561131761131783516001600160a01b031690565b9060405191630dfe168160e01b8352602083600481845afa928315610913575f93613845575b506040519263d21220a760e01b8452602084600481855afa938415610913575f94613824575b5060808501936001600160a01b038061367187516001600160a01b031690565b931692169180831492835f146137dd5750506001600160a01b03806136a060a08901516001600160a01b031690565b921691160361098b57613746946040945b60e08201516001600160a01b031694851561378f575b916136fa8460c0936136f26136e45f97516001600160a01b031690565b91516001600160a01b031690565b903090615a04565b01518551630251596160e31b8152306004820152921515602484015260448301526001600160a01b03909316606482015260a060848201525f60a48201529384928391829060c4820190565b03925af19081613771575b5061376957612b36613761611f0f565b6117b9615b5e565b610377615b5e565b6137899060403d60401161090c576108fd8183611b22565b50613751565b94505f916136fa8460c0938186146137bd576136f26136e46401000276a45b9a9597505050935050506136c7565b6136f26136e473fffd8963efd1fc6a506488495d951d5263988d256137ae565b90916001600160a01b03161490811591613803575b5061098b57613746946040946136b1565b905061381c61131760a08801516001600160a01b031690565b14155f6137f2565b61383e91945060203d602011612a5657612a488183611b22565b925f613651565b61385f91935060203d602011612a5657612a488183611b22565b915f61362b565b80519160848314613878575b50602001fd5b636255171f60e01b7fffffffff0000000000000000000000000000000000000000000000000000000060208401511603613872576024820151604483015160649093015190935090565b7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0205c7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0215c90601f60405192808452018060051c5f5b818110613963575050601f191682016020016040526001600160a01b0381161561395f575f9182916139476154aa565b602082519201905af41561395757565b3d5f803e3d5ffd5b5050565b807f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb022600192015c60208260051b8801015201613917565b9290916001600160a01b039081604051947f23b872dd000000000000000000000000000000000000000000000000000000005f52166004521660245260445260205f60648180865af160015f5114811615613a1e575b6040919091525f606052155b613a035750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613a34573d15833b151516166139f0565b503d5f823e3d90fd5b916001600160a01b03604051927fa9059cbb000000000000000000000000000000000000000000000000000000005f521660045260245260205f60448180865af160015f5114811615613a97575b604091909152156139fc565b6001811516613a34573d15833b15151616613a8b565b51906dffffffffffffffffffffffffffff8216820361015c57565b9081606091031261015c57613adc81613aad565b916040613aeb60208401613aad565b92015163ffffffff8116810361015c5790565b35610c178161190e565b906020820191613b1d61131761131785612441565b60405191630dfe168160e01b8352602083600481855afa928315610913575f93613e48575b506040519163d21220a760e01b8352602083600481845afa8015610913576001600160a01b03935f91613e29575b5060e083019484613b8087612441565b9116948591161493845f14613dda57506001600160a01b0380613ba66101008601612441565b921691160361098b575b60405193630240bc6b60e21b8552606085600481855afa8015610913575f955f91613da4575b50613bee613be660808601613afe565b62ffffff1690565b958615613d9a575b620f4240871015610377576101208501355f811215613d9257613c1890612a71565b9687925b8715613d6f57916dffffffffffffffffffffffffffff80613c409416911684615b96565b975b6101608501613c5081612441565b6001600160a01b03163003613d485750613c72612da9611317613c7895612441565b90613a3d565b8215613d41575f905b8315613d3457613c95610180889401612441565b90803b1561015c576040517f022c0d9f000000000000000000000000000000000000000000000000000000008152600481019390935260248301939093526001600160a01b03166044820152608060648201525f608482018190529091829060a490829084905af1801561091357613d20575b5015613d1757612ee890612a71565b610c1790612a71565b80610ea05f613d2e93611b22565b5f613d08565b613c956101805f94612e0a565b8590613c81565b90613d64612da9613d5e611317613d6a97612441565b93612441565b9161399a565b613c78565b6dffffffffffffffffffffffffffff80613d8c9416911684615b96565b97613c42565b968792613c1c565b610bb89650613bf6565b9050613dc991955060603d606011613dd3575b613dc18183611b22565b810190613ac8565b509490945f613bd6565b503d613db7565b906001600160a01b0380613ded88612441565b921691161490811591613e0f575b5015613bb05762820f3560e61b5f5260045ffd5b9050613e216113176101008501612441565b14155f613dfb565b613e42915060203d602011612a5657612a488183611b22565b5f613b70565b613e6291935060203d602011612a5657612a488183611b22565b915f613b42565b6020810191613e8561131761131785516001600160a01b031690565b91604051630dfe168160e01b8152602081600481875afa908115610913575f91614283575b506040519463d21220a760e01b8652602086600481885afa958615610913575f96614262575b5060608301956001600160a01b0380613ef089516001600160a01b031690565b941693169280841493845f1461421e5750506001600160a01b0380613f1f60808701516001600160a01b031690565b921691160361098b57613f3a905b516001600160a01b031690565b613f9d82613f63613f5560e08701516001600160a01b031690565b98516001600160a01b031690565b9260a08601938985515f81125f1461421857507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92615ab2565b61012083018051511515968761417b575b505060409061402b95613fcb60c08601516001600160a01b031690565b916001600160a01b0383161561414c575b515f8451809981958294630251596160e31b8452893060048601926001600160a01b03928360c0969316855215156020850152604084015216606082015260a060808201525f60a08201520190565b03925af18015610913575f945f91614127575b508094809661404b615b5e565b61411a575b61010084019261406784516001600160a01b031690565b90306001600160a01b03831603614081575b505050505050565b156140db5750505f811261409f575b5050505b5f8080808080614079565b6140cd6105a56140bf61131760806140d39701516001600160a01b031690565b93516001600160a01b031690565b91613a3d565b5f8080614090565b915091505f82126140ef575b505050614094565b6140cd61410c61131760806141129601516001600160a01b031690565b92612a71565b5f80806140e7565b6141226154aa565b614050565b905061414391945060403d60401161090c576108fd8183611b22565b9390935f61403e565b91508315614161576401000276a45b91613fdc565b73fffd8963efd1fc6a506488495d951d5263988d2561415b565b9091906001600160a01b031630148015906141f7575b6103775760405195639fd004e160e01b8752602087600481305afa9687156109135761402b976040946141cd925f926141d6575b5051906153f2565b95819250613fae565b6141f091925060203d602011612a5657612a488183611b22565b905f6141c5565b50306142116113176101008701516001600160a01b031690565b1415614191565b92615ab2565b90916001600160a01b03161490811591614241575b5061098b57613f3a90613f2d565b905061425a61131760808601516001600160a01b031690565b14155f614233565b61427c91965060203d602011612a5657612a488183611b22565b945f613ed0565b61429c915060203d602011612a5657612a488183611b22565b5f613eaa565b60408101908151906142d561131760206142c661131786516001600160a01b031690565b9401516001600160a01b031690565b6001600160a01b03806142f260608501516001600160a01b031690565b941693169280841493845f146144d15750506001600160a01b038061432160808501516001600160a01b031690565b921691160361098b575b60e081019161439961434484516001600160a01b031690565b61438b61010085019361435e85516001600160a01b031690565b97519060a08701519061437b60c08901516001600160a01b031690565b926040519a8b96602088016133ad565b03601f198101865285611b22565b61012060208301926143ba6143b585516001600160a01b031690565b6159bb565b019081515115159384614440575b5050506144055f936143e86113176113178795516001600160a01b031690565b906040519586809481936348c8949160e01b835260048301610c06565b03925af1908115610913576103e1925f92614424575b5061296c6159df565b6144399192503d805f833e6129ab8183611b22565b905f61441b565b519192916001600160a01b03166001600160a01b03163014801591906144b3575b506103775760405193639fd004e160e01b8552602085600481305afa94851561091357611317611317614405946144a75f998a986143e8968a926141d6575051906153f2565b955050508195506143c8565b513091506144c9906001600160a01b0316611317565b14155f614461565b90916001600160a01b031614908115916144fa575b501561432b5762820f3560e61b5f5260045ffd5b905061451361131760808401516001600160a01b031690565b14155f6144e6565b906020820161452c61131782612441565b6001600160a01b0316925f199182905f5b600881106146cc575b505f82600f0b1280156146c0575b61098b5761460f956145bc945f60209461012087013582811283146146b75761457c90612a71565b978880965b8982610160820161459181612441565b6001600160a01b033091160361468d575b5050612da961131760e06145b69301612441565b90615cac565b604051998a95869485937f3df021240000000000000000000000000000000000000000000000000000000085526004850160609194935f936080830196600f0b8352600f0b602083015260408201520152565b03925af1938415610913575f94614666575b50908184610180612ee894013061463a61131783612441565b03614648575b505050612a71565b613c72612da961131761010061465e9601612441565b5f8481614640565b612ee8929194506146859060203d602011611081576110728183611b22565b939091614621565b61469f61131760e06146af9501612441565b6146a93092612441565b9061399a565b89825f6145a2565b97888096614581565b505f84600f0b12614554565b6040517fc6610657000000000000000000000000000000000000000000000000000000008152600481018290526020816024818b5afa5f918161476c575b506147155750614546565b6001600160a01b0361472c61131760e08801612441565b9116908114614760575b6147466113176101008701612441565b14614754575b60010161453d565b600f81900b945061474c565b925080600f0b92614736565b61478591925060203d8111612a5657612a488183611b22565b905f61470a565b9092919260e08252805160e083015260208101519060028210156109995760a061480291614841936101008601526001600160a01b036040820151166101208601526001600160a01b036060820151166101408601526080810151610160860152015160c06101808501526101a0840190610be2565b936020830190606080916001600160a01b0381511684526020810151151560208501526001600160a01b03604082015116604085015201511515910152565b5f60a082015260c05f19910152565b906004916020614867611317611317838501612441565b604051948580927f38fff2d00000000000000000000000000000000000000000000000000000000082525afa928315610913576149ca936020915f91614a41575b5061496b6113176101806101208601355f811215614a3b576148c990612a71565b955b6101608101876148da82612441565b6001600160a01b0330911603614a21575b505061495261491160e0830161490c8a61490761131784612441565b615c01565b612441565b6149426149216101008501612441565b9161492a611b91565b9889525f8a8a01526001600160a01b03166040890152565b6001600160a01b03166060870152565b866080860152614960611efb565b60a086015201612441565b90614990614977611b82565b308152925f848601526001600160a01b03166040840152565b5f606083015260405195869283927f52bbbe290000000000000000000000000000000000000000000000000000000084526004840161478c565b03815f73ba12222222228d8ba445958a75a0704d566bf2c85af1928315610913575f936149fc575b50612ee890612a71565b612ee8919350614a1a9060203d602011611081576110728183611b22565b92906149f2565b614a349161469f61131760e08601612441565b5f876148eb565b956148cb565b614a589150823d8411611081576110728183611b22565b5f6148a8565b906020820191614a7361131761131785612441565b90604051907f4a248d2a000000000000000000000000000000000000000000000000000000008252602082600481865afa918215610913575f92614d0b575b50604051927fd4b97046000000000000000000000000000000000000000000000000000000008452602084600481845afa8015610913576001600160a01b03945f91614cec575b5060e083019385614b0986612441565b911695869116149485614cc9575b85159182614c84575b505061098b575f9360209361012084013586811215614c7d57614b4290612a71565b80985b6101608601614b5381612441565b6001600160a01b031630148914614c625750613c72612da9611317614b7795612441565b8414614c0d57614b8d610180614bd29301612441565b6040519485809481937fbd6015b4000000000000000000000000000000000000000000000000000000008352600483019190916001600160a01b036020820193169052565b03925af1801561091357612ee8915f91614bee575b5092612a71565b614c07915060203d602011611081576110728183611b22565b5f614be7565b614c1d610180614bd29301612441565b6040519485809481937fdd93f59a000000000000000000000000000000000000000000000000000000008352600483019190916001600160a01b036020820193169052565b90613d64612da9613d5e611317614c7897612441565b614b77565b8098614b45565b9091506001600160a01b0380614c9987612441565b921691161490811591614caf575b505f80614b20565b9050614cc16113176101008501612441565b14155f614ca7565b9450614cd86101008401612441565b6001600160a01b0380831691161494614b17565b614d05915060203d602011612a5657612a488183611b22565b5f614af9565b614d2591925060203d602011612a5657612a488183611b22565b905f614ab2565b906020820191614d4161131761131785612441565b92604051907f05e8746d000000000000000000000000000000000000000000000000000000008252602082600481885afa918215610913575f92615096575b506040517fda10610c000000000000000000000000000000000000000000000000000000008152602081600481895afa8015610913576001600160a01b03915f91615077575b5060e085019382614dd686612441565b911692839116149182615054575b8215918261500f575b505061098b576101208401355f81121561500957614e0a90612a71565b955b610100850193614e62614e2461131761131788612441565b946020610180890196614e3688612441565b9060405180809681946370a0823160e01b8352600483019190916001600160a01b036020820193169052565b03915afa978815610913578a925f99614fd3575b5091614f09969593916101606020969401614e9081612441565b6001600160a01b03163003614fb85750613c72612da9611317614eb295612441565b614ebb84612441565b6040517f53c059a000000000000000000000000000000000000000000000000000000000815292151560048401526001600160a01b03166024830152909384919082905f9082906044820190565b03925af1801561091357612da9611317611317614f5e96602096614f3295614f9d575b50612441565b9060405180809581946370a0823160e01b8352600483019190916001600160a01b036020820193169052565b03915afa91821561091357612ee89261410c925f91614f7e575b50611bf7565b614f97915060203d602011611081576110728183611b22565b5f614f78565b614fb390883d8a11611081576110728183611b22565b614f2c565b90613d64612da9613d5e611317614fce97612441565b614eb2565b6020959391995091610160614ffa614f0999989694883d8a11611081576110728183611b22565b9a929496505091939596614e76565b95614e0c565b9091506001600160a01b038061502487612441565b92169116149081159161503a575b505f80614ded565b905061504c6113176101008701612441565b14155f615032565b91506150636101008601612441565b6001600160a01b0380831691161491614de4565b615090915060203d602011612a5657612a488183611b22565b5f614dc6565b6150b091925060203d602011612a5657612a488183611b22565b905f614d80565b906101208201355f8112156151dc576150cf90612a71565b6101608301816150de82612441565b6001600160a01b03309116036151c2575b6020915060e08501615120612da961131761131761510f61131786612441565b61490c87898d01926145b684612441565b955f61513c6101806151356101008501612441565b9301612441565b976151a7604051998a96879586947f7dc20382000000000000000000000000000000000000000000000000000000008652600486019094936001600160a01b03905f948260a0958160c087019a16865216602085015260408401528460608401521660808201520152565b03925af1928315610913575f936149fc5750612ee890612a71565b6151d59161469f61131760e08801612441565b5f816150ef565b6150cf565b9190915f8113801561522b575b6151fb57612ee890612a71565b90507f51ac6153000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b505f83126151ee565b6040516152826020820180936001600160a01b036080809282815116855282602082015116602086015262ffffff6040820151166040860152606081015160020b6060860152015116910152565b60a0815261529160c082611b22565b51902090565b929091926001600160a01b03831690811561538b576001600160a01b031691823b1561015c576040517fa58411940000000000000000000000000000000000000000000000000000000081526001600160a01b039490941660048501525f8460248183875af18015610913575f956020958592615377575b50306001600160a01b038216148714615369575061532c92613a3d565b600460405180948193630476982d60e21b83525af180156109135761534e5750565b6153669060203d602011611081576110728183611b22565b50565b6153729361399a565b61532c565b80610ea08961538593611b22565b5f61530f565b925050916001600160a01b0330911603610377576001600160a01b0360046020926040519485938492630476982d60e21b8452165af180156109135761534e5750565b7f877b2b8439a2f09fcf270e240004e4f37f2fd6852f7b25487843cdc62828247b5d565b7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0205d601f8151807f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0215d0160051c905f5b82811061544e57505050565b80602060019260051b840101517f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb02282015d01615442565b5f7f877b2b8439a2f09fcf270e240004e4f37f2fd6852f7b25487843cdc62828247b5d565b601f7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0215c5f7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0205d5f7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0215d0160051c5f5b818110615525575050565b805f7f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb022600193015d0161551a565b9060028110156155645760051b0190565b634e487b7160e01b5f52603260045260245ffd5b60208151910151906020811061558c575090565b5f199060200360031b1b1690565b60406155a66040611ba0565b7f3850c7bd0000000000000000000000000000000000000000000000000000000081527fe76c01e40000000000000000000000000000000000000000000000000000000060208201525f5b6002811061560157505050505f90565b5f806156366156108486615553565b517fffffffff000000000000000000000000000000000000000000000000000000001690565b8551602081019182526004815261564e602482611b22565b5190875afa61565b611f0f565b9080615681575b61566f57506001016155f1565b915050610c1792506113179150615578565b50602081511015615662565b9092919261569a82615cf9565b156156d557925b80938092356156af81611c04565b600b811015610999576001146156c55750509190565b61410c919450610c179250612a71565b6156a1565b81156156e4570490565b634e487b7160e01b5f52601260045260245ffd5b905f9161570481611c2c565b61570d81611c22565b6157f2576060615727611317611317602060049501612441565b60405192838092630240bc6b60e21b82525afa908115610913575f905f926157c1575b506dffffffffffffffffffffffffffff1690811515806157a8575b61576d575050565b610c17929350906157a361579c6157966dffffffffffffffffffffffffffff6113179516615dfb565b92615dfb565b9160601b90565b6156da565b506dffffffffffffffffffffffffffff81161515615765565b6dffffffffffffffffffffffffffff92506157eb915060603d606011613dd357613dc18183611b22565b509161574a565b909160016157ff83611c2c565b61580881611c22565b03615822575061581d6020610c179201612441565b61559a565b9190600261582f82611c2c565b61583881611c22565b146158405750565b60e08101906001600160a01b0361585683612441565b1661585f575050565b6158a792935090615887611317611317613d5e6158826080966040369101611c4c565b615234565b6040518080958194633205590760e21b8352600483019190602083019252565b03915afa908115610913575f916158bc575090565b6158d5915060803d60801161103a576110298183611b22565b50505090565b7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833db5d7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833dc5d7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833dd5d7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833de5d565b5f7fd86eb83254f68c5dfc4e225ac5a8c924b574715967dc213ac588c21d7c8833db5d565b6001600160a01b037f903e8b67161d17b9057004cf2699758964ba59c3d1540d27cbcdc8b8a60fb0205c1661037757565b7f90e3c11b9f78c2665fff76a0877f21f24da1c72476ad322cf0a9a0540c01f5575d565b5f7f90e3c11b9f78c2665fff76a0877f21f24da1c72476ad322cf0a9a0540c01f5575d565b7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f5ff5d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6005d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6015d5f197f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6025d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6035d565b7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f5ff5d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6005d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6015d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6025d7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f6035d565b5f7f8262aa0aaf259c3b6dbf5360db70d05feb8ca82e122fcaf57c4a3f4362a7f5ff5d565b8181029291811591840414171561070057565b919091801561037757821593848015615bf9575b61037757620f42400390620f4240821161070057615bd291615bcb91615b83565b9182615b83565b92620f42408302928304620f424014171561070057810180911161070057610c17916156da565b508215615baa565b90615c218173ba12222222228d8ba445958a75a0704d566bf2c884615e43565b15615c2a575050565b615c4873ba12222222228d8ba445958a75a0704d566bf2c883615e91565b15615c9057615c6c9073ba12222222228d8ba445958a75a0704d566bf2c883615ef0565b15615c745750565b6001600160a01b0390635274afe760e01b5f521660045260245ffd5b6001600160a01b0382635274afe760e01b5f521660045260245ffd5b9190615cb9828285615e43565b15615cc357505050565b615ccd8184615e91565b15615cdd5790615c6c9183615ef0565b6001600160a01b0383635274afe760e01b5f521660045260245ffd5b615d0281611c2c565b615d0b81611c22565b158015615de0575b15615d94576001600160a01b036020615d3d610100615d36611317848701612441565b9401612441565b92600460405180948193630dfe168160e01b8352165afa908115610913576001600160a01b039182915f91615d75575b501691161490565b615d8e915060203d602011612a5657612a488183611b22565b5f615d6d565b6002615d9f82611c2c565b615da881611c22565b14615db35750600190565b6001600160a01b03615dda6113176113176040615dd36101008701612441565b9501612441565b91161490565b506001615dec82611c2c565b615df581611c22565b14615d13565b8015615e3e57600181018082116107005760011c815b828210615e1d57505090565b90915081615e2b81836156da565b9081018091116107005760011c90615e11565b505f90565b92916001600160a01b036040519263095ea7b360e01b5f521660045260245260205f60448180875af19260015f5114841615615e80575b50604052565b3d15903b151516909216915f615e7a565b91906001600160a01b036040519163095ea7b360e01b5f52166004525f60245260205f60448180875af19260015f5114841615615ece5750604052565b60018492941516615ee7573b15153d151616915f615e7a565b833d5f823e3d90fd5b92916001600160a01b036040519263095ea7b360e01b5f521660045260245260205f60448180875af19260015f5114841615615ece575060405256fea26469706673582212209c9d7f4c081c648244ce62d2ca6f915b3eeb0fdfeb17e839581801844a619f3964736f6c634300081b0033"}
@@ -1,18 +0,0 @@
1
- /** @type import('hardhat/config').HardhatUserConfig */
2
- module.exports = {
3
- solidity: "0.8.28",
4
- networks: {
5
- hardhat: {
6
- hardfork: "cancun",
7
- allowUnlimitedContractSize: true,
8
- chains: {
9
- // Base mainnet - enable Cancun from genesis for fork testing
10
- 8453: {
11
- hardforkHistory: {
12
- cancun: 0,
13
- },
14
- },
15
- },
16
- },
17
- },
18
- };
@@ -1,4 +0,0 @@
1
- // Simple addition example
2
- function main(a, b) {
3
- return a + b;
4
- }
@@ -1,8 +0,0 @@
1
- // Uniswap V3 Pool Lookup
2
- // Imports the factory ABI from @uniswap/v3-core and looks up a pool address
3
- import { IUniswapV3Factory } from "@uniswap/v3-core/artifacts/contracts/interfaces/IUniswapV3Factory.sol/IUniswapV3Factory.json";
4
-
5
- function main(factoryAddress, token0, token1) {
6
- const factory = IUniswapV3Factory.at(factoryAddress);
7
- return factory.getPool(token0, token1, 3000);
8
- }
@@ -1,18 +0,0 @@
1
- // ERC20-like transfer operation
2
- // Demonstrates: storage, crypto, abi encode/decode, events, ctx.msgSender()
3
-
4
- function balanceSlot(account) {
5
- return crypto.keccak256(abi.encode(account, 1));
6
- }
7
-
8
- function main(to, amount) {
9
- const from = ctx.msgSender();
10
- const fromSlot = balanceSlot(from);
11
- const fromBalance = evm.sload(fromSlot);
12
- if (fromBalance < amount) throw "insufficient balance";
13
- evm.sstore(fromSlot, fromBalance - amount);
14
- const toSlot = balanceSlot(to);
15
- evm.sstore(toSlot, evm.sload(toSlot) + amount);
16
- log(abi.encode(from, to, amount), crypto.keccak256("Transfer(address,address,uint256)"));
17
- return 1;
18
- }