@eco-incorp/sauce 0.99.4 → 0.99.5
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 +105 -63
- package/actions/action-program.schema.json +1810 -0
- package/actions/dist/abis.d.ts +167 -0
- package/actions/dist/abis.d.ts.map +1 -0
- package/actions/dist/abis.js +215 -0
- package/actions/dist/compile.d.ts +15 -8
- package/actions/dist/compile.d.ts.map +1 -1
- package/actions/dist/compile.js +11 -33
- package/actions/dist/compose.d.ts +46 -0
- package/actions/dist/compose.d.ts.map +1 -0
- package/actions/dist/compose.js +118 -0
- package/actions/dist/emit.d.ts +0 -35
- package/actions/dist/emit.d.ts.map +1 -1
- package/actions/dist/emit.js +15 -46
- package/actions/dist/index.d.ts +11 -8
- package/actions/dist/index.d.ts.map +1 -1
- package/actions/dist/index.js +6 -4
- package/actions/dist/program.d.ts +23 -0
- package/actions/dist/program.d.ts.map +1 -0
- package/actions/dist/program.js +358 -0
- package/actions/dist/registry.d.ts +37 -0
- package/actions/dist/registry.d.ts.map +1 -0
- package/actions/dist/registry.js +36 -0
- package/actions/dist/schema.d.ts +6 -0
- package/actions/dist/schema.d.ts.map +1 -0
- package/actions/dist/schema.js +166 -0
- package/actions/dist/semantics.d.ts +18 -0
- package/actions/dist/semantics.d.ts.map +1 -0
- package/actions/dist/semantics.js +164 -0
- package/actions/dist/spec.d.ts +97 -0
- package/actions/dist/spec.d.ts.map +1 -0
- package/actions/dist/spec.js +323 -0
- package/actions/dist/split-swap.d.ts +35 -0
- package/actions/dist/split-swap.d.ts.map +1 -0
- package/actions/dist/split-swap.js +175 -0
- package/actions/dist/to-quote.d.ts +32 -56
- package/actions/dist/to-quote.d.ts.map +1 -1
- package/actions/dist/to-quote.js +134 -141
- package/actions/dist/to-sauce.d.ts +48 -32
- package/actions/dist/to-sauce.d.ts.map +1 -1
- package/actions/dist/to-sauce.js +691 -753
- package/actions/dist/types.d.ts +227 -335
- package/actions/dist/types.d.ts.map +1 -1
- package/actions/dist/types.js +12 -3
- package/dev-tools/README.md +9 -9
- package/dev-tools/artifacts/ISauceRouter.json +1 -1
- package/dev-tools/artifacts/Router.json +1 -1
- package/dev-tools/scripts/start-fork.sh +1 -1
- package/dev-tools/scripts/start-local.sh +5 -1
- package/dev-tools/src/svm-local.ts +23 -13
- package/docs/README.md +45 -34
- package/docs/api/README.md +37 -29
- package/docs/api/compiler.md +116 -55
- package/docs/api/coverage.md +99 -48
- package/docs/api/routes.md +51 -22
- package/docs/concepts/architecture.md +83 -116
- package/docs/concepts/saucescript.md +27 -23
- package/docs/examples/README.md +18 -10
- package/docs/examples/action-program.ts +75 -0
- package/docs/examples/cross-chain-cascade.sauce.ts +21 -0
- package/docs/examples/cross-chain-cascade.ts +43 -0
- package/docs/examples/cross-chain-intent.sauce.ts +23 -0
- package/docs/examples/cross-chain-intent.ts +49 -0
- package/docs/examples/first-intent.ts +7 -10
- package/docs/examples/protocol-approval.ts +3 -7
- package/docs/guides/actions.md +395 -0
- package/docs/guides/builders-and-actions.md +31 -37
- package/docs/guides/compiling.md +97 -98
- package/docs/guides/intents.md +242 -24
- package/docs/guides/nested-intents.md +165 -5
- package/docs/guides/protocols-and-tokens.md +15 -7
- package/docs/guides/quick-start.md +51 -22
- package/docs/guides/solana.md +38 -40
- package/docs/guides/verification.md +70 -31
- package/package.json +7 -2
- package/sdk/dist/artifacts/ISauceRouter.json +1 -1
- package/sdk/dist/artifacts/Router.json +1 -1
- package/sdk/dist/artifacts/V12Deployments.json +23 -22
- package/sdk/dist/artifacts/V12EngineGate.json +2 -2
- package/sdk/dist/artifacts/V12Kitchen.json +1 -1
- package/sdk/dist/artifacts/V12Pot.json +1 -1
- package/sdk/dist/artifacts/V12RuntimeBytecode.json +1 -1
- package/sdk/dist/artifacts/svm/engine-devnet.so +0 -0
- package/sdk/dist/artifacts/svm/engine-mainnet.so +0 -0
- package/sdk/dist/bytes.d.ts +10 -0
- package/sdk/dist/bytes.d.ts.map +1 -0
- package/sdk/dist/bytes.js +31 -0
- package/sdk/dist/bytes.js.map +1 -0
- package/sdk/dist/chains/canonical.d.ts +7 -1
- package/sdk/dist/chains/canonical.d.ts.map +1 -1
- package/sdk/dist/chains/canonical.js +6 -2
- package/sdk/dist/chains/canonical.js.map +1 -1
- package/sdk/dist/chains/index.d.ts +16 -2
- package/sdk/dist/chains/index.d.ts.map +1 -1
- package/sdk/dist/chains/index.js +51 -34
- package/sdk/dist/chains/index.js.map +1 -1
- package/sdk/dist/compact-arguments.d.ts +4 -1
- package/sdk/dist/compact-arguments.d.ts.map +1 -1
- package/sdk/dist/compact-arguments.js +25 -4
- package/sdk/dist/compact-arguments.js.map +1 -1
- package/sdk/dist/compiler.d.ts +13 -1
- package/sdk/dist/compiler.d.ts.map +1 -1
- package/sdk/dist/compiler.js +5 -6
- package/sdk/dist/compiler.js.map +1 -1
- package/sdk/dist/core/types.d.ts +18 -2
- package/sdk/dist/core/types.d.ts.map +1 -1
- package/sdk/dist/deployments/pot.d.ts +39 -0
- package/sdk/dist/deployments/pot.d.ts.map +1 -0
- package/sdk/dist/deployments/pot.js +48 -0
- package/sdk/dist/deployments/pot.js.map +1 -0
- package/sdk/dist/deployments/v12-addresses.d.ts +1 -4
- package/sdk/dist/deployments/v12-addresses.d.ts.map +1 -1
- package/sdk/dist/deployments/v12-addresses.js +7 -21
- package/sdk/dist/deployments/v12-addresses.js.map +1 -1
- package/sdk/dist/deposit/index.d.ts +5 -5
- 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 +3 -2
- package/sdk/dist/deposit/params.d.ts.map +1 -1
- package/sdk/dist/deposit/params.js +40 -3
- package/sdk/dist/deposit/params.js.map +1 -1
- package/sdk/dist/deposit/source.d.ts +0 -19
- package/sdk/dist/deposit/source.d.ts.map +1 -1
- package/sdk/dist/deposit/source.js +17 -34
- package/sdk/dist/deposit/source.js.map +1 -1
- package/sdk/dist/descriptors/accessors.d.ts +2 -2
- package/sdk/dist/descriptors/accessors.d.ts.map +1 -1
- package/sdk/dist/descriptors/accessors.js +15 -4
- package/sdk/dist/descriptors/accessors.js.map +1 -1
- package/sdk/dist/descriptors/call.d.ts +8 -13
- package/sdk/dist/descriptors/call.d.ts.map +1 -1
- package/sdk/dist/descriptors/call.js +7 -19
- package/sdk/dist/descriptors/call.js.map +1 -1
- package/sdk/dist/descriptors/derive.d.ts +1 -1
- package/sdk/dist/descriptors/derive.d.ts.map +1 -1
- package/sdk/dist/descriptors/derive.js +1 -1
- package/sdk/dist/descriptors/derive.js.map +1 -1
- package/sdk/dist/descriptors/index.d.ts +1 -1
- package/sdk/dist/descriptors/index.d.ts.map +1 -1
- package/sdk/dist/descriptors/index.js +1 -1
- package/sdk/dist/descriptors/index.js.map +1 -1
- package/sdk/dist/descriptors/links.d.ts +3 -12
- package/sdk/dist/descriptors/links.d.ts.map +1 -1
- package/sdk/dist/descriptors/links.js +2 -32
- package/sdk/dist/descriptors/links.js.map +1 -1
- package/sdk/dist/descriptors/query.d.ts +7 -3
- package/sdk/dist/descriptors/query.d.ts.map +1 -1
- package/sdk/dist/descriptors/query.js +9 -5
- package/sdk/dist/descriptors/query.js.map +1 -1
- package/sdk/dist/descriptors/registry.d.ts.map +1 -1
- package/sdk/dist/descriptors/registry.js +1 -0
- package/sdk/dist/descriptors/registry.js.map +1 -1
- package/sdk/dist/embedded/recipes.d.ts +3 -0
- package/sdk/dist/embedded/recipes.d.ts.map +1 -0
- package/sdk/dist/embedded/recipes.js +15 -0
- package/sdk/dist/embedded/recipes.js.map +1 -0
- package/sdk/dist/embedded/resolve.d.ts +27 -0
- package/sdk/dist/embedded/resolve.d.ts.map +1 -0
- package/sdk/dist/embedded/resolve.js +99 -0
- package/sdk/dist/embedded/resolve.js.map +1 -0
- package/sdk/dist/embedded/skills.generated.d.ts +3 -0
- package/sdk/dist/embedded/skills.generated.d.ts.map +1 -0
- package/sdk/dist/embedded/skills.generated.js +141 -0
- package/sdk/dist/embedded/skills.generated.js.map +1 -0
- package/sdk/dist/embedded/sources.generated.d.ts +7 -0
- package/sdk/dist/embedded/sources.generated.d.ts.map +1 -0
- package/sdk/dist/embedded/sources.generated.js +231 -0
- package/sdk/dist/embedded/sources.generated.js.map +1 -0
- package/sdk/dist/evm/execution-fee.d.ts +30 -0
- package/sdk/dist/evm/execution-fee.d.ts.map +1 -0
- package/sdk/dist/evm/execution-fee.js +33 -0
- package/sdk/dist/evm/execution-fee.js.map +1 -0
- package/sdk/dist/index.d.ts +7 -2
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +16 -10
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/plugin/index.d.ts +1 -1
- package/sdk/dist/plugin/index.d.ts.map +1 -1
- package/sdk/dist/plugin/index.js +5 -22
- package/sdk/dist/plugin/index.js.map +1 -1
- package/sdk/dist/protocols/aave-v4/abis.d.ts +201 -0
- package/sdk/dist/protocols/aave-v4/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/abis.js +139 -0
- package/sdk/dist/protocols/aave-v4/abis.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/addresses.d.ts +3 -0
- package/sdk/dist/protocols/aave-v4/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/addresses.js +65 -0
- package/sdk/dist/protocols/aave-v4/addresses.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/functions.d.ts +5 -0
- package/sdk/dist/protocols/aave-v4/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/functions.js +37 -0
- package/sdk/dist/protocols/aave-v4/functions.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/index.d.ts +5 -0
- package/sdk/dist/protocols/aave-v4/index.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/index.js +5 -0
- package/sdk/dist/protocols/aave-v4/index.js.map +1 -0
- package/sdk/dist/protocols/aave-v4/info.d.ts +3 -0
- package/sdk/dist/protocols/aave-v4/info.d.ts.map +1 -0
- package/sdk/dist/protocols/aave-v4/info.js +12 -0
- package/sdk/dist/protocols/aave-v4/info.js.map +1 -0
- package/sdk/dist/protocols/across/abis.d.ts +24 -12
- package/sdk/dist/protocols/across/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/across/abis.js +16 -8
- package/sdk/dist/protocols/across/abis.js.map +1 -1
- package/sdk/dist/protocols/across/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/across/addresses.js +10 -0
- package/sdk/dist/protocols/across/addresses.js.map +1 -1
- package/sdk/dist/protocols/across/functions.d.ts +1 -1
- package/sdk/dist/protocols/across/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/across/functions.js +2 -2
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts +112 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js +73 -0
- package/sdk/dist/protocols/aerodrome-slipstream/abis.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts +3 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.js +39 -0
- package/sdk/dist/protocols/aerodrome-slipstream/addresses.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts +2 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.js +9 -0
- package/sdk/dist/protocols/aerodrome-slipstream/functions.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts +5 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.js +5 -0
- package/sdk/dist/protocols/aerodrome-slipstream/index.js.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts +3 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.d.ts.map +1 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.js +12 -0
- package/sdk/dist/protocols/aerodrome-slipstream/info.js.map +1 -0
- package/sdk/dist/protocols/aevo/abis.d.ts +17 -2
- package/sdk/dist/protocols/aevo/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/aevo/abis.js +10 -2
- package/sdk/dist/protocols/aevo/abis.js.map +1 -1
- package/sdk/dist/protocols/aevo/functions.d.ts +1 -1
- package/sdk/dist/protocols/aevo/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/aevo/functions.js +2 -2
- package/sdk/dist/protocols/alchemix/abis.d.ts +1 -1
- package/sdk/dist/protocols/alchemix/abis.js +1 -1
- package/sdk/dist/protocols/alchemix/abis.js.map +1 -1
- package/sdk/dist/protocols/ambient/abis.d.ts +2 -2
- package/sdk/dist/protocols/ambient/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/ambient/abis.js +3 -2
- package/sdk/dist/protocols/ambient/abis.js.map +1 -1
- package/sdk/dist/protocols/ambient/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/ambient/addresses.js +2 -1
- package/sdk/dist/protocols/ambient/addresses.js.map +1 -1
- package/sdk/dist/protocols/arrakis/abis.d.ts +4 -13
- package/sdk/dist/protocols/arrakis/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/arrakis/abis.js +2 -11
- package/sdk/dist/protocols/arrakis/abis.js.map +1 -1
- package/sdk/dist/protocols/arrakis/functions.d.ts +1 -1
- package/sdk/dist/protocols/arrakis/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/arrakis/functions.js +2 -1
- package/sdk/dist/protocols/arrakis/functions.js.map +1 -1
- package/sdk/dist/protocols/axelar/abis.d.ts +1 -1
- package/sdk/dist/protocols/axelar/abis.js +1 -1
- package/sdk/dist/protocols/balancer-v2/abis.d.ts +7 -7
- package/sdk/dist/protocols/balancer-v2/abis.js +7 -7
- package/sdk/dist/protocols/balancer-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/cbeth/abis.d.ts +7 -1
- package/sdk/dist/protocols/cbeth/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/cbeth/abis.js +6 -2
- package/sdk/dist/protocols/cbeth/abis.js.map +1 -1
- package/sdk/dist/protocols/cctp/abis.d.ts +1 -4
- package/sdk/dist/protocols/cctp/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/cctp/abis.js +3 -1
- package/sdk/dist/protocols/cctp/abis.js.map +1 -1
- package/sdk/dist/protocols/cctp/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/cctp/addresses.js +3 -0
- package/sdk/dist/protocols/cctp/addresses.js.map +1 -1
- package/sdk/dist/protocols/chainlink/abis.d.ts +6 -6
- package/sdk/dist/protocols/chainlink/abis.js +6 -6
- package/sdk/dist/protocols/chainlink/abis.js.map +1 -1
- package/sdk/dist/protocols/chainlink/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/chainlink/addresses.js +10 -0
- package/sdk/dist/protocols/chainlink/addresses.js.map +1 -1
- package/sdk/dist/protocols/chainlink-ccip/abis.d.ts +1 -1
- package/sdk/dist/protocols/chainlink-ccip/abis.js +1 -1
- package/sdk/dist/protocols/chainlink-ccip/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/chainlink-ccip/addresses.js +9 -0
- package/sdk/dist/protocols/chainlink-ccip/addresses.js.map +1 -1
- package/sdk/dist/protocols/circle-gateway/abis.d.ts +114 -0
- package/sdk/dist/protocols/circle-gateway/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/abis.js +86 -0
- package/sdk/dist/protocols/circle-gateway/abis.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/addresses.d.ts +3 -0
- package/sdk/dist/protocols/circle-gateway/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/addresses.js +37 -0
- package/sdk/dist/protocols/circle-gateway/addresses.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/functions.d.ts +4 -0
- package/sdk/dist/protocols/circle-gateway/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/functions.js +27 -0
- package/sdk/dist/protocols/circle-gateway/functions.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/index.d.ts +5 -0
- package/sdk/dist/protocols/circle-gateway/index.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/index.js +5 -0
- package/sdk/dist/protocols/circle-gateway/index.js.map +1 -0
- package/sdk/dist/protocols/circle-gateway/info.d.ts +3 -0
- package/sdk/dist/protocols/circle-gateway/info.d.ts.map +1 -0
- package/sdk/dist/protocols/circle-gateway/info.js +12 -0
- package/sdk/dist/protocols/circle-gateway/info.js.map +1 -0
- package/sdk/dist/protocols/compound-v2/abis.d.ts +2 -2
- package/sdk/dist/protocols/compound-v2/abis.js +2 -2
- package/sdk/dist/protocols/compound-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/connext/abis.d.ts +46 -6
- package/sdk/dist/protocols/connext/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/connext/abis.js +27 -5
- package/sdk/dist/protocols/connext/abis.js.map +1 -1
- package/sdk/dist/protocols/connext/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/connext/addresses.js +1 -7
- package/sdk/dist/protocols/connext/addresses.js.map +1 -1
- package/sdk/dist/protocols/connext/functions.d.ts +1 -1
- package/sdk/dist/protocols/connext/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/connext/functions.js +3 -2
- package/sdk/dist/protocols/connext/functions.js.map +1 -1
- package/sdk/dist/protocols/curve/abis.d.ts +119 -7
- package/sdk/dist/protocols/curve/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/curve/abis.js +90 -7
- package/sdk/dist/protocols/curve/abis.js.map +1 -1
- package/sdk/dist/protocols/debridge/abis.d.ts +7 -7
- package/sdk/dist/protocols/debridge/abis.js +5 -5
- package/sdk/dist/protocols/debridge/abis.js.map +1 -1
- package/sdk/dist/protocols/debridge/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/debridge/addresses.js +11 -0
- package/sdk/dist/protocols/debridge/addresses.js.map +1 -1
- package/sdk/dist/protocols/eco-routes/abis.d.ts +463 -0
- package/sdk/dist/protocols/eco-routes/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/abis.js +632 -0
- package/sdk/dist/protocols/eco-routes/abis.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.d.ts +9 -0
- package/sdk/dist/protocols/eco-routes/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts +585 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.js +590 -0
- package/sdk/dist/protocols/eco-routes/addresses.generated.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/addresses.js +21 -0
- package/sdk/dist/protocols/eco-routes/addresses.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/functions.d.ts +12 -0
- package/sdk/dist/protocols/eco-routes/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/functions.js +45 -0
- package/sdk/dist/protocols/eco-routes/functions.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/index.d.ts +6 -0
- package/sdk/dist/protocols/eco-routes/index.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/index.js +6 -0
- package/sdk/dist/protocols/eco-routes/index.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/info.d.ts +3 -0
- package/sdk/dist/protocols/eco-routes/info.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/info.js +12 -0
- package/sdk/dist/protocols/eco-routes/info.js.map +1 -0
- package/sdk/dist/protocols/eco-routes/lookup.d.ts +82 -0
- package/sdk/dist/protocols/eco-routes/lookup.d.ts.map +1 -0
- package/sdk/dist/protocols/eco-routes/lookup.js +148 -0
- package/sdk/dist/protocols/eco-routes/lookup.js.map +1 -0
- package/sdk/dist/protocols/eigenlayer/abis.d.ts +4 -4
- package/sdk/dist/protocols/eigenlayer/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/eigenlayer/abis.js +5 -4
- package/sdk/dist/protocols/eigenlayer/abis.js.map +1 -1
- package/sdk/dist/protocols/ens/abis.d.ts +4 -4
- package/sdk/dist/protocols/ens/abis.js +4 -4
- package/sdk/dist/protocols/etherfi/abis.d.ts +1 -1
- package/sdk/dist/protocols/etherfi/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/etherfi/abis.js +2 -1
- package/sdk/dist/protocols/etherfi/abis.js.map +1 -1
- package/sdk/dist/protocols/euler-v2/abis.d.ts +2 -2
- package/sdk/dist/protocols/euler-v2/abis.js +2 -2
- package/sdk/dist/protocols/euler-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/fluid/abis.d.ts +47 -26
- package/sdk/dist/protocols/fluid/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/fluid/abis.js +39 -18
- package/sdk/dist/protocols/fluid/abis.js.map +1 -1
- package/sdk/dist/protocols/fluid/functions.d.ts +4 -4
- package/sdk/dist/protocols/fluid/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/fluid/functions.js +18 -16
- package/sdk/dist/protocols/fluid/functions.js.map +1 -1
- package/sdk/dist/protocols/gains-network/abis.d.ts +44 -35
- package/sdk/dist/protocols/gains-network/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gains-network/abis.js +26 -21
- package/sdk/dist/protocols/gains-network/abis.js.map +1 -1
- package/sdk/dist/protocols/gains-network/functions.d.ts +3 -3
- package/sdk/dist/protocols/gains-network/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gains-network/functions.js +6 -6
- package/sdk/dist/protocols/gamma/abis.d.ts +43 -0
- package/sdk/dist/protocols/gamma/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gamma/abis.js +30 -0
- package/sdk/dist/protocols/gamma/abis.js.map +1 -1
- package/sdk/dist/protocols/gamma/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/gamma/addresses.js +2 -7
- package/sdk/dist/protocols/gamma/addresses.js.map +1 -1
- package/sdk/dist/protocols/gamma/functions.d.ts +1 -0
- package/sdk/dist/protocols/gamma/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gamma/functions.js +9 -0
- package/sdk/dist/protocols/gamma/functions.js.map +1 -1
- package/sdk/dist/protocols/gelato/abis.d.ts +2 -2
- package/sdk/dist/protocols/gelato/abis.js +2 -2
- package/sdk/dist/protocols/gmx-v1/abis.d.ts +15 -3
- package/sdk/dist/protocols/gmx-v1/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v1/abis.js +5 -3
- package/sdk/dist/protocols/gmx-v1/abis.js.map +1 -1
- package/sdk/dist/protocols/gmx-v1/functions.d.ts +2 -2
- package/sdk/dist/protocols/gmx-v1/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v1/functions.js +2 -2
- package/sdk/dist/protocols/gmx-v2/abis.d.ts +11 -5
- package/sdk/dist/protocols/gmx-v2/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v2/abis.js +7 -4
- package/sdk/dist/protocols/gmx-v2/abis.js.map +1 -1
- package/sdk/dist/protocols/gmx-v2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v2/addresses.js +3 -1
- package/sdk/dist/protocols/gmx-v2/addresses.js.map +1 -1
- package/sdk/dist/protocols/gmx-v2/functions.d.ts +1 -1
- package/sdk/dist/protocols/gmx-v2/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/gmx-v2/functions.js +4 -2
- package/sdk/dist/protocols/gmx-v2/functions.js.map +1 -1
- package/sdk/dist/protocols/harvest/abis.d.ts +8 -2
- package/sdk/dist/protocols/harvest/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/harvest/abis.js +2 -2
- package/sdk/dist/protocols/harvest/abis.js.map +1 -1
- package/sdk/dist/protocols/hegic/abis.d.ts +5 -2
- package/sdk/dist/protocols/hegic/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/hegic/abis.js +7 -2
- package/sdk/dist/protocols/hegic/abis.js.map +1 -1
- package/sdk/dist/protocols/hegic/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/hegic/addresses.js +1 -0
- package/sdk/dist/protocols/hegic/addresses.js.map +1 -1
- package/sdk/dist/protocols/hegic/functions.d.ts +1 -1
- package/sdk/dist/protocols/hegic/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/hegic/functions.js +3 -3
- package/sdk/dist/protocols/hop/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/hop/addresses.js +5 -2
- package/sdk/dist/protocols/hop/addresses.js.map +1 -1
- package/sdk/dist/protocols/hyperlane/abis.d.ts +5 -5
- package/sdk/dist/protocols/hyperlane/abis.js +5 -5
- package/sdk/dist/protocols/hyperlane/abis.js.map +1 -1
- package/sdk/dist/protocols/hyperlane/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/hyperlane/addresses.js +9 -0
- package/sdk/dist/protocols/hyperlane/addresses.js.map +1 -1
- package/sdk/dist/protocols/index.d.ts +1 -0
- package/sdk/dist/protocols/index.d.ts.map +1 -1
- package/sdk/dist/protocols/index.js +13 -0
- package/sdk/dist/protocols/index.js.map +1 -1
- package/sdk/dist/protocols/kim/abis.d.ts +7 -20
- package/sdk/dist/protocols/kim/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/kim/abis.js +6 -12
- package/sdk/dist/protocols/kim/abis.js.map +1 -1
- package/sdk/dist/protocols/kim/functions.d.ts +1 -1
- package/sdk/dist/protocols/kim/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/kim/functions.js +3 -2
- package/sdk/dist/protocols/kim/functions.js.map +1 -1
- package/sdk/dist/protocols/kyberswap/abis.d.ts +41 -16
- package/sdk/dist/protocols/kyberswap/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/kyberswap/abis.js +21 -8
- package/sdk/dist/protocols/kyberswap/abis.js.map +1 -1
- package/sdk/dist/protocols/kyberswap/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/kyberswap/addresses.js +12 -2
- package/sdk/dist/protocols/kyberswap/addresses.js.map +1 -1
- package/sdk/dist/protocols/kyberswap-aggregator/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/kyberswap-aggregator/addresses.js +12 -1
- package/sdk/dist/protocols/kyberswap-aggregator/addresses.js.map +1 -1
- package/sdk/dist/protocols/layerbank/abis.d.ts +81 -24
- package/sdk/dist/protocols/layerbank/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/layerbank/abis.js +69 -17
- package/sdk/dist/protocols/layerbank/abis.js.map +1 -1
- package/sdk/dist/protocols/layerbank/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/layerbank/addresses.js +3 -1
- package/sdk/dist/protocols/layerbank/addresses.js.map +1 -1
- package/sdk/dist/protocols/layerbank/functions.d.ts +4 -4
- package/sdk/dist/protocols/layerbank/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/layerbank/functions.js +18 -16
- package/sdk/dist/protocols/layerbank/functions.js.map +1 -1
- package/sdk/dist/protocols/layerzero/abis.d.ts +3 -3
- package/sdk/dist/protocols/layerzero/abis.js +3 -3
- package/sdk/dist/protocols/layerzero/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/layerzero/addresses.js +11 -1
- package/sdk/dist/protocols/layerzero/addresses.js.map +1 -1
- package/sdk/dist/protocols/level-finance/abis.d.ts +6 -0
- package/sdk/dist/protocols/level-finance/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/level-finance/abis.js +2 -0
- package/sdk/dist/protocols/level-finance/abis.js.map +1 -1
- package/sdk/dist/protocols/level-finance/functions.d.ts +2 -2
- package/sdk/dist/protocols/level-finance/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/level-finance/functions.js +4 -4
- package/sdk/dist/protocols/lifi/abis.d.ts +41 -4
- package/sdk/dist/protocols/lifi/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/lifi/abis.js +24 -4
- package/sdk/dist/protocols/lifi/abis.js.map +1 -1
- package/sdk/dist/protocols/lifi/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/lifi/addresses.js +9 -0
- package/sdk/dist/protocols/lifi/addresses.js.map +1 -1
- package/sdk/dist/protocols/lifi/functions.d.ts +1 -1
- package/sdk/dist/protocols/lifi/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/lifi/functions.js +5 -2
- package/sdk/dist/protocols/lifi/functions.js.map +1 -1
- package/sdk/dist/protocols/liquity-v1/abis.d.ts +6 -0
- package/sdk/dist/protocols/liquity-v1/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/liquity-v1/abis.js +7 -1
- package/sdk/dist/protocols/liquity-v1/abis.js.map +1 -1
- package/sdk/dist/protocols/liquity-v1/functions.d.ts +1 -1
- package/sdk/dist/protocols/liquity-v1/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/liquity-v1/functions.js +1 -1
- package/sdk/dist/protocols/mantle-meth/abis.d.ts +26 -25
- package/sdk/dist/protocols/mantle-meth/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/mantle-meth/abis.js +22 -17
- package/sdk/dist/protocols/mantle-meth/abis.js.map +1 -1
- package/sdk/dist/protocols/mantle-meth/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/mantle-meth/addresses.js +3 -0
- package/sdk/dist/protocols/mantle-meth/addresses.js.map +1 -1
- package/sdk/dist/protocols/mantle-meth/functions.d.ts +1 -1
- package/sdk/dist/protocols/mantle-meth/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/mantle-meth/functions.js +4 -4
- package/sdk/dist/protocols/maverick/abis.d.ts +9 -0
- package/sdk/dist/protocols/maverick/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/maverick/abis.js +7 -1
- package/sdk/dist/protocols/maverick/abis.js.map +1 -1
- package/sdk/dist/protocols/morpho-blue/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/morpho-blue/addresses.js +10 -0
- package/sdk/dist/protocols/morpho-blue/addresses.js.map +1 -1
- package/sdk/dist/protocols/mux-protocol/abis.d.ts +87 -32
- package/sdk/dist/protocols/mux-protocol/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/mux-protocol/abis.js +54 -21
- package/sdk/dist/protocols/mux-protocol/abis.js.map +1 -1
- package/sdk/dist/protocols/mux-protocol/functions.d.ts +2 -2
- package/sdk/dist/protocols/mux-protocol/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/mux-protocol/functions.js +8 -8
- package/sdk/dist/protocols/olympus/abis.d.ts +5 -2
- package/sdk/dist/protocols/olympus/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/olympus/abis.js +2 -2
- package/sdk/dist/protocols/olympus/abis.js.map +1 -1
- package/sdk/dist/protocols/oneinch/abis.d.ts +5 -5
- package/sdk/dist/protocols/oneinch/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/oneinch/abis.js +5 -3
- package/sdk/dist/protocols/oneinch/abis.js.map +1 -1
- package/sdk/dist/protocols/oneinch/functions.d.ts +1 -1
- package/sdk/dist/protocols/oneinch/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/oneinch/functions.js +2 -2
- package/sdk/dist/protocols/openocean/abis.d.ts +14 -1
- package/sdk/dist/protocols/openocean/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/openocean/abis.js +11 -1
- package/sdk/dist/protocols/openocean/abis.js.map +1 -1
- package/sdk/dist/protocols/openocean/functions.d.ts +1 -1
- package/sdk/dist/protocols/openocean/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/openocean/functions.js +1 -1
- package/sdk/dist/protocols/opyn/abis.d.ts +4 -1
- package/sdk/dist/protocols/opyn/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/opyn/abis.js +1 -1
- package/sdk/dist/protocols/opyn/abis.js.map +1 -1
- package/sdk/dist/protocols/pancakeswap-v3/abis.d.ts +6 -6
- package/sdk/dist/protocols/pancakeswap-v3/abis.js +6 -6
- package/sdk/dist/protocols/pancakeswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/paraswap/abis.d.ts +1 -1
- package/sdk/dist/protocols/paraswap/abis.js +1 -1
- package/sdk/dist/protocols/pendle/abis.d.ts +288 -6
- package/sdk/dist/protocols/pendle/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pendle/abis.js +160 -6
- package/sdk/dist/protocols/pendle/abis.js.map +1 -1
- package/sdk/dist/protocols/permit2/abis.d.ts +1 -1
- package/sdk/dist/protocols/permit2/abis.js +1 -1
- package/sdk/dist/protocols/permit2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/permit2/addresses.js +9 -0
- package/sdk/dist/protocols/permit2/addresses.js.map +1 -1
- package/sdk/dist/protocols/perpetual-protocol/abis.d.ts +46 -38
- package/sdk/dist/protocols/perpetual-protocol/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/perpetual-protocol/abis.js +27 -14
- package/sdk/dist/protocols/perpetual-protocol/abis.js.map +1 -1
- package/sdk/dist/protocols/premia/abis.d.ts +18 -17
- package/sdk/dist/protocols/premia/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/premia/abis.js +20 -10
- package/sdk/dist/protocols/premia/abis.js.map +1 -1
- package/sdk/dist/protocols/premia/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/premia/addresses.js +3 -8
- package/sdk/dist/protocols/premia/addresses.js.map +1 -1
- package/sdk/dist/protocols/premia/functions.d.ts +2 -2
- package/sdk/dist/protocols/premia/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/premia/functions.js +8 -8
- package/sdk/dist/protocols/pyth/abis.d.ts +3 -3
- package/sdk/dist/protocols/pyth/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/pyth/abis.js +6 -3
- package/sdk/dist/protocols/pyth/abis.js.map +1 -1
- package/sdk/dist/protocols/reflexer/abis.d.ts +8 -5
- package/sdk/dist/protocols/reflexer/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/reflexer/abis.js +10 -6
- package/sdk/dist/protocols/reflexer/abis.js.map +1 -1
- package/sdk/dist/protocols/renzo/abis.d.ts +1 -1
- package/sdk/dist/protocols/renzo/abis.js +1 -1
- package/sdk/dist/protocols/renzo/abis.js.map +1 -1
- package/sdk/dist/protocols/sablier/abis.d.ts +2 -2
- package/sdk/dist/protocols/sablier/abis.js +2 -2
- package/sdk/dist/protocols/safe/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/safe/addresses.js +10 -0
- package/sdk/dist/protocols/safe/addresses.js.map +1 -1
- package/sdk/dist/protocols/seaport/abis.d.ts +65 -5
- package/sdk/dist/protocols/seaport/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/seaport/abis.js +41 -5
- package/sdk/dist/protocols/seaport/abis.js.map +1 -1
- package/sdk/dist/protocols/seaport/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/seaport/addresses.js +10 -0
- package/sdk/dist/protocols/seaport/addresses.js.map +1 -1
- package/sdk/dist/protocols/seaport/functions.d.ts +1 -1
- package/sdk/dist/protocols/seaport/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/seaport/functions.js +1 -0
- package/sdk/dist/protocols/seaport/functions.js.map +1 -1
- package/sdk/dist/protocols/silo/abis.d.ts +3 -0
- package/sdk/dist/protocols/silo/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/silo/abis.js +4 -1
- package/sdk/dist/protocols/silo/abis.js.map +1 -1
- package/sdk/dist/protocols/silo/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/silo/addresses.js +2 -1
- package/sdk/dist/protocols/silo/addresses.js.map +1 -1
- package/sdk/dist/protocols/silo/functions.d.ts +1 -1
- package/sdk/dist/protocols/silo/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/silo/functions.js +2 -1
- package/sdk/dist/protocols/silo/functions.js.map +1 -1
- package/sdk/dist/protocols/socket/abis.d.ts +1 -13
- package/sdk/dist/protocols/socket/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/socket/abis.js +3 -11
- package/sdk/dist/protocols/socket/abis.js.map +1 -1
- package/sdk/dist/protocols/socket/functions.d.ts +1 -1
- package/sdk/dist/protocols/socket/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/socket/functions.js +1 -1
- package/sdk/dist/protocols/spookyswap/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/spookyswap/addresses.js +2 -1
- package/sdk/dist/protocols/spookyswap/addresses.js.map +1 -1
- package/sdk/dist/protocols/squid/abis.d.ts +33 -21
- package/sdk/dist/protocols/squid/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/squid/abis.js +19 -13
- package/sdk/dist/protocols/squid/abis.js.map +1 -1
- package/sdk/dist/protocols/squid/functions.d.ts +1 -1
- package/sdk/dist/protocols/squid/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/squid/functions.js +2 -2
- package/sdk/dist/protocols/stargate/abis.d.ts +23 -3
- package/sdk/dist/protocols/stargate/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/stargate/abis.js +19 -3
- package/sdk/dist/protocols/stargate/abis.js.map +1 -1
- package/sdk/dist/protocols/superfluid/abis.d.ts +2 -2
- package/sdk/dist/protocols/superfluid/abis.js +2 -2
- package/sdk/dist/protocols/superfluid/abis.js.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/sushiswap-v2/addresses.js +2 -1
- package/sdk/dist/protocols/sushiswap-v2/addresses.js.map +1 -1
- package/sdk/dist/protocols/swell/abis.d.ts +2 -8
- package/sdk/dist/protocols/swell/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/swell/abis.js +4 -2
- package/sdk/dist/protocols/swell/abis.js.map +1 -1
- package/sdk/dist/protocols/swell/functions.d.ts +2 -2
- package/sdk/dist/protocols/swell/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/swell/functions.js +4 -2
- package/sdk/dist/protocols/swell/functions.js.map +1 -1
- package/sdk/dist/protocols/synapse/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/synapse/addresses.js +2 -1
- package/sdk/dist/protocols/synapse/addresses.js.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/abis.d.ts +40 -5
- package/sdk/dist/protocols/synthetix-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/abis.js +27 -5
- package/sdk/dist/protocols/synthetix-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/synthetix-v3/addresses.js +2 -1
- package/sdk/dist/protocols/synthetix-v3/addresses.js.map +1 -1
- package/sdk/dist/protocols/synthra-v3/abis.d.ts +347 -0
- package/sdk/dist/protocols/synthra-v3/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/abis.js +242 -0
- package/sdk/dist/protocols/synthra-v3/abis.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/addresses.d.ts +3 -0
- package/sdk/dist/protocols/synthra-v3/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/addresses.js +16 -0
- package/sdk/dist/protocols/synthra-v3/addresses.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/functions.d.ts +2 -0
- package/sdk/dist/protocols/synthra-v3/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/functions.js +9 -0
- package/sdk/dist/protocols/synthra-v3/functions.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/index.d.ts +5 -0
- package/sdk/dist/protocols/synthra-v3/index.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/index.js +5 -0
- package/sdk/dist/protocols/synthra-v3/index.js.map +1 -0
- package/sdk/dist/protocols/synthra-v3/info.d.ts +3 -0
- package/sdk/dist/protocols/synthra-v3/info.d.ts.map +1 -0
- package/sdk/dist/protocols/synthra-v3/info.js +11 -0
- package/sdk/dist/protocols/synthra-v3/info.js.map +1 -0
- package/sdk/dist/protocols/thales/abis.d.ts +53 -24
- package/sdk/dist/protocols/thales/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/thales/abis.js +27 -11
- package/sdk/dist/protocols/thales/abis.js.map +1 -1
- package/sdk/dist/protocols/thales/functions.d.ts +2 -2
- package/sdk/dist/protocols/thales/functions.d.ts.map +1 -1
- package/sdk/dist/protocols/thales/functions.js +5 -6
- package/sdk/dist/protocols/thales/functions.js.map +1 -1
- package/sdk/dist/protocols/thruster/abis.d.ts +1 -1
- package/sdk/dist/protocols/thruster/abis.js +1 -1
- package/sdk/dist/protocols/trader-joe/abis.d.ts +3 -3
- package/sdk/dist/protocols/trader-joe/abis.js +2 -2
- package/sdk/dist/protocols/trader-joe/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v2/addresses.js +10 -0
- package/sdk/dist/protocols/uniswap-v2/addresses.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts +127 -8
- package/sdk/dist/protocols/uniswap-v3/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/abis.js +90 -8
- package/sdk/dist/protocols/uniswap-v3/abis.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v3/addresses.js +14 -0
- package/sdk/dist/protocols/uniswap-v3/addresses.js.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts +27 -15
- package/sdk/dist/protocols/uniswap-v4/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/uniswap-v4/abis.js +25 -15
- 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 +11 -0
- package/sdk/dist/protocols/uniswap-v4/addresses.js.map +1 -1
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts +104 -0
- package/sdk/dist/protocols/unitflow-v3/abis.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/abis.js +70 -0
- package/sdk/dist/protocols/unitflow-v3/abis.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.d.ts +3 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.js +19 -0
- package/sdk/dist/protocols/unitflow-v3/addresses.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/functions.d.ts +2 -0
- package/sdk/dist/protocols/unitflow-v3/functions.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/functions.js +9 -0
- package/sdk/dist/protocols/unitflow-v3/functions.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/index.d.ts +5 -0
- package/sdk/dist/protocols/unitflow-v3/index.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/index.js +5 -0
- package/sdk/dist/protocols/unitflow-v3/index.js.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/info.d.ts +3 -0
- package/sdk/dist/protocols/unitflow-v3/info.d.ts.map +1 -0
- package/sdk/dist/protocols/unitflow-v3/info.js +12 -0
- package/sdk/dist/protocols/unitflow-v3/info.js.map +1 -0
- package/sdk/dist/protocols/velodrome/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/velodrome/addresses.js +3 -1
- package/sdk/dist/protocols/velodrome/addresses.js.map +1 -1
- package/sdk/dist/protocols/venus/abis.d.ts +62 -1
- package/sdk/dist/protocols/venus/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/venus/abis.js +48 -1
- package/sdk/dist/protocols/venus/abis.js.map +1 -1
- package/sdk/dist/protocols/vertex/abis.d.ts +16 -9
- package/sdk/dist/protocols/vertex/abis.d.ts.map +1 -1
- package/sdk/dist/protocols/vertex/abis.js +13 -4
- package/sdk/dist/protocols/vertex/abis.js.map +1 -1
- package/sdk/dist/protocols/wormhole/abis.d.ts +2 -2
- package/sdk/dist/protocols/wormhole/abis.js +2 -2
- package/sdk/dist/protocols/wormhole/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/wormhole/addresses.js +9 -0
- package/sdk/dist/protocols/wormhole/addresses.js.map +1 -1
- package/sdk/dist/protocols/zerolend/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/zerolend/addresses.js +2 -1
- package/sdk/dist/protocols/zerolend/addresses.js.map +1 -1
- package/sdk/dist/protocols/zerox/addresses.d.ts.map +1 -1
- package/sdk/dist/protocols/zerox/addresses.js +2 -1
- package/sdk/dist/protocols/zerox/addresses.js.map +1 -1
- package/sdk/dist/protocols/zksync-bridge/abis.d.ts +1 -1
- package/sdk/dist/protocols/zksync-bridge/abis.js +1 -1
- package/sdk/dist/recipes/cctp-transfer.d.ts +17 -6
- package/sdk/dist/recipes/cctp-transfer.d.ts.map +1 -1
- package/sdk/dist/recipes/cctp-transfer.js +7 -20
- package/sdk/dist/recipes/cctp-transfer.js.map +1 -1
- package/sdk/dist/recipes/index.d.ts +5 -15
- package/sdk/dist/recipes/index.d.ts.map +1 -1
- package/sdk/dist/recipes/index.js +19 -36
- package/sdk/dist/recipes/index.js.map +1 -1
- package/sdk/dist/recipes/settle.sauce.ts +15 -2
- package/sdk/dist/routes/chain-exports.generated.d.ts +97 -0
- package/sdk/dist/routes/chain-exports.generated.d.ts.map +1 -0
- package/sdk/dist/routes/chain-exports.generated.js +91 -0
- package/sdk/dist/routes/chain-exports.generated.js.map +1 -0
- package/sdk/dist/routes/compile-types.d.ts +3 -0
- package/sdk/dist/routes/compile-types.d.ts.map +1 -1
- package/sdk/dist/routes/composed.d.ts +13 -0
- package/sdk/dist/routes/composed.d.ts.map +1 -0
- package/sdk/dist/routes/composed.js +94 -0
- package/sdk/dist/routes/composed.js.map +1 -0
- package/sdk/dist/routes/encode.d.ts +6 -6
- package/sdk/dist/routes/globals.d.ts +19 -4
- package/sdk/dist/routes/globals.d.ts.map +1 -1
- package/sdk/dist/routes/globals.js +51 -85
- package/sdk/dist/routes/globals.js.map +1 -1
- package/sdk/dist/routes/index.d.ts +15 -6
- package/sdk/dist/routes/index.d.ts.map +1 -1
- package/sdk/dist/routes/index.js +17 -5
- package/sdk/dist/routes/index.js.map +1 -1
- package/sdk/dist/routes/intent-dsl.d.ts +60 -19
- package/sdk/dist/routes/intent-dsl.d.ts.map +1 -1
- package/sdk/dist/routes/intent-dsl.js +175 -67
- package/sdk/dist/routes/intent-dsl.js.map +1 -1
- package/sdk/dist/routes/intent-pot.d.ts +49 -0
- package/sdk/dist/routes/intent-pot.d.ts.map +1 -0
- package/sdk/dist/routes/intent-pot.js +46 -0
- package/sdk/dist/routes/intent-pot.js.map +1 -0
- package/sdk/dist/routes/intent-sugar.d.ts +97 -0
- package/sdk/dist/routes/intent-sugar.d.ts.map +1 -0
- package/sdk/dist/routes/intent-sugar.js +615 -0
- package/sdk/dist/routes/intent-sugar.js.map +1 -0
- package/sdk/dist/routes/nest-dynamic.d.ts +146 -0
- package/sdk/dist/routes/nest-dynamic.d.ts.map +1 -0
- package/sdk/dist/routes/nest-dynamic.js +308 -0
- package/sdk/dist/routes/nest-dynamic.js.map +1 -0
- package/sdk/dist/routes/nest.d.ts +16 -5
- package/sdk/dist/routes/nest.d.ts.map +1 -1
- package/sdk/dist/routes/nest.js +29 -10
- package/sdk/dist/routes/nest.js.map +1 -1
- package/sdk/dist/routes/portal.d.ts +7 -272
- package/sdk/dist/routes/portal.d.ts.map +1 -1
- package/sdk/dist/routes/portal.js +13 -92
- package/sdk/dist/routes/portal.js.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.d.ts.map +1 -1
- package/sdk/dist/routes/protocol-rewrite.js +2 -0
- package/sdk/dist/routes/protocol-rewrite.js.map +1 -1
- package/sdk/dist/routes/rs-compile.d.ts +26 -15
- package/sdk/dist/routes/rs-compile.d.ts.map +1 -1
- package/sdk/dist/routes/rs-compile.js +57 -169
- package/sdk/dist/routes/rs-compile.js.map +1 -1
- package/sdk/dist/routes/sauce-route.d.ts +26 -1
- package/sdk/dist/routes/sauce-route.d.ts.map +1 -1
- package/sdk/dist/routes/sauce-route.js +109 -6
- package/sdk/dist/routes/sauce-route.js.map +1 -1
- package/sdk/dist/routes/source-globals.generated.d.ts +435 -20
- package/sdk/dist/routes/source-globals.generated.d.ts.map +1 -1
- package/sdk/dist/routes/template.d.ts +184 -0
- package/sdk/dist/routes/template.d.ts.map +1 -0
- package/sdk/dist/routes/template.js +338 -0
- package/sdk/dist/routes/template.js.map +1 -0
- package/sdk/dist/routes/token-registry.d.ts.map +1 -1
- package/sdk/dist/routes/token-registry.js +35 -0
- 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/skills/loader.d.ts +2 -7
- package/sdk/dist/skills/loader.d.ts.map +1 -1
- package/sdk/dist/skills/loader.js +14 -25
- package/sdk/dist/skills/loader.js.map +1 -1
- package/sdk/dist/std/token/token.evm.js +56 -15
- package/sdk/dist/std/token/token.svm.js +24 -3
- package/sdk/dist/svm/accessors.d.ts +3 -3
- package/sdk/dist/svm/accessors.js +3 -3
- package/sdk/dist/svm/client.d.ts +1 -0
- package/sdk/dist/svm/client.d.ts.map +1 -1
- package/sdk/dist/svm/client.js +6 -0
- package/sdk/dist/svm/client.js.map +1 -1
- package/sdk/dist/svm/clusters.d.ts +6 -2
- package/sdk/dist/svm/clusters.d.ts.map +1 -1
- package/sdk/dist/svm/clusters.js +0 -2
- package/sdk/dist/svm/clusters.js.map +1 -1
- package/sdk/dist/svm/engine-artifacts.d.ts +24 -13
- package/sdk/dist/svm/engine-artifacts.d.ts.map +1 -1
- package/sdk/dist/svm/engine-artifacts.js +31 -26
- package/sdk/dist/svm/engine-artifacts.js.map +1 -1
- package/sdk/dist/svm/engine-public.d.ts.map +1 -1
- package/sdk/dist/svm/engine-public.js +2 -1
- package/sdk/dist/svm/engine-public.js.map +1 -1
- package/sdk/dist/svm/index.d.ts +0 -1
- package/sdk/dist/svm/index.d.ts.map +1 -1
- package/sdk/dist/svm/index.js +3 -1
- package/sdk/dist/svm/index.js.map +1 -1
- package/sdk/dist/svm/intent.d.ts.map +1 -1
- package/sdk/dist/svm/intent.js +4 -3
- package/sdk/dist/svm/intent.js.map +1 -1
- package/sdk/dist/svm/loader.d.ts.map +1 -1
- package/sdk/dist/svm/loader.js +2 -3
- package/sdk/dist/svm/loader.js.map +1 -1
- package/sdk/dist/svm/recipes/index.d.ts +57 -4
- package/sdk/dist/svm/recipes/index.d.ts.map +1 -1
- package/sdk/dist/svm/recipes/index.js +7 -9
- package/sdk/dist/svm/recipes/index.js.map +1 -1
- package/sdk/dist/svm/venues/alphaq/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/alphaq/index.js +4 -2
- package/sdk/dist/svm/venues/alphaq/index.js.map +1 -1
- package/sdk/dist/svm/venues/binaryfi/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/binaryfi/index.js +2 -1
- package/sdk/dist/svm/venues/binaryfi/index.js.map +1 -1
- package/sdk/dist/svm/venues/fluxbeam/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/fluxbeam/index.js +2 -7
- package/sdk/dist/svm/venues/fluxbeam/index.js.map +1 -1
- package/sdk/dist/svm/venues/jupiter-lend-earn/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/jupiter-lend-earn/index.js +2 -1
- package/sdk/dist/svm/venues/jupiter-lend-earn/index.js.map +1 -1
- package/sdk/dist/svm/venues/kipseli/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/kipseli/index.js +31 -14
- package/sdk/dist/svm/venues/kipseli/index.js.map +1 -1
- package/sdk/dist/svm/venues/mercurial/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/mercurial/index.js +2 -7
- package/sdk/dist/svm/venues/mercurial/index.js.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js +3 -2
- package/sdk/dist/svm/venues/meteora-damm-v1-stable/index.js.map +1 -1
- package/sdk/dist/svm/venues/mswap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/mswap/index.js +2 -2
- package/sdk/dist/svm/venues/mswap/index.js.map +1 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js +2 -7
- package/sdk/dist/svm/venues/orca-legacy-token-swap/index.js.map +1 -1
- package/sdk/dist/svm/venues/saber-stableswap/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/saber-stableswap/index.js +2 -7
- package/sdk/dist/svm/venues/saber-stableswap/index.js.map +1 -1
- package/sdk/dist/svm/venues/sanctum-infinity/index.js +2 -2
- package/sdk/dist/svm/venues/sanctum-infinity/index.js.map +1 -1
- package/sdk/dist/svm/venues/sanctum-stake-pool/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/sanctum-stake-pool/index.js +2 -8
- package/sdk/dist/svm/venues/sanctum-stake-pool/index.js.map +1 -1
- package/sdk/dist/svm/venues/spl-token-swap-forks/index.d.ts.map +1 -1
- package/sdk/dist/svm/venues/spl-token-swap-forks/index.js +2 -7
- package/sdk/dist/svm/venues/spl-token-swap-forks/index.js.map +1 -1
- package/sdk/dist/svm/venues/stabble-common.d.ts.map +1 -1
- package/sdk/dist/svm/venues/stabble-common.js +3 -8
- package/sdk/dist/svm/venues/stabble-common.js.map +1 -1
- package/sdk/dist/svm/verify.d.ts.map +1 -1
- package/sdk/dist/svm/verify.js +1 -4
- package/sdk/dist/svm/verify.js.map +1 -1
- package/sdk/dist/swap/index.d.ts +4 -4
- package/sdk/dist/swap/index.d.ts.map +1 -1
- package/sdk/dist/swap/index.js +4 -4
- package/sdk/dist/swap/index.js.map +1 -1
- package/sdk/dist/swap/source.d.ts +0 -7
- package/sdk/dist/swap/source.d.ts.map +1 -1
- package/sdk/dist/swap/source.js +3 -11
- package/sdk/dist/swap/source.js.map +1 -1
- package/sdk/dist/token/api.d.ts +8 -9
- package/sdk/dist/token/api.d.ts.map +1 -1
- package/sdk/dist/token/api.js +4 -5
- package/sdk/dist/token/api.js.map +1 -1
- package/sdk/dist/token/evm.d.ts +5 -2
- package/sdk/dist/token/evm.d.ts.map +1 -1
- package/sdk/dist/token/evm.js +24 -13
- package/sdk/dist/token/evm.js.map +1 -1
- package/sdk/dist/token/index.d.ts +4 -4
- package/sdk/dist/token/index.js +4 -4
- package/sdk/dist/token/safe.d.ts +17 -0
- package/sdk/dist/token/safe.d.ts.map +1 -0
- package/sdk/dist/token/safe.js +211 -0
- package/sdk/dist/token/safe.js.map +1 -0
- package/sdk/dist/token/source.d.ts +0 -4
- package/sdk/dist/token/source.d.ts.map +1 -1
- package/sdk/dist/token/source.js +7 -10
- package/sdk/dist/token/source.js.map +1 -1
- package/sdk/dist/verify/decode.d.ts +6 -6
- package/sdk/dist/verify/decode.js +7 -7
- package/sdk/dist/verify/decode.js.map +1 -1
- package/sdk/dist/verify/index.js +2 -2
- package/sdk/dist/verify/intent.js +2 -2
- package/sdk/dist/verify/vectors.d.ts +1 -1
- package/sdk/dist/verify/vectors.d.ts.map +1 -1
- package/sdk/dist/verify/vectors.js +2 -2
- package/sdk/dist/verify/vectors.js.map +1 -1
- package/sdk/dist/verify/wire.d.ts +21 -4
- package/sdk/dist/verify/wire.d.ts.map +1 -1
- package/sdk/dist/verify/wire.js +21 -4
- package/sdk/dist/verify/wire.js.map +1 -1
- package/sdk/dist/wasm-compiler.d.ts +31 -0
- package/sdk/dist/wasm-compiler.d.ts.map +1 -0
- package/sdk/dist/wasm-compiler.js +52 -0
- package/sdk/dist/wasm-compiler.js.map +1 -0
- package/sdk/src/protocols/aave-v4/AaveV4HubABI.json +67 -0
- package/sdk/src/protocols/aave-v4/AaveV4SpokeABI.json +215 -0
- package/sdk/src/protocols/aave-v4/abis.ts +139 -0
- package/sdk/src/protocols/aave-v4/addresses.ts +66 -0
- package/sdk/src/protocols/aave-v4/functions.ts +39 -0
- package/sdk/src/protocols/aave-v4/index.ts +4 -0
- package/sdk/src/protocols/aave-v4/info.ts +14 -0
- package/sdk/src/protocols/across/AcrossHubPoolABI.json +2 -2
- package/sdk/src/protocols/across/AcrossSpokePoolABI.json +27 -11
- package/sdk/src/protocols/across/abis.ts +16 -8
- package/sdk/src/protocols/across/addresses.ts +10 -0
- package/sdk/src/protocols/across/functions.ts +2 -2
- package/sdk/src/protocols/aerodrome-slipstream/AeroMetarouterABI.json +24 -0
- package/sdk/src/protocols/aerodrome-slipstream/SlipstreamCLFactoryABI.json +58 -0
- package/sdk/src/protocols/aerodrome-slipstream/SlipstreamPositionManagerABI.json +77 -0
- package/sdk/src/protocols/aerodrome-slipstream/abis.ts +74 -0
- package/sdk/src/protocols/aerodrome-slipstream/addresses.ts +40 -0
- package/sdk/src/protocols/aerodrome-slipstream/functions.ts +8 -0
- package/sdk/src/protocols/aerodrome-slipstream/index.ts +4 -0
- package/sdk/src/protocols/aerodrome-slipstream/info.ts +14 -0
- package/sdk/src/protocols/aevo/DepositContractABI.json +23 -2
- package/sdk/src/protocols/aevo/abis.ts +10 -2
- package/sdk/src/protocols/aevo/functions.ts +2 -2
- package/sdk/src/protocols/alchemix/AlchemistABI.json +1 -1
- package/sdk/src/protocols/alchemix/abis.ts +1 -1
- package/sdk/src/protocols/ambient/CrocSwapDexABI.json +2 -2
- package/sdk/src/protocols/ambient/abis.ts +3 -2
- package/sdk/src/protocols/ambient/addresses.ts +2 -1
- package/sdk/src/protocols/arrakis/ArrakisRouterABI.json +5 -1
- package/sdk/src/protocols/arrakis/ArrakisVaultABI.json +0 -16
- package/sdk/src/protocols/arrakis/abis.ts +2 -11
- package/sdk/src/protocols/arrakis/functions.ts +2 -1
- package/sdk/src/protocols/axelar/AxelarITSABI.json +1 -1
- package/sdk/src/protocols/axelar/abis.ts +1 -1
- package/sdk/src/protocols/balancer-v2/BalancerV2VaultABI.json +7 -7
- package/sdk/src/protocols/balancer-v2/abis.ts +7 -7
- package/sdk/src/protocols/cbeth/CbETHABI.json +10 -1
- package/sdk/src/protocols/cbeth/abis.ts +6 -2
- package/sdk/src/protocols/cctp/TokenMessengerABI.json +30 -9
- package/sdk/src/protocols/cctp/abis.ts +3 -1
- package/sdk/src/protocols/cctp/addresses.ts +3 -0
- package/sdk/src/protocols/chainlink/AggregatorV3ABI.json +3 -3
- package/sdk/src/protocols/chainlink/FeedRegistryABI.json +3 -3
- package/sdk/src/protocols/chainlink/abis.ts +6 -6
- package/sdk/src/protocols/chainlink/addresses.ts +10 -0
- package/sdk/src/protocols/chainlink-ccip/CCIPRouterABI.json +1 -1
- package/sdk/src/protocols/chainlink-ccip/abis.ts +1 -1
- package/sdk/src/protocols/chainlink-ccip/addresses.ts +9 -0
- package/sdk/src/protocols/circle-gateway/GatewayMinterABI.json +49 -0
- package/sdk/src/protocols/circle-gateway/GatewayWalletABI.json +111 -0
- package/sdk/src/protocols/circle-gateway/abis.ts +86 -0
- package/sdk/src/protocols/circle-gateway/addresses.ts +39 -0
- package/sdk/src/protocols/circle-gateway/functions.ts +28 -0
- package/sdk/src/protocols/circle-gateway/index.ts +4 -0
- package/sdk/src/protocols/circle-gateway/info.ts +14 -0
- package/sdk/src/protocols/compound-v2/CErc20ABI.json +2 -2
- package/sdk/src/protocols/compound-v2/abis.ts +2 -2
- package/sdk/src/protocols/connext/EverclearSpokeABI.json +60 -6
- package/sdk/src/protocols/connext/abis.ts +27 -5
- package/sdk/src/protocols/connext/addresses.ts +1 -7
- package/sdk/src/protocols/connext/functions.ts +3 -2
- package/sdk/src/protocols/curve/CurveRouterNGABI.json +37 -0
- package/sdk/src/protocols/curve/CurveStableSwapABI.json +7 -7
- package/sdk/src/protocols/curve/CurveThreePoolABI.json +117 -0
- package/sdk/src/protocols/curve/abis.ts +91 -7
- package/sdk/src/protocols/debridge/DlnDestinationABI.json +7 -7
- package/sdk/src/protocols/debridge/DlnSourceABI.json +1 -1
- package/sdk/src/protocols/debridge/abis.ts +5 -5
- package/sdk/src/protocols/debridge/addresses.ts +11 -0
- package/sdk/src/protocols/eco-routes/abis.ts +633 -0
- package/sdk/src/protocols/eco-routes/addresses.generated.ts +589 -0
- package/sdk/src/protocols/eco-routes/addresses.ts +27 -0
- package/sdk/src/protocols/eco-routes/functions.ts +45 -0
- package/sdk/src/protocols/eco-routes/index.ts +5 -0
- package/sdk/src/protocols/eco-routes/info.ts +14 -0
- package/sdk/src/protocols/eco-routes/lookup.ts +215 -0
- package/sdk/src/protocols/eigenlayer/DelegationManagerABI.json +2 -2
- package/sdk/src/protocols/eigenlayer/StrategyManagerABI.json +2 -2
- package/sdk/src/protocols/eigenlayer/abis.ts +5 -4
- package/sdk/src/protocols/ens/ENSRegistryABI.json +4 -4
- package/sdk/src/protocols/ens/abis.ts +4 -4
- package/sdk/src/protocols/etherfi/WeETHABI.json +1 -1
- package/sdk/src/protocols/etherfi/abis.ts +2 -1
- package/sdk/src/protocols/euler-v2/EVCABI.json +2 -2
- package/sdk/src/protocols/euler-v2/abis.ts +2 -2
- package/sdk/src/protocols/fluid/FluidLendingABI.json +20 -37
- package/sdk/src/protocols/fluid/FluidVaultABI.json +41 -0
- package/sdk/src/protocols/fluid/abis.ts +41 -18
- package/sdk/src/protocols/fluid/functions.ts +18 -16
- package/sdk/src/protocols/gains-network/DiamondABI.json +49 -37
- package/sdk/src/protocols/gains-network/abis.ts +26 -21
- package/sdk/src/protocols/gains-network/functions.ts +6 -6
- package/sdk/src/protocols/gamma/UniProxyLegacyABI.json +62 -0
- package/sdk/src/protocols/gamma/abis.ts +31 -0
- package/sdk/src/protocols/gamma/addresses.ts +2 -7
- package/sdk/src/protocols/gamma/functions.ts +10 -0
- package/sdk/src/protocols/gelato/GelatoAutomateABI.json +2 -2
- package/sdk/src/protocols/gelato/abis.ts +2 -2
- package/sdk/src/protocols/gmx-v1/PositionRouterABI.json +21 -3
- package/sdk/src/protocols/gmx-v1/abis.ts +5 -3
- package/sdk/src/protocols/gmx-v1/functions.ts +2 -2
- package/sdk/src/protocols/gmx-v2/ExchangeRouterABI.json +13 -5
- package/sdk/src/protocols/gmx-v2/abis.ts +7 -4
- package/sdk/src/protocols/gmx-v2/addresses.ts +3 -1
- package/sdk/src/protocols/gmx-v2/functions.ts +4 -2
- package/sdk/src/protocols/harvest/VaultABI.json +12 -2
- package/sdk/src/protocols/harvest/abis.ts +2 -2
- package/sdk/src/protocols/hegic/HegicABI.json +6 -2
- package/sdk/src/protocols/hegic/abis.ts +7 -2
- package/sdk/src/protocols/hegic/addresses.ts +1 -0
- package/sdk/src/protocols/hegic/functions.ts +3 -3
- package/sdk/src/protocols/hop/addresses.ts +5 -2
- package/sdk/src/protocols/hyperlane/HyperlaneMailboxABI.json +5 -5
- package/sdk/src/protocols/hyperlane/abis.ts +5 -5
- package/sdk/src/protocols/hyperlane/addresses.ts +9 -0
- package/sdk/src/protocols/index.ts +13 -0
- package/sdk/src/protocols/kim/KimRouterABI.json +8 -27
- package/sdk/src/protocols/kim/abis.ts +6 -12
- package/sdk/src/protocols/kim/functions.ts +3 -2
- package/sdk/src/protocols/kyberswap/KyberSwapElasticRouterABI.json +1 -1
- package/sdk/src/protocols/kyberswap/KyberSwapMetaAggregationRouterABI.json +52 -18
- package/sdk/src/protocols/kyberswap/abis.ts +21 -8
- package/sdk/src/protocols/kyberswap/addresses.ts +12 -2
- package/sdk/src/protocols/kyberswap-aggregator/addresses.ts +12 -1
- package/sdk/src/protocols/layerbank/LTokenABI.json +19 -29
- package/sdk/src/protocols/layerbank/LayerBankCoreABI.json +87 -2
- package/sdk/src/protocols/layerbank/abis.ts +69 -17
- package/sdk/src/protocols/layerbank/addresses.ts +3 -1
- package/sdk/src/protocols/layerbank/functions.ts +18 -16
- package/sdk/src/protocols/layerzero/LayerZeroEndpointV2ABI.json +3 -3
- package/sdk/src/protocols/layerzero/abis.ts +3 -3
- package/sdk/src/protocols/layerzero/addresses.ts +11 -1
- package/sdk/src/protocols/level-finance/LiquidityPoolABI.json +8 -0
- package/sdk/src/protocols/level-finance/abis.ts +2 -0
- package/sdk/src/protocols/level-finance/functions.ts +4 -4
- package/sdk/src/protocols/lifi/LiFiDiamondABI.json +54 -4
- package/sdk/src/protocols/lifi/abis.ts +24 -4
- package/sdk/src/protocols/lifi/addresses.ts +9 -0
- package/sdk/src/protocols/lifi/functions.ts +5 -2
- package/sdk/src/protocols/liquity-v1/BorrowerOperationsABI.json +8 -0
- package/sdk/src/protocols/liquity-v1/abis.ts +7 -1
- package/sdk/src/protocols/liquity-v1/functions.ts +1 -1
- package/sdk/src/protocols/mantle-meth/METHABI.json +0 -46
- package/sdk/src/protocols/mantle-meth/METHStakingABI.json +50 -0
- package/sdk/src/protocols/mantle-meth/abis.ts +23 -17
- package/sdk/src/protocols/mantle-meth/addresses.ts +3 -0
- package/sdk/src/protocols/mantle-meth/functions.ts +4 -4
- package/sdk/src/protocols/maverick/MaverickV2FactoryABI.json +8 -0
- package/sdk/src/protocols/maverick/MaverickV2RouterABI.json +4 -0
- package/sdk/src/protocols/maverick/abis.ts +7 -1
- package/sdk/src/protocols/morpho-blue/addresses.ts +10 -0
- package/sdk/src/protocols/mux-protocol/LiquidityPoolABI.json +45 -11
- package/sdk/src/protocols/mux-protocol/OrderBookABI.json +59 -17
- package/sdk/src/protocols/mux-protocol/abis.ts +55 -22
- package/sdk/src/protocols/mux-protocol/functions.ts +8 -8
- package/sdk/src/protocols/olympus/StakingABI.json +8 -3
- package/sdk/src/protocols/olympus/abis.ts +2 -2
- package/sdk/src/protocols/oneinch/AggregationRouterV6ABI.json +5 -5
- package/sdk/src/protocols/oneinch/abis.ts +5 -3
- package/sdk/src/protocols/oneinch/functions.ts +2 -2
- package/sdk/src/protocols/openocean/OpenOceanExchangeV2ABI.json +19 -1
- package/sdk/src/protocols/openocean/abis.ts +11 -1
- package/sdk/src/protocols/openocean/functions.ts +1 -1
- package/sdk/src/protocols/opyn/ControllerABI.json +6 -1
- package/sdk/src/protocols/opyn/abis.ts +1 -1
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3FactoryABI.json +1 -1
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3NFPMABI.json +3 -3
- package/sdk/src/protocols/pancakeswap-v3/PancakeSwapV3SmartRouterABI.json +2 -2
- package/sdk/src/protocols/pancakeswap-v3/abis.ts +6 -6
- package/sdk/src/protocols/paraswap/AugustusV5ABI.json +1 -1
- package/sdk/src/protocols/paraswap/abis.ts +1 -1
- package/sdk/src/protocols/pendle/PendleRouterABI.json +392 -6
- package/sdk/src/protocols/pendle/abis.ts +160 -6
- package/sdk/src/protocols/permit2/Permit2ABI.json +1 -1
- package/sdk/src/protocols/permit2/abis.ts +1 -1
- package/sdk/src/protocols/permit2/addresses.ts +9 -0
- package/sdk/src/protocols/perpetual-protocol/ClearingHouseABI.json +61 -49
- package/sdk/src/protocols/perpetual-protocol/abis.ts +27 -14
- package/sdk/src/protocols/premia/DiamondABI.json +24 -24
- package/sdk/src/protocols/premia/abis.ts +20 -10
- package/sdk/src/protocols/premia/addresses.ts +3 -8
- package/sdk/src/protocols/premia/functions.ts +8 -8
- package/sdk/src/protocols/pyth/PythOracleABI.json +3 -3
- package/sdk/src/protocols/pyth/abis.ts +6 -3
- package/sdk/src/protocols/reflexer/ETHJoinABI.json +5 -1
- package/sdk/src/protocols/reflexer/SAFEEngineABI.json +4 -4
- package/sdk/src/protocols/reflexer/abis.ts +10 -6
- package/sdk/src/protocols/renzo/RestakeManagerABI.json +1 -1
- package/sdk/src/protocols/renzo/abis.ts +1 -1
- package/sdk/src/protocols/sablier/LockupLinearABI.json +2 -2
- package/sdk/src/protocols/sablier/abis.ts +2 -2
- package/sdk/src/protocols/safe/addresses.ts +10 -0
- package/sdk/src/protocols/seaport/SeaportABI.json +87 -5
- package/sdk/src/protocols/seaport/abis.ts +41 -5
- package/sdk/src/protocols/seaport/addresses.ts +10 -0
- package/sdk/src/protocols/seaport/functions.ts +1 -0
- package/sdk/src/protocols/silo/SiloABI.json +4 -0
- package/sdk/src/protocols/silo/abis.ts +4 -1
- package/sdk/src/protocols/silo/addresses.ts +2 -1
- package/sdk/src/protocols/silo/functions.ts +2 -1
- package/sdk/src/protocols/socket/SocketGatewayABI.json +1 -17
- package/sdk/src/protocols/socket/abis.ts +3 -11
- package/sdk/src/protocols/socket/functions.ts +1 -1
- package/sdk/src/protocols/spookyswap/addresses.ts +2 -1
- package/sdk/src/protocols/squid/SquidRouterABI.json +42 -26
- package/sdk/src/protocols/squid/abis.ts +19 -13
- package/sdk/src/protocols/squid/functions.ts +2 -2
- package/sdk/src/protocols/stargate/StargatePoolABI.json +31 -3
- package/sdk/src/protocols/stargate/abis.ts +19 -3
- package/sdk/src/protocols/superfluid/CFAForwarderABI.json +2 -2
- package/sdk/src/protocols/superfluid/abis.ts +2 -2
- package/sdk/src/protocols/sushiswap-v2/addresses.ts +2 -1
- package/sdk/src/protocols/swell/RswETHABI.json +1 -6
- package/sdk/src/protocols/swell/SwETHABI.json +1 -6
- package/sdk/src/protocols/swell/abis.ts +4 -2
- package/sdk/src/protocols/swell/functions.ts +4 -2
- package/sdk/src/protocols/synapse/addresses.ts +2 -1
- package/sdk/src/protocols/synthetix-v3/PerpsMarketProxyABI.json +54 -5
- package/sdk/src/protocols/synthetix-v3/abis.ts +27 -5
- package/sdk/src/protocols/synthetix-v3/addresses.ts +2 -1
- package/sdk/src/protocols/synthra-v3/SynthraV3FactoryABI.json +54 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3NonfungiblePositionManagerABI.json +212 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3QuoterV2ABI.json +55 -0
- package/sdk/src/protocols/synthra-v3/SynthraV3SwapRouter02ABI.json +168 -0
- package/sdk/src/protocols/synthra-v3/abis.ts +244 -0
- package/sdk/src/protocols/synthra-v3/addresses.ts +17 -0
- package/sdk/src/protocols/synthra-v3/functions.ts +8 -0
- package/sdk/src/protocols/synthra-v3/index.ts +4 -0
- package/sdk/src/protocols/synthra-v3/info.ts +13 -0
- package/sdk/src/protocols/thales/PositionalMarketABI.json +16 -0
- package/sdk/src/protocols/thales/SpeedMarketsAMMABI.json +57 -22
- package/sdk/src/protocols/thales/ThalesAMMABI.json +4 -11
- package/sdk/src/protocols/thales/abis.ts +28 -11
- package/sdk/src/protocols/thales/functions.ts +5 -6
- package/sdk/src/protocols/thruster/ThrusterV3SwapRouterABI.json +1 -1
- package/sdk/src/protocols/thruster/abis.ts +1 -1
- package/sdk/src/protocols/trader-joe/LBRouterABI.json +3 -3
- package/sdk/src/protocols/trader-joe/abis.ts +2 -2
- package/sdk/src/protocols/uniswap-v2/addresses.ts +10 -0
- package/sdk/src/protocols/uniswap-v3/UniswapV3FactoryABI.json +2 -2
- package/sdk/src/protocols/uniswap-v3/UniswapV3NonfungiblePositionManagerABI.json +3 -3
- package/sdk/src/protocols/uniswap-v3/UniswapV3QuoterV2ABI.json +1 -1
- package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouter02ABI.json +168 -0
- package/sdk/src/protocols/uniswap-v3/UniswapV3SwapRouterABI.json +2 -2
- package/sdk/src/protocols/uniswap-v3/abis.ts +91 -8
- package/sdk/src/protocols/uniswap-v3/addresses.ts +14 -0
- package/sdk/src/protocols/uniswap-v4/UniswapV4PoolManagerABI.json +15 -15
- package/sdk/src/protocols/uniswap-v4/UniswapV4UniversalRouterABI.json +16 -0
- package/sdk/src/protocols/uniswap-v4/abis.ts +25 -15
- package/sdk/src/protocols/uniswap-v4/addresses.ts +11 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3FactoryABI.json +46 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3QuoterABI.json +37 -0
- package/sdk/src/protocols/unitflow-v3/UnitFlowV3RouterABI.json +67 -0
- package/sdk/src/protocols/unitflow-v3/abis.ts +71 -0
- package/sdk/src/protocols/unitflow-v3/addresses.ts +20 -0
- package/sdk/src/protocols/unitflow-v3/functions.ts +8 -0
- package/sdk/src/protocols/unitflow-v3/index.ts +4 -0
- package/sdk/src/protocols/unitflow-v3/info.ts +14 -0
- package/sdk/src/protocols/velodrome/addresses.ts +3 -1
- package/sdk/src/protocols/venus/VBNBABI.json +86 -0
- package/sdk/src/protocols/venus/VTokenABI.json +1 -1
- package/sdk/src/protocols/venus/abis.ts +49 -1
- package/sdk/src/protocols/vertex/ClearinghouseABI.json +20 -10
- package/sdk/src/protocols/vertex/EndpointABI.json +1 -1
- package/sdk/src/protocols/vertex/abis.ts +13 -4
- package/sdk/src/protocols/wormhole/WormholeTokenBridgeABI.json +2 -2
- package/sdk/src/protocols/wormhole/abis.ts +2 -2
- package/sdk/src/protocols/wormhole/addresses.ts +9 -0
- package/sdk/src/protocols/zerolend/addresses.ts +2 -1
- package/sdk/src/protocols/zerox/addresses.ts +2 -1
- package/sdk/src/protocols/zksync-bridge/ZkSyncDiamondProxyABI.json +1 -1
- package/sdk/src/protocols/zksync-bridge/abis.ts +1 -1
- package/sdk/src/skills/aave-v4.md +91 -0
- package/sdk/src/skills/across.md +28 -10
- package/sdk/src/skills/aerodrome-slipstream.md +57 -0
- package/sdk/src/skills/aerodrome.md +1 -0
- package/sdk/src/skills/aevo.md +12 -4
- package/sdk/src/skills/ambient.md +2 -2
- package/sdk/src/skills/arrakis.md +3 -3
- package/sdk/src/skills/cbeth.md +2 -2
- package/sdk/src/skills/chainlink-ccip.md +3 -2
- package/sdk/src/skills/chainlink.md +1 -1
- package/sdk/src/skills/circle-gateway.md +98 -0
- package/sdk/src/skills/compound-v2.md +2 -2
- package/sdk/src/skills/connext.md +8 -7
- package/sdk/src/skills/curve.md +17 -2
- package/sdk/src/skills/debridge.md +3 -2
- package/sdk/src/skills/eigenlayer.md +1 -1
- package/sdk/src/skills/etherfi.md +1 -1
- package/sdk/src/skills/fluid.md +46 -39
- package/sdk/src/skills/gains-network.md +13 -21
- package/sdk/src/skills/gamma.md +12 -6
- package/sdk/src/skills/gmx-v1.md +4 -2
- package/sdk/src/skills/gmx-v2.md +6 -2
- package/sdk/src/skills/harvest.md +2 -2
- package/sdk/src/skills/hegic.md +9 -8
- package/sdk/src/skills/hop.md +8 -8
- package/sdk/src/skills/hyperlane.md +4 -3
- package/sdk/src/skills/index.md +84 -77
- package/sdk/src/skills/kim.md +11 -14
- package/sdk/src/skills/kyberswap-aggregator.md +5 -3
- package/sdk/src/skills/kyberswap.md +6 -6
- package/sdk/src/skills/layerbank.md +41 -35
- package/sdk/src/skills/layerzero.md +3 -2
- package/sdk/src/skills/level-finance.md +6 -4
- package/sdk/src/skills/lido.md +5 -5
- package/sdk/src/skills/lifi.md +41 -23
- package/sdk/src/skills/liquity-v1.md +6 -2
- package/sdk/src/skills/loader.ts +15 -25
- package/sdk/src/skills/mantle-meth.md +13 -5
- package/sdk/src/skills/maverick.md +3 -3
- package/sdk/src/skills/morpho-blue.md +1 -1
- package/sdk/src/skills/mux-protocol.md +21 -17
- package/sdk/src/skills/oneinch.md +4 -3
- package/sdk/src/skills/openocean.md +2 -2
- package/sdk/src/skills/opyn.md +1 -1
- package/sdk/src/skills/permit2.md +1 -1
- package/sdk/src/skills/perpetual-protocol.md +2 -2
- package/sdk/src/skills/premia.md +21 -21
- package/sdk/src/skills/reflexer.md +1 -1
- package/sdk/src/skills/renzo.md +1 -1
- package/sdk/src/skills/safe.md +1 -1
- package/sdk/src/skills/seaport.md +3 -2
- package/sdk/src/skills/silo.md +4 -3
- package/sdk/src/skills/socket.md +4 -5
- package/sdk/src/skills/spookyswap.md +2 -2
- package/sdk/src/skills/squid.md +18 -10
- package/sdk/src/skills/stargate.md +1 -1
- package/sdk/src/skills/sushiswap-v2.md +1 -1
- package/sdk/src/skills/swell.md +6 -4
- package/sdk/src/skills/synapse.md +1 -1
- package/sdk/src/skills/synthetix-v3.md +1 -1
- package/sdk/src/skills/synthra-v3.md +57 -0
- package/sdk/src/skills/thales.md +12 -10
- package/sdk/src/skills/trader-joe.md +1 -1
- package/sdk/src/skills/uniswap-v2.md +2 -1
- package/sdk/src/skills/uniswap-v3.md +14 -4
- package/sdk/src/skills/uniswap-v4.md +3 -1
- package/sdk/src/skills/unitflow-v3.md +62 -0
- package/sdk/src/skills/velodrome.md +2 -2
- package/sdk/src/skills/venus.md +10 -2
- package/sdk/src/skills/vertex.md +1 -1
- package/sdk/src/skills/wormhole.md +1 -1
- package/sdk/src/skills/zerolend.md +1 -1
- package/sdk/src/skills/zerox.md +1 -1
- package/sdk/src/skills/zksync-bridge.md +1 -1
- package/actions/dist/megas-swap.d.ts +0 -97
- package/actions/dist/megas-swap.d.ts.map +0 -1
- package/actions/dist/megas-swap.js +0 -286
- package/sdk/dist/routes/globals.generated.d.ts +0 -94
- package/sdk/dist/routes/globals.generated.d.ts.map +0 -1
- package/sdk/dist/routes/globals.generated.js +0 -2
- package/sdk/dist/routes/globals.generated.js.map +0 -1
package/docs/guides/compiling.md
CHANGED
|
@@ -2,29 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
[Documentation](../README.md) · [Compiler API](../api/compiler.md) · [SauceScript](../concepts/saucescript.md)
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
options such as compact arguments.
|
|
5
|
+
There are two ways to compile, and the choice is about who resolves names. Either way the compiler
|
|
6
|
+
is already in this package, and the output is a program a Sauce engine runs, not a contract you
|
|
7
|
+
deploy.
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
Use the **route path** when the program is part of an Eco intent and should say `USDC` and
|
|
10
|
+
`Uniswap.UniversalRouter`: the SDK resolves those against the destination chain and hands you a
|
|
11
|
+
ready-made call. Use the **raw compiler** when you want a reusable program that takes values at
|
|
12
|
+
execution time, a Solana account manifest, or full control over module resolution.
|
|
11
13
|
|
|
12
|
-
| Entry point |
|
|
14
|
+
| Entry point | You supply | The SDK supplies |
|
|
13
15
|
| ------------------------------------------------------------------- | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
14
|
-
| `Base(body, options)` / `routes.openRoute(...)` |
|
|
15
|
-
| `routes.compileSauceRoute(destination, source, execution, options)` | Source, destination, execution settings | Registry rewrites, token defines,
|
|
16
|
-
| `compile({ target, resolve, ... })` |
|
|
16
|
+
| `Base(body, options)` / `routes.openRoute(...)` | Body and intent options | Chain defines, the ambient token module, registry rewrites, the EVM Pot and engine, a built intent |
|
|
17
|
+
| `routes.compileSauceRoute(destination, source, execution, options)` | Source, destination, execution settings | Registry rewrites, token defines, one encoded route call |
|
|
18
|
+
| `compile({ target, resolve, ... })` | All source and dependency resolution, and compiler settings | Nothing — you get the compiler's own result |
|
|
17
19
|
|
|
18
|
-
Bare `USDC`, `Token(address)
|
|
19
|
-
|
|
20
|
-
`
|
|
20
|
+
Bare `USDC`, `Token(address)` and protocol members only exist on the route path. There,
|
|
21
|
+
`USDC.approve(Uniswap.UniversalRouter, 1_000_000n)` becomes an ERC-20 ABI import and
|
|
22
|
+
`IERC20.at(USDC).approve(<the router's Base address>, 1_000_000n)`, with `USDC` defined as Base's
|
|
23
|
+
USDC. Raw `compile()` expects you to write that yourself.
|
|
21
24
|
|
|
22
25
|
## Compile an EVM route
|
|
23
26
|
|
|
24
|
-
This function constructs a call; the caller supplies the deployed Pot,
|
|
25
|
-
compatible engine address, and the Kitchen's current execution fee. It submits
|
|
26
|
-
no transaction.
|
|
27
|
-
|
|
28
27
|
```ts
|
|
29
28
|
import { routes } from "@eco-incorp/sauce";
|
|
30
29
|
import type { Address } from "viem";
|
|
@@ -38,24 +37,22 @@ export function buildApprovalRoute(pot: Address, engine: Address, executionFee:
|
|
|
38
37
|
}
|
|
39
38
|
```
|
|
40
39
|
|
|
41
|
-
The destination
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
value is
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
and add source-chain funding, a reward, and Portal publication calldata.
|
|
40
|
+
The destination selects the registry addresses. The result has one entry in `calls` and the program
|
|
41
|
+
in `compiled.bytecode[0]`; read `source` to see exactly what the rewrites produced.
|
|
42
|
+
|
|
43
|
+
The call's `value` is the Kitchen fee plus whatever native the program itself spends — this approval
|
|
44
|
+
spends none. For Portal fulfillment the Pot must be owned by the destination Portal's Executor and
|
|
45
|
+
`route.nativeAmount` must cover every call value. [Create an intent](intents.md) covers reading the
|
|
46
|
+
fee, deriving that Pot, and adding the reward and Portal calldata.
|
|
49
47
|
|
|
50
|
-
`compileSauceRoute`
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
The raw compiler accepts typed source directly.
|
|
48
|
+
`compileSauceRoute` takes a bare body or a complete `function main(...)`. Its rewrite passes parse
|
|
49
|
+
the body as JavaScript, so a body carrying SauceScript type annotations belongs in raw `compile`,
|
|
50
|
+
which accepts typed source directly.
|
|
54
51
|
|
|
55
52
|
## Compile a reusable program
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
A program compiled this way has no values baked into it. Change the amounts and you do not
|
|
55
|
+
recompile — which is what makes one program hash cover every execution.
|
|
59
56
|
|
|
60
57
|
```ts
|
|
61
58
|
import { compile } from "@eco-incorp/sauce/compiler";
|
|
@@ -78,17 +75,13 @@ const artifact = compile({
|
|
|
78
75
|
resolve: (path) => (path === "main.ts" ? entry : undefined),
|
|
79
76
|
});
|
|
80
77
|
|
|
81
|
-
console.log(artifact.isaRevision); // "stack-compact-v2"
|
|
82
78
|
console.log(artifact.entryEncoding); // "abi-v1"
|
|
83
79
|
```
|
|
84
80
|
|
|
85
|
-
|
|
86
|
-
values does not require recompilation.
|
|
87
|
-
|
|
88
|
-
### ABI-v1 entry arguments
|
|
81
|
+
### Pass arguments with ABI-v1
|
|
89
82
|
|
|
90
|
-
Encode
|
|
91
|
-
|
|
83
|
+
Encode `main`'s arguments in declaration order and append them to the program. There is no function
|
|
84
|
+
selector: entry arguments are not a contract call.
|
|
92
85
|
|
|
93
86
|
```ts
|
|
94
87
|
import { encodeAbiParameters, hexToBytes, bytesToHex } from "viem";
|
|
@@ -104,18 +97,17 @@ payload.set(args, artifact.bytecode.length);
|
|
|
104
97
|
|
|
105
98
|
// Given a compatible engine address:
|
|
106
99
|
// const data = v12Pot.encodeCook(engine, bytesToHex(payload));
|
|
107
|
-
// Send
|
|
100
|
+
// Send it from the Pot owner with value = executionFee + native the program spends.
|
|
108
101
|
```
|
|
109
102
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
program, specialized to those values.
|
|
103
|
+
That whole payload is the `program` argument to `Pot.cook(engine, program)`; the cook call itself is
|
|
104
|
+
an ordinary contract call with its own ABI encoding. Passing those same values as `defines` instead
|
|
105
|
+
would produce a _different_ program — one specialised to them.
|
|
114
106
|
|
|
115
|
-
###
|
|
107
|
+
### Pass arguments with compact-v1
|
|
116
108
|
|
|
117
|
-
Compile
|
|
118
|
-
|
|
109
|
+
Compile with `compactArgs: true` and use the schema that comes back with it. The schema and the
|
|
110
|
+
bytecode belong to the same artifact; do not pair one with another.
|
|
119
111
|
|
|
120
112
|
```ts
|
|
121
113
|
import {
|
|
@@ -144,16 +136,14 @@ compactPayload.set(compact.bytecode);
|
|
|
144
136
|
compactPayload.set(compactArgs, compact.bytecode.length);
|
|
145
137
|
```
|
|
146
138
|
|
|
147
|
-
|
|
148
|
-
accept an ABI-v1 tail, and
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
contract ABI calls performed inside the program.
|
|
139
|
+
Compact encoding is usually smaller for scalars and collections. The two formats are not
|
|
140
|
+
interchangeable: a compact program does not accept an ABI-v1 tail, and the reverse is equally true.
|
|
141
|
+
Either way, contract calls the program _makes_ still use their own contract ABIs — this is about
|
|
142
|
+
getting values into `main`, nothing else.
|
|
152
143
|
|
|
153
|
-
###
|
|
144
|
+
### Return values an ABI decoder can read
|
|
154
145
|
|
|
155
|
-
`entryEncoding`
|
|
156
|
-
ABI decoder, encode it explicitly in SauceScript:
|
|
146
|
+
`entryEncoding` describes inputs. Outputs are yours to encode:
|
|
157
147
|
|
|
158
148
|
```ts
|
|
159
149
|
function main(): bytes {
|
|
@@ -161,22 +151,17 @@ function main(): bytes {
|
|
|
161
151
|
}
|
|
162
152
|
```
|
|
163
153
|
|
|
164
|
-
Decode that
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
Compiler 2.3.0 changed raw EVM scalar-array literal returns: `return [1n, 2n, 3n]`
|
|
171
|
-
now returns three packed 32-byte values without an ABI offset or count. Compiler
|
|
172
|
-
2.2.1 returned heap descriptors for that source. Raw tuple returns still contain
|
|
173
|
-
heap descriptors. Recompilation can therefore change observable return bytes;
|
|
174
|
-
use explicit `abi.encode` when a caller relies on ABI output.
|
|
154
|
+
Decode that as a single `uint256[]` with viem's `decodeAbiParameters`. It is 160 bytes — an offset, a
|
|
155
|
+
count, three values. The Pot returns those bytes directly; there is no extra ABI `bytes` wrapper
|
|
156
|
+
around them. Returning a raw array instead gives you packed words with no offset or count, which a
|
|
157
|
+
generic decoder will not read, so encode explicitly whenever a caller depends on the shape. Solana
|
|
158
|
+
has no `abi.encode`.
|
|
175
159
|
|
|
176
160
|
## Resolve source modules and ABIs
|
|
177
161
|
|
|
178
|
-
A resolver is synchronous and returns bytes.
|
|
179
|
-
|
|
162
|
+
A resolver is synchronous and returns bytes. Return `undefined` for a candidate that does not exist —
|
|
163
|
+
that is how the compiler probes a target-specific arm before falling back. Throw when a file that
|
|
164
|
+
_does_ exist cannot be read, so the failure is not mistaken for absence.
|
|
180
165
|
|
|
181
166
|
```ts
|
|
182
167
|
import { readFileSync } from "node:fs";
|
|
@@ -200,22 +185,42 @@ const artifact = compile({
|
|
|
200
185
|
});
|
|
201
186
|
```
|
|
202
187
|
|
|
203
|
-
This resolver reads
|
|
204
|
-
|
|
205
|
-
|
|
188
|
+
This resolver reads the filesystem; it is not a sandbox. If your application compiles programs
|
|
189
|
+
somebody else wrote, serve them from an allowlisted in-memory map instead. Fetch anything remote
|
|
190
|
+
_before_ compiling — the resolver cannot await.
|
|
191
|
+
|
|
192
|
+
For an ABI you already hold, raw compilation takes
|
|
193
|
+
`inlineContracts: [["ERC20", JSON.stringify(abi)]]`. The route API takes the parsed form,
|
|
194
|
+
`contracts: { ERC20: { abi } }`, and adapts it. The two shapes are not interchangeable.
|
|
195
|
+
|
|
196
|
+
Raw compilation serves nothing you do not. The route path serves the SDK's own files itself: the
|
|
197
|
+
`@sauce/token` library, the ERC-20 and Sauce Router ABIs and every protocol ABI twin. For a raw
|
|
198
|
+
compile that needs them, fall back to `resolveSdkModule` and `resolveSdkPackage` from
|
|
199
|
+
`@eco-incorp/sauce/compiler` — the [compiler reference](../api/compiler.md#the-sdks-own-modules)
|
|
200
|
+
shows how.
|
|
206
201
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
202
|
+
The filesystem resolver above is the one Node-only part of this page. In a browser, serve modules
|
|
203
|
+
from memory.
|
|
204
|
+
|
|
205
|
+
## Compile in a browser
|
|
206
|
+
|
|
207
|
+
Everything on this page runs in a browser and compiles the same bytes as Node. The compiler's
|
|
208
|
+
WebAssembly loads asynchronously there, so call `ready()` once before the first compile:
|
|
209
|
+
|
|
210
|
+
```ts
|
|
211
|
+
import { ready } from "@eco-incorp/sauce";
|
|
212
|
+
|
|
213
|
+
await ready();
|
|
214
|
+
```
|
|
211
215
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
216
|
+
With no argument it fetches the wasm from beside the compiler's module, which is where a bundler
|
|
217
|
+
that handles `new URL(…, import.meta.url)` puts it. Otherwise pass the wasm's URL or bytes. The
|
|
218
|
+
[compiler reference](../api/compiler.md#in-a-browser) covers both, and the one subpath that stays
|
|
219
|
+
Node-only.
|
|
215
220
|
|
|
216
|
-
## Compile for
|
|
221
|
+
## Compile for Solana
|
|
217
222
|
|
|
218
|
-
|
|
223
|
+
`target: "svm"` returns an account manifest alongside the bytecode:
|
|
219
224
|
|
|
220
225
|
```ts
|
|
221
226
|
import { compile } from "@eco-incorp/sauce/compiler";
|
|
@@ -236,29 +241,23 @@ console.log(artifact.manifest?.accounts);
|
|
|
236
241
|
// [{ kind: "slot", index: 0, name: "vault", requires: "readonly" }]
|
|
237
242
|
```
|
|
238
243
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
244
|
+
`amount` is the one compact field; `vault` is attached at account slot 0. Resolve and attach accounts
|
|
245
|
+
in manifest order with the SVM helpers. The manifest records what the _author_ declared — it does not
|
|
246
|
+
discover an account's address, balance, owner or existence.
|
|
242
247
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
incompatible with the released engine. Use raw compilation for account plans
|
|
247
|
-
and follow the [Solana execution guide](solana.md).
|
|
248
|
+
To run a larger program, stage its bytes through the Kitchen, finalize the code account, then execute.
|
|
249
|
+
Keep the raw compilation result: the route path drops the manifest. The
|
|
250
|
+
[Solana guide](solana.md) has the full flow.
|
|
248
251
|
|
|
249
252
|
## Keep compilation reproducible
|
|
250
253
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
hash the final code-plus-arguments payload when committing to a particular
|
|
255
|
-
execution.
|
|
254
|
+
Store the compiler version, target, source and dependency bytes, ABIs, defines, ambient modules,
|
|
255
|
+
optimization setting and argument format alongside any artifact you keep. Keep request arguments out
|
|
256
|
+
of the code cache, and hash the final code-plus-arguments payload when you commit to one execution.
|
|
256
257
|
|
|
257
|
-
The compiler
|
|
258
|
-
lowering
|
|
259
|
-
|
|
260
|
-
inputs, refresh those inputs and use the compiler package's cache controls as
|
|
261
|
-
needed.
|
|
258
|
+
The compiler caches its own work between calls as an optimization; `cache: false` forces fresh
|
|
259
|
+
lowering. That cache is not an application-level artifact store — if your resolver's inputs change,
|
|
260
|
+
refresh them yourself.
|
|
262
261
|
|
|
263
|
-
For canonical settle programs, use the shipped recipe source and the pinned
|
|
264
|
-
|
|
262
|
+
For the canonical settle programs, use the shipped recipe source and the pinned verification surface
|
|
263
|
+
in [settlement verification](verification.md).
|
package/docs/guides/intents.md
CHANGED
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
[Documentation](../README.md) · [Routes API](../api/routes.md) · [Nested intents](nested-intents.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
An Eco intent is an offer: _run this program on that chain, and the reward escrowed on this one is
|
|
6
|
+
yours_. `Base(body, options).reward(reward)` builds one. The chain you call names the **destination**
|
|
7
|
+
— where the program runs, and therefore which compiler target, token addresses and protocol
|
|
8
|
+
deployments apply. `.reward(...)` names the **source**, where the reward sits until someone earns it.
|
|
9
|
+
|
|
10
|
+
`Base.route(...)` is the same function. Every chain is a named export; import the ones you use.
|
|
6
11
|
|
|
7
12
|
```ts
|
|
8
|
-
import "@eco-incorp/sauce";
|
|
13
|
+
import { Base } from "@eco-incorp/sauce";
|
|
9
14
|
import type { routes } from "@eco-incorp/sauce";
|
|
10
15
|
|
|
11
16
|
export function buildApprovalIntent(routeOptions: routes.IntentOptions, reward: routes.RewardArg) {
|
|
@@ -15,7 +20,10 @@ export function buildApprovalIntent(routeOptions: routes.IntentOptions, reward:
|
|
|
15
20
|
}
|
|
16
21
|
```
|
|
17
22
|
|
|
18
|
-
The SDK
|
|
23
|
+
The SDK builds the intent and the transaction requests, and sends nothing. It looks up the Portals,
|
|
24
|
+
derives the destination Pot and engine, and resolves registered token and protocol addresses. You
|
|
25
|
+
choose the deadlines, creator and prover, read the Kitchen fee, fund the reward and submit. A solver
|
|
26
|
+
then decides whether to fulfill it; the SDK does not price the reward or promise a fill.
|
|
19
27
|
|
|
20
28
|
## Source, destination, and funding
|
|
21
29
|
|
|
@@ -25,7 +33,7 @@ An intent has two sides:
|
|
|
25
33
|
| ---------------------------------------- | ----------------------------------------------------------------- |
|
|
26
34
|
| `Base(...)` | Destination chain where the Sauce program executes |
|
|
27
35
|
| `options.portal` | Destination Portal recorded in the route |
|
|
28
|
-
| `options.pot`, `options.engine` |
|
|
36
|
+
| `options.pot`, `options.engine` | Overrides for the derived destination Pot and released engine |
|
|
29
37
|
| `options.tokens`, `options.nativeAmount` | Destination assets delivered by the solver to the Portal Executor |
|
|
30
38
|
| `reward.source` | Chain where the reward is funded |
|
|
31
39
|
| `options.sourcePortal` | Source Portal used by submission and read helpers |
|
|
@@ -36,28 +44,65 @@ Destination route assets initially arrive in the **Executor**. The Sauce program
|
|
|
36
44
|
|
|
37
45
|
Every EVM `cook` must receive the Kitchen's current `executionFee()` in native wei, including ERC-20-only programs. Set `execution.value` to **fee + native assets the program needs**, and budget `nativeAmount` for the route's calls. The Pot remits the fee before executing; its existing balance cannot replace this payment. Nested transfer programs add another cook and fee. Read the fee before building; an increase before fulfillment can make the route revert.
|
|
38
46
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
On Arc the native coin is USDC, so every one of these native amounts is USDC at **18 decimals**,
|
|
48
|
+
while `tokens` amounts of Arc's `USDC` are 6 decimals — and both draw on one balance. See
|
|
49
|
+
[Arc: USDC is the native coin](../api/coverage.md#arc-usdc-is-the-native-coin).
|
|
42
50
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Use [evm-execution.ts](../examples/evm-execution.ts) on the destination chain to read the Executor, resolve the current Kitchen and engine, predict the Pot, and quote the execution fee. If the Pot is absent, the helper returns a deployment request. Send it, wait for a successful receipt, and run the helper again. Only use a result with `ready: true`, which confirms code is present and checks the Pot's `owner()` and `kitchen()`.
|
|
46
|
-
|
|
47
|
-
Deployment helpers return release addresses; the historical chain roster does not attest current release liveness.
|
|
51
|
+
Deadlines are absolute Unix timestamps in seconds. `route.deadline` limits destination fulfillment. `reward.deadline` allows source refunds when no valid proof exists; leave time for fulfillment and proof delivery before it.
|
|
48
52
|
|
|
49
|
-
|
|
53
|
+
## The destination Pot
|
|
54
|
+
|
|
55
|
+
A route call runs as the Executor of the Portal that fulfils it, and a Pot's `cook` accepts only
|
|
56
|
+
its owner. So the Pot's owner must be the **`executor()` of the Portal the route records** —
|
|
57
|
+
`options.portal` when you set it, the registry's otherwise. A user-owned or solver-owned Pot rejects
|
|
58
|
+
the call with `NotOwner()`.
|
|
59
|
+
|
|
60
|
+
You do not have to supply one. With no `execution.pot` and no `execution.engine`, the builder uses the
|
|
61
|
+
same Pot the [native syntax](#the-destination-pot-is-derived) derives — CREATE2 from the released
|
|
62
|
+
Kitchen over that Executor and salt zero (`SAUCE_INTENT_POT_SALT`) — and the released engine. That is
|
|
63
|
+
the one Pot the solver deploys per Portal and every intent through that Portal shares. Both remain
|
|
64
|
+
overrides. `destinationPot(Base.chain, { portal })` returns that address, for a `precalls`
|
|
65
|
+
transfer into it.
|
|
66
|
+
|
|
67
|
+
**The destination Pot must exist before the intent is fulfilled.** The SDK derives its address and
|
|
68
|
+
deploys nothing: the route contains no deployment call. The solver deploys the shared Pot for each
|
|
69
|
+
Portal. A fulfilment that cooks on a Pot that is not there reverts entirely, because the Executor
|
|
70
|
+
refuses a call with calldata to an address without code (`CallToEOA`).
|
|
71
|
+
|
|
72
|
+
To deploy it yourself first, send this on the destination chain:
|
|
73
|
+
`routes.sauceEvmDeployPotCall({ kitchen: v12GateKitchen(), owner: executor, salt: SAUCE_INTENT_POT_SALT })`.
|
|
74
|
+
The call is permissionless, and it returns the existing Pot when one is already there. A **Pot you
|
|
75
|
+
name** instead must also exist, and be owned by that Executor, or the cook reverts with `NotOwner()`.
|
|
76
|
+
Use
|
|
77
|
+
[evm-execution.ts](../examples/evm-execution.ts) with the destination Portal and a salt — zero for
|
|
78
|
+
the shared Pot — to predict the Pot and check that it is deployed, with the right `owner()` and
|
|
79
|
+
`kitchen()`. Only use a result with `ready: true`.
|
|
80
|
+
|
|
81
|
+
### Arc's Pot
|
|
82
|
+
|
|
83
|
+
Arc's eco-routes Portal (`0xEC002CA16cE20c2a9F3C6200EF04E7d92a3dfBD8`) is not the Portal most other
|
|
84
|
+
chains share, so its Executor (`0x95b2d45F49c68a54BDBa0356fc3034751A43b3D4`) and the Pot derived from
|
|
85
|
+
it (`destinationPot("arc")`, `0x4edfB4576F91A9c2fE9aA50f669B7C81E4B82955`) are Arc's own. This prediction
|
|
86
|
+
uses Kitchen **1.1.0** initcode. Upgrade the Kitchen and deploy the matching engine and Pot before
|
|
87
|
+
sending intents; the release address alone does not confirm readiness.
|
|
88
|
+
|
|
89
|
+
The deployment helpers return the released addresses. They do not check that code is live at those
|
|
90
|
+
addresses on your chain. The same helper confirms the Kitchen and engine have code, and reads the
|
|
91
|
+
execution fee you need either way.
|
|
92
|
+
|
|
93
|
+
An Executor-owned Pot can be invoked by other valid Portal routes, and the derived one is shared by
|
|
94
|
+
every intent through its Portal. Deliver assets, use them, and return leftovers **within the same
|
|
95
|
+
fulfillment**; leave nothing in it — no user funds, no standing allowances. Source reward escrow
|
|
96
|
+
belongs in the intent vault. These caller and custody rules follow [Eco Routes' Executor calls](https://github.com/eco/eco-routes/blob/49de5bb10a5eb00509b21702df6cf54de448ee11/contracts/Executor.sol#L50-L74) and [destination fulfillment](https://github.com/eco/eco-routes/blob/49de5bb10a5eb00509b21702df6cf54de448ee11/contracts/Inbox.sol#L225-L271).
|
|
50
97
|
|
|
51
98
|
## Build a Base USDC transfer intent
|
|
52
99
|
|
|
53
100
|
This function takes deployment and reward configuration as inputs. It delivers one USDC on Base to `recipient` and offers the configured source-token reward. It only constructs data.
|
|
54
101
|
|
|
55
102
|
```ts
|
|
56
|
-
import { token, type routes } from "@eco-incorp/sauce";
|
|
103
|
+
import { Base, destinationPot, token, type routes } from "@eco-incorp/sauce";
|
|
57
104
|
|
|
58
105
|
interface TransferIntentConfig {
|
|
59
|
-
pot: routes.AddressInput;
|
|
60
|
-
engine: routes.AddressInput;
|
|
61
106
|
executionFee: bigint;
|
|
62
107
|
destinationPortal: routes.AddressInput;
|
|
63
108
|
baseUsdc: routes.AddressInput;
|
|
@@ -74,14 +119,12 @@ interface TransferIntentConfig {
|
|
|
74
119
|
|
|
75
120
|
export function buildBaseTransfer(config: TransferIntentConfig) {
|
|
76
121
|
const amount = 1_000_000n;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
amount,
|
|
81
|
-
}).toCall();
|
|
122
|
+
// The Pot the route cooks on: the shared one for the Portal it records. It must already exist.
|
|
123
|
+
const pot = destinationPot(Base.chain, { portal: config.destinationPortal });
|
|
124
|
+
const delivery = token.Token.transfer({ token: config.baseUsdc, to: pot, amount }).toCall();
|
|
82
125
|
|
|
83
126
|
return Base("USDC.transfer(RECIPIENT, AMOUNT);", {
|
|
84
|
-
execution: {
|
|
127
|
+
execution: { value: config.executionFee },
|
|
85
128
|
nativeAmount: config.executionFee,
|
|
86
129
|
portal: config.destinationPortal,
|
|
87
130
|
sourcePortal: config.sourcePortal,
|
|
@@ -100,12 +143,187 @@ export function buildBaseTransfer(config: TransferIntentConfig) {
|
|
|
100
143
|
}
|
|
101
144
|
```
|
|
102
145
|
|
|
103
|
-
|
|
146
|
+
The submission helpers below generate EVM calldata and reject an SVM source, so an intent you submit with them is EVM-sourced. Its **destination** may be Solana — the encoding supports it — but see the [Solana guide](solana.md) for how that execution is actually built.
|
|
104
147
|
|
|
148
|
+
The route has two calls: the delivery into the Pot, and the cook.
|
|
105
149
|
`executionFee` is the destination Kitchen quote obtained above. The source reward must separately compensate the solver for delivery, fees, and gas; the SDK does not price it.
|
|
106
150
|
|
|
107
151
|
The explicit `tokenDefines` ensures that the token transferred into the Pot matches the token used by the program. To use the SDK's default Base USDC, resolve it with `routes.registryTokenAddress(Base.chain, "USDC")` and check the result before building. That lookup returns a `bigint`; convert it to a 20-byte hex address with Viem's `toHex(value, { size: 20 })` for intent token fields, as in the [complete example](../examples/first-intent.ts).
|
|
108
152
|
|
|
153
|
+
## Create an intent from inside a program
|
|
154
|
+
|
|
155
|
+
Everything above builds an intent in TypeScript, before anything runs. A program can also create one
|
|
156
|
+
_while_ it is running, which is what you want when the amount is the output of the step before it:
|
|
157
|
+
|
|
158
|
+
```js
|
|
159
|
+
function main() {
|
|
160
|
+
const amount = USDC.balanceOf(ctx.self());
|
|
161
|
+
Arbitrum(() => {
|
|
162
|
+
USDC.transfer(RECIPIENT, amount);
|
|
163
|
+
}).reward({ tokens: [{ token: USDC, amount }] });
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Same shape as the TypeScript builder, written in the program. No Portal, prover, selector, encoding
|
|
168
|
+
or approval appears, because none of them is a decision you are making. The closest TypeScript form
|
|
169
|
+
is a [dynamic nest](nested-intents.md#create-the-child-on-chain-from-a-measured-amount), where you
|
|
170
|
+
build a placeholder child, name the measurement and count each placeholder's occurrences yourself.
|
|
171
|
+
|
|
172
|
+
### The braces are a Sauce program
|
|
173
|
+
|
|
174
|
+
Anything a route body can do belongs in there: protocol calls, control flow, locals, and an intent
|
|
175
|
+
of its own. There are two lowerings and the SDK picks between them, which matters to you because
|
|
176
|
+
they cost different things.
|
|
177
|
+
|
|
178
|
+
| The body is… | Becomes… | Needs |
|
|
179
|
+
| ------------------------------- | ------------------------------------------------------ | ----------------------- |
|
|
180
|
+
| only token `transfer`/`approve` | one `route.calls` entry per statement | nothing further |
|
|
181
|
+
| anything else | a program compiled for the destination, run on its Pot | a Pot and a Kitchen fee |
|
|
182
|
+
|
|
183
|
+
The first shape is free: a route already _is_ a list of calls, so a cook would only add a fee. The
|
|
184
|
+
second is strictly more general.
|
|
185
|
+
|
|
186
|
+
```js
|
|
187
|
+
function main() {
|
|
188
|
+
const amount = USDC.balanceOf(ctx.self());
|
|
189
|
+
Arbitrum(
|
|
190
|
+
() => {
|
|
191
|
+
const here = USDC.balanceOf(ctx.self());
|
|
192
|
+
if (here > 0n) {
|
|
193
|
+
USDC.transfer(RECIPIENT, here);
|
|
194
|
+
}
|
|
195
|
+
},
|
|
196
|
+
{ tokens: [{ token: USDC, amount }] },
|
|
197
|
+
).reward({ tokens: [{ token: USDC, amount }] });
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**The second argument names what the solver delivers** so the body has something to work with, and
|
|
202
|
+
the lowering adds the Executor-to-Pot transfer. For the token-only shape it is derived instead — a
|
|
203
|
+
`transfer` of N moves N, so N is what has to arrive. It is _not_ derived for a program, and that is
|
|
204
|
+
a judgement rather than an omission: a program's `balanceOf` reads what is _there_, which may be what
|
|
205
|
+
an earlier call in the same route produced rather than what a solver must bring. Inferring an
|
|
206
|
+
obligation from it would silently under- or over-state what the intent asks for, and an intent that
|
|
207
|
+
asks for the wrong delivery is unfulfillable or overfunded.
|
|
208
|
+
|
|
209
|
+
### Captured variables
|
|
210
|
+
|
|
211
|
+
`amount` is a local of the enclosing program, so its value does not exist when the intent is
|
|
212
|
+
encoded. It is encoded with a sentinel in its place and the program splices the real value in as it
|
|
213
|
+
runs. Any scalar works — an amount, an address, anything one 256-bit word wide.
|
|
214
|
+
|
|
215
|
+
A variable can arrive two ways, and the same variable can do both:
|
|
216
|
+
|
|
217
|
+
- **Into the encoded intent** — a route call's argument, a reward amount, a delivery amount. One
|
|
218
|
+
slot per variable, however many of those it fills, so they are the same number by construction
|
|
219
|
+
rather than by several encodings agreeing.
|
|
220
|
+
- **Into the child program** — it becomes one of that program's entry arguments, encoded at a
|
|
221
|
+
declared width so its offset does not move, and spliced into the cook's calldata.
|
|
222
|
+
|
|
223
|
+
Used both ways, a variable gets a slot in each: they are different offsets carrying the same value.
|
|
224
|
+
|
|
225
|
+
### Nesting
|
|
226
|
+
|
|
227
|
+
An intent inside an intent is lowered recursively — the child is compiled by re-entering the same
|
|
228
|
+
pipeline, so it gets its own chain's names and this same lowering, at any depth. That is how a chain
|
|
229
|
+
of hops whose amounts are each measured on arrival is written; see
|
|
230
|
+
[nested intents](nested-intents.md#a-cascade-in-native-syntax).
|
|
231
|
+
|
|
232
|
+
### Names resolve per chain
|
|
233
|
+
|
|
234
|
+
`USDC` inside the braces is _Arbitrum's_ USDC, because those calls run on Arbitrum. Resolving it
|
|
235
|
+
against the enclosing chain would put one chain's address in another chain's route.
|
|
236
|
+
|
|
237
|
+
### A throw reverts everything
|
|
238
|
+
|
|
239
|
+
A `throw` or a failed `require` in a program, and every guard the SDK emits, reverts the whole
|
|
240
|
+
fulfillment — no earlier route call survives it. A program that refuses to create an intent
|
|
241
|
+
therefore leaves nothing behind, and a measurement below its floor cannot strand funds in the Pot.
|
|
242
|
+
|
|
243
|
+
### Where each value comes from
|
|
244
|
+
|
|
245
|
+
| Value | Comes from |
|
|
246
|
+
| ------------------ | ----------------------------------------------------------------- |
|
|
247
|
+
| Portal, both sides | The eco-routes deployment tables, by chain |
|
|
248
|
+
| Prover | The tables, by source/destination pair |
|
|
249
|
+
| Destination Pot | Derived — see below |
|
|
250
|
+
| Engine | The released engine address |
|
|
251
|
+
| Destination | The chain you named |
|
|
252
|
+
| Source | The chain the program runs on |
|
|
253
|
+
| Deadline | **You.** Too early is unfulfillable, too late locks the reward up |
|
|
254
|
+
| Creator | **You.** See below |
|
|
255
|
+
| Execution fee | **You**, for a program body. See below |
|
|
256
|
+
|
|
257
|
+
The **creator** is the address that may reclaim the reward if nobody earns it. The executing Pot is
|
|
258
|
+
the obvious default and the wrong one: it is owned by the Portal's Executor, which every solver can
|
|
259
|
+
drive, so a refund landing there is a refund anyone can take. Set `IntentOptions.creator` and every
|
|
260
|
+
intent the program creates inherits it, along with the deadline and the eco-routes deployment; a
|
|
261
|
+
direct `compileSauceRoute` caller sets `compile.intents.creator`.
|
|
262
|
+
|
|
263
|
+
The **execution fee** is the one value that cannot be derived. It is mutable on-chain, and it lives
|
|
264
|
+
on the destination, which the source chain cannot read while it executes. Read it at build time and
|
|
265
|
+
pass it as `compile.intents.executionFee`:
|
|
266
|
+
|
|
267
|
+
```ts
|
|
268
|
+
import { destinationExecutionFee } from "@eco-incorp/sauce";
|
|
269
|
+
|
|
270
|
+
const request = destinationExecutionFee();
|
|
271
|
+
// const { data } = await client.call(request);
|
|
272
|
+
// const executionFee = request.decode(data!);
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Read it shortly before building: an increase before fulfillment makes the cook revert, which reverts
|
|
276
|
+
the fulfillment.
|
|
277
|
+
|
|
278
|
+
### The destination Pot is derived
|
|
279
|
+
|
|
280
|
+
A Pot is CREATE2 from the Kitchen over its owner and a salt, and the owner a route call must cook as
|
|
281
|
+
is the `executor()` of the Portal the child's route records — itself that Portal's second `CREATE`,
|
|
282
|
+
so it follows from the Portal address. That is the registry's Portal, or `destinationPortal` when you
|
|
283
|
+
override it: a route recording one Portal is run by that Portal's Executor, and a Pot owned by any
|
|
284
|
+
other Executor would refuse the cook with `NotOwner()`. Nothing is read from a chain and nothing is
|
|
285
|
+
asked of you. The salt is zero (`SAUCE_INTENT_POT_SALT`), so there is **one shared Pot per Executor**
|
|
286
|
+
rather than one per intent: the Pot the solver deploys for that Portal. A Pot is fixed by its owner
|
|
287
|
+
and salt, so whoever calls `deployPot(executor, 0)` creates that same Pot, owned by the Executor.
|
|
288
|
+
|
|
289
|
+
Deriving an address is not deploying a contract, and the lowering deploys nothing. **The Pot must
|
|
290
|
+
exist before the child intent is fulfilled** — the solver deploys it — or the fulfilment reverts
|
|
291
|
+
when the Executor calls an address without code. A token-only body cooks nothing, so it needs no Pot.
|
|
292
|
+
|
|
293
|
+
A Pot you name with `pot` must equally exist already and be owned by that Executor.
|
|
294
|
+
|
|
295
|
+
Because it is shared, **leave nothing in it**. Deliver assets, use them, and move the remainder out
|
|
296
|
+
within the same fulfillment. Anything resting there, or any allowance left standing, belongs to
|
|
297
|
+
whoever drives the Executor next.
|
|
298
|
+
|
|
299
|
+
### Overrides
|
|
300
|
+
|
|
301
|
+
Everything derived can be overridden through `compile.intents`, and `Base(...)` passes its own
|
|
302
|
+
fields down so the common case sets none of them:
|
|
303
|
+
|
|
304
|
+
| Field | Overrides |
|
|
305
|
+
| ---------------------------- | -------------------------------------------------------------------- |
|
|
306
|
+
| `deadline`, `rewardDeadline` | The route and reward deadlines |
|
|
307
|
+
| `creator`, `prover` | The reward's creator and prover |
|
|
308
|
+
| `sourcePortal` | Where the intent is published |
|
|
309
|
+
| `destinationPortal` | The Portal recorded in the child's route |
|
|
310
|
+
| `pot`, `engine` | Where a program body cooks, and on what; a named Pot is not deployed |
|
|
311
|
+
| `executionFee` | The cook's value |
|
|
312
|
+
| `salt`, `allowPartial` | The route salt, and partial funding |
|
|
313
|
+
| `generation`, `environment` | Which eco-routes deployment to address |
|
|
314
|
+
|
|
315
|
+
### What is refused
|
|
316
|
+
|
|
317
|
+
Each of these is a compile error naming the construct, never a silently different intent:
|
|
318
|
+
|
|
319
|
+
- An identifier that is neither a compile-time value nor a variable of the enclosing program.
|
|
320
|
+
- A `.reward(...)` that is not an object, or a token entry missing `token` or `amount`.
|
|
321
|
+
- A missing `deadline`, a missing `creator`, or a missing `executionFee` for a program body.
|
|
322
|
+
- A chain with no eco-routes deployment, or a pair with no prover deployed on both sides.
|
|
323
|
+
|
|
324
|
+
Inside a program body an unknown name is the _compiler's_ error rather than this lowering's, and
|
|
325
|
+
reads the same way: it names the variable that is not declared.
|
|
326
|
+
|
|
109
327
|
## Callbacks are compiled source
|
|
110
328
|
|
|
111
329
|
A callback is read with `Function.prototype.toString()`, parsed, and compiled as SauceScript. It is never invoked as a JavaScript callback and captures no outer variables. An `amount` in surrounding JavaScript does not become a value inside the program.
|
|
@@ -155,4 +373,4 @@ export async function readVault(
|
|
|
155
373
|
|
|
156
374
|
Execute this read on the source chain. `hashCall()` cross-checks hashes against the Portal; `fundedCall()` checks funding. `predictVault({ portal, vaultInitCodeHash })` provides an offline CREATE2 prediction when you have verified the deployed vault configuration.
|
|
157
375
|
|
|
158
|
-
|
|
376
|
+
For a Solana destination, build the execution with the Kitchen client rather than the SVM route helpers: the instruction those helpers emit is not one the Solana engine accepts, and staging the code does not change that. The [Solana guide](solana.md) has the supported path.
|