@dev.sail.money/sailor 0.0.2 → 0.1.0-local

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/AGENTS.md +140 -111
  2. package/LICENSE +21 -21
  3. package/README.md +430 -337
  4. package/docs/PERMISSION_MODEL.md +93 -93
  5. package/examples/permissions/BoundedApproveAndCallBatch.sol +179 -0
  6. package/examples/permissions/BoundedBet_Limitless_Base.sol +97 -96
  7. package/examples/permissions/BoundedBorrow_AaveV3_Arbitrum.sol +94 -94
  8. package/examples/permissions/BoundedPerp_GMXv2_Arbitrum.sol +154 -143
  9. package/examples/permissions/BoundedStake_Venice_Base.sol +85 -0
  10. package/examples/permissions/BoundedSupply_AaveV3_Arbitrum.sol +82 -0
  11. package/examples/permissions/BoundedSwap_UniswapV3_Base.sol +116 -113
  12. package/examples/permissions/BoundedSwap_UniswapV4_Unichain.sol +150 -144
  13. package/examples/permissions/BoundedTransfer_ERC20_Ethereum.sol +73 -73
  14. package/examples/permissions/BoundedVault_ERC4626_Base.sol +97 -0
  15. package/examples/permissions/README.md +79 -52
  16. package/examples/permissions/SailCalldata.sol +118 -0
  17. package/examples/permissions/foundry.toml +10 -10
  18. package/examples/permissions/interfaces/IBatchPermission.sol +38 -0
  19. package/examples/permissions/interfaces/IPermission.sol +18 -18
  20. package/package.json +45 -39
  21. package/packages/cli/README.md +34 -34
  22. package/packages/cli/dist/index.cjs +4571 -2944
  23. package/packages/cli/dist/server.cjs +1252 -2010
  24. package/packages/sdk/README.md +65 -65
  25. package/packages/sdk/dist/chains.d.ts +12 -0
  26. package/packages/sdk/dist/chains.d.ts.map +1 -0
  27. package/packages/sdk/dist/chains.js +94 -0
  28. package/packages/sdk/dist/chains.js.map +1 -0
  29. package/packages/sdk/dist/deployments.d.ts +14 -7
  30. package/packages/sdk/dist/deployments.d.ts.map +1 -1
  31. package/packages/sdk/dist/deployments.js +132 -141
  32. package/packages/sdk/dist/deployments.js.map +1 -1
  33. package/packages/sdk/dist/index.d.ts +3 -2
  34. package/packages/sdk/dist/index.d.ts.map +1 -1
  35. package/packages/sdk/dist/index.js +3 -2
  36. package/packages/sdk/dist/index.js.map +1 -1
  37. package/packages/sdk/dist/intelligence.d.ts +1 -1
  38. package/packages/sdk/dist/intelligence.js +1 -1
  39. package/packages/sdk/dist/lifi.d.ts +17 -0
  40. package/packages/sdk/dist/lifi.d.ts.map +1 -1
  41. package/packages/sdk/dist/lifi.js +24 -0
  42. package/packages/sdk/dist/lifi.js.map +1 -1
  43. package/packages/sdk/dist/safe.d.ts +83 -0
  44. package/packages/sdk/dist/safe.d.ts.map +1 -1
  45. package/packages/sdk/dist/safe.js +92 -1
  46. package/packages/sdk/dist/safe.js.map +1 -1
  47. package/packages/sdk/dist/templates/ammLiquidity.d.ts +24 -11
  48. package/packages/sdk/dist/templates/ammLiquidity.d.ts.map +1 -1
  49. package/packages/sdk/dist/templates/ammLiquidity.js +39 -31
  50. package/packages/sdk/dist/templates/ammLiquidity.js.map +1 -1
  51. package/packages/sdk/dist/templates/approveAndCallBatch.d.ts +24 -10
  52. package/packages/sdk/dist/templates/approveAndCallBatch.d.ts.map +1 -1
  53. package/packages/sdk/dist/templates/approveAndCallBatch.js +36 -23
  54. package/packages/sdk/dist/templates/approveAndCallBatch.js.map +1 -1
  55. package/packages/sdk/dist/templates/boundedBorrow.d.ts +19 -9
  56. package/packages/sdk/dist/templates/boundedBorrow.d.ts.map +1 -1
  57. package/packages/sdk/dist/templates/boundedBorrow.js +28 -19
  58. package/packages/sdk/dist/templates/boundedBorrow.js.map +1 -1
  59. package/packages/sdk/dist/templates/boundedSwap.d.ts +19 -9
  60. package/packages/sdk/dist/templates/boundedSwap.d.ts.map +1 -1
  61. package/packages/sdk/dist/templates/boundedSwap.js +30 -20
  62. package/packages/sdk/dist/templates/boundedSwap.js.map +1 -1
  63. package/packages/sdk/dist/templates/defiBundle.d.ts +35 -9
  64. package/packages/sdk/dist/templates/defiBundle.d.ts.map +1 -1
  65. package/packages/sdk/dist/templates/defiBundle.js +84 -22
  66. package/packages/sdk/dist/templates/defiBundle.js.map +1 -1
  67. package/packages/sdk/dist/templates/pendle.d.ts +23 -8
  68. package/packages/sdk/dist/templates/pendle.d.ts.map +1 -1
  69. package/packages/sdk/dist/templates/pendle.js +34 -14
  70. package/packages/sdk/dist/templates/pendle.js.map +1 -1
  71. package/packages/sdk/dist/templates/transferTarget.d.ts +11 -3
  72. package/packages/sdk/dist/templates/transferTarget.d.ts.map +1 -1
  73. package/packages/sdk/dist/templates/transferTarget.js +14 -7
  74. package/packages/sdk/dist/templates/transferTarget.js.map +1 -1
  75. package/packages/sdk/dist/types.d.ts +19 -1
  76. package/packages/sdk/dist/types.d.ts.map +1 -1
  77. package/packages/sdk/package.json +80 -52
  78. package/packages/ui/dist/assets/{add-DaJhwIBV.js → add-BxpXfVWe.js} +1 -1
  79. package/packages/ui/dist/assets/{all-wallets-BUxsqWXi.js → all-wallets-BKTn_sWK.js} +1 -1
  80. package/packages/ui/dist/assets/{app-store-DkltwTqE.js → app-store-CfuKbwxR.js} +1 -1
  81. package/packages/ui/dist/assets/{apple-owVOeaIT.js → apple-BKSBbNYg.js} +1 -1
  82. package/packages/ui/dist/assets/{arrow-bottom-D2mmNJve.js → arrow-bottom-D4bG6gZi.js} +1 -1
  83. package/packages/ui/dist/assets/{arrow-bottom-circle-CbNYijx-.js → arrow-bottom-circle-BNTs1p0T.js} +1 -1
  84. package/packages/ui/dist/assets/{arrow-left-DJB61s4C.js → arrow-left-2uee3vYv.js} +1 -1
  85. package/packages/ui/dist/assets/{arrow-right-BBrsQ9R4.js → arrow-right-BktjMV6h.js} +1 -1
  86. package/packages/ui/dist/assets/{arrow-top-Cil6bOc8.js → arrow-top-Izu28fX4.js} +1 -1
  87. package/packages/ui/dist/assets/{bank-CbwEmRo3.js → bank-USBaAyFM.js} +1 -1
  88. package/packages/ui/dist/assets/{basic-CLNfjw3m.js → basic-C_9KjTEH.js} +1 -1
  89. package/packages/ui/dist/assets/{browser-B5TtF4Pb.js → browser-DAEMAKV7.js} +1 -1
  90. package/packages/ui/dist/assets/{card-CO7BVB-C.js → card-DT8yDkKN.js} +1 -1
  91. package/packages/ui/dist/assets/{ccip-2W7K3_J3.js → ccip-CkqfGSxX.js} +1 -1
  92. package/packages/ui/dist/assets/{checkmark-BEtSHq9m.js → checkmark-CsgdEXFj.js} +1 -1
  93. package/packages/ui/dist/assets/{checkmark-bold-D9xGHzPE.js → checkmark-bold-D2gjOQo2.js} +1 -1
  94. package/packages/ui/dist/assets/{chevron-bottom-BDztht6i.js → chevron-bottom-tprFynYV.js} +1 -1
  95. package/packages/ui/dist/assets/{chevron-left-EV4GFNbc.js → chevron-left-D2Zj1gNB.js} +1 -1
  96. package/packages/ui/dist/assets/{chevron-right-B4_bB9oR.js → chevron-right-D1rRuAVe.js} +1 -1
  97. package/packages/ui/dist/assets/{chevron-top-D54xPNzF.js → chevron-top-24dL1mbL.js} +1 -1
  98. package/packages/ui/dist/assets/{chrome-store-DYUpAJJq.js → chrome-store-Vy-5niYX.js} +1 -1
  99. package/packages/ui/dist/assets/{clock-Ca1T1Soz.js → clock-qBjLnVdJ.js} +1 -1
  100. package/packages/ui/dist/assets/{close-BZqWjurK.js → close-DARDwgcu.js} +1 -1
  101. package/packages/ui/dist/assets/{coinPlaceholder-e6fl2XDo.js → coinPlaceholder-BvpIbPlD.js} +1 -1
  102. package/packages/ui/dist/assets/{compass-DCLC7zIh.js → compass-BMTO0ayt.js} +1 -1
  103. package/packages/ui/dist/assets/{copy-Th2AaD-O.js → copy-PaXeRHza.js} +1 -1
  104. package/packages/ui/dist/assets/{core-Ckx_cyuH.js → core-BFnStQd-.js} +3 -3
  105. package/packages/ui/dist/assets/cursor-BDvw-B17.js +3 -0
  106. package/packages/ui/dist/assets/{cursor-transparent-BKHeABKB.js → cursor-transparent-BEMdi-8q.js} +1 -1
  107. package/packages/ui/dist/assets/{desktop-CBjY8t6F.js → desktop-CfuLLThw.js} +1 -1
  108. package/packages/ui/dist/assets/{disconnect-DbSs2cli.js → disconnect-DhwgJMiR.js} +1 -1
  109. package/packages/ui/dist/assets/{discord-ZlLOAUkM.js → discord-po8qoN1s.js} +1 -1
  110. package/packages/ui/dist/assets/{etherscan-CKUrqWYN.js → etherscan-BEsz0_yx.js} +1 -1
  111. package/packages/ui/dist/assets/{events-CiKP71cK.js → events-Bz33Unzu.js} +1 -1
  112. package/packages/ui/dist/assets/{exclamation-triangle-DA1QzFiO.js → exclamation-triangle-7CjTAGOQ.js} +1 -1
  113. package/packages/ui/dist/assets/{extension-BVJkmvpJ.js → extension-CmxjEWEt.js} +1 -1
  114. package/packages/ui/dist/assets/{external-link-D_bsR7B2.js → external-link-CmQ--bNS.js} +1 -1
  115. package/packages/ui/dist/assets/{facebook-CmFmhojx.js → facebook-CIBn9b65.js} +1 -1
  116. package/packages/ui/dist/assets/{fallback-Ofl6uSnB.js → fallback-DATyrQlb.js} +1 -1
  117. package/packages/ui/dist/assets/{farcaster-Co-M3Ss8.js → farcaster-OJ3Jasxg.js} +1 -1
  118. package/packages/ui/dist/assets/{filters-B1WwNaFU.js → filters-D4x09zeL.js} +1 -1
  119. package/packages/ui/dist/assets/{github-CP4fP6gn.js → github-ZlIuMArp.js} +1 -1
  120. package/packages/ui/dist/assets/{google-CsOIXJ6V.js → google-Gwg85sfv.js} +1 -1
  121. package/packages/ui/dist/assets/{help-circle-DiMkomdF.js → help-circle-D1uOWYcX.js} +1 -1
  122. package/packages/ui/dist/assets/{id-lmscL5LX.js → id-C0-5UdYk.js} +1 -1
  123. package/packages/ui/dist/assets/{image-B-ubJrY5.js → image-D_DUsv8-.js} +1 -1
  124. package/packages/ui/dist/assets/{index-CZR1Qjhs.js → index-BCzex_R6.js} +1 -1
  125. package/packages/ui/dist/assets/index-BUhrHLpY.js +1775 -0
  126. package/packages/ui/dist/assets/index-Cq02kQmy.css +1 -0
  127. package/packages/ui/dist/assets/{index-BaukYv-x.js → index-CrYzBWfD.js} +1 -1
  128. package/packages/ui/dist/assets/{index-CF0KMmke.js → index-DdbJhIdl.js} +3 -3
  129. package/packages/ui/dist/assets/{index-DVgfCzCo.js → index-DiojfeVM.js} +1 -1
  130. package/packages/ui/dist/assets/{index-Dbh5V1Z0.js → index-izd7vu_r.js} +1 -1
  131. package/packages/ui/dist/assets/{index.es-C78cE5SI.js → index.es-DdkHhQAj.js} +4 -4
  132. package/packages/ui/dist/assets/{info-Cqg57EVo.js → info-CiRd_kEG.js} +1 -1
  133. package/packages/ui/dist/assets/{info-circle-DkeSWNKV.js → info-circle-ypxjqarK.js} +1 -1
  134. package/packages/ui/dist/assets/{lightbulb-DNlO4qKh.js → lightbulb-B-pxLxd8.js} +1 -1
  135. package/packages/ui/dist/assets/{mail-kVQ8Jb9Y.js → mail-BYmicuVZ.js} +1 -1
  136. package/packages/ui/dist/assets/{metamask-sdk-CBalSvz7.js → metamask-sdk-Ccl6DG7Q.js} +1 -1
  137. package/packages/ui/dist/assets/{mobile-BEteuhF7.js → mobile-CtP5PqVT.js} +1 -1
  138. package/packages/ui/dist/assets/{more-DBWmXQli.js → more-6C2733we.js} +1 -1
  139. package/packages/ui/dist/assets/{network-placeholder-Dg1uUHiL.js → network-placeholder-CdhxMzqd.js} +1 -1
  140. package/packages/ui/dist/assets/{nftPlaceholder-i3AHSiD9.js → nftPlaceholder-DVmTWEAY.js} +1 -1
  141. package/packages/ui/dist/assets/{off-BtMm0fi2.js → off-DNYLughs.js} +1 -1
  142. package/packages/ui/dist/assets/{parseSignature-Cb5FlWWg.js → parseSignature-Dq2B5Bu3.js} +1 -1
  143. package/packages/ui/dist/assets/{play-store-iKKkXa6a.js → play-store-D7Qut5ta.js} +1 -1
  144. package/packages/ui/dist/assets/{plus-CA5NaRtb.js → plus-kqMyjt3q.js} +1 -1
  145. package/packages/ui/dist/assets/{qr-code-D2kiqR7h.js → qr-code-DiUCWRbz.js} +1 -1
  146. package/packages/ui/dist/assets/{recycle-horizontal-Dcme7R03.js → recycle-horizontal-Boe3XiS-.js} +1 -1
  147. package/packages/ui/dist/assets/{refresh-Dega3sDp.js → refresh-CrBgBQYO.js} +1 -1
  148. package/packages/ui/dist/assets/{reown-logo-xNkksyWJ.js → reown-logo-CFZCCHSx.js} +1 -1
  149. package/packages/ui/dist/assets/{search-HYl7NO8x.js → search-ChTDrghU.js} +1 -1
  150. package/packages/ui/dist/assets/{secp256k1-Cxd6_SiH.js → secp256k1-DAV5Q_FR.js} +1 -1
  151. package/packages/ui/dist/assets/{send-CJU8CUAo.js → send-DLFbBFe1.js} +1 -1
  152. package/packages/ui/dist/assets/{swapHorizontal-IMUKiUre.js → swapHorizontal-BEs3emfG.js} +1 -1
  153. package/packages/ui/dist/assets/{swapHorizontalBold-CNYnNJ9-.js → swapHorizontalBold-CC-Hfa7W.js} +1 -1
  154. package/packages/ui/dist/assets/{swapHorizontalMedium-B9VxEYsT.js → swapHorizontalMedium-BmR0H8DC.js} +1 -1
  155. package/packages/ui/dist/assets/{swapHorizontalRoundedBold-Dz33l_Jh.js → swapHorizontalRoundedBold-BdP5NGIH.js} +1 -1
  156. package/packages/ui/dist/assets/{swapVertical-CHUmjVJ0.js → swapVertical-CPrGEJPY.js} +1 -1
  157. package/packages/ui/dist/assets/{telegram-kl9S2mbU.js → telegram-CxNoZ80Q.js} +1 -1
  158. package/packages/ui/dist/assets/{three-dots-U5lhA1Am.js → three-dots-BRa6SBpL.js} +1 -1
  159. package/packages/ui/dist/assets/{twitch-KTEUWXEp.js → twitch-BC338bG5.js} +1 -1
  160. package/packages/ui/dist/assets/{twitterIcon-BHiq8mRg.js → twitterIcon-BGZmt2i9.js} +1 -1
  161. package/packages/ui/dist/assets/{verify-CfN-BXNd.js → verify-CEstW0zw.js} +1 -1
  162. package/packages/ui/dist/assets/{verify-filled-DwZccetj.js → verify-filled-OkZb0weU.js} +1 -1
  163. package/packages/ui/dist/assets/{w3m-modal-CS-PFqPE.js → w3m-modal-pS09ECwE.js} +1 -1
  164. package/packages/ui/dist/assets/{wallet-DVlGkhOY.js → wallet-BXVKCgC9.js} +1 -1
  165. package/packages/ui/dist/assets/{wallet-placeholder-CvR_iEWX.js → wallet-placeholder-C_kNhB1c.js} +1 -1
  166. package/packages/ui/dist/assets/{walletconnect-8pZBDvVI.js → walletconnect-CRKIuUHH.js} +1 -1
  167. package/packages/ui/dist/assets/{warning-circle-ylLEE0Yp.js → warning-circle-DB2NnwlJ.js} +1 -1
  168. package/packages/ui/dist/assets/{x-C_TBsTMj.js → x-DT4RmwL5.js} +1 -1
  169. package/packages/ui/dist/index.html +14 -14
  170. package/scripts/check-docs.mjs +262 -262
  171. package/scripts/check-init.mjs +108 -109
  172. package/scripts/postinstall.js +81 -366
  173. package/templates/custom-mandate/.sail/contracts/interfaces/IPermission.sol +18 -18
  174. package/templates/custom-mandate/README.md +116 -85
  175. package/templates/custom-mandate/foundry.toml +8 -8
  176. package/templates/custom-mandate/mandates/BoundedCallPermission.sol +41 -35
  177. package/templates/custom-mandate/mandates/README.md +16 -16
  178. package/templates/custom-mandate/mandates/SailCalldata.sol +118 -0
  179. package/templates/{dca-rebalancer → default}/.cursor/rules +25 -25
  180. package/templates/default/.env.example +20 -0
  181. package/templates/{dca-rebalancer → default}/.github/workflows/agent-tick.yml +33 -32
  182. package/templates/{dca-rebalancer → default}/.sail/README.md +13 -13
  183. package/templates/{dca-rebalancer → default}/.sail/config.json +10 -10
  184. package/templates/default/AGENTS.md +171 -0
  185. package/templates/{dca-rebalancer → default}/CLAUDE.md +2 -2
  186. package/templates/default/README.md +16 -0
  187. package/templates/{dca-rebalancer → default}/_gitignore +13 -13
  188. package/templates/{dca-rebalancer → default}/docs/PERMISSION_MODEL.md +93 -93
  189. package/templates/default/examples/dca/README.md +16 -0
  190. package/templates/default/examples/dca/agent.ts +174 -0
  191. package/templates/{dca-rebalancer/src → default/examples/dca}/mandate.ts +45 -67
  192. package/templates/{dca-rebalancer → default}/package.json +17 -17
  193. package/templates/default/src/agent.ts +37 -0
  194. package/templates/default/src/config.ts +24 -0
  195. package/templates/default/src/mandate.ts +22 -0
  196. package/templates/default/tsconfig.json +17 -0
  197. package/templates/{dca-rebalancer → default}/ui/README.md +3 -3
  198. package/templates/lifi-permissions/LifiBoundedApprovePermissionCloneable.sol +84 -84
  199. package/templates/lifi-permissions/LifiDiamondSwapPermissionCloneable.sol +97 -97
  200. package/templates/lifi-permissions/README.md +53 -53
  201. package/packages/ui/dist/assets/cursor-DV7rOqbJ.js +0 -3
  202. package/packages/ui/dist/assets/index-CKxgNxS9.css +0 -1
  203. package/packages/ui/dist/assets/index-Q2Yai4Fe.js +0 -2103
  204. package/templates/dca-rebalancer/.env.example +0 -6
  205. package/templates/dca-rebalancer/AGENTS.md +0 -246
  206. package/templates/dca-rebalancer/AGENT_PLAYBOOK.md +0 -110
  207. package/templates/dca-rebalancer/README.md +0 -16
  208. package/templates/dca-rebalancer/src/agent.ts +0 -253
  209. package/templates/dca-rebalancer/src/config.ts +0 -27
  210. package/templates/dca-rebalancer/tsconfig.json +0 -8
  211. /package/templates/{dca-rebalancer → default}/.sail/.gitkeep +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./types.js";
2
+ export { chains, getChain } from "./chains.js";
2
3
  export { SailorClient } from "./client.js";
3
4
  export { LocalKeyring } from "./keyring.js";
4
5
  export type { EncryptedKeystore, LocalKeyringOptions } from "./keyring.js";
@@ -6,7 +7,7 @@ export { SailKernelAbi } from "./abis/SailKernel.js";
6
7
  export { MandateFactoryAbi } from "./abis/MandateFactory.js";
7
8
  export { SailGovernanceAbi } from "./abis/SailGovernance.js";
8
9
  export type { ClientMessage, ServerMessage, SerializedTypedData, SigningRequest, SigningRequestBase, SigningRequestKind, SigningResponse, SigningTxRequest, SigningTypedDataRequest, } from "./signing.js";
9
- export { SAFE_V141, buildApprovedHashSignature, buildSafeSetupInitializer, buildSetManagerExecTransaction, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, } from "./safe.js";
10
+ export { SAFE_V141, buildApprovedHashSignature, buildSafeSetupInitializer, buildSetManagerExecTransaction, computeKernelBoundSalt, computeSafeProxyAddress, computeSailSmaAddress, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, safeProxyFactoryAbi, } from "./safe.js";
10
11
  export { discoverSafesForOwner, getSafeTransactionServiceUrl } from "./discovery.js";
11
12
  export type { CloneTemplateInfo, CloneTemplateParam, KnownTemplate, SailChainId, SailDeployment, } from "./deployments.js";
12
13
  export { getSailDeployment, normalizeDeployment, sailDeployments, } from "./deployments.js";
@@ -17,7 +18,7 @@ export { KERNEL_ERROR_ABI, KERNEL_ERROR_SIGNATURES, decodeKernelError, explainKe
17
18
  export { DISPATCH_EIP712_FIELDS, REGISTER_PERMISSION_TYPES, REGISTER_PERMISSION_TYPES_NO_DEADLINE, REGISTER_PERMISSIONS_BATCH_TYPES, buildDispatchSignature, buildRegisterPermissionTypedData, buildRegisterPermissionsBatchTypedData, sailKernelDomain, signRegisterPermission, } from "./eip712.js";
18
19
  export { estimatePermissionFee } from "./fees.js";
19
20
  export type { FetchLifiQuoteParams, LifiSwapQuote } from "./lifi.js";
20
- export { DEFAULT_SLIPPAGE, LIFI_QUOTE_URL, LIFI_ROUTERS, encodeApprove, fetchLifiQuote, } from "./lifi.js";
21
+ export { DEFAULT_SLIPPAGE, LIFI_QUOTE_URL, LIFI_ROUTERS, encodeApprove, fetchLifiQuote, minTokenOut, } from "./lifi.js";
21
22
  export type { AllocationItem, AllocationRequest, AllocationResponse, BenchmarkResponse, ComparePosition, CompareRequest, CompareResponse, ExplainRequest, ExplainResponse, InstitutionalRequest, InstitutionalResponse, OpportunitiesResponse, PortfolioCheckResponse, RebalanceRequest, RebalanceResponse, RisksSummaryResponse, SafeCheckResponse, SailIntelligenceOptions, ScreenRequest, ScreenResponse, ValidateRequest, ValidateResponse, VaultRiskResponse, VaultScreenResult, YieldOpportunity, YieldSourceItem, YieldSourcesResponse, } from "./intelligence.js";
22
23
  export { SAIL_INTELLIGENCE_BASE_URL, SAIL_INTELLIGENCE_DOCS_URL, SailIntelligence, } from "./intelligence.js";
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AACrF,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,gCAAgC,EAChC,sBAAsB,EACtB,gCAAgC,EAChC,sCAAsC,EACtC,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,YAAY,EACV,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AACrF,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,gCAAgC,EAChC,sBAAsB,EACtB,gCAAgC,EAChC,sCAAsC,EACtC,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
@@ -1,16 +1,17 @@
1
1
  export * from "./types.js";
2
+ export { chains, getChain } from "./chains.js";
2
3
  export { SailorClient } from "./client.js";
3
4
  export { LocalKeyring } from "./keyring.js";
4
5
  export { SailKernelAbi } from "./abis/SailKernel.js";
5
6
  export { MandateFactoryAbi } from "./abis/MandateFactory.js";
6
7
  export { SailGovernanceAbi } from "./abis/SailGovernance.js";
7
- export { SAFE_V141, buildApprovedHashSignature, buildSafeSetupInitializer, buildSetManagerExecTransaction, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, } from "./safe.js";
8
+ export { SAFE_V141, buildApprovedHashSignature, buildSafeSetupInitializer, buildSetManagerExecTransaction, computeKernelBoundSalt, computeSafeProxyAddress, computeSailSmaAddress, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, safeProxyFactoryAbi, } from "./safe.js";
8
9
  export { discoverSafesForOwner, getSafeTransactionServiceUrl } from "./discovery.js";
9
10
  export { getSailDeployment, normalizeDeployment, sailDeployments, } from "./deployments.js";
10
11
  export { DISPATCH_TYPE_STRINGS, DISPATCH_TYPEHASHES, REGISTER_PERMISSION_TYPE_STRINGS, REGISTER_PERMISSION_TYPEHASHES, clearCapabilityCache, detectKernelCapabilities, } from "./capabilities.js";
11
12
  export { KERNEL_ERROR_ABI, KERNEL_ERROR_SIGNATURES, decodeKernelError, explainKernelRevert, } from "./errors.js";
12
13
  export { DISPATCH_EIP712_FIELDS, REGISTER_PERMISSION_TYPES, REGISTER_PERMISSION_TYPES_NO_DEADLINE, REGISTER_PERMISSIONS_BATCH_TYPES, buildDispatchSignature, buildRegisterPermissionTypedData, buildRegisterPermissionsBatchTypedData, sailKernelDomain, signRegisterPermission, } from "./eip712.js";
13
14
  export { estimatePermissionFee } from "./fees.js";
14
- export { DEFAULT_SLIPPAGE, LIFI_QUOTE_URL, LIFI_ROUTERS, encodeApprove, fetchLifiQuote, } from "./lifi.js";
15
+ export { DEFAULT_SLIPPAGE, LIFI_QUOTE_URL, LIFI_ROUTERS, encodeApprove, fetchLifiQuote, minTokenOut, } from "./lifi.js";
15
16
  export { SAIL_INTELLIGENCE_BASE_URL, SAIL_INTELLIGENCE_DOCS_URL, SailIntelligence, } from "./intelligence.js";
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAc7D,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAQrF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,gCAAgC,EAChC,sBAAsB,EACtB,gCAAgC,EAChC,sCAAsC,EACtC,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AAgCnB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAc7D,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAQrF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gCAAgC,EAChC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,gCAAgC,EAChC,sBAAsB,EACtB,gCAAgC,EAChC,sCAAsC,EACtC,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,WAAW,CAAC;AAgCnB,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,mBAAmB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.0
8
- * Generated at : 2026-06-05T10:53:26.868Z
8
+ * Generated at : 2026-06-11T16:00:41.300Z
9
9
  */
10
10
  export declare const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
11
11
  export declare const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
@@ -5,7 +5,7 @@
5
5
  * Do not edit manually — run `pnpm build` to regenerate.
6
6
  *
7
7
  * Spec version : 1.2.0
8
- * Generated at : 2026-06-05T10:53:26.868Z
8
+ * Generated at : 2026-06-11T16:00:41.300Z
9
9
  */
10
10
  export const SAIL_INTELLIGENCE_BASE_URL = "https://api.sail.money";
11
11
  export const SAIL_INTELLIGENCE_DOCS_URL = "https://api.sail.money/docs";
@@ -75,6 +75,23 @@ export type FetchLifiQuoteParams = {
75
75
  /** Optional fetch implementation (defaults to global fetch). */
76
76
  fetchFn?: typeof fetch;
77
77
  };
78
+ /**
79
+ * Compute the minimum acceptable output amount for a swap, given a quoted
80
+ * `toAmount` and a slippage tolerance.
81
+ *
82
+ * Use this to enforce slippage protection when building dispatch calldata —
83
+ * pass the result as `amountOutMinimum` (Uniswap) or `minAmount` (LiFi).
84
+ *
85
+ * @param toAmount Expected output in the destination token's base units
86
+ * (from `LifiSwapQuote.toAmount` or a Quoter call).
87
+ * @param slippage Maximum acceptable price movement as a fraction (0.03 = 3%).
88
+ * Defaults to `DEFAULT_SLIPPAGE` (3%).
89
+ *
90
+ * @example
91
+ * const quote = await fetchLifiQuote({ ... });
92
+ * const minOut = minTokenOut(quote.toAmount, 0.005); // 0.5% slippage
93
+ */
94
+ export declare function minTokenOut(toAmount: bigint, slippage?: number): bigint;
78
95
  /**
79
96
  * Fetch an executable LiFi quote for a same-chain swap. Throws with the API's
80
97
  * error body when the quote is unavailable or malformed.
@@ -1 +1 @@
1
- {"version":3,"file":"lifi.d.ts","sourceRoot":"","sources":["../src/lifi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAsB,KAAK,GAAG,EAAY,MAAM,MAAM,CAAC;AAE5E,2BAA2B;AAC3B,eAAO,MAAM,cAAc,8BAA8B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAIhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAOrC,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;EAAY,CAAC;AAE7C,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAEnE;AAED,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoCzF"}
1
+ {"version":3,"file":"lifi.d.ts","sourceRoot":"","sources":["../src/lifi.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAsB,KAAK,GAAG,EAAY,MAAM,MAAM,CAAC;AAE5E,2BAA2B;AAC3B,eAAO,MAAM,cAAc,8BAA8B,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAIhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAOrC,2CAA2C;AAC3C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;EAAY,CAAC;AAE7C,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAEnE;AAED,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,uDAAuD;IACvD,MAAM,EAAE,OAAO,CAAC;IAChB,qBAAqB;IACrB,IAAI,EAAE,GAAG,CAAC;IACV,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAyB,GAAG,MAAM,CAMzF;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoCzF"}
@@ -32,6 +32,30 @@ export const ERC20_ALLOWANCE_ABI = ERC20_ABI;
32
32
  export function encodeApprove(spender, amount) {
33
33
  return encodeFunctionData({ abi: ERC20_ABI, functionName: "approve", args: [spender, amount] });
34
34
  }
35
+ /**
36
+ * Compute the minimum acceptable output amount for a swap, given a quoted
37
+ * `toAmount` and a slippage tolerance.
38
+ *
39
+ * Use this to enforce slippage protection when building dispatch calldata —
40
+ * pass the result as `amountOutMinimum` (Uniswap) or `minAmount` (LiFi).
41
+ *
42
+ * @param toAmount Expected output in the destination token's base units
43
+ * (from `LifiSwapQuote.toAmount` or a Quoter call).
44
+ * @param slippage Maximum acceptable price movement as a fraction (0.03 = 3%).
45
+ * Defaults to `DEFAULT_SLIPPAGE` (3%).
46
+ *
47
+ * @example
48
+ * const quote = await fetchLifiQuote({ ... });
49
+ * const minOut = minTokenOut(quote.toAmount, 0.005); // 0.5% slippage
50
+ */
51
+ export function minTokenOut(toAmount, slippage = DEFAULT_SLIPPAGE) {
52
+ if (slippage < 0 || slippage >= 1)
53
+ throw new Error(`slippage must be in [0, 1) — got ${slippage}`);
54
+ // Scale to 1e6 precision to avoid floating-point truncation on small amounts.
55
+ const scale = 1000000n;
56
+ const keepFraction = BigInt(Math.round((1 - slippage) * 1_000_000));
57
+ return (toAmount * keepFraction) / scale;
58
+ }
35
59
  /**
36
60
  * Fetch an executable LiFi quote for a same-chain swap. Throws with the API's
37
61
  * error body when the quote is unavailable or malformed.
@@ -1 +1 @@
1
- {"version":3,"file":"lifi.js","sourceRoot":"","sources":["../src/lifi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifi.js","sourceRoot":"","sources":["../src/lifi.ts"],"names":[],"mappings":"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"}
@@ -129,6 +129,89 @@ export declare function buildSafeSetupInitializer(params: {
129
129
  * dependency on the Safe nonce. Layout: r = owner(32) ‖ s = 0(32) ‖ v = 1(1).
130
130
  */
131
131
  export declare function buildApprovedHashSignature(owner: Address): Hex;
132
+ /** ABI for SafeProxyFactory.proxyCreationCode() — pure view returning SafeProxy creation bytecode. */
133
+ export declare const safeProxyFactoryAbi: readonly [{
134
+ readonly type: "function";
135
+ readonly name: "proxyCreationCode";
136
+ readonly stateMutability: "pure";
137
+ readonly inputs: readonly [];
138
+ readonly outputs: readonly [{
139
+ readonly name: "";
140
+ readonly type: "bytes";
141
+ }];
142
+ }];
143
+ /**
144
+ * Compute the CREATE2 address SafeProxyFactory.createProxyWithNonce() assigns.
145
+ *
146
+ * Factory formula (from SafeProxyFactory source):
147
+ * initCode = proxyCreationCode ++ abi.encode(singleton)
148
+ * salt = keccak256(keccak256(initializer) ++ uint256(saltNonce))
149
+ * deployedAddr = CREATE2(factory, salt, keccak256(initCode))
150
+ *
151
+ * `proxyCreationCode` must be read once from the factory via `safeProxyFactoryAbi`;
152
+ * it is identical on every chain since SAFE_V141.proxyFactory is the same address everywhere.
153
+ *
154
+ * This is the LOW-LEVEL factory primitive: `saltNonce` is the value handed to
155
+ * `createProxyWithNonce` verbatim. When the deployer is SailKernel.createAccount,
156
+ * the kernel does NOT use the caller's nonce directly — it binds it to the
157
+ * deployer + principals first. To predict a Sail SMA address, use
158
+ * `computeSailSmaAddress` (which applies `computeKernelBoundSalt`), NOT this
159
+ * function with the raw nonce.
160
+ *
161
+ * NOTE: the `initializer` encodes chain-specific addresses (kernel, safeModuleEnabler)
162
+ * via `buildSafeSetupInitializer`. Different initializers per chain → different CREATE2 salts
163
+ * → different deployed addresses, even with the same `saltNonce`. Cross-chain same-address
164
+ * requires the Sail Protocol to deploy kernel + safeModuleEnabler at identical addresses on
165
+ * every chain (deterministic CREATE2 deployment), or a registerExisting() flow that
166
+ * accepts a plain Safe deployed with a chain-agnostic initializer.
167
+ */
168
+ export declare function computeSafeProxyAddress(params: {
169
+ initializer: Hex;
170
+ saltNonce: bigint;
171
+ proxyCreationCode: Hex;
172
+ }): Address;
173
+ /**
174
+ * Derive the salt SailKernel.createAccount actually passes to the factory.
175
+ *
176
+ * The kernel does NOT forward the caller's `saltNonce` directly — it binds it to
177
+ * the deployer (`msg.sender`) and the account principals to prevent address
178
+ * front-running (SailKernel.sol):
179
+ *
180
+ * boundSalt = uint256(keccak256(abi.encode(
181
+ * saltNonce, msg.sender, permissionSigner, manager, feePolicy)))
182
+ *
183
+ * In the standard onboarding flow `deployer === permissionSigner === owner`
184
+ * (the owner's EOA submits createAccount and is also the Safe's permission
185
+ * signer), while `manager` is the agent wallet and `feePolicy` is the chain's
186
+ * StandardFeePolicy.
187
+ */
188
+ export declare function computeKernelBoundSalt(params: {
189
+ saltNonce: bigint;
190
+ /** `msg.sender` of createAccount — the EOA that deploys (the owner). */
191
+ deployer: Address;
192
+ permissionSigner: Address;
193
+ manager: Address;
194
+ feePolicy: Address;
195
+ }): bigint;
196
+ /**
197
+ * Compute the deterministic SMA (Safe) address that SailKernel.createAccount
198
+ * will deploy for the given owner/manager/feePolicy and salt.
199
+ *
200
+ * This is the address `sailor account predict` should show: it applies the
201
+ * kernel's salt binding (`computeKernelBoundSalt`) before the factory's CREATE2
202
+ * formula (`computeSafeProxyAddress`). Because the bound salt mixes in the
203
+ * deployer, permission signer, manager, and fee policy, the address changes if
204
+ * ANY of those change — not just the `initializer`.
205
+ */
206
+ export declare function computeSailSmaAddress(params: {
207
+ initializer: Hex;
208
+ saltNonce: bigint;
209
+ deployer: Address;
210
+ permissionSigner: Address;
211
+ manager: Address;
212
+ feePolicy: Address;
213
+ proxyCreationCode: Hex;
214
+ }): Address;
132
215
  /** ABI-encode the kernel's `setManager(newManager)` call. */
133
216
  export declare function encodeSetManager(newManager: Address): Hex;
134
217
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAsD,MAAM,MAAM,CAAC;AAalG;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBhB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;EAQvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,GAAG,CAqBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAK9D;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,GAAG,CAMzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,uEAAuE;IACvE,IAAI,EAAE,OAAO,CAAC;IACd,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAmB7B"}
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,GAAG,EAST,MAAM,MAAM,CAAC;AAad;;;;GAIG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBhB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;EAQvB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;CAIZ,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,GAAG,CAqBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAK9D;AAED,sGAAsG;AACtG,eAAO,MAAM,mBAAmB;;;;;;;;;EAQtB,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,GAAG,CAAC;CACxB,GAAG,OAAO,CAgBV;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,MAAM,CAgBT;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,WAAW,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,GAAG,CAAC;CACxB,GAAG,OAAO,CAOV;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,GAAG,CAMzD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,uEAAuE;IACvE,IAAI,EAAE,OAAO,CAAC;IACd,yCAAyC;IACzC,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAmB7B"}
@@ -1,4 +1,4 @@
1
- import { encodeFunctionData, encodePacked, pad, zeroAddress } from "viem";
1
+ import { concat, encodeAbiParameters, encodeFunctionData, encodePacked, getCreate2Address, keccak256, pad, zeroAddress, } from "viem";
2
2
  /** Minimal SailKernel ABI fragment for the manager-rotation call. */
3
3
  const setManagerAbi = [
4
4
  {
@@ -121,6 +121,97 @@ export function buildSafeSetupInitializer(params) {
121
121
  export function buildApprovedHashSignature(owner) {
122
122
  return encodePacked(["bytes32", "bytes32", "uint8"], [pad(owner, { size: 32 }), pad("0x", { size: 32 }), 1]);
123
123
  }
124
+ /** ABI for SafeProxyFactory.proxyCreationCode() — pure view returning SafeProxy creation bytecode. */
125
+ export const safeProxyFactoryAbi = [
126
+ {
127
+ type: "function",
128
+ name: "proxyCreationCode",
129
+ stateMutability: "pure",
130
+ inputs: [],
131
+ outputs: [{ name: "", type: "bytes" }],
132
+ },
133
+ ];
134
+ /**
135
+ * Compute the CREATE2 address SafeProxyFactory.createProxyWithNonce() assigns.
136
+ *
137
+ * Factory formula (from SafeProxyFactory source):
138
+ * initCode = proxyCreationCode ++ abi.encode(singleton)
139
+ * salt = keccak256(keccak256(initializer) ++ uint256(saltNonce))
140
+ * deployedAddr = CREATE2(factory, salt, keccak256(initCode))
141
+ *
142
+ * `proxyCreationCode` must be read once from the factory via `safeProxyFactoryAbi`;
143
+ * it is identical on every chain since SAFE_V141.proxyFactory is the same address everywhere.
144
+ *
145
+ * This is the LOW-LEVEL factory primitive: `saltNonce` is the value handed to
146
+ * `createProxyWithNonce` verbatim. When the deployer is SailKernel.createAccount,
147
+ * the kernel does NOT use the caller's nonce directly — it binds it to the
148
+ * deployer + principals first. To predict a Sail SMA address, use
149
+ * `computeSailSmaAddress` (which applies `computeKernelBoundSalt`), NOT this
150
+ * function with the raw nonce.
151
+ *
152
+ * NOTE: the `initializer` encodes chain-specific addresses (kernel, safeModuleEnabler)
153
+ * via `buildSafeSetupInitializer`. Different initializers per chain → different CREATE2 salts
154
+ * → different deployed addresses, even with the same `saltNonce`. Cross-chain same-address
155
+ * requires the Sail Protocol to deploy kernel + safeModuleEnabler at identical addresses on
156
+ * every chain (deterministic CREATE2 deployment), or a registerExisting() flow that
157
+ * accepts a plain Safe deployed with a chain-agnostic initializer.
158
+ */
159
+ export function computeSafeProxyAddress(params) {
160
+ const { initializer, saltNonce, proxyCreationCode } = params;
161
+ const initCodeHash = keccak256(concat([
162
+ proxyCreationCode,
163
+ encodeAbiParameters([{ type: "address" }], [SAFE_V141.singletonL2]),
164
+ ]));
165
+ const salt = keccak256(encodePacked(["bytes32", "uint256"], [keccak256(initializer), saltNonce]));
166
+ return getCreate2Address({
167
+ from: SAFE_V141.proxyFactory,
168
+ salt,
169
+ bytecodeHash: initCodeHash,
170
+ });
171
+ }
172
+ /**
173
+ * Derive the salt SailKernel.createAccount actually passes to the factory.
174
+ *
175
+ * The kernel does NOT forward the caller's `saltNonce` directly — it binds it to
176
+ * the deployer (`msg.sender`) and the account principals to prevent address
177
+ * front-running (SailKernel.sol):
178
+ *
179
+ * boundSalt = uint256(keccak256(abi.encode(
180
+ * saltNonce, msg.sender, permissionSigner, manager, feePolicy)))
181
+ *
182
+ * In the standard onboarding flow `deployer === permissionSigner === owner`
183
+ * (the owner's EOA submits createAccount and is also the Safe's permission
184
+ * signer), while `manager` is the agent wallet and `feePolicy` is the chain's
185
+ * StandardFeePolicy.
186
+ */
187
+ export function computeKernelBoundSalt(params) {
188
+ const { saltNonce, deployer, permissionSigner, manager, feePolicy } = params;
189
+ return BigInt(keccak256(encodeAbiParameters([
190
+ { type: "uint256" },
191
+ { type: "address" },
192
+ { type: "address" },
193
+ { type: "address" },
194
+ { type: "address" },
195
+ ], [saltNonce, deployer, permissionSigner, manager, feePolicy])));
196
+ }
197
+ /**
198
+ * Compute the deterministic SMA (Safe) address that SailKernel.createAccount
199
+ * will deploy for the given owner/manager/feePolicy and salt.
200
+ *
201
+ * This is the address `sailor account predict` should show: it applies the
202
+ * kernel's salt binding (`computeKernelBoundSalt`) before the factory's CREATE2
203
+ * formula (`computeSafeProxyAddress`). Because the bound salt mixes in the
204
+ * deployer, permission signer, manager, and fee policy, the address changes if
205
+ * ANY of those change — not just the `initializer`.
206
+ */
207
+ export function computeSailSmaAddress(params) {
208
+ const boundSalt = computeKernelBoundSalt(params);
209
+ return computeSafeProxyAddress({
210
+ initializer: params.initializer,
211
+ saltNonce: boundSalt,
212
+ proxyCreationCode: params.proxyCreationCode,
213
+ });
214
+ }
124
215
  /** ABI-encode the kernel's `setManager(newManager)` call. */
125
216
  export function encodeSetManager(newManager) {
126
217
  return encodeFunctionData({
@@ -1 +1 @@
1
- {"version":3,"file":"safe.js","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe.js","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,29 @@
1
1
  import type { Address, PermissionTemplate } from "../types.js";
2
- /** Params for SharedAmmLiquidityPermission. */
2
+ /**
3
+ * Params for SharedAMMLiquidityPermission.
4
+ *
5
+ * Matches the on-chain `_applyConfig` decode exactly:
6
+ * abi.decode(params, (address[], address[], uint128, bool, bool, bool, bool, bool))
7
+ * → allowedTargets, allowedTokens, maxAmountPerTokenPerTx,
8
+ * allowMint, allowIncrease, allowDecrease, allowCollect, allowBurn
9
+ */
3
10
  export type AmmLiquidityParams = {
4
- /** Maximum total liquidity value in USD-equivalent (18-decimal WAD). */
5
- maxLiquidityValueUsd: number;
6
- /** Pool addresses the agent may LP into. */
7
- allowedPools: Address[];
8
- /** Protocol identifiers allowed (e.g. ["uniswapV3", "curveV2", "balancer"]). */
9
- allowedProtocols: string[];
10
- /** Whether single-sided deposits are permitted. */
11
- allowSingleSided: boolean;
12
- /** Maximum price range width in basis points (Uni V3 only). */
13
- maxRangeBps?: number;
11
+ /** Position-manager / router addresses the agent may call (UniV3 NPM, Aerodrome, …). */
12
+ allowedTargets: Address[];
13
+ /** Token addresses the agent may provide as liquidity. */
14
+ allowedTokens: Address[];
15
+ /** Maximum amount of any single token per tx, in that token's base units (uint128). */
16
+ maxAmountPerTokenPerTx: bigint;
17
+ /** Allow mint / open-position (and Aerodrome add-liquidity). */
18
+ allowMint: boolean;
19
+ /** Allow increaseLiquidity. */
20
+ allowIncrease: boolean;
21
+ /** Allow decreaseLiquidity (and Aerodrome remove-liquidity). */
22
+ allowDecrease: boolean;
23
+ /** Allow collect (fee withdrawal). */
24
+ allowCollect: boolean;
25
+ /** Allow burn (close position NFT). */
26
+ allowBurn: boolean;
14
27
  };
15
28
  export declare const ammLiquidityTemplate: PermissionTemplate<AmmLiquidityParams>;
16
29
  //# sourceMappingURL=ammLiquidity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ammLiquidity.d.ts","sourceRoot":"","sources":["../../src/templates/ammLiquidity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAA2B,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExF,+CAA+C;AAC/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wEAAwE;IACxE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mDAAmD;IACnD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAUF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,kBAAkB,CAuDvE,CAAC"}
1
+ {"version":3,"file":"ammLiquidity.d.ts","sourceRoot":"","sources":["../../src/templates/ammLiquidity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAA2B,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExF;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wFAAwF;IACxF,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,0DAA0D;IAC1D,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,uFAAuF;IACvF,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,aAAa,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAaF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,kBAAkB,CAyDvE,CAAC"}
@@ -1,56 +1,64 @@
1
1
  import { decodeAbiParameters, encodeAbiParameters } from "viem";
2
2
  const ABI = [
3
- { name: "maxLiquidityValueUsd", type: "uint256" },
4
- { name: "allowedPools", type: "address[]" },
5
- { name: "allowedProtocols", type: "string[]" },
6
- { name: "allowSingleSided", type: "bool" },
7
- { name: "maxRangeBps", type: "uint256" },
3
+ { name: "allowedTargets", type: "address[]" },
4
+ { name: "allowedTokens", type: "address[]" },
5
+ { name: "maxAmountPerTokenPerTx", type: "uint128" },
6
+ { name: "allowMint", type: "bool" },
7
+ { name: "allowIncrease", type: "bool" },
8
+ { name: "allowDecrease", type: "bool" },
9
+ { name: "allowCollect", type: "bool" },
10
+ { name: "allowBurn", type: "bool" },
8
11
  ];
9
12
  export const ammLiquidityTemplate = {
10
- name: "SharedAmmLiquidityPermission",
13
+ name: "SharedAMMLiquidityPermission",
11
14
  address: "0x0000000000000000000000000000000000000000",
12
15
  encoder: {
13
16
  encode(params) {
14
17
  return encodeAbiParameters(ABI, [
15
- BigInt(Math.round(params.maxLiquidityValueUsd)),
16
- params.allowedPools,
17
- params.allowedProtocols,
18
- params.allowSingleSided,
19
- BigInt(params.maxRangeBps ?? 0),
18
+ params.allowedTargets,
19
+ params.allowedTokens,
20
+ params.maxAmountPerTokenPerTx,
21
+ params.allowMint,
22
+ params.allowIncrease,
23
+ params.allowDecrease,
24
+ params.allowCollect,
25
+ params.allowBurn,
20
26
  ]);
21
27
  },
22
28
  decode(data) {
23
29
  const decoded = decodeAbiParameters(ABI, data);
24
- const maxRangeBps = Number(decoded[4]);
25
30
  return {
26
- maxLiquidityValueUsd: Number(decoded[0]),
27
- allowedPools: [...decoded[1]],
28
- allowedProtocols: [...decoded[2]],
29
- allowSingleSided: decoded[3],
30
- ...(maxRangeBps > 0 ? { maxRangeBps } : {}),
31
+ allowedTargets: [...decoded[0]],
32
+ allowedTokens: [...decoded[1]],
33
+ maxAmountPerTokenPerTx: decoded[2],
34
+ allowMint: decoded[3],
35
+ allowIncrease: decoded[4],
36
+ allowDecrease: decoded[5],
37
+ allowCollect: decoded[6],
38
+ allowBurn: decoded[7],
31
39
  };
32
40
  },
33
41
  },
34
42
  explainer: {
35
43
  explain(params) {
36
44
  const warnings = [];
37
- if (params.allowSingleSided) {
38
- warnings.push("Single-sided deposits permittedmay result in immediate impermanent loss");
45
+ if (params.allowedTargets.length === 0) {
46
+ warnings.push("No targets specifiedall liquidity operations will be blocked");
39
47
  }
40
- if (params.maxRangeBps !== undefined && params.maxRangeBps > 5000) {
41
- warnings.push(`Wide price range allowed: ±${params.maxRangeBps / 100}%`);
42
- }
43
- const rangeNote = params.maxRangeBps !== undefined
44
- ? `Maximum price range (Uni V3): ±${params.maxRangeBps / 100}%`
45
- : null;
48
+ const ops = [
49
+ params.allowMint && "mint",
50
+ params.allowIncrease && "increase",
51
+ params.allowDecrease && "decrease",
52
+ params.allowCollect && "collect",
53
+ params.allowBurn && "burn",
54
+ ].filter(Boolean);
46
55
  return {
47
- templateName: "SharedAmmLiquidityPermission",
56
+ templateName: "SharedAMMLiquidityPermission",
48
57
  humanReadable: [
49
- `Maximum liquidity value: $${params.maxLiquidityValueUsd.toLocaleString()} USD`,
50
- `Allowed protocols: ${params.allowedProtocols.join(", ")}`,
51
- `Allowed pools (${params.allowedPools.length}): ${params.allowedPools.join(", ")}`,
52
- `Single-sided deposits: ${params.allowSingleSided ? "allowed" : "not allowed"}`,
53
- ...(rangeNote ? [rangeNote] : []),
58
+ `Maximum amount per token per tx: ${params.maxAmountPerTokenPerTx.toString()} (base units)`,
59
+ `Allowed targets (${params.allowedTargets.length}): ${params.allowedTargets.join(", ")}`,
60
+ `Allowed tokens: ${params.allowedTokens.join(", ")}`,
61
+ `Enabled operations: ${ops.length ? ops.join(", ") : "none"}`,
54
62
  ],
55
63
  warnings,
56
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ammLiquidity.js","sourceRoot":"","sources":["../../src/templates/ammLiquidity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ammLiquidity.js","sourceRoot":"","sources":["../../src/templates/ammLiquidity.ts"],"names":[],"mappings":"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"}