@eco-incorp/sauce 0.99.6 → 0.99.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -16
- package/actions/action-program.schema.json +480 -379
- package/actions/dist/abis.d.ts +19 -18
- package/actions/dist/abis.d.ts.map +1 -1
- package/actions/dist/abis.js +29 -29
- package/actions/dist/compile.d.ts +4 -4
- package/actions/dist/compile.d.ts.map +1 -1
- package/actions/dist/compile.js +3 -1
- package/actions/dist/compose.d.ts +63 -6
- package/actions/dist/compose.d.ts.map +1 -1
- package/actions/dist/compose.js +100 -16
- package/actions/dist/index.d.ts +1 -1
- package/actions/dist/index.d.ts.map +1 -1
- package/actions/dist/names.d.ts +88 -0
- package/actions/dist/names.d.ts.map +1 -0
- package/actions/dist/names.js +334 -0
- package/actions/dist/program.d.ts.map +1 -1
- package/actions/dist/program.js +115 -5
- package/actions/dist/registry.d.ts +10 -8
- package/actions/dist/registry.d.ts.map +1 -1
- package/actions/dist/registry.js +10 -8
- package/actions/dist/schema.d.ts.map +1 -1
- package/actions/dist/schema.js +99 -12
- package/actions/dist/semantics.d.ts +12 -2
- package/actions/dist/semantics.d.ts.map +1 -1
- package/actions/dist/semantics.js +78 -8
- package/actions/dist/spec.d.ts +30 -0
- package/actions/dist/spec.d.ts.map +1 -1
- package/actions/dist/spec.js +151 -138
- package/actions/dist/split-swap.d.ts +10 -5
- package/actions/dist/split-swap.d.ts.map +1 -1
- package/actions/dist/split-swap.js +48 -7
- package/actions/dist/to-quote.d.ts +14 -5
- package/actions/dist/to-quote.d.ts.map +1 -1
- package/actions/dist/to-quote.js +210 -244
- package/actions/dist/to-sauce.d.ts +18 -4
- package/actions/dist/to-sauce.d.ts.map +1 -1
- package/actions/dist/to-sauce.js +232 -205
- package/actions/dist/types.d.ts +245 -147
- package/actions/dist/types.d.ts.map +1 -1
- package/actions/dist/types.js +4 -0
- package/docs/README.md +38 -0
- package/docs/api/README.md +37 -23
- package/docs/api/compiler.md +53 -12
- package/docs/api/contracts.md +105 -0
- package/docs/api/coverage.md +96 -57
- package/docs/api/router.md +238 -0
- package/docs/api/routes.md +31 -22
- package/docs/concepts/architecture.md +26 -3
- package/docs/concepts/saucescript.md +35 -55
- package/docs/examples/README.md +21 -14
- package/docs/examples/action-program.ts +51 -35
- package/docs/examples/cross-chain-cascade.sauce.ts +4 -0
- package/docs/examples/cross-chain-intent.sauce.ts +2 -1
- package/docs/examples/evm-execution.ts +2 -4
- package/docs/examples/first-intent.ts +7 -2
- package/docs/examples/pot-router.ts +19 -0
- package/docs/examples/registry-names.ts +52 -0
- package/docs/examples/router-route.sauce.ts +31 -0
- package/docs/examples/router-route.ts +72 -0
- package/docs/examples/router-swap.sauce.ts +16 -0
- package/docs/examples/router-swap.ts +47 -0
- package/docs/examples/venue-where-deployed.sauce.ts +14 -0
- package/docs/guides/actions.md +230 -120
- package/docs/guides/builders-and-actions.md +20 -14
- package/docs/guides/cli.md +1446 -0
- package/docs/guides/compiling.md +19 -7
- package/docs/guides/intents.md +228 -15
- package/docs/guides/mcp.md +540 -0
- package/docs/guides/nested-intents.md +21 -6
- package/docs/guides/protocols-and-tokens.md +218 -39
- package/docs/guides/quick-start.md +5 -0
- package/docs/guides/solana.md +199 -52
- package/docs/guides/verification.md +2 -2
- package/mcp/dist/config.js +78 -0
- package/mcp/dist/config.js.map +1 -0
- package/mcp/dist/entry.js +112 -0
- package/mcp/dist/entry.js.map +1 -0
- package/mcp/dist/files.js +64 -0
- package/mcp/dist/files.js.map +1 -0
- package/mcp/dist/guard.js +262 -0
- package/mcp/dist/guard.js.map +1 -0
- package/mcp/dist/http.js +111 -0
- package/mcp/dist/http.js.map +1 -0
- package/mcp/dist/intents.js +579 -0
- package/mcp/dist/intents.js.map +1 -0
- package/mcp/dist/prompts.js +153 -0
- package/mcp/dist/prompts.js.map +1 -0
- package/mcp/dist/reach.js +98 -0
- package/mcp/dist/reach.js.map +1 -0
- package/mcp/dist/resources.js +154 -0
- package/mcp/dist/resources.js.map +1 -0
- package/mcp/dist/sdk.js +34 -0
- package/mcp/dist/sdk.js.map +1 -0
- package/mcp/dist/server.js +119 -0
- package/mcp/dist/server.js.map +1 -0
- package/mcp/dist/setup.js +189 -0
- package/mcp/dist/setup.js.map +1 -0
- package/mcp/dist/skilltools.js +520 -0
- package/mcp/dist/skilltools.js.map +1 -0
- package/mcp/dist/terms.js +93 -0
- package/mcp/dist/terms.js.map +1 -0
- package/mcp/dist/tools.js +1499 -0
- package/mcp/dist/tools.js.map +1 -0
- package/mcp/dist/wallets.js +168 -0
- package/mcp/dist/wallets.js.map +1 -0
- package/package.json +18 -13
- package/sdk/dist/artifacts/V12Deployments.json +3 -1
- package/sdk/dist/artifacts/V12EngineGate.json +1 -2
- package/sdk/dist/artifacts/V12KitchenProxy.json +1 -0
- package/sdk/dist/chains/canonical.d.ts +15 -24
- package/sdk/dist/chains/canonical.d.ts.map +1 -1
- package/sdk/dist/chains/canonical.js +18 -29
- package/sdk/dist/chains/canonical.js.map +1 -1
- package/sdk/dist/cli/actions.d.ts +29 -0
- package/sdk/dist/cli/actions.d.ts.map +1 -0
- package/sdk/dist/cli/actions.js +122 -0
- package/sdk/dist/cli/actions.js.map +1 -0
- package/sdk/dist/cli/args.d.ts +118 -0
- package/sdk/dist/cli/args.d.ts.map +1 -0
- package/sdk/dist/cli/args.js +354 -0
- package/sdk/dist/cli/args.js.map +1 -0
- package/sdk/dist/cli/assume.d.ts +51 -0
- package/sdk/dist/cli/assume.d.ts.map +1 -0
- package/sdk/dist/cli/assume.js +207 -0
- package/sdk/dist/cli/assume.js.map +1 -0
- package/sdk/dist/cli/chain.d.ts +173 -0
- package/sdk/dist/cli/chain.d.ts.map +1 -0
- package/sdk/dist/cli/chain.js +462 -0
- package/sdk/dist/cli/chain.js.map +1 -0
- package/sdk/dist/cli/commands.d.ts +226 -0
- package/sdk/dist/cli/commands.d.ts.map +1 -0
- package/sdk/dist/cli/commands.js +637 -0
- package/sdk/dist/cli/commands.js.map +1 -0
- package/sdk/dist/cli/create.d.ts +70 -0
- package/sdk/dist/cli/create.d.ts.map +1 -0
- package/sdk/dist/cli/create.js +483 -0
- package/sdk/dist/cli/create.js.map +1 -0
- package/sdk/dist/cli/diagnostics.d.ts +12 -0
- package/sdk/dist/cli/diagnostics.d.ts.map +1 -0
- package/sdk/dist/cli/diagnostics.js +225 -0
- package/sdk/dist/cli/diagnostics.js.map +1 -0
- package/sdk/dist/cli/effects.d.ts +71 -0
- package/sdk/dist/cli/effects.d.ts.map +1 -0
- package/sdk/dist/cli/effects.js +279 -0
- package/sdk/dist/cli/effects.js.map +1 -0
- package/sdk/dist/cli/fill.d.ts +83 -0
- package/sdk/dist/cli/fill.d.ts.map +1 -0
- package/sdk/dist/cli/fill.js +734 -0
- package/sdk/dist/cli/fill.js.map +1 -0
- package/sdk/dist/cli/funding.d.ts +126 -0
- package/sdk/dist/cli/funding.d.ts.map +1 -0
- package/sdk/dist/cli/funding.js +514 -0
- package/sdk/dist/cli/funding.js.map +1 -0
- package/sdk/dist/cli/globals.d.ts +16 -0
- package/sdk/dist/cli/globals.d.ts.map +1 -0
- package/sdk/dist/cli/globals.js +219 -0
- package/sdk/dist/cli/globals.js.map +1 -0
- package/sdk/dist/cli/init.d.ts +34 -0
- package/sdk/dist/cli/init.d.ts.map +1 -0
- package/sdk/dist/cli/init.js +181 -0
- package/sdk/dist/cli/init.js.map +1 -0
- package/sdk/dist/cli/inputs.d.ts +72 -0
- package/sdk/dist/cli/inputs.d.ts.map +1 -0
- package/sdk/dist/cli/inputs.js +152 -0
- package/sdk/dist/cli/inputs.js.map +1 -0
- package/sdk/dist/cli/inspect.d.ts +48 -0
- package/sdk/dist/cli/inspect.d.ts.map +1 -0
- package/sdk/dist/cli/inspect.js +536 -0
- package/sdk/dist/cli/inspect.js.map +1 -0
- package/sdk/dist/cli/intent-commands.d.ts +71 -0
- package/sdk/dist/cli/intent-commands.d.ts.map +1 -0
- package/sdk/dist/cli/intent-commands.js +698 -0
- package/sdk/dist/cli/intent-commands.js.map +1 -0
- package/sdk/dist/cli/intent-svm.d.ts +15 -0
- package/sdk/dist/cli/intent-svm.d.ts.map +1 -0
- package/sdk/dist/cli/intent-svm.js +222 -0
- package/sdk/dist/cli/intent-svm.js.map +1 -0
- package/sdk/dist/cli/intents.d.ts +43 -0
- package/sdk/dist/cli/intents.d.ts.map +1 -0
- package/sdk/dist/cli/intents.js +89 -0
- package/sdk/dist/cli/intents.js.map +1 -0
- package/sdk/dist/cli/interactive.d.ts +11 -0
- package/sdk/dist/cli/interactive.d.ts.map +1 -0
- package/sdk/dist/cli/interactive.js +161 -0
- package/sdk/dist/cli/interactive.js.map +1 -0
- package/sdk/dist/cli/lifecycle-svm.d.ts +109 -0
- package/sdk/dist/cli/lifecycle-svm.d.ts.map +1 -0
- package/sdk/dist/cli/lifecycle-svm.js +299 -0
- package/sdk/dist/cli/lifecycle-svm.js.map +1 -0
- package/sdk/dist/cli/lifecycle.d.ts +439 -0
- package/sdk/dist/cli/lifecycle.d.ts.map +1 -0
- package/sdk/dist/cli/lifecycle.js +1721 -0
- package/sdk/dist/cli/lifecycle.js.map +1 -0
- package/sdk/dist/cli/main.d.ts +3 -0
- package/sdk/dist/cli/main.d.ts.map +1 -0
- package/sdk/dist/cli/main.js +8 -0
- package/sdk/dist/cli/main.js.map +1 -0
- package/sdk/dist/cli/mcp.d.ts +66 -0
- package/sdk/dist/cli/mcp.d.ts.map +1 -0
- package/sdk/dist/cli/mcp.js +169 -0
- package/sdk/dist/cli/mcp.js.map +1 -0
- package/sdk/dist/cli/password.d.ts +54 -0
- package/sdk/dist/cli/password.d.ts.map +1 -0
- package/sdk/dist/cli/password.js +148 -0
- package/sdk/dist/cli/password.js.map +1 -0
- package/sdk/dist/cli/policy.d.ts +130 -0
- package/sdk/dist/cli/policy.d.ts.map +1 -0
- package/sdk/dist/cli/policy.js +702 -0
- package/sdk/dist/cli/policy.js.map +1 -0
- package/sdk/dist/cli/pools.d.ts +140 -0
- package/sdk/dist/cli/pools.d.ts.map +1 -0
- package/sdk/dist/cli/pools.js +658 -0
- package/sdk/dist/cli/pools.js.map +1 -0
- package/sdk/dist/cli/price.d.ts +74 -0
- package/sdk/dist/cli/price.d.ts.map +1 -0
- package/sdk/dist/cli/price.js +321 -0
- package/sdk/dist/cli/price.js.map +1 -0
- package/sdk/dist/cli/prompt.d.ts +30 -0
- package/sdk/dist/cli/prompt.d.ts.map +1 -0
- package/sdk/dist/cli/prompt.js +53 -0
- package/sdk/dist/cli/prompt.js.map +1 -0
- package/sdk/dist/cli/publish.d.ts +48 -0
- package/sdk/dist/cli/publish.d.ts.map +1 -0
- package/sdk/dist/cli/publish.js +480 -0
- package/sdk/dist/cli/publish.js.map +1 -0
- package/sdk/dist/cli/receipt.d.ts +35 -0
- package/sdk/dist/cli/receipt.d.ts.map +1 -0
- package/sdk/dist/cli/receipt.js +63 -0
- package/sdk/dist/cli/receipt.js.map +1 -0
- package/sdk/dist/cli/rehearse.d.ts +80 -0
- package/sdk/dist/cli/rehearse.d.ts.map +1 -0
- package/sdk/dist/cli/rehearse.js +265 -0
- package/sdk/dist/cli/rehearse.js.map +1 -0
- package/sdk/dist/cli/report.d.ts +69 -0
- package/sdk/dist/cli/report.d.ts.map +1 -0
- package/sdk/dist/cli/report.js +206 -0
- package/sdk/dist/cli/report.js.map +1 -0
- package/sdk/dist/cli/returned.d.ts +16 -0
- package/sdk/dist/cli/returned.d.ts.map +1 -0
- package/sdk/dist/cli/returned.js +111 -0
- package/sdk/dist/cli/returned.js.map +1 -0
- package/sdk/dist/cli/run.d.ts +40 -0
- package/sdk/dist/cli/run.d.ts.map +1 -0
- package/sdk/dist/cli/run.js +3163 -0
- package/sdk/dist/cli/run.js.map +1 -0
- package/sdk/dist/cli/signer.d.ts +72 -0
- package/sdk/dist/cli/signer.d.ts.map +1 -0
- package/sdk/dist/cli/signer.js +243 -0
- package/sdk/dist/cli/signer.js.map +1 -0
- package/sdk/dist/cli/simulate.d.ts +11 -0
- package/sdk/dist/cli/simulate.d.ts.map +1 -0
- package/sdk/dist/cli/simulate.js +246 -0
- package/sdk/dist/cli/simulate.js.map +1 -0
- package/sdk/dist/cli/skills.d.ts +77 -0
- package/sdk/dist/cli/skills.d.ts.map +1 -0
- package/sdk/dist/cli/skills.js +527 -0
- package/sdk/dist/cli/skills.js.map +1 -0
- package/sdk/dist/cli/solana.d.ts +184 -0
- package/sdk/dist/cli/solana.d.ts.map +1 -0
- package/sdk/dist/cli/solana.js +1370 -0
- package/sdk/dist/cli/solana.js.map +1 -0
- package/sdk/dist/cli/store.d.ts +60 -0
- package/sdk/dist/cli/store.d.ts.map +1 -0
- package/sdk/dist/cli/store.js +196 -0
- package/sdk/dist/cli/store.js.map +1 -0
- package/sdk/dist/cli/support.d.ts +144 -0
- package/sdk/dist/cli/support.d.ts.map +1 -0
- package/sdk/dist/cli/support.js +217 -0
- package/sdk/dist/cli/support.js.map +1 -0
- package/sdk/dist/cli/svm-effects.d.ts +50 -0
- package/sdk/dist/cli/svm-effects.d.ts.map +1 -0
- package/sdk/dist/cli/svm-effects.js +196 -0
- package/sdk/dist/cli/svm-effects.js.map +1 -0
- package/sdk/dist/cli/terminal.d.ts +42 -0
- package/sdk/dist/cli/terminal.d.ts.map +1 -0
- package/sdk/dist/cli/terminal.js +136 -0
- package/sdk/dist/cli/terminal.js.map +1 -0
- package/sdk/dist/cli/verify.d.ts +32 -0
- package/sdk/dist/cli/verify.d.ts.map +1 -0
- package/sdk/dist/cli/verify.js +185 -0
- package/sdk/dist/cli/verify.js.map +1 -0
- package/sdk/dist/cli/wallet-commands.d.ts +59 -0
- package/sdk/dist/cli/wallet-commands.d.ts.map +1 -0
- package/sdk/dist/cli/wallet-commands.js +222 -0
- package/sdk/dist/cli/wallet-commands.js.map +1 -0
- package/sdk/dist/cli/wallet-send.d.ts +38 -0
- package/sdk/dist/cli/wallet-send.d.ts.map +1 -0
- package/sdk/dist/cli/wallet-send.js +303 -0
- package/sdk/dist/cli/wallet-send.js.map +1 -0
- package/sdk/dist/cli/wallets.d.ts +79 -0
- package/sdk/dist/cli/wallets.d.ts.map +1 -0
- package/sdk/dist/cli/wallets.js +297 -0
- package/sdk/dist/cli/wallets.js.map +1 -0
- package/sdk/dist/deployments/index.d.ts +4 -62
- package/sdk/dist/deployments/index.d.ts.map +1 -1
- package/sdk/dist/deployments/index.js +4 -84
- package/sdk/dist/deployments/index.js.map +1 -1
- package/sdk/dist/deployments/pot.d.ts +17 -7
- package/sdk/dist/deployments/pot.d.ts.map +1 -1
- package/sdk/dist/deployments/pot.js +25 -10
- package/sdk/dist/deployments/pot.js.map +1 -1
- package/sdk/dist/deployments/releases.d.ts +36 -0
- package/sdk/dist/deployments/releases.d.ts.map +1 -0
- package/sdk/dist/deployments/releases.js +61 -0
- package/sdk/dist/deployments/releases.js.map +1 -0
- package/sdk/dist/deployments/releases.json +76 -0
- package/sdk/dist/deployments/v12-addresses.d.ts +13 -0
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
- package/sdk/dist/deployments/v12-addresses.js +16 -3
- package/sdk/dist/deployments/v12-addresses.js.map +1 -1
- package/sdk/dist/deposit/index.d.ts +6 -6
- package/sdk/dist/deposit/index.d.ts.map +1 -1
- package/sdk/dist/deposit/index.js +1 -1
- package/sdk/dist/deposit/index.js.map +1 -1
- package/sdk/dist/deposit/params.d.ts +4 -4
- package/sdk/dist/deposit/params.d.ts.map +1 -1
- package/sdk/dist/deposit/params.js +7 -4
- package/sdk/dist/deposit/params.js.map +1 -1
- package/sdk/dist/deposit/source.d.ts +3 -30
- package/sdk/dist/deposit/source.d.ts.map +1 -1
- package/sdk/dist/deposit/source.js +7 -83
- package/sdk/dist/deposit/source.js.map +1 -1
- package/sdk/dist/deposit/templates.d.ts +1 -2
- package/sdk/dist/deposit/templates.d.ts.map +1 -1
- package/sdk/dist/deposit/templates.js +10 -2
- package/sdk/dist/deposit/templates.js.map +1 -1
- package/sdk/dist/deposit/types.d.ts +14 -12
- package/sdk/dist/deposit/types.d.ts.map +1 -1
- package/sdk/dist/deposit/types.js +6 -0
- package/sdk/dist/deposit/types.js.map +1 -1
- package/sdk/dist/descriptors/accessors.d.ts +38 -35
- package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
- package/sdk/dist/descriptors/accessors.js +16 -0
- package/sdk/dist/descriptors/accessors.js.map +1 -1
- package/sdk/dist/descriptors/call.d.ts +66 -14
- package/sdk/dist/descriptors/call.d.ts.map +1 -1
- package/sdk/dist/descriptors/call.js +94 -13
- package/sdk/dist/descriptors/call.js.map +1 -1
- package/sdk/dist/descriptors/contracts.generated.d.ts +3393 -0
- package/sdk/dist/descriptors/contracts.generated.d.ts.map +1 -0
- package/sdk/dist/descriptors/contracts.generated.js +728 -0
- package/sdk/dist/descriptors/contracts.generated.js.map +1 -0
- package/sdk/dist/descriptors/derive.d.ts +20 -11
- package/sdk/dist/descriptors/derive.d.ts.map +1 -1
- package/sdk/dist/descriptors/derive.js +68 -30
- package/sdk/dist/descriptors/derive.js.map +1 -1
- package/sdk/dist/descriptors/index.d.ts +6 -7
- package/sdk/dist/descriptors/index.d.ts.map +1 -1
- package/sdk/dist/descriptors/index.js +2 -2
- package/sdk/dist/descriptors/index.js.map +1 -1
- package/sdk/dist/descriptors/links.d.ts +23 -214
- package/sdk/dist/descriptors/links.d.ts.map +1 -1
- package/sdk/dist/descriptors/links.js +1 -232
- package/sdk/dist/descriptors/links.js.map +1 -1
- package/sdk/dist/descriptors/query.d.ts +1 -1
- package/sdk/dist/descriptors/query.d.ts.map +1 -1
- package/sdk/dist/descriptors/query.js +1 -1
- package/sdk/dist/descriptors/query.js.map +1 -1
- package/sdk/dist/descriptors/registry.d.ts +2 -5
- package/sdk/dist/descriptors/registry.d.ts.map +1 -1
- package/sdk/dist/descriptors/registry.js +11 -66
- package/sdk/dist/descriptors/registry.js.map +1 -1
- package/sdk/dist/embedded/resolve.d.ts +4 -4
- package/sdk/dist/embedded/resolve.d.ts.map +1 -1
- package/sdk/dist/embedded/resolve.js +12 -8
- package/sdk/dist/embedded/resolve.js.map +1 -1
- package/sdk/dist/embedded/skills.generated.d.ts +1 -1
- package/sdk/dist/embedded/skills.generated.d.ts.map +1 -1
- package/sdk/dist/embedded/skills.generated.js +137 -136
- package/sdk/dist/embedded/skills.generated.js.map +1 -1
- package/sdk/dist/embedded/sources.generated.d.ts.map +1 -1
- package/sdk/dist/embedded/sources.generated.js +40 -6
- package/sdk/dist/embedded/sources.generated.js.map +1 -1
- package/sdk/dist/evm/engine.d.ts +813 -10
- package/sdk/dist/evm/engine.d.ts.map +1 -1
- package/sdk/dist/evm/engine.js +127 -8
- package/sdk/dist/evm/engine.js.map +1 -1
- package/sdk/dist/index.d.ts +3 -2
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +6 -2
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/price.d.ts +40 -0
- package/sdk/dist/price.d.ts.map +1 -0
- package/sdk/dist/price.js +101 -0
- package/sdk/dist/price.js.map +1 -0
- package/sdk/dist/protocols/aerodrome/abis.d.ts +76 -0
- package/sdk/dist/protocols/aerodrome/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/aerodrome/abis.js +61 -0
- package/sdk/dist/protocols/aerodrome/abis.js.map +1 -1
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +70 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js +54 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -1
- package/sdk/dist/protocols/camelot/abis.d.ts +178 -0
- package/sdk/dist/protocols/camelot/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/camelot/abis.js +139 -0
- package/sdk/dist/protocols/camelot/abis.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/abis.d.ts +792 -50
- package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/eco-routes/abis.js +1058 -49
- package/sdk/dist/protocols/eco-routes/abis.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +44 -61
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -1
- package/sdk/dist/protocols/eco-routes/addresses.generated.js +45 -62
- package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/lookup.d.ts +10 -0
- package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -1
- package/sdk/dist/protocols/eco-routes/lookup.js +16 -0
- package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -1
- package/sdk/dist/protocols/maverick/abis.d.ts +77 -0
- package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/maverick/abis.js +58 -0
- package/sdk/dist/protocols/maverick/abis.js.map +1 -1
- package/sdk/dist/protocols/maverick/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/maverick/addresses.js +4 -0
- package/sdk/dist/protocols/maverick/addresses.js.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts +52 -0
- package/sdk/dist/protocols/pancakeswap-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v2/abis.js +43 -0
- package/sdk/dist/protocols/pancakeswap-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v3/abis.js +56 -0
- package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/permit2/abis.d.ts +113 -0
- package/sdk/dist/protocols/permit2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/permit2/abis.js +63 -0
- package/sdk/dist/protocols/permit2/abis.js.map +1 -1
- package/sdk/dist/protocols/quickswap/abis.d.ts +148 -0
- package/sdk/dist/protocols/quickswap/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/quickswap/abis.js +119 -0
- package/sdk/dist/protocols/quickswap/abis.js.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/abis.d.ts +52 -0
- package/sdk/dist/protocols/sushiswap-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/abis.js +42 -0
- package/sdk/dist/protocols/sushiswap-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/synthra-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/synthra-v3/abis.js +55 -0
- package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/trader-joe/abis.d.ts +133 -0
- package/sdk/dist/protocols/trader-joe/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/trader-joe/abis.js +101 -0
- package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
- package/sdk/dist/protocols/trader-joe/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/trader-joe/addresses.js +5 -0
- package/sdk/dist/protocols/trader-joe/addresses.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/abis.d.ts +52 -0
- package/sdk/dist/protocols/uniswap-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/abis.js +44 -0
- package/sdk/dist/protocols/uniswap-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.js +55 -0
- package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts +247 -0
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.js +167 -0
- package/sdk/dist/protocols/uniswap-v4/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/addresses.js +50 -0
- package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts +73 -0
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/unitflow-v3/abis.js +56 -0
- package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/velodrome/abis.d.ts +76 -0
- package/sdk/dist/protocols/velodrome/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/velodrome/abis.js +61 -0
- package/sdk/dist/protocols/velodrome/abis.js.map +1 -1
- package/sdk/dist/recipes/cctp-split.sauce.ts +2 -2
- package/sdk/dist/recipes/plain-transfer.sauce.ts +2 -2
- package/sdk/dist/routes/accessor-index.d.ts +2 -2
- package/sdk/dist/routes/accessor-index.d.ts.map +1 -1
- package/sdk/dist/routes/accessor-index.js +4 -3
- package/sdk/dist/routes/accessor-index.js.map +1 -1
- package/sdk/dist/routes/ambient.d.ts +5 -0
- package/sdk/dist/routes/ambient.d.ts.map +1 -1
- package/sdk/dist/routes/ambient.js +20 -0
- package/sdk/dist/routes/ambient.js.map +1 -1
- package/sdk/dist/routes/ast-walk.d.ts +17 -3
- package/sdk/dist/routes/ast-walk.d.ts.map +1 -1
- package/sdk/dist/routes/ast-walk.js +24 -2
- package/sdk/dist/routes/ast-walk.js.map +1 -1
- package/sdk/dist/routes/available.d.ts +43 -0
- package/sdk/dist/routes/available.d.ts.map +1 -0
- package/sdk/dist/routes/available.js +230 -0
- package/sdk/dist/routes/available.js.map +1 -0
- package/sdk/dist/routes/builtins.generated.d.ts +180 -0
- package/sdk/dist/routes/builtins.generated.d.ts.map +1 -0
- package/sdk/dist/routes/builtins.generated.js +2 -0
- package/sdk/dist/routes/builtins.generated.js.map +1 -0
- package/sdk/dist/routes/chain-exports.generated.d.ts +13 -8
- package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -1
- package/sdk/dist/routes/chain-exports.generated.js.map +1 -1
- package/sdk/dist/routes/closure.d.ts.map +1 -1
- package/sdk/dist/routes/closure.js +13 -26
- package/sdk/dist/routes/closure.js.map +1 -1
- package/sdk/dist/routes/composed.d.ts.map +1 -1
- package/sdk/dist/routes/composed.js +20 -8
- package/sdk/dist/routes/composed.js.map +1 -1
- package/sdk/dist/routes/encode.d.ts +17 -0
- package/sdk/dist/routes/encode.d.ts.map +1 -1
- package/sdk/dist/routes/encode.js +14 -11
- package/sdk/dist/routes/encode.js.map +1 -1
- package/sdk/dist/routes/entry.d.ts +76 -0
- package/sdk/dist/routes/entry.d.ts.map +1 -0
- package/sdk/dist/routes/entry.js +478 -0
- package/sdk/dist/routes/entry.js.map +1 -0
- package/sdk/dist/routes/index.d.ts +19 -12
- package/sdk/dist/routes/index.d.ts.map +1 -1
- package/sdk/dist/routes/index.js +11 -8
- package/sdk/dist/routes/index.js.map +1 -1
- package/sdk/dist/routes/intent-body.d.ts +97 -0
- package/sdk/dist/routes/intent-body.d.ts.map +1 -0
- package/sdk/dist/routes/intent-body.js +441 -0
- package/sdk/dist/routes/intent-body.js.map +1 -0
- package/sdk/dist/routes/intent-dsl.d.ts +21 -6
- package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
- package/sdk/dist/routes/intent-dsl.js +34 -17
- package/sdk/dist/routes/intent-dsl.js.map +1 -1
- package/sdk/dist/routes/intent-sugar.d.ts +77 -4
- package/sdk/dist/routes/intent-sugar.d.ts.map +1 -1
- package/sdk/dist/routes/intent-sugar.js +318 -129
- package/sdk/dist/routes/intent-sugar.js.map +1 -1
- package/sdk/dist/routes/intent.d.ts +13 -1
- package/sdk/dist/routes/intent.d.ts.map +1 -1
- package/sdk/dist/routes/intent.js +37 -1
- package/sdk/dist/routes/intent.js.map +1 -1
- package/sdk/dist/routes/nest.d.ts +3 -2
- package/sdk/dist/routes/nest.d.ts.map +1 -1
- package/sdk/dist/routes/nest.js +5 -3
- package/sdk/dist/routes/nest.js.map +1 -1
- package/sdk/dist/routes/parse.d.ts +6 -0
- package/sdk/dist/routes/parse.d.ts.map +1 -0
- package/sdk/dist/routes/parse.js +39 -0
- package/sdk/dist/routes/parse.js.map +1 -0
- package/sdk/dist/routes/portal.d.ts +258 -4
- package/sdk/dist/routes/portal.d.ts.map +1 -1
- package/sdk/dist/routes/portal.js +588 -9
- package/sdk/dist/routes/portal.js.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts +71 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.js +178 -54
- package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
- package/sdk/dist/routes/rs-compile.d.ts +25 -22
- package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
- package/sdk/dist/routes/rs-compile.js +55 -49
- package/sdk/dist/routes/rs-compile.js.map +1 -1
- package/sdk/dist/routes/sauce-calls.d.ts +26 -12
- package/sdk/dist/routes/sauce-calls.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-calls.js +16 -23
- package/sdk/dist/routes/sauce-calls.js.map +1 -1
- package/sdk/dist/routes/sauce-route.d.ts +74 -7
- package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-route.js +225 -75
- package/sdk/dist/routes/sauce-route.js.map +1 -1
- package/sdk/dist/routes/source-globals.d.ts +107 -0
- package/sdk/dist/routes/source-globals.d.ts.map +1 -0
- package/sdk/dist/routes/source-globals.generated.d.ts +5601 -933
- package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
- package/sdk/dist/routes/source-globals.generated.js +3 -4
- package/sdk/dist/routes/source-globals.generated.js.map +1 -1
- package/sdk/dist/routes/source-globals.js +175 -0
- package/sdk/dist/routes/source-globals.js.map +1 -0
- package/sdk/dist/routes/stock-tokens.d.ts +89 -0
- package/sdk/dist/routes/stock-tokens.d.ts.map +1 -0
- package/sdk/dist/routes/stock-tokens.generated.d.ts +7 -0
- package/sdk/dist/routes/stock-tokens.generated.d.ts.map +1 -0
- package/sdk/dist/routes/stock-tokens.generated.js +3664 -0
- package/sdk/dist/routes/stock-tokens.generated.js.map +1 -0
- package/sdk/dist/routes/stock-tokens.js +89 -0
- package/sdk/dist/routes/stock-tokens.js.map +1 -0
- package/sdk/dist/routes/token-registry.d.ts +68 -8
- package/sdk/dist/routes/token-registry.d.ts.map +1 -1
- package/sdk/dist/routes/token-registry.js +218 -32
- package/sdk/dist/routes/token-registry.js.map +1 -1
- package/sdk/dist/routes/token-rewrite.d.ts +1 -1
- package/sdk/dist/routes/token-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/token-rewrite.js +5 -9
- package/sdk/dist/routes/token-rewrite.js.map +1 -1
- package/sdk/dist/routes/unknown-global.d.ts +32 -0
- package/sdk/dist/routes/unknown-global.d.ts.map +1 -0
- package/sdk/dist/routes/unknown-global.js +106 -0
- package/sdk/dist/routes/unknown-global.js.map +1 -0
- package/sdk/dist/routes/vault.d.ts +38 -8
- package/sdk/dist/routes/vault.d.ts.map +1 -1
- package/sdk/dist/routes/vault.js +47 -8
- package/sdk/dist/routes/vault.js.map +1 -1
- package/sdk/dist/sauce-script/builtins.d.ts +309 -0
- package/sdk/dist/sauce-script/declarations.d.ts +3 -0
- package/sdk/dist/sauce-script/declarations.d.ts.map +1 -0
- package/sdk/dist/sauce-script/declarations.js +229 -0
- package/sdk/dist/sauce-script/declarations.js.map +1 -0
- package/sdk/dist/sauce-script/index.d.ts +2714 -0
- package/sdk/dist/sauce-script/ts-plugin.cjs +85 -0
- package/sdk/dist/skills/loader.d.ts.map +1 -1
- package/sdk/dist/skills/loader.js +4 -3
- package/sdk/dist/skills/loader.js.map +1 -1
- package/sdk/dist/std/router/balancer-v2-vault.abi.json +78 -0
- package/sdk/dist/std/router/curve-cryptoswap.abi.json +29 -0
- package/sdk/dist/std/router/curve-stableswap.abi.json +29 -0
- package/sdk/dist/std/router/dodo-v2-pool.abi.json +39 -0
- package/sdk/dist/std/router/lb-pair.abi.json +55 -0
- package/sdk/dist/std/router/package.json +7 -0
- package/sdk/dist/std/router/router.evm.js +567 -0
- package/sdk/dist/std/router/sauce-router.abi.json +202 -0
- package/sdk/dist/std/router/uniswap-v2-pair.abi.json +49 -0
- package/sdk/dist/std/router/woo-pp-v2.abi.json +42 -0
- package/sdk/dist/std/token/permit2.abi.json +226 -0
- package/sdk/dist/std/token/token.evm.js +73 -0
- package/sdk/dist/std/token/token.svm.js +194 -41
- package/sdk/dist/svm/client.d.ts +62 -15
- package/sdk/dist/svm/client.d.ts.map +1 -1
- package/sdk/dist/svm/client.js +103 -42
- package/sdk/dist/svm/client.js.map +1 -1
- package/sdk/dist/svm/engine.d.ts +66 -5
- package/sdk/dist/svm/engine.d.ts.map +1 -1
- package/sdk/dist/svm/engine.js +73 -5
- package/sdk/dist/svm/engine.js.map +1 -1
- package/sdk/dist/svm/index.d.ts +2 -0
- package/sdk/dist/svm/index.d.ts.map +1 -1
- package/sdk/dist/svm/index.js +2 -0
- package/sdk/dist/svm/index.js.map +1 -1
- package/sdk/dist/svm/instructions.d.ts +72 -1
- package/sdk/dist/svm/instructions.d.ts.map +1 -1
- package/sdk/dist/svm/instructions.js +81 -2
- package/sdk/dist/svm/instructions.js.map +1 -1
- package/sdk/dist/svm/kitchen.d.ts +20 -1
- package/sdk/dist/svm/kitchen.d.ts.map +1 -1
- package/sdk/dist/svm/kitchen.js +47 -1
- package/sdk/dist/svm/kitchen.js.map +1 -1
- package/sdk/dist/svm/portal.d.ts +250 -0
- package/sdk/dist/svm/portal.d.ts.map +1 -0
- package/sdk/dist/svm/portal.js +462 -0
- package/sdk/dist/svm/portal.js.map +1 -0
- package/sdk/dist/svm/send.d.ts +18 -2
- package/sdk/dist/svm/send.d.ts.map +1 -1
- package/sdk/dist/svm/send.js +28 -3
- package/sdk/dist/svm/send.js.map +1 -1
- package/sdk/dist/svm/token-accounts.d.ts +49 -0
- package/sdk/dist/svm/token-accounts.d.ts.map +1 -0
- package/sdk/dist/svm/token-accounts.js +58 -0
- package/sdk/dist/svm/token-accounts.js.map +1 -0
- package/sdk/dist/svm/token-extensions.d.ts +18 -7
- package/sdk/dist/svm/token-extensions.d.ts.map +1 -1
- package/sdk/dist/svm/token-extensions.js +58 -5
- package/sdk/dist/svm/token-extensions.js.map +1 -1
- package/sdk/dist/token/evm.js +1 -1
- package/sdk/dist/token/index.d.ts +1 -1
- package/sdk/dist/token/index.js +1 -1
- package/sdk/dist/token/params.js +1 -1
- package/sdk/dist/token/source.js +3 -3
- package/sdk/dist/token/source.js.map +1 -1
- package/sdk/dist/token/types.d.ts +2 -2
- package/sdk/dist/token/types.js +2 -2
- package/sdk/src/protocols/aerodrome/AerodromePoolABI.json +105 -0
- package/sdk/src/protocols/aerodrome/abis.ts +62 -0
- package/sdk/src/protocols/aerodrome-slipstream/AerodromeSlipstreamPoolABI.json +96 -0
- package/sdk/src/protocols/aerodrome-slipstream/abis.ts +55 -0
- package/sdk/src/protocols/camelot/CamelotV2FactoryABI.json +25 -0
- package/sdk/src/protocols/camelot/CamelotV2PairABI.json +109 -0
- package/sdk/src/protocols/camelot/CamelotV3FactoryABI.json +25 -0
- package/sdk/src/protocols/camelot/CamelotV3PoolABI.json +92 -0
- package/sdk/src/protocols/camelot/abis.ts +143 -0
- package/sdk/src/protocols/eco-routes/PortalABI.json +1448 -0
- package/sdk/src/protocols/eco-routes/ProverABI.json +162 -0
- package/sdk/src/protocols/eco-routes/abis.ts +1060 -51
- package/sdk/src/protocols/eco-routes/addresses.generated.ts +45 -62
- package/sdk/src/protocols/eco-routes/lookup.ts +18 -0
- package/sdk/src/protocols/maverick/MaverickV2PoolABI.json +107 -0
- package/sdk/src/protocols/maverick/abis.ts +59 -0
- package/sdk/src/protocols/maverick/addresses.ts +4 -0
- package/sdk/src/protocols/pancakeswap-v2/PancakeSwapV2PairABI.json +72 -0
- package/sdk/src/protocols/pancakeswap-v2/abis.ts +44 -0
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3PoolABI.json +100 -0
- package/sdk/src/protocols/pancakeswap-v3/abis.ts +57 -0
- package/sdk/src/protocols/permit2/Permit2ABI.json +154 -0
- package/sdk/src/protocols/permit2/abis.ts +63 -0
- package/sdk/src/protocols/quickswap/QuickSwapV2FactoryABI.json +25 -0
- package/sdk/src/protocols/quickswap/QuickSwapV2PairABI.json +72 -0
- package/sdk/src/protocols/quickswap/QuickSwapV3FactoryABI.json +25 -0
- package/sdk/src/protocols/quickswap/QuickSwapV3PoolABI.json +88 -0
- package/sdk/src/protocols/quickswap/abis.ts +123 -0
- package/sdk/src/protocols/sushiswap-v2/SushiSwapV2PairABI.json +72 -0
- package/sdk/src/protocols/sushiswap-v2/abis.ts +43 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3PoolABI.json +100 -0
- package/sdk/src/protocols/synthra-v3/abis.ts +56 -0
- package/sdk/src/protocols/trader-joe/LBPairABI.json +185 -0
- package/sdk/src/protocols/trader-joe/abis.ts +102 -0
- package/sdk/src/protocols/trader-joe/addresses.ts +5 -0
- package/sdk/src/protocols/uniswap-v2/UniswapV2PairABI.json +72 -0
- package/sdk/src/protocols/uniswap-v2/abis.ts +45 -0
- package/sdk/src/protocols/uniswap-v3/UniswapV3PoolABI.json +100 -0
- package/sdk/src/protocols/uniswap-v3/abis.ts +56 -0
- package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +38 -0
- package/sdk/src/protocols/uniswap-v4/UniswapV4StateViewABI.json +307 -0
- package/sdk/src/protocols/uniswap-v4/abis.ts +168 -0
- package/sdk/src/protocols/uniswap-v4/addresses.ts +50 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3PoolABI.json +100 -0
- package/sdk/src/protocols/unitflow-v3/abis.ts +57 -0
- package/sdk/src/protocols/velodrome/VelodromePoolABI.json +105 -0
- package/sdk/src/protocols/velodrome/abis.ts +62 -0
- package/skills/sauce-actions/SKILL.md +166 -0
- package/skills/sauce-actions/examples/swap-and-supply.json +24 -0
- package/skills/sauce-actions/examples/swap-by-key.json +15 -0
- package/skills/sauce-actions/references/actions.md +731 -0
- package/skills/sauce-chains/SKILL.md +137 -0
- package/skills/sauce-chains/examples/chains.sauce.ts +25 -0
- package/skills/sauce-chains/references/arbitrum.md +158 -0
- package/skills/sauce-chains/references/arc.md +107 -0
- package/skills/sauce-chains/references/aurora.md +33 -0
- package/skills/sauce-chains/references/avalanche.md +106 -0
- package/skills/sauce-chains/references/base-stocks.md +77 -0
- package/skills/sauce-chains/references/base.md +141 -0
- package/skills/sauce-chains/references/berachain.md +33 -0
- package/skills/sauce-chains/references/blast.md +60 -0
- package/skills/sauce-chains/references/boba.md +33 -0
- package/skills/sauce-chains/references/bsc.md +97 -0
- package/skills/sauce-chains/references/celo.md +57 -0
- package/skills/sauce-chains/references/core.md +33 -0
- package/skills/sauce-chains/references/cronos.md +33 -0
- package/skills/sauce-chains/references/ethereum-stocks.md +1741 -0
- package/skills/sauce-chains/references/ethereum.md +255 -0
- package/skills/sauce-chains/references/evmos.md +33 -0
- package/skills/sauce-chains/references/fantom.md +61 -0
- package/skills/sauce-chains/references/fuse.md +33 -0
- package/skills/sauce-chains/references/gnosis.md +57 -0
- package/skills/sauce-chains/references/index.md +58 -0
- package/skills/sauce-chains/references/ink.md +55 -0
- package/skills/sauce-chains/references/kava.md +33 -0
- package/skills/sauce-chains/references/klaytn.md +33 -0
- package/skills/sauce-chains/references/linea.md +65 -0
- package/skills/sauce-chains/references/manta.md +33 -0
- package/skills/sauce-chains/references/mantle.md +33 -0
- package/skills/sauce-chains/references/metis.md +54 -0
- package/skills/sauce-chains/references/mode.md +55 -0
- package/skills/sauce-chains/references/monad.md +79 -0
- package/skills/sauce-chains/references/moonbeam.md +33 -0
- package/skills/sauce-chains/references/opbnb.md +55 -0
- package/skills/sauce-chains/references/optimism.md +123 -0
- package/skills/sauce-chains/references/plasma.md +35 -0
- package/skills/sauce-chains/references/polygon.md +123 -0
- package/skills/sauce-chains/references/pulsechain.md +33 -0
- package/skills/sauce-chains/references/ronin.md +35 -0
- package/skills/sauce-chains/references/scroll.md +62 -0
- package/skills/sauce-chains/references/sei.md +55 -0
- package/skills/sauce-chains/references/solana-stocks.md +1812 -0
- package/skills/sauce-chains/references/solana.md +56 -0
- package/skills/sauce-chains/references/sonic.md +57 -0
- package/skills/sauce-chains/references/unichain.md +61 -0
- package/skills/sauce-chains/references/zetachain.md +33 -0
- package/skills/sauce-chains/references/zksync.md +59 -0
- package/skills/sauce-chains/references/zora.md +57 -0
- package/skills/sauce-cli/SKILL.md +366 -0
- package/skills/sauce-cli/examples/pay.sauce.ts +23 -0
- package/skills/sauce-cli/examples/split.sauce.ts +30 -0
- package/skills/sauce-distributed-swap/SKILL.md +392 -0
- package/skills/sauce-distributed-swap/examples/distributed-swap.mts +251 -0
- package/skills/sauce-distributed-swap/examples/distributed-swap.sauce.ts +115 -0
- package/skills/sauce-examples/SKILL.md +96 -0
- package/skills/sauce-globals/SKILL.md +213 -0
- package/skills/sauce-globals/examples/globals.mts +111 -0
- package/skills/sauce-globals/examples/globals.sauce.ts +47 -0
- package/skills/sauce-globals/references/chains.md +53 -0
- package/skills/sauce-globals/references/protocols.md +405 -0
- package/skills/sauce-globals/references/stocks.md +3635 -0
- package/skills/sauce-globals/references/tokens.md +53 -0
- package/skills/sauce-intents/SKILL.md +505 -0
- package/skills/sauce-intents/examples/cross-chain.sauce.ts +37 -0
- package/skills/sauce-intents/examples/fund-by-transfer.sauce.ts +54 -0
- package/skills/sauce-intents/examples/intents.mts +343 -0
- package/skills/sauce-intents/examples/swap-on-base.sauce.ts +135 -0
- package/skills/sauce-intents/references/portal.md +77 -0
- package/skills/sauce-overview/SKILL.md +161 -0
- package/skills/sauce-protocols/SKILL.md +118 -0
- package/skills/sauce-protocols/examples/protocols.mts +77 -0
- package/skills/sauce-protocols/examples/protocols.sauce.ts +27 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/aave-v2.md +35 -17
- package/skills/sauce-protocols/references/aave-v3.md +144 -0
- package/skills/sauce-protocols/references/aave-v4.md +50 -0
- package/skills/sauce-protocols/references/abracadabra.md +72 -0
- package/skills/sauce-protocols/references/across.md +73 -0
- package/skills/sauce-protocols/references/aerodrome-slipstream.md +50 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/aerodrome.md +43 -24
- package/skills/sauce-protocols/references/aevo.md +49 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/alchemix.md +10 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/ambient.md +14 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/arbitrum-bridge.md +11 -14
- package/{sdk/src/skills → skills/sauce-protocols/references}/arrakis.md +10 -26
- package/skills/sauce-protocols/references/axelar.md +56 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/balancer-v2.md +13 -29
- package/{sdk/src/skills → skills/sauce-protocols/references}/base-bridge.md +11 -16
- package/{sdk/src/skills → skills/sauce-protocols/references}/baseswap.md +12 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/beefy.md +10 -30
- package/{sdk/src/skills → skills/sauce-protocols/references}/benqi.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/camelot.md +13 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/cbeth.md +10 -22
- package/skills/sauce-protocols/references/cctp.md +47 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/celer.md +11 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/chainlink-ccip.md +11 -21
- package/skills/sauce-protocols/references/chainlink.md +47 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/circle-gateway.md +12 -38
- package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v2.md +11 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/compound-v3.md +43 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/connext.md +11 -15
- package/{sdk/src/skills → skills/sauce-protocols/references}/convex.md +10 -28
- package/{sdk/src/skills → skills/sauce-protocols/references}/cowswap.md +12 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/crvusd.md +10 -19
- package/skills/sauce-protocols/references/curve.md +98 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/debridge.md +11 -33
- package/{sdk/src/skills → skills/sauce-protocols/references}/dodo.md +13 -18
- package/skills/sauce-protocols/references/eigenlayer.md +48 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/ens.md +10 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/erc20.md +10 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/erc3156.md +10 -13
- package/{sdk/src/skills → skills/sauce-protocols/references}/erc4626.md +11 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/ethena.md +10 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/etherfi.md +10 -32
- package/{sdk/src/skills → skills/sauce-protocols/references}/euler-v2.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/fenix.md +12 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/fluid.md +11 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/frax-ether.md +10 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/frax.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/gains-network.md +11 -28
- package/skills/sauce-protocols/references/gamma.md +57 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/gelato.md +12 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/gho.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v1.md +12 -34
- package/{sdk/src/skills → skills/sauce-protocols/references}/gmx-v2.md +15 -28
- package/skills/sauce-protocols/references/harvest.md +41 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/hegic.md +10 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/hop.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/hyperlane.md +11 -21
- package/skills/sauce-protocols/references/index.md +355 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/instadapp.md +10 -18
- package/skills/sauce-protocols/references/kelp.md +46 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/kim.md +12 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/kyberswap-aggregator.md +12 -35
- package/skills/sauce-protocols/references/kyberswap.md +72 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/layerbank.md +11 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/layerzero.md +11 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/level-finance.md +10 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/lido.md +10 -28
- package/{sdk/src/skills → skills/sauce-protocols/references}/lifi.md +11 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/linea-bridge.md +11 -14
- package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v1.md +10 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/liquity-v2.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/lynex.md +12 -18
- package/skills/sauce-protocols/references/maker.md +57 -0
- package/skills/sauce-protocols/references/mantle-meth.md +43 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/maverick.md +13 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/moonwell.md +11 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/morpho-blue.md +44 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/mux-protocol.md +10 -30
- package/skills/sauce-protocols/references/olympus.md +39 -0
- package/skills/sauce-protocols/references/oneinch.md +81 -0
- package/skills/sauce-protocols/references/openocean.md +69 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/optimism-bridge.md +11 -16
- package/{sdk/src/skills → skills/sauce-protocols/references}/opyn.md +10 -21
- package/{sdk/src/skills → skills/sauce-protocols/references}/pancakeswap-v2.md +39 -41
- package/skills/sauce-protocols/references/pancakeswap-v3.md +72 -0
- package/skills/sauce-protocols/references/paraswap.md +39 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/pendle.md +47 -29
- package/skills/sauce-protocols/references/permit2.md +101 -0
- package/skills/sauce-protocols/references/perpetual-protocol.md +53 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/polygon-bridge.md +11 -17
- package/{sdk/src/skills → skills/sauce-protocols/references}/premia.md +10 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/puffer.md +10 -21
- package/skills/sauce-protocols/references/pyth.md +45 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/quickswap.md +13 -27
- package/{sdk/src/skills → skills/sauce-protocols/references}/radiant.md +11 -15
- package/{sdk/src/skills → skills/sauce-protocols/references}/ramses.md +12 -18
- package/skills/sauce-protocols/references/reflexer.md +52 -0
- package/skills/sauce-protocols/references/registry/aave-v2.md +43 -0
- package/skills/sauce-protocols/references/registry/aave-v3.md +62 -0
- package/skills/sauce-protocols/references/registry/aave-v4.md +80 -0
- package/skills/sauce-protocols/references/registry/abracadabra.md +54 -0
- package/skills/sauce-protocols/references/registry/across.md +57 -0
- package/skills/sauce-protocols/references/registry/aerodrome-slipstream.md +72 -0
- package/skills/sauce-protocols/references/registry/aerodrome.md +58 -0
- package/skills/sauce-protocols/references/registry/aevo.md +39 -0
- package/skills/sauce-protocols/references/registry/alchemix.md +46 -0
- package/skills/sauce-protocols/references/registry/ambient.md +40 -0
- package/skills/sauce-protocols/references/registry/arbitrum-bridge.md +40 -0
- package/skills/sauce-protocols/references/registry/arrakis.md +49 -0
- package/skills/sauce-protocols/references/registry/axelar.md +65 -0
- package/skills/sauce-protocols/references/registry/balancer-v2.md +50 -0
- package/skills/sauce-protocols/references/registry/base-bridge.md +42 -0
- package/skills/sauce-protocols/references/registry/baseswap.md +40 -0
- package/skills/sauce-protocols/references/registry/beefy.md +51 -0
- package/skills/sauce-protocols/references/registry/benqi.md +49 -0
- package/skills/sauce-protocols/references/registry/camelot.md +82 -0
- package/skills/sauce-protocols/references/registry/cbeth.md +43 -0
- package/skills/sauce-protocols/references/registry/cctp.md +48 -0
- package/skills/sauce-protocols/references/registry/celer.md +44 -0
- package/skills/sauce-protocols/references/registry/chainlink-ccip.md +45 -0
- package/skills/sauce-protocols/references/registry/chainlink.md +49 -0
- package/skills/sauce-protocols/references/registry/circle-gateway.md +70 -0
- package/skills/sauce-protocols/references/registry/compound-v2.md +53 -0
- package/skills/sauce-protocols/references/registry/compound-v3.md +52 -0
- package/skills/sauce-protocols/references/registry/connext.md +41 -0
- package/skills/sauce-protocols/references/registry/convex.md +51 -0
- package/skills/sauce-protocols/references/registry/cowswap.md +40 -0
- package/skills/sauce-protocols/references/registry/crvusd.md +40 -0
- package/skills/sauce-protocols/references/registry/curve.md +81 -0
- package/skills/sauce-protocols/references/registry/debridge.md +59 -0
- package/skills/sauce-protocols/references/registry/dodo.md +39 -0
- package/skills/sauce-protocols/references/registry/eco-routes.md +65 -0
- package/skills/sauce-protocols/references/registry/eigenlayer.md +58 -0
- package/skills/sauce-protocols/references/registry/ens.md +49 -0
- package/skills/sauce-protocols/references/registry/erc20.md +44 -0
- package/skills/sauce-protocols/references/registry/erc3156.md +38 -0
- package/skills/sauce-protocols/references/registry/erc4626.md +51 -0
- package/skills/sauce-protocols/references/registry/ethena.md +50 -0
- package/skills/sauce-protocols/references/registry/etherfi.md +57 -0
- package/skills/sauce-protocols/references/registry/euler-v2.md +49 -0
- package/skills/sauce-protocols/references/registry/fenix.md +39 -0
- package/skills/sauce-protocols/references/registry/fluid.md +48 -0
- package/skills/sauce-protocols/references/registry/frax-ether.md +49 -0
- package/skills/sauce-protocols/references/registry/frax.md +40 -0
- package/skills/sauce-protocols/references/registry/gains-network.md +43 -0
- package/skills/sauce-protocols/references/registry/gamma.md +56 -0
- package/skills/sauce-protocols/references/registry/gelato.md +45 -0
- package/skills/sauce-protocols/references/registry/gho.md +40 -0
- package/skills/sauce-protocols/references/registry/gmx-v1.md +59 -0
- package/skills/sauce-protocols/references/registry/gmx-v2.md +41 -0
- package/skills/sauce-protocols/references/registry/harvest.md +44 -0
- package/skills/sauce-protocols/references/registry/hegic.md +39 -0
- package/skills/sauce-protocols/references/registry/hop.md +49 -0
- package/skills/sauce-protocols/references/registry/hyperlane.md +48 -0
- package/skills/sauce-protocols/references/registry/instadapp.md +39 -0
- package/skills/sauce-protocols/references/registry/kelp.md +47 -0
- package/skills/sauce-protocols/references/registry/kim.md +39 -0
- package/skills/sauce-protocols/references/registry/kyberswap-aggregator.md +49 -0
- package/skills/sauce-protocols/references/registry/kyberswap.md +63 -0
- package/skills/sauce-protocols/references/registry/layerbank.md +54 -0
- package/skills/sauce-protocols/references/registry/layerzero.md +49 -0
- package/skills/sauce-protocols/references/registry/level-finance.md +41 -0
- package/skills/sauce-protocols/references/registry/lido.md +51 -0
- package/skills/sauce-protocols/references/registry/lifi.md +48 -0
- package/skills/sauce-protocols/references/registry/linea-bridge.md +40 -0
- package/skills/sauce-protocols/references/registry/liquity-v1.md +42 -0
- package/skills/sauce-protocols/references/registry/liquity-v2.md +40 -0
- package/skills/sauce-protocols/references/registry/lynex.md +39 -0
- package/skills/sauce-protocols/references/registry/maker.md +55 -0
- package/skills/sauce-protocols/references/registry/mantle-meth.md +48 -0
- package/skills/sauce-protocols/references/registry/maverick.md +60 -0
- package/skills/sauce-protocols/references/registry/moonwell.md +49 -0
- package/skills/sauce-protocols/references/registry/morpho-blue.md +47 -0
- package/skills/sauce-protocols/references/registry/mux-protocol.md +49 -0
- package/skills/sauce-protocols/references/registry/olympus.md +42 -0
- package/skills/sauce-protocols/references/registry/oneinch.md +45 -0
- package/skills/sauce-protocols/references/registry/openocean.md +44 -0
- package/skills/sauce-protocols/references/registry/optimism-bridge.md +42 -0
- package/skills/sauce-protocols/references/registry/opyn.md +42 -0
- package/skills/sauce-protocols/references/registry/pancakeswap-v2.md +71 -0
- package/skills/sauce-protocols/references/registry/pancakeswap-v3.md +76 -0
- package/skills/sauce-protocols/references/registry/paraswap.md +51 -0
- package/skills/sauce-protocols/references/registry/pendle.md +43 -0
- package/skills/sauce-protocols/references/registry/permit2.md +50 -0
- package/skills/sauce-protocols/references/registry/perpetual-protocol.md +49 -0
- package/skills/sauce-protocols/references/registry/polygon-bridge.md +43 -0
- package/skills/sauce-protocols/references/registry/premia.md +40 -0
- package/skills/sauce-protocols/references/registry/puffer.md +43 -0
- package/skills/sauce-protocols/references/registry/pyth.md +40 -0
- package/skills/sauce-protocols/references/registry/quickswap.md +80 -0
- package/skills/sauce-protocols/references/registry/radiant.md +41 -0
- package/skills/sauce-protocols/references/registry/ramses.md +39 -0
- package/skills/sauce-protocols/references/registry/reflexer.md +56 -0
- package/skills/sauce-protocols/references/registry/renzo.md +47 -0
- package/skills/sauce-protocols/references/registry/rocket-pool.md +49 -0
- package/skills/sauce-protocols/references/registry/sablier.md +40 -0
- package/skills/sauce-protocols/references/registry/safe.md +47 -0
- package/skills/sauce-protocols/references/registry/scroll-bridge.md +48 -0
- package/skills/sauce-protocols/references/registry/seamless.md +42 -0
- package/skills/sauce-protocols/references/registry/seaport.md +44 -0
- package/skills/sauce-protocols/references/registry/silo.md +48 -0
- package/skills/sauce-protocols/references/registry/socket.md +44 -0
- package/skills/sauce-protocols/references/registry/sommelier.md +43 -0
- package/skills/sauce-protocols/references/registry/spark.md +42 -0
- package/skills/sauce-protocols/references/registry/spookyswap.md +40 -0
- package/skills/sauce-protocols/references/registry/squid.md +45 -0
- package/skills/sauce-protocols/references/registry/stader.md +47 -0
- package/skills/sauce-protocols/references/registry/stargate.md +45 -0
- package/skills/sauce-protocols/references/registry/superfluid.md +49 -0
- package/skills/sauce-protocols/references/registry/sushiswap-v2.md +71 -0
- package/skills/sauce-protocols/references/registry/swell.md +49 -0
- package/skills/sauce-protocols/references/registry/synapse.md +46 -0
- package/skills/sauce-protocols/references/registry/syncswap.md +38 -0
- package/skills/sauce-protocols/references/registry/synthetix-v3.md +48 -0
- package/skills/sauce-protocols/references/registry/synthra-v3.md +77 -0
- package/skills/sauce-protocols/references/registry/thales.md +51 -0
- package/skills/sauce-protocols/references/registry/thena.md +39 -0
- package/skills/sauce-protocols/references/registry/thruster.md +38 -0
- package/skills/sauce-protocols/references/registry/tokemak.md +45 -0
- package/skills/sauce-protocols/references/registry/trader-joe.md +66 -0
- package/skills/sauce-protocols/references/registry/uniswap-v2.md +77 -0
- package/skills/sauce-protocols/references/registry/uniswap-v3.md +113 -0
- package/skills/sauce-protocols/references/registry/uniswap-v4.md +117 -0
- package/skills/sauce-protocols/references/registry/unitflow-v3.md +65 -0
- package/skills/sauce-protocols/references/registry/velodrome.md +58 -0
- package/skills/sauce-protocols/references/registry/venus.md +62 -0
- package/skills/sauce-protocols/references/registry/vertex.md +46 -0
- package/skills/sauce-protocols/references/registry/wormhole.md +59 -0
- package/skills/sauce-protocols/references/registry/yearn-v3.md +46 -0
- package/skills/sauce-protocols/references/registry/zerolend.md +41 -0
- package/skills/sauce-protocols/references/registry/zerox.md +44 -0
- package/skills/sauce-protocols/references/registry/zksync-bridge.md +40 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/renzo.md +10 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/rocket-pool.md +10 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/sablier.md +10 -27
- package/skills/sauce-protocols/references/safe.md +42 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/scroll-bridge.md +11 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/seamless.md +11 -16
- package/skills/sauce-protocols/references/seaport.md +38 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/silo.md +11 -20
- package/{sdk/src/skills → skills/sauce-protocols/references}/socket.md +11 -18
- package/skills/sauce-protocols/references/sommelier.md +40 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/spark.md +11 -16
- package/{sdk/src/skills → skills/sauce-protocols/references}/spookyswap.md +12 -19
- package/{sdk/src/skills → skills/sauce-protocols/references}/squid.md +11 -21
- package/skills/sauce-protocols/references/stader.md +39 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/stargate.md +11 -22
- package/{sdk/src/skills → skills/sauce-protocols/references}/superfluid.md +10 -28
- package/{sdk/src/skills → skills/sauce-protocols/references}/sushiswap-v2.md +38 -43
- package/skills/sauce-protocols/references/swell.md +49 -0
- package/skills/sauce-protocols/references/synapse.md +54 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/syncswap.md +12 -17
- package/{sdk/src/skills → skills/sauce-protocols/references}/synthetix-v3.md +10 -29
- package/skills/sauce-protocols/references/synthra-v3.md +63 -0
- package/skills/sauce-protocols/references/thales.md +58 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/thena.md +12 -18
- package/{sdk/src/skills → skills/sauce-protocols/references}/thruster.md +13 -18
- package/skills/sauce-protocols/references/tokemak.md +40 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/trader-joe.md +13 -26
- package/{sdk/src/skills → skills/sauce-protocols/references}/uniswap-v2.md +46 -44
- package/skills/sauce-protocols/references/uniswap-v3.md +188 -0
- package/skills/sauce-protocols/references/uniswap-v4.md +155 -0
- package/skills/sauce-protocols/references/unitflow-v3.md +63 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/velodrome.md +12 -24
- package/{sdk/src/skills → skills/sauce-protocols/references}/venus.md +12 -31
- package/skills/sauce-protocols/references/vertex.md +42 -0
- package/skills/sauce-protocols/references/wormhole.md +57 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/yearn-v3.md +10 -25
- package/{sdk/src/skills → skills/sauce-protocols/references}/zerolend.md +11 -15
- package/skills/sauce-protocols/references/zerox.md +39 -0
- package/{sdk/src/skills → skills/sauce-protocols/references}/zksync-bridge.md +11 -14
- package/skills/sauce-script/SKILL.md +407 -0
- package/skills/sauce-script/examples/IOracle.json +12 -0
- package/skills/sauce-script/examples/saucescript.mts +167 -0
- package/skills/sauce-script/examples/twap.sauce.ts +29 -0
- package/skills/sauce-script/references/builtins.json +823 -0
- package/skills/sauce-script/references/builtins.md +674 -0
- package/skills/sauce-solana/SKILL.md +324 -0
- package/skills/sauce-solana/examples/solana.mts +166 -0
- package/skills/sauce-solana/examples/solana.sauce.ts +45 -0
- package/skills/sauce-solana/examples/token-2022.sauce.ts +38 -0
- package/skills/sauce-swaps/SKILL.md +200 -0
- package/skills/sauce-swaps/examples/swap-leg.sauce.ts +50 -0
- package/skills/sauce-swaps/examples/swaps.mts +124 -0
- package/skills/sauce-typescript/SKILL.md +178 -0
- package/skills/sauce-typescript/examples/actions.mts +100 -0
- package/skills/sauce-typescript/examples/compiler.mts +69 -0
- package/skills/sauce-typescript/examples/cook.mts +65 -0
- package/skills/sauce-typescript/examples/verify.mts +104 -0
- package/dev-tools/README.md +0 -16
- package/dev-tools/artifacts/IERC20.json +0 -1
- package/dev-tools/artifacts/ISauceRouter.json +0 -1
- package/dev-tools/artifacts/IUniswapV3Pool.json +0 -1
- package/dev-tools/artifacts/Router.json +0 -1
- package/dev-tools/hardhat.config.cjs +0 -18
- package/dev-tools/sauce/js/add.js +0 -4
- package/dev-tools/sauce/js/call.js +0 -8
- package/dev-tools/sauce/js/erc20.js +0 -18
- package/dev-tools/sauce/js/example.js +0 -6
- package/dev-tools/sauce/js/fibonacci.js +0 -13
- package/dev-tools/sauce/ts/add.ts +0 -4
- package/dev-tools/sauce/ts/call.ts +0 -8
- package/dev-tools/sauce/ts/erc20.ts +0 -18
- package/dev-tools/sauce/ts/example.ts +0 -6
- package/dev-tools/sauce/ts/fibonacci.ts +0 -13
- package/dev-tools/sauce/ts/saucescript.d.ts +0 -1
- package/dev-tools/sauce/ts/tsconfig.json +0 -12
- package/dev-tools/scripts/deploy.ts +0 -107
- package/dev-tools/scripts/init.js +0 -132
- package/dev-tools/scripts/run.ts +0 -67
- package/dev-tools/scripts/start-fork.sh +0 -92
- package/dev-tools/scripts/start-local.sh +0 -120
- package/dev-tools/scripts/stop-local.sh +0 -40
- package/dev-tools/scripts/sync-artifacts.js +0 -46
- package/dev-tools/scripts/sync-price.ts +0 -58
- package/dev-tools/src/contracts.ts +0 -59
- package/dev-tools/src/runner.ts +0 -355
- package/dev-tools/src/svm-local.ts +0 -305
- package/dev-tools/src/sync-price.ts +0 -217
- package/sdk/dist/deployments/v12.generated.d.ts +0 -95
- package/sdk/dist/deployments/v12.generated.d.ts.map +0 -1
- package/sdk/dist/deployments/v12.generated.js +0 -50
- package/sdk/dist/deployments/v12.generated.js.map +0 -1
- package/sdk/dist/swap/index.d.ts +0 -29
- package/sdk/dist/swap/index.d.ts.map +0 -1
- package/sdk/dist/swap/index.js +0 -27
- package/sdk/dist/swap/index.js.map +0 -1
- package/sdk/dist/swap/params.d.ts +0 -29
- package/sdk/dist/swap/params.d.ts.map +0 -1
- package/sdk/dist/swap/params.js +0 -123
- package/sdk/dist/swap/params.js.map +0 -1
- package/sdk/dist/swap/source.d.ts +0 -30
- package/sdk/dist/swap/source.d.ts.map +0 -1
- package/sdk/dist/swap/source.js +0 -101
- package/sdk/dist/swap/source.js.map +0 -1
- package/sdk/dist/swap/types.d.ts +0 -160
- package/sdk/dist/swap/types.d.ts.map +0 -1
- package/sdk/dist/swap/types.js +0 -106
- package/sdk/dist/swap/types.js.map +0 -1
- package/sdk/src/skills/aave-v3.md +0 -134
- package/sdk/src/skills/aave-v4.md +0 -91
- package/sdk/src/skills/abracadabra.md +0 -93
- package/sdk/src/skills/across.md +0 -90
- package/sdk/src/skills/aerodrome-slipstream.md +0 -57
- package/sdk/src/skills/aevo.md +0 -58
- package/sdk/src/skills/axelar.md +0 -80
- package/sdk/src/skills/chainlink.md +0 -62
- package/sdk/src/skills/curve.md +0 -141
- package/sdk/src/skills/eigenlayer.md +0 -71
- package/sdk/src/skills/gamma.md +0 -79
- package/sdk/src/skills/harvest.md +0 -49
- package/sdk/src/skills/index.md +0 -299
- package/sdk/src/skills/kelp.md +0 -60
- package/sdk/src/skills/kyberswap.md +0 -100
- package/sdk/src/skills/loader.ts +0 -46
- package/sdk/src/skills/maker.md +0 -79
- package/sdk/src/skills/mantle-meth.md +0 -60
- package/sdk/src/skills/olympus.md +0 -46
- package/sdk/src/skills/oneinch.md +0 -64
- package/sdk/src/skills/openocean.md +0 -86
- package/sdk/src/skills/pancakeswap-v3.md +0 -104
- package/sdk/src/skills/paraswap.md +0 -67
- package/sdk/src/skills/permit2.md +0 -73
- package/sdk/src/skills/perpetual-protocol.md +0 -73
- package/sdk/src/skills/pyth.md +0 -58
- package/sdk/src/skills/reflexer.md +0 -73
- package/sdk/src/skills/safe.md +0 -56
- package/sdk/src/skills/seaport.md +0 -65
- package/sdk/src/skills/sommelier.md +0 -47
- package/sdk/src/skills/stader.md +0 -53
- package/sdk/src/skills/swell.md +0 -65
- package/sdk/src/skills/synapse.md +0 -63
- package/sdk/src/skills/synthra-v3.md +0 -57
- package/sdk/src/skills/thales.md +0 -74
- package/sdk/src/skills/tokemak.md +0 -48
- package/sdk/src/skills/uniswap-v3.md +0 -202
- package/sdk/src/skills/uniswap-v4.md +0 -125
- package/sdk/src/skills/unitflow-v3.md +0 -62
- package/sdk/src/skills/vertex.md +0 -55
- package/sdk/src/skills/wormhole.md +0 -76
- package/sdk/src/skills/zerox.md +0 -51
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A name used as a token or a protocol that the destination does not have, reported as that.
|
|
3
|
+
*
|
|
4
|
+
* `DAIX.balanceOf(x)` and `Uniswapp.UniversalRouter` name nothing: not a registered token, not a
|
|
5
|
+
* protocol, not a declaration of the program and not a builtin. The token and protocol rewrites
|
|
6
|
+
* leave a name they do not know alone, which is right for them, so it reached the compiler, and the
|
|
7
|
+
* compiler could only say "`this call expression` cannot be lowered to IR yet". The route compiler
|
|
8
|
+
* knows what the chain has, so it says which name, on which chain, and what it probably meant.
|
|
9
|
+
*
|
|
10
|
+
* Consulted only once the compiler has refused the program (`sauce-route.ts`), on the source it
|
|
11
|
+
* refused. So a program the compiler accepts is never refused here, and a name only the compiler
|
|
12
|
+
* knows — an export of an ambient module — cannot be mistaken for an unknown one. By then a
|
|
13
|
+
* registered token is a define, and every protocol namespace and chain key the registry knows has
|
|
14
|
+
* been resolved, or refused with the protocol rewrite's own error.
|
|
15
|
+
*/
|
|
16
|
+
import type { CanonicalChain } from "../chains/canonical.js";
|
|
17
|
+
/** What else gives a name meaning in this compile, beside the program's own declarations. */
|
|
18
|
+
export interface KnownNames {
|
|
19
|
+
/** Every compile-time value the compile defines: token symbols, chain values, caller defines. */
|
|
20
|
+
readonly defines: Iterable<string>;
|
|
21
|
+
/** Contract bindings the caller supplies (`compile.contracts`). */
|
|
22
|
+
readonly contracts: Iterable<string>;
|
|
23
|
+
/** The chain's registered token symbols, for suggestions. */
|
|
24
|
+
readonly tokens: Iterable<string>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* For a compile that failed with `cause`: an error naming the first member access (`X.y`,
|
|
28
|
+
* `X.y(...)`) whose root `X` nothing gives meaning to on `chain`, with the chain's near matches
|
|
29
|
+
* among its tokens and protocols. `undefined` when there is none, and the compiler's error stands.
|
|
30
|
+
*/
|
|
31
|
+
export declare function unknownGlobalError(source: string, chain: CanonicalChain, known: KnownNames, cause: unknown): Error | undefined;
|
|
32
|
+
//# sourceMappingURL=unknown-global.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-global.d.ts","sourceRoot":"","sources":["../../src/routes/unknown-global.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkB7D,6FAA6F;AAC7F,MAAM,WAAW,UAAU;IACzB,iGAAiG;IACjG,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACnC;AA4DD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,OAAO,GACb,KAAK,GAAG,SAAS,CAkCnB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { addressOn } from "../descriptors/query.js";
|
|
2
|
+
import { collectDeclaredNames, walk } from "./ast-walk.js";
|
|
3
|
+
import { isChainKey, NAMESPACE_KEYS, resolveNamespace } from "./accessor-index.js";
|
|
4
|
+
import { pascalOfSlug } from "./builder.js";
|
|
5
|
+
import { parseSauce } from "./parse.js";
|
|
6
|
+
/** The compiler's own namespace roots, and the `self` sugar the protocol rewrite resolves. */
|
|
7
|
+
const BUILTIN_ROOTS = new Set([
|
|
8
|
+
"ctx",
|
|
9
|
+
"crypto",
|
|
10
|
+
"Math",
|
|
11
|
+
"abi",
|
|
12
|
+
"evm",
|
|
13
|
+
"svm",
|
|
14
|
+
"self",
|
|
15
|
+
]);
|
|
16
|
+
/** Optimal string alignment distance: edits, with an adjacent swap counting as one. */
|
|
17
|
+
function distance(a, b) {
|
|
18
|
+
const rows = Array.from({ length: a.length + 1 }, (_, i) => Array.from({ length: b.length + 1 }, (_, j) => (i === 0 ? j : j === 0 ? i : 0)));
|
|
19
|
+
for (let i = 1; i <= a.length; i++) {
|
|
20
|
+
for (let j = 1; j <= b.length; j++) {
|
|
21
|
+
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
22
|
+
let best = Math.min(rows[i - 1][j] + 1, rows[i][j - 1] + 1, rows[i - 1][j - 1] + cost);
|
|
23
|
+
if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {
|
|
24
|
+
best = Math.min(best, rows[i - 2][j - 2] + 1);
|
|
25
|
+
}
|
|
26
|
+
rows[i][j] = best;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return rows[a.length][b.length];
|
|
30
|
+
}
|
|
31
|
+
/** The protocol namespaces with at least one contract deployed on `chain`. */
|
|
32
|
+
function protocolsOn(chain) {
|
|
33
|
+
const deployed = (key) => {
|
|
34
|
+
const namespace = resolveNamespace(key);
|
|
35
|
+
if (namespace === undefined)
|
|
36
|
+
return false;
|
|
37
|
+
if (namespace.kind === "protocol") {
|
|
38
|
+
return [...namespace.contracts.values()].some((d) => addressOn(d, chain) !== undefined);
|
|
39
|
+
}
|
|
40
|
+
return namespace.members.some((slug) => deployed(pascalOfSlug(slug)));
|
|
41
|
+
};
|
|
42
|
+
return [...NAMESPACE_KEYS].filter(deployed);
|
|
43
|
+
}
|
|
44
|
+
/** The `candidates` nearest `name`, if any is close enough to be what was meant — at most three. */
|
|
45
|
+
function nearMatches(name, candidates) {
|
|
46
|
+
const allowed = name.length <= 4 ? 1 : 2;
|
|
47
|
+
const scored = [...new Set(candidates)]
|
|
48
|
+
.map((candidate) => ({
|
|
49
|
+
candidate,
|
|
50
|
+
cost: candidate.toLowerCase() === name.toLowerCase() ? 0 : distance(name, candidate),
|
|
51
|
+
}))
|
|
52
|
+
.filter(({ cost }) => cost <= allowed);
|
|
53
|
+
const nearest = Math.min(...scored.map(({ cost }) => cost));
|
|
54
|
+
return scored
|
|
55
|
+
.filter(({ cost }) => cost === nearest)
|
|
56
|
+
.map(({ candidate }) => candidate)
|
|
57
|
+
.sort()
|
|
58
|
+
.slice(0, 3);
|
|
59
|
+
}
|
|
60
|
+
/** The compiler's own account of a failure: the last line of its chain of causes. */
|
|
61
|
+
function headline(error) {
|
|
62
|
+
const message = String(error?.message ?? error).replace(new RegExp(`${String.fromCharCode(27)}\\[[0-9;]*m`, "g"), "");
|
|
63
|
+
const causes = [...message.matchAll(/─▶ (.+)/g)];
|
|
64
|
+
return causes.length === 0 ? undefined : causes[causes.length - 1][1].trim();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* For a compile that failed with `cause`: an error naming the first member access (`X.y`,
|
|
68
|
+
* `X.y(...)`) whose root `X` nothing gives meaning to on `chain`, with the chain's near matches
|
|
69
|
+
* among its tokens and protocols. `undefined` when there is none, and the compiler's error stands.
|
|
70
|
+
*/
|
|
71
|
+
export function unknownGlobalError(source, chain, known, cause) {
|
|
72
|
+
const program = parseSauce(source);
|
|
73
|
+
const meaningful = new Set([
|
|
74
|
+
...collectDeclaredNames(program),
|
|
75
|
+
...known.defines,
|
|
76
|
+
...known.contracts,
|
|
77
|
+
...BUILTIN_ROOTS,
|
|
78
|
+
]);
|
|
79
|
+
let unknown;
|
|
80
|
+
walk(program, (node) => {
|
|
81
|
+
if (unknown !== undefined || node.type !== "MemberExpression")
|
|
82
|
+
return;
|
|
83
|
+
if (node.computed === true)
|
|
84
|
+
return;
|
|
85
|
+
const object = node.object;
|
|
86
|
+
if (object?.type !== "Identifier")
|
|
87
|
+
return;
|
|
88
|
+
const name = object.name;
|
|
89
|
+
if (meaningful.has(name) || isChainKey(name) || resolveNamespace(name) !== undefined)
|
|
90
|
+
return;
|
|
91
|
+
unknown = object;
|
|
92
|
+
});
|
|
93
|
+
if (unknown === undefined)
|
|
94
|
+
return undefined;
|
|
95
|
+
const name = unknown.name;
|
|
96
|
+
const matches = nearMatches(name, [...known.tokens, ...protocolsOn(chain)]);
|
|
97
|
+
const suggestion = matches.length === 0
|
|
98
|
+
? ""
|
|
99
|
+
: ` Did you mean ${matches.map((match) => `\`${match}\``).join(" or ")}?`;
|
|
100
|
+
const compiler = headline(cause);
|
|
101
|
+
return new Error(`compileSauceRoute: \`${name}\` is not a token or protocol on ${chain.slug}.${suggestion} ` +
|
|
102
|
+
"A token the registry does not carry is `Token(address)`, or a `tokens` entry in the " +
|
|
103
|
+
"compile options; a contract binding needs its ABI imported, or passed as `contracts`." +
|
|
104
|
+
(compiler === undefined ? "" : ` The compiler reported: ${compiler}`), { cause });
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=unknown-global.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-global.js","sourceRoot":"","sources":["../../src/routes/unknown-global.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,24 @@
|
|
|
20
20
|
* (`0xff` for EVM Portal deployments; Portal's constructor is `IntentSource(address(new Vault()),
|
|
21
21
|
* bytes1(0xff))`).
|
|
22
22
|
*
|
|
23
|
-
* `initCodeHash = keccak256(type(Proxy).creationCode ++ abi.encode(implementation))
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
23
|
+
* `initCodeHash = keccak256(type(Proxy).creationCode ++ abi.encode(implementation))`, and both
|
|
24
|
+
* halves are known for an eco-routes Portal (`ecoRoutesVaultConfig` below):
|
|
25
|
+
*
|
|
26
|
+
* - `implementation` is the Portal's first `CREATE` (`Portal`'s constructor passes
|
|
27
|
+
* `address(new Vault())` to `IntentSource`), so it follows from the Portal address —
|
|
28
|
+
* `protocols/eco-routes/lookup.ts#ecoRoutesVaultImplementationOf`, beside the Executor (its
|
|
29
|
+
* second);
|
|
30
|
+
* - `type(Proxy).creationCode` is `contracts/vault/Proxy.sol` compiled with eco-routes' own
|
|
31
|
+
* `foundry.toml` — solc 0.8.27, via-IR, 1,000,000 optimizer runs, `paris`, and no CBOR metadata
|
|
32
|
+
* (`cbor_metadata = false`, `bytecode_hash = "none"`), so the bytes are a function of the source
|
|
33
|
+
* and those settings alone: {@link ECO_ROUTES_VAULT_PROXY_CREATION_CODE}.
|
|
34
|
+
*
|
|
35
|
+
* That is evidence, not an assumption. `test/fixtures/eco-routes-vaults.json` records, for every EVM
|
|
36
|
+
* Portal the registry carries, what the deployed Portal's own `intentVaultAddress` returned for a
|
|
37
|
+
* fixed intent (`scripts/capture-eco-routes-vaults.mjs`), and `eco-routes-vault.test.ts` requires the
|
|
38
|
+
* prediction to match each one and every registry Portal to be covered. A Portal built some other
|
|
39
|
+
* way (a different Proxy, another compiler) needs its own `vaultInitCodeHash`, which
|
|
40
|
+
* {@link predictVaultAddress} still takes as explicit config.
|
|
29
41
|
*
|
|
30
42
|
* DO NOT confuse this with eco-routes' own (superseded) `utils/intent.ts#intentVaultAddress` helper:
|
|
31
43
|
* that models `salt = routeHash` with a Vault deployed with `(intentHash, reward)` constructor args,
|
|
@@ -38,7 +50,7 @@ export interface VaultConfig {
|
|
|
38
50
|
/** The Portal contract — the CREATE2 deployer in the formula above. */
|
|
39
51
|
readonly portal: AddressInput;
|
|
40
52
|
/** `keccak256(type(Proxy).creationCode ++ abi.encode(vaultImplementation))` — see the module doc;
|
|
41
|
-
*
|
|
53
|
+
* {@link ecoRoutesVaultConfig} derives it for an eco-routes Portal. */
|
|
42
54
|
readonly vaultInitCodeHash: Hex;
|
|
43
55
|
/** CREATE2 prefix byte. Defaults to `0xff` (the live EVM Portal deployments' `CREATE2_PREFIX`;
|
|
44
56
|
* `0x41` is `PortalTron`'s, out of scope here). */
|
|
@@ -47,7 +59,8 @@ export interface VaultConfig {
|
|
|
47
59
|
/**
|
|
48
60
|
* The off-chain twin of `IntentSource._getVault(intentHash)` -> `Clones.predict(intentHash,
|
|
49
61
|
* CREATE2_PREFIX)`. Throws (rather than silently computing against a missing/malformed
|
|
50
|
-
* `vaultInitCodeHash`)
|
|
62
|
+
* `vaultInitCodeHash`): the config names the Portal build, and {@link ecoRoutesVaultConfig} is the
|
|
63
|
+
* one for eco-routes' own.
|
|
51
64
|
*/
|
|
52
65
|
export declare function predictVaultAddress(intentHash: Hex, config: VaultConfig): Hex;
|
|
53
66
|
/**
|
|
@@ -57,4 +70,21 @@ export declare function predictVaultAddress(intentHash: Hex, config: VaultConfig
|
|
|
57
70
|
* correctly.
|
|
58
71
|
*/
|
|
59
72
|
export declare function vaultInitCodeHash(proxyCreationCode: Hex, implementation: AddressInput): Hex;
|
|
73
|
+
/**
|
|
74
|
+
* `type(Proxy).creationCode` as eco-routes builds it: `contracts/vault/Proxy.sol` under its
|
|
75
|
+
* `foundry.toml` (solc 0.8.27, via-IR, 1,000,000 runs, `paris`, no CBOR metadata). Every vault is a
|
|
76
|
+
* `new Proxy{salt: intentHash}(implementation)` of these bytes, and every deployed Portal carries
|
|
77
|
+
* them — `test/fixtures/eco-routes-vaults.json` records each registry Portal's code embedding them
|
|
78
|
+
* and its `intentVaultAddress` agreeing with {@link ecoRoutesVaultConfig}, and the vendored Portal
|
|
79
|
+
* fixture embeds them too.
|
|
80
|
+
*/
|
|
81
|
+
export declare const ECO_ROUTES_VAULT_PROXY_CREATION_CODE: Hex;
|
|
82
|
+
/**
|
|
83
|
+
* The vault configuration of an eco-routes Portal: its vaults are CREATE2 clones, by `portal`,
|
|
84
|
+
* salted with the intent hash, of {@link ECO_ROUTES_VAULT_PROXY_CREATION_CODE} over the Portal's
|
|
85
|
+
* first `CREATE` (`ecoRoutesVaultImplementationOf`). Derived from the address alone — nothing is
|
|
86
|
+
* read from a chain — so an intent's vault is known before it is published, which is what lets a
|
|
87
|
+
* funder pay it directly.
|
|
88
|
+
*/
|
|
89
|
+
export declare function ecoRoutesVaultConfig(portal: AddressInput): VaultConfig;
|
|
60
90
|
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/routes/vault.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/routes/vault.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,OAAO,EAML,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAKd,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;4EACwE;IACxE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAChC;wDACoD;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;CACvB;AAgBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,GAAG,CAmB7E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,GAAG,EAAE,cAAc,EAAE,YAAY,GAAG,GAAG,CAS3F;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,oCAAoC,EAAE,GACqW,CAAC;AAEzZ;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAWtE"}
|
package/sdk/dist/routes/vault.js
CHANGED
|
@@ -20,12 +20,24 @@
|
|
|
20
20
|
* (`0xff` for EVM Portal deployments; Portal's constructor is `IntentSource(address(new Vault()),
|
|
21
21
|
* bytes1(0xff))`).
|
|
22
22
|
*
|
|
23
|
-
* `initCodeHash = keccak256(type(Proxy).creationCode ++ abi.encode(implementation))
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
23
|
+
* `initCodeHash = keccak256(type(Proxy).creationCode ++ abi.encode(implementation))`, and both
|
|
24
|
+
* halves are known for an eco-routes Portal (`ecoRoutesVaultConfig` below):
|
|
25
|
+
*
|
|
26
|
+
* - `implementation` is the Portal's first `CREATE` (`Portal`'s constructor passes
|
|
27
|
+
* `address(new Vault())` to `IntentSource`), so it follows from the Portal address —
|
|
28
|
+
* `protocols/eco-routes/lookup.ts#ecoRoutesVaultImplementationOf`, beside the Executor (its
|
|
29
|
+
* second);
|
|
30
|
+
* - `type(Proxy).creationCode` is `contracts/vault/Proxy.sol` compiled with eco-routes' own
|
|
31
|
+
* `foundry.toml` — solc 0.8.27, via-IR, 1,000,000 optimizer runs, `paris`, and no CBOR metadata
|
|
32
|
+
* (`cbor_metadata = false`, `bytecode_hash = "none"`), so the bytes are a function of the source
|
|
33
|
+
* and those settings alone: {@link ECO_ROUTES_VAULT_PROXY_CREATION_CODE}.
|
|
34
|
+
*
|
|
35
|
+
* That is evidence, not an assumption. `test/fixtures/eco-routes-vaults.json` records, for every EVM
|
|
36
|
+
* Portal the registry carries, what the deployed Portal's own `intentVaultAddress` returned for a
|
|
37
|
+
* fixed intent (`scripts/capture-eco-routes-vaults.mjs`), and `eco-routes-vault.test.ts` requires the
|
|
38
|
+
* prediction to match each one and every registry Portal to be covered. A Portal built some other
|
|
39
|
+
* way (a different Proxy, another compiler) needs its own `vaultInitCodeHash`, which
|
|
40
|
+
* {@link predictVaultAddress} still takes as explicit config.
|
|
29
41
|
*
|
|
30
42
|
* DO NOT confuse this with eco-routes' own (superseded) `utils/intent.ts#intentVaultAddress` helper:
|
|
31
43
|
* that models `salt = routeHash` with a Vault deployed with `(intentHash, reward)` constructor args,
|
|
@@ -33,6 +45,7 @@
|
|
|
33
45
|
* `_getVault` actually uses. The Solidity above is the only ground truth this file follows.
|
|
34
46
|
*/
|
|
35
47
|
import { encodeAbiParameters, encodePacked, getAddress, hexToBytes, keccak256, } from "viem";
|
|
48
|
+
import { ecoRoutesVaultImplementationOf } from "../protocols/eco-routes/lookup.js";
|
|
36
49
|
import { denormalizeToEvm } from "./encode.js";
|
|
37
50
|
import { toUniversalAddress } from "./normalize.js";
|
|
38
51
|
function assertBytes32(value, label) {
|
|
@@ -50,12 +63,14 @@ function assertByte1(value, label) {
|
|
|
50
63
|
/**
|
|
51
64
|
* The off-chain twin of `IntentSource._getVault(intentHash)` -> `Clones.predict(intentHash,
|
|
52
65
|
* CREATE2_PREFIX)`. Throws (rather than silently computing against a missing/malformed
|
|
53
|
-
* `vaultInitCodeHash`)
|
|
66
|
+
* `vaultInitCodeHash`): the config names the Portal build, and {@link ecoRoutesVaultConfig} is the
|
|
67
|
+
* one for eco-routes' own.
|
|
54
68
|
*/
|
|
55
69
|
export function predictVaultAddress(intentHash, config) {
|
|
56
70
|
assertBytes32(intentHash, "intentHash");
|
|
57
71
|
if (config.vaultInitCodeHash === undefined || config.vaultInitCodeHash === null) {
|
|
58
|
-
throw new Error("predictVaultAddress: config.vaultInitCodeHash is required
|
|
72
|
+
throw new Error("predictVaultAddress: config.vaultInitCodeHash is required — ecoRoutesVaultConfig(portal) gives " +
|
|
73
|
+
"it for an eco-routes Portal (see vault.ts's module doc)");
|
|
59
74
|
}
|
|
60
75
|
assertBytes32(config.vaultInitCodeHash, "vaultInitCodeHash");
|
|
61
76
|
const prefix = config.prefix ?? "0xff";
|
|
@@ -81,4 +96,28 @@ export function vaultInitCodeHash(proxyCreationCode, implementation) {
|
|
|
81
96
|
combined.set(implBytes, bytes.length);
|
|
82
97
|
return keccak256(combined);
|
|
83
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* `type(Proxy).creationCode` as eco-routes builds it: `contracts/vault/Proxy.sol` under its
|
|
101
|
+
* `foundry.toml` (solc 0.8.27, via-IR, 1,000,000 runs, `paris`, no CBOR metadata). Every vault is a
|
|
102
|
+
* `new Proxy{salt: intentHash}(implementation)` of these bytes, and every deployed Portal carries
|
|
103
|
+
* them — `test/fixtures/eco-routes-vaults.json` records each registry Portal's code embedding them
|
|
104
|
+
* and its `intentVaultAddress` agreeing with {@link ecoRoutesVaultConfig}, and the vendored Portal
|
|
105
|
+
* fixture embeds them too.
|
|
106
|
+
*/
|
|
107
|
+
export const ECO_ROUTES_VAULT_PROXY_CREATION_CODE = "0x60a034606257601f60c938819003918201601f19168301916001600160401b03831184841017606757808492602094604052833981010312606257516001600160a01b0381168103606257608052604051604b9081607e82396080518160150152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe60806040523615604957366000803760008036817f00000000000000000000000000000000000000000000000000000000000000005af43d6000803e156044573d6000f35b3d6000fd5b00";
|
|
108
|
+
/**
|
|
109
|
+
* The vault configuration of an eco-routes Portal: its vaults are CREATE2 clones, by `portal`,
|
|
110
|
+
* salted with the intent hash, of {@link ECO_ROUTES_VAULT_PROXY_CREATION_CODE} over the Portal's
|
|
111
|
+
* first `CREATE` (`ecoRoutesVaultImplementationOf`). Derived from the address alone — nothing is
|
|
112
|
+
* read from a chain — so an intent's vault is known before it is published, which is what lets a
|
|
113
|
+
* funder pay it directly.
|
|
114
|
+
*/
|
|
115
|
+
export function ecoRoutesVaultConfig(portal) {
|
|
116
|
+
const address = getAddress(denormalizeToEvm(toUniversalAddress(portal)));
|
|
117
|
+
return {
|
|
118
|
+
portal: address,
|
|
119
|
+
vaultInitCodeHash: vaultInitCodeHash(ECO_ROUTES_VAULT_PROXY_CREATION_CODE, ecoRoutesVaultImplementationOf(address)),
|
|
120
|
+
prefix: "0xff",
|
|
121
|
+
};
|
|
122
|
+
}
|
|
84
123
|
//# sourceMappingURL=vault.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/routes/vault.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/routes/vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
// SauceScript's own names, declared for a TypeScript editor checking a program file (`*.sauce.ts`):
|
|
2
|
+
// the types a signature names, the builtins (`ctx`, `crypto`, `Math`, `abi`, `evm`, `svm`,
|
|
3
|
+
// `require`, `hex`, ...), value methods, contract bindings from a JSON ABI import, the
|
|
4
|
+
// `@sauce/token` functions a program calls with no import, and `Token(address)`.
|
|
5
|
+
//
|
|
6
|
+
// The Sauce compiler, not this file, decides what compiles: these declarations describe the language
|
|
7
|
+
// to an editor, which checks names, arity and argument shapes against them. A builtin of one target
|
|
8
|
+
// (`evm.*`, `svm.*`) is declared for both; compiling for the other is the error that says so.
|
|
9
|
+
//
|
|
10
|
+
// A SCRIPT (no import or export), so its declarations are global. Load it only into a TypeScript
|
|
11
|
+
// project of SauceScript files: it declares `require`, `crypto`, `log` and `eval` as SauceScript has
|
|
12
|
+
// them, which a Node or browser project declares otherwise. `sauce init` writes that project.
|
|
13
|
+
|
|
14
|
+
/** A number SauceScript takes: a 256-bit integer, written `1n` (a plain `1` is one too). */
|
|
15
|
+
type SauceInt = bigint | number;
|
|
16
|
+
|
|
17
|
+
/** The bytes a contract call returns, and what the generated namespace types take. */
|
|
18
|
+
type SauceBytesOf = import("../routes/source-globals.generated.js").SauceBytes;
|
|
19
|
+
|
|
20
|
+
/** A bytes value: `hex\`…\``, a call's result, `abi.encode(…)`. */
|
|
21
|
+
interface SauceBytes extends SauceBytesOf {
|
|
22
|
+
slice(start: SauceInt, end: SauceInt): SauceBytes;
|
|
23
|
+
concat(...parts: SauceData[]): SauceBytes;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Bytes SauceScript takes: a bytes value, or a `"text"` literal, which is its UTF-8 bytes. */
|
|
27
|
+
type SauceData = SauceBytesOf | string;
|
|
28
|
+
|
|
29
|
+
/** An array SauceScript returns, its length a Sauce number. */
|
|
30
|
+
type SauceArray<T> = import("../routes/source-globals.generated.js").SauceArray<T>;
|
|
31
|
+
|
|
32
|
+
/** An ERC-20 token, its writes SafeERC20 (`Token(addr).transfer(to, amount)`). */
|
|
33
|
+
type SauceTokenSource = import("../routes/source-globals.generated.js").SauceTokenSource;
|
|
34
|
+
|
|
35
|
+
/** One unsigned 256-bit integer. */
|
|
36
|
+
type Uint256 = bigint;
|
|
37
|
+
/** An address: a number, on the EVM 20 bytes, on Solana a 32-byte key. */
|
|
38
|
+
type Address = bigint;
|
|
39
|
+
/** A bool. */
|
|
40
|
+
type bool = boolean;
|
|
41
|
+
/** A bytes value. */
|
|
42
|
+
type bytes = SauceBytes;
|
|
43
|
+
|
|
44
|
+
/** A role an `Account` parameter requires of the account attached at its slot (Solana). */
|
|
45
|
+
interface Writable {
|
|
46
|
+
readonly writable: true;
|
|
47
|
+
}
|
|
48
|
+
interface Signer {
|
|
49
|
+
readonly signer: true;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** What an account carries: its key, and on Solana its owner program and data length. */
|
|
53
|
+
interface SauceAccountFields {
|
|
54
|
+
readonly address: bigint;
|
|
55
|
+
readonly owner: bigint;
|
|
56
|
+
readonly dataLen: bigint;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* An account `main` takes. On Solana the transaction attaches it at its slot, with the roles named
|
|
61
|
+
* (`Account<Writable>`, `Account<Writable, Signer>`), and it compares equal to its address. On an
|
|
62
|
+
* EVM chain only a bare `Account` compiles, and it is an address.
|
|
63
|
+
*/
|
|
64
|
+
type Account<R1 = unknown, R2 = unknown> = bigint &
|
|
65
|
+
SauceAccountFields & { readonly roles?: [R1, R2] };
|
|
66
|
+
|
|
67
|
+
/** A contract a JSON ABI binds: `IERC20.at(token).balanceOf(holder)`. */
|
|
68
|
+
interface SauceContract {
|
|
69
|
+
/** Calls it (state may change). */
|
|
70
|
+
at(address: SauceInt): SauceBinding;
|
|
71
|
+
/** Calls it statically: a view or pure method. */
|
|
72
|
+
view(address: SauceInt): SauceBinding;
|
|
73
|
+
/** Calls its code as the Pot: a delegate call. */
|
|
74
|
+
lib(address: SauceInt): SauceBinding;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** The methods of a bound contract, by name. */
|
|
78
|
+
interface SauceBinding {
|
|
79
|
+
readonly [method: string]: (...args: any[]) => any;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** An intent's route: what the solver delivers to the destination for the body to run on. */
|
|
83
|
+
interface SauceDelivery {
|
|
84
|
+
readonly tokens?: ReadonlyArray<{ readonly token: SauceInt; readonly amount: SauceInt }>;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** An intent's reward, paid on the chain that opens it. */
|
|
88
|
+
interface SauceReward {
|
|
89
|
+
readonly tokens?: ReadonlyArray<{ readonly token: SauceInt; readonly amount: SauceInt }>;
|
|
90
|
+
readonly nativeAmount?: SauceInt;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** An intent opened in a program: `Base(() => { … }).reward({ … })`. */
|
|
94
|
+
interface SauceIntent {
|
|
95
|
+
reward(reward: SauceReward): void;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Context reads: who called, where, when. */
|
|
99
|
+
declare const ctx: {
|
|
100
|
+
/** The account that called: the Pot's owner, on a cook. */
|
|
101
|
+
msgSender(): bigint;
|
|
102
|
+
/** The program's own address: the Pot. */
|
|
103
|
+
self(): bigint;
|
|
104
|
+
chainId(): bigint;
|
|
105
|
+
blockNumber(): bigint;
|
|
106
|
+
timestamp(): bigint;
|
|
107
|
+
/** The Pot's native balance. */
|
|
108
|
+
selfBalance(): bigint;
|
|
109
|
+
msgData(): SauceBytes;
|
|
110
|
+
balance(address: SauceInt): bigint;
|
|
111
|
+
/** EVM: the value the cook carried. */
|
|
112
|
+
msgValue(): bigint;
|
|
113
|
+
/** EVM. */
|
|
114
|
+
gasLeft(): bigint;
|
|
115
|
+
/** EVM. */
|
|
116
|
+
codeSize(address: SauceInt): bigint;
|
|
117
|
+
/** EVM. */
|
|
118
|
+
codeHash(address: SauceInt): bigint;
|
|
119
|
+
/** EVM. */
|
|
120
|
+
isContract(address: SauceInt): boolean;
|
|
121
|
+
/** EVM. */
|
|
122
|
+
isEOA(address: SauceInt): boolean;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
declare const crypto: {
|
|
126
|
+
keccak256(data: SauceData): bigint;
|
|
127
|
+
ecdsaVerify(hash: SauceInt, signature: SauceData, signer: SauceInt): boolean;
|
|
128
|
+
/** `const [address, bump] = crypto.findPDA(programId, seeds)`. */
|
|
129
|
+
findPDA(
|
|
130
|
+
programId: SauceInt,
|
|
131
|
+
seeds: ReadonlyArray<SauceData> | SauceArray<SauceBytesOf>,
|
|
132
|
+
): [bigint, bigint];
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
interface Math {
|
|
136
|
+
/** The integer square root, rounded down. */
|
|
137
|
+
sqrt(x: SauceInt): bigint;
|
|
138
|
+
/** `x * y / d` with a 512-bit intermediate, rounded down. */
|
|
139
|
+
mulDiv(x: SauceInt, y: SauceInt, d: SauceInt): bigint;
|
|
140
|
+
addMod(a: SauceInt, b: SauceInt, n: SauceInt): bigint;
|
|
141
|
+
mulMod(a: SauceInt, b: SauceInt, n: SauceInt): bigint;
|
|
142
|
+
/** Signed (two's-complement) division. */
|
|
143
|
+
sDiv(a: SauceInt, b: SauceInt): bigint;
|
|
144
|
+
sMod(a: SauceInt, b: SauceInt): bigint;
|
|
145
|
+
sShr(value: SauceInt, bits: SauceInt): bigint;
|
|
146
|
+
signExtend(value: SauceInt, byte: SauceInt): bigint;
|
|
147
|
+
sLt(a: SauceInt, b: SauceInt): bigint;
|
|
148
|
+
sGt(a: SauceInt, b: SauceInt): bigint;
|
|
149
|
+
sLte(a: SauceInt, b: SauceInt): bigint;
|
|
150
|
+
sGte(a: SauceInt, b: SauceInt): bigint;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** EVM: ABI encoding. */
|
|
154
|
+
declare const abi: {
|
|
155
|
+
encode(...values: unknown[]): SauceBytes;
|
|
156
|
+
/** The decoded values, by position: `const [a, b] = abi.decode(data, ["Uint256", "Address"])`. */
|
|
157
|
+
decode(data: SauceData, shapes: readonly string[]): any;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/** EVM: calls and storage. */
|
|
161
|
+
declare const evm: {
|
|
162
|
+
call(address: SauceInt, value: SauceInt, data: SauceData): SauceBytes;
|
|
163
|
+
static(address: SauceInt, data: SauceData): SauceBytes;
|
|
164
|
+
delegate(address: SauceInt, data: SauceData): SauceBytes;
|
|
165
|
+
sload(slot: SauceInt): bigint;
|
|
166
|
+
sstore(slot: SauceInt, value: SauceInt): void;
|
|
167
|
+
tload(key: SauceInt): bigint;
|
|
168
|
+
tstore(key: SauceInt, value: SauceInt): void;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
/** Solana: account data and cross-program calls. */
|
|
172
|
+
declare const svm: {
|
|
173
|
+
sload(account: Account, offset: SauceInt, length: SauceInt): SauceBytes;
|
|
174
|
+
sstore(account: Account, offset: SauceInt, data: SauceData): void;
|
|
175
|
+
call(program: Account, accounts: readonly Account[], data: SauceData): SauceBytes;
|
|
176
|
+
remainingAccount(index: SauceInt): Account;
|
|
177
|
+
remainingAccounts(): Account[];
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/** Fails the whole program, and the transaction with it, unless `condition` holds. */
|
|
181
|
+
declare function require(condition: unknown, message?: SauceData): void;
|
|
182
|
+
/** Fails the program with `data` as its revert data. */
|
|
183
|
+
declare function revert(data?: SauceData): never;
|
|
184
|
+
/** Emits a log; topics are EVM only. */
|
|
185
|
+
declare function log(data: SauceData, ...topics: SauceInt[]): void;
|
|
186
|
+
/** Runs another program, with arguments. */
|
|
187
|
+
declare function eval(program: SauceData, ...args: SauceInt[]): SauceBytes;
|
|
188
|
+
/** Bytes from hex digits: hex`a9059cbb`. */
|
|
189
|
+
declare function hex(strings: TemplateStringsArray): SauceBytes;
|
|
190
|
+
|
|
191
|
+
interface BigInt {
|
|
192
|
+
/** The value as `width` big-endian bytes. */
|
|
193
|
+
toBytesBe(width: SauceInt): SauceBytes;
|
|
194
|
+
/** The value as `width` little-endian bytes. */
|
|
195
|
+
toBytesLe(width: SauceInt): SauceBytes;
|
|
196
|
+
/** An external call's result — or, when the call fails, what the handler returns. */
|
|
197
|
+
catch(handler: () => unknown): bigint;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
interface ArrayConstructor {
|
|
201
|
+
/** `n` zeros, for a program to fill: `let xs = new Array(n)`. */
|
|
202
|
+
new (length: SauceInt): any[];
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/** The ERC-20 token at `address`: `Token(addr).transfer(to, amount)`, with SafeERC20 writes. */
|
|
206
|
+
declare function Token(address: SauceInt): SauceTokenSource;
|
|
207
|
+
|
|
208
|
+
// `@sauce/token`, whose functions every program on a chain calls with no import: an EVM token is
|
|
209
|
+
// an address; on Solana the mint is an address, its accounts `Account` slots, and a write names
|
|
210
|
+
// its token program and the authority (`transfer`/`approve` SPL Token only, the checked writes
|
|
211
|
+
// either SPL Token or Token-2022, with the mint's account and its decimals).
|
|
212
|
+
declare function balanceOf(token: SauceInt, account: SauceInt | Account): bigint;
|
|
213
|
+
declare function totalSupply(token: SauceInt | Account): bigint;
|
|
214
|
+
declare function decimals(token: SauceInt | Account): bigint;
|
|
215
|
+
declare function allowance(token: SauceInt, owner: SauceInt | Account, spender: SauceInt): bigint;
|
|
216
|
+
/** Solana only: whose token account `account` is, a wallet or a PDA such as a Pot. */
|
|
217
|
+
declare function ownerOf(token: SauceInt, account: Account): bigint;
|
|
218
|
+
declare function transfer(token: SauceInt, to: SauceInt, amount: SauceInt): void;
|
|
219
|
+
declare function transfer(
|
|
220
|
+
token: SauceInt,
|
|
221
|
+
tokenProgram: Account,
|
|
222
|
+
source: Account,
|
|
223
|
+
dest: Account,
|
|
224
|
+
authority: Account,
|
|
225
|
+
amount: SauceInt,
|
|
226
|
+
): void;
|
|
227
|
+
declare function transferFrom(
|
|
228
|
+
token: SauceInt,
|
|
229
|
+
from: SauceInt,
|
|
230
|
+
to: SauceInt,
|
|
231
|
+
amount: SauceInt,
|
|
232
|
+
): void;
|
|
233
|
+
declare function transferFrom(
|
|
234
|
+
token: SauceInt,
|
|
235
|
+
tokenProgram: Account,
|
|
236
|
+
source: Account,
|
|
237
|
+
dest: Account,
|
|
238
|
+
authority: Account,
|
|
239
|
+
amount: SauceInt,
|
|
240
|
+
): void;
|
|
241
|
+
declare function approve(token: SauceInt, spender: SauceInt, amount: SauceInt): void;
|
|
242
|
+
declare function approve(
|
|
243
|
+
token: SauceInt,
|
|
244
|
+
tokenProgram: Account,
|
|
245
|
+
source: Account,
|
|
246
|
+
delegate: Account,
|
|
247
|
+
authority: Account,
|
|
248
|
+
amount: SauceInt,
|
|
249
|
+
): void;
|
|
250
|
+
/** Solana only: a `TransferChecked` through the token program that owns the mint, either one. */
|
|
251
|
+
declare function transferChecked(
|
|
252
|
+
token: SauceInt,
|
|
253
|
+
tokenProgram: Account,
|
|
254
|
+
source: Account,
|
|
255
|
+
mint: Account,
|
|
256
|
+
dest: Account,
|
|
257
|
+
authority: Account,
|
|
258
|
+
amount: SauceInt,
|
|
259
|
+
decimals: SauceInt,
|
|
260
|
+
): void;
|
|
261
|
+
/** Solana only: an `ApproveChecked` through the token program that owns the mint, either one. */
|
|
262
|
+
declare function approveChecked(
|
|
263
|
+
token: SauceInt,
|
|
264
|
+
tokenProgram: Account,
|
|
265
|
+
source: Account,
|
|
266
|
+
mint: Account,
|
|
267
|
+
delegate: Account,
|
|
268
|
+
authority: Account,
|
|
269
|
+
amount: SauceInt,
|
|
270
|
+
decimals: SauceInt,
|
|
271
|
+
): void;
|
|
272
|
+
declare function permit(
|
|
273
|
+
token: SauceInt,
|
|
274
|
+
owner: SauceInt,
|
|
275
|
+
spender: SauceInt,
|
|
276
|
+
value: SauceInt,
|
|
277
|
+
deadline: SauceInt,
|
|
278
|
+
v: SauceInt,
|
|
279
|
+
r: SauceInt,
|
|
280
|
+
s: SauceInt,
|
|
281
|
+
): void;
|
|
282
|
+
declare function permitTransferFrom(
|
|
283
|
+
token: SauceInt,
|
|
284
|
+
owner: SauceInt,
|
|
285
|
+
amount: SauceInt,
|
|
286
|
+
nonce: SauceInt,
|
|
287
|
+
deadline: SauceInt,
|
|
288
|
+
signature: SauceData,
|
|
289
|
+
permit2: SauceInt,
|
|
290
|
+
): void;
|
|
291
|
+
|
|
292
|
+
/** The same functions, imported by name. */
|
|
293
|
+
declare module "@sauce/token" {
|
|
294
|
+
export const allowance: typeof globalThis.allowance;
|
|
295
|
+
export const approve: typeof globalThis.approve;
|
|
296
|
+
export const approveChecked: typeof globalThis.approveChecked;
|
|
297
|
+
export const balanceOf: typeof globalThis.balanceOf;
|
|
298
|
+
export const decimals: typeof globalThis.decimals;
|
|
299
|
+
export const ownerOf: typeof globalThis.ownerOf;
|
|
300
|
+
export const permit: typeof globalThis.permit;
|
|
301
|
+
export const permitTransferFrom: typeof globalThis.permitTransferFrom;
|
|
302
|
+
export const totalSupply: typeof globalThis.totalSupply;
|
|
303
|
+
export const transfer: typeof globalThis.transfer;
|
|
304
|
+
export const transferChecked: typeof globalThis.transferChecked;
|
|
305
|
+
export const transferFrom: typeof globalThis.transferFrom;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// The catch-all modules — a JSON ABI beside the program, another `@sauce/` library — are declared
|
|
309
|
+
// last, in index.d.ts: of the patterns a specifier matches, TypeScript takes the first declared.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarations.d.ts","sourceRoot":"","sources":["../../src/sauce-script/declarations.ts"],"names":[],"mappings":"AAiLA,kCAAkC;AAClC,wBAAgB,uBAAuB,IAAI,MAAM,CAkFhD"}
|