@dev.sail.money/sailor 0.0.2-12
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/AGENTS.md +111 -0
- package/LICENSE +21 -0
- package/README.md +337 -0
- package/docs/PERMISSION_MODEL.md +93 -0
- package/examples/permissions/BoundedBet_Limitless_Base.sol +96 -0
- package/examples/permissions/BoundedBorrow_AaveV3_Arbitrum.sol +94 -0
- package/examples/permissions/BoundedPerp_GMXv2_Arbitrum.sol +143 -0
- package/examples/permissions/BoundedSwap_UniswapV3_Base.sol +113 -0
- package/examples/permissions/BoundedSwap_UniswapV4_Unichain.sol +144 -0
- package/examples/permissions/BoundedTransfer_ERC20_Ethereum.sol +73 -0
- package/examples/permissions/README.md +52 -0
- package/examples/permissions/foundry.toml +10 -0
- package/examples/permissions/interfaces/IPermission.sol +18 -0
- package/package.json +39 -0
- package/packages/cli/README.md +34 -0
- package/packages/cli/dist/index.cjs +42801 -0
- package/packages/cli/dist/server.cjs +51201 -0
- package/packages/sdk/README.md +65 -0
- package/packages/sdk/dist/abis/MandateFactory.d.ts +140 -0
- package/packages/sdk/dist/abis/MandateFactory.d.ts.map +1 -0
- package/packages/sdk/dist/abis/MandateFactory.js +93 -0
- package/packages/sdk/dist/abis/MandateFactory.js.map +1 -0
- package/packages/sdk/dist/abis/SailGovernance.d.ts +57 -0
- package/packages/sdk/dist/abis/SailGovernance.d.ts.map +1 -0
- package/packages/sdk/dist/abis/SailGovernance.js +52 -0
- package/packages/sdk/dist/abis/SailGovernance.js.map +1 -0
- package/packages/sdk/dist/abis/SailKernel.d.ts +466 -0
- package/packages/sdk/dist/abis/SailKernel.d.ts.map +1 -0
- package/packages/sdk/dist/abis/SailKernel.js +311 -0
- package/packages/sdk/dist/abis/SailKernel.js.map +1 -0
- package/packages/sdk/dist/abis/index.d.ts +4 -0
- package/packages/sdk/dist/abis/index.d.ts.map +1 -0
- package/packages/sdk/dist/abis/index.js +7 -0
- package/packages/sdk/dist/abis/index.js.map +1 -0
- package/packages/sdk/dist/capabilities.d.ts +77 -0
- package/packages/sdk/dist/capabilities.d.ts.map +1 -0
- package/packages/sdk/dist/capabilities.js +158 -0
- package/packages/sdk/dist/capabilities.js.map +1 -0
- package/packages/sdk/dist/client.d.ts +37 -0
- package/packages/sdk/dist/client.d.ts.map +1 -0
- package/packages/sdk/dist/client.js +646 -0
- package/packages/sdk/dist/client.js.map +1 -0
- package/packages/sdk/dist/deployments.d.ts +82 -0
- package/packages/sdk/dist/deployments.d.ts.map +1 -0
- package/packages/sdk/dist/deployments.js +197 -0
- package/packages/sdk/dist/deployments.js.map +1 -0
- package/packages/sdk/dist/discovery.d.ts +10 -0
- package/packages/sdk/dist/discovery.d.ts.map +1 -0
- package/packages/sdk/dist/discovery.js +41 -0
- package/packages/sdk/dist/discovery.js.map +1 -0
- package/packages/sdk/dist/eip712.d.ts +257 -0
- package/packages/sdk/dist/eip712.d.ts.map +1 -0
- package/packages/sdk/dist/eip712.js +255 -0
- package/packages/sdk/dist/eip712.js.map +1 -0
- package/packages/sdk/dist/errors.d.ts +47 -0
- package/packages/sdk/dist/errors.d.ts.map +1 -0
- package/packages/sdk/dist/errors.js +168 -0
- package/packages/sdk/dist/errors.js.map +1 -0
- package/packages/sdk/dist/fees.d.ts +16 -0
- package/packages/sdk/dist/fees.d.ts.map +1 -0
- package/packages/sdk/dist/fees.js +51 -0
- package/packages/sdk/dist/fees.js.map +1 -0
- package/packages/sdk/dist/index.d.ts +23 -0
- package/packages/sdk/dist/index.d.ts.map +1 -0
- package/packages/sdk/dist/index.js +16 -0
- package/packages/sdk/dist/index.js.map +1 -0
- package/packages/sdk/dist/intelligence.d.ts +923 -0
- package/packages/sdk/dist/intelligence.d.ts.map +1 -0
- package/packages/sdk/dist/intelligence.js +357 -0
- package/packages/sdk/dist/intelligence.js.map +1 -0
- package/packages/sdk/dist/keyring.d.ts +60 -0
- package/packages/sdk/dist/keyring.d.ts.map +1 -0
- package/packages/sdk/dist/keyring.js +159 -0
- package/packages/sdk/dist/keyring.js.map +1 -0
- package/packages/sdk/dist/lifi.d.ts +83 -0
- package/packages/sdk/dist/lifi.d.ts.map +1 -0
- package/packages/sdk/dist/lifi.js +69 -0
- package/packages/sdk/dist/lifi.js.map +1 -0
- package/packages/sdk/dist/safe.d.ts +158 -0
- package/packages/sdk/dist/safe.d.ts.map +1 -0
- package/packages/sdk/dist/safe.js +163 -0
- package/packages/sdk/dist/safe.js.map +1 -0
- package/packages/sdk/dist/signing.d.ts +106 -0
- package/packages/sdk/dist/signing.d.ts.map +1 -0
- package/packages/sdk/dist/signing.js +2 -0
- package/packages/sdk/dist/signing.js.map +1 -0
- package/packages/sdk/dist/templates/ammLiquidity.d.ts +16 -0
- package/packages/sdk/dist/templates/ammLiquidity.d.ts.map +1 -0
- package/packages/sdk/dist/templates/ammLiquidity.js +60 -0
- package/packages/sdk/dist/templates/ammLiquidity.js.map +1 -0
- package/packages/sdk/dist/templates/approveAndCallBatch.d.ts +14 -0
- package/packages/sdk/dist/templates/approveAndCallBatch.d.ts.map +1 -0
- package/packages/sdk/dist/templates/approveAndCallBatch.js +53 -0
- package/packages/sdk/dist/templates/approveAndCallBatch.js.map +1 -0
- package/packages/sdk/dist/templates/boundedBorrow.d.ts +16 -0
- package/packages/sdk/dist/templates/boundedBorrow.d.ts.map +1 -0
- package/packages/sdk/dist/templates/boundedBorrow.js +56 -0
- package/packages/sdk/dist/templates/boundedBorrow.js.map +1 -0
- package/packages/sdk/dist/templates/boundedSwap.d.ts +16 -0
- package/packages/sdk/dist/templates/boundedSwap.d.ts.map +1 -0
- package/packages/sdk/dist/templates/boundedSwap.js +56 -0
- package/packages/sdk/dist/templates/boundedSwap.js.map +1 -0
- package/packages/sdk/dist/templates/defiBundle.d.ts +14 -0
- package/packages/sdk/dist/templates/defiBundle.d.ts.map +1 -0
- package/packages/sdk/dist/templates/defiBundle.js +52 -0
- package/packages/sdk/dist/templates/defiBundle.js.map +1 -0
- package/packages/sdk/dist/templates/index.d.ts +15 -0
- package/packages/sdk/dist/templates/index.d.ts.map +1 -0
- package/packages/sdk/dist/templates/index.js +8 -0
- package/packages/sdk/dist/templates/index.js.map +1 -0
- package/packages/sdk/dist/templates/pendle.d.ts +14 -0
- package/packages/sdk/dist/templates/pendle.d.ts.map +1 -0
- package/packages/sdk/dist/templates/pendle.js +52 -0
- package/packages/sdk/dist/templates/pendle.js.map +1 -0
- package/packages/sdk/dist/templates/transferTarget.d.ts +10 -0
- package/packages/sdk/dist/templates/transferTarget.d.ts.map +1 -0
- package/packages/sdk/dist/templates/transferTarget.js +42 -0
- package/packages/sdk/dist/templates/transferTarget.js.map +1 -0
- package/packages/sdk/dist/types.d.ts +382 -0
- package/packages/sdk/dist/types.d.ts.map +1 -0
- package/packages/sdk/dist/types.js +2 -0
- package/packages/sdk/dist/types.js.map +1 -0
- package/packages/sdk/package.json +52 -0
- package/packages/ui/dist/assets/Arc-VDBY7LNS-BChRXCXW.js +1 -0
- package/packages/ui/dist/assets/Brave-BRAKJXDS-mq-Xo37j.js +1 -0
- package/packages/ui/dist/assets/Browser-76IHF3Y2-BMhRaC5Z.js +1 -0
- package/packages/ui/dist/assets/Chrome-65Q5P54Y-DR9MQEVr.js +1 -0
- package/packages/ui/dist/assets/Edge-XSPUTORV-DEoZslQE.js +1 -0
- package/packages/ui/dist/assets/Firefox-AAHGJQIP-Bp_Hm04m.js +1 -0
- package/packages/ui/dist/assets/Linux-OO4TNCLJ-B0aw93n9.js +1 -0
- package/packages/ui/dist/assets/Macos-MW4AE7LN-Vvm8Drw3.js +1 -0
- package/packages/ui/dist/assets/Opera-KQZLSACL-Cwv5MDFy.js +1 -0
- package/packages/ui/dist/assets/Safari-ZPL37GXR-C4Ggg6rz.js +1 -0
- package/packages/ui/dist/assets/Windows-PPTHQER6-BlyV2p7Y.js +1 -0
- package/packages/ui/dist/assets/add-DaJhwIBV.js +15 -0
- package/packages/ui/dist/assets/all-wallets-BUxsqWXi.js +6 -0
- package/packages/ui/dist/assets/apechain-SX5YFU6N-q5qBv-mp.js +1 -0
- package/packages/ui/dist/assets/app-store-DkltwTqE.js +17 -0
- package/packages/ui/dist/assets/apple-owVOeaIT.js +18 -0
- package/packages/ui/dist/assets/ar_AR-LIPSOZP5-BQrIDibT.js +1519 -0
- package/packages/ui/dist/assets/arbitrum-WURIBY6W-CqVkHBr5.js +1 -0
- package/packages/ui/dist/assets/arrow-bottom-D2mmNJve.js +8 -0
- package/packages/ui/dist/assets/arrow-bottom-circle-CbNYijx-.js +11 -0
- package/packages/ui/dist/assets/arrow-left-DJB61s4C.js +8 -0
- package/packages/ui/dist/assets/arrow-right-BBrsQ9R4.js +8 -0
- package/packages/ui/dist/assets/arrow-top-Cil6bOc8.js +8 -0
- package/packages/ui/dist/assets/assets-Q6ZU7ZJ5-P8HioiAD.js +1 -0
- package/packages/ui/dist/assets/avalanche-KOMJD3XY-Dsn_JPR4.js +1 -0
- package/packages/ui/dist/assets/bank-CbwEmRo3.js +14 -0
- package/packages/ui/dist/assets/base-OAXLRA4F-CoYTVIiL.js +1 -0
- package/packages/ui/dist/assets/base-QS6CYWIN-CsjdbWCf.js +1 -0
- package/packages/ui/dist/assets/basic-CLNfjw3m.js +2128 -0
- package/packages/ui/dist/assets/berachain-NJECWIVC-DumxnFvf.js +1 -0
- package/packages/ui/dist/assets/blast-V555OVXZ-BbhJh1tj.js +1 -0
- package/packages/ui/dist/assets/browser-B5TtF4Pb.js +14 -0
- package/packages/ui/dist/assets/bsc-N647EYR2-B2nLKXWV.js +1 -0
- package/packages/ui/dist/assets/card-CO7BVB-C.js +14 -0
- package/packages/ui/dist/assets/ccip-2W7K3_J3.js +1 -0
- package/packages/ui/dist/assets/celo-GEP4TUHG-CenIBYLU.js +1 -0
- package/packages/ui/dist/assets/checkmark-BEtSHq9m.js +11 -0
- package/packages/ui/dist/assets/checkmark-bold-D9xGHzPE.js +8 -0
- package/packages/ui/dist/assets/chevron-bottom-BDztht6i.js +8 -0
- package/packages/ui/dist/assets/chevron-left-EV4GFNbc.js +8 -0
- package/packages/ui/dist/assets/chevron-right-B4_bB9oR.js +8 -0
- package/packages/ui/dist/assets/chevron-top-D54xPNzF.js +8 -0
- package/packages/ui/dist/assets/chrome-store-DYUpAJJq.js +61 -0
- package/packages/ui/dist/assets/clock-Ca1T1Soz.js +8 -0
- package/packages/ui/dist/assets/close-BZqWjurK.js +8 -0
- package/packages/ui/dist/assets/coinPlaceholder-e6fl2XDo.js +8 -0
- package/packages/ui/dist/assets/compass-DCLC7zIh.js +8 -0
- package/packages/ui/dist/assets/connect-UA7M4XW6-IY3X6Bmr.js +1 -0
- package/packages/ui/dist/assets/copy-Th2AaD-O.js +15 -0
- package/packages/ui/dist/assets/core-Ckx_cyuH.js +907 -0
- package/packages/ui/dist/assets/create-FASO7PVG-D_rvSpre.js +1 -0
- package/packages/ui/dist/assets/cronos-HJPAQTAE-BEOvlOC4.js +1 -0
- package/packages/ui/dist/assets/cursor-DV7rOqbJ.js +3 -0
- package/packages/ui/dist/assets/cursor-transparent-BKHeABKB.js +12 -0
- package/packages/ui/dist/assets/de_DE-YE3KOFHU-BRt5ztUe.js +1519 -0
- package/packages/ui/dist/assets/degen-FQQ4XGHB-CeHTs88l.js +1 -0
- package/packages/ui/dist/assets/desktop-CBjY8t6F.js +9 -0
- package/packages/ui/dist/assets/disconnect-DbSs2cli.js +8 -0
- package/packages/ui/dist/assets/discord-ZlLOAUkM.js +17 -0
- package/packages/ui/dist/assets/es_419-7LMPU7G4-DH7rM0yQ.js +1519 -0
- package/packages/ui/dist/assets/ethereum-RGGVA4PY-SWGOlkuk.js +1 -0
- package/packages/ui/dist/assets/etherscan-CKUrqWYN.js +6 -0
- package/packages/ui/dist/assets/events-CiKP71cK.js +1 -0
- package/packages/ui/dist/assets/exclamation-triangle-DA1QzFiO.js +4 -0
- package/packages/ui/dist/assets/extension-BVJkmvpJ.js +8 -0
- package/packages/ui/dist/assets/external-link-D_bsR7B2.js +8 -0
- package/packages/ui/dist/assets/facebook-CmFmhojx.js +26 -0
- package/packages/ui/dist/assets/fallback-Ofl6uSnB.js +1 -0
- package/packages/ui/dist/assets/farcaster-Co-M3Ss8.js +12 -0
- package/packages/ui/dist/assets/filters-B1WwNaFU.js +8 -0
- package/packages/ui/dist/assets/flow-5FQJFCTK-CUie2reO.js +1 -0
- package/packages/ui/dist/assets/fr_FR-VBJP3ZLL-B-_ocunw.js +1519 -0
- package/packages/ui/dist/assets/github-CP4fP6gn.js +18 -0
- package/packages/ui/dist/assets/gnosis-37ZC4RBL-B137OtHZ.js +1 -0
- package/packages/ui/dist/assets/google-CsOIXJ6V.js +18 -0
- package/packages/ui/dist/assets/gravity-J5YQHTYH-Bj6B0uod.js +1 -0
- package/packages/ui/dist/assets/hardhat-TX56IT5N-CV1FY-wE.js +1 -0
- package/packages/ui/dist/assets/help-circle-DiMkomdF.js +12 -0
- package/packages/ui/dist/assets/hi_IN-WBVD5XYI-D73g2UFs.js +1519 -0
- package/packages/ui/dist/assets/hyperevm-VKPAA4SA-CHwraEsx.js +1 -0
- package/packages/ui/dist/assets/id-lmscL5LX.js +12 -0
- package/packages/ui/dist/assets/id_ID-SBYANJ7G-Cjpa4ay6.js +1519 -0
- package/packages/ui/dist/assets/image-B-ubJrY5.js +4 -0
- package/packages/ui/dist/assets/index-BaukYv-x.js +16 -0
- package/packages/ui/dist/assets/index-CF0KMmke.js +395 -0
- package/packages/ui/dist/assets/index-CKxgNxS9.css +1 -0
- package/packages/ui/dist/assets/index-CZR1Qjhs.js +1 -0
- package/packages/ui/dist/assets/index-DVgfCzCo.js +1 -0
- package/packages/ui/dist/assets/index-Dbh5V1Z0.js +1 -0
- package/packages/ui/dist/assets/index-Q2Yai4Fe.js +2103 -0
- package/packages/ui/dist/assets/index.es-C78cE5SI.js +26 -0
- package/packages/ui/dist/assets/info-Cqg57EVo.js +3 -0
- package/packages/ui/dist/assets/info-circle-DkeSWNKV.js +12 -0
- package/packages/ui/dist/assets/ink-FZMYZWHG-62p-5IK5.js +1 -0
- package/packages/ui/dist/assets/ja_JP-ZRMWJV3I-DXbifiMm.js +1519 -0
- package/packages/ui/dist/assets/kaia-65D2U3PU-JmuLQ4gC.js +1 -0
- package/packages/ui/dist/assets/ko_KR-FR54RFUG-upinSHjQ.js +1519 -0
- package/packages/ui/dist/assets/lightbulb-DNlO4qKh.js +3 -0
- package/packages/ui/dist/assets/linea-QRMVQ5DY-DuI3vv0d.js +1 -0
- package/packages/ui/dist/assets/login-UP3DZBGS-Db_wM5oQ.js +1 -0
- package/packages/ui/dist/assets/mail-kVQ8Jb9Y.js +8 -0
- package/packages/ui/dist/assets/manta-SI27YFEJ-CpVOKa06.js +1 -0
- package/packages/ui/dist/assets/mantle-CKIUT334-DR2WgqzU.js +1 -0
- package/packages/ui/dist/assets/metaMaskWallet-EI6MED72-D5HFOsnz.js +1 -0
- package/packages/ui/dist/assets/metamask-sdk-CBalSvz7.js +542 -0
- package/packages/ui/dist/assets/mobile-BEteuhF7.js +9 -0
- package/packages/ui/dist/assets/monad-4KWC6TSS-DVXSkpiz.js +1 -0
- package/packages/ui/dist/assets/more-DBWmXQli.js +11 -0
- package/packages/ui/dist/assets/ms_MY-EZSGYYYQ-4cPLK-3L.js +1519 -0
- package/packages/ui/dist/assets/native-CJ5et6AR.js +1 -0
- package/packages/ui/dist/assets/network-placeholder-Dg1uUHiL.js +14 -0
- package/packages/ui/dist/assets/nftPlaceholder-i3AHSiD9.js +8 -0
- package/packages/ui/dist/assets/off-BtMm0fi2.js +8 -0
- package/packages/ui/dist/assets/optimism-HAF2GUT7-ec6Nqxs9.js +1 -0
- package/packages/ui/dist/assets/parseSignature-Cb5FlWWg.js +1 -0
- package/packages/ui/dist/assets/play-store-iKKkXa6a.js +32 -0
- package/packages/ui/dist/assets/plus-CA5NaRtb.js +13 -0
- package/packages/ui/dist/assets/polygon-WW6ZI7PM-DXlmm4L1.js +1 -0
- package/packages/ui/dist/assets/pt_BR-JQFQ3P4L-DOHfdcA2.js +1519 -0
- package/packages/ui/dist/assets/qr-code-D2kiqR7h.js +6 -0
- package/packages/ui/dist/assets/rainbowWallet-O26YNBMX-DUhYus-9.js +1 -0
- package/packages/ui/dist/assets/recycle-horizontal-Dcme7R03.js +9 -0
- package/packages/ui/dist/assets/refresh-Dega3sDp.js +8 -0
- package/packages/ui/dist/assets/refresh-S4T5V5GX-CwqIaaxK.js +1 -0
- package/packages/ui/dist/assets/reown-logo-xNkksyWJ.js +12 -0
- package/packages/ui/dist/assets/ronin-EMCPYXZT-N-QBHZdV.js +1 -0
- package/packages/ui/dist/assets/ru_RU-Z42UEJBP-Cvb2oWxQ.js +1519 -0
- package/packages/ui/dist/assets/safeWallet-5MNKTR5Z-D-5imDLD.js +1 -0
- package/packages/ui/dist/assets/sanko-RHQYXGM5-OX010CbN.js +1 -0
- package/packages/ui/dist/assets/scan-4UYSQ56Q-CjMz6-XC.js +1 -0
- package/packages/ui/dist/assets/scroll-5OBGQVOV-DJFECiai.js +1 -0
- package/packages/ui/dist/assets/search-HYl7NO8x.js +8 -0
- package/packages/ui/dist/assets/secp256k1-Cxd6_SiH.js +1 -0
- package/packages/ui/dist/assets/send-CJU8CUAo.js +15 -0
- package/packages/ui/dist/assets/sign-A7IJEUT5-CGsRnPrd.js +1 -0
- package/packages/ui/dist/assets/superposition-HG6MMR2Y-bRkgatRO.js +1 -0
- package/packages/ui/dist/assets/swapHorizontal-IMUKiUre.js +8 -0
- package/packages/ui/dist/assets/swapHorizontalBold-CNYnNJ9-.js +8 -0
- package/packages/ui/dist/assets/swapHorizontalMedium-B9VxEYsT.js +16 -0
- package/packages/ui/dist/assets/swapHorizontalRoundedBold-Dz33l_Jh.js +8 -0
- package/packages/ui/dist/assets/swapVertical-CHUmjVJ0.js +8 -0
- package/packages/ui/dist/assets/telegram-kl9S2mbU.js +16 -0
- package/packages/ui/dist/assets/th_TH-4YB4VSB2-BUipNP-V.js +1519 -0
- package/packages/ui/dist/assets/three-dots-U5lhA1Am.js +5 -0
- package/packages/ui/dist/assets/tr_TR-5FKHPPIO-D5jTpIm9.js +1519 -0
- package/packages/ui/dist/assets/twitch-KTEUWXEp.js +18 -0
- package/packages/ui/dist/assets/twitterIcon-BHiq8mRg.js +6 -0
- package/packages/ui/dist/assets/uk_UA-ZD4IBC52-DgnQrpzl.js +1519 -0
- package/packages/ui/dist/assets/unichain-C5BWO2ZY-BfguYsnu.js +1 -0
- package/packages/ui/dist/assets/verify-CfN-BXNd.js +8 -0
- package/packages/ui/dist/assets/verify-filled-DwZccetj.js +8 -0
- package/packages/ui/dist/assets/vi_VN-5EVRZKLY-x078672g.js +1519 -0
- package/packages/ui/dist/assets/w3m-modal-CS-PFqPE.js +642 -0
- package/packages/ui/dist/assets/wallet-DVlGkhOY.js +8 -0
- package/packages/ui/dist/assets/wallet-placeholder-CvR_iEWX.js +14 -0
- package/packages/ui/dist/assets/walletConnectWallet-YHWKVTDY-D3lyiczV.js +1 -0
- package/packages/ui/dist/assets/walletconnect-8pZBDvVI.js +30 -0
- package/packages/ui/dist/assets/warning-circle-ylLEE0Yp.js +12 -0
- package/packages/ui/dist/assets/x-C_TBsTMj.js +12 -0
- package/packages/ui/dist/assets/xdc-KJ3TDBYO-DNV6zchh.js +1 -0
- package/packages/ui/dist/assets/zetachain-TLDS5IPW-Udhyw16T.js +1 -0
- package/packages/ui/dist/assets/zh_CN-4XK5YJPR-Bt6Yz5Ek.js +1519 -0
- package/packages/ui/dist/assets/zh_HK-N4YN2WSI-Cvzl1V16.js +1519 -0
- package/packages/ui/dist/assets/zh_TW-CNCRXH6Z-BNelatfN.js +1519 -0
- package/packages/ui/dist/assets/zksync-DH7HK5U4-Dt4usFw6.js +1 -0
- package/packages/ui/dist/assets/zora-FYL5H3IO-iB4wygST.js +1 -0
- package/packages/ui/dist/index.html +14 -0
- package/scripts/check-docs.mjs +262 -0
- package/scripts/check-init.mjs +109 -0
- package/scripts/postinstall.js +366 -0
- package/templates/custom-mandate/.sail/contracts/interfaces/IPermission.sol +18 -0
- package/templates/custom-mandate/README.md +85 -0
- package/templates/custom-mandate/foundry.toml +8 -0
- package/templates/custom-mandate/mandates/BoundedCallPermission.sol +35 -0
- package/templates/custom-mandate/mandates/README.md +16 -0
- package/templates/dca-rebalancer/.cursor/rules +25 -0
- package/templates/dca-rebalancer/.env.example +6 -0
- package/templates/dca-rebalancer/.github/workflows/agent-tick.yml +32 -0
- package/templates/dca-rebalancer/.sail/.gitkeep +0 -0
- package/templates/dca-rebalancer/.sail/README.md +13 -0
- package/templates/dca-rebalancer/.sail/config.json +10 -0
- package/templates/dca-rebalancer/AGENTS.md +246 -0
- package/templates/dca-rebalancer/AGENT_PLAYBOOK.md +110 -0
- package/templates/dca-rebalancer/CLAUDE.md +2 -0
- package/templates/dca-rebalancer/README.md +16 -0
- package/templates/dca-rebalancer/_gitignore +13 -0
- package/templates/dca-rebalancer/docs/PERMISSION_MODEL.md +93 -0
- package/templates/dca-rebalancer/package.json +17 -0
- package/templates/dca-rebalancer/src/agent.ts +253 -0
- package/templates/dca-rebalancer/src/config.ts +27 -0
- package/templates/dca-rebalancer/src/mandate.ts +67 -0
- package/templates/dca-rebalancer/tsconfig.json +8 -0
- package/templates/dca-rebalancer/ui/README.md +3 -0
- package/templates/lifi-permissions/LifiBoundedApprovePermissionCloneable.sol +84 -0
- package/templates/lifi-permissions/LifiDiamondSwapPermissionCloneable.sol +97 -0
- package/templates/lifi-permissions/README.md +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intelligence.d.ts","sourceRoot":"","sources":["../src/intelligence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sail Intelligence — https://api.sail.money
|
|
3
|
+
*
|
|
4
|
+
* AUTO-GENERATED from the OpenAPI spec at build time.
|
|
5
|
+
* Do not edit manually — run `pnpm build` to regenerate.
|
|
6
|
+
*
|
|
7
|
+
* Spec version : 1.2.0
|
|
8
|
+
* Generated at : 2026-06-05T12:43:07.205Z
|
|
9
|
+
*/
|
|
10
|
+
export const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
|
|
11
|
+
export const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
|
|
12
|
+
export class SailIntelligence {
|
|
13
|
+
_base;
|
|
14
|
+
_headers;
|
|
15
|
+
constructor(opts) {
|
|
16
|
+
this._base = opts.baseUrl ?? SAIL_INTELLIGENCE_BASE_URL;
|
|
17
|
+
this._headers = { "Content-Type": "application/json", "X-API-Key": opts.apiKey };
|
|
18
|
+
}
|
|
19
|
+
async _get(path, query) {
|
|
20
|
+
const url = new URL(`${this._base}${path}`);
|
|
21
|
+
if (query)
|
|
22
|
+
Object.entries(query).forEach(([k, v]) => url.searchParams.set(k, v));
|
|
23
|
+
const res = await fetch(url.toString(), { headers: this._headers });
|
|
24
|
+
if (!res.ok)
|
|
25
|
+
throw new Error(`Sail Intelligence GET ${path} → ${res.status}`);
|
|
26
|
+
return res.json();
|
|
27
|
+
}
|
|
28
|
+
async _post(path, body) {
|
|
29
|
+
const res = await fetch(`${this._base}${path}`, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: this._headers,
|
|
32
|
+
body: JSON.stringify(body),
|
|
33
|
+
});
|
|
34
|
+
if (!res.ok)
|
|
35
|
+
throw new Error(`Sail Intelligence POST ${path} → ${res.status}`);
|
|
36
|
+
return res.json();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* All available yield sources
|
|
40
|
+
* Returns all yield sources monitored by Sail Intelligence Sonar. Filter by chain or token to narrow the result set.
|
|
41
|
+
*/
|
|
42
|
+
vaultSources(query) {
|
|
43
|
+
const _p = {};
|
|
44
|
+
if (query)
|
|
45
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
46
|
+
if (v != null)
|
|
47
|
+
_p[k] = v;
|
|
48
|
+
});
|
|
49
|
+
return this._get(`/v1/vault/sources`, _p);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Single yield source risk intelligence
|
|
53
|
+
* Returns Sail Intelligence Sonar risk intelligence for a single yield source. Includes active disable flags, affected tokens, risk score context, and the collateral dependency tree used for institutional review workflows.
|
|
54
|
+
*/
|
|
55
|
+
vault(vaultAddress) {
|
|
56
|
+
return this._get(`/v1/vault/${vaultAddress}`);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Quick yield source safety decision
|
|
60
|
+
* Returns a single operational answer for institutional workflows: is this yield source currently safe to interact with. Checks both the source-level kill switch and deposit-token depeg status. For full Sonar context use GET /v1/vault/{address}.
|
|
61
|
+
*/
|
|
62
|
+
vaultSafe(vaultAddress, query) {
|
|
63
|
+
const _p = {};
|
|
64
|
+
if (query)
|
|
65
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
66
|
+
if (v != null)
|
|
67
|
+
_p[k] = v;
|
|
68
|
+
});
|
|
69
|
+
return this._get(`/v1/vault/${vaultAddress}/safe`, _p);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Portfolio risk check
|
|
73
|
+
* Given a list of institutional positions (vault address plus optional chain/token), returns which are currently affected by active Sonar risk signals (vault disabled or deposit token depegged). Maximum 500 positions per request.
|
|
74
|
+
*/
|
|
75
|
+
portfolioCheck(body) {
|
|
76
|
+
return this._post(`/v1/portfolio/check`, body);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Sonar global risk snapshot
|
|
80
|
+
* Returns a full Sonar monitoring snapshot of all currently active risk flags: disabled vault addresses (with source breakdown and cooldown state), depegged tokens per chain, per-vault risk scores, and the timestamp of the last institutional monitoring pipeline run.
|
|
81
|
+
*/
|
|
82
|
+
risksSummary() {
|
|
83
|
+
return this._get(`/v1/risks/summary`);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Institutional yield opportunities
|
|
87
|
+
* Returns the top available institutional yield opportunities for a given market, pre-filtered by Sonar risk signals. Disabled yield sources and depegged tokens are excluded by default. Results are sorted by APY descending.
|
|
88
|
+
*/
|
|
89
|
+
engineOpportunities(query) {
|
|
90
|
+
const _p = {};
|
|
91
|
+
if (query)
|
|
92
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
93
|
+
if (v != null)
|
|
94
|
+
_p[k] = v;
|
|
95
|
+
});
|
|
96
|
+
return this._get(`/v1/engine/opportunities`, _p);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Institutional market APY benchmark
|
|
100
|
+
* Returns APY statistics for all Sonar-clean vaults in a given market. Useful for benchmarking institutional portfolios against the currently available Sonar-cleared yield universe.
|
|
101
|
+
*/
|
|
102
|
+
engineBenchmark(query) {
|
|
103
|
+
const _p = {};
|
|
104
|
+
if (query)
|
|
105
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
106
|
+
if (v != null)
|
|
107
|
+
_p[k] = v;
|
|
108
|
+
});
|
|
109
|
+
return this._get(`/v1/engine/benchmark`, _p);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Institutional allocation recommendation
|
|
113
|
+
* Returns a recommended allocation across top-APY yield sources for a given portfolio value. Applies Sonar risk filters so disabled yield sources and depegged tokens are excluded. Uses equal-weight greedy allocation (top N by APY). For deeper execution-layer optimisation, use the institutional execution stack directly.
|
|
114
|
+
*/
|
|
115
|
+
engineAllocate(body) {
|
|
116
|
+
return this._post(`/v1/engine/allocate`, body);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Institutional rebalancing recommendation
|
|
120
|
+
* Given current institutional yield source positions, computes a rebalancing plan: which positions to exit (risk-flagged, depegged, or suboptimal APY), which to keep, and which new positions to enter. Returns current versus optimal APY and the improvement delta.
|
|
121
|
+
*/
|
|
122
|
+
engineRebalance(body) {
|
|
123
|
+
return this._post(`/v1/engine/rebalance`, body);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Allocation audit trail
|
|
127
|
+
* Returns the recommended allocation alongside a full audit trail: APY rank of each vault considered, per-detector Sonar clearance status, and explicit reasons why each vault was selected or rejected. Designed for compliance review and institutional due diligence.
|
|
128
|
+
*/
|
|
129
|
+
engineExplain(body) {
|
|
130
|
+
return this._post(`/v1/engine/explain`, body);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Institutional portfolio comparison
|
|
134
|
+
* Compares a current institutional portfolio against a proposed portfolio side by side. Returns APY delta, Sonar risk delta, which positions were exited or entered, and an overall assessment (improvement / degradation / neutral).
|
|
135
|
+
*/
|
|
136
|
+
engineCompare(body) {
|
|
137
|
+
return this._post(`/v1/engine/compare`, body);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Institutional portfolio optimization
|
|
141
|
+
* Accepts a current portfolio keyed by chain_id and returns an APY-optimized allocation across authorized vaults. Applies Sonar risk filters and the client's vault allowlist. Mirrors the contract of the fungi-core institutional_endpoint script.
|
|
142
|
+
*/
|
|
143
|
+
engineInstitutional(body) {
|
|
144
|
+
return this._post(`/v1/engine/institutional`, body);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Allocation with execution-ready calldata
|
|
148
|
+
* Runs the institutional optimisation **and** returns the on-chain transaction batch (withdraws → approvals → deposits) needed to reach the target portfolio. Calldata is rendered from the live vault catalog — no per-protocol code paths. Designed for partners running automated DeFi treasury workflows (Ampli, etc.).
|
|
149
|
+
*/
|
|
150
|
+
engineExecute(body) {
|
|
151
|
+
return this._post(`/v1/engine/execute`, body);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Live protocol catalog (APY + TVL) for a chain × token
|
|
155
|
+
* Returns every active vault we monitor for this chain + token with its current APY, TVL, and (when available) numeric risk score. Shaped to match the discovery feed in Ampli §5.3 — partners can consume it directly without an adapter.
|
|
156
|
+
*/
|
|
157
|
+
engineProtocols(chainId, tokenAddress) {
|
|
158
|
+
return this._get(`/v1/engine/protocols/${chainId}/${tokenAddress}`);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Yield opportunities (custom risk)
|
|
162
|
+
* All available institutional yield sources for a given market sorted by APY. No Sonar risk filtering is applied, so all vaults are included regardless of risk status. Sonar signals are not exposed; clients apply their own risk logic.
|
|
163
|
+
*/
|
|
164
|
+
engineRawOpportunities(query) {
|
|
165
|
+
const _p = {};
|
|
166
|
+
if (query)
|
|
167
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
168
|
+
if (v != null)
|
|
169
|
+
_p[k] = v;
|
|
170
|
+
});
|
|
171
|
+
return this._get(`/v1/engine/raw/opportunities`, _p);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Market APY benchmark (custom risk)
|
|
175
|
+
* APY statistics across all vaults in a market, including Sonar-flagged ones. Useful for institutional teams that want the full yield landscape without Sonar filtering.
|
|
176
|
+
*/
|
|
177
|
+
engineRawBenchmark(query) {
|
|
178
|
+
const _p = {};
|
|
179
|
+
if (query)
|
|
180
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
181
|
+
if (v != null)
|
|
182
|
+
_p[k] = v;
|
|
183
|
+
});
|
|
184
|
+
return this._get(`/v1/engine/raw/benchmark`, _p);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Allocation recommendation (custom risk)
|
|
188
|
+
* Recommended allocation across top-APY vaults with no Sonar risk filtering. Allocates purely by APY. Clients apply their own institutional risk layer.
|
|
189
|
+
*/
|
|
190
|
+
engineRawAllocate(body) {
|
|
191
|
+
return this._post(`/v1/engine/raw/allocate`, body);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Rebalancing recommendation (custom risk)
|
|
195
|
+
* Rebalancing recommendation with no Sonar risk filtering. Exit reasons are APY-based only — no risk_flagged or token_depegged exits.
|
|
196
|
+
*/
|
|
197
|
+
engineRawRebalance(body) {
|
|
198
|
+
return this._post(`/v1/engine/raw/rebalance`, body);
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Portfolio comparison (custom risk)
|
|
202
|
+
* Side-by-side institutional portfolio comparison with no Sonar risk filtering. Assessment is based purely on APY delta. Sonar risk delta fields are not returned.
|
|
203
|
+
*/
|
|
204
|
+
engineRawCompare(body) {
|
|
205
|
+
return this._post(`/v1/engine/raw/compare`, body);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Institutional Sonar screening
|
|
209
|
+
* Screen up to 200 vault addresses in a single call. Returns a per-vault risk tier (blocked / caution / clear), the active Sonar detectors that flagged each vault, and a full disable-source breakdown. Designed for due diligence workflows and compliance audit trails.
|
|
210
|
+
*/
|
|
211
|
+
sonarScreen(body) {
|
|
212
|
+
return this._post(`/v1/sonar/screen`, body);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Institutional pre-trade validation
|
|
216
|
+
* Validates a proposed institutional vault position before execution. Checks the vault kill-switch, deposit token depeg status, and optionally TVL concentration if a position size is provided. Returns an operational recommendation: safe_to_enter, caution, or blocked.
|
|
217
|
+
*/
|
|
218
|
+
sonarValidate(body) {
|
|
219
|
+
return this._post(`/v1/sonar/validate`, body);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* TCN model info
|
|
223
|
+
* Returns metadata about the currently loaded APY predictor: whether it is a trained neural model or the heuristic fallback, training timestamp, vault count, and validation loss.
|
|
224
|
+
*/
|
|
225
|
+
simulationModelInfo() {
|
|
226
|
+
return this._get(`/v1/simulation/model/info`);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Available chain/token combinations
|
|
230
|
+
* Returns live chain→token mapping derived from vault data in apy_data.
|
|
231
|
+
*/
|
|
232
|
+
simulationChains() {
|
|
233
|
+
return this._get(`/v1/simulation/chains`);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Create portfolio simulation
|
|
237
|
+
* Queues a simulation of portfolio performance over the specified horizon. Uses TCN-predicted APY distributions and models gas, slippage, and bridge costs at every rebalancing event. Poll the returned `poll_url` for results.
|
|
238
|
+
*/
|
|
239
|
+
simulation(body) {
|
|
240
|
+
return this._post(`/v1/simulation`, body);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* List simulations
|
|
244
|
+
* Returns recent simulation jobs for the authenticated client, newest first.
|
|
245
|
+
*/
|
|
246
|
+
simulations(query) {
|
|
247
|
+
const _p = {};
|
|
248
|
+
if (query)
|
|
249
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
250
|
+
if (v != null)
|
|
251
|
+
_p[k] = v;
|
|
252
|
+
});
|
|
253
|
+
return this._get(`/v1/simulations`, _p);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Poll simulation result
|
|
257
|
+
* Returns the current status of a simulation job. When `status` is `complete`, the `result` field contains the full P10/P50/P90 portfolio value curves and cost breakdown. Typical completion time: 5–15 seconds.
|
|
258
|
+
*/
|
|
259
|
+
getSimulation(jobId) {
|
|
260
|
+
return this._get(`/v1/simulation/${jobId}`);
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Delete simulation
|
|
264
|
+
* Permanently deletes a simulation job and its results.
|
|
265
|
+
*/
|
|
266
|
+
deleteSimulation(jobId) {
|
|
267
|
+
return this._post(`/v1/simulation/${jobId}`, {});
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Period-by-period simulation breakdown
|
|
271
|
+
* Returns a snapshot for every rebalancing period: P10/P50/P90 values, APY applied, costs incurred, and active vaults.
|
|
272
|
+
*/
|
|
273
|
+
simulationTimeline(jobId) {
|
|
274
|
+
return this._get(`/v1/simulation/${jobId}/timeline`);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get Pricing
|
|
278
|
+
* Public pricing manifest — backs `/pricing` UI + `/docs` price badges.
|
|
279
|
+
*/
|
|
280
|
+
pricing() {
|
|
281
|
+
return this._get(`/v1/pricing`);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Get Pricing Quote
|
|
285
|
+
* Pre-flight price + accepts entries — lets clients dry-run x402 flows.
|
|
286
|
+
*/
|
|
287
|
+
pricingQuote(query) {
|
|
288
|
+
const _p = {};
|
|
289
|
+
if (query)
|
|
290
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
291
|
+
if (v != null)
|
|
292
|
+
_p[k] = v;
|
|
293
|
+
});
|
|
294
|
+
return this._get(`/v1/pricing/quote`, _p);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Siwe Nonce
|
|
298
|
+
*/
|
|
299
|
+
billingSiweNonce(body) {
|
|
300
|
+
return this._post(`/v1/billing/siwe/nonce`, body);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Siwe Verify
|
|
304
|
+
*/
|
|
305
|
+
billingSiweVerify(body) {
|
|
306
|
+
return this._post(`/v1/billing/siwe/verify`, body);
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Logout
|
|
310
|
+
*/
|
|
311
|
+
billingLogout() {
|
|
312
|
+
return this._post(`/v1/billing/logout`, {});
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Billing Me
|
|
316
|
+
*/
|
|
317
|
+
billingMe() {
|
|
318
|
+
return this._get(`/v1/billing/me`);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Billing Keys
|
|
322
|
+
*/
|
|
323
|
+
billingKeys() {
|
|
324
|
+
return this._get(`/v1/billing/keys`);
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Billing Payments
|
|
328
|
+
*/
|
|
329
|
+
billingPayments(query) {
|
|
330
|
+
const _p = {};
|
|
331
|
+
if (query)
|
|
332
|
+
Object.entries(query).forEach(([k, v]) => {
|
|
333
|
+
if (v != null)
|
|
334
|
+
_p[k] = v;
|
|
335
|
+
});
|
|
336
|
+
return this._get(`/v1/billing/payments`, _p);
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Facilitator Verify
|
|
340
|
+
*/
|
|
341
|
+
facilitatorVerify() {
|
|
342
|
+
return this._post(`/v1/facilitator/verify`, {});
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Facilitator Settle
|
|
346
|
+
*/
|
|
347
|
+
facilitatorSettle() {
|
|
348
|
+
return this._post(`/v1/facilitator/settle`, {});
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Facilitator Supported
|
|
352
|
+
*/
|
|
353
|
+
facilitatorSupported() {
|
|
354
|
+
return this._get(`/v1/facilitator/supported`);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
//# sourceMappingURL=intelligence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intelligence.js","sourceRoot":"","sources":["../src/intelligence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type Address, type Hex, type LocalAccount } from "viem";
|
|
2
|
+
import type { ILocalKeyring } from "./types.js";
|
|
3
|
+
/** Encrypted keystore file format (ERC-55 / Geth-compatible). */
|
|
4
|
+
export type EncryptedKeystore = {
|
|
5
|
+
version: number;
|
|
6
|
+
id: string;
|
|
7
|
+
address: string;
|
|
8
|
+
crypto: Record<string, unknown>;
|
|
9
|
+
};
|
|
10
|
+
export type LocalKeyringOptions = {
|
|
11
|
+
type: "privateKey";
|
|
12
|
+
privateKey: Hex;
|
|
13
|
+
} | {
|
|
14
|
+
type: "keystore";
|
|
15
|
+
keystore: EncryptedKeystore;
|
|
16
|
+
password: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: "mnemonic";
|
|
19
|
+
mnemonic: string;
|
|
20
|
+
derivationPath?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A locally-held signing key used by agents to authorize dispatches.
|
|
24
|
+
* The owner key never belongs here — it stays in the user's wallet (MetaMask / WalletConnect).
|
|
25
|
+
*/
|
|
26
|
+
export declare class LocalKeyring implements ILocalKeyring {
|
|
27
|
+
readonly address: Address;
|
|
28
|
+
private readonly account;
|
|
29
|
+
/** Present only when the keyring was constructed from a raw private key. */
|
|
30
|
+
private readonly privateKey?;
|
|
31
|
+
constructor(options: LocalKeyringOptions);
|
|
32
|
+
/** Returns a lightweight signer stub for read-only contexts where the key is not available. */
|
|
33
|
+
static fromAddress(address: Address): Pick<LocalKeyring, "address">;
|
|
34
|
+
/** Generates a brand-new keyring backed by a random private key. */
|
|
35
|
+
static generate(): LocalKeyring;
|
|
36
|
+
/** Constructs a keyring from an existing raw private key. */
|
|
37
|
+
static fromPrivateKey(privateKey: Hex): LocalKeyring;
|
|
38
|
+
/**
|
|
39
|
+
* The underlying viem account, for building a WalletClient
|
|
40
|
+
* (e.g. `createWalletClient({ account: keyring.viemAccount, ... })`).
|
|
41
|
+
*/
|
|
42
|
+
get viemAccount(): LocalAccount;
|
|
43
|
+
/** Decrypts an in-memory keystore object with the given password. */
|
|
44
|
+
static fromKeystore(keystore: EncryptedKeystore, password: string): Promise<LocalKeyring>;
|
|
45
|
+
/** Loads a keyring from an encrypted JSON keystore file on disk. */
|
|
46
|
+
static fromKeystoreFile(path: string, password: string): Promise<LocalKeyring>;
|
|
47
|
+
/** Signs a raw 32-byte hash. Returns a 65-byte ECDSA signature. */
|
|
48
|
+
sign(hash: Hex): Promise<Hex>;
|
|
49
|
+
/** Internal raw-hash signer. `sign` is optional on viem's LocalAccount but is
|
|
50
|
+
* always present for privateKey/mnemonic accounts. */
|
|
51
|
+
private signHash;
|
|
52
|
+
/**
|
|
53
|
+
* Signs a typed-data payload (EIP-712).
|
|
54
|
+
* `types` must be `{ primaryType: string; types: Record<string, TypedDataParameter[]> }`.
|
|
55
|
+
*/
|
|
56
|
+
signTyped(domain: unknown, types: unknown, value: unknown): Promise<Hex>;
|
|
57
|
+
/** Exports the private key as an encrypted keystore JSON (scrypt + aes-128-ctr, geth v3). */
|
|
58
|
+
exportKeystore(password: string): Promise<EncryptedKeystore>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=keyring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyring.d.ts","sourceRoot":"","sources":["../src/keyring.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EACR,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,GAAG,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;;;GAGG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAM;gBAEtB,OAAO,EAAE,mBAAmB;IAsBxC,+FAA+F;IAC/F,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;IAInE,oEAAoE;IACpE,MAAM,CAAC,QAAQ,IAAI,YAAY;IAI/B,6DAA6D;IAC7D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,GAAG,GAAG,YAAY;IAIpD;;;OAGG;IACH,IAAI,WAAW,IAAI,YAAY,CAE9B;IAED,qEAAqE;WACxD,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA8C/F,oEAAoE;WACvD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAKpF,mEAAmE;IAC7D,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAInC;2DACuD;IACvD,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAc9E,6FAA6F;IACvF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAyCnE"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, randomBytes, randomUUID, scryptSync, timingSafeEqual, } from "node:crypto";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { hashTypedData, keccak256, } from "viem";
|
|
4
|
+
import { generatePrivateKey, mnemonicToAccount, privateKeyToAccount } from "viem/accounts";
|
|
5
|
+
// scrypt KDF parameters for keystore encryption (geth keystore v3 compatible).
|
|
6
|
+
const SCRYPT_N = 1 << 18; // 262144 — OWASP-recommended minimum for keystores
|
|
7
|
+
const SCRYPT_R = 8;
|
|
8
|
+
const SCRYPT_P = 1;
|
|
9
|
+
const SCRYPT_DKLEN = 32;
|
|
10
|
+
const SCRYPT_MAXMEM = 512 * 1024 * 1024; // 512 MB — N=262144,r=8 requires ~256 MB
|
|
11
|
+
/**
|
|
12
|
+
* A locally-held signing key used by agents to authorize dispatches.
|
|
13
|
+
* The owner key never belongs here — it stays in the user's wallet (MetaMask / WalletConnect).
|
|
14
|
+
*/
|
|
15
|
+
export class LocalKeyring {
|
|
16
|
+
address;
|
|
17
|
+
account;
|
|
18
|
+
/** Present only when the keyring was constructed from a raw private key. */
|
|
19
|
+
privateKey;
|
|
20
|
+
constructor(options) {
|
|
21
|
+
if (options.type === "privateKey") {
|
|
22
|
+
const account = privateKeyToAccount(options.privateKey);
|
|
23
|
+
this.account = account;
|
|
24
|
+
this.address = account.address;
|
|
25
|
+
this.privateKey = options.privateKey;
|
|
26
|
+
}
|
|
27
|
+
else if (options.type === "mnemonic") {
|
|
28
|
+
const account = mnemonicToAccount(options.mnemonic, options.derivationPath
|
|
29
|
+
? { path: options.derivationPath }
|
|
30
|
+
: undefined);
|
|
31
|
+
this.account = account;
|
|
32
|
+
this.address = account.address;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
throw new Error("keystore decryption not implemented — use type: 'privateKey' or type: 'mnemonic' instead");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Returns a lightweight signer stub for read-only contexts where the key is not available. */
|
|
39
|
+
static fromAddress(address) {
|
|
40
|
+
return { address };
|
|
41
|
+
}
|
|
42
|
+
/** Generates a brand-new keyring backed by a random private key. */
|
|
43
|
+
static generate() {
|
|
44
|
+
return new LocalKeyring({ type: "privateKey", privateKey: generatePrivateKey() });
|
|
45
|
+
}
|
|
46
|
+
/** Constructs a keyring from an existing raw private key. */
|
|
47
|
+
static fromPrivateKey(privateKey) {
|
|
48
|
+
return new LocalKeyring({ type: "privateKey", privateKey });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The underlying viem account, for building a WalletClient
|
|
52
|
+
* (e.g. `createWalletClient({ account: keyring.viemAccount, ... })`).
|
|
53
|
+
*/
|
|
54
|
+
get viemAccount() {
|
|
55
|
+
return this.account;
|
|
56
|
+
}
|
|
57
|
+
/** Decrypts an in-memory keystore object with the given password. */
|
|
58
|
+
static async fromKeystore(keystore, password) {
|
|
59
|
+
const crypto = keystore.crypto;
|
|
60
|
+
if (crypto.kdf !== "scrypt") {
|
|
61
|
+
throw new Error(`Unsupported keystore KDF: ${crypto.kdf}`);
|
|
62
|
+
}
|
|
63
|
+
const { n, r, p, dklen, salt } = crypto.kdfparams;
|
|
64
|
+
// Enforce minimum work factor. An externally-supplied keystore with N=1 would
|
|
65
|
+
// decrypt without error but be trivially brute-forceable.
|
|
66
|
+
if (n < 1 << 14) {
|
|
67
|
+
throw new Error(`Keystore scrypt N=${n} is below the minimum accepted value (16384). Refusing to decrypt.`);
|
|
68
|
+
}
|
|
69
|
+
if (r < 8) {
|
|
70
|
+
throw new Error(`Keystore scrypt r=${r} is below the minimum accepted value (8).`);
|
|
71
|
+
}
|
|
72
|
+
const derived = scryptSync(password, Buffer.from(salt, "hex"), dklen, {
|
|
73
|
+
N: n,
|
|
74
|
+
r,
|
|
75
|
+
p,
|
|
76
|
+
maxmem: SCRYPT_MAXMEM,
|
|
77
|
+
});
|
|
78
|
+
const ciphertext = Buffer.from(crypto.ciphertext, "hex");
|
|
79
|
+
const macInput = `0x${Buffer.concat([derived.subarray(16, 32), ciphertext]).toString("hex")}`;
|
|
80
|
+
const computedMac = Buffer.from(keccak256(macInput).slice(2), "hex");
|
|
81
|
+
const storedMac = Buffer.from(crypto.mac.toLowerCase(), "hex");
|
|
82
|
+
if (computedMac.length !== storedMac.length || !timingSafeEqual(computedMac, storedMac)) {
|
|
83
|
+
throw new Error("Invalid password or corrupt keystore");
|
|
84
|
+
}
|
|
85
|
+
const decipher = createDecipheriv("aes-128-ctr", derived.subarray(0, 16), Buffer.from(crypto.cipherparams.iv, "hex"));
|
|
86
|
+
const pkBytes = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
87
|
+
return LocalKeyring.fromPrivateKey(`0x${pkBytes.toString("hex")}`);
|
|
88
|
+
}
|
|
89
|
+
/** Loads a keyring from an encrypted JSON keystore file on disk. */
|
|
90
|
+
static async fromKeystoreFile(path, password) {
|
|
91
|
+
const keystore = JSON.parse(readFileSync(path, "utf-8"));
|
|
92
|
+
return LocalKeyring.fromKeystore(keystore, password);
|
|
93
|
+
}
|
|
94
|
+
/** Signs a raw 32-byte hash. Returns a 65-byte ECDSA signature. */
|
|
95
|
+
async sign(hash) {
|
|
96
|
+
return this.signHash(hash);
|
|
97
|
+
}
|
|
98
|
+
/** Internal raw-hash signer. `sign` is optional on viem's LocalAccount but is
|
|
99
|
+
* always present for privateKey/mnemonic accounts. */
|
|
100
|
+
signHash(hash) {
|
|
101
|
+
if (!this.account.sign) {
|
|
102
|
+
throw new Error("This keyring cannot sign raw hashes.");
|
|
103
|
+
}
|
|
104
|
+
return this.account.sign({ hash });
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Signs a typed-data payload (EIP-712).
|
|
108
|
+
* `types` must be `{ primaryType: string; types: Record<string, TypedDataParameter[]> }`.
|
|
109
|
+
*/
|
|
110
|
+
async signTyped(domain, types, value) {
|
|
111
|
+
const { primaryType, types: typeDefs } = types;
|
|
112
|
+
const hash = hashTypedData({
|
|
113
|
+
domain: domain,
|
|
114
|
+
types: typeDefs,
|
|
115
|
+
primaryType,
|
|
116
|
+
message: value,
|
|
117
|
+
});
|
|
118
|
+
return this.signHash(hash);
|
|
119
|
+
}
|
|
120
|
+
/** Exports the private key as an encrypted keystore JSON (scrypt + aes-128-ctr, geth v3). */
|
|
121
|
+
async exportKeystore(password) {
|
|
122
|
+
if (!this.privateKey) {
|
|
123
|
+
throw new Error("Private key unavailable — only privateKey/generated keyrings can be exported");
|
|
124
|
+
}
|
|
125
|
+
const salt = randomBytes(32);
|
|
126
|
+
const derived = scryptSync(password, salt, SCRYPT_DKLEN, {
|
|
127
|
+
N: SCRYPT_N,
|
|
128
|
+
r: SCRYPT_R,
|
|
129
|
+
p: SCRYPT_P,
|
|
130
|
+
maxmem: SCRYPT_MAXMEM,
|
|
131
|
+
});
|
|
132
|
+
const iv = randomBytes(16);
|
|
133
|
+
const cipher = createCipheriv("aes-128-ctr", derived.subarray(0, 16), iv);
|
|
134
|
+
const pkBytes = Buffer.from(this.privateKey.slice(2), "hex");
|
|
135
|
+
const ciphertext = Buffer.concat([cipher.update(pkBytes), cipher.final()]);
|
|
136
|
+
const macInput = `0x${Buffer.concat([derived.subarray(16, 32), ciphertext]).toString("hex")}`;
|
|
137
|
+
const mac = keccak256(macInput).slice(2);
|
|
138
|
+
return {
|
|
139
|
+
version: 3,
|
|
140
|
+
id: randomUUID(),
|
|
141
|
+
address: this.address.slice(2).toLowerCase(),
|
|
142
|
+
crypto: {
|
|
143
|
+
cipher: "aes-128-ctr",
|
|
144
|
+
ciphertext: ciphertext.toString("hex"),
|
|
145
|
+
cipherparams: { iv: iv.toString("hex") },
|
|
146
|
+
kdf: "scrypt",
|
|
147
|
+
kdfparams: {
|
|
148
|
+
n: SCRYPT_N,
|
|
149
|
+
r: SCRYPT_R,
|
|
150
|
+
p: SCRYPT_P,
|
|
151
|
+
dklen: SCRYPT_DKLEN,
|
|
152
|
+
salt: salt.toString("hex"),
|
|
153
|
+
},
|
|
154
|
+
mac,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=keyring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyring.js","sourceRoot":"","sources":["../src/keyring.ts"],"names":[],"mappings":"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"}
|