@dev.sail.money/sailor 1.3.0-98 → 1.4.0-242
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 +7 -7
- package/LICENSE +1 -1
- package/README.md +64 -472
- package/package.json +11 -6
- package/packages/cli/README.md +1 -1
- package/packages/cli/dist/index.cjs +1469 -463
- package/packages/cli/dist/server.cjs +19796 -21737
- package/packages/sdk/README.md +1 -1
- package/packages/sdk/dist/abis/ConfigurablePermission.d.ts +130 -0
- package/packages/sdk/dist/abis/ConfigurablePermission.d.ts.map +1 -0
- package/packages/sdk/dist/abis/ConfigurablePermission.js +79 -0
- package/packages/sdk/dist/abis/ConfigurablePermission.js.map +1 -0
- package/packages/sdk/dist/abis/SailKernel.d.ts +42 -0
- package/packages/sdk/dist/abis/SailKernel.d.ts.map +1 -1
- package/packages/sdk/dist/abis/SailKernel.js +34 -0
- package/packages/sdk/dist/abis/SailKernel.js.map +1 -1
- package/packages/sdk/dist/abis/index.d.ts +1 -0
- package/packages/sdk/dist/abis/index.d.ts.map +1 -1
- package/packages/sdk/dist/abis/index.js +1 -0
- package/packages/sdk/dist/abis/index.js.map +1 -1
- package/packages/sdk/dist/chains.d.ts +0 -7
- package/packages/sdk/dist/chains.d.ts.map +1 -1
- package/packages/sdk/dist/chains.js +81 -32
- package/packages/sdk/dist/chains.js.map +1 -1
- package/packages/sdk/dist/client.d.ts +1 -1
- package/packages/sdk/dist/client.d.ts.map +1 -1
- package/packages/sdk/dist/client.js +137 -16
- package/packages/sdk/dist/client.js.map +1 -1
- package/packages/sdk/dist/deployments.d.ts +6 -4
- package/packages/sdk/dist/deployments.d.ts.map +1 -1
- package/packages/sdk/dist/deployments.js +120 -118
- package/packages/sdk/dist/deployments.js.map +1 -1
- package/packages/sdk/dist/eip712.d.ts +84 -0
- package/packages/sdk/dist/eip712.d.ts.map +1 -1
- package/packages/sdk/dist/eip712.js +148 -0
- package/packages/sdk/dist/eip712.js.map +1 -1
- package/packages/sdk/dist/fees.d.ts +2 -1
- package/packages/sdk/dist/fees.d.ts.map +1 -1
- package/packages/sdk/dist/fees.js +2 -1
- package/packages/sdk/dist/fees.js.map +1 -1
- package/packages/sdk/dist/index.d.ts +3 -2
- package/packages/sdk/dist/index.d.ts.map +1 -1
- package/packages/sdk/dist/index.js +3 -2
- package/packages/sdk/dist/index.js.map +1 -1
- package/packages/sdk/dist/intelligence.d.ts +1 -1
- package/packages/sdk/dist/intelligence.js +1 -1
- package/packages/sdk/dist/safe.d.ts +49 -0
- package/packages/sdk/dist/safe.d.ts.map +1 -1
- package/packages/sdk/dist/safe.js +74 -0
- package/packages/sdk/dist/safe.js.map +1 -1
- package/packages/sdk/package.json +6 -2
- package/packages/ui/dist/assets/{add-BX5reKtK.js → add-CBbu2pe_.js} +2 -2
- package/packages/ui/dist/assets/{all-wallets-IZ3PlVF-.js → all-wallets-C1oy4NUu.js} +2 -2
- package/packages/ui/dist/assets/{app-store-ARgRdMdF.js → app-store-DKqyf0Zv.js} +1 -1
- package/packages/ui/dist/assets/{apple-VCaqsI9w.js → apple-DyoIbCFy.js} +2 -2
- package/packages/ui/dist/assets/{arrow-bottom-circle-h5vFiZ2I.js → arrow-bottom-circle-CMS-OqZQ.js} +2 -2
- package/packages/ui/dist/assets/arrow-bottom-pUWeEqYu.js +8 -0
- package/packages/ui/dist/assets/arrow-left-B81HMJNL.js +8 -0
- package/packages/ui/dist/assets/arrow-right-Z5czoKlC.js +8 -0
- package/packages/ui/dist/assets/arrow-top-C6ym1oll.js +8 -0
- package/packages/ui/dist/assets/{bank-6c28yOM9.js → bank-B41nlslf.js} +2 -2
- package/packages/ui/dist/assets/{basic-CJnbTfSd.js → basic-CWqOb7CV.js} +177 -177
- package/packages/ui/dist/assets/{browser-CDKlxM3D.js → browser-DDKdqoZ9.js} +2 -2
- package/packages/ui/dist/assets/{card-DQdED02q.js → card-BgOmTajq.js} +2 -2
- package/packages/ui/dist/assets/ccip-CtJUKWRd.js +1 -0
- package/packages/ui/dist/assets/{checkmark-JoRNVoFV.js → checkmark-CGqQipH4.js} +2 -2
- package/packages/ui/dist/assets/{checkmark-bold-B6bGHVIs.js → checkmark-bold-Ci5xf90j.js} +2 -2
- package/packages/ui/dist/assets/chevron-bottom-D7Xert17.js +8 -0
- package/packages/ui/dist/assets/chevron-left-BGbUebR2.js +8 -0
- package/packages/ui/dist/assets/chevron-right-xVsESnHU.js +8 -0
- package/packages/ui/dist/assets/chevron-top-DEA9cR6v.js +8 -0
- package/packages/ui/dist/assets/{chrome-store-D-fiJ9qJ.js → chrome-store-BsyI-4PI.js} +2 -2
- package/packages/ui/dist/assets/{clock-xCPkzwjj.js → clock-Dct9oQ3M.js} +2 -2
- package/packages/ui/dist/assets/{close-BkqmPpWG.js → close-BvSCnI2y.js} +2 -2
- package/packages/ui/dist/assets/{coinPlaceholder-PIvN9oq_.js → coinPlaceholder-p7RiWkon.js} +2 -2
- package/packages/ui/dist/assets/{compass-CW5kWcxW.js → compass-BUeeZqX4.js} +2 -2
- package/packages/ui/dist/assets/{copy-DUZlAQJJ.js → copy-C5jXbxLq.js} +2 -2
- package/packages/ui/dist/assets/core-CiAm42Mq.js +907 -0
- package/packages/ui/dist/assets/cursor-C0T7JWFO.js +3 -0
- package/packages/ui/dist/assets/{cursor-transparent-BUAMB0G1.js → cursor-transparent-BZp3-JmA.js} +2 -2
- package/packages/ui/dist/assets/{desktop-BxdlwV8P.js → desktop-BIui_Lzb.js} +2 -2
- package/packages/ui/dist/assets/{disconnect-GelNh3mn.js → disconnect-B3Bxdchp.js} +2 -2
- package/packages/ui/dist/assets/{discord-N0jnxkzC.js → discord-VWI0yDyx.js} +2 -2
- package/packages/ui/dist/assets/{etherscan-B41u7wF4.js → etherscan-BpBvUT9i.js} +2 -2
- package/packages/ui/dist/assets/events-DQ172AOg.js +1 -0
- package/packages/ui/dist/assets/{exclamation-triangle-BWJC56FC.js → exclamation-triangle-o1TJHIUw.js} +2 -2
- package/packages/ui/dist/assets/{extension-G6I6oogw.js → extension-4RaLvbh5.js} +2 -2
- package/packages/ui/dist/assets/external-link-BHIwjDgj.js +8 -0
- package/packages/ui/dist/assets/{facebook-47twy32b.js → facebook-Bes5g-wN.js} +2 -2
- package/packages/ui/dist/assets/{farcaster-DYqnqCqs.js → farcaster-CiJ-352m.js} +2 -2
- package/packages/ui/dist/assets/{filters-dF6xeJnE.js → filters-DMOteumb.js} +2 -2
- package/packages/ui/dist/assets/{github-DbW4Ihz2.js → github-D2nDec9X.js} +2 -2
- package/packages/ui/dist/assets/{google-TKm7G8LF.js → google-lZZlQZPQ.js} +2 -2
- package/packages/ui/dist/assets/{help-circle-CY3qTmsG.js → help-circle-D4cSSziR.js} +1 -1
- package/packages/ui/dist/assets/{id-JpHW4q14.js → id-BmhXZq5P.js} +2 -2
- package/packages/ui/dist/assets/{image-Dip2fG98.js → image-Dz4FPeET.js} +2 -2
- package/packages/ui/dist/assets/index-B07bCKJ8.css +1 -0
- package/packages/ui/dist/assets/index-BV8s6ez1.js +1 -0
- package/packages/ui/dist/assets/index-BeUp3nOq.js +1 -0
- package/packages/ui/dist/assets/index-CvRylmZJ.js +16 -0
- package/packages/ui/dist/assets/{index-q0mGElxZ.js → index-DeoQO45V.js} +3 -3
- package/packages/ui/dist/assets/index-Et5S3ZaW.js +47 -0
- package/packages/ui/dist/assets/index-LiKeH8Cd.js +1780 -0
- package/packages/ui/dist/assets/index.es-dfpEui-9.js +26 -0
- package/packages/ui/dist/assets/{info-B1enFsqh.js → info-77RSvIMg.js} +2 -2
- package/packages/ui/dist/assets/{info-circle-D4j3FISs.js → info-circle-CWsII-NN.js} +2 -2
- package/packages/ui/dist/assets/{lightbulb-DZbKr-vS.js → lightbulb-BZXzm7XE.js} +2 -2
- package/packages/ui/dist/assets/{mail-D-TO_uVQ.js → mail-DMG1YqB0.js} +2 -2
- package/packages/ui/dist/assets/metamask-sdk-K1x_iqcc.js +542 -0
- package/packages/ui/dist/assets/{mobile-Bkmwzav2.js → mobile-DuJfOBSk.js} +2 -2
- package/packages/ui/dist/assets/{more-D1_I_jiB.js → more-Cs9ySK2F.js} +2 -2
- package/packages/ui/dist/assets/{network-placeholder-DUaFjoXh.js → network-placeholder-CMDPmB1E.js} +2 -2
- package/packages/ui/dist/assets/{nftPlaceholder-Cc0iUryh.js → nftPlaceholder-Cj0f9y2u.js} +2 -2
- package/packages/ui/dist/assets/{off-BvX71sse.js → off-9zSSsm-e.js} +2 -2
- package/packages/ui/dist/assets/{play-store-XzLbtbTd.js → play-store-CPwIb8Gj.js} +2 -2
- package/packages/ui/dist/assets/{plus-B77_RmYR.js → plus-BOHQri8o.js} +2 -2
- package/packages/ui/dist/assets/{qr-code-BNeIhB1d.js → qr-code-DqhbK276.js} +1 -1
- package/packages/ui/dist/assets/{recycle-horizontal-B9sX-yty.js → recycle-horizontal-BpGM56Qz.js} +2 -2
- package/packages/ui/dist/assets/{refresh-BWRygnjm.js → refresh-BPzZlhTP.js} +2 -2
- package/packages/ui/dist/assets/{reown-logo-DCAEsGFm.js → reown-logo-OCkI0xzo.js} +2 -2
- package/packages/ui/dist/assets/{search-ZXIqrawS.js → search-B1JEJvwq.js} +2 -2
- package/packages/ui/dist/assets/{secp256k1-Doz05h4g.js → secp256k1-BqUeV9Cb.js} +1 -1
- package/packages/ui/dist/assets/{send-BQcO0jNC.js → send-JNsDlNoq.js} +2 -2
- package/packages/ui/dist/assets/{swapHorizontal-4yZEzz2K.js → swapHorizontal-C3Z1FImK.js} +2 -2
- package/packages/ui/dist/assets/{swapHorizontalBold-DxBKu3sl.js → swapHorizontalBold-Cmdy2iAn.js} +2 -2
- package/packages/ui/dist/assets/{swapHorizontalMedium-DAQYJ2JK.js → swapHorizontalMedium-DFX57Nn9.js} +2 -2
- package/packages/ui/dist/assets/{swapHorizontalRoundedBold-CUlZzFJ6.js → swapHorizontalRoundedBold-baB389c8.js} +2 -2
- package/packages/ui/dist/assets/{swapVertical-CjWHAaDM.js → swapVertical-DmAYGfK1.js} +2 -2
- package/packages/ui/dist/assets/{telegram-JBeabiJP.js → telegram-BHbYE-nI.js} +2 -2
- package/packages/ui/dist/assets/{three-dots-D3R8OjSx.js → three-dots-BwRWl6qJ.js} +2 -2
- package/packages/ui/dist/assets/{twitch-1f9z7xVO.js → twitch-Drx0q6B6.js} +2 -2
- package/packages/ui/dist/assets/{twitterIcon-BW7n2xnp.js → twitterIcon-AuJ2KQ6p.js} +2 -2
- package/packages/ui/dist/assets/{verify-Cs5owI38.js → verify-Dkrd3q7o.js} +2 -2
- package/packages/ui/dist/assets/{verify-filled-Ci5sx5qS.js → verify-filled-B9e3-nz-.js} +2 -2
- package/packages/ui/dist/assets/{w3m-modal-DnWtss8u.js → w3m-modal-DtkEjQA7.js} +1 -1
- package/packages/ui/dist/assets/{wallet-MaGNqaW-.js → wallet-CqYzSiBd.js} +2 -2
- package/packages/ui/dist/assets/{wallet-placeholder-kTOy12_L.js → wallet-placeholder-B05kTN_K.js} +2 -2
- package/packages/ui/dist/assets/{walletconnect-CyuP92jg.js → walletconnect-BwoPXLaS.js} +3 -3
- package/packages/ui/dist/assets/{warning-circle-BImUCdpG.js → warning-circle-DK9Ai8rT.js} +2 -2
- package/packages/ui/dist/assets/{x-II45JHpV.js → x-BNdh5DVW.js} +2 -2
- package/packages/ui/dist/index.html +2 -2
- package/templates/default/.agents/skills/sail-mandates/SKILL.md +1 -1
- package/templates/default/.agents/skills/sail-mandates/references/approvals.md +3 -3
- package/templates/default/.agents/skills/sail-mandates/references/examples-index.md +3 -3
- package/templates/default/.agents/skills/sail-onboarding/SKILL.md +34 -33
- package/templates/default/.agents/skills/sail-servers/SKILL.md +1 -0
- package/templates/default/.agents/skills/sail-swap-quote/SKILL.md +76 -0
- package/templates/default/.agents/skills/sail-template-approve-batch/SKILL.md +98 -0
- package/templates/default/.agents/skills/sail-template-borrow/SKILL.md +68 -0
- package/templates/default/.agents/skills/sail-template-deposit/SKILL.md +61 -0
- package/templates/default/.agents/skills/sail-template-swap/SKILL.md +207 -0
- package/templates/default/.agents/skills/sail-template-swap-no-oracle/SKILL.md +100 -0
- package/templates/default/.agents/skills/sail-template-transfer/SKILL.md +52 -0
- package/templates/default/.agents/skills/sail-template-withdraw/SKILL.md +50 -0
- package/templates/default/.agents/skills/sail-templates/SKILL.md +142 -0
- package/templates/default/.agents/skills/sail-templates/catalog.mjs +200 -0
- package/templates/default/.agents/skills/sail-templates/deployed.json +133 -0
- package/templates/default/.agents/skills/sail-templates/oracles/IOracle.sol +13 -0
- package/templates/default/.agents/skills/sail-templates/oracles/UniV3TwapOracle.sol +114 -0
- package/templates/default/.agents/skills/sail-templates/oracles/libs/FullMath.sol +62 -0
- package/templates/default/.agents/skills/sail-templates/oracles/libs/TickMath.sol +44 -0
- package/templates/default/.agents/skills/sail-templates/references/config-schemas.md +139 -0
- package/templates/default/.agents/skills/sail-templates/references/reuse-flow.md +139 -0
- package/templates/default/.agents/skills/sail-token-resolve/SKILL.md +174 -0
- package/templates/default/.env.example +9 -0
- package/templates/default/AGENTS.md +107 -13
- package/templates/default/docs/PERMISSION_MODEL.md +2 -2
- package/{examples → templates/default/examples}/custom-mandate/.sail/contracts/interfaces/IPermission.sol +4 -0
- package/{examples → templates/default/examples}/custom-mandate/README.md +4 -1
- package/{examples → templates/default/examples}/permissions/interfaces/IBatchPermission.sol +2 -0
- package/{examples → templates/default/examples}/permissions/interfaces/IPermission.sol +4 -0
- package/templates/default/scripts/quote-swap.mjs +211 -0
- package/templates/default/scripts/resolve-token.mjs +992 -0
- package/templates/default/scripts/shared-template-addr.mjs +110 -0
- package/templates/default/test/BoundedCallPermission.t.sol +2 -1
- package/docs/PERMISSION_MODEL.md +0 -93
- package/examples/README.md +0 -24
- package/examples/lifi-permissions/LifiBoundedApprovePermissionCloneable.sol +0 -84
- package/examples/lifi-permissions/LifiDiamondSwapPermissionCloneable.sol +0 -97
- package/examples/lifi-permissions/README.md +0 -53
- package/packages/ui/dist/assets/arrow-bottom-Cwptw8fW.js +0 -8
- package/packages/ui/dist/assets/arrow-left-bM1TRcV9.js +0 -8
- package/packages/ui/dist/assets/arrow-right-BYd_N4Jr.js +0 -8
- package/packages/ui/dist/assets/arrow-top-CLUnwVE2.js +0 -8
- package/packages/ui/dist/assets/ccip-BL7RIPfY.js +0 -1
- package/packages/ui/dist/assets/chevron-bottom-BMCelIEu.js +0 -8
- package/packages/ui/dist/assets/chevron-left-ryPLhHCc.js +0 -8
- package/packages/ui/dist/assets/chevron-right-CdDNRv7f.js +0 -8
- package/packages/ui/dist/assets/chevron-top-BxWIjjGk.js +0 -8
- package/packages/ui/dist/assets/core-von2c1sc.js +0 -907
- package/packages/ui/dist/assets/cursor-BzRVY7BD.js +0 -3
- package/packages/ui/dist/assets/events-C9icG2YB.js +0 -1
- package/packages/ui/dist/assets/external-link-BPaGQf4a.js +0 -8
- package/packages/ui/dist/assets/fallback-BTfJeGjh.js +0 -1
- package/packages/ui/dist/assets/index-BGJ_8fMk.js +0 -1
- package/packages/ui/dist/assets/index-Bq3PAopp.js +0 -16
- package/packages/ui/dist/assets/index-C4_cA5XW.js +0 -1
- package/packages/ui/dist/assets/index-CaDN0gL4.js +0 -1
- package/packages/ui/dist/assets/index-DLElIcBr.js +0 -1789
- package/packages/ui/dist/assets/index-lhNfD4jA.css +0 -1
- package/packages/ui/dist/assets/index.es-BaCKS_tW.js +0 -26
- package/packages/ui/dist/assets/metamask-sdk-DljW3QD1.js +0 -542
- package/packages/ui/dist/assets/native-CJ5et6AR.js +0 -1
- package/packages/ui/dist/assets/parseSignature-BAS-wKoj.js +0 -1
- package/scripts/check-docs.mjs +0 -309
- package/scripts/check-init.mjs +0 -123
- package/scripts/check-update.mjs +0 -177
- package/scripts/clean.mjs +0 -17
- package/scripts/pack.mjs +0 -21
- package/templates/default/.agents/skills/sail-overview/SKILL.md +0 -100
- package/templates/default/.agents/skills/sail-sailor/SKILL.md +0 -190
- package/templates/default/.agents/skills/sail-setup/SKILL.md +0 -38
- package/templates/default/.gitlab-ci.yml +0 -58
- /package/{examples → templates/default/examples}/custom-mandate/foundry.toml +0 -0
- /package/{examples → templates/default/examples}/custom-mandate/mandates/BoundedCallPermission.sol +0 -0
- /package/{examples → templates/default/examples}/custom-mandate/mandates/README.md +0 -0
- /package/{examples → templates/default/examples}/custom-mandate/mandates/SailCalldata.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedApproveAndCallBatch.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedBorrow_AaveV3_Arbitrum.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedLimitless_Base.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedPerp_GMXv2_Arbitrum.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedStake_Venice_Base.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedSupply_AaveV3_Arbitrum.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedSwapNative_UniswapV3_Base.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedSwap_UniswapV3_Base.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedSwap_UniswapV4_Unichain.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedTransfer_ERC20_Ethereum.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/BoundedVault_ERC4626_Base.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/README.md +0 -0
- /package/{examples → templates/default/examples}/permissions/SailCalldata.sol +0 -0
- /package/{examples → templates/default/examples}/permissions/foundry.toml +0 -0
|
@@ -200,6 +200,58 @@ export declare function buildRegisterPermissionTypedData(args: {
|
|
|
200
200
|
/** Signature deadline (unix seconds). Only used when hasDeadline = true. Defaults to 5 minutes from now. */
|
|
201
201
|
deadline?: bigint;
|
|
202
202
|
}): SerializedTypedData;
|
|
203
|
+
/**
|
|
204
|
+
* EIP-712 types for RegisterAccount (post-#53 two-step onboarding). Mirrors the on-chain
|
|
205
|
+
* REGISTER_ACCOUNT_TYPEHASH:
|
|
206
|
+
* RegisterAccount(address account,address permissionSigner,address manager,
|
|
207
|
+
* address feePolicy,address feeAsset,uint256 deadline)
|
|
208
|
+
* The owner signs this digest; the resulting signature is passed as `ownerSig` to
|
|
209
|
+
* registerAccount, which the Safe submits via execTransaction (so msg.sender == the Safe).
|
|
210
|
+
*/
|
|
211
|
+
export declare const REGISTER_ACCOUNT_TYPES: {
|
|
212
|
+
readonly RegisterAccount: readonly [{
|
|
213
|
+
readonly name: "account";
|
|
214
|
+
readonly type: "address";
|
|
215
|
+
}, {
|
|
216
|
+
readonly name: "permissionSigner";
|
|
217
|
+
readonly type: "address";
|
|
218
|
+
}, {
|
|
219
|
+
readonly name: "manager";
|
|
220
|
+
readonly type: "address";
|
|
221
|
+
}, {
|
|
222
|
+
readonly name: "feePolicy";
|
|
223
|
+
readonly type: "address";
|
|
224
|
+
}, {
|
|
225
|
+
readonly name: "feeAsset";
|
|
226
|
+
readonly type: "address";
|
|
227
|
+
}, {
|
|
228
|
+
readonly name: "deadline";
|
|
229
|
+
readonly type: "uint256";
|
|
230
|
+
}];
|
|
231
|
+
};
|
|
232
|
+
/**
|
|
233
|
+
* Build a JSON-serializable RegisterAccount typed-data payload for the browser signing
|
|
234
|
+
* station. The Safe owner signs it; the signature becomes the `ownerSig` arg to
|
|
235
|
+
* registerAccount (submitted via the Safe's execTransaction). Bigints are stringified for
|
|
236
|
+
* transport; the UI re-parses the decimal-string `deadline` before signing.
|
|
237
|
+
*
|
|
238
|
+
* Note (#69): the kernel rejects the Safe v==1 approved-hash shortcut for this ownerSig —
|
|
239
|
+
* build it as a real EOA ECDSA signature over the digest, or the Safe v==0 contract-signature
|
|
240
|
+
* path for contract/nested-Safe owners. Do NOT use buildApprovedHashSignature here.
|
|
241
|
+
*/
|
|
242
|
+
export declare function buildRegisterAccountTypedData(args: {
|
|
243
|
+
chainId: number;
|
|
244
|
+
kernel: Address;
|
|
245
|
+
/** The Safe account being registered. */
|
|
246
|
+
account: Address;
|
|
247
|
+
permissionSigner: Address;
|
|
248
|
+
manager: Address;
|
|
249
|
+
feePolicy: Address;
|
|
250
|
+
/** Fee asset (address(0) for the native token). */
|
|
251
|
+
feeAsset?: Address;
|
|
252
|
+
/** Signature deadline (unix seconds). Defaults to 10 minutes from now. */
|
|
253
|
+
deadline?: bigint;
|
|
254
|
+
}): SerializedTypedData;
|
|
203
255
|
/**
|
|
204
256
|
* EIP-712 types for RegisterPermissions (batch) — selective kernel. Mirrors the
|
|
205
257
|
* shape SailorClient.mandate.attachBatch signs and the on-chain
|
|
@@ -254,4 +306,36 @@ export declare function signRegisterPermission(args: {
|
|
|
254
306
|
/** Signature deadline (unix seconds). Only used when hasDeadline = true. Defaults to 5 minutes from now. */
|
|
255
307
|
deadline?: bigint;
|
|
256
308
|
}): Promise<Hex>;
|
|
309
|
+
/**
|
|
310
|
+
* Build the EIP-712 typed data for a ConfigurablePermission template's `configure()`,
|
|
311
|
+
* **adapting to whatever schema the deployed template reports** via ERC-5267
|
|
312
|
+
* `eip712Domain()`:
|
|
313
|
+
* - domain version "1" (pre-epoch-binding templates): the legacy
|
|
314
|
+
* `Configure(account, paramsHash, nonce, deadline)` struct, domain version "1".
|
|
315
|
+
* - domain version "2" (Protocol PR #59, Octane #2/#8): adds `epoch`, read from
|
|
316
|
+
* the kernel's `registrationEpoch(account, template)`, domain version "2".
|
|
317
|
+
*
|
|
318
|
+
* No flag day: the same call signs whichever is on-chain, so it works with the
|
|
319
|
+
* currently-deployed templates today and automatically with the epoch-binding
|
|
320
|
+
* templates once they redeploy. `SailorClient.mandate.reconfigure()` consumes this
|
|
321
|
+
* to sign and submit `template.configure(...)`.
|
|
322
|
+
*
|
|
323
|
+
* An unrecognized domain version throws rather than falling back to v1, so a future
|
|
324
|
+
* schema bump fails loudly instead of being silently mis-signed against the wrong shape.
|
|
325
|
+
*/
|
|
326
|
+
export declare function buildConfigureTypedData(args: {
|
|
327
|
+
publicClient: PublicClient;
|
|
328
|
+
/** SailKernel address (source of registrationEpoch for the v2 schema). */
|
|
329
|
+
kernel: Address;
|
|
330
|
+
/** The ConfigurablePermission template instance being configured. */
|
|
331
|
+
template: Address;
|
|
332
|
+
/** The SMA the config applies to. */
|
|
333
|
+
account: Address;
|
|
334
|
+
/** ABI-encoded config blob (from `sdk/src/templates/*` encoders). */
|
|
335
|
+
params: Hex;
|
|
336
|
+
/** Current `template.configNonces(account)`. */
|
|
337
|
+
nonce: bigint;
|
|
338
|
+
/** Signature deadline (unix seconds). */
|
|
339
|
+
deadline: bigint;
|
|
340
|
+
}): Promise<SerializedTypedData>;
|
|
257
341
|
//# sourceMappingURL=eip712.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../src/eip712.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../src/eip712.ts"],"names":[],"mappings":"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"}
|
|
@@ -179,6 +179,56 @@ export function buildRegisterPermissionTypedData(args) {
|
|
|
179
179
|
},
|
|
180
180
|
};
|
|
181
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* EIP-712 types for RegisterAccount (post-#53 two-step onboarding). Mirrors the on-chain
|
|
184
|
+
* REGISTER_ACCOUNT_TYPEHASH:
|
|
185
|
+
* RegisterAccount(address account,address permissionSigner,address manager,
|
|
186
|
+
* address feePolicy,address feeAsset,uint256 deadline)
|
|
187
|
+
* The owner signs this digest; the resulting signature is passed as `ownerSig` to
|
|
188
|
+
* registerAccount, which the Safe submits via execTransaction (so msg.sender == the Safe).
|
|
189
|
+
*/
|
|
190
|
+
export const REGISTER_ACCOUNT_TYPES = {
|
|
191
|
+
RegisterAccount: [
|
|
192
|
+
{ name: "account", type: "address" },
|
|
193
|
+
{ name: "permissionSigner", type: "address" },
|
|
194
|
+
{ name: "manager", type: "address" },
|
|
195
|
+
{ name: "feePolicy", type: "address" },
|
|
196
|
+
{ name: "feeAsset", type: "address" },
|
|
197
|
+
{ name: "deadline", type: "uint256" },
|
|
198
|
+
],
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Build a JSON-serializable RegisterAccount typed-data payload for the browser signing
|
|
202
|
+
* station. The Safe owner signs it; the signature becomes the `ownerSig` arg to
|
|
203
|
+
* registerAccount (submitted via the Safe's execTransaction). Bigints are stringified for
|
|
204
|
+
* transport; the UI re-parses the decimal-string `deadline` before signing.
|
|
205
|
+
*
|
|
206
|
+
* Note (#69): the kernel rejects the Safe v==1 approved-hash shortcut for this ownerSig —
|
|
207
|
+
* build it as a real EOA ECDSA signature over the digest, or the Safe v==0 contract-signature
|
|
208
|
+
* path for contract/nested-Safe owners. Do NOT use buildApprovedHashSignature here.
|
|
209
|
+
*/
|
|
210
|
+
export function buildRegisterAccountTypedData(args) {
|
|
211
|
+
const deadline = args.deadline ?? BigInt(Math.floor(Date.now() / 1000) + 600);
|
|
212
|
+
const feeAsset = args.feeAsset ?? "0x0000000000000000000000000000000000000000";
|
|
213
|
+
return {
|
|
214
|
+
domain: {
|
|
215
|
+
name: "SailKernel",
|
|
216
|
+
version: "1",
|
|
217
|
+
chainId: args.chainId,
|
|
218
|
+
verifyingContract: args.kernel,
|
|
219
|
+
},
|
|
220
|
+
types: REGISTER_ACCOUNT_TYPES,
|
|
221
|
+
primaryType: "RegisterAccount",
|
|
222
|
+
message: {
|
|
223
|
+
account: args.account,
|
|
224
|
+
permissionSigner: args.permissionSigner,
|
|
225
|
+
manager: args.manager,
|
|
226
|
+
feePolicy: args.feePolicy,
|
|
227
|
+
feeAsset,
|
|
228
|
+
deadline: deadline.toString(),
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
182
232
|
/**
|
|
183
233
|
* EIP-712 types for RegisterPermissions (batch) — selective kernel. Mirrors the
|
|
184
234
|
* shape SailorClient.mandate.attachBatch signs and the on-chain
|
|
@@ -252,4 +302,102 @@ export async function signRegisterPermission(args) {
|
|
|
252
302
|
},
|
|
253
303
|
});
|
|
254
304
|
}
|
|
305
|
+
// ── Template configure() signing (version-adaptive: Protocol Octane #2/#8) ────
|
|
306
|
+
/**
|
|
307
|
+
* ERC-5267 `eip712Domain()` — read a ConfigurablePermission template's live EIP-712
|
|
308
|
+
* domain so we sign against whatever schema is actually deployed.
|
|
309
|
+
*/
|
|
310
|
+
const TEMPLATE_EIP712_DOMAIN_ABI = [
|
|
311
|
+
{
|
|
312
|
+
type: "function",
|
|
313
|
+
name: "eip712Domain",
|
|
314
|
+
stateMutability: "view",
|
|
315
|
+
inputs: [],
|
|
316
|
+
outputs: [
|
|
317
|
+
{ name: "fields", type: "bytes1" },
|
|
318
|
+
{ name: "name", type: "string" },
|
|
319
|
+
{ name: "version", type: "string" },
|
|
320
|
+
{ name: "chainId", type: "uint256" },
|
|
321
|
+
{ name: "verifyingContract", type: "address" },
|
|
322
|
+
{ name: "salt", type: "bytes32" },
|
|
323
|
+
{ name: "extensions", type: "uint256[]" },
|
|
324
|
+
],
|
|
325
|
+
},
|
|
326
|
+
];
|
|
327
|
+
/** SailKernel `registrationEpoch(account, permission)` — the v2 epoch a config binds to. */
|
|
328
|
+
const REGISTRATION_EPOCH_ABI = [
|
|
329
|
+
{
|
|
330
|
+
type: "function",
|
|
331
|
+
name: "registrationEpoch",
|
|
332
|
+
stateMutability: "view",
|
|
333
|
+
inputs: [
|
|
334
|
+
{ name: "account", type: "address" },
|
|
335
|
+
{ name: "permission", type: "address" },
|
|
336
|
+
],
|
|
337
|
+
outputs: [{ type: "uint256" }],
|
|
338
|
+
},
|
|
339
|
+
];
|
|
340
|
+
const CONFIGURE_FIELDS_V1 = [
|
|
341
|
+
{ name: "account", type: "address" },
|
|
342
|
+
{ name: "paramsHash", type: "bytes32" },
|
|
343
|
+
{ name: "nonce", type: "uint256" },
|
|
344
|
+
{ name: "deadline", type: "uint256" },
|
|
345
|
+
];
|
|
346
|
+
const CONFIGURE_FIELDS_V2 = [...CONFIGURE_FIELDS_V1, { name: "epoch", type: "uint256" }];
|
|
347
|
+
/**
|
|
348
|
+
* Build the EIP-712 typed data for a ConfigurablePermission template's `configure()`,
|
|
349
|
+
* **adapting to whatever schema the deployed template reports** via ERC-5267
|
|
350
|
+
* `eip712Domain()`:
|
|
351
|
+
* - domain version "1" (pre-epoch-binding templates): the legacy
|
|
352
|
+
* `Configure(account, paramsHash, nonce, deadline)` struct, domain version "1".
|
|
353
|
+
* - domain version "2" (Protocol PR #59, Octane #2/#8): adds `epoch`, read from
|
|
354
|
+
* the kernel's `registrationEpoch(account, template)`, domain version "2".
|
|
355
|
+
*
|
|
356
|
+
* No flag day: the same call signs whichever is on-chain, so it works with the
|
|
357
|
+
* currently-deployed templates today and automatically with the epoch-binding
|
|
358
|
+
* templates once they redeploy. `SailorClient.mandate.reconfigure()` consumes this
|
|
359
|
+
* to sign and submit `template.configure(...)`.
|
|
360
|
+
*
|
|
361
|
+
* An unrecognized domain version throws rather than falling back to v1, so a future
|
|
362
|
+
* schema bump fails loudly instead of being silently mis-signed against the wrong shape.
|
|
363
|
+
*/
|
|
364
|
+
export async function buildConfigureTypedData(args) {
|
|
365
|
+
const [, name, version, chainId] = (await args.publicClient.readContract({
|
|
366
|
+
address: args.template,
|
|
367
|
+
abi: TEMPLATE_EIP712_DOMAIN_ABI,
|
|
368
|
+
functionName: "eip712Domain",
|
|
369
|
+
}));
|
|
370
|
+
if (version !== "1" && version !== "2") {
|
|
371
|
+
throw new Error(`Unsupported template EIP-712 domain version "${version}" for ${args.template}. This SDK signs Configure schema v1 or v2; upgrade the SDK for newer templates.`);
|
|
372
|
+
}
|
|
373
|
+
const isV2 = version === "2";
|
|
374
|
+
const message = {
|
|
375
|
+
account: args.account,
|
|
376
|
+
paramsHash: keccak256(args.params),
|
|
377
|
+
nonce: args.nonce.toString(),
|
|
378
|
+
deadline: args.deadline.toString(),
|
|
379
|
+
};
|
|
380
|
+
if (isV2) {
|
|
381
|
+
const epoch = (await args.publicClient.readContract({
|
|
382
|
+
address: args.kernel,
|
|
383
|
+
abi: REGISTRATION_EPOCH_ABI,
|
|
384
|
+
functionName: "registrationEpoch",
|
|
385
|
+
args: [args.account, args.template],
|
|
386
|
+
}));
|
|
387
|
+
message.epoch = epoch.toString();
|
|
388
|
+
}
|
|
389
|
+
return {
|
|
390
|
+
domain: {
|
|
391
|
+
name,
|
|
392
|
+
version,
|
|
393
|
+
chainId: Number(chainId),
|
|
394
|
+
verifyingContract: args.template,
|
|
395
|
+
},
|
|
396
|
+
types: {
|
|
397
|
+
Configure: (isV2 ? CONFIGURE_FIELDS_V2 : CONFIGURE_FIELDS_V1),
|
|
398
|
+
},
|
|
399
|
+
primaryType: "Configure",
|
|
400
|
+
message,
|
|
401
|
+
};
|
|
402
|
+
}
|
|
255
403
|
//# sourceMappingURL=eip712.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eip712.js","sourceRoot":"","sources":["../src/eip712.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"eip712.js","sourceRoot":"","sources":["../src/eip712.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ import { type Address, type PublicClient } from "viem";
|
|
|
7
7
|
*
|
|
8
8
|
* This is THE single source of truth for the registration fee. The kernel
|
|
9
9
|
* charges `fee × N` for N permissions, bounded by MAX_PERMISSION_FEE_WEI
|
|
10
|
-
* (0.
|
|
10
|
+
* (0.01 ETH — the constitutional cap in SailGovernance; the seeded launch
|
|
11
|
+
* default fee is 0.001 ETH) and refunding any excess; there is NO bytecode/size-based
|
|
11
12
|
* component in the live contracts (that "variable" formula existed only in
|
|
12
13
|
* stale protocol docs describing an abandoned design). Underpaying reverts with
|
|
13
14
|
* InsufficientFee(required, provided).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../src/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,MAAM,CAAC;AAGpE
|
|
1
|
+
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../src/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAe,MAAM,MAAM,CAAC;AAGpE;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAED,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,aAAa,EAAE,aAAa,EAAE,CAAC;CAChC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,EAAE,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAK7B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAMvE;AAED;iFACiF;AACjF,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,gCAAgC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAMrE;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CASjF"}
|
|
@@ -8,7 +8,8 @@ import { SailGovernanceAbi } from "./abis/SailGovernance.js";
|
|
|
8
8
|
*
|
|
9
9
|
* This is THE single source of truth for the registration fee. The kernel
|
|
10
10
|
* charges `fee × N` for N permissions, bounded by MAX_PERMISSION_FEE_WEI
|
|
11
|
-
* (0.
|
|
11
|
+
* (0.01 ETH — the constitutional cap in SailGovernance; the seeded launch
|
|
12
|
+
* default fee is 0.001 ETH) and refunding any excess; there is NO bytecode/size-based
|
|
12
13
|
* component in the live contracts (that "variable" formula existed only in
|
|
13
14
|
* stale protocol docs describing an abandoned design). Underpaying reverts with
|
|
14
15
|
* InsufficientFee(required, provided).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../src/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,WAAW,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../src/fees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,WAAW,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,YAA0B,EAC1B,UAAmB;IAEnB,OAAO,YAAY,CAAC,YAAY,CAAC;QAC/B,OAAO,EAAE,UAAU;QACnB,GAAG,EAAE,iBAAiB;QACtB,YAAY,EAAE,2BAA2B;KAC1C,CAAoB,CAAC;AACxB,CAAC;AAgBD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,YAA0B,EAC1B,UAAmB,EACnB,WAAsB;IAEtB,MAAM,UAAU,GAAG,MAAM,6BAA6B,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACjF,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAA4B;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;IAC5C,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,0DAA0D,CAAC;IACnF,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IACxD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,wCAAwC;IAC5F,OAAO,qBAAqB,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;AACtH,CAAC;AAED;iFACiF;AACjF,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAC7C,gCAAgC;IACvB,WAAW,CAAS;IAC7B,sCAAsC;IAC7B,UAAU,CAAS;IAC5B,YAAY,OAAe,EAAE,WAAmB,EAAE,UAAkB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,WAAmB;IAClE,OAAO,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,UAAU,CAAC;AACnE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,WAAmB;IACzE,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;QAC7B,MAAM,IAAI,oBAAoB,CAC5B,4BAA4B,WAAW,CAAC,WAAW,CAAC,yBAAyB;YAC3E,qBAAqB,WAAW,CAAC,UAAU,CAAC,OAAO,EACrD,WAAW,EACX,UAAU,CACX,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -6,8 +6,9 @@ export type { EncryptedKeystore, LocalKeyringOptions } from "./keyring.js";
|
|
|
6
6
|
export { SailKernelAbi } from "./abis/SailKernel.js";
|
|
7
7
|
export { MandateFactoryAbi } from "./abis/MandateFactory.js";
|
|
8
8
|
export { SailGovernanceAbi } from "./abis/SailGovernance.js";
|
|
9
|
+
export { ConfigurablePermissionAbi, CONFIGURE_TYPES, } from "./abis/ConfigurablePermission.js";
|
|
9
10
|
export type { ClientMessage, ServerMessage, SerializedTypedData, SigningRequest, SigningRequestBase, SigningRequestKind, SigningResponse, SigningTxRequest, SigningTypedDataRequest, } from "./signing.js";
|
|
10
|
-
export { SAFE_V141, buildApprovedHashSignature, buildSafeSetupInitializer, buildSetManagerExecTransaction, computeKernelBoundSalt, computeSafeProxyAddress, computeSailSmaAddress, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, safeProxyFactoryAbi, } from "./safe.js";
|
|
11
|
+
export { SAFE_V141, buildApprovedHashSignature, buildRegisterAccountExecTransaction, buildSafeSetupInitializer, buildSetManagerExecTransaction, computeKernelBoundSalt, computeSafeProxyAddress, computeSailSmaAddress, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, safeProxyFactoryAbi, } from "./safe.js";
|
|
11
12
|
export { discoverSafesForOwner, getSafeTransactionServiceUrl } from "./discovery.js";
|
|
12
13
|
export type { CloneTemplateInfo, CloneTemplateParam, KnownTemplate, SailChainId, SailDeployment, } from "./deployments.js";
|
|
13
14
|
export { getSailDeployment, normalizeDeployment, sailDeployments, } from "./deployments.js";
|
|
@@ -15,7 +16,7 @@ export type { DispatchModel, KernelCapabilities } from "./capabilities.js";
|
|
|
15
16
|
export { DISPATCH_TYPE_STRINGS, DISPATCH_TYPEHASHES, REGISTER_PERMISSION_TYPE_STRINGS, REGISTER_PERMISSION_TYPEHASHES, clearCapabilityCache, detectKernelCapabilities, } from "./capabilities.js";
|
|
16
17
|
export type { KernelError } from "./errors.js";
|
|
17
18
|
export { KERNEL_ERROR_ABI, KERNEL_ERROR_SIGNATURES, decodeKernelError, explainKernelRevert, } from "./errors.js";
|
|
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";
|
|
19
|
+
export { DISPATCH_EIP712_FIELDS, REGISTER_ACCOUNT_TYPES, REGISTER_PERMISSION_TYPES, REGISTER_PERMISSION_TYPES_NO_DEADLINE, REGISTER_PERMISSIONS_BATCH_TYPES, buildConfigureTypedData, buildDispatchSignature, buildRegisterAccountTypedData, buildRegisterPermissionTypedData, buildRegisterPermissionsBatchTypedData, sailKernelDomain, signRegisterPermission, } from "./eip712.js";
|
|
19
20
|
export { RegistrationFeeError, assertFeeAffordable, describeMandateFee, estimateMandateRegistrationFee, feeShortfall, readPermissionRegistrationFee, } from "./fees.js";
|
|
20
21
|
export type { MandateFeeEstimate, PermissionFee } from "./fees.js";
|
|
21
22
|
export type { FetchLifiQuoteParams, LifiSwapQuote } from "./lifi.js";
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,13 @@ export { LocalKeyring } from "./keyring.js";
|
|
|
5
5
|
export { SailKernelAbi } from "./abis/SailKernel.js";
|
|
6
6
|
export { MandateFactoryAbi } from "./abis/MandateFactory.js";
|
|
7
7
|
export { SailGovernanceAbi } from "./abis/SailGovernance.js";
|
|
8
|
-
export {
|
|
8
|
+
export { ConfigurablePermissionAbi, CONFIGURE_TYPES, } from "./abis/ConfigurablePermission.js";
|
|
9
|
+
export { SAFE_V141, buildApprovedHashSignature, buildRegisterAccountExecTransaction, buildSafeSetupInitializer, buildSetManagerExecTransaction, computeKernelBoundSalt, computeSafeProxyAddress, computeSailSmaAddress, encodeSetManager, gnosisSafeAbi, gnosisSafeExecAbi, safeModuleEnablerAbi, safeProxyFactoryAbi, } from "./safe.js";
|
|
9
10
|
export { discoverSafesForOwner, getSafeTransactionServiceUrl } from "./discovery.js";
|
|
10
11
|
export { getSailDeployment, normalizeDeployment, sailDeployments, } from "./deployments.js";
|
|
11
12
|
export { DISPATCH_TYPE_STRINGS, DISPATCH_TYPEHASHES, REGISTER_PERMISSION_TYPE_STRINGS, REGISTER_PERMISSION_TYPEHASHES, clearCapabilityCache, detectKernelCapabilities, } from "./capabilities.js";
|
|
12
13
|
export { KERNEL_ERROR_ABI, KERNEL_ERROR_SIGNATURES, decodeKernelError, explainKernelRevert, } from "./errors.js";
|
|
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";
|
|
14
|
+
export { DISPATCH_EIP712_FIELDS, REGISTER_ACCOUNT_TYPES, REGISTER_PERMISSION_TYPES, REGISTER_PERMISSION_TYPES_NO_DEADLINE, REGISTER_PERMISSIONS_BATCH_TYPES, buildConfigureTypedData, buildDispatchSignature, buildRegisterAccountTypedData, buildRegisterPermissionTypedData, buildRegisterPermissionsBatchTypedData, sailKernelDomain, signRegisterPermission, } from "./eip712.js";
|
|
14
15
|
export { RegistrationFeeError, assertFeeAffordable, describeMandateFee, estimateMandateRegistrationFee, feeShortfall, readPermissionRegistrationFee, } from "./fees.js";
|
|
15
16
|
export { DEFAULT_SLIPPAGE, LIFI_QUOTE_URL, LIFI_ROUTERS, encodeApprove, fetchLifiQuote, minTokenOut, } from "./lifi.js";
|
|
16
17
|
export { SAIL_INTELLIGENCE_BASE_URL, SAIL_INTELLIGENCE_DOCS_URL, SailIntelligence, } from "./intelligence.js";
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,yBAAyB,EACzB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAc1C,OAAO,EACL,SAAS,EACT,0BAA0B,EAC1B,mCAAmC,EACnC,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,sBAAsB,EACtB,yBAAyB,EACzB,qCAAqC,EACrC,gCAAgC,EAChC,uBAAuB,EACvB,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,sCAAsC,EACtC,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,8BAA8B,EAC9B,YAAY,EACZ,6BAA6B,GAC9B,MAAM,WAAW,CAAC;AAGnB,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.1
|
|
8
|
-
* Generated at : 2026-
|
|
8
|
+
* Generated at : 2026-07-03T12:50:03.843Z
|
|
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.1
|
|
8
|
-
* Generated at : 2026-
|
|
8
|
+
* Generated at : 2026-07-03T12:50:03.843Z
|
|
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";
|
|
@@ -224,6 +224,9 @@ export declare function encodeSetManager(newManager: Address): Hex;
|
|
|
224
224
|
* submits this tx from their own wallet and authorises it with a pre-validated
|
|
225
225
|
* signature (see `buildApprovedHashSignature`); no separate Safe-tx signing
|
|
226
226
|
* round-trip is needed. Returns the tx the owner sends: `{ to: safe, data }`.
|
|
227
|
+
*
|
|
228
|
+
* PRECONDITION — 1-of-1 Safe (as above): the single pre-validated entry is only accepted
|
|
229
|
+
* when `threshold === 1` and `params.owner` submits; on a threshold ≥ 2 Safe it reverts.
|
|
227
230
|
*/
|
|
228
231
|
export declare function buildSetManagerExecTransaction(params: {
|
|
229
232
|
/** The SMA (Safe) whose manager is being rotated; also the tx `to`. */
|
|
@@ -238,4 +241,50 @@ export declare function buildSetManagerExecTransaction(params: {
|
|
|
238
241
|
to: Address;
|
|
239
242
|
data: Hex;
|
|
240
243
|
};
|
|
244
|
+
/**
|
|
245
|
+
* Build the `Safe.execTransaction` calldata that registers an SMA by calling
|
|
246
|
+
* `kernel.registerAccount(...)` *as the Safe* (Protocol #53, two-step onboarding).
|
|
247
|
+
*
|
|
248
|
+
* Post-#53 `registerAccount` requires `msg.sender == the Safe` (trusted-proxy codehash +
|
|
249
|
+
* trusted-singleton pin), so it cannot be sent from the owner EOA — it must be wrapped in
|
|
250
|
+
* a Safe transaction. It also requires an `ownerSig`: a Safe **owner** signature over the
|
|
251
|
+
* RegisterAccount EIP-712 digest (built with `buildRegisterAccountTypedData`), verified by
|
|
252
|
+
* the kernel via `checkSignatures`.
|
|
253
|
+
*
|
|
254
|
+
* Two distinct signatures are involved and must not be confused:
|
|
255
|
+
* - `ownerSig` (this arg): a REAL EOA ECDSA signature over the kernel digest. Per Protocol
|
|
256
|
+
* #69 the kernel rejects the Safe v==1 approved-hash shortcut here — do NOT pass a
|
|
257
|
+
* `buildApprovedHashSignature` blob as `ownerSig`.
|
|
258
|
+
* - the execTransaction signature (built here): the sole-owner pre-validated blob, valid
|
|
259
|
+
* because the owner submits the execTransaction themselves. This is the correct use of
|
|
260
|
+
* `buildApprovedHashSignature`.
|
|
261
|
+
*
|
|
262
|
+
* PRECONDITION — 1-of-1 Safe. The execTransaction signature is a single pre-validated
|
|
263
|
+
* (approved-hash) entry, which the Safe only accepts when `threshold === 1` and `params.owner`
|
|
264
|
+
* is the submitter. This builder does not read the Safe's threshold; on a threshold ≥ 2 Safe the
|
|
265
|
+
* returned calldata reverts on submit. The owner submits the returned tx `{ to: safe, data }`.
|
|
266
|
+
*/
|
|
267
|
+
export declare function buildRegisterAccountExecTransaction(params: {
|
|
268
|
+
/** The SMA (Safe) being registered; also the tx `to`. */
|
|
269
|
+
safe: Address;
|
|
270
|
+
/** The SailKernel the Safe will call. */
|
|
271
|
+
kernel: Address;
|
|
272
|
+
/** Permission signer (owner in retail setups). */
|
|
273
|
+
permissionSigner: Address;
|
|
274
|
+
/** Delegated signer (agent) address. */
|
|
275
|
+
manager: Address;
|
|
276
|
+
/** Fee policy (zeroAddress for none). */
|
|
277
|
+
feePolicy: Address;
|
|
278
|
+
/** Fee asset (zeroAddress for the native token). */
|
|
279
|
+
feeAsset: Address;
|
|
280
|
+
/** RegisterAccount signature deadline (unix seconds) — must match the signed digest. */
|
|
281
|
+
deadline: bigint;
|
|
282
|
+
/** Owner ECDSA signature over the RegisterAccount EIP-712 digest (see note above). */
|
|
283
|
+
ownerSig: Hex;
|
|
284
|
+
/** The sole Safe owner who will submit this tx. */
|
|
285
|
+
owner: Address;
|
|
286
|
+
}): {
|
|
287
|
+
to: Address;
|
|
288
|
+
data: Hex;
|
|
289
|
+
};
|
|
241
290
|
//# sourceMappingURL=safe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../src/safe.ts"],"names":[],"mappings":"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"}
|
|
@@ -230,6 +230,9 @@ export function encodeSetManager(newManager) {
|
|
|
230
230
|
* submits this tx from their own wallet and authorises it with a pre-validated
|
|
231
231
|
* signature (see `buildApprovedHashSignature`); no separate Safe-tx signing
|
|
232
232
|
* round-trip is needed. Returns the tx the owner sends: `{ to: safe, data }`.
|
|
233
|
+
*
|
|
234
|
+
* PRECONDITION — 1-of-1 Safe (as above): the single pre-validated entry is only accepted
|
|
235
|
+
* when `threshold === 1` and `params.owner` submits; on a threshold ≥ 2 Safe it reverts.
|
|
233
236
|
*/
|
|
234
237
|
export function buildSetManagerExecTransaction(params) {
|
|
235
238
|
const innerData = encodeSetManager(params.newManager);
|
|
@@ -251,4 +254,75 @@ export function buildSetManagerExecTransaction(params) {
|
|
|
251
254
|
});
|
|
252
255
|
return { to: params.safe, data };
|
|
253
256
|
}
|
|
257
|
+
/** ABI-encode the kernel's 6-arg `registerAccount(...)` call (Protocol #53). */
|
|
258
|
+
const registerAccountAbi = [
|
|
259
|
+
{
|
|
260
|
+
type: "function",
|
|
261
|
+
name: "registerAccount",
|
|
262
|
+
stateMutability: "nonpayable",
|
|
263
|
+
inputs: [
|
|
264
|
+
{ name: "permissionSigner", type: "address" },
|
|
265
|
+
{ name: "manager", type: "address" },
|
|
266
|
+
{ name: "feePolicy", type: "address" },
|
|
267
|
+
{ name: "feeAsset", type: "address" },
|
|
268
|
+
{ name: "deadline", type: "uint256" },
|
|
269
|
+
{ name: "ownerSig", type: "bytes" },
|
|
270
|
+
],
|
|
271
|
+
outputs: [],
|
|
272
|
+
},
|
|
273
|
+
];
|
|
274
|
+
/**
|
|
275
|
+
* Build the `Safe.execTransaction` calldata that registers an SMA by calling
|
|
276
|
+
* `kernel.registerAccount(...)` *as the Safe* (Protocol #53, two-step onboarding).
|
|
277
|
+
*
|
|
278
|
+
* Post-#53 `registerAccount` requires `msg.sender == the Safe` (trusted-proxy codehash +
|
|
279
|
+
* trusted-singleton pin), so it cannot be sent from the owner EOA — it must be wrapped in
|
|
280
|
+
* a Safe transaction. It also requires an `ownerSig`: a Safe **owner** signature over the
|
|
281
|
+
* RegisterAccount EIP-712 digest (built with `buildRegisterAccountTypedData`), verified by
|
|
282
|
+
* the kernel via `checkSignatures`.
|
|
283
|
+
*
|
|
284
|
+
* Two distinct signatures are involved and must not be confused:
|
|
285
|
+
* - `ownerSig` (this arg): a REAL EOA ECDSA signature over the kernel digest. Per Protocol
|
|
286
|
+
* #69 the kernel rejects the Safe v==1 approved-hash shortcut here — do NOT pass a
|
|
287
|
+
* `buildApprovedHashSignature` blob as `ownerSig`.
|
|
288
|
+
* - the execTransaction signature (built here): the sole-owner pre-validated blob, valid
|
|
289
|
+
* because the owner submits the execTransaction themselves. This is the correct use of
|
|
290
|
+
* `buildApprovedHashSignature`.
|
|
291
|
+
*
|
|
292
|
+
* PRECONDITION — 1-of-1 Safe. The execTransaction signature is a single pre-validated
|
|
293
|
+
* (approved-hash) entry, which the Safe only accepts when `threshold === 1` and `params.owner`
|
|
294
|
+
* is the submitter. This builder does not read the Safe's threshold; on a threshold ≥ 2 Safe the
|
|
295
|
+
* returned calldata reverts on submit. The owner submits the returned tx `{ to: safe, data }`.
|
|
296
|
+
*/
|
|
297
|
+
export function buildRegisterAccountExecTransaction(params) {
|
|
298
|
+
const innerData = encodeFunctionData({
|
|
299
|
+
abi: registerAccountAbi,
|
|
300
|
+
functionName: "registerAccount",
|
|
301
|
+
args: [
|
|
302
|
+
params.permissionSigner,
|
|
303
|
+
params.manager,
|
|
304
|
+
params.feePolicy,
|
|
305
|
+
params.feeAsset,
|
|
306
|
+
params.deadline,
|
|
307
|
+
params.ownerSig,
|
|
308
|
+
],
|
|
309
|
+
});
|
|
310
|
+
const data = encodeFunctionData({
|
|
311
|
+
abi: gnosisSafeExecAbi,
|
|
312
|
+
functionName: "execTransaction",
|
|
313
|
+
args: [
|
|
314
|
+
params.kernel, // to
|
|
315
|
+
0n, // value
|
|
316
|
+
innerData, // data: registerAccount(...)
|
|
317
|
+
0, // operation: Call
|
|
318
|
+
0n, // safeTxGas
|
|
319
|
+
0n, // baseGas
|
|
320
|
+
0n, // gasPrice
|
|
321
|
+
zeroAddress, // gasToken
|
|
322
|
+
zeroAddress, // refundReceiver
|
|
323
|
+
buildApprovedHashSignature(params.owner),
|
|
324
|
+
],
|
|
325
|
+
});
|
|
326
|
+
return { to: params.safe, data };
|
|
327
|
+
}
|
|
254
328
|
//# sourceMappingURL=safe.js.map
|
|
@@ -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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"}
|