@seedprotocol/publish 0.6.9 → 0.6.10
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/CHANGELOG.md +11 -0
- package/README.md +1 -1
- package/dist/{chainConfig-CA1Hrrjg.js → chainConfig-DWzoOtkS.js} +394 -328
- package/dist/chainConfig-DWzoOtkS.js.map +1 -0
- package/dist/config.d.ts +5 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/ensureAutomationSessionKey-h3zOmDr5.js +84 -0
- package/dist/ensureAutomationSessionKey-h3zOmDr5.js.map +1 -0
- package/dist/{ensureModularPublishBootstrap-DGBKVGg5.js → ensureModularPublishBootstrap-BImiIFJe.js} +9 -10
- package/dist/{ensureModularPublishBootstrap-5HJDqJJM.js.map → ensureModularPublishBootstrap-BImiIFJe.js.map} +1 -1
- package/dist/{ensureSmartWalletThenPublish-Bm58tc-b.js → ensureSmartWalletThenPublish-DuOYPJFd.js} +9 -10
- package/dist/{ensureSmartWalletThenPublish-Bm58tc-b.js.map → ensureSmartWalletThenPublish-DuOYPJFd.js.map} +1 -1
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/helpers/abi/executor.d.ts +12 -0
- package/dist/helpers/abi/executor.d.ts.map +1 -1
- package/dist/helpers/abi/factory.d.ts +11 -0
- package/dist/helpers/abi/factory.d.ts.map +1 -1
- package/dist/helpers/abi/seedExecutorRouter.d.ts +9 -1
- package/dist/helpers/abi/seedExecutorRouter.d.ts.map +1 -1
- package/dist/helpers/adapters/thirdwebAccount.d.ts.map +1 -1
- package/dist/helpers/chainClient.d.ts +18 -2
- package/dist/helpers/chainClient.d.ts.map +1 -1
- package/dist/helpers/contracts/index.d.ts +9 -0
- package/dist/helpers/contracts/index.d.ts.map +1 -1
- package/dist/helpers/describeRevert.d.ts +3 -2
- package/dist/helpers/describeRevert.d.ts.map +1 -1
- package/dist/helpers/enrollPublishAutomation.d.ts +2 -2
- package/dist/helpers/enrollPublishAutomation.d.ts.map +1 -1
- package/dist/helpers/ensureAutomationSessionKey.d.ts.map +1 -1
- package/dist/helpers/ensureExecutorModule.d.ts +28 -5
- package/dist/helpers/ensureExecutorModule.d.ts.map +1 -1
- package/dist/helpers/executorModuleReadiness.d.ts +15 -1
- package/dist/helpers/executorModuleReadiness.d.ts.map +1 -1
- package/dist/helpers/gasLog.d.ts +8 -0
- package/dist/helpers/gasLog.d.ts.map +1 -0
- package/dist/helpers/seedPaymaster.d.ts +27 -0
- package/dist/helpers/seedPaymaster.d.ts.map +1 -0
- package/dist/helpers/thirdweb.d.ts.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +271 -272
- package/dist/index.js.map +1 -1
- package/dist/{managedAccountAdmin-B64V1rlU.js → managedAccountAdmin-B4HkLWWE.js} +9 -10
- package/dist/{managedAccountAdmin-B64V1rlU.js.map → managedAccountAdmin-B4HkLWWE.js.map} +1 -1
- package/dist/{publishAuthorization-CxBkijU6.js → publishAuthorization-DgDI4zor.js} +1104 -1018
- package/dist/publishAuthorization-DgDI4zor.js.map +1 -0
- package/dist/{publishThirdwebClient-CBD9sKJR.js → publishThirdwebClient-CO18ST7C.js} +2 -2
- package/dist/{publishThirdwebClient-CBD9sKJR.js.map → publishThirdwebClient-CO18ST7C.js.map} +1 -1
- package/dist/{resolveRevokeAccount-CehU81k6.js → resolveRevokeAccount-DsNod8ti.js} +11 -11
- package/dist/{resolveRevokeAccount-B5iXpuRT.js.map → resolveRevokeAccount-DsNod8ti.js.map} +1 -1
- package/dist/thirdweb.d.ts +2 -1
- package/dist/thirdweb.d.ts.map +1 -1
- package/dist/thirdweb.js +147 -148
- package/dist/thirdweb.js.map +1 -1
- package/dist/{worker-2dUZSapK.js → worker-CN7zg73B.js} +2 -2
- package/dist/{worker-2dUZSapK.js.map → worker-CN7zg73B.js.map} +1 -1
- package/package.json +6 -6
- package/dist/chainConfig-3sSqEVQh.js +0 -1433
- package/dist/chainConfig-3sSqEVQh.js.map +0 -1
- package/dist/chainConfig-3wlYarAG.js +0 -1433
- package/dist/chainConfig-3wlYarAG.js.map +0 -1
- package/dist/chainConfig-BRcsMopd.js +0 -1442
- package/dist/chainConfig-BRcsMopd.js.map +0 -1
- package/dist/chainConfig-BYm5OXpk.js +0 -1433
- package/dist/chainConfig-BYm5OXpk.js.map +0 -1
- package/dist/chainConfig-CA1Hrrjg.js.map +0 -1
- package/dist/chainConfig-CYy0XJ0M.js +0 -1283
- package/dist/chainConfig-CYy0XJ0M.js.map +0 -1
- package/dist/chainConfig-CfVGYAsY.js +0 -1311
- package/dist/chainConfig-CfVGYAsY.js.map +0 -1
- package/dist/chainConfig-DDA4YmAB.js +0 -1424
- package/dist/chainConfig-DDA4YmAB.js.map +0 -1
- package/dist/config-BA9la8B6.js +0 -941
- package/dist/config-BA9la8B6.js.map +0 -1
- package/dist/config-BqguD2Tt.js +0 -806
- package/dist/config-BqguD2Tt.js.map +0 -1
- package/dist/config-CPBd5C_b.js +0 -1201
- package/dist/config-CPBd5C_b.js.map +0 -1
- package/dist/config-DkIapO94.js +0 -955
- package/dist/config-DkIapO94.js.map +0 -1
- package/dist/config-EQZZNH9H.js +0 -955
- package/dist/config-EQZZNH9H.js.map +0 -1
- package/dist/config-qjpaJcBA.js +0 -947
- package/dist/config-qjpaJcBA.js.map +0 -1
- package/dist/deploy-BJYwLfz-.js +0 -15
- package/dist/deploy-BJYwLfz-.js.map +0 -1
- package/dist/enrollPublishAutomation-DYQMoylY.js +0 -3422
- package/dist/enrollPublishAutomation-DYQMoylY.js.map +0 -1
- package/dist/ensureAutomationSessionKey-BMHLKfjj.js +0 -85
- package/dist/ensureAutomationSessionKey-BMHLKfjj.js.map +0 -1
- package/dist/ensureAutomationSessionKey-BZ9_3FMW.js +0 -86
- package/dist/ensureAutomationSessionKey-BZ9_3FMW.js.map +0 -1
- package/dist/ensureAutomationSessionKey-Bq0PaTYE.js +0 -84
- package/dist/ensureAutomationSessionKey-Bq0PaTYE.js.map +0 -1
- package/dist/ensureAutomationSessionKey-Bw74ZSGI.js +0 -85
- package/dist/ensureAutomationSessionKey-Bw74ZSGI.js.map +0 -1
- package/dist/ensureAutomationSessionKey-C8D7BFjU.js +0 -85
- package/dist/ensureAutomationSessionKey-C8D7BFjU.js.map +0 -1
- package/dist/ensureAutomationSessionKey-CClLVX2w.js +0 -85
- package/dist/ensureAutomationSessionKey-CClLVX2w.js.map +0 -1
- package/dist/ensureAutomationSessionKey-CNNN1jBQ.js +0 -85
- package/dist/ensureAutomationSessionKey-CNNN1jBQ.js.map +0 -1
- package/dist/ensureAutomationSessionKey-CeUbjcCl.js +0 -85
- package/dist/ensureAutomationSessionKey-CeUbjcCl.js.map +0 -1
- package/dist/ensureAutomationSessionKey-D8Gki6U6.js +0 -85
- package/dist/ensureAutomationSessionKey-D8Gki6U6.js.map +0 -1
- package/dist/ensureAutomationSessionKey-DEH7nwUc.js +0 -86
- package/dist/ensureAutomationSessionKey-DEH7nwUc.js.map +0 -1
- package/dist/ensureAutomationSessionKey-DKriW4Hr.js +0 -85
- package/dist/ensureAutomationSessionKey-DKriW4Hr.js.map +0 -1
- package/dist/ensureAutomationSessionKey-Dhvbii2M.js +0 -86
- package/dist/ensureAutomationSessionKey-Dhvbii2M.js.map +0 -1
- package/dist/ensureAutomationSessionKey-Dyfk8qVp.js +0 -85
- package/dist/ensureAutomationSessionKey-Dyfk8qVp.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-5HJDqJJM.js +0 -24
- package/dist/ensureModularPublishBootstrap-BW8jKN_A.js +0 -24
- package/dist/ensureModularPublishBootstrap-BW8jKN_A.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-BhYNmLzT.js +0 -24
- package/dist/ensureModularPublishBootstrap-BhYNmLzT.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-Bsw1xSCt.js +0 -24
- package/dist/ensureModularPublishBootstrap-Bsw1xSCt.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-Btih5xbB.js +0 -129
- package/dist/ensureModularPublishBootstrap-Btih5xbB.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-C8wdnH1P.js +0 -128
- package/dist/ensureModularPublishBootstrap-C8wdnH1P.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-CI4U08Gc.js +0 -129
- package/dist/ensureModularPublishBootstrap-CI4U08Gc.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-CcU-hXll.js +0 -128
- package/dist/ensureModularPublishBootstrap-CcU-hXll.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-CdrykHAi.js +0 -24
- package/dist/ensureModularPublishBootstrap-CdrykHAi.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-DGBKVGg5.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-DaREOqSc.js +0 -129
- package/dist/ensureModularPublishBootstrap-DaREOqSc.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-DxIG-LUP.js +0 -24
- package/dist/ensureModularPublishBootstrap-DxIG-LUP.js.map +0 -1
- package/dist/ensureModularPublishBootstrap-Jm1AAqBo.js +0 -127
- package/dist/ensureModularPublishBootstrap-Jm1AAqBo.js.map +0 -1
- package/dist/ensureSessionKey-D2Lq-56x.js +0 -363
- package/dist/ensureSessionKey-D2Lq-56x.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-BFPugsKJ.js +0 -48
- package/dist/ensureSmartWalletThenPublish-BFPugsKJ.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-BSYzckyS.js +0 -49
- package/dist/ensureSmartWalletThenPublish-BSYzckyS.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-Bf8FN1un.js +0 -49
- package/dist/ensureSmartWalletThenPublish-Bf8FN1un.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-Bl415Ss6.js +0 -48
- package/dist/ensureSmartWalletThenPublish-Bl415Ss6.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-Bmm5Fpat.js +0 -49
- package/dist/ensureSmartWalletThenPublish-Bmm5Fpat.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-CE7acryB.js +0 -49
- package/dist/ensureSmartWalletThenPublish-CE7acryB.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-D5GSZRyZ.js +0 -48
- package/dist/ensureSmartWalletThenPublish-D5GSZRyZ.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-DAomriGc.js +0 -48
- package/dist/ensureSmartWalletThenPublish-DAomriGc.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-DaZf3q5S.js +0 -48
- package/dist/ensureSmartWalletThenPublish-DaZf3q5S.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-Dta2AOyJ.js +0 -48
- package/dist/ensureSmartWalletThenPublish-Dta2AOyJ.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-ekb0xJRn.js +0 -48
- package/dist/ensureSmartWalletThenPublish-ekb0xJRn.js.map +0 -1
- package/dist/ensureSmartWalletThenPublish-v5fhvKxZ.js +0 -48
- package/dist/ensureSmartWalletThenPublish-v5fhvKxZ.js.map +0 -1
- package/dist/errors-Du3LNbJN.js +0 -70
- package/dist/errors-Du3LNbJN.js.map +0 -1
- package/dist/errors-PZAaDlkq.js +0 -79
- package/dist/errors-PZAaDlkq.js.map +0 -1
- package/dist/helpers/adapters/managedAccountTxSender.d.ts +0 -21
- package/dist/helpers/adapters/managedAccountTxSender.d.ts.map +0 -1
- package/dist/helpers/modularAccount/abi.d.ts +0 -173
- package/dist/helpers/modularAccount/abi.d.ts.map +0 -1
- package/dist/helpers/modularAccount/deploy.d.ts +0 -13
- package/dist/helpers/modularAccount/deploy.d.ts.map +0 -1
- package/dist/helpers/modularAccount/eip712.d.ts +0 -30
- package/dist/helpers/modularAccount/eip712.d.ts.map +0 -1
- package/dist/helpers/modularAccount/encode.d.ts +0 -16
- package/dist/helpers/modularAccount/encode.d.ts.map +0 -1
- package/dist/helpers/modularAccount/ensureModule.d.ts +0 -10
- package/dist/helpers/modularAccount/ensureModule.d.ts.map +0 -1
- package/dist/helpers/modularAccount/ensureSessionKey.d.ts +0 -25
- package/dist/helpers/modularAccount/ensureSessionKey.d.ts.map +0 -1
- package/dist/helpers/modularAccount/index.d.ts +0 -9
- package/dist/helpers/modularAccount/index.d.ts.map +0 -1
- package/dist/helpers/modularAccount/permissions.d.ts +0 -32
- package/dist/helpers/modularAccount/permissions.d.ts.map +0 -1
- package/dist/helpers/modularAccount/reads.d.ts +0 -28
- package/dist/helpers/modularAccount/reads.d.ts.map +0 -1
- package/dist/helpers/thirdwebEnrollPublishAutomation.d.ts +0 -31
- package/dist/helpers/thirdwebEnrollPublishAutomation.d.ts.map +0 -1
- package/dist/helpers/thirdwebModularBootstrap.d.ts +0 -8
- package/dist/helpers/thirdwebModularBootstrap.d.ts.map +0 -1
- package/dist/helpers/transformPayloadToIntegerIds.d.ts +0 -34
- package/dist/helpers/transformPayloadToIntegerIds.d.ts.map +0 -1
- package/dist/managedAccountAdmin-BVLGWpEb.js +0 -29
- package/dist/managedAccountAdmin-BVLGWpEb.js.map +0 -1
- package/dist/managedAccountAdmin-Bje6X8Ds.js +0 -29
- package/dist/managedAccountAdmin-Bje6X8Ds.js.map +0 -1
- package/dist/managedAccountAdmin-C84-IlQ9.js +0 -29
- package/dist/managedAccountAdmin-C84-IlQ9.js.map +0 -1
- package/dist/managedAccountAdmin-DJMw6UH6.js +0 -29
- package/dist/managedAccountAdmin-DJMw6UH6.js.map +0 -1
- package/dist/managedAccountAdmin-DhCRBoPX.js +0 -29
- package/dist/managedAccountAdmin-DhCRBoPX.js.map +0 -1
- package/dist/managedAccountAdmin-NXD66lP5.js +0 -29
- package/dist/managedAccountAdmin-NXD66lP5.js.map +0 -1
- package/dist/publishAuthorization-B0G1em4a.js +0 -3695
- package/dist/publishAuthorization-B0G1em4a.js.map +0 -1
- package/dist/publishAuthorization-B1BVVfp0.js +0 -3604
- package/dist/publishAuthorization-B1BVVfp0.js.map +0 -1
- package/dist/publishAuthorization-BEqRnP2h.js +0 -3925
- package/dist/publishAuthorization-BEqRnP2h.js.map +0 -1
- package/dist/publishAuthorization-Bltn3y_K.js +0 -3599
- package/dist/publishAuthorization-Bltn3y_K.js.map +0 -1
- package/dist/publishAuthorization-By2Tt9kW.js +0 -3912
- package/dist/publishAuthorization-By2Tt9kW.js.map +0 -1
- package/dist/publishAuthorization-CSN2FsQk.js +0 -3479
- package/dist/publishAuthorization-CSN2FsQk.js.map +0 -1
- package/dist/publishAuthorization-CxBkijU6.js.map +0 -1
- package/dist/publishAuthorization-CxWY7lAQ.js +0 -3706
- package/dist/publishAuthorization-CxWY7lAQ.js.map +0 -1
- package/dist/publishAuthorization-DEriY_jm.js +0 -3687
- package/dist/publishAuthorization-DEriY_jm.js.map +0 -1
- package/dist/publishAuthorization-DfAQs1sN.js +0 -3707
- package/dist/publishAuthorization-DfAQs1sN.js.map +0 -1
- package/dist/publishAuthorization-DgdmgLTa.js +0 -3520
- package/dist/publishAuthorization-DgdmgLTa.js.map +0 -1
- package/dist/publishAuthorization-DjVrnMC0.js +0 -3925
- package/dist/publishAuthorization-DjVrnMC0.js.map +0 -1
- package/dist/publishAuthorization-DqhhCAhd.js +0 -3652
- package/dist/publishAuthorization-DqhhCAhd.js.map +0 -1
- package/dist/publishThirdwebClient-BdgkcqM7.js +0 -18
- package/dist/publishThirdwebClient-BdgkcqM7.js.map +0 -1
- package/dist/publishThirdwebClient-BkmDN480.js +0 -18
- package/dist/publishThirdwebClient-BkmDN480.js.map +0 -1
- package/dist/publishThirdwebClient-BnDhP3N-.js +0 -18
- package/dist/publishThirdwebClient-BnDhP3N-.js.map +0 -1
- package/dist/publishThirdwebClient-CQ29pzG2.js +0 -18
- package/dist/publishThirdwebClient-CQ29pzG2.js.map +0 -1
- package/dist/publishThirdwebClient-CZIVmr9Z.js +0 -18
- package/dist/publishThirdwebClient-CZIVmr9Z.js.map +0 -1
- package/dist/publishThirdwebClient-Ce7iBIsj.js +0 -18
- package/dist/publishThirdwebClient-Ce7iBIsj.js.map +0 -1
- package/dist/publishThirdwebClient-DroRrOFQ.js +0 -18
- package/dist/publishThirdwebClient-DroRrOFQ.js.map +0 -1
- package/dist/publishThirdwebClient-DzXFjQ7L.js +0 -18
- package/dist/publishThirdwebClient-DzXFjQ7L.js.map +0 -1
- package/dist/publishThirdwebClient-Dzb2vcEs.js +0 -18
- package/dist/publishThirdwebClient-Dzb2vcEs.js.map +0 -1
- package/dist/publishThirdwebClient-i8P7fivi.js +0 -18
- package/dist/publishThirdwebClient-i8P7fivi.js.map +0 -1
- package/dist/publishWalletRegistry-Cugh691z.js +0 -37
- package/dist/publishWalletRegistry-Cugh691z.js.map +0 -1
- package/dist/resolveRevokeAccount-B5iXpuRT.js +0 -38
- package/dist/resolveRevokeAccount-B7ImSb4Y.js +0 -38
- package/dist/resolveRevokeAccount-B7ImSb4Y.js.map +0 -1
- package/dist/resolveRevokeAccount-BEhKQBTm.js +0 -38
- package/dist/resolveRevokeAccount-BEhKQBTm.js.map +0 -1
- package/dist/resolveRevokeAccount-BM1j2l5Q.js +0 -38
- package/dist/resolveRevokeAccount-BM1j2l5Q.js.map +0 -1
- package/dist/resolveRevokeAccount-BtVG0xxc.js +0 -38
- package/dist/resolveRevokeAccount-BtVG0xxc.js.map +0 -1
- package/dist/resolveRevokeAccount-CJZZdBcQ.js +0 -39
- package/dist/resolveRevokeAccount-CJZZdBcQ.js.map +0 -1
- package/dist/resolveRevokeAccount-CaIMuCee.js +0 -39
- package/dist/resolveRevokeAccount-CaIMuCee.js.map +0 -1
- package/dist/resolveRevokeAccount-CehU81k6.js.map +0 -1
- package/dist/resolveRevokeAccount-Cg4TQgnd.js +0 -38
- package/dist/resolveRevokeAccount-Cg4TQgnd.js.map +0 -1
- package/dist/resolveRevokeAccount-DHnxtEIj.js +0 -39
- package/dist/resolveRevokeAccount-DHnxtEIj.js.map +0 -1
- package/dist/resolveRevokeAccount-DJKfLlyK.js +0 -38
- package/dist/resolveRevokeAccount-DJKfLlyK.js.map +0 -1
- package/dist/resolveRevokeAccount-S-2WXkNh.js +0 -38
- package/dist/resolveRevokeAccount-S-2WXkNh.js.map +0 -1
- package/dist/resolveRevokeAccount-mzR11KJ4.js +0 -38
- package/dist/resolveRevokeAccount-mzR11KJ4.js.map +0 -1
- package/dist/resolveRevokeAccount-yWARIv9i.js +0 -38
- package/dist/resolveRevokeAccount-yWARIv9i.js.map +0 -1
- package/dist/seedSigner-CFzMD7Rb.js +0 -66
- package/dist/seedSigner-CFzMD7Rb.js.map +0 -1
- package/dist/thirdweb-BoksPRz3.js +0 -194
- package/dist/thirdweb-BoksPRz3.js.map +0 -1
- package/dist/thirdwebAccount-C2iOcp4_.js +0 -59
- package/dist/thirdwebAccount-C2iOcp4_.js.map +0 -1
- package/dist/worker-B1PcFPLi.js +0 -69
- package/dist/worker-B1PcFPLi.js.map +0 -1
- package/dist/worker-B8gN5WTx.js +0 -69
- package/dist/worker-B8gN5WTx.js.map +0 -1
- package/dist/worker-BCG1r0AS.js +0 -69
- package/dist/worker-BCG1r0AS.js.map +0 -1
- package/dist/worker-BgErCNTb.js +0 -69
- package/dist/worker-BgErCNTb.js.map +0 -1
- package/dist/worker-C07rPV2G.js +0 -69
- package/dist/worker-C07rPV2G.js.map +0 -1
- package/dist/worker-C9Za_dlQ.js +0 -69
- package/dist/worker-C9Za_dlQ.js.map +0 -1
- package/dist/worker-CEgulQnm.js +0 -69
- package/dist/worker-CEgulQnm.js.map +0 -1
- package/dist/worker-C_TL94He.js +0 -69
- package/dist/worker-C_TL94He.js.map +0 -1
- package/dist/worker-CbtzcKG6.js +0 -69
- package/dist/worker-CbtzcKG6.js.map +0 -1
- package/dist/worker-DBC_g-3I.js +0 -69
- package/dist/worker-DBC_g-3I.js.map +0 -1
- package/dist/worker-DHUm-TeQ.js +0 -69
- package/dist/worker-DHUm-TeQ.js.map +0 -1
- package/dist/worker-DypHzXgH.js +0 -69
- package/dist/worker-DypHzXgH.js.map +0 -1
- package/dist/worker-ZL4Wg19t.js +0 -69
- package/dist/worker-ZL4Wg19t.js.map +0 -1
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { H as e, J as t, R as n, U as r, W as i, nt as a, r as o } from "./config-qjpaJcBA.js";
|
|
2
|
-
import { a as s, n as c, r as l } from "./errors-Du3LNbJN.js";
|
|
3
|
-
import { D as u, M as d, j as f, v as p } from "./publishAuthorization-CSN2FsQk.js";
|
|
4
|
-
import { deploySmartAccount as m, getContract as h, sendTransaction as g } from "thirdweb";
|
|
5
|
-
import { optimismSepolia as _ } from "thirdweb/chains";
|
|
6
|
-
import { addSessionKey as v, shouldUpdateSessionKey as y } from "thirdweb/extensions/erc4337";
|
|
7
|
-
//#region src/helpers/ensureEip7702ModularAccountReady.ts
|
|
8
|
-
var b = "Modular (EIP-7702) wallet is not connected. Sign in with the same method and try again.", x = "Your modular account is not upgraded to an EIP-7702 smart account on Optimism Sepolia yet. Enable autoDeployEip7702ModularAccount in publish config or complete wallet setup, then retry.", S = "Automatic EIP-7702 smart account setup failed on Optimism Sepolia. Retry or reconnect your wallet.", C = "EIP-7702 upgrade was sent but on-chain bytecode was not detected yet. Wait a moment and retry.", w = 5;
|
|
9
|
-
async function T() {
|
|
10
|
-
let { autoDeployEip7702ModularAccount: t } = o(), n = d();
|
|
11
|
-
await n.autoConnect({
|
|
12
|
-
client: u(),
|
|
13
|
-
chain: _
|
|
14
|
-
});
|
|
15
|
-
let i = n.getAccount();
|
|
16
|
-
if (!i) throw new c(b, "EIP7702_MODULAR_ACCOUNT_UNAVAILABLE");
|
|
17
|
-
let a = u(), s = h({
|
|
18
|
-
client: a,
|
|
19
|
-
chain: _,
|
|
20
|
-
address: i.address
|
|
21
|
-
});
|
|
22
|
-
if (!await e(i.address)) {
|
|
23
|
-
if (!t) throw new c(x, "EIP7702_MODULAR_NOT_UPGRADED", i.address);
|
|
24
|
-
try {
|
|
25
|
-
await m({
|
|
26
|
-
smartAccount: i,
|
|
27
|
-
chain: _,
|
|
28
|
-
client: a,
|
|
29
|
-
accountContract: s
|
|
30
|
-
});
|
|
31
|
-
} catch (e) {
|
|
32
|
-
if (await r(i.address, w)) return;
|
|
33
|
-
throw new c(S, "EIP7702_MODULAR_DEPLOY_FAILED", i.address, e);
|
|
34
|
-
}
|
|
35
|
-
if (!await r(i.address, w)) throw new c(C, "EIP7702_MODULAR_NOT_CONFIRMED", i.address);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//#endregion
|
|
39
|
-
//#region src/helpers/defaultApprovedTargetsForModularPublish.ts
|
|
40
|
-
function E(e) {
|
|
41
|
-
let t = /* @__PURE__ */ new Set();
|
|
42
|
-
for (let n of e) {
|
|
43
|
-
let e = n.trim().toLowerCase();
|
|
44
|
-
e.startsWith("0x") && e.length === 42 && t.add(e);
|
|
45
|
-
}
|
|
46
|
-
return [...t].sort().map((e) => e);
|
|
47
|
-
}
|
|
48
|
-
function D(e) {
|
|
49
|
-
let n = o(), r = [e, t];
|
|
50
|
-
return n.modularAccountModuleContract?.trim() && r.push(n.modularAccountModuleContract.trim()), E(r);
|
|
51
|
-
}
|
|
52
|
-
//#endregion
|
|
53
|
-
//#region src/helpers/ensureManagedSignerSessionKey.ts
|
|
54
|
-
var O = "Could not connect the managed publishing account to authorize the modular signer on Optimism Sepolia. Reconnect and try again.", k = "Could not authorize the modular wallet as a session signer on your publishing account on Optimism Sepolia.";
|
|
55
|
-
async function A(e) {
|
|
56
|
-
let { managedAddress: t, signerAddress: r } = e, a = f();
|
|
57
|
-
await a.autoConnect({
|
|
58
|
-
client: u(),
|
|
59
|
-
chain: _
|
|
60
|
-
});
|
|
61
|
-
let o = a.getAccount();
|
|
62
|
-
if (!o) throw new l(O, "MODULAR_SIGNER_ACTIVATION_FAILED", t);
|
|
63
|
-
let s = h({
|
|
64
|
-
client: u(),
|
|
65
|
-
chain: _,
|
|
66
|
-
address: t
|
|
67
|
-
}), c = {
|
|
68
|
-
approvedTargets: D(t),
|
|
69
|
-
nativeTokenLimitPerTransaction: 0
|
|
70
|
-
}, d = !1;
|
|
71
|
-
try {
|
|
72
|
-
d = await y({
|
|
73
|
-
accountContract: s,
|
|
74
|
-
sessionKeyAddress: r,
|
|
75
|
-
newPermissions: c
|
|
76
|
-
});
|
|
77
|
-
} catch (e) {
|
|
78
|
-
throw new l(k, "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
|
|
79
|
-
}
|
|
80
|
-
if (d) try {
|
|
81
|
-
let e = v({
|
|
82
|
-
contract: s,
|
|
83
|
-
account: o,
|
|
84
|
-
sessionKeyAddress: r,
|
|
85
|
-
permissions: c
|
|
86
|
-
}), t = await g({
|
|
87
|
-
account: o,
|
|
88
|
-
transaction: e
|
|
89
|
-
});
|
|
90
|
-
await i(t.transactionHash);
|
|
91
|
-
} catch (e) {
|
|
92
|
-
throw new l(k, "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
|
|
93
|
-
}
|
|
94
|
-
let p = !1;
|
|
95
|
-
try {
|
|
96
|
-
p = await n(t, r);
|
|
97
|
-
} catch (e) {
|
|
98
|
-
throw new l(k, "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
|
|
99
|
-
}
|
|
100
|
-
if (!p) throw new l(k, "MODULAR_SIGNER_ACTIVATION_FAILED", t);
|
|
101
|
-
}
|
|
102
|
-
//#endregion
|
|
103
|
-
//#region src/helpers/ensureModularPublishBootstrap.ts
|
|
104
|
-
var j = /* @__PURE__ */ a({ ensureModularPublishBootstrap: () => M });
|
|
105
|
-
async function M(e) {
|
|
106
|
-
let t = d();
|
|
107
|
-
await t.autoConnect({
|
|
108
|
-
client: u(),
|
|
109
|
-
chain: _
|
|
110
|
-
});
|
|
111
|
-
let n = t.getAccount();
|
|
112
|
-
if (!n) throw Error("Failed to get modular account");
|
|
113
|
-
try {
|
|
114
|
-
await A({
|
|
115
|
-
managedAddress: e,
|
|
116
|
-
signerAddress: n.address
|
|
117
|
-
});
|
|
118
|
-
} catch (e) {
|
|
119
|
-
if (!o().autoDeployEip7702ModularAccount || !s(e)) throw e;
|
|
120
|
-
await T();
|
|
121
|
-
}
|
|
122
|
-
return await p(e, (await import("./config-qjpaJcBA.js").then((e) => e.c)).fromThirdwebAccount(n)), n;
|
|
123
|
-
}
|
|
124
|
-
//#endregion
|
|
125
|
-
export { T as a, D as i, j as n, A as r, M as t };
|
|
126
|
-
|
|
127
|
-
//# sourceMappingURL=ensureModularPublishBootstrap-Jm1AAqBo.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureModularPublishBootstrap-Jm1AAqBo.js","names":[],"sources":["../src/helpers/ensureEip7702ModularAccountReady.ts","../src/helpers/defaultApprovedTargetsForModularPublish.ts","../src/helpers/ensureManagedSignerSessionKey.ts","../src/helpers/ensureModularPublishBootstrap.ts"],"sourcesContent":["import { deploySmartAccount, getContract } from 'thirdweb'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport { getPublishConfig } from '../config'\nimport { Eip7702ModularAccountPublishError } from '../errors'\nimport { isContractDeployed, pollSmartWalletDeployed } from './chainClient'\nimport { getClient, getModularAccountWallet } from './thirdweb'\n\nconst MSG_NO_ACCOUNT =\n 'Modular (EIP-7702) wallet is not connected. Sign in with the same method and try again.'\nconst MSG_NOT_UPGRADED =\n 'Your modular account is not upgraded to an EIP-7702 smart account on Optimism Sepolia yet. Enable autoDeployEip7702ModularAccount in publish config or complete wallet setup, then retry.'\nconst MSG_DEPLOY_FAILED =\n 'Automatic EIP-7702 smart account setup failed on Optimism Sepolia. Retry or reconnect your wallet.'\nconst MSG_NOT_CONFIRMED =\n 'EIP-7702 upgrade was sent but on-chain bytecode was not detected yet. Wait a moment and retry.'\n\nconst DEPLOY_POLL_ATTEMPTS = 5\n\n/**\n * Ensures the Thirdweb in-app modular wallet (EIP-7702) has non-empty bytecode at its address\n * on Optimism Sepolia. deploySmartAccount remains Thirdweb; bytecode checks use viem.\n */\nexport async function ensureEip7702ModularAccountReady(): Promise<void> {\n const { autoDeployEip7702ModularAccount } = getPublishConfig()\n const modularAccountWallet = getModularAccountWallet()\n await modularAccountWallet.autoConnect({ client: getClient(), chain: optimismSepolia })\n const modularAccount = modularAccountWallet.getAccount()\n if (!modularAccount) {\n throw new Eip7702ModularAccountPublishError(MSG_NO_ACCOUNT, 'EIP7702_MODULAR_ACCOUNT_UNAVAILABLE')\n }\n\n const client = getClient()\n const accountContract = getContract({\n client,\n chain: optimismSepolia,\n address: modularAccount.address,\n })\n\n if (await isContractDeployed(modularAccount.address)) {\n return\n }\n\n if (!autoDeployEip7702ModularAccount) {\n throw new Eip7702ModularAccountPublishError(\n MSG_NOT_UPGRADED,\n 'EIP7702_MODULAR_NOT_UPGRADED',\n modularAccount.address,\n )\n }\n\n try {\n await deploySmartAccount({\n smartAccount: modularAccount,\n chain: optimismSepolia,\n client,\n accountContract,\n })\n } catch (cause) {\n if (await pollSmartWalletDeployed(modularAccount.address, DEPLOY_POLL_ATTEMPTS)) {\n return\n }\n throw new Eip7702ModularAccountPublishError(\n MSG_DEPLOY_FAILED,\n 'EIP7702_MODULAR_DEPLOY_FAILED',\n modularAccount.address,\n cause,\n )\n }\n\n if (!(await pollSmartWalletDeployed(modularAccount.address, DEPLOY_POLL_ATTEMPTS))) {\n throw new Eip7702ModularAccountPublishError(\n MSG_NOT_CONFIRMED,\n 'EIP7702_MODULAR_NOT_CONFIRMED',\n modularAccount.address,\n )\n }\n}\n","import { getPublishConfig } from '../config'\nimport { EAS_CONTRACT_ADDRESS } from './constants'\n\nfunction uniqueAddressesLower(addresses: string[]): `0x${string}`[] {\n const set = new Set<string>()\n for (const a of addresses) {\n const t = a.trim().toLowerCase()\n if (t.startsWith('0x') && t.length === 42) set.add(t)\n }\n return [...set].sort().map((x) => x as `0x${string}`)\n}\n\n/** Allowlisted call targets for modular session signers: managed account, EAS, optional executor module. */\nexport function defaultApprovedTargetsForModularPublish(managedAddress: string): `0x${string}`[] {\n const cfg = getPublishConfig()\n const extra: string[] = [managedAddress, EAS_CONTRACT_ADDRESS]\n if (cfg.modularAccountModuleContract?.trim()) {\n extra.push(cfg.modularAccountModuleContract.trim())\n }\n return uniqueAddressesLower(extra)\n}\n","import { getContract, sendTransaction } from 'thirdweb'\nimport { addSessionKey, shouldUpdateSessionKey } from 'thirdweb/extensions/erc4337'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport type { Address } from 'viem'\nimport { ManagedAccountPublishError } from '../errors'\nimport { waitForPublishReceipt } from './chainClient'\nimport { readIsActiveSigner } from './contracts'\nimport { defaultApprovedTargetsForModularPublish } from './defaultApprovedTargetsForModularPublish'\nimport { getClient, getManagedAccountWallet } from './thirdweb'\n\nconst MSG_UNAVAILABLE =\n 'Could not connect the managed publishing account to authorize the modular signer on Optimism Sepolia. Reconnect and try again.'\nconst MSG_ACTIVATION_FAILED =\n 'Could not authorize the modular wallet as a session signer on your publishing account on Optimism Sepolia.'\n\n/**\n * Ensures the modular (EIP-7702) wallet is an active session signer on the ManagedAccount.\n * If permissions are missing or stale, sends `addSessionKey` signed by the managed EIP-4337 wallet.\n * Session-key AA extensions remain on Thirdweb; verification uses viem.\n */\nexport async function ensureManagedSignerSessionKey(params: {\n managedAddress: string\n signerAddress: string\n}): Promise<void> {\n const { managedAddress, signerAddress } = params\n const managedWallet = getManagedAccountWallet()\n await managedWallet.autoConnect({ client: getClient(), chain: optimismSepolia })\n const managedAccount = managedWallet.getAccount()\n if (!managedAccount) {\n throw new ManagedAccountPublishError(\n MSG_UNAVAILABLE,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n\n const accountContract = getContract({\n client: getClient(),\n chain: optimismSepolia,\n address: managedAddress,\n })\n const permissions = {\n approvedTargets: defaultApprovedTargetsForModularPublish(managedAddress),\n nativeTokenLimitPerTransaction: 0,\n }\n\n let shouldUpdate = false\n try {\n shouldUpdate = await shouldUpdateSessionKey({\n accountContract,\n sessionKeyAddress: signerAddress,\n newPermissions: permissions,\n })\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n\n if (shouldUpdate) {\n try {\n const tx = addSessionKey({\n contract: accountContract,\n account: managedAccount,\n sessionKeyAddress: signerAddress,\n permissions,\n })\n const result = await sendTransaction({ account: managedAccount, transaction: tx })\n await waitForPublishReceipt(result.transactionHash as `0x${string}`)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n }\n\n let active = false\n try {\n active = await readIsActiveSigner(managedAddress as Address, signerAddress as Address)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n\n if (!active) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n}\n","import type { Account } from 'thirdweb/wallets'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport { getPublishConfig } from '../config'\nimport { isManagedAccountPublishError } from '../errors'\nimport { ensureEip7702ModularAccountReady } from './ensureEip7702ModularAccountReady'\nimport { ensureManagedAccountEasConfigured } from './ensureManagedAccountEasConfigured'\nimport { ensureManagedSignerSessionKey } from './ensureManagedSignerSessionKey'\nimport { getClient, getModularAccountWallet } from './thirdweb'\n\n/**\n * One-time modular publish bootstrap before `multiPublish`:\n * session signer on managed account → EAS pointer → optional EIP-7702 fallback.\n */\nexport async function ensureModularPublishBootstrap(managedAddress: string): Promise<Account> {\n const modularAccountWallet = getModularAccountWallet()\n await modularAccountWallet.autoConnect({ client: getClient(), chain: optimismSepolia })\n const modularAccount = modularAccountWallet.getAccount()\n if (!modularAccount) {\n throw new Error('Failed to get modular account')\n }\n\n try {\n await ensureManagedSignerSessionKey({\n managedAddress,\n signerAddress: modularAccount.address,\n })\n } catch (cause) {\n if (!getPublishConfig().autoDeployEip7702ModularAccount) {\n throw cause\n }\n if (!isManagedAccountPublishError(cause)) {\n throw cause\n }\n await ensureEip7702ModularAccountReady()\n }\n\n await ensureManagedAccountEasConfigured(managedAddress, (await import('./adapters/thirdwebAccount')).fromThirdwebAccount(modularAccount))\n return modularAccount\n}\n"],"mappings":"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"}
|
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
import { A as e, E as t, M as n, O as r, S as i, T as a } from "./config-BqguD2Tt.js";
|
|
2
|
-
import { r as o } from "./errors-PZAaDlkq.js";
|
|
3
|
-
import { u as s } from "./seedSigner-CFzMD7Rb.js";
|
|
4
|
-
import { encodeAbiParameters as c, encodeFunctionData as l, parseEther as u } from "viem";
|
|
5
|
-
//#region src/helpers/modularAccount/abi.ts
|
|
6
|
-
var d = [{
|
|
7
|
-
type: "function",
|
|
8
|
-
name: "installModule",
|
|
9
|
-
stateMutability: "nonpayable",
|
|
10
|
-
inputs: [{
|
|
11
|
-
name: "moduleContract",
|
|
12
|
-
type: "address"
|
|
13
|
-
}, {
|
|
14
|
-
name: "data",
|
|
15
|
-
type: "bytes"
|
|
16
|
-
}],
|
|
17
|
-
outputs: []
|
|
18
|
-
}], f = [{
|
|
19
|
-
type: "function",
|
|
20
|
-
name: "getInstalledModules",
|
|
21
|
-
stateMutability: "view",
|
|
22
|
-
inputs: [],
|
|
23
|
-
outputs: [{
|
|
24
|
-
type: "tuple[]",
|
|
25
|
-
components: [{
|
|
26
|
-
name: "implementation",
|
|
27
|
-
type: "address"
|
|
28
|
-
}, {
|
|
29
|
-
name: "config",
|
|
30
|
-
type: "tuple",
|
|
31
|
-
components: [
|
|
32
|
-
{
|
|
33
|
-
name: "registerInstallationCallback",
|
|
34
|
-
type: "bool"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "requiredInterfaces",
|
|
38
|
-
type: "bytes4[]"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
name: "supportedInterfaces",
|
|
42
|
-
type: "bytes4[]"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
name: "callbackFunctions",
|
|
46
|
-
type: "tuple[]",
|
|
47
|
-
components: [{
|
|
48
|
-
name: "selector",
|
|
49
|
-
type: "bytes4"
|
|
50
|
-
}]
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
name: "fallbackFunctions",
|
|
54
|
-
type: "tuple[]",
|
|
55
|
-
components: [{
|
|
56
|
-
name: "selector",
|
|
57
|
-
type: "bytes4"
|
|
58
|
-
}, {
|
|
59
|
-
name: "permissionBits",
|
|
60
|
-
type: "uint256"
|
|
61
|
-
}]
|
|
62
|
-
}
|
|
63
|
-
]
|
|
64
|
-
}]
|
|
65
|
-
}]
|
|
66
|
-
}], p = [{
|
|
67
|
-
type: "function",
|
|
68
|
-
name: "setPermissionsForSigner",
|
|
69
|
-
stateMutability: "nonpayable",
|
|
70
|
-
inputs: [{
|
|
71
|
-
name: "req",
|
|
72
|
-
type: "tuple",
|
|
73
|
-
components: [
|
|
74
|
-
{
|
|
75
|
-
name: "signer",
|
|
76
|
-
type: "address"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: "isAdmin",
|
|
80
|
-
type: "uint8"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
name: "approvedTargets",
|
|
84
|
-
type: "address[]"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
name: "nativeTokenLimitPerTransaction",
|
|
88
|
-
type: "uint256"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
name: "permissionStartTimestamp",
|
|
92
|
-
type: "uint128"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
name: "permissionEndTimestamp",
|
|
96
|
-
type: "uint128"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: "reqValidityStartTimestamp",
|
|
100
|
-
type: "uint128"
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: "reqValidityEndTimestamp",
|
|
104
|
-
type: "uint128"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: "uid",
|
|
108
|
-
type: "bytes32"
|
|
109
|
-
}
|
|
110
|
-
]
|
|
111
|
-
}, {
|
|
112
|
-
name: "signature",
|
|
113
|
-
type: "bytes"
|
|
114
|
-
}],
|
|
115
|
-
outputs: []
|
|
116
|
-
}], m = [{
|
|
117
|
-
type: "function",
|
|
118
|
-
name: "getPermissionsForSigner",
|
|
119
|
-
stateMutability: "view",
|
|
120
|
-
inputs: [{
|
|
121
|
-
name: "signer",
|
|
122
|
-
type: "address"
|
|
123
|
-
}],
|
|
124
|
-
outputs: [{
|
|
125
|
-
name: "permissions",
|
|
126
|
-
type: "tuple",
|
|
127
|
-
components: [
|
|
128
|
-
{
|
|
129
|
-
name: "signer",
|
|
130
|
-
type: "address"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
name: "approvedTargets",
|
|
134
|
-
type: "address[]"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
name: "nativeTokenLimitPerTransaction",
|
|
138
|
-
type: "uint256"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
name: "startTimestamp",
|
|
142
|
-
type: "uint128"
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: "endTimestamp",
|
|
146
|
-
type: "uint128"
|
|
147
|
-
}
|
|
148
|
-
]
|
|
149
|
-
}]
|
|
150
|
-
}], h = { SignerPermissionRequest: [
|
|
151
|
-
{
|
|
152
|
-
name: "signer",
|
|
153
|
-
type: "address"
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
name: "isAdmin",
|
|
157
|
-
type: "uint8"
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
name: "approvedTargets",
|
|
161
|
-
type: "address[]"
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
name: "nativeTokenLimitPerTransaction",
|
|
165
|
-
type: "uint256"
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
name: "permissionStartTimestamp",
|
|
169
|
-
type: "uint128"
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
name: "permissionEndTimestamp",
|
|
173
|
-
type: "uint128"
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
name: "reqValidityStartTimestamp",
|
|
177
|
-
type: "uint128"
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
name: "reqValidityEndTimestamp",
|
|
181
|
-
type: "uint128"
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
name: "uid",
|
|
185
|
-
type: "bytes32"
|
|
186
|
-
}
|
|
187
|
-
] }, g = "0x0000000000000000000000000000000000000000", _ = 10n * 365n * 24n * 60n * 60n;
|
|
188
|
-
function v() {
|
|
189
|
-
let e = /* @__PURE__ */ new Uint8Array(32);
|
|
190
|
-
return crypto.getRandomValues(e), `0x${Array.from(e, (e) => e.toString(16).padStart(2, "0")).join("")}`;
|
|
191
|
-
}
|
|
192
|
-
function y() {
|
|
193
|
-
return BigInt(Math.floor(Date.now() / 1e3));
|
|
194
|
-
}
|
|
195
|
-
function b(e) {
|
|
196
|
-
let { sessionKeyAddress: t, permissions: n } = e, r = n.permissionStartTimestamp == null ? 0n : BigInt(n.permissionStartTimestamp), i = n.permissionEndTimestamp == null ? y() + _ : BigInt(n.permissionEndTimestamp), a = n.approvedTargets === "*" ? [g] : n.approvedTargets, o = n.nativeTokenLimitPerTransaction ?? 0;
|
|
197
|
-
return {
|
|
198
|
-
signer: t,
|
|
199
|
-
isAdmin: 0,
|
|
200
|
-
approvedTargets: a,
|
|
201
|
-
nativeTokenLimitPerTransaction: u(String(o)),
|
|
202
|
-
permissionStartTimestamp: r,
|
|
203
|
-
permissionEndTimestamp: i,
|
|
204
|
-
reqValidityStartTimestamp: 0n,
|
|
205
|
-
reqValidityEndTimestamp: y() + _,
|
|
206
|
-
uid: e.uid ?? v()
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
function x() {
|
|
210
|
-
return {
|
|
211
|
-
approvedTargets: [],
|
|
212
|
-
nativeTokenLimitPerTransaction: 0,
|
|
213
|
-
permissionStartTimestamp: 0,
|
|
214
|
-
permissionEndTimestamp: 0
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
function S(t) {
|
|
218
|
-
return {
|
|
219
|
-
domain: {
|
|
220
|
-
name: "Account",
|
|
221
|
-
version: "1",
|
|
222
|
-
chainId: t.chainId ?? e().id,
|
|
223
|
-
verifyingContract: t.managedAddress
|
|
224
|
-
},
|
|
225
|
-
types: h,
|
|
226
|
-
primaryType: "SignerPermissionRequest",
|
|
227
|
-
message: t.req
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
async function C(e) {
|
|
231
|
-
return s(e.adminSigner)(S({
|
|
232
|
-
managedAddress: e.managedAddress,
|
|
233
|
-
req: e.req,
|
|
234
|
-
chainId: e.chainId
|
|
235
|
-
}));
|
|
236
|
-
}
|
|
237
|
-
//#endregion
|
|
238
|
-
//#region src/helpers/modularAccount/encode.ts
|
|
239
|
-
function w(e) {
|
|
240
|
-
return {
|
|
241
|
-
to: e.managedAddress,
|
|
242
|
-
data: l({
|
|
243
|
-
abi: d,
|
|
244
|
-
functionName: "installModule",
|
|
245
|
-
args: [e.moduleContract, e.data ?? "0x"]
|
|
246
|
-
})
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
function T(e = n) {
|
|
250
|
-
return c([{ type: "address" }], [e]);
|
|
251
|
-
}
|
|
252
|
-
function E(e) {
|
|
253
|
-
return {
|
|
254
|
-
to: e.managedAddress,
|
|
255
|
-
data: l({
|
|
256
|
-
abi: p,
|
|
257
|
-
functionName: "setPermissionsForSigner",
|
|
258
|
-
args: [e.req, e.signature]
|
|
259
|
-
})
|
|
260
|
-
};
|
|
261
|
-
}
|
|
262
|
-
//#endregion
|
|
263
|
-
//#region src/helpers/modularAccount/reads.ts
|
|
264
|
-
async function D(e) {
|
|
265
|
-
return (await a().readContract({
|
|
266
|
-
address: e,
|
|
267
|
-
abi: f,
|
|
268
|
-
functionName: "getInstalledModules"
|
|
269
|
-
})).map((e) => ({ implementation: e.implementation }));
|
|
270
|
-
}
|
|
271
|
-
async function O(e, t) {
|
|
272
|
-
return await a().readContract({
|
|
273
|
-
address: e,
|
|
274
|
-
abi: m,
|
|
275
|
-
functionName: "getPermissionsForSigner",
|
|
276
|
-
args: [t]
|
|
277
|
-
});
|
|
278
|
-
}
|
|
279
|
-
function k(e, t) {
|
|
280
|
-
let n = t.trim().toLowerCase();
|
|
281
|
-
return e.some((e) => e.implementation?.toLowerCase() === n);
|
|
282
|
-
}
|
|
283
|
-
function A(e) {
|
|
284
|
-
let t = e.nowSeconds ?? Math.floor(Date.now() / 1e3);
|
|
285
|
-
if (e.current.endTimestamp && Number(e.current.endTimestamp) < t) return !0;
|
|
286
|
-
let n = e.current.approvedTargets.map((e) => e.toLowerCase());
|
|
287
|
-
return !e.approvedTargets.map((e) => e.toLowerCase()).every((e) => n.includes(e)) || e.nativeTokenLimitPerTransactionWei > e.current.nativeTokenLimitPerTransaction;
|
|
288
|
-
}
|
|
289
|
-
//#endregion
|
|
290
|
-
//#region src/helpers/modularAccount/ensureSessionKey.ts
|
|
291
|
-
var j = "Could not authorize the session key on your publishing account on Optimism Sepolia.", M = "Could not remove the session key from your publishing account on Optimism Sepolia.";
|
|
292
|
-
async function N(e) {
|
|
293
|
-
s(e.admin.signer);
|
|
294
|
-
let t = b({
|
|
295
|
-
sessionKeyAddress: e.sessionKeyAddress,
|
|
296
|
-
permissions: e.permissions
|
|
297
|
-
}), n = await C({
|
|
298
|
-
adminSigner: e.admin.signer,
|
|
299
|
-
managedAddress: e.managedAddress,
|
|
300
|
-
req: t
|
|
301
|
-
}), i = E({
|
|
302
|
-
managedAddress: e.managedAddress,
|
|
303
|
-
req: t,
|
|
304
|
-
signature: n
|
|
305
|
-
}), a = await e.admin.txSender.sendTransaction(i);
|
|
306
|
-
await r(a.transactionHash);
|
|
307
|
-
}
|
|
308
|
-
async function P(e) {
|
|
309
|
-
let n = e.managedAddress, r = e.sessionKeyAddress, a = e.activationFailedMessage ?? j, s = !0;
|
|
310
|
-
try {
|
|
311
|
-
if (await t(n)) {
|
|
312
|
-
let t = await O(n, r), i = e.permissions.nativeTokenLimitPerTransaction ?? 0;
|
|
313
|
-
s = A({
|
|
314
|
-
current: t,
|
|
315
|
-
approvedTargets: e.permissions.approvedTargets === "*" ? ["0x0000000000000000000000000000000000000000"] : e.permissions.approvedTargets,
|
|
316
|
-
nativeTokenLimitPerTransactionWei: u(String(i))
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
} catch (e) {
|
|
320
|
-
throw new o(a, "MODULAR_SIGNER_ACTIVATION_FAILED", n, e);
|
|
321
|
-
}
|
|
322
|
-
if (s) try {
|
|
323
|
-
await N({
|
|
324
|
-
admin: e.admin,
|
|
325
|
-
managedAddress: n,
|
|
326
|
-
sessionKeyAddress: r,
|
|
327
|
-
permissions: e.permissions
|
|
328
|
-
});
|
|
329
|
-
} catch (e) {
|
|
330
|
-
throw e instanceof o ? e : new o(a, "MODULAR_SIGNER_ACTIVATION_FAILED", n, e);
|
|
331
|
-
}
|
|
332
|
-
let c = !1;
|
|
333
|
-
try {
|
|
334
|
-
c = await i(n, r);
|
|
335
|
-
} catch (e) {
|
|
336
|
-
throw new o(a, "MODULAR_SIGNER_ACTIVATION_FAILED", n, e);
|
|
337
|
-
}
|
|
338
|
-
if (!c) throw new o(a, "MODULAR_SIGNER_ACTIVATION_FAILED", n);
|
|
339
|
-
}
|
|
340
|
-
async function F(e) {
|
|
341
|
-
let t = e.managedAddress, n = e.sessionKeyAddress;
|
|
342
|
-
try {
|
|
343
|
-
await N({
|
|
344
|
-
admin: e.admin,
|
|
345
|
-
managedAddress: t,
|
|
346
|
-
sessionKeyAddress: n,
|
|
347
|
-
permissions: x()
|
|
348
|
-
});
|
|
349
|
-
} catch (e) {
|
|
350
|
-
throw e instanceof o ? e : new o(M, "MODULAR_SIGNER_ACTIVATION_FAILED", t, e);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
async function I(e, n) {
|
|
354
|
-
try {
|
|
355
|
-
return await t(e) ? await i(e, n) : !1;
|
|
356
|
-
} catch (t) {
|
|
357
|
-
throw new o(j, "MODULAR_SIGNER_ACTIVATION_FAILED", e, t);
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
//#endregion
|
|
361
|
-
export { D as a, E as c, k as i, b as l, I as n, T as o, F as r, w as s, P as t, C as u };
|
|
362
|
-
|
|
363
|
-
//# sourceMappingURL=ensureSessionKey-D2Lq-56x.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureSessionKey-D2Lq-56x.js","names":[],"sources":["../src/helpers/modularAccount/abi.ts","../src/helpers/modularAccount/eip712.ts","../src/helpers/modularAccount/encode.ts","../src/helpers/modularAccount/reads.ts","../src/helpers/modularAccount/ensureSessionKey.ts"],"sourcesContent":["/**\n * In-repo ABIs for ModularCore + IAccountPermissions (Seed ManagedAccount).\n * Selectors match Thirdweb generated extensions; no thirdweb imports.\n */\n\nexport const modularCoreInstallModuleAbi = [\n {\n type: 'function',\n name: 'installModule',\n stateMutability: 'nonpayable',\n inputs: [\n { name: 'moduleContract', type: 'address' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [],\n },\n] as const\n\nexport const modularCoreGetInstalledModulesAbi = [\n {\n type: 'function',\n name: 'getInstalledModules',\n stateMutability: 'view',\n inputs: [],\n outputs: [\n {\n type: 'tuple[]',\n components: [\n { name: 'implementation', type: 'address' },\n {\n name: 'config',\n type: 'tuple',\n components: [\n { name: 'registerInstallationCallback', type: 'bool' },\n { name: 'requiredInterfaces', type: 'bytes4[]' },\n { name: 'supportedInterfaces', type: 'bytes4[]' },\n {\n name: 'callbackFunctions',\n type: 'tuple[]',\n components: [{ name: 'selector', type: 'bytes4' }],\n },\n {\n name: 'fallbackFunctions',\n type: 'tuple[]',\n components: [\n { name: 'selector', type: 'bytes4' },\n { name: 'permissionBits', type: 'uint256' },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n] as const\n\nexport const accountPermissionsSetPermissionsAbi = [\n {\n type: 'function',\n name: 'setPermissionsForSigner',\n stateMutability: 'nonpayable',\n inputs: [\n {\n name: 'req',\n type: 'tuple',\n components: [\n { name: 'signer', type: 'address' },\n { name: 'isAdmin', type: 'uint8' },\n { name: 'approvedTargets', type: 'address[]' },\n { name: 'nativeTokenLimitPerTransaction', type: 'uint256' },\n { name: 'permissionStartTimestamp', type: 'uint128' },\n { name: 'permissionEndTimestamp', type: 'uint128' },\n { name: 'reqValidityStartTimestamp', type: 'uint128' },\n { name: 'reqValidityEndTimestamp', type: 'uint128' },\n { name: 'uid', type: 'bytes32' },\n ],\n },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [],\n },\n] as const\n\nexport const accountPermissionsGetPermissionsAbi = [\n {\n type: 'function',\n name: 'getPermissionsForSigner',\n stateMutability: 'view',\n inputs: [{ name: 'signer', type: 'address' }],\n outputs: [\n {\n name: 'permissions',\n type: 'tuple',\n components: [\n { name: 'signer', type: 'address' },\n { name: 'approvedTargets', type: 'address[]' },\n { name: 'nativeTokenLimitPerTransaction', type: 'uint256' },\n { name: 'startTimestamp', type: 'uint128' },\n { name: 'endTimestamp', type: 'uint128' },\n ],\n },\n ],\n },\n] as const\n\n/** EIP-712 type fields for SignerPermissionRequest (Account domain). */\nexport const SIGNER_PERMISSION_REQUEST_TYPES = {\n SignerPermissionRequest: [\n { name: 'signer', type: 'address' },\n { name: 'isAdmin', type: 'uint8' },\n { name: 'approvedTargets', type: 'address[]' },\n { name: 'nativeTokenLimitPerTransaction', type: 'uint256' },\n { name: 'permissionStartTimestamp', type: 'uint128' },\n { name: 'permissionEndTimestamp', type: 'uint128' },\n { name: 'reqValidityStartTimestamp', type: 'uint128' },\n { name: 'reqValidityEndTimestamp', type: 'uint128' },\n { name: 'uid', type: 'bytes32' },\n ],\n} as const\n\nexport type SignerPermissionRequest = {\n signer: `0x${string}`\n isAdmin: number\n approvedTargets: readonly `0x${string}`[]\n nativeTokenLimitPerTransaction: bigint\n permissionStartTimestamp: bigint\n permissionEndTimestamp: bigint\n reqValidityStartTimestamp: bigint\n reqValidityEndTimestamp: bigint\n uid: `0x${string}`\n}\n","import { parseEther, type Address, type Hex, type TypedDataDefinition } from 'viem'\nimport { requireSignTypedData, type SeedSigner } from '../seedSigner'\nimport { getPublishViemChain } from '../chainConfig'\nimport {\n SIGNER_PERMISSION_REQUEST_TYPES,\n type SignerPermissionRequest,\n} from './abi'\nimport type { SessionKeyPermissions } from './permissions'\n\nconst ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' as const\n/** ~10 years in seconds from a reference “now” — matches Thirdweb `tenYearsFromNow` window. */\nconst TEN_YEARS_SECONDS = 10n * 365n * 24n * 60n * 60n\n\nfunction randomUid(): Hex {\n const bytes = new Uint8Array(32)\n crypto.getRandomValues(bytes)\n return `0x${Array.from(bytes, (b) => b.toString(16).padStart(2, '0')).join('')}` as Hex\n}\n\nfunction nowSeconds(): bigint {\n return BigInt(Math.floor(Date.now() / 1000))\n}\n\n/**\n * Build the on-chain `SignerPermissionRequest` tuple (same shape as Thirdweb `toContractPermissions`).\n */\nexport function buildSignerPermissionRequest(params: {\n sessionKeyAddress: Address\n permissions: SessionKeyPermissions\n /** Override uid (tests). */\n uid?: Hex\n}): SignerPermissionRequest {\n const { sessionKeyAddress, permissions } = params\n const start =\n permissions.permissionStartTimestamp != null\n ? BigInt(permissions.permissionStartTimestamp)\n : 0n\n const end =\n permissions.permissionEndTimestamp != null\n ? BigInt(permissions.permissionEndTimestamp)\n : nowSeconds() + TEN_YEARS_SECONDS\n const approvedTargets =\n permissions.approvedTargets === '*'\n ? ([ZERO_ADDRESS] as `0x${string}`[])\n : permissions.approvedTargets\n\n const ethLimit = permissions.nativeTokenLimitPerTransaction ?? 0\n return {\n signer: sessionKeyAddress,\n isAdmin: 0,\n approvedTargets,\n nativeTokenLimitPerTransaction: parseEther(String(ethLimit)),\n permissionStartTimestamp: start,\n permissionEndTimestamp: end,\n reqValidityStartTimestamp: 0n,\n reqValidityEndTimestamp: nowSeconds() + TEN_YEARS_SECONDS,\n uid: params.uid ?? randomUid(),\n }\n}\n\n/** Permissions that clear a session key (Thirdweb `removeSessionKey`). */\nexport function buildRemoveSessionKeyPermissions(): SessionKeyPermissions {\n return {\n approvedTargets: [],\n nativeTokenLimitPerTransaction: 0,\n permissionStartTimestamp: 0,\n permissionEndTimestamp: 0,\n }\n}\n\nexport function signerPermissionTypedData(params: {\n managedAddress: Address\n req: SignerPermissionRequest\n chainId?: number\n}): TypedDataDefinition {\n const chainId = params.chainId ?? getPublishViemChain().id\n return {\n domain: {\n name: 'Account',\n version: '1',\n chainId,\n verifyingContract: params.managedAddress,\n },\n types: SIGNER_PERMISSION_REQUEST_TYPES,\n primaryType: 'SignerPermissionRequest',\n message: params.req,\n }\n}\n\n/**\n * Admin-signs a SignerPermissionRequest for `setPermissionsForSigner`.\n */\nexport async function signSignerPermissionRequest(params: {\n adminSigner: SeedSigner\n managedAddress: Address\n req: SignerPermissionRequest\n chainId?: number\n}): Promise<Hex> {\n const signTypedData = requireSignTypedData(params.adminSigner)\n return signTypedData(\n signerPermissionTypedData({\n managedAddress: params.managedAddress,\n req: params.req,\n chainId: params.chainId,\n }),\n )\n}\n","import { encodeAbiParameters, encodeFunctionData, type Address, type Hex } from 'viem'\nimport type { SeedTxRequest } from '../seedSigner'\nimport {\n accountPermissionsSetPermissionsAbi,\n modularCoreInstallModuleAbi,\n type SignerPermissionRequest,\n} from './abi'\nimport { EAS_CONTRACT_ADDRESS } from '../constants'\n\nexport function encodeInstallModule(params: {\n managedAddress: Address\n moduleContract: Address\n data?: Hex\n}): SeedTxRequest {\n return {\n to: params.managedAddress,\n data: encodeFunctionData({\n abi: modularCoreInstallModuleAbi,\n functionName: 'installModule',\n args: [params.moduleContract, params.data ?? '0x'],\n }),\n }\n}\n\n/** Default module install data used by Seed executor: EAS address. */\nexport function encodeExecutorModuleInstallData(\n easAddress: Address = EAS_CONTRACT_ADDRESS as Address,\n): Hex {\n return encodeAbiParameters([{ type: 'address' }], [easAddress])\n}\n\nexport function encodeSetPermissionsForSigner(params: {\n managedAddress: Address\n req: SignerPermissionRequest\n signature: Hex\n}): SeedTxRequest {\n return {\n to: params.managedAddress,\n data: encodeFunctionData({\n abi: accountPermissionsSetPermissionsAbi,\n functionName: 'setPermissionsForSigner',\n args: [params.req, params.signature],\n }),\n }\n}\n","import type { Address } from 'viem'\nimport { getPublishPublicClient } from '../chainClient'\nimport { readIsActiveSigner } from '../contracts'\nimport {\n accountPermissionsGetPermissionsAbi,\n modularCoreGetInstalledModulesAbi,\n} from './abi'\n\nexport type InstalledModule = {\n implementation: Address\n}\n\nexport type OnChainSignerPermissions = {\n signer: Address\n approvedTargets: readonly Address[]\n nativeTokenLimitPerTransaction: bigint\n startTimestamp: bigint\n endTimestamp: bigint\n}\n\nexport { readIsActiveSigner }\n\nexport async function readInstalledModules(\n managedAddress: Address,\n): Promise<InstalledModule[]> {\n const result = await getPublishPublicClient().readContract({\n address: managedAddress,\n abi: modularCoreGetInstalledModulesAbi,\n functionName: 'getInstalledModules',\n })\n return (result as unknown as Array<{ implementation: Address }>).map((m) => ({\n implementation: m.implementation,\n }))\n}\n\nexport async function readPermissionsForSigner(\n managedAddress: Address,\n signer: Address,\n): Promise<OnChainSignerPermissions> {\n const result = await getPublishPublicClient().readContract({\n address: managedAddress,\n abi: accountPermissionsGetPermissionsAbi,\n functionName: 'getPermissionsForSigner',\n args: [signer],\n })\n return result as OnChainSignerPermissions\n}\n\nexport function isModuleInstalled(\n installed: InstalledModule[],\n moduleAddress: string,\n): boolean {\n const want = moduleAddress.trim().toLowerCase()\n return installed.some((m) => m.implementation?.toLowerCase() === want)\n}\n\n/**\n * Whether session-key permissions should be (re)written — mirrors Thirdweb `shouldUpdateSessionKey`.\n */\nexport function shouldUpdateSessionKeyPermissions(params: {\n current: OnChainSignerPermissions\n /** Desired approved targets (lowercased comparison). */\n approvedTargets: `0x${string}`[]\n /** Desired native limit in wei. */\n nativeTokenLimitPerTransactionWei: bigint\n nowSeconds?: number\n}): boolean {\n const now = params.nowSeconds ?? Math.floor(Date.now() / 1000)\n if (params.current.endTimestamp && Number(params.current.endTimestamp) < now) {\n return true\n }\n const currentTargets = params.current.approvedTargets.map((t) => t.toLowerCase())\n const newTargets = params.approvedTargets.map((t) => t.toLowerCase())\n const targetsCovered = newTargets.every((t) => currentTargets.includes(t))\n if (!targetsCovered) return true\n if (params.nativeTokenLimitPerTransactionWei > params.current.nativeTokenLimitPerTransaction) {\n return true\n }\n return false\n}\n","import { parseEther, type Address, type Hex } from 'viem'\nimport { ManagedAccountPublishError } from '../../errors'\nimport { isContractDeployed, waitForPublishReceipt } from '../chainClient'\nimport type { PublishWallet } from '../seedSigner'\nimport { requireSignTypedData } from '../seedSigner'\nimport {\n buildRemoveSessionKeyPermissions,\n buildSignerPermissionRequest,\n signSignerPermissionRequest,\n} from './eip712'\nimport { encodeSetPermissionsForSigner } from './encode'\nimport type { SessionKeyPermissions } from './permissions'\nimport {\n readIsActiveSigner,\n readPermissionsForSigner,\n shouldUpdateSessionKeyPermissions,\n} from './reads'\n\nconst MSG_ACTIVATION_FAILED =\n 'Could not authorize the session key on your publishing account on Optimism Sepolia.'\nconst MSG_REMOVAL_FAILED =\n 'Could not remove the session key from your publishing account on Optimism Sepolia.'\n\nasync function sendSetPermissions(params: {\n admin: PublishWallet\n managedAddress: Address\n sessionKeyAddress: Address\n permissions: SessionKeyPermissions\n}): Promise<void> {\n requireSignTypedData(params.admin.signer)\n const req = buildSignerPermissionRequest({\n sessionKeyAddress: params.sessionKeyAddress,\n permissions: params.permissions,\n })\n const signature = await signSignerPermissionRequest({\n adminSigner: params.admin.signer,\n managedAddress: params.managedAddress,\n req,\n })\n const tx = encodeSetPermissionsForSigner({\n managedAddress: params.managedAddress,\n req,\n signature: signature as Hex,\n })\n // Admin must submit as the ManagedAccount (UserOp or AA-sponsored path).\n const result = await params.admin.txSender.sendTransaction(tx)\n await waitForPublishReceipt(result.transactionHash)\n}\n\n/**\n * Ensures `sessionKeyAddress` has the given permissions on the ManagedAccount.\n * Admin `PublishWallet` must control the ManagedAccount (signTypedData + send as account).\n */\nexport async function ensureSessionKey(params: {\n managedAddress: string\n sessionKeyAddress: string\n permissions: SessionKeyPermissions\n admin: PublishWallet\n /** Error code / messages for ManagedAccountPublishError wrapping. */\n activationFailedMessage?: string\n}): Promise<void> {\n const managedAddress = params.managedAddress as Address\n const sessionKeyAddress = params.sessionKeyAddress as Address\n const msg = params.activationFailedMessage ?? MSG_ACTIVATION_FAILED\n\n let shouldUpdate = true\n try {\n if (await isContractDeployed(managedAddress)) {\n const current = await readPermissionsForSigner(managedAddress, sessionKeyAddress)\n const ethLimit = params.permissions.nativeTokenLimitPerTransaction ?? 0\n shouldUpdate = shouldUpdateSessionKeyPermissions({\n current,\n approvedTargets:\n params.permissions.approvedTargets === '*'\n ? (['0x0000000000000000000000000000000000000000'] as `0x${string}`[])\n : params.permissions.approvedTargets,\n nativeTokenLimitPerTransactionWei: parseEther(String(ethLimit)),\n })\n }\n } catch (cause) {\n throw new ManagedAccountPublishError(\n msg,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n\n if (shouldUpdate) {\n try {\n await sendSetPermissions({\n admin: params.admin,\n managedAddress,\n sessionKeyAddress,\n permissions: params.permissions,\n })\n } catch (cause) {\n if (cause instanceof ManagedAccountPublishError) throw cause\n throw new ManagedAccountPublishError(\n msg,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n }\n\n let active = false\n try {\n active = await readIsActiveSigner(managedAddress, sessionKeyAddress)\n } catch (cause) {\n throw new ManagedAccountPublishError(\n msg,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n\n if (!active) {\n throw new ManagedAccountPublishError(\n msg,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n )\n }\n}\n\nexport async function removeSessionKey(params: {\n managedAddress: string\n sessionKeyAddress: string\n admin: PublishWallet\n}): Promise<void> {\n const managedAddress = params.managedAddress as Address\n const sessionKeyAddress = params.sessionKeyAddress as Address\n try {\n await sendSetPermissions({\n admin: params.admin,\n managedAddress,\n sessionKeyAddress,\n permissions: buildRemoveSessionKeyPermissions(),\n })\n } catch (cause) {\n if (cause instanceof ManagedAccountPublishError) throw cause\n throw new ManagedAccountPublishError(\n MSG_REMOVAL_FAILED,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n}\n\n/**\n * True when `sessionKeyAddress` is an active signer on the ManagedAccount.\n * Returns `false` when undeployed. Throws on RPC/decode failures for deployed accounts.\n */\nexport async function isSessionKeyActive(\n managedAddress: string,\n sessionKeyAddress: string,\n): Promise<boolean> {\n try {\n if (!(await isContractDeployed(managedAddress))) {\n return false\n }\n return await readIsActiveSigner(\n managedAddress as Address,\n sessionKeyAddress as Address,\n )\n } catch (cause) {\n throw new ManagedAccountPublishError(\n MSG_ACTIVATION_FAILED,\n 'MODULAR_SIGNER_ACTIVATION_FAILED',\n managedAddress,\n cause,\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { g as e, h as t, nt as n, r, s as i } from "./config-qjpaJcBA.js";
|
|
2
|
-
import { r as a } from "./errors-Du3LNbJN.js";
|
|
3
|
-
import { A as o, R as s, h as c, k as l } from "./publishAuthorization-CSN2FsQk.js";
|
|
4
|
-
import { optimismSepolia as u } from "thirdweb/chains";
|
|
5
|
-
import { ethers as d } from "ethers";
|
|
6
|
-
//#region src/helpers/ensureSmartWalletThenPublish.ts
|
|
7
|
-
var f = /* @__PURE__ */ n({ ensureSmartWalletThenPublish: () => g }), p = "A connected wallet is required for publishing with the modular executor. Connect your wallet and try again.", m = "Could not connect the managed publishing account on Optimism Sepolia. Reconnect with the same sign-in method and try again.";
|
|
8
|
-
function h(n) {
|
|
9
|
-
if (n) return n instanceof d.Wallet ? n : t(n) ? n.signer : e(n) ? n : i(n).signer;
|
|
10
|
-
}
|
|
11
|
-
async function g(e, t, n, d) {
|
|
12
|
-
let f = r(), g = await n();
|
|
13
|
-
if (!g || !g.trim()) return { outcome: "no_address" };
|
|
14
|
-
if (f.useModularExecutor) {
|
|
15
|
-
let t = await o();
|
|
16
|
-
if (!t) return {
|
|
17
|
-
outcome: "managed_not_ready",
|
|
18
|
-
error: new a(p, "MANAGED_ACCOUNT_UNAVAILABLE")
|
|
19
|
-
};
|
|
20
|
-
let n;
|
|
21
|
-
try {
|
|
22
|
-
n = await l(u);
|
|
23
|
-
} catch (e) {
|
|
24
|
-
return {
|
|
25
|
-
outcome: "managed_not_ready",
|
|
26
|
-
error: new a(m, "MANAGED_ACCOUNT_UNAVAILABLE", void 0, e)
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
let r = i(t);
|
|
30
|
-
return c.createPublish(e, n, r, {
|
|
31
|
-
...d,
|
|
32
|
-
dataItemSigner: h(d?.dataItemSigner) ?? r.signer
|
|
33
|
-
}), { outcome: "started" };
|
|
34
|
-
}
|
|
35
|
-
let _ = await s(t ?? null);
|
|
36
|
-
if ("address" in _) {
|
|
37
|
-
let t = i(_.account);
|
|
38
|
-
return c.createPublish(e, _.address, t, {
|
|
39
|
-
...d,
|
|
40
|
-
dataItemSigner: h(d?.dataItemSigner) ?? t.signer
|
|
41
|
-
}), { outcome: "started" };
|
|
42
|
-
}
|
|
43
|
-
return { outcome: "needs_deploy" };
|
|
44
|
-
}
|
|
45
|
-
//#endregion
|
|
46
|
-
export { f as n, g as t };
|
|
47
|
-
|
|
48
|
-
//# sourceMappingURL=ensureSmartWalletThenPublish-BFPugsKJ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ensureSmartWalletThenPublish-BFPugsKJ.js","names":[],"sources":["../src/helpers/ensureSmartWalletThenPublish.ts"],"sourcesContent":["import type { Item } from '@seedprotocol/sdk'\nimport type { Account } from 'thirdweb/wallets'\nimport { optimismSepolia } from 'thirdweb/chains'\nimport {\n getConnectedManagedAccountAddress,\n getConnectedModularAccount,\n resolveSmartWalletForPublish,\n} from './thirdweb'\nimport { fromThirdwebAccount } from './adapters/thirdwebAccount'\nimport { isPublishWallet, isSeedSigner, type PublishWallet, type SeedSigner } from './seedSigner'\nimport { ethers } from 'ethers'\nimport { PublishManager } from '../services/publishManager'\nimport type { CreatePublishOptions } from '../config'\nimport { getPublishConfig } from '../config'\nimport { ManagedAccountPublishError } from '../errors'\n\nexport type EnsureSmartWalletResult =\n | { outcome: 'started' }\n | { outcome: 'no_address' }\n | { outcome: 'needs_deploy' }\n | { outcome: 'managed_not_ready'; error: ManagedAccountPublishError }\n\nconst MSG_NO_ACCOUNT_MODULAR =\n 'A connected wallet is required for publishing with the modular executor. Connect your wallet and try again.'\n\nconst MSG_MANAGED_UNAVAILABLE =\n 'Could not connect the managed publishing account on Optimism Sepolia. Reconnect with the same sign-in method and try again.'\n\nfunction coerceDataItemSigner(\n signer: CreatePublishOptions['dataItemSigner'] | Account | SeedSigner | PublishWallet | undefined,\n): CreatePublishOptions['dataItemSigner'] {\n if (!signer) return undefined\n if (signer instanceof ethers.Wallet) return signer\n if (isPublishWallet(signer)) return signer.signer\n if (isSeedSigner(signer)) return signer\n return fromThirdwebAccount(signer as Account).signer\n}\n\n/**\n * Thirdweb path: resolves the smart wallet for the current account; if deployed, starts publish.\n * Prefer {@link ensureWalletThenPublish} for vendor-neutral entry.\n */\nexport async function ensureSmartWalletThenPublish(\n item: Item<any>,\n activeAccount: Account | null | undefined,\n getAddress: () => Promise<string | null>,\n options?: CreatePublishOptions,\n): Promise<EnsureSmartWalletResult> {\n const config = getPublishConfig()\n const address = await getAddress()\n if (!address || !address.trim()) {\n return { outcome: 'no_address' }\n }\n\n if (config.useModularExecutor) {\n const modularAccount = await getConnectedModularAccount()\n if (!modularAccount) {\n return {\n outcome: 'managed_not_ready',\n error: new ManagedAccountPublishError(MSG_NO_ACCOUNT_MODULAR, 'MANAGED_ACCOUNT_UNAVAILABLE'),\n }\n }\n\n let managedAddress: string\n try {\n managedAddress = await getConnectedManagedAccountAddress(optimismSepolia)\n } catch (cause) {\n return {\n outcome: 'managed_not_ready',\n error: new ManagedAccountPublishError(\n MSG_MANAGED_UNAVAILABLE,\n 'MANAGED_ACCOUNT_UNAVAILABLE',\n undefined,\n cause,\n ),\n }\n }\n\n const wallet = fromThirdwebAccount(modularAccount)\n PublishManager.createPublish(item, managedAddress, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n return { outcome: 'started' }\n }\n\n const resolved = await resolveSmartWalletForPublish(activeAccount ?? null)\n if ('address' in resolved) {\n const wallet = fromThirdwebAccount(resolved.account)\n PublishManager.createPublish(item, resolved.address, wallet, {\n ...options,\n dataItemSigner: coerceDataItemSigner(options?.dataItemSigner) ?? wallet.signer,\n })\n return { outcome: 'started' }\n }\n return { outcome: 'needs_deploy' }\n}\n"],"mappings":";;;;;;sEAsBM,IACJ,+GAEI,IACJ;AAEF,SAAS,EACP,GACwC;CACnC,OAIL,OAHI,aAAkB,EAAO,SAAe,IACxC,EAAgB,CAAM,IAAU,EAAO,SACvC,EAAa,CAAM,IAAU,IAC1B,EAAoB,CAAiB,CAAC,CAAC;AAChD;AAMA,eAAsB,EACpB,GACA,GACA,GACA,GACkC;CAClC,IAAM,IAAS,EAAiB,GAC1B,IAAU,MAAM,EAAW;CACjC,IAAI,CAAC,KAAW,CAAC,EAAQ,KAAK,GAC5B,OAAO,EAAE,SAAS,aAAa;CAGjC,IAAI,EAAO,oBAAoB;EAC7B,IAAM,IAAiB,MAAM,EAA2B;EACxD,IAAI,CAAC,GACH,OAAO;GACL,SAAS;GACT,OAAO,IAAI,EAA2B,GAAwB,6BAA6B;EAC7F;EAGF,IAAI;EACJ,IAAI;GACF,IAAiB,MAAM,EAAkC,CAAe;EAC1E,SAAS,GAAO;GACd,OAAO;IACL,SAAS;IACT,OAAO,IAAI,EACT,GACA,+BACA,KAAA,GACA,CACF;GACF;EACF;EAEA,IAAM,IAAS,EAAoB,CAAc;EAKjD,OAJA,EAAe,cAAc,GAAM,GAAgB,GAAQ;GACzD,GAAG;GACH,gBAAgB,EAAqB,GAAS,cAAc,KAAK,EAAO;EAC1E,CAAC,GACM,EAAE,SAAS,UAAU;CAC9B;CAEA,IAAM,IAAW,MAAM,EAA6B,KAAiB,IAAI;CACzE,IAAI,aAAa,GAAU;EACzB,IAAM,IAAS,EAAoB,EAAS,OAAO;EAKnD,OAJA,EAAe,cAAc,GAAM,EAAS,SAAS,GAAQ;GAC3D,GAAG;GACH,gBAAgB,EAAqB,GAAS,cAAc,KAAK,EAAO;EAC1E,CAAC,GACM,EAAE,SAAS,UAAU;CAC9B;CACA,OAAO,EAAE,SAAS,eAAe;AACnC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
-
import { g as t, h as n, r, s as i } from "./config-EQZZNH9H.js";
|
|
3
|
-
import { r as a } from "./errors-Du3LNbJN.js";
|
|
4
|
-
import { L as o, O as s, h as c, k as l } from "./publishAuthorization-Bltn3y_K.js";
|
|
5
|
-
import { optimismSepolia as u } from "thirdweb/chains";
|
|
6
|
-
import { ethers as d } from "ethers";
|
|
7
|
-
//#region src/helpers/ensureSmartWalletThenPublish.ts
|
|
8
|
-
var f = /* @__PURE__ */ e({ ensureSmartWalletThenPublish: () => g }), p = "A connected wallet is required for publishing with the modular executor. Connect your wallet and try again.", m = "Could not connect the managed publishing account on Optimism Sepolia. Reconnect with the same sign-in method and try again.";
|
|
9
|
-
function h(e) {
|
|
10
|
-
if (e) return e instanceof d.Wallet ? e : n(e) ? e.signer : t(e) ? e : i(e).signer;
|
|
11
|
-
}
|
|
12
|
-
async function g(e, t, n, d) {
|
|
13
|
-
let f = r(), g = await n();
|
|
14
|
-
if (!g || !g.trim()) return { outcome: "no_address" };
|
|
15
|
-
if (f.useModularExecutor) {
|
|
16
|
-
let t = await l();
|
|
17
|
-
if (!t) return {
|
|
18
|
-
outcome: "managed_not_ready",
|
|
19
|
-
error: new a(p, "MANAGED_ACCOUNT_UNAVAILABLE")
|
|
20
|
-
};
|
|
21
|
-
let n;
|
|
22
|
-
try {
|
|
23
|
-
n = await s(u);
|
|
24
|
-
} catch (e) {
|
|
25
|
-
return {
|
|
26
|
-
outcome: "managed_not_ready",
|
|
27
|
-
error: new a(m, "MANAGED_ACCOUNT_UNAVAILABLE", void 0, e)
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
let r = i(t);
|
|
31
|
-
return c.createPublish(e, n, r, {
|
|
32
|
-
...d,
|
|
33
|
-
dataItemSigner: h(d?.dataItemSigner) ?? r.signer
|
|
34
|
-
}), { outcome: "started" };
|
|
35
|
-
}
|
|
36
|
-
let _ = await o(t ?? null);
|
|
37
|
-
if ("address" in _) {
|
|
38
|
-
let t = i(_.account);
|
|
39
|
-
return c.createPublish(e, _.address, t, {
|
|
40
|
-
...d,
|
|
41
|
-
dataItemSigner: h(d?.dataItemSigner) ?? t.signer
|
|
42
|
-
}), { outcome: "started" };
|
|
43
|
-
}
|
|
44
|
-
return { outcome: "needs_deploy" };
|
|
45
|
-
}
|
|
46
|
-
//#endregion
|
|
47
|
-
export { f as n, g as t };
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=ensureSmartWalletThenPublish-BSYzckyS.js.map
|