@crossmint/client-sdk-smart-wallet 0.1.25 → 0.1.27
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/dist/SmartWalletSDK.cjs +1 -34
- package/dist/SmartWalletSDK.js +1 -34
- package/dist/api/CrossmintWalletService.cjs +1 -13
- package/dist/api/CrossmintWalletService.js +1 -13
- package/dist/blockchain/chains.cjs +1 -23
- package/dist/blockchain/chains.js +1 -23
- package/dist/blockchain/rpc.cjs +1 -11
- package/dist/blockchain/rpc.js +1 -11
- package/dist/blockchain/transfer.cjs +1 -7
- package/dist/blockchain/transfer.js +1 -7
- package/dist/blockchain/wallets/EVMSmartWallet.cjs +1 -10
- package/dist/blockchain/wallets/EVMSmartWallet.js +1 -10
- package/dist/blockchain/wallets/SendTransactionService.cjs +1 -11
- package/dist/blockchain/wallets/SendTransactionService.js +1 -11
- package/dist/blockchain/wallets/account/cache.cjs +1 -9
- package/dist/blockchain/wallets/account/cache.js +1 -9
- package/dist/blockchain/wallets/account/config.cjs +1 -9
- package/dist/blockchain/wallets/account/config.js +1 -9
- package/dist/blockchain/wallets/account/creator.cjs +1 -10
- package/dist/blockchain/wallets/account/creator.js +1 -10
- package/dist/blockchain/wallets/account/eoa.cjs +1 -11
- package/dist/blockchain/wallets/account/eoa.js +1 -11
- package/dist/blockchain/wallets/account/passkey.cjs +1 -9
- package/dist/blockchain/wallets/account/passkey.js +1 -9
- package/dist/blockchain/wallets/account/signer.cjs +1 -9
- package/dist/blockchain/wallets/account/signer.js +1 -9
- package/dist/blockchain/wallets/account/strategy.cjs +1 -1
- package/dist/blockchain/wallets/account/strategy.js +0 -1
- package/dist/blockchain/wallets/clientDecorator.cjs +1 -12
- package/dist/blockchain/wallets/clientDecorator.js +1 -12
- package/dist/blockchain/wallets/index.cjs +1 -10
- package/dist/blockchain/wallets/index.js +1 -10
- package/dist/blockchain/wallets/paymaster.cjs +1 -10
- package/dist/blockchain/wallets/paymaster.js +1 -10
- package/dist/blockchain/wallets/service.cjs +1 -16
- package/dist/blockchain/wallets/service.js +1 -16
- package/dist/chunk-2GS5TXEY.cjs +1 -0
- package/dist/chunk-2R6HK64N.cjs +1 -0
- package/dist/chunk-37Z35KLW.js +1 -0
- package/dist/chunk-3F6P4HUZ.js +1 -0
- package/dist/chunk-477CDFQV.cjs +2 -0
- package/dist/chunk-4SPA557P.js +0 -0
- package/dist/chunk-7AVDZZGD.cjs +1 -0
- package/dist/chunk-7FXFOOQU.cjs +1 -0
- package/dist/chunk-7ZHZRXL3.js +1 -0
- package/dist/chunk-ATQ4WGCW.js +1 -0
- package/dist/chunk-BJZQA5VC.js +1 -0
- package/dist/chunk-C3VZY7VJ.js +1 -0
- package/dist/chunk-CTG3COAA.js +1 -0
- package/dist/chunk-CUTQYF3F.js +1 -0
- package/dist/chunk-D4NDUT36.js +1 -0
- package/dist/chunk-DIDKPOO2.cjs +1 -0
- package/dist/chunk-E7NKNM5Q.js +1 -0
- package/dist/chunk-ETVJGLNY.js +1 -0
- package/dist/chunk-FHNNZVNU.js +1 -0
- package/dist/chunk-FK3MXUWI.cjs +1 -0
- package/dist/chunk-GB35YMN4.cjs +1 -0
- package/dist/chunk-H4CMXNVK.js +1 -0
- package/dist/chunk-HOWPZ473.cjs +1 -0
- package/dist/chunk-HU3TDEOK.js +1 -0
- package/dist/chunk-IQTGPM2U.cjs +1 -0
- package/dist/chunk-ISHTP2PG.cjs +1 -0
- package/dist/chunk-JEXZW3AT.cjs +3 -0
- package/dist/chunk-JV3MVGL4.cjs +1 -0
- package/dist/chunk-K5Y733SB.cjs +1 -0
- package/dist/chunk-KO2GRVDS.cjs +1 -0
- package/dist/chunk-KYPTGHC6.cjs +1 -0
- package/dist/chunk-M4K3IZTT.cjs +1 -0
- package/dist/chunk-MAZ364WP.js +2 -0
- package/dist/chunk-N7F6XCX3.cjs +1 -0
- package/dist/chunk-NLGILHJS.js +1 -0
- package/dist/chunk-O2ACORII.cjs +1 -0
- package/dist/chunk-ODAUWGUU.cjs +1 -0
- package/dist/chunk-OKGPAMN7.cjs +1 -0
- package/dist/chunk-PZ6Q22YJ.js +1 -0
- package/dist/chunk-QZ57ITVM.js +3 -0
- package/dist/chunk-RNLZ2O47.cjs +1 -0
- package/dist/chunk-RXHSXN2G.js +1 -0
- package/dist/chunk-S2XBSAGM.js +1 -0
- package/dist/chunk-SCXFZMLR.cjs +1 -0
- package/dist/chunk-STH2LE35.cjs +1 -0
- package/dist/chunk-SWWOVT47.cjs +1 -0
- package/dist/chunk-TZG6MROQ.js +1 -0
- package/dist/chunk-UG47CBKR.js +1 -0
- package/dist/chunk-UOOBOW23.js +1 -0
- package/dist/chunk-UPURFW46.js +1 -0
- package/dist/chunk-UYJZJ52B.js +1 -0
- package/dist/chunk-WJ6XJMRD.cjs +1 -0
- package/dist/{chunk-5MG5CIEX.cjs → chunk-XJGFG3RT.cjs} +1 -13
- package/dist/chunk-XQ2K2K23.cjs +1 -0
- package/dist/chunk-YBHSEZMB.js +1 -0
- package/dist/chunk-YZMMLIRP.js +1 -0
- package/dist/error/index.cjs +1 -25
- package/dist/error/index.js +1 -25
- package/dist/error/processor.cjs +1 -9
- package/dist/error/processor.js +1 -9
- package/dist/index.cjs +1 -86
- package/dist/index.js +1 -86
- package/dist/services/index.cjs +1 -11
- package/dist/services/index.js +1 -11
- package/dist/services/logger.cjs +1 -10
- package/dist/services/logger.js +1 -10
- package/dist/types/internal.cjs +1 -18
- package/dist/types/internal.js +1 -18
- package/dist/types/params.cjs +1 -1
- package/dist/types/params.js +0 -1
- package/dist/types/schema.cjs +1 -16
- package/dist/types/schema.js +1 -16
- package/dist/types/service.cjs +1 -1
- package/dist/types/service.js +0 -1
- package/dist/types/token.cjs +1 -1
- package/dist/types/token.js +0 -1
- package/dist/utils/api.cjs +1 -9
- package/dist/utils/api.js +1 -9
- package/dist/utils/blockchain.cjs +1 -7
- package/dist/utils/blockchain.js +1 -7
- package/dist/utils/constants.cjs +1 -19
- package/dist/utils/constants.js +1 -19
- package/dist/utils/environment.cjs +1 -7
- package/dist/utils/environment.js +1 -7
- package/dist/utils/helpers.cjs +1 -9
- package/dist/utils/helpers.js +1 -9
- package/dist/utils/signer.cjs +1 -10
- package/dist/utils/signer.js +1 -10
- package/dist/utils/test.cjs +1 -27
- package/dist/utils/test.js +1 -27
- package/package.json +3 -4
- package/dist/SmartWalletSDK.cjs.map +0 -1
- package/dist/SmartWalletSDK.js.map +0 -1
- package/dist/api/CrossmintWalletService.cjs.map +0 -1
- package/dist/api/CrossmintWalletService.js.map +0 -1
- package/dist/blockchain/chains.cjs.map +0 -1
- package/dist/blockchain/chains.js.map +0 -1
- package/dist/blockchain/rpc.cjs.map +0 -1
- package/dist/blockchain/rpc.js.map +0 -1
- package/dist/blockchain/transfer.cjs.map +0 -1
- package/dist/blockchain/transfer.js.map +0 -1
- package/dist/blockchain/wallets/EVMSmartWallet.cjs.map +0 -1
- package/dist/blockchain/wallets/EVMSmartWallet.js.map +0 -1
- package/dist/blockchain/wallets/SendTransactionService.cjs.map +0 -1
- package/dist/blockchain/wallets/SendTransactionService.js.map +0 -1
- package/dist/blockchain/wallets/account/cache.cjs.map +0 -1
- package/dist/blockchain/wallets/account/cache.js.map +0 -1
- package/dist/blockchain/wallets/account/config.cjs.map +0 -1
- package/dist/blockchain/wallets/account/config.js.map +0 -1
- package/dist/blockchain/wallets/account/creator.cjs.map +0 -1
- package/dist/blockchain/wallets/account/creator.js.map +0 -1
- package/dist/blockchain/wallets/account/eoa.cjs.map +0 -1
- package/dist/blockchain/wallets/account/eoa.js.map +0 -1
- package/dist/blockchain/wallets/account/passkey.cjs.map +0 -1
- package/dist/blockchain/wallets/account/passkey.js.map +0 -1
- package/dist/blockchain/wallets/account/signer.cjs.map +0 -1
- package/dist/blockchain/wallets/account/signer.js.map +0 -1
- package/dist/blockchain/wallets/account/strategy.cjs.map +0 -1
- package/dist/blockchain/wallets/account/strategy.js.map +0 -1
- package/dist/blockchain/wallets/clientDecorator.cjs.map +0 -1
- package/dist/blockchain/wallets/clientDecorator.js.map +0 -1
- package/dist/blockchain/wallets/index.cjs.map +0 -1
- package/dist/blockchain/wallets/index.js.map +0 -1
- package/dist/blockchain/wallets/paymaster.cjs.map +0 -1
- package/dist/blockchain/wallets/paymaster.js.map +0 -1
- package/dist/blockchain/wallets/service.cjs.map +0 -1
- package/dist/blockchain/wallets/service.js.map +0 -1
- package/dist/chunk-22PW4SGD.cjs +0 -36
- package/dist/chunk-22PW4SGD.cjs.map +0 -1
- package/dist/chunk-2HB65Y7D.js +0 -79
- package/dist/chunk-2HB65Y7D.js.map +0 -1
- package/dist/chunk-3EQHAQXO.js +0 -112
- package/dist/chunk-3EQHAQXO.js.map +0 -1
- package/dist/chunk-3PVQ4P74.cjs +0 -66
- package/dist/chunk-3PVQ4P74.cjs.map +0 -1
- package/dist/chunk-3R6PW6HY.js +0 -30
- package/dist/chunk-3R6PW6HY.js.map +0 -1
- package/dist/chunk-5EJ2YW7L.cjs +0 -93
- package/dist/chunk-5EJ2YW7L.cjs.map +0 -1
- package/dist/chunk-5IZ57G5A.js +0 -123
- package/dist/chunk-5IZ57G5A.js.map +0 -1
- package/dist/chunk-5MG5CIEX.cjs.map +0 -1
- package/dist/chunk-5URMCCO6.js +0 -9
- package/dist/chunk-5URMCCO6.js.map +0 -1
- package/dist/chunk-5WVQ7J3E.cjs +0 -369
- package/dist/chunk-5WVQ7J3E.cjs.map +0 -1
- package/dist/chunk-6IJLWHUN.cjs +0 -44
- package/dist/chunk-6IJLWHUN.cjs.map +0 -1
- package/dist/chunk-6NJVFL2X.js +0 -60
- package/dist/chunk-6NJVFL2X.js.map +0 -1
- package/dist/chunk-6O7DYITB.js +0 -99
- package/dist/chunk-6O7DYITB.js.map +0 -1
- package/dist/chunk-6OFQWFH6.cjs +0 -22
- package/dist/chunk-6OFQWFH6.cjs.map +0 -1
- package/dist/chunk-77GT6B5L.cjs +0 -79
- package/dist/chunk-77GT6B5L.cjs.map +0 -1
- package/dist/chunk-7KAFEHUT.js +0 -36
- package/dist/chunk-7KAFEHUT.js.map +0 -1
- package/dist/chunk-7KTQNIAZ.cjs +0 -112
- package/dist/chunk-7KTQNIAZ.cjs.map +0 -1
- package/dist/chunk-ASIPMVRQ.js +0 -90
- package/dist/chunk-ASIPMVRQ.js.map +0 -1
- package/dist/chunk-BARW756O.js +0 -27
- package/dist/chunk-BARW756O.js.map +0 -1
- package/dist/chunk-BXSAJOIV.cjs +0 -90
- package/dist/chunk-BXSAJOIV.cjs.map +0 -1
- package/dist/chunk-DMTDBTI6.js +0 -39
- package/dist/chunk-DMTDBTI6.js.map +0 -1
- package/dist/chunk-DTEA33DF.cjs +0 -59
- package/dist/chunk-DTEA33DF.cjs.map +0 -1
- package/dist/chunk-DYO4HODM.cjs +0 -36
- package/dist/chunk-DYO4HODM.cjs.map +0 -1
- package/dist/chunk-E44QR6BR.js +0 -41
- package/dist/chunk-E44QR6BR.js.map +0 -1
- package/dist/chunk-EP2KTXWN.cjs +0 -39
- package/dist/chunk-EP2KTXWN.cjs.map +0 -1
- package/dist/chunk-EPEGJY6N.cjs +0 -9
- package/dist/chunk-EPEGJY6N.cjs.map +0 -1
- package/dist/chunk-EQSMHR77.js +0 -30
- package/dist/chunk-EQSMHR77.js.map +0 -1
- package/dist/chunk-FSIMJYXR.js +0 -36
- package/dist/chunk-FSIMJYXR.js.map +0 -1
- package/dist/chunk-FVEUQ5LF.js +0 -14
- package/dist/chunk-FVEUQ5LF.js.map +0 -1
- package/dist/chunk-FXGOVLZW.cjs +0 -9
- package/dist/chunk-FXGOVLZW.cjs.map +0 -1
- package/dist/chunk-IHXCFM4Q.js +0 -22
- package/dist/chunk-IHXCFM4Q.js.map +0 -1
- package/dist/chunk-JOB7STIS.js +0 -9
- package/dist/chunk-JOB7STIS.js.map +0 -1
- package/dist/chunk-KHROQTVY.js +0 -1
- package/dist/chunk-KHROQTVY.js.map +0 -1
- package/dist/chunk-L5OEF7W3.cjs +0 -14
- package/dist/chunk-L5OEF7W3.cjs.map +0 -1
- package/dist/chunk-LGDLTGAS.js +0 -66
- package/dist/chunk-LGDLTGAS.js.map +0 -1
- package/dist/chunk-MGDAIRKC.cjs +0 -82
- package/dist/chunk-MGDAIRKC.cjs.map +0 -1
- package/dist/chunk-MPF4K2EV.cjs +0 -123
- package/dist/chunk-MPF4K2EV.cjs.map +0 -1
- package/dist/chunk-N6DG5EZG.cjs +0 -156
- package/dist/chunk-N6DG5EZG.cjs.map +0 -1
- package/dist/chunk-O6IFYHDP.cjs +0 -36
- package/dist/chunk-O6IFYHDP.cjs.map +0 -1
- package/dist/chunk-OGA3YDWS.cjs +0 -112
- package/dist/chunk-OGA3YDWS.cjs.map +0 -1
- package/dist/chunk-ON4DOYVD.js +0 -369
- package/dist/chunk-ON4DOYVD.js.map +0 -1
- package/dist/chunk-PVFA6PBX.cjs +0 -60
- package/dist/chunk-PVFA6PBX.cjs.map +0 -1
- package/dist/chunk-QHCELEYE.cjs +0 -99
- package/dist/chunk-QHCELEYE.cjs.map +0 -1
- package/dist/chunk-QIXYNYYS.js +0 -82
- package/dist/chunk-QIXYNYYS.js.map +0 -1
- package/dist/chunk-QJ3BSVGV.js +0 -36
- package/dist/chunk-QJ3BSVGV.js.map +0 -1
- package/dist/chunk-QZRRIK7N.cjs +0 -41
- package/dist/chunk-QZRRIK7N.cjs.map +0 -1
- package/dist/chunk-S5RL5PJD.js +0 -44
- package/dist/chunk-S5RL5PJD.js.map +0 -1
- package/dist/chunk-SLF7WWDT.js +0 -93
- package/dist/chunk-SLF7WWDT.js.map +0 -1
- package/dist/chunk-SMDX2MXU.js +0 -13
- package/dist/chunk-SMDX2MXU.js.map +0 -1
- package/dist/chunk-TDJDKTRS.js +0 -156
- package/dist/chunk-TDJDKTRS.js.map +0 -1
- package/dist/chunk-U4OBHCIP.js +0 -59
- package/dist/chunk-U4OBHCIP.js.map +0 -1
- package/dist/chunk-UQKE6R5W.cjs +0 -27
- package/dist/chunk-UQKE6R5W.cjs.map +0 -1
- package/dist/chunk-UZGHOTKZ.js +0 -112
- package/dist/chunk-UZGHOTKZ.js.map +0 -1
- package/dist/chunk-YWCXHOSD.cjs +0 -30
- package/dist/chunk-YWCXHOSD.cjs.map +0 -1
- package/dist/chunk-ZN42AA2G.cjs +0 -1
- package/dist/chunk-ZN42AA2G.cjs.map +0 -1
- package/dist/chunk-ZOXKITU4.cjs +0 -30
- package/dist/chunk-ZOXKITU4.cjs.map +0 -1
- package/dist/error/index.cjs.map +0 -1
- package/dist/error/index.js.map +0 -1
- package/dist/error/processor.cjs.map +0 -1
- package/dist/error/processor.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/services/index.cjs.map +0 -1
- package/dist/services/index.js.map +0 -1
- package/dist/services/logger.cjs.map +0 -1
- package/dist/services/logger.js.map +0 -1
- package/dist/types/internal.cjs.map +0 -1
- package/dist/types/internal.js.map +0 -1
- package/dist/types/params.cjs.map +0 -1
- package/dist/types/params.js.map +0 -1
- package/dist/types/schema.cjs.map +0 -1
- package/dist/types/schema.js.map +0 -1
- package/dist/types/service.cjs.map +0 -1
- package/dist/types/service.js.map +0 -1
- package/dist/types/token.cjs.map +0 -1
- package/dist/types/token.js.map +0 -1
- package/dist/utils/api.cjs.map +0 -1
- package/dist/utils/api.js.map +0 -1
- package/dist/utils/blockchain.cjs.map +0 -1
- package/dist/utils/blockchain.js.map +0 -1
- package/dist/utils/constants.cjs.map +0 -1
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/environment.cjs.map +0 -1
- package/dist/utils/environment.js.map +0 -1
- package/dist/utils/helpers.cjs.map +0 -1
- package/dist/utils/helpers.js.map +0 -1
- package/dist/utils/signer.cjs.map +0 -1
- package/dist/utils/signer.js.map +0 -1
- package/dist/utils/test.cjs.map +0 -1
- package/dist/utils/test.js.map +0 -1
- package/src/ABI/ERC1155.json +0 -325
- package/src/ABI/ERC20.json +0 -222
- package/src/ABI/ERC721.json +0 -320
- package/src/SmartWalletSDK.test.ts +0 -31
- package/src/SmartWalletSDK.ts +0 -104
- package/src/api/CrossmintWalletService.test.ts +0 -43
- package/src/api/CrossmintWalletService.ts +0 -84
- package/src/blockchain/chains.ts +0 -57
- package/src/blockchain/rpc.ts +0 -25
- package/src/blockchain/transfer.ts +0 -54
- package/src/blockchain/wallets/EVMSmartWallet.ts +0 -157
- package/src/blockchain/wallets/SendTransactionService.test.ts +0 -159
- package/src/blockchain/wallets/SendTransactionService.ts +0 -188
- package/src/blockchain/wallets/account/cache.test.ts +0 -67
- package/src/blockchain/wallets/account/cache.ts +0 -43
- package/src/blockchain/wallets/account/config.test.ts +0 -103
- package/src/blockchain/wallets/account/config.ts +0 -116
- package/src/blockchain/wallets/account/creator.ts +0 -40
- package/src/blockchain/wallets/account/eoa.ts +0 -51
- package/src/blockchain/wallets/account/passkey.ts +0 -198
- package/src/blockchain/wallets/account/signer.ts +0 -44
- package/src/blockchain/wallets/account/strategy.ts +0 -5
- package/src/blockchain/wallets/clientDecorator.ts +0 -128
- package/src/blockchain/wallets/index.ts +0 -1
- package/src/blockchain/wallets/paymaster.ts +0 -41
- package/src/blockchain/wallets/service.ts +0 -107
- package/src/error/index.ts +0 -100
- package/src/error/processor.ts +0 -36
- package/src/index.ts +0 -47
- package/src/services/index.ts +0 -1
- package/src/services/logger.ts +0 -6
- package/src/types/internal.ts +0 -76
- package/src/types/params.ts +0 -34
- package/src/types/schema.ts +0 -63
- package/src/types/service.ts +0 -31
- package/src/types/token.ts +0 -29
- package/src/utils/api.ts +0 -39
- package/src/utils/blockchain.ts +0 -5
- package/src/utils/constants.ts +0 -9
- package/src/utils/environment.ts +0 -3
- package/src/utils/helpers.ts +0 -7
- package/src/utils/signer.ts +0 -33
- package/src/utils/test.ts +0 -24
package/dist/chunk-QJ3BSVGV.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
usesGelatoBundler
|
|
3
|
-
} from "./chunk-JOB7STIS.js";
|
|
4
|
-
|
|
5
|
-
// src/blockchain/wallets/paymaster.ts
|
|
6
|
-
function usePaymaster(chain) {
|
|
7
|
-
return !usesGelatoBundler(chain);
|
|
8
|
-
}
|
|
9
|
-
function paymasterMiddleware({
|
|
10
|
-
bundlerClient,
|
|
11
|
-
entryPoint,
|
|
12
|
-
chain,
|
|
13
|
-
walletService,
|
|
14
|
-
user
|
|
15
|
-
}) {
|
|
16
|
-
return {
|
|
17
|
-
middleware: {
|
|
18
|
-
gasPrice: async () => (await bundlerClient.getUserOperationGasPrice()).fast,
|
|
19
|
-
sponsorUserOperation: async ({ userOperation }) => {
|
|
20
|
-
const { sponsorUserOpParams } = await walletService.sponsorUserOperation(
|
|
21
|
-
user,
|
|
22
|
-
userOperation,
|
|
23
|
-
entryPoint,
|
|
24
|
-
chain
|
|
25
|
-
);
|
|
26
|
-
return sponsorUserOpParams;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export {
|
|
33
|
-
usePaymaster,
|
|
34
|
-
paymasterMiddleware
|
|
35
|
-
};
|
|
36
|
-
//# sourceMappingURL=chunk-QJ3BSVGV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/wallets/paymaster.ts"],"sourcesContent":["import type { CrossmintWalletService } from \"@/api/CrossmintWalletService\";\nimport type { Middleware } from \"permissionless/actions/smartAccount\";\nimport type { PimlicoBundlerClient } from \"permissionless/clients/pimlico\";\nimport type { EntryPoint } from \"permissionless/types/entrypoint\";\n\nimport type { UserParams } from \"../../types/params\";\nimport { usesGelatoBundler } from \"../../utils/blockchain\";\nimport type { SmartWalletChain } from \"../chains\";\n\nexport function usePaymaster(chain: SmartWalletChain) {\n return !usesGelatoBundler(chain);\n}\n\nexport function paymasterMiddleware({\n bundlerClient,\n entryPoint,\n chain,\n walletService,\n user,\n}: {\n bundlerClient: PimlicoBundlerClient<EntryPoint>;\n entryPoint: EntryPoint;\n chain: SmartWalletChain;\n walletService: CrossmintWalletService;\n user: UserParams;\n}): Middleware<EntryPoint> {\n return {\n middleware: {\n gasPrice: async () => (await bundlerClient.getUserOperationGasPrice()).fast,\n sponsorUserOperation: async ({ userOperation }) => {\n const { sponsorUserOpParams } = await walletService.sponsorUserOperation(\n user,\n userOperation,\n entryPoint,\n chain\n );\n return sponsorUserOpParams;\n },\n },\n };\n}\n"],"mappings":";;;;;AASO,SAAS,aAAa,OAAyB;AAClD,SAAO,CAAC,kBAAkB,KAAK;AACnC;AAEO,SAAS,oBAAoB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAM2B;AACvB,SAAO;AAAA,IACH,YAAY;AAAA,MACR,UAAU,aAAa,MAAM,cAAc,yBAAyB,GAAG;AAAA,MACvE,sBAAsB,OAAO,EAAE,cAAc,MAAM;AAC/C,cAAM,EAAE,oBAAoB,IAAI,MAAM,cAAc;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AACJ;","names":[]}
|
package/dist/chunk-QZRRIK7N.cjs
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var _chunk22PW4SGDcjs = require('./chunk-22PW4SGD.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _chunkBXSAJOIVcjs = require('./chunk-BXSAJOIV.cjs');
|
|
10
|
-
|
|
11
|
-
// src/blockchain/wallets/account/creator.ts
|
|
12
|
-
var AccountCreator = class {
|
|
13
|
-
constructor(eoaStrategy, passkeyStrategy) {
|
|
14
|
-
this.eoaStrategy = eoaStrategy;
|
|
15
|
-
this.passkeyStrategy = passkeyStrategy;
|
|
16
|
-
}
|
|
17
|
-
get(context) {
|
|
18
|
-
if (_chunk22PW4SGDcjs.isPasskeyCreationContext.call(void 0, context)) {
|
|
19
|
-
return this.passkeyStrategy.create(context);
|
|
20
|
-
}
|
|
21
|
-
if (_chunk22PW4SGDcjs.isEOACreationContext.call(void 0, context)) {
|
|
22
|
-
return this.eoaStrategy.create(context);
|
|
23
|
-
}
|
|
24
|
-
if (context.existing == null) {
|
|
25
|
-
throw new (0, _chunkBXSAJOIVcjs.ConfigError)(`Unsupported wallet params:
|
|
26
|
-
${context.walletParams}`);
|
|
27
|
-
}
|
|
28
|
-
const display = context.existing.signerConfig.display();
|
|
29
|
-
const inputSignerType = _chunk22PW4SGDcjs.isPasskeyWalletParams.call(void 0, context.walletParams) ? "passkey" : "eoa";
|
|
30
|
-
throw new (0, _chunkBXSAJOIVcjs.AdminMismatchError)(
|
|
31
|
-
`Cannot create wallet with ${inputSignerType} signer for user ${context.user.id}', they already have a wallet with signer:
|
|
32
|
-
'${JSON.stringify(display, null, 2)}'`,
|
|
33
|
-
display
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
exports.AccountCreator = AccountCreator;
|
|
41
|
-
//# sourceMappingURL=chunk-QZRRIK7N.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/wallets/account/creator.ts"],"names":[],"mappings":";;;;;;;;;;;AAWO,IAAM,iBAAN,MAAqB;AAAA,EACxB,YACqB,aACA,iBACnB;AAFmB;AACA;AAAA,EAClB;AAAA,EAEI,IAAI,SAA2D;AAClE,QAAI,yBAAyB,OAAO,GAAG;AACnC,aAAO,KAAK,gBAAgB,OAAO,OAAO;AAAA,IAC9C;AAEA,QAAI,qBAAqB,OAAO,GAAG;AAC/B,aAAO,KAAK,YAAY,OAAO,OAAO;AAAA,IAC1C;AAEA,QAAI,QAAQ,YAAY,MAAM;AAC1B,YAAM,IAAI,YAAY;AAAA,EAA+B,QAAQ,YAAY,EAAE;AAAA,IAC/E;AAEA,UAAM,UAAU,QAAQ,SAAS,aAAa,QAAQ;AACtD,UAAM,kBAAkB,sBAAsB,QAAQ,YAAY,IAAI,YAAY;AAClF,UAAM,IAAI;AAAA,MACN,6BAA6B,eAAe,oBACxC,QAAQ,KAAK,EACjB;AAAA,GAAgD,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,MAChF;AAAA,IACJ;AAAA,EACJ;AACJ","sourcesContent":["import { AdminMismatchError, ConfigError } from \"../../../error\";\nimport {\n type AccountAndSigner,\n type WalletCreationContext,\n isEOACreationContext,\n isPasskeyCreationContext,\n isPasskeyWalletParams,\n} from \"../../../types/internal\";\nimport type { EOACreationStrategy } from \"./eoa\";\nimport type { PasskeyCreationStrategy } from \"./passkey\";\n\nexport class AccountCreator {\n constructor(\n private readonly eoaStrategy: EOACreationStrategy,\n private readonly passkeyStrategy: PasskeyCreationStrategy\n ) {}\n\n public get(context: WalletCreationContext): Promise<AccountAndSigner> {\n if (isPasskeyCreationContext(context)) {\n return this.passkeyStrategy.create(context);\n }\n\n if (isEOACreationContext(context)) {\n return this.eoaStrategy.create(context);\n }\n\n if (context.existing == null) {\n throw new ConfigError(`Unsupported wallet params:\\n${context.walletParams}`);\n }\n\n const display = context.existing.signerConfig.display();\n const inputSignerType = isPasskeyWalletParams(context.walletParams) ? \"passkey\" : \"eoa\";\n throw new AdminMismatchError(\n `Cannot create wallet with ${inputSignerType} signer for user ${\n context.user.id\n }', they already have a wallet with signer:\\n'${JSON.stringify(display, null, 2)}'`,\n display\n );\n }\n}\n"]}
|
package/dist/chunk-S5RL5PJD.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SmartWalletConfigSchema
|
|
3
|
-
} from "./chunk-LGDLTGAS.js";
|
|
4
|
-
|
|
5
|
-
// src/blockchain/wallets/account/cache.ts
|
|
6
|
-
import { keccak256, toHex } from "viem";
|
|
7
|
-
var AccountConfigCache = class {
|
|
8
|
-
constructor(keyPrefix) {
|
|
9
|
-
this.keyPrefix = keyPrefix;
|
|
10
|
-
}
|
|
11
|
-
set(user, config) {
|
|
12
|
-
localStorage.setItem(this.key(user), JSON.stringify(config));
|
|
13
|
-
}
|
|
14
|
-
get(user) {
|
|
15
|
-
const key = this.key(user);
|
|
16
|
-
const data = localStorage.getItem(key);
|
|
17
|
-
if (data == null) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
const result = SmartWalletConfigSchema.safeParse(JSON.parse(data));
|
|
21
|
-
if (!result.success) {
|
|
22
|
-
localStorage.removeItem(key);
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return result.data;
|
|
26
|
-
}
|
|
27
|
-
clear() {
|
|
28
|
-
for (let i = 0; i < localStorage.length; i++) {
|
|
29
|
-
const key = localStorage.key(i);
|
|
30
|
-
if (key && key.startsWith(this.keyPrefix)) {
|
|
31
|
-
localStorage.removeItem(key);
|
|
32
|
-
i--;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
key(user) {
|
|
37
|
-
return `${this.keyPrefix}-${keccak256(toHex(user.jwt))}`;
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export {
|
|
42
|
-
AccountConfigCache
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=chunk-S5RL5PJD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/wallets/account/cache.ts"],"sourcesContent":["import { keccak256, toHex } from \"viem\";\n\nimport type { UserParams } from \"../../../types/params\";\nimport { SmartWalletConfigSchema } from \"../../../types/schema\";\nimport type { SmartWalletConfig } from \"../../../types/service\";\n\nexport class AccountConfigCache {\n constructor(private readonly keyPrefix: string) {}\n\n public set(user: UserParams, config: SmartWalletConfig) {\n localStorage.setItem(this.key(user), JSON.stringify(config));\n }\n\n public get(user: UserParams): SmartWalletConfig | null {\n const key = this.key(user);\n const data = localStorage.getItem(key);\n if (data == null) {\n return null;\n }\n\n const result = SmartWalletConfigSchema.safeParse(JSON.parse(data));\n if (!result.success) {\n localStorage.removeItem(key);\n return null;\n }\n\n return result.data;\n }\n\n public clear() {\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(this.keyPrefix)) {\n localStorage.removeItem(key);\n i--; // Decrement i since we've removed an item\n }\n }\n }\n\n private key(user: UserParams) {\n return `${this.keyPrefix}-${keccak256(toHex(user.jwt))}`;\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,WAAW,aAAa;AAM1B,IAAM,qBAAN,MAAyB;AAAA,EAC5B,YAA6B,WAAmB;AAAnB;AAAA,EAAoB;AAAA,EAE1C,IAAI,MAAkB,QAA2B;AACpD,iBAAa,QAAQ,KAAK,IAAI,IAAI,GAAG,KAAK,UAAU,MAAM,CAAC;AAAA,EAC/D;AAAA,EAEO,IAAI,MAA4C;AACnD,UAAM,MAAM,KAAK,IAAI,IAAI;AACzB,UAAM,OAAO,aAAa,QAAQ,GAAG;AACrC,QAAI,QAAQ,MAAM;AACd,aAAO;AAAA,IACX;AAEA,UAAM,SAAS,wBAAwB,UAAU,KAAK,MAAM,IAAI,CAAC;AACjE,QAAI,CAAC,OAAO,SAAS;AACjB,mBAAa,WAAW,GAAG;AAC3B,aAAO;AAAA,IACX;AAEA,WAAO,OAAO;AAAA,EAClB;AAAA,EAEO,QAAQ;AACX,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC1C,YAAM,MAAM,aAAa,IAAI,CAAC;AAC9B,UAAI,OAAO,IAAI,WAAW,KAAK,SAAS,GAAG;AACvC,qBAAa,WAAW,GAAG;AAC3B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,IAAI,MAAkB;AAC1B,WAAO,GAAG,KAAK,SAAS,IAAI,UAAU,MAAM,KAAK,GAAG,CAAC,CAAC;AAAA,EAC1D;AACJ;","names":[]}
|
package/dist/chunk-SLF7WWDT.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
usesGelatoBundler
|
|
3
|
-
} from "./chunk-JOB7STIS.js";
|
|
4
|
-
import {
|
|
5
|
-
scwLogger
|
|
6
|
-
} from "./chunk-FVEUQ5LF.js";
|
|
7
|
-
import {
|
|
8
|
-
SmartWalletError
|
|
9
|
-
} from "./chunk-ASIPMVRQ.js";
|
|
10
|
-
|
|
11
|
-
// src/blockchain/wallets/clientDecorator.ts
|
|
12
|
-
import { stringify } from "viem";
|
|
13
|
-
var transactionMethods = [
|
|
14
|
-
"sendTransaction",
|
|
15
|
-
"writeContract",
|
|
16
|
-
"sendUserOperation"
|
|
17
|
-
];
|
|
18
|
-
var signingMethods = [
|
|
19
|
-
"signMessage",
|
|
20
|
-
"signTypedData"
|
|
21
|
-
];
|
|
22
|
-
function isTxnMethod(method) {
|
|
23
|
-
return transactionMethods.includes(method);
|
|
24
|
-
}
|
|
25
|
-
function isSignMethod(method) {
|
|
26
|
-
return signingMethods.includes(method);
|
|
27
|
-
}
|
|
28
|
-
var ClientDecorator = class {
|
|
29
|
-
constructor(errorProcessor, logger = scwLogger) {
|
|
30
|
-
this.errorProcessor = errorProcessor;
|
|
31
|
-
this.logger = logger;
|
|
32
|
-
}
|
|
33
|
-
decorate({
|
|
34
|
-
crossmintChain,
|
|
35
|
-
smartAccountClient
|
|
36
|
-
}) {
|
|
37
|
-
return new Proxy(smartAccountClient, {
|
|
38
|
-
get: (target, prop, receiver) => {
|
|
39
|
-
const originalMethod = Reflect.get(target, prop, receiver);
|
|
40
|
-
if (typeof originalMethod !== "function" || typeof prop !== "string" || !(isSignMethod(prop) || isTxnMethod(prop))) {
|
|
41
|
-
return originalMethod;
|
|
42
|
-
}
|
|
43
|
-
return (...args) => this.logger.logPerformance(
|
|
44
|
-
`CrossmintSmartWallet.${prop}`,
|
|
45
|
-
() => this.execute(target, prop, originalMethod, args, crossmintChain)
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
async execute(target, prop, originalMethod, args, crossmintChain) {
|
|
51
|
-
try {
|
|
52
|
-
this.logger.log(`[CrossmintSmartWallet.${prop}] - params: ${stringify(args)}`);
|
|
53
|
-
const processed = isTxnMethod(prop) ? this.processTxnArgs(prop, crossmintChain, args) : args;
|
|
54
|
-
return await originalMethod.call(target, ...processed);
|
|
55
|
-
} catch (error) {
|
|
56
|
-
const description = isTxnMethod(prop) ? "signing" : "sending transaction";
|
|
57
|
-
throw this.errorProcessor.map(
|
|
58
|
-
error,
|
|
59
|
-
new SmartWalletError(`Error ${description}: ${error.message}`, stringify(error))
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
processTxnArgs(prop, crossmintChain, args) {
|
|
64
|
-
if (prop === "sendUserOperation") {
|
|
65
|
-
const [{ userOperation, middleware, account }] = args;
|
|
66
|
-
return [
|
|
67
|
-
{
|
|
68
|
-
middleware,
|
|
69
|
-
account,
|
|
70
|
-
userOperation: this.addGelatoBundlerProperties(crossmintChain, userOperation)
|
|
71
|
-
},
|
|
72
|
-
...args.slice(1)
|
|
73
|
-
];
|
|
74
|
-
}
|
|
75
|
-
const [txn] = args;
|
|
76
|
-
return [this.addGelatoBundlerProperties(crossmintChain, txn), ...args.slice(1)];
|
|
77
|
-
}
|
|
78
|
-
/*
|
|
79
|
-
* Chain that ZD uses Gelato as for bundler require special parameters:
|
|
80
|
-
* https://docs.zerodev.app/sdk/faqs/use-with-gelato#transaction-configuration
|
|
81
|
-
*/
|
|
82
|
-
addGelatoBundlerProperties(crossmintChain, txnParams) {
|
|
83
|
-
if (usesGelatoBundler(crossmintChain)) {
|
|
84
|
-
return { ...txnParams, maxFeePerGas: "0x0", maxPriorityFeePerGas: "0x0" };
|
|
85
|
-
}
|
|
86
|
-
return txnParams;
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
export {
|
|
91
|
-
ClientDecorator
|
|
92
|
-
};
|
|
93
|
-
//# sourceMappingURL=chunk-SLF7WWDT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/wallets/clientDecorator.ts"],"sourcesContent":["import type { SmartAccountClient } from \"permissionless\";\nimport type { EntryPoint } from \"permissionless/types/entrypoint\";\nimport { stringify } from \"viem\";\n\nimport { SmartWalletError } from \"../../error\";\nimport type { ErrorProcessor } from \"../../error/processor\";\nimport { scwLogger } from \"../../services\";\nimport { usesGelatoBundler } from \"../../utils/blockchain\";\nimport type { SmartWalletChain } from \"../chains\";\n\nconst transactionMethods = [\n \"sendTransaction\",\n \"writeContract\",\n \"sendUserOperation\",\n] as const satisfies readonly (keyof SmartAccountClient<EntryPoint>)[];\n\nconst signingMethods = [\n \"signMessage\",\n \"signTypedData\",\n] as const satisfies readonly (keyof SmartAccountClient<EntryPoint>)[];\n\ntype TxnMethod = (typeof transactionMethods)[number];\ntype SignMethod = (typeof signingMethods)[number];\n\nfunction isTxnMethod(method: string): method is TxnMethod {\n return transactionMethods.includes(method as any);\n}\n\nfunction isSignMethod(method: string): method is SignMethod {\n return signingMethods.includes(method as any);\n}\n\n/**\n * A decorator class for SmartAccountClient instances. It enhances the client with:\n * - Error handling & logging.\n * - Performance metrics.\n * - Automatic formatting of transactions for Gelato bundler compatibility.\n * */\nexport class ClientDecorator {\n constructor(\n private readonly errorProcessor: ErrorProcessor,\n protected logger = scwLogger\n ) {}\n\n public decorate<Client extends SmartAccountClient<EntryPoint>>({\n crossmintChain,\n smartAccountClient,\n }: {\n crossmintChain: SmartWalletChain;\n smartAccountClient: Client;\n }): Client {\n return new Proxy(smartAccountClient, {\n get: (target, prop, receiver) => {\n const originalMethod = Reflect.get(target, prop, receiver);\n\n if (\n typeof originalMethod !== \"function\" ||\n typeof prop !== \"string\" ||\n !(isSignMethod(prop) || isTxnMethod(prop))\n ) {\n return originalMethod;\n }\n\n return (...args: any[]) =>\n this.logger.logPerformance(`CrossmintSmartWallet.${prop}`, () =>\n this.execute(target, prop, originalMethod, args, crossmintChain)\n );\n },\n }) as Client;\n }\n\n private async execute<M extends TxnMethod | SignMethod>(\n target: SmartAccountClient<EntryPoint>,\n prop: M,\n originalMethod: Function,\n args: any[],\n crossmintChain: SmartWalletChain\n ) {\n try {\n this.logger.log(`[CrossmintSmartWallet.${prop}] - params: ${stringify(args)}`);\n const processed = isTxnMethod(prop) ? this.processTxnArgs(prop, crossmintChain, args) : args;\n return await originalMethod.call(target, ...processed);\n } catch (error: any) {\n const description = isTxnMethod(prop) ? \"signing\" : \"sending transaction\";\n throw this.errorProcessor.map(\n error,\n new SmartWalletError(`Error ${description}: ${error.message}`, stringify(error))\n );\n }\n }\n\n private processTxnArgs(prop: TxnMethod, crossmintChain: SmartWalletChain, args: any[]): any[] {\n if (prop === \"sendUserOperation\") {\n const [{ userOperation, middleware, account }] = args as Parameters<\n SmartAccountClient<EntryPoint>[\"sendUserOperation\"]\n >;\n return [\n {\n middleware,\n account,\n userOperation: this.addGelatoBundlerProperties(crossmintChain, userOperation),\n },\n ...args.slice(1),\n ];\n }\n\n const [txn] = args as\n | Parameters<SmartAccountClient<EntryPoint>[\"sendTransaction\"]>\n | Parameters<SmartAccountClient<EntryPoint>[\"writeContract\"]>;\n\n return [this.addGelatoBundlerProperties(crossmintChain, txn), ...args.slice(1)];\n }\n\n /*\n * Chain that ZD uses Gelato as for bundler require special parameters:\n * https://docs.zerodev.app/sdk/faqs/use-with-gelato#transaction-configuration\n */\n private addGelatoBundlerProperties(\n crossmintChain: SmartWalletChain,\n txnParams: { maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint }\n ) {\n if (usesGelatoBundler(crossmintChain)) {\n return { ...txnParams, maxFeePerGas: \"0x0\" as any, maxPriorityFeePerGas: \"0x0\" as any };\n }\n\n return txnParams;\n }\n}\n"],"mappings":";;;;;;;;;;;AAEA,SAAS,iBAAiB;AAQ1B,IAAM,qBAAqB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACJ;AAEA,IAAM,iBAAiB;AAAA,EACnB;AAAA,EACA;AACJ;AAKA,SAAS,YAAY,QAAqC;AACtD,SAAO,mBAAmB,SAAS,MAAa;AACpD;AAEA,SAAS,aAAa,QAAsC;AACxD,SAAO,eAAe,SAAS,MAAa;AAChD;AAQO,IAAM,kBAAN,MAAsB;AAAA,EACzB,YACqB,gBACP,SAAS,WACrB;AAFmB;AACP;AAAA,EACX;AAAA,EAEI,SAAwD;AAAA,IAC3D;AAAA,IACA;AAAA,EACJ,GAGW;AACP,WAAO,IAAI,MAAM,oBAAoB;AAAA,MACjC,KAAK,CAAC,QAAQ,MAAM,aAAa;AAC7B,cAAM,iBAAiB,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAEzD,YACI,OAAO,mBAAmB,cAC1B,OAAO,SAAS,YAChB,EAAE,aAAa,IAAI,KAAK,YAAY,IAAI,IAC1C;AACE,iBAAO;AAAA,QACX;AAEA,eAAO,IAAI,SACP,KAAK,OAAO;AAAA,UAAe,wBAAwB,IAAI;AAAA,UAAI,MACvD,KAAK,QAAQ,QAAQ,MAAM,gBAAgB,MAAM,cAAc;AAAA,QACnE;AAAA,MACR;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAc,QACV,QACA,MACA,gBACA,MACA,gBACF;AACE,QAAI;AACA,WAAK,OAAO,IAAI,yBAAyB,IAAI,eAAe,UAAU,IAAI,CAAC,EAAE;AAC7E,YAAM,YAAY,YAAY,IAAI,IAAI,KAAK,eAAe,MAAM,gBAAgB,IAAI,IAAI;AACxF,aAAO,MAAM,eAAe,KAAK,QAAQ,GAAG,SAAS;AAAA,IACzD,SAAS,OAAY;AACjB,YAAM,cAAc,YAAY,IAAI,IAAI,YAAY;AACpD,YAAM,KAAK,eAAe;AAAA,QACtB;AAAA,QACA,IAAI,iBAAiB,SAAS,WAAW,KAAK,MAAM,OAAO,IAAI,UAAU,KAAK,CAAC;AAAA,MACnF;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,eAAe,MAAiB,gBAAkC,MAAoB;AAC1F,QAAI,SAAS,qBAAqB;AAC9B,YAAM,CAAC,EAAE,eAAe,YAAY,QAAQ,CAAC,IAAI;AAGjD,aAAO;AAAA,QACH;AAAA,UACI;AAAA,UACA;AAAA,UACA,eAAe,KAAK,2BAA2B,gBAAgB,aAAa;AAAA,QAChF;AAAA,QACA,GAAG,KAAK,MAAM,CAAC;AAAA,MACnB;AAAA,IACJ;AAEA,UAAM,CAAC,GAAG,IAAI;AAId,WAAO,CAAC,KAAK,2BAA2B,gBAAgB,GAAG,GAAG,GAAG,KAAK,MAAM,CAAC,CAAC;AAAA,EAClF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,2BACJ,gBACA,WACF;AACE,QAAI,kBAAkB,cAAc,GAAG;AACnC,aAAO,EAAE,GAAG,WAAW,cAAc,OAAc,sBAAsB,MAAa;AAAA,IAC1F;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
|
package/dist/chunk-SMDX2MXU.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// src/utils/helpers.ts
|
|
2
|
-
function isEmpty(str) {
|
|
3
|
-
return !str || str.length === 0 || str.trim().length === 0;
|
|
4
|
-
}
|
|
5
|
-
function equalsIgnoreCase(a, b) {
|
|
6
|
-
return a?.toLowerCase() === b?.toLowerCase();
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export {
|
|
10
|
-
isEmpty,
|
|
11
|
-
equalsIgnoreCase
|
|
12
|
-
};
|
|
13
|
-
//# sourceMappingURL=chunk-SMDX2MXU.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/helpers.ts"],"sourcesContent":["export function isEmpty(str: string | undefined | null): str is undefined | null {\n return !str || str.length === 0 || str.trim().length === 0;\n}\n\nexport function equalsIgnoreCase(a?: string, b?: string): boolean {\n return a?.toLowerCase() === b?.toLowerCase();\n}\n"],"mappings":";AAAO,SAAS,QAAQ,KAAyD;AAC7E,SAAO,CAAC,OAAO,IAAI,WAAW,KAAK,IAAI,KAAK,EAAE,WAAW;AAC7D;AAEO,SAAS,iBAAiB,GAAY,GAAqB;AAC9D,SAAO,GAAG,YAAY,MAAM,GAAG,YAAY;AAC/C;","names":[]}
|
package/dist/chunk-TDJDKTRS.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PasskeySignerConfig
|
|
3
|
-
} from "./chunk-3R6PW6HY.js";
|
|
4
|
-
import {
|
|
5
|
-
PasskeyIncompatibleAuthenticatorError,
|
|
6
|
-
PasskeyMismatchError,
|
|
7
|
-
PasskeyPromptError,
|
|
8
|
-
PasskeyRegistrationError
|
|
9
|
-
} from "./chunk-ASIPMVRQ.js";
|
|
10
|
-
|
|
11
|
-
// src/blockchain/wallets/account/passkey.ts
|
|
12
|
-
import { PasskeyValidatorContractVersion, WebAuthnMode, toPasskeyValidator } from "@zerodev/passkey-validator";
|
|
13
|
-
import { createKernelAccount } from "@zerodev/sdk";
|
|
14
|
-
import { toWebAuthnKey } from "@zerodev/webauthn-key";
|
|
15
|
-
var PasskeyCreationStrategy = class {
|
|
16
|
-
constructor(passkeyServerUrl, apiKey) {
|
|
17
|
-
this.passkeyServerUrl = passkeyServerUrl;
|
|
18
|
-
this.apiKey = apiKey;
|
|
19
|
-
}
|
|
20
|
-
async create({
|
|
21
|
-
user,
|
|
22
|
-
publicClient,
|
|
23
|
-
walletParams,
|
|
24
|
-
entryPoint,
|
|
25
|
-
kernelVersion,
|
|
26
|
-
existing
|
|
27
|
-
}) {
|
|
28
|
-
const inputPasskeyName = walletParams.signer.passkeyName ?? user.id;
|
|
29
|
-
if (existing != null && existing.signerConfig.data.passkeyName !== inputPasskeyName) {
|
|
30
|
-
throw new PasskeyMismatchError(
|
|
31
|
-
`User '${user.id}' has an existing wallet created with a passkey named '${existing.signerConfig.data.passkeyName}', this does match input passkey name '${inputPasskeyName}'.`,
|
|
32
|
-
existing.signerConfig.display()
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
try {
|
|
36
|
-
if (existing == null && walletParams.signer.onPrePasskeyRegistration != null) {
|
|
37
|
-
await walletParams.signer.onPrePasskeyRegistration();
|
|
38
|
-
}
|
|
39
|
-
const passkey = await this.getPasskey(user, inputPasskeyName, existing?.signerConfig.data);
|
|
40
|
-
const latestValidatorVersion = PasskeyValidatorContractVersion.V0_0_2;
|
|
41
|
-
const validatorContractVersion = existing == null ? latestValidatorVersion : existing.signerConfig.data.validatorContractVersion;
|
|
42
|
-
const validator = await toPasskeyValidator(publicClient, {
|
|
43
|
-
webAuthnKey: passkey,
|
|
44
|
-
entryPoint,
|
|
45
|
-
validatorContractVersion,
|
|
46
|
-
kernelVersion
|
|
47
|
-
});
|
|
48
|
-
const kernelAccount = await createKernelAccount(publicClient, {
|
|
49
|
-
plugins: { sudo: validator },
|
|
50
|
-
entryPoint,
|
|
51
|
-
kernelVersion,
|
|
52
|
-
deployedAccountAddress: existing?.address
|
|
53
|
-
});
|
|
54
|
-
return {
|
|
55
|
-
signerConfig: this.getSignerConfig(validator, validatorContractVersion, inputPasskeyName),
|
|
56
|
-
account: this.decorate(kernelAccount, inputPasskeyName, walletParams)
|
|
57
|
-
};
|
|
58
|
-
} catch (error) {
|
|
59
|
-
if (walletParams.signer.onPasskeyRegistrationError != null) {
|
|
60
|
-
walletParams.signer.onPasskeyRegistrationError(error);
|
|
61
|
-
}
|
|
62
|
-
throw this.mapError(error, inputPasskeyName);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
async getPasskey(user, passkeyName, existing) {
|
|
66
|
-
if (existing != null) {
|
|
67
|
-
return {
|
|
68
|
-
pubX: BigInt(existing.pubKeyX),
|
|
69
|
-
pubY: BigInt(existing.pubKeyY),
|
|
70
|
-
authenticatorId: existing.authenticatorId,
|
|
71
|
-
authenticatorIdHash: existing.authenticatorIdHash
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
return toWebAuthnKey({
|
|
75
|
-
passkeyName,
|
|
76
|
-
passkeyServerUrl: this.passkeyServerUrl,
|
|
77
|
-
mode: WebAuthnMode.Register,
|
|
78
|
-
passkeyServerHeaders: this.createPasskeysServerHeaders(user)
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
getSignerConfig(validator, validatorContractVersion, passkeyName) {
|
|
82
|
-
return new PasskeySignerConfig({
|
|
83
|
-
...deserializePasskeyValidatorData(validator.getSerializedData()),
|
|
84
|
-
passkeyName,
|
|
85
|
-
validatorContractVersion,
|
|
86
|
-
domain: window.location.hostname,
|
|
87
|
-
type: "passkeys"
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
createPasskeysServerHeaders(user) {
|
|
91
|
-
return {
|
|
92
|
-
"x-api-key": this.apiKey,
|
|
93
|
-
Authorization: `Bearer ${user.jwt}`
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
mapError(error, passkeyName) {
|
|
97
|
-
if (error.code === 0 && error.name === "DataError") {
|
|
98
|
-
return new PasskeyIncompatibleAuthenticatorError(passkeyName);
|
|
99
|
-
}
|
|
100
|
-
if (error.message === "Registration not verified") {
|
|
101
|
-
return new PasskeyRegistrationError(passkeyName);
|
|
102
|
-
}
|
|
103
|
-
if (error.code === "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY" && error.name === "NotAllowedError") {
|
|
104
|
-
return new PasskeyPromptError(passkeyName);
|
|
105
|
-
}
|
|
106
|
-
return error;
|
|
107
|
-
}
|
|
108
|
-
decorate(account, passkeyName, walletParams) {
|
|
109
|
-
return new Proxy(account, {
|
|
110
|
-
get: (target, prop, receiver) => {
|
|
111
|
-
const original = Reflect.get(target, prop, receiver);
|
|
112
|
-
if (typeof original !== "function" || typeof prop !== "string" || !isAccountSigningMethod(prop)) {
|
|
113
|
-
return original;
|
|
114
|
-
}
|
|
115
|
-
const signer = walletParams.signer;
|
|
116
|
-
return async (...args) => {
|
|
117
|
-
const isFirstTransaction = args?.[0]?.factoryData != null;
|
|
118
|
-
if (isFirstTransaction && prop === "signUserOperation" && signer.type === "PASSKEY" && signer.onFirstTimePasskeySigning != null) {
|
|
119
|
-
await signer.onFirstTimePasskeySigning();
|
|
120
|
-
}
|
|
121
|
-
try {
|
|
122
|
-
return await original.call(target, ...args);
|
|
123
|
-
} catch (error) {
|
|
124
|
-
if (signer.onFirstTimePasskeySigningError != null) {
|
|
125
|
-
await signer.onFirstTimePasskeySigningError(error);
|
|
126
|
-
}
|
|
127
|
-
throw this.mapError(error, passkeyName);
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
var accountSigningMethods = [
|
|
135
|
-
"signMessage",
|
|
136
|
-
"signTypedData",
|
|
137
|
-
"signUserOperation",
|
|
138
|
-
"signTransaction"
|
|
139
|
-
];
|
|
140
|
-
function isAccountSigningMethod(method) {
|
|
141
|
-
return accountSigningMethods.includes(method);
|
|
142
|
-
}
|
|
143
|
-
var deserializePasskeyValidatorData = (params) => {
|
|
144
|
-
const uint8Array = base64ToBytes(params);
|
|
145
|
-
const jsonString = new TextDecoder().decode(uint8Array);
|
|
146
|
-
return JSON.parse(jsonString);
|
|
147
|
-
};
|
|
148
|
-
function base64ToBytes(base64) {
|
|
149
|
-
const binString = atob(base64);
|
|
150
|
-
return Uint8Array.from(binString, (m) => m.codePointAt(0));
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
export {
|
|
154
|
-
PasskeyCreationStrategy
|
|
155
|
-
};
|
|
156
|
-
//# sourceMappingURL=chunk-TDJDKTRS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/wallets/account/passkey.ts"],"sourcesContent":["import { PasskeyValidatorContractVersion, WebAuthnMode, toPasskeyValidator } from \"@zerodev/passkey-validator\";\nimport { type KernelSmartAccount, type KernelValidator, createKernelAccount } from \"@zerodev/sdk\";\nimport { type WebAuthnKey, toWebAuthnKey } from \"@zerodev/webauthn-key\";\nimport type { SmartAccount } from \"permissionless/accounts\";\nimport type { EntryPoint } from \"permissionless/types/entrypoint\";\n\nimport {\n PasskeyIncompatibleAuthenticatorError,\n PasskeyMismatchError,\n PasskeyPromptError,\n PasskeyRegistrationError,\n} from \"../../../error\";\nimport type { AccountAndSigner, PasskeyCreationContext } from \"../../../types/internal\";\nimport type { PasskeySigner, UserParams, WalletParams } from \"../../../types/params\";\nimport type { PasskeySignerData, PasskeyValidatorSerializedData } from \"../../../types/service\";\nimport { PasskeySignerConfig } from \"./signer\";\nimport type { AccountCreationStrategy } from \"./strategy\";\n\ntype PasskeyValidator = KernelValidator<EntryPoint, \"WebAuthnValidator\"> & {\n getSerializedData: () => string;\n};\nexport class PasskeyCreationStrategy implements AccountCreationStrategy {\n constructor(\n private readonly passkeyServerUrl: string,\n private readonly apiKey: string\n ) {}\n\n public async create({\n user,\n publicClient,\n walletParams,\n entryPoint,\n kernelVersion,\n existing,\n }: PasskeyCreationContext): Promise<AccountAndSigner> {\n const inputPasskeyName = walletParams.signer.passkeyName ?? user.id;\n if (existing != null && existing.signerConfig.data.passkeyName !== inputPasskeyName) {\n throw new PasskeyMismatchError(\n `User '${user.id}' has an existing wallet created with a passkey named '${existing.signerConfig.data.passkeyName}', this does match input passkey name '${inputPasskeyName}'.`,\n existing.signerConfig.display()\n );\n }\n\n try {\n if (existing == null && walletParams.signer.onPrePasskeyRegistration != null) {\n await walletParams.signer.onPrePasskeyRegistration();\n }\n\n const passkey = await this.getPasskey(user, inputPasskeyName, existing?.signerConfig.data);\n\n const latestValidatorVersion = PasskeyValidatorContractVersion.V0_0_2;\n const validatorContractVersion =\n existing == null ? latestValidatorVersion : existing.signerConfig.data.validatorContractVersion;\n\n const validator = await toPasskeyValidator(publicClient, {\n webAuthnKey: passkey,\n entryPoint,\n validatorContractVersion,\n kernelVersion,\n });\n\n const kernelAccount = await createKernelAccount(publicClient, {\n plugins: { sudo: validator },\n entryPoint,\n kernelVersion,\n deployedAccountAddress: existing?.address,\n });\n\n return {\n signerConfig: this.getSignerConfig(validator, validatorContractVersion, inputPasskeyName),\n account: this.decorate(kernelAccount, inputPasskeyName, walletParams),\n };\n } catch (error) {\n if (walletParams.signer.onPasskeyRegistrationError != null) {\n walletParams.signer.onPasskeyRegistrationError(error);\n }\n throw this.mapError(error, inputPasskeyName);\n }\n }\n\n private async getPasskey(\n user: UserParams,\n passkeyName: string,\n existing?: PasskeySignerData\n ): Promise<WebAuthnKey> {\n if (existing != null) {\n return {\n pubX: BigInt(existing.pubKeyX),\n pubY: BigInt(existing.pubKeyY),\n authenticatorId: existing.authenticatorId,\n authenticatorIdHash: existing.authenticatorIdHash,\n };\n }\n\n return toWebAuthnKey({\n passkeyName,\n passkeyServerUrl: this.passkeyServerUrl,\n mode: WebAuthnMode.Register,\n passkeyServerHeaders: this.createPasskeysServerHeaders(user),\n });\n }\n\n private getSignerConfig(\n validator: PasskeyValidator,\n validatorContractVersion: PasskeyValidatorContractVersion,\n passkeyName: string\n ): PasskeySignerConfig {\n return new PasskeySignerConfig({\n ...deserializePasskeyValidatorData(validator.getSerializedData()),\n passkeyName,\n validatorContractVersion,\n domain: window.location.hostname,\n type: \"passkeys\",\n });\n }\n\n private createPasskeysServerHeaders(user: UserParams) {\n return {\n \"x-api-key\": this.apiKey,\n Authorization: `Bearer ${user.jwt}`,\n };\n }\n\n private mapError(error: any, passkeyName: string) {\n if (error.code === 0 && error.name === \"DataError\") {\n return new PasskeyIncompatibleAuthenticatorError(passkeyName);\n }\n\n if (error.message === \"Registration not verified\") {\n return new PasskeyRegistrationError(passkeyName);\n }\n\n if (error.code === \"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY\" && error.name === \"NotAllowedError\") {\n return new PasskeyPromptError(passkeyName);\n }\n\n return error;\n }\n\n private decorate<Account extends KernelSmartAccount<EntryPoint>>(\n account: Account,\n passkeyName: string,\n walletParams: WalletParams\n ): Account {\n return new Proxy(account, {\n get: (target, prop, receiver) => {\n const original = Reflect.get(target, prop, receiver);\n if (typeof original !== \"function\" || typeof prop !== \"string\" || !isAccountSigningMethod(prop)) {\n return original;\n }\n\n const signer = walletParams.signer as PasskeySigner;\n return async (...args: any[]) => {\n const isFirstTransaction = args?.[0]?.factoryData != null;\n if (\n isFirstTransaction &&\n prop === \"signUserOperation\" &&\n signer.type === \"PASSKEY\" &&\n signer.onFirstTimePasskeySigning != null\n ) {\n await signer.onFirstTimePasskeySigning();\n }\n try {\n return await original.call(target, ...args);\n } catch (error) {\n if (signer.onFirstTimePasskeySigningError != null) {\n await signer.onFirstTimePasskeySigningError(error);\n }\n throw this.mapError(error, passkeyName);\n }\n };\n },\n });\n }\n}\n\nconst accountSigningMethods = [\n \"signMessage\",\n \"signTypedData\",\n \"signUserOperation\",\n \"signTransaction\",\n] as const satisfies readonly (keyof SmartAccount<EntryPoint>)[];\n\nfunction isAccountSigningMethod(method: string): method is (typeof accountSigningMethods)[number] {\n return accountSigningMethods.includes(method as any);\n}\n\nconst deserializePasskeyValidatorData = (params: string) => {\n const uint8Array = base64ToBytes(params);\n const jsonString = new TextDecoder().decode(uint8Array);\n\n return JSON.parse(jsonString) as PasskeyValidatorSerializedData;\n};\n\nfunction base64ToBytes(base64: string) {\n const binString = atob(base64);\n return Uint8Array.from(binString, (m) => m.codePointAt(0) as number);\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,iCAAiC,cAAc,0BAA0B;AAClF,SAAwD,2BAA2B;AACnF,SAA2B,qBAAqB;AAmBzC,IAAM,0BAAN,MAAiE;AAAA,EACpE,YACqB,kBACA,QACnB;AAFmB;AACA;AAAA,EAClB;AAAA,EAEH,MAAa,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAAsD;AAClD,UAAM,mBAAmB,aAAa,OAAO,eAAe,KAAK;AACjE,QAAI,YAAY,QAAQ,SAAS,aAAa,KAAK,gBAAgB,kBAAkB;AACjF,YAAM,IAAI;AAAA,QACN,SAAS,KAAK,EAAE,0DAA0D,SAAS,aAAa,KAAK,WAAW,0CAA0C,gBAAgB;AAAA,QAC1K,SAAS,aAAa,QAAQ;AAAA,MAClC;AAAA,IACJ;AAEA,QAAI;AACA,UAAI,YAAY,QAAQ,aAAa,OAAO,4BAA4B,MAAM;AAC1E,cAAM,aAAa,OAAO,yBAAyB;AAAA,MACvD;AAEA,YAAM,UAAU,MAAM,KAAK,WAAW,MAAM,kBAAkB,UAAU,aAAa,IAAI;AAEzF,YAAM,yBAAyB,gCAAgC;AAC/D,YAAM,2BACF,YAAY,OAAO,yBAAyB,SAAS,aAAa,KAAK;AAE3E,YAAM,YAAY,MAAM,mBAAmB,cAAc;AAAA,QACrD,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAED,YAAM,gBAAgB,MAAM,oBAAoB,cAAc;AAAA,QAC1D,SAAS,EAAE,MAAM,UAAU;AAAA,QAC3B;AAAA,QACA;AAAA,QACA,wBAAwB,UAAU;AAAA,MACtC,CAAC;AAED,aAAO;AAAA,QACH,cAAc,KAAK,gBAAgB,WAAW,0BAA0B,gBAAgB;AAAA,QACxF,SAAS,KAAK,SAAS,eAAe,kBAAkB,YAAY;AAAA,MACxE;AAAA,IACJ,SAAS,OAAO;AACZ,UAAI,aAAa,OAAO,8BAA8B,MAAM;AACxD,qBAAa,OAAO,2BAA2B,KAAK;AAAA,MACxD;AACA,YAAM,KAAK,SAAS,OAAO,gBAAgB;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,MAAc,WACV,MACA,aACA,UACoB;AACpB,QAAI,YAAY,MAAM;AAClB,aAAO;AAAA,QACH,MAAM,OAAO,SAAS,OAAO;AAAA,QAC7B,MAAM,OAAO,SAAS,OAAO;AAAA,QAC7B,iBAAiB,SAAS;AAAA,QAC1B,qBAAqB,SAAS;AAAA,MAClC;AAAA,IACJ;AAEA,WAAO,cAAc;AAAA,MACjB;AAAA,MACA,kBAAkB,KAAK;AAAA,MACvB,MAAM,aAAa;AAAA,MACnB,sBAAsB,KAAK,4BAA4B,IAAI;AAAA,IAC/D,CAAC;AAAA,EACL;AAAA,EAEQ,gBACJ,WACA,0BACA,aACmB;AACnB,WAAO,IAAI,oBAAoB;AAAA,MAC3B,GAAG,gCAAgC,UAAU,kBAAkB,CAAC;AAAA,MAChE;AAAA,MACA;AAAA,MACA,QAAQ,OAAO,SAAS;AAAA,MACxB,MAAM;AAAA,IACV,CAAC;AAAA,EACL;AAAA,EAEQ,4BAA4B,MAAkB;AAClD,WAAO;AAAA,MACH,aAAa,KAAK;AAAA,MAClB,eAAe,UAAU,KAAK,GAAG;AAAA,IACrC;AAAA,EACJ;AAAA,EAEQ,SAAS,OAAY,aAAqB;AAC9C,QAAI,MAAM,SAAS,KAAK,MAAM,SAAS,aAAa;AAChD,aAAO,IAAI,sCAAsC,WAAW;AAAA,IAChE;AAEA,QAAI,MAAM,YAAY,6BAA6B;AAC/C,aAAO,IAAI,yBAAyB,WAAW;AAAA,IACnD;AAEA,QAAI,MAAM,SAAS,0CAA0C,MAAM,SAAS,mBAAmB;AAC3F,aAAO,IAAI,mBAAmB,WAAW;AAAA,IAC7C;AAEA,WAAO;AAAA,EACX;AAAA,EAEQ,SACJ,SACA,aACA,cACO;AACP,WAAO,IAAI,MAAM,SAAS;AAAA,MACtB,KAAK,CAAC,QAAQ,MAAM,aAAa;AAC7B,cAAM,WAAW,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AACnD,YAAI,OAAO,aAAa,cAAc,OAAO,SAAS,YAAY,CAAC,uBAAuB,IAAI,GAAG;AAC7F,iBAAO;AAAA,QACX;AAEA,cAAM,SAAS,aAAa;AAC5B,eAAO,UAAU,SAAgB;AAC7B,gBAAM,qBAAqB,OAAO,CAAC,GAAG,eAAe;AACrD,cACI,sBACA,SAAS,uBACT,OAAO,SAAS,aAChB,OAAO,6BAA6B,MACtC;AACE,kBAAM,OAAO,0BAA0B;AAAA,UAC3C;AACA,cAAI;AACA,mBAAO,MAAM,SAAS,KAAK,QAAQ,GAAG,IAAI;AAAA,UAC9C,SAAS,OAAO;AACZ,gBAAI,OAAO,kCAAkC,MAAM;AAC/C,oBAAM,OAAO,+BAA+B,KAAK;AAAA,YACrD;AACA,kBAAM,KAAK,SAAS,OAAO,WAAW;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEA,IAAM,wBAAwB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEA,SAAS,uBAAuB,QAAkE;AAC9F,SAAO,sBAAsB,SAAS,MAAa;AACvD;AAEA,IAAM,kCAAkC,CAAC,WAAmB;AACxD,QAAM,aAAa,cAAc,MAAM;AACvC,QAAM,aAAa,IAAI,YAAY,EAAE,OAAO,UAAU;AAEtD,SAAO,KAAK,MAAM,UAAU;AAChC;AAEA,SAAS,cAAc,QAAgB;AACnC,QAAM,YAAY,KAAK,MAAM;AAC7B,SAAO,WAAW,KAAK,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAW;AACvE;","names":[]}
|
package/dist/chunk-U4OBHCIP.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EOASignerConfig
|
|
3
|
-
} from "./chunk-3R6PW6HY.js";
|
|
4
|
-
import {
|
|
5
|
-
equalsIgnoreCase
|
|
6
|
-
} from "./chunk-SMDX2MXU.js";
|
|
7
|
-
import {
|
|
8
|
-
createOwnerSigner
|
|
9
|
-
} from "./chunk-EQSMHR77.js";
|
|
10
|
-
import {
|
|
11
|
-
AdminMismatchError
|
|
12
|
-
} from "./chunk-ASIPMVRQ.js";
|
|
13
|
-
|
|
14
|
-
// src/blockchain/wallets/account/eoa.ts
|
|
15
|
-
import { signerToEcdsaValidator } from "@zerodev/ecdsa-validator";
|
|
16
|
-
import { createKernelAccount } from "@zerodev/sdk";
|
|
17
|
-
var EOACreationStrategy = class {
|
|
18
|
-
async create({
|
|
19
|
-
chain,
|
|
20
|
-
publicClient,
|
|
21
|
-
entryPoint,
|
|
22
|
-
walletParams,
|
|
23
|
-
kernelVersion,
|
|
24
|
-
user,
|
|
25
|
-
existing
|
|
26
|
-
}) {
|
|
27
|
-
const eoa = await createOwnerSigner({
|
|
28
|
-
chain,
|
|
29
|
-
walletParams
|
|
30
|
-
});
|
|
31
|
-
if (existing != null && !equalsIgnoreCase(eoa.address, existing.signerConfig.data.eoaAddress)) {
|
|
32
|
-
throw new AdminMismatchError(
|
|
33
|
-
`User '${user.id}' has an existing wallet with an eoa signer '${existing.signerConfig.data.eoaAddress}', this does not match input eoa signer '${eoa.address}'.`,
|
|
34
|
-
existing.signerConfig.display(),
|
|
35
|
-
{ type: "eoa", eoaAddress: existing.signerConfig.data.eoaAddress }
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
const ecdsaValidator = await signerToEcdsaValidator(publicClient, {
|
|
39
|
-
signer: eoa,
|
|
40
|
-
entryPoint,
|
|
41
|
-
kernelVersion
|
|
42
|
-
});
|
|
43
|
-
const account = await createKernelAccount(publicClient, {
|
|
44
|
-
plugins: {
|
|
45
|
-
sudo: ecdsaValidator
|
|
46
|
-
},
|
|
47
|
-
index: 0n,
|
|
48
|
-
entryPoint,
|
|
49
|
-
kernelVersion,
|
|
50
|
-
deployedAccountAddress: existing?.address
|
|
51
|
-
});
|
|
52
|
-
return { account, signerConfig: new EOASignerConfig({ eoaAddress: eoa.address, type: "eoa" }) };
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
export {
|
|
57
|
-
EOACreationStrategy
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=chunk-U4OBHCIP.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/wallets/account/eoa.ts"],"sourcesContent":["import { signerToEcdsaValidator } from \"@zerodev/ecdsa-validator\";\nimport { createKernelAccount } from \"@zerodev/sdk\";\n\nimport { AdminMismatchError } from \"../../../error\";\nimport type { AccountAndSigner, EOACreationContext } from \"../../../types/internal\";\nimport { equalsIgnoreCase } from \"../../../utils/helpers\";\nimport { createOwnerSigner } from \"../../../utils/signer\";\nimport { EOASignerConfig } from \"./signer\";\nimport type { AccountCreationStrategy } from \"./strategy\";\n\nexport class EOACreationStrategy implements AccountCreationStrategy {\n public async create({\n chain,\n publicClient,\n entryPoint,\n walletParams,\n kernelVersion,\n user,\n existing,\n }: EOACreationContext): Promise<AccountAndSigner> {\n const eoa = await createOwnerSigner({\n chain,\n walletParams,\n });\n\n if (existing != null && !equalsIgnoreCase(eoa.address, existing.signerConfig.data.eoaAddress)) {\n throw new AdminMismatchError(\n `User '${user.id}' has an existing wallet with an eoa signer '${existing.signerConfig.data.eoaAddress}', this does not match input eoa signer '${eoa.address}'.`,\n existing.signerConfig.display(),\n { type: \"eoa\", eoaAddress: existing.signerConfig.data.eoaAddress }\n );\n }\n\n const ecdsaValidator = await signerToEcdsaValidator(publicClient, {\n signer: eoa,\n entryPoint,\n kernelVersion,\n });\n const account = await createKernelAccount(publicClient, {\n plugins: {\n sudo: ecdsaValidator,\n },\n index: 0n,\n entryPoint,\n kernelVersion,\n deployedAccountAddress: existing?.address,\n });\n\n return { account, signerConfig: new EOASignerConfig({ eoaAddress: eoa.address, type: \"eoa\" }) };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AAS7B,IAAM,sBAAN,MAA6D;AAAA,EAChE,MAAa,OAAO;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,GAAkD;AAC9C,UAAM,MAAM,MAAM,kBAAkB;AAAA,MAChC;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,YAAY,QAAQ,CAAC,iBAAiB,IAAI,SAAS,SAAS,aAAa,KAAK,UAAU,GAAG;AAC3F,YAAM,IAAI;AAAA,QACN,SAAS,KAAK,EAAE,gDAAgD,SAAS,aAAa,KAAK,UAAU,4CAA4C,IAAI,OAAO;AAAA,QAC5J,SAAS,aAAa,QAAQ;AAAA,QAC9B,EAAE,MAAM,OAAO,YAAY,SAAS,aAAa,KAAK,WAAW;AAAA,MACrE;AAAA,IACJ;AAEA,UAAM,iBAAiB,MAAM,uBAAuB,cAAc;AAAA,MAC9D,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,IACJ,CAAC;AACD,UAAM,UAAU,MAAM,oBAAoB,cAAc;AAAA,MACpD,SAAS;AAAA,QACL,MAAM;AAAA,MACV;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,wBAAwB,UAAU;AAAA,IACtC,CAAC;AAED,WAAO,EAAE,SAAS,cAAc,IAAI,gBAAgB,EAAE,YAAY,IAAI,SAAS,MAAM,MAAM,CAAC,EAAE;AAAA,EAClG;AACJ;","names":[]}
|
package/dist/chunk-UQKE6R5W.cjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/blockchain/rpc.ts
|
|
2
|
-
var _commonsdkbase = require('@crossmint/common-sdk-base');
|
|
3
|
-
var ALCHEMY_API_KEY = "-7M6vRDBDknwvMxnqah_jbcieWg0qad9";
|
|
4
|
-
var PIMLICO_API_KEY = "pim_9dKmQPxiTCvtbUNF7XFBbA";
|
|
5
|
-
var ALCHEMY_RPC_SUBDOMAIN = {
|
|
6
|
-
polygon: "polygon-mainnet",
|
|
7
|
-
"polygon-amoy": "polygon-amoy",
|
|
8
|
-
base: "base-mainnet",
|
|
9
|
-
"base-sepolia": "base-sepolia",
|
|
10
|
-
optimism: "opt-mainnet",
|
|
11
|
-
"optimism-sepolia": "opt-sepolia",
|
|
12
|
-
arbitrum: "arb-mainnet",
|
|
13
|
-
"arbitrum-sepolia": "arb-sepolia"
|
|
14
|
-
};
|
|
15
|
-
function getAlchemyRPC(chain) {
|
|
16
|
-
return `https://${ALCHEMY_RPC_SUBDOMAIN[chain]}.g.alchemy.com/v2/${ALCHEMY_API_KEY}`;
|
|
17
|
-
}
|
|
18
|
-
function getPimlicoBundlerRPC(chain) {
|
|
19
|
-
return `https://api.pimlico.io/v2/${_commonsdkbase.blockchainToChainId.call(void 0, chain)}/rpc?apikey=${PIMLICO_API_KEY}`;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
exports.ALCHEMY_RPC_SUBDOMAIN = ALCHEMY_RPC_SUBDOMAIN; exports.getAlchemyRPC = getAlchemyRPC; exports.getPimlicoBundlerRPC = getPimlicoBundlerRPC;
|
|
27
|
-
//# sourceMappingURL=chunk-UQKE6R5W.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/blockchain/rpc.ts"],"names":[],"mappings":";AAAA,SAAS,2BAA2B;AAIpC,IAAM,kBAAkB;AACxB,IAAM,kBAAkB;AAEjB,IAAM,wBAA0D;AAAA,EACnE,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,UAAU;AAAA,EACV,oBAAoB;AAAA,EACpB,UAAU;AAAA,EACV,oBAAoB;AACxB;AAEO,SAAS,cAAc,OAAiC;AAC3D,SAAO,WAAW,sBAAsB,KAAK,CAAC,qBAAqB,eAAe;AACtF;AAEO,SAAS,qBAAqB,OAAiC;AAClE,SAAO,6BAA6B,oBAAoB,KAAK,CAAC,eAAe,eAAe;AAChG","sourcesContent":["import { blockchainToChainId } from \"@crossmint/common-sdk-base\";\n\nimport type { SmartWalletChain } from \"./chains\";\n\nconst ALCHEMY_API_KEY = \"-7M6vRDBDknwvMxnqah_jbcieWg0qad9\";\nconst PIMLICO_API_KEY = \"pim_9dKmQPxiTCvtbUNF7XFBbA\";\n\nexport const ALCHEMY_RPC_SUBDOMAIN: Record<SmartWalletChain, string> = {\n polygon: \"polygon-mainnet\",\n \"polygon-amoy\": \"polygon-amoy\",\n base: \"base-mainnet\",\n \"base-sepolia\": \"base-sepolia\",\n optimism: \"opt-mainnet\",\n \"optimism-sepolia\": \"opt-sepolia\",\n arbitrum: \"arb-mainnet\",\n \"arbitrum-sepolia\": \"arb-sepolia\",\n};\n\nexport function getAlchemyRPC(chain: SmartWalletChain): string {\n return `https://${ALCHEMY_RPC_SUBDOMAIN[chain]}.g.alchemy.com/v2/${ALCHEMY_API_KEY}`;\n}\n\nexport function getPimlicoBundlerRPC(chain: SmartWalletChain): string {\n return `https://api.pimlico.io/v2/${blockchainToChainId(chain)}/rpc?apikey=${PIMLICO_API_KEY}`;\n}\n"]}
|