@dev.sail.money/sailor 0.0.2-20 → 0.0.2-22

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 (122) hide show
  1. package/examples/permissions/BoundedApproveAndCallBatch.sol +179 -0
  2. package/examples/permissions/BoundedBet_Limitless_Base.sol +8 -7
  3. package/examples/permissions/BoundedBorrow_AaveV3_Arbitrum.sol +13 -13
  4. package/examples/permissions/BoundedPerp_GMXv2_Arbitrum.sol +50 -39
  5. package/examples/permissions/BoundedStake_Venice_Base.sol +85 -0
  6. package/examples/permissions/BoundedSupply_AaveV3_Arbitrum.sol +84 -0
  7. package/examples/permissions/BoundedSwap_UniswapV3_Base.sol +11 -9
  8. package/examples/permissions/BoundedSwap_UniswapV4_Unichain.sol +10 -8
  9. package/examples/permissions/BoundedTransfer_ERC20_Ethereum.sol +6 -6
  10. package/examples/permissions/BoundedVault_ERC4626_Base.sol +97 -0
  11. package/examples/permissions/README.md +29 -2
  12. package/examples/permissions/interfaces/IBatchPermission.sol +38 -0
  13. package/package.json +1 -1
  14. package/packages/cli/dist/index.cjs +3288 -2394
  15. package/packages/cli/dist/server.cjs +110 -140
  16. package/packages/sdk/dist/deployments.d.ts +14 -7
  17. package/packages/sdk/dist/deployments.d.ts.map +1 -1
  18. package/packages/sdk/dist/deployments.js +132 -141
  19. package/packages/sdk/dist/deployments.js.map +1 -1
  20. package/packages/sdk/dist/index.d.ts +1 -1
  21. package/packages/sdk/dist/index.d.ts.map +1 -1
  22. package/packages/sdk/dist/index.js +1 -1
  23. package/packages/sdk/dist/index.js.map +1 -1
  24. package/packages/sdk/dist/intelligence.d.ts +1 -1
  25. package/packages/sdk/dist/intelligence.js +1 -1
  26. package/packages/sdk/dist/safe.d.ts +83 -0
  27. package/packages/sdk/dist/safe.d.ts.map +1 -1
  28. package/packages/sdk/dist/safe.js +92 -1
  29. package/packages/sdk/dist/safe.js.map +1 -1
  30. package/packages/ui/dist/assets/{add-BrylwREe.js → add-C--RBwJe.js} +1 -1
  31. package/packages/ui/dist/assets/{all-wallets-DGR35dSU.js → all-wallets-_xwd_eso.js} +1 -1
  32. package/packages/ui/dist/assets/{app-store-BpM1x6bI.js → app-store-CIQsK1zU.js} +1 -1
  33. package/packages/ui/dist/assets/{apple-xvs7JX23.js → apple-BdlAnnmO.js} +1 -1
  34. package/packages/ui/dist/assets/{arrow-bottom-CF6xPQbH.js → arrow-bottom-B5p_6Dat.js} +1 -1
  35. package/packages/ui/dist/assets/{arrow-bottom-circle-r0A6jlRF.js → arrow-bottom-circle-D7c6JPTF.js} +1 -1
  36. package/packages/ui/dist/assets/{arrow-left-Ce6MJKC0.js → arrow-left-SA4NpEnP.js} +1 -1
  37. package/packages/ui/dist/assets/{arrow-right-CiCNIsI0.js → arrow-right-mOJNWujS.js} +1 -1
  38. package/packages/ui/dist/assets/{arrow-top-TI5RQSIc.js → arrow-top-CvPVVpHl.js} +1 -1
  39. package/packages/ui/dist/assets/{bank-CmrK2TRa.js → bank-B2j2rPm9.js} +1 -1
  40. package/packages/ui/dist/assets/{basic-BhoXad_6.js → basic-Bw6cXOlk.js} +1 -1
  41. package/packages/ui/dist/assets/{browser-BWCT-XSy.js → browser-CUSNF__N.js} +1 -1
  42. package/packages/ui/dist/assets/{card-v1fl0QNj.js → card-CpKLox49.js} +1 -1
  43. package/packages/ui/dist/assets/{ccip-BkGqsEgG.js → ccip-XB9iQjXB.js} +1 -1
  44. package/packages/ui/dist/assets/{checkmark-CiQnNFee.js → checkmark-BRpXeSCK.js} +1 -1
  45. package/packages/ui/dist/assets/{checkmark-bold-B63f9SW6.js → checkmark-bold-BkPvoqxo.js} +1 -1
  46. package/packages/ui/dist/assets/{chevron-bottom-DpBpDiYb.js → chevron-bottom-CtK0W2av.js} +1 -1
  47. package/packages/ui/dist/assets/{chevron-left-o_G-ctyg.js → chevron-left-NayfPMDy.js} +1 -1
  48. package/packages/ui/dist/assets/{chevron-right-I9LAJ9De.js → chevron-right-BPU2hCfA.js} +1 -1
  49. package/packages/ui/dist/assets/{chevron-top-JRwGHMKH.js → chevron-top-CTXwC4nM.js} +1 -1
  50. package/packages/ui/dist/assets/{chrome-store-Cw9skzSt.js → chrome-store-eWIk0-YZ.js} +1 -1
  51. package/packages/ui/dist/assets/{clock-BK_Lu0EB.js → clock-VmYiq5jB.js} +1 -1
  52. package/packages/ui/dist/assets/{close-DWFjOyu7.js → close-NfBukMzW.js} +1 -1
  53. package/packages/ui/dist/assets/{coinPlaceholder-gi3wDlPb.js → coinPlaceholder-BWOeJc6j.js} +1 -1
  54. package/packages/ui/dist/assets/{compass-Dlpsn_k-.js → compass-oRk8W3iM.js} +1 -1
  55. package/packages/ui/dist/assets/{copy-BzNKdXeG.js → copy-GcYQZOsF.js} +1 -1
  56. package/packages/ui/dist/assets/{core-BN9UnMip.js → core-B_rvnvkC.js} +3 -3
  57. package/packages/ui/dist/assets/cursor-BAViuJWh.js +3 -0
  58. package/packages/ui/dist/assets/{cursor-transparent-B3RZ6Udt.js → cursor-transparent-CGox3wZ-.js} +1 -1
  59. package/packages/ui/dist/assets/{desktop-rngwE1T9.js → desktop-DU4yyiV4.js} +1 -1
  60. package/packages/ui/dist/assets/{disconnect-_DzDsvsZ.js → disconnect-CJm9NnxK.js} +1 -1
  61. package/packages/ui/dist/assets/{discord-B9qQB66m.js → discord-MxDL8Eq6.js} +1 -1
  62. package/packages/ui/dist/assets/{etherscan-D7hlQ8Z3.js → etherscan-CkCvlZiA.js} +1 -1
  63. package/packages/ui/dist/assets/{events-DrkgavVp.js → events-CkyJn32_.js} +1 -1
  64. package/packages/ui/dist/assets/{exclamation-triangle-iCvLVoM-.js → exclamation-triangle-hH1JdYAZ.js} +1 -1
  65. package/packages/ui/dist/assets/{extension-CjGcOeuB.js → extension-DTMrXG5m.js} +1 -1
  66. package/packages/ui/dist/assets/{external-link-DTkyjOr4.js → external-link-GSwn5MzD.js} +1 -1
  67. package/packages/ui/dist/assets/{facebook-DoO2uCiE.js → facebook-Vw_uyzaE.js} +1 -1
  68. package/packages/ui/dist/assets/{fallback-Y8-BiCNG.js → fallback-BL3U4ZRT.js} +1 -1
  69. package/packages/ui/dist/assets/{farcaster-Dyz6wiZi.js → farcaster-F-_di36M.js} +1 -1
  70. package/packages/ui/dist/assets/{filters-Bd5PxMiz.js → filters-DQzcstDl.js} +1 -1
  71. package/packages/ui/dist/assets/{github-CmqSJCq6.js → github-BSq3_rEd.js} +1 -1
  72. package/packages/ui/dist/assets/{google-i_MKKqQP.js → google-BU4QXiDS.js} +1 -1
  73. package/packages/ui/dist/assets/{help-circle-_ER8-V35.js → help-circle-CuF4iPyF.js} +1 -1
  74. package/packages/ui/dist/assets/{id-D2adRwvh.js → id-BQWlv0a_.js} +1 -1
  75. package/packages/ui/dist/assets/{image-q_rpi7cn.js → image-BPNySDPo.js} +1 -1
  76. package/packages/ui/dist/assets/{index-CzevBC-K.js → index-BMPQOOgv.js} +1 -1
  77. package/packages/ui/dist/assets/{index-Bdl623mb.js → index-CMyY4FOR.js} +3 -3
  78. package/packages/ui/dist/assets/{index-BLD08Nrb.js → index-CsbiKM3b.js} +1 -1
  79. package/packages/ui/dist/assets/{index-BwoSt5mL.js → index-D0SPxlSM.js} +1 -1
  80. package/packages/ui/dist/assets/{index-B6Wb3mjQ.js → index-D2wgBslE.js} +1 -1
  81. package/packages/ui/dist/assets/{index-DJQDBPts.js → index-Dc9_WV0G.js} +76 -76
  82. package/packages/ui/dist/assets/{index.es-D6UPoR2j.js → index.es-CvyDIsY4.js} +4 -4
  83. package/packages/ui/dist/assets/{info-Ck7GYYmo.js → info-D20yslek.js} +1 -1
  84. package/packages/ui/dist/assets/{info-circle-DtA5FQXd.js → info-circle-BEjvYTHa.js} +1 -1
  85. package/packages/ui/dist/assets/{lightbulb-DR3jyzkK.js → lightbulb-DfvLi5mQ.js} +1 -1
  86. package/packages/ui/dist/assets/{mail-BK_pW_tL.js → mail-CkgaIJAd.js} +1 -1
  87. package/packages/ui/dist/assets/{metamask-sdk-IZbe4GJ_.js → metamask-sdk-O-IBvvGq.js} +1 -1
  88. package/packages/ui/dist/assets/{mobile-CLG-4Yut.js → mobile-CGc88WfG.js} +1 -1
  89. package/packages/ui/dist/assets/{more-BBqkkVbe.js → more-DnX8wlTn.js} +1 -1
  90. package/packages/ui/dist/assets/{network-placeholder-kf7EWfmj.js → network-placeholder-DDrgA4a3.js} +1 -1
  91. package/packages/ui/dist/assets/{nftPlaceholder-BEFwtFPl.js → nftPlaceholder-DhHWPuD3.js} +1 -1
  92. package/packages/ui/dist/assets/{off-DKjJt-l0.js → off-D1CsYvPQ.js} +1 -1
  93. package/packages/ui/dist/assets/{parseSignature-KWl5TpQf.js → parseSignature-BlZUbtEc.js} +1 -1
  94. package/packages/ui/dist/assets/{play-store-DBVkWbwG.js → play-store-Dbkk8PTZ.js} +1 -1
  95. package/packages/ui/dist/assets/{plus-BQzagKUL.js → plus-B8jXpls3.js} +1 -1
  96. package/packages/ui/dist/assets/{qr-code-DVwEgFEM.js → qr-code-CDuJ3ftj.js} +1 -1
  97. package/packages/ui/dist/assets/{recycle-horizontal-D2E6B1Kh.js → recycle-horizontal-ZFGjaHsZ.js} +1 -1
  98. package/packages/ui/dist/assets/{refresh-CUavEsqn.js → refresh-D0rMEDtF.js} +1 -1
  99. package/packages/ui/dist/assets/{reown-logo-mAAAaf4E.js → reown-logo-NlCNVmgd.js} +1 -1
  100. package/packages/ui/dist/assets/{search-BAnb6iT_.js → search-CrJAA2qW.js} +1 -1
  101. package/packages/ui/dist/assets/{secp256k1-CBUZgsE-.js → secp256k1-mJj6W2AI.js} +1 -1
  102. package/packages/ui/dist/assets/{send-BYjfitxS.js → send-C7CoRziM.js} +1 -1
  103. package/packages/ui/dist/assets/{swapHorizontal-C-4qjxwd.js → swapHorizontal-fD3wbCGJ.js} +1 -1
  104. package/packages/ui/dist/assets/{swapHorizontalBold-zA-cWlfT.js → swapHorizontalBold-Cc-jQ6as.js} +1 -1
  105. package/packages/ui/dist/assets/{swapHorizontalMedium-gIIVXh3I.js → swapHorizontalMedium-DlJW6uX1.js} +1 -1
  106. package/packages/ui/dist/assets/{swapHorizontalRoundedBold-CwtQpc9E.js → swapHorizontalRoundedBold-1VHOerLO.js} +1 -1
  107. package/packages/ui/dist/assets/{swapVertical-wrdYsAkk.js → swapVertical-CKaRlkZK.js} +1 -1
  108. package/packages/ui/dist/assets/{telegram-3aqbBSMX.js → telegram-DnCYed4D.js} +1 -1
  109. package/packages/ui/dist/assets/{three-dots-BNRpZX3L.js → three-dots-BFluoxma.js} +1 -1
  110. package/packages/ui/dist/assets/{twitch-Bya9c1W1.js → twitch-BXGv98S9.js} +1 -1
  111. package/packages/ui/dist/assets/{twitterIcon-1thOj_Z5.js → twitterIcon-C6IdXEe5.js} +1 -1
  112. package/packages/ui/dist/assets/{verify-D8ggGSfI.js → verify-D_QGyiLQ.js} +1 -1
  113. package/packages/ui/dist/assets/{verify-filled-CeZM7920.js → verify-filled-DIW8QKL9.js} +1 -1
  114. package/packages/ui/dist/assets/{w3m-modal-CUwD6iiA.js → w3m-modal-Do9U160p.js} +1 -1
  115. package/packages/ui/dist/assets/{wallet-Baz0DeMJ.js → wallet-CcARZnOx.js} +1 -1
  116. package/packages/ui/dist/assets/{wallet-placeholder-3yAnyuC4.js → wallet-placeholder-X1coFzQa.js} +1 -1
  117. package/packages/ui/dist/assets/{walletconnect-CfkgbqAq.js → walletconnect-Glte9ia7.js} +1 -1
  118. package/packages/ui/dist/assets/{warning-circle-BfOqu3HN.js → warning-circle-j-3V4KTo.js} +1 -1
  119. package/packages/ui/dist/assets/{x-CxAcJv-O.js → x-Bcc52c_T.js} +1 -1
  120. package/packages/ui/dist/index.html +1 -1
  121. package/templates/default/AGENTS.md +20 -1
  122. package/packages/ui/dist/assets/cursor-BWdjWDLC.js +0 -3
@@ -40463,178 +40463,148 @@ var REGISTER_PERMISSION_TYPEHASHES = {
40463
40463
  };
40464
40464
 
40465
40465
  // ../sdk/dist/deployments.js
40466
+ var CREATE2_KERNEL = "0x02ABC18B65A328de2e749F56ba79ACF2718a6659";
40467
+ var CREATE2_GOVERNANCE = "0x7A478118715791728BDE3bc7A4D7ECfdEB89C6EC";
40468
+ var CREATE2_TIMELOCK = "0xE48Ba8DB6d748adafD13155c3590f62e58a77f56";
40469
+ var CREATE2_SAFE_MODULE_ENABLER = "0x7897Cb53a4be4a2eaAf46D60573C4Fd83b33fE1F";
40470
+ var CREATE2_MANDATE_FACTORY = "0x14EDd6c2a56EfC0d71E215ab13094B9AF90543d2";
40471
+ var CREATE2_STANDARD_FEE_POLICY = "0xe7B5901b839cFFDEd9D4108A22712C8BfdA1D80D";
40472
+ var CREATE2_TREASURY = "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6";
40466
40473
  var sailDeployments = {
40467
- 84532: {
40468
- // SAIL-405 redeploy (2026-06-04, gitCommit 6d872e6): adds owner-gated
40469
- // setManager(newManager) to rotate the SMA's delegated signer (clears the
40470
- // permission set + bumps the nonce epoch). Genesis allowlist bootstrap +
40471
- // local CREATE2 proxy prediction carried over; allowlistBootstrapped=true,
40472
- // createAccount verified working, zero fees, onboarding live. Supersedes
40473
- // 0xcC50009115DAaBCB40513e03a1a0Cc2Fdf6Be558. Only `core` was redeployed;
40474
- // shared/standalone permission templates are NOT yet deployed against this
40475
- // kernel (run the templates targets + refill the template maps before clones).
40476
- chainId: 84532,
40477
- blockNumber: 42400417,
40478
- deployer: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40479
- governance: "0xEaD44bC6999E7b00b9b2E11c1660248DC2a30993",
40480
- timelock: "0x97B863e392C9859336788D5Ec454527d33C95B74",
40481
- kernel: "0xf1D0F4C9893612627409948BAa9d82a01a373799",
40482
- permissionFactory: "0xdfF6a2272F667cDf78Af4681b9c88A219998db95",
40483
- standardFeePolicy: "0x05570F7973b46Eb9Ed4518422891EFC26BD58b97",
40484
- safeModuleEnabler: "0xB2C2B52d94412e3472C9fb2B52186eA12a935869",
40485
- treasury: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40474
+ // ── Ethereum mainnet ─────────────────────────────────────────────────────────
40475
+ 1: {
40476
+ // CREATE2 deterministic deploy (2026-06-09, gitCommit 1199b33).
40477
+ // allowlistBootstrapped=true (genesis bootstrap), zero fees, 48h timelock.
40478
+ chainId: 1,
40479
+ blockNumber: 25280925,
40480
+ deployer: CREATE2_TREASURY,
40481
+ governance: CREATE2_GOVERNANCE,
40482
+ timelock: CREATE2_TIMELOCK,
40483
+ kernel: CREATE2_KERNEL,
40484
+ mandateFactory: CREATE2_MANDATE_FACTORY,
40485
+ standardFeePolicy: CREATE2_STANDARD_FEE_POLICY,
40486
+ safeModuleEnabler: CREATE2_SAFE_MODULE_ENABLER,
40487
+ treasury: CREATE2_TREASURY,
40486
40488
  maxPermissionFeeWei: 1000000000000000n,
40487
40489
  initialBaseFee: 0n,
40488
40490
  initialComplexityRate: 0n,
40489
40491
  dispatchModel: "selective",
40490
- // selective: verified on-chain DISPATCH_TYPEHASH 0xbe50c5391dcf9e08d11d2c30dbee822c14ad07af2ceb503c778d265801fb0e5c
40491
40492
  knownTemplates: [],
40492
40493
  standaloneTemplates: {}
40493
40494
  },
40495
+ // ── Base mainnet ─────────────────────────────────────────────────────────────
40494
40496
  8453: {
40495
- // SAIL-405 redeploy (2026-06-04, gitCommit 0ed0561): adds owner-gated
40496
- // setManager(newManager) to rotate the SMA's delegated signer (clears the
40497
- // permission set + bumps the nonce epoch). Genesis allowlist bootstrap +
40498
- // local CREATE2 proxy prediction carried over; allowlistBootstrapped=true,
40499
- // zero fees, onboarding live. Supersedes 0x20eff0DbE752e22655A6dAA5A94521FA06CDdE06.
40500
- // Only `core` was redeployed; shared/standalone permission templates are NOT yet
40501
- // deployed against this kernel (run the templates targets + refill the maps first).
40497
+ // CREATE2 deterministic deploy (2026-06-09, gitCommit 1199b33). Supersedes
40498
+ // 0x6319d3dfDDe3804ba93D65752b00c52bFb05a1ab (SAIL-405 redeploy).
40499
+ // allowlistBootstrapped=true, zero fees, 48h timelock.
40502
40500
  chainId: 8453,
40503
- blockNumber: 46898030,
40504
- deployer: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40505
- governance: "0x7E897D919872b1587577617ffFC42113679d0C50",
40506
- timelock: "0x8eC3Ca951E193C6E3713A70022454d7A1f083281",
40507
- kernel: "0x6319d3dfDDe3804ba93D65752b00c52bFb05a1ab",
40508
- permissionFactory: "0x7724EACd97C8601d5AC244Aadbf76ad87353Ff31",
40509
- standardFeePolicy: "0x65850a8D5050aeAade68289ff96c4F119a24B82e",
40510
- safeModuleEnabler: "0xC84EdE78f93291A1fab19F51c4c7e938AB302Edf",
40511
- treasury: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40501
+ blockNumber: 47115338,
40502
+ deployer: CREATE2_TREASURY,
40503
+ governance: CREATE2_GOVERNANCE,
40504
+ timelock: CREATE2_TIMELOCK,
40505
+ kernel: CREATE2_KERNEL,
40506
+ mandateFactory: CREATE2_MANDATE_FACTORY,
40507
+ standardFeePolicy: CREATE2_STANDARD_FEE_POLICY,
40508
+ safeModuleEnabler: CREATE2_SAFE_MODULE_ENABLER,
40509
+ treasury: CREATE2_TREASURY,
40512
40510
  maxPermissionFeeWei: 1000000000000000n,
40513
40511
  initialBaseFee: 0n,
40514
40512
  initialComplexityRate: 0n,
40515
40513
  dispatchModel: "selective",
40516
- // selective: verified on-chain DISPATCH_TYPEHASH 0xbe50c5391dcf9e08d11d2c30dbee822c14ad07af2ceb503c778d265801fb0e5c
40517
40514
  knownTemplates: [],
40518
40515
  standaloneTemplates: {}
40519
40516
  },
40517
+ // ── Arbitrum mainnet ─────────────────────────────────────────────────────────
40520
40518
  42161: {
40521
- // SAIL-405 redeploy (2026-06-04, gitCommit 0ed0561): adds owner-gated
40522
- // setManager(newManager) to rotate the SMA's delegated signer (clears the
40523
- // permission set + bumps the nonce epoch). Genesis allowlist bootstrap +
40524
- // local CREATE2 proxy prediction carried over; allowlistBootstrapped=true,
40525
- // zero fees, onboarding live. Supersedes 0x9AF32E0C395fb31f5cA28994351F8fAE3003e125.
40526
- // Bootstrap was sent as a standalone tx post-core-deploy; identical end state to Base.
40527
- // Only `core` was redeployed; shared/standalone permission templates are NOT yet
40528
- // deployed against this kernel (run the templates targets + refill the maps first).
40519
+ // CREATE2 deterministic deploy (2026-06-09, gitCommit 1199b33). Supersedes
40520
+ // 0x2716B12832DED0EF5688519c5Fe069EFc0374E02 (SAIL-405 redeploy).
40521
+ // allowlistBootstrapped=true, zero fees, 48h timelock.
40529
40522
  chainId: 42161,
40530
- blockNumber: 25244824,
40531
- deployer: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40532
- governance: "0xd6AbB7A1036ADc7958Abffec9Da03450c5a2Ec8e",
40533
- timelock: "0x114CB7110C780f7E3a6093AfE0B52463a569857C",
40534
- kernel: "0x2716B12832DED0EF5688519c5Fe069EFc0374E02",
40535
- permissionFactory: "0x23681A8A4C9819D8EaB37E46B858da6F3c85E683",
40536
- standardFeePolicy: "0xAdfB986D48480bC67a7cF3751d30599161632e0D",
40537
- safeModuleEnabler: "0xabe2a6D03F592BC602cA1dBDCD885ba2493274f9",
40538
- treasury: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40523
+ blockNumber: 471736462,
40524
+ deployer: CREATE2_TREASURY,
40525
+ governance: CREATE2_GOVERNANCE,
40526
+ timelock: CREATE2_TIMELOCK,
40527
+ kernel: CREATE2_KERNEL,
40528
+ mandateFactory: CREATE2_MANDATE_FACTORY,
40529
+ standardFeePolicy: CREATE2_STANDARD_FEE_POLICY,
40530
+ safeModuleEnabler: CREATE2_SAFE_MODULE_ENABLER,
40531
+ treasury: CREATE2_TREASURY,
40539
40532
  maxPermissionFeeWei: 1000000000000000n,
40540
40533
  initialBaseFee: 0n,
40541
40534
  initialComplexityRate: 0n,
40542
40535
  dispatchModel: "selective",
40543
- // selective: verified on-chain DISPATCH_TYPEHASH 0xbe50c5391dcf9e08d11d2c30dbee822c14ad07af2ceb503c778d265801fb0e5c
40544
40536
  knownTemplates: [],
40545
40537
  standaloneTemplates: {}
40546
40538
  },
40539
+ // ── Unichain mainnet ─────────────────────────────────────────────────────────
40547
40540
  130: {
40548
- // SAIL-406 deploy (2026-06-05, gitCommit 2c9e325): full protocol deploy on
40549
- // Unichain mainnet — core + the complete template suite (7 shared + 12
40550
- // standalone), all source-verified on uniscan.xyz. Genesis allowlist
40551
- // bootstrap (allowlistBootstrapped=true: Safe v1.4.1 factory, both
40552
- // singletons, SafeModuleEnabler, StandardFeePolicy, SafeProxy codehash
40553
- // 0xd7d408eb…fb4c), zero fees, onboarding live without the 48h timelock.
40554
- // First chain to ship permission templates against the kernel.
40541
+ // CREATE2 deterministic deploy (2026-06-09, gitCommit 1199b33). Supersedes
40542
+ // 0xD985029960a9B7C2E7E38e102C448b8b8539B156 (SAIL-406 deploy).
40543
+ // NOTE: knownTemplates and standaloneTemplates from SAIL-406 were deployed
40544
+ // against the old kernel 0xD985029... and are now invalid. They must be
40545
+ // redeployed against the new kernel 0x02ABC1... and re-populated here.
40555
40546
  chainId: 130,
40556
- blockNumber: 49897206,
40557
- deployer: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40558
- governance: "0xAb5C90ECfF2763f6f20f8E553E3b8778dD9C349A",
40559
- timelock: "0xd44FbBB37f01e235E0EE5386948F216d36D0CEf2",
40560
- kernel: "0xD985029960a9B7C2E7E38e102C448b8b8539B156",
40561
- permissionFactory: "0x8edDb62Aa49CeB837abf2653be2d93Ad9Fe6777D",
40562
- standardFeePolicy: "0x7bBA8BE3c01c972757aA4a230A00D58aB600A1F1",
40563
- safeModuleEnabler: "0xFE9227A9F2baf704060c604466df354a5A137b9B",
40564
- treasury: "0xB01dCE443d052e44b7D13726c0EC9fFB7f5815B6",
40547
+ blockNumber: 50271704,
40548
+ deployer: CREATE2_TREASURY,
40549
+ governance: CREATE2_GOVERNANCE,
40550
+ timelock: CREATE2_TIMELOCK,
40551
+ kernel: CREATE2_KERNEL,
40552
+ mandateFactory: CREATE2_MANDATE_FACTORY,
40553
+ standardFeePolicy: CREATE2_STANDARD_FEE_POLICY,
40554
+ safeModuleEnabler: CREATE2_SAFE_MODULE_ENABLER,
40555
+ treasury: CREATE2_TREASURY,
40565
40556
  maxPermissionFeeWei: 1000000000000000n,
40566
40557
  initialBaseFee: 0n,
40567
40558
  initialComplexityRate: 0n,
40568
40559
  dispatchModel: "selective",
40569
- // selective: verified on-chain DISPATCH_TYPEHASH 0xbe50c5391dcf9e08d11d2c30dbee822c14ad07af2ceb503c778d265801fb0e5c
40570
- knownTemplates: [
40571
- {
40572
- address: "0xbD624eC67e2685872A60c0aF8F020727e20D096e",
40573
- kind: "SharedAMMLiquidityPermission",
40574
- chainId: 130,
40575
- label: "Shared AMM Liquidity",
40576
- description: "Bounded AMM liquidity provision/removal \u2014 enforces allowed pools and bounds."
40577
- },
40578
- {
40579
- address: "0x9d386605518FA81ff536b351ff055d26203229A9",
40580
- kind: "SharedApproveAndCallBatchPermission",
40581
- chainId: 130,
40582
- label: "Shared Approve-and-Call Batch",
40583
- description: "Bounded approve-then-call batch \u2014 enforces token, spender, and selector allowlists."
40584
- },
40585
- {
40586
- address: "0x948a9F9a6f2828E50f7e71bd569ba75A69da2BEb",
40587
- kind: "SharedBoundedBorrowPermission",
40588
- chainId: 130,
40589
- label: "Shared Bounded Borrow",
40590
- description: "Bounded borrow \u2014 enforces allowed markets and max borrow size."
40591
- },
40592
- {
40593
- address: "0xfD19fad56Ca3d6FaCd4279a2F84f09bef8967f6a",
40594
- kind: "SharedBoundedSwapPermission",
40595
- chainId: 130,
40596
- label: "Shared Uniswap V3 Swap",
40597
- description: "Bounded swap via Uniswap V3 \u2014 enforces allowed tokens, max trade size, and slippage."
40598
- },
40599
- {
40600
- address: "0x900cd03ee15e629bC4e94F6344d5529F4862071c",
40601
- kind: "SharedDeFiBundlePermission",
40602
- chainId: 130,
40603
- label: "Shared DeFi Bundle",
40604
- description: "Bounded multi-step DeFi bundle within a single permission."
40605
- },
40606
- {
40607
- address: "0x1dF90a2484bCF3c6Da2FB035aa0C9f523e77Cd62",
40608
- kind: "SharedPendlePermission",
40609
- chainId: 130,
40610
- label: "Shared Pendle",
40611
- description: "Bounded Pendle interactions \u2014 enforces allowed markets and bounds."
40612
- },
40613
- {
40614
- address: "0x851Ad196b7DC6c05eaf0B9420f2a72dc336D7739",
40615
- kind: "SharedTransferTargetPermission",
40616
- chainId: 130,
40617
- label: "Shared Transfer Target",
40618
- description: "Allows transfers only to a pre-approved target address."
40619
- }
40620
- ],
40621
- standaloneTemplates: {
40622
- // EIP-1167 clone LOGIC addresses — the `impl` argument to
40623
- // PermissionFactory.deployAndAttach(account, impl, salt, initData). A clone
40624
- // is created and configured per account via its initialize(...).
40625
- azuroPrediction: "0xd48cdBB25bF0A214dEffECac3c9431650834b046",
40626
- boundedApprove: "0xbF7089A905081054c9dA628707f2e1EF70A7F300",
40627
- boundedBorrow: "0x17D466309C7E0237960f68126Cc4A109D194ac28",
40628
- boundedDeposit: "0xf49E304EDf806AF46E8f17740e56C1CBFad5d264",
40629
- boundedLiFi: "0x6a0171013FeD6B2Eda16A4dd4DB33Fa34b7F3e3f",
40630
- boundedSwap: "0x06696F9dd4bD0994f55b075600627Dc6E54635c9",
40631
- boundedWithdraw: "0xE207CfC8c2204b15ee5fD22B79472929706c7E4b",
40632
- gmxPerp: "0xB1bb967aC11D61C0599c8458D9B950461db5D4E9",
40633
- gainsNetworkPerp: "0x1297673f71A9be02bc876Dbd0ceaB3c96D268bE3",
40634
- limitlessPrediction: "0x2bE4280d8816626e1dea4E94A83d9334A971AF90",
40635
- synthetixPerp: "0x711a70B16D013a9B96Bd6733F4b3097e5787f860",
40636
- transferTarget: "0x8428155b6b9eea4E78b9a52c2312752eD04Baf16"
40637
- }
40560
+ // Templates cleared: the SAIL-406 shared + standalone templates were deployed
40561
+ // against the old kernel (0xD985029...) and are invalid against the new one.
40562
+ // Re-populate after redeploying templates against 0x02ABC1...
40563
+ knownTemplates: [],
40564
+ standaloneTemplates: {}
40565
+ },
40566
+ // ── Base Sepolia (testnet) ───────────────────────────────────────────────────
40567
+ 84532: {
40568
+ // CREATE2 deterministic deploy (2026-06-09, gitCommit 1199b33). Supersedes
40569
+ // 0xf1D0F4C9893612627409948BAa9d82a01a373799 (SAIL-405 redeploy).
40570
+ // allowlistBootstrapped=true, zero fees, 48h timelock.
40571
+ chainId: 84532,
40572
+ blockNumber: 42625843,
40573
+ deployer: CREATE2_TREASURY,
40574
+ governance: CREATE2_GOVERNANCE,
40575
+ timelock: CREATE2_TIMELOCK,
40576
+ kernel: CREATE2_KERNEL,
40577
+ mandateFactory: CREATE2_MANDATE_FACTORY,
40578
+ standardFeePolicy: CREATE2_STANDARD_FEE_POLICY,
40579
+ safeModuleEnabler: CREATE2_SAFE_MODULE_ENABLER,
40580
+ treasury: CREATE2_TREASURY,
40581
+ maxPermissionFeeWei: 1000000000000000n,
40582
+ initialBaseFee: 0n,
40583
+ initialComplexityRate: 0n,
40584
+ dispatchModel: "selective",
40585
+ knownTemplates: [],
40586
+ standaloneTemplates: {}
40587
+ },
40588
+ // ── Eth Sepolia (testnet) ────────────────────────────────────────────────────
40589
+ 11155111: {
40590
+ // CREATE2 deterministic deploy (2026-06-09, gitCommit 1199b33).
40591
+ // allowlistBootstrapped=true, zero fees, 48h timelock.
40592
+ chainId: 11155111,
40593
+ blockNumber: 11023571,
40594
+ deployer: CREATE2_TREASURY,
40595
+ governance: CREATE2_GOVERNANCE,
40596
+ timelock: CREATE2_TIMELOCK,
40597
+ kernel: CREATE2_KERNEL,
40598
+ mandateFactory: CREATE2_MANDATE_FACTORY,
40599
+ standardFeePolicy: CREATE2_STANDARD_FEE_POLICY,
40600
+ safeModuleEnabler: CREATE2_SAFE_MODULE_ENABLER,
40601
+ treasury: CREATE2_TREASURY,
40602
+ maxPermissionFeeWei: 1000000000000000n,
40603
+ initialBaseFee: 0n,
40604
+ initialComplexityRate: 0n,
40605
+ dispatchModel: "selective",
40606
+ knownTemplates: [],
40607
+ standaloneTemplates: {}
40638
40608
  }
40639
40609
  };
40640
40610
  function getSailDeployment(chainId) {
@@ -1,7 +1,14 @@
1
1
  import type { Address } from "viem";
2
2
  import type { DispatchModel } from "./capabilities.js";
3
- /** Chains with a bundled Sail Protocol deployment: Base, Base Sepolia, Arbitrum, Unichain. */
4
- export type SailChainId = 8453 | 84532 | 42161 | 130;
3
+ /**
4
+ * Chains with a bundled Sail Protocol deployment.
5
+ * Mainnets: Ethereum (1), Base (8453), Arbitrum (42161), Unichain (130).
6
+ * Testnets: Base Sepolia (84532), Eth Sepolia (11155111).
7
+ *
8
+ * All six chains were redeployed via CREATE2 (global salt, gitCommit 1199b33)
9
+ * so every core contract lands at the same address on every chain.
10
+ */
11
+ export type SailChainId = 1 | 8453 | 42161 | 130 | 84532 | 11155111;
5
12
  /** A pre-audited mandate template available on a chain. */
6
13
  export type KnownTemplate = {
7
14
  kind: string;
@@ -21,7 +28,7 @@ export type CloneTemplateParam = {
21
28
  * Rich, self-describing metadata for an EIP-1167 clone permission template — the
22
29
  * wizard-/tooling-facing companion to the bare `standaloneTemplates` address map.
23
30
  * `address` mirrors `standaloneTemplates[key]` (the clone LOGIC). A clone is created
24
- * per account via `PermissionFactory.deployAndAttach(account, address, salt,
31
+ * per account via `MandateFactory.deployAndAttach(account, address, salt,
25
32
  * initData)`, where `initData` ABI-encodes a call to `initialize(initParams…)`.
26
33
  */
27
34
  export type CloneTemplateInfo = {
@@ -46,7 +53,7 @@ export type SailDeployment = {
46
53
  governance: Address;
47
54
  timelock: Address;
48
55
  kernel: Address;
49
- permissionFactory: Address;
56
+ mandateFactory: Address;
50
57
  standardFeePolicy: Address;
51
58
  safeModuleEnabler: Address;
52
59
  treasury: Address;
@@ -57,15 +64,15 @@ export type SailDeployment = {
57
64
  * Dispatch model this kernel implements, as a static hint. Verified on-chain
58
65
  * against each kernel's DISPATCH_TYPEHASH. The SDK still prefers live detection
59
66
  * (detectKernelCapabilities) and uses this only as a fallback when the on-chain
60
- * read is unavailable. All three bundled chains (Base, Base Sepolia, Arbitrum)
61
- * run the "selective" model, verified on-chain against each kernel's DISPATCH_TYPEHASH.
67
+ * read is unavailable. All deployed chains run the "selective" model, verified
68
+ * on-chain against each kernel's DISPATCH_TYPEHASH.
62
69
  */
63
70
  dispatchModel?: DispatchModel;
64
71
  /** Pre-audited shared mandate templates available on this chain. */
65
72
  knownTemplates?: KnownTemplate[];
66
73
  /**
67
74
  * Standalone (EIP-1167 clone) permission template LOGIC addresses, keyed by a
68
- * short name. These are the `impl` argument to PermissionFactory.deployAndAttach.
75
+ * short name. These are the `impl` argument to MandateFactory.deployAndAttach.
69
76
  */
70
77
  standaloneTemplates?: Record<string, Address>;
71
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,8FAA8F;AAC9F,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;AAErD,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oEAAoE;IACpE,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACtC,CAAC;AAIF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CA4K/D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAMjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAiBlF"}
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../src/deployments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpE,2DAA2D;AAC3D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oEAAoE;IACpE,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACtC,CAAC;AAoBF,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAwI/D,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAMjE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CA4BlF"}