@crossmint/client-sdk-smart-wallet 0.1.21 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SmartWalletSDK.cjs +34 -1
- package/dist/SmartWalletSDK.cjs.map +1 -0
- package/dist/SmartWalletSDK.js +34 -1
- package/dist/SmartWalletSDK.js.map +1 -0
- package/dist/api/CrossmintWalletService.cjs +13 -1
- package/dist/api/CrossmintWalletService.cjs.map +1 -0
- package/dist/api/CrossmintWalletService.js +13 -1
- package/dist/api/CrossmintWalletService.js.map +1 -0
- package/dist/blockchain/chains.cjs +23 -1
- package/dist/blockchain/chains.cjs.map +1 -0
- package/dist/blockchain/chains.js +23 -1
- package/dist/blockchain/chains.js.map +1 -0
- package/dist/blockchain/rpc.cjs +11 -1
- package/dist/blockchain/rpc.cjs.map +1 -0
- package/dist/blockchain/rpc.js +11 -1
- package/dist/blockchain/rpc.js.map +1 -0
- package/dist/blockchain/transfer.cjs +7 -1
- package/dist/blockchain/transfer.cjs.map +1 -0
- package/dist/blockchain/transfer.js +7 -1
- package/dist/blockchain/transfer.js.map +1 -0
- package/dist/blockchain/wallets/EVMSmartWallet.cjs +10 -1
- package/dist/blockchain/wallets/EVMSmartWallet.cjs.map +1 -0
- package/dist/blockchain/wallets/EVMSmartWallet.js +10 -1
- package/dist/blockchain/wallets/EVMSmartWallet.js.map +1 -0
- package/dist/blockchain/wallets/SendTransactionService.cjs +11 -1
- package/dist/blockchain/wallets/SendTransactionService.cjs.map +1 -0
- package/dist/blockchain/wallets/SendTransactionService.js +11 -1
- package/dist/blockchain/wallets/SendTransactionService.js.map +1 -0
- package/dist/blockchain/wallets/account/cache.cjs +9 -1
- package/dist/blockchain/wallets/account/cache.cjs.map +1 -0
- package/dist/blockchain/wallets/account/cache.js +9 -1
- package/dist/blockchain/wallets/account/cache.js.map +1 -0
- package/dist/blockchain/wallets/account/config.cjs +9 -1
- package/dist/blockchain/wallets/account/config.cjs.map +1 -0
- package/dist/blockchain/wallets/account/config.js +9 -1
- package/dist/blockchain/wallets/account/config.js.map +1 -0
- package/dist/blockchain/wallets/account/creator.cjs +10 -1
- package/dist/blockchain/wallets/account/creator.cjs.map +1 -0
- package/dist/blockchain/wallets/account/creator.js +10 -1
- package/dist/blockchain/wallets/account/creator.js.map +1 -0
- package/dist/blockchain/wallets/account/eoa.cjs +11 -1
- package/dist/blockchain/wallets/account/eoa.cjs.map +1 -0
- package/dist/blockchain/wallets/account/eoa.js +11 -1
- package/dist/blockchain/wallets/account/eoa.js.map +1 -0
- package/dist/blockchain/wallets/account/passkey.cjs +9 -1
- package/dist/blockchain/wallets/account/passkey.cjs.map +1 -0
- package/dist/blockchain/wallets/account/passkey.js +9 -1
- package/dist/blockchain/wallets/account/passkey.js.map +1 -0
- package/dist/blockchain/wallets/account/signer.cjs +9 -1
- package/dist/blockchain/wallets/account/signer.cjs.map +1 -0
- package/dist/blockchain/wallets/account/signer.js +9 -1
- package/dist/blockchain/wallets/account/signer.js.map +1 -0
- package/dist/blockchain/wallets/account/strategy.cjs +1 -1
- package/dist/blockchain/wallets/account/strategy.cjs.map +1 -0
- package/dist/blockchain/wallets/account/strategy.js +1 -0
- package/dist/blockchain/wallets/account/strategy.js.map +1 -0
- package/dist/blockchain/wallets/clientDecorator.cjs +12 -1
- package/dist/blockchain/wallets/clientDecorator.cjs.map +1 -0
- package/dist/blockchain/wallets/clientDecorator.js +12 -1
- package/dist/blockchain/wallets/clientDecorator.js.map +1 -0
- package/dist/blockchain/wallets/index.cjs +10 -1
- package/dist/blockchain/wallets/index.cjs.map +1 -0
- package/dist/blockchain/wallets/index.js +10 -1
- package/dist/blockchain/wallets/index.js.map +1 -0
- package/dist/blockchain/wallets/paymaster.cjs +10 -1
- package/dist/blockchain/wallets/paymaster.cjs.map +1 -0
- package/dist/blockchain/wallets/paymaster.js +10 -1
- package/dist/blockchain/wallets/paymaster.js.map +1 -0
- package/dist/blockchain/wallets/service.cjs +16 -1
- package/dist/blockchain/wallets/service.cjs.map +1 -0
- package/dist/blockchain/wallets/service.js +16 -1
- package/dist/blockchain/wallets/service.js.map +1 -0
- package/dist/chunk-2HB65Y7D.js +79 -0
- package/dist/chunk-2HB65Y7D.js.map +1 -0
- package/dist/chunk-3EQHAQXO.js +112 -0
- package/dist/chunk-3EQHAQXO.js.map +1 -0
- package/dist/chunk-3R6PW6HY.js +30 -0
- package/dist/chunk-3R6PW6HY.js.map +1 -0
- package/dist/chunk-4NTNOPLE.cjs +14 -0
- package/dist/chunk-4NTNOPLE.cjs.map +1 -0
- package/dist/chunk-535JCXYA.js +44 -0
- package/dist/chunk-535JCXYA.js.map +1 -0
- package/dist/chunk-5EHCB2XX.cjs +22 -0
- package/dist/chunk-5EHCB2XX.cjs.map +1 -0
- package/dist/{chunk-XJGFG3RT.cjs → chunk-5MG5CIEX.cjs} +13 -1
- package/dist/chunk-5MG5CIEX.cjs.map +1 -0
- package/dist/chunk-5URMCCO6.js +9 -0
- package/dist/chunk-5URMCCO6.js.map +1 -0
- package/dist/chunk-5WVQ7J3E.cjs +369 -0
- package/dist/chunk-5WVQ7J3E.cjs.map +1 -0
- package/dist/chunk-6NJVFL2X.js +60 -0
- package/dist/chunk-6NJVFL2X.js.map +1 -0
- package/dist/chunk-77GT6B5L.cjs +79 -0
- package/dist/chunk-77GT6B5L.cjs.map +1 -0
- package/dist/chunk-7KTQNIAZ.cjs +112 -0
- package/dist/chunk-7KTQNIAZ.cjs.map +1 -0
- package/dist/chunk-A6KV4FS7.cjs +99 -0
- package/dist/chunk-A6KV4FS7.cjs.map +1 -0
- package/dist/chunk-AKSNZLJ2.cjs +39 -0
- package/dist/chunk-AKSNZLJ2.cjs.map +1 -0
- package/dist/chunk-ASIPMVRQ.js +90 -0
- package/dist/chunk-ASIPMVRQ.js.map +1 -0
- package/dist/chunk-BARW756O.js +27 -0
- package/dist/chunk-BARW756O.js.map +1 -0
- package/dist/chunk-BEKNEEJQ.js +36 -0
- package/dist/chunk-BEKNEEJQ.js.map +1 -0
- package/dist/chunk-BQ5BBWL3.cjs +93 -0
- package/dist/chunk-BQ5BBWL3.cjs.map +1 -0
- package/dist/chunk-BXSAJOIV.cjs +90 -0
- package/dist/chunk-BXSAJOIV.cjs.map +1 -0
- package/dist/chunk-DTEA33DF.cjs +59 -0
- package/dist/chunk-DTEA33DF.cjs.map +1 -0
- package/dist/chunk-DYO4HODM.cjs +36 -0
- package/dist/chunk-DYO4HODM.cjs.map +1 -0
- package/dist/chunk-ECIGZ74W.js +123 -0
- package/dist/chunk-ECIGZ74W.js.map +1 -0
- package/dist/chunk-EPEGJY6N.cjs +9 -0
- package/dist/chunk-EPEGJY6N.cjs.map +1 -0
- package/dist/chunk-EQSMHR77.js +30 -0
- package/dist/chunk-EQSMHR77.js.map +1 -0
- package/dist/chunk-FSIMJYXR.js +36 -0
- package/dist/chunk-FSIMJYXR.js.map +1 -0
- package/dist/chunk-FXGOVLZW.cjs +9 -0
- package/dist/chunk-FXGOVLZW.cjs.map +1 -0
- package/dist/chunk-IKVGZHGP.cjs +44 -0
- package/dist/chunk-IKVGZHGP.cjs.map +1 -0
- package/dist/chunk-IYBOBUTI.js +66 -0
- package/dist/chunk-IYBOBUTI.js.map +1 -0
- package/dist/chunk-JOB7STIS.js +9 -0
- package/dist/chunk-JOB7STIS.js.map +1 -0
- package/dist/chunk-JSFGHJTS.js +82 -0
- package/dist/chunk-JSFGHJTS.js.map +1 -0
- package/dist/chunk-KHROQTVY.js +1 -0
- package/dist/chunk-KHROQTVY.js.map +1 -0
- package/dist/chunk-LGYR5QB5.cjs +66 -0
- package/dist/chunk-LGYR5QB5.cjs.map +1 -0
- package/dist/chunk-MILDB23W.js +14 -0
- package/dist/chunk-MILDB23W.js.map +1 -0
- package/dist/chunk-N6DG5EZG.cjs +156 -0
- package/dist/chunk-N6DG5EZG.cjs.map +1 -0
- package/dist/chunk-O3YQNP7C.js +99 -0
- package/dist/chunk-O3YQNP7C.js.map +1 -0
- package/dist/chunk-O6IFYHDP.cjs +36 -0
- package/dist/chunk-O6IFYHDP.cjs.map +1 -0
- package/dist/chunk-OGA3YDWS.cjs +112 -0
- package/dist/chunk-OGA3YDWS.cjs.map +1 -0
- package/dist/chunk-ON4DOYVD.js +369 -0
- package/dist/chunk-ON4DOYVD.js.map +1 -0
- package/dist/chunk-OSQSSEFB.cjs +123 -0
- package/dist/chunk-OSQSSEFB.cjs.map +1 -0
- package/dist/chunk-PF7Q7DFL.cjs +82 -0
- package/dist/chunk-PF7Q7DFL.cjs.map +1 -0
- package/dist/chunk-PVFA6PBX.cjs +60 -0
- package/dist/chunk-PVFA6PBX.cjs.map +1 -0
- package/dist/chunk-QFMVSQA5.js +93 -0
- package/dist/chunk-QFMVSQA5.js.map +1 -0
- package/dist/chunk-QJ3BSVGV.js +36 -0
- package/dist/chunk-QJ3BSVGV.js.map +1 -0
- package/dist/chunk-QZWWILWQ.cjs +36 -0
- package/dist/chunk-QZWWILWQ.cjs.map +1 -0
- package/dist/chunk-SEA2NTT5.js +22 -0
- package/dist/chunk-SEA2NTT5.js.map +1 -0
- package/dist/chunk-SMDX2MXU.js +13 -0
- package/dist/chunk-SMDX2MXU.js.map +1 -0
- package/dist/chunk-TDJDKTRS.js +156 -0
- package/dist/chunk-TDJDKTRS.js.map +1 -0
- package/dist/chunk-U4OBHCIP.js +59 -0
- package/dist/chunk-U4OBHCIP.js.map +1 -0
- package/dist/chunk-UQKE6R5W.cjs +27 -0
- package/dist/chunk-UQKE6R5W.cjs.map +1 -0
- package/dist/chunk-UZGHOTKZ.js +112 -0
- package/dist/chunk-UZGHOTKZ.js.map +1 -0
- package/dist/chunk-W3Y26K52.cjs +41 -0
- package/dist/chunk-W3Y26K52.cjs.map +1 -0
- package/dist/chunk-YVORZRCJ.js +39 -0
- package/dist/chunk-YVORZRCJ.js.map +1 -0
- package/dist/chunk-YWCXHOSD.cjs +30 -0
- package/dist/chunk-YWCXHOSD.cjs.map +1 -0
- package/dist/chunk-Z4DWICCM.js +41 -0
- package/dist/chunk-Z4DWICCM.js.map +1 -0
- package/dist/chunk-ZN42AA2G.cjs +1 -0
- package/dist/chunk-ZN42AA2G.cjs.map +1 -0
- package/dist/chunk-ZOXKITU4.cjs +30 -0
- package/dist/chunk-ZOXKITU4.cjs.map +1 -0
- package/dist/error/index.cjs +25 -1
- package/dist/error/index.cjs.map +1 -0
- package/dist/error/index.js +25 -1
- package/dist/error/index.js.map +1 -0
- package/dist/error/processor.cjs +9 -1
- package/dist/error/processor.cjs.map +1 -0
- package/dist/error/processor.js +9 -1
- package/dist/error/processor.js.map +1 -0
- package/dist/index.cjs +86 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +86 -1
- package/dist/index.js.map +1 -0
- package/dist/services/index.cjs +11 -1
- package/dist/services/index.cjs.map +1 -0
- package/dist/services/index.js +11 -1
- package/dist/services/index.js.map +1 -0
- package/dist/services/logger.cjs +10 -1
- package/dist/services/logger.cjs.map +1 -0
- package/dist/services/logger.js +10 -1
- package/dist/services/logger.js.map +1 -0
- package/dist/types/internal.cjs +18 -1
- package/dist/types/internal.cjs.map +1 -0
- package/dist/types/internal.js +18 -1
- package/dist/types/internal.js.map +1 -0
- package/dist/types/params.cjs +1 -1
- package/dist/types/params.cjs.map +1 -0
- package/dist/types/params.js +1 -0
- package/dist/types/params.js.map +1 -0
- package/dist/types/schema.cjs +16 -1
- package/dist/types/schema.cjs.map +1 -0
- package/dist/types/schema.js +16 -1
- package/dist/types/schema.js.map +1 -0
- package/dist/types/service.cjs +1 -1
- package/dist/types/service.cjs.map +1 -0
- package/dist/types/service.js +1 -0
- package/dist/types/service.js.map +1 -0
- package/dist/types/token.cjs +1 -1
- package/dist/types/token.cjs.map +1 -0
- package/dist/types/token.js +1 -0
- package/dist/types/token.js.map +1 -0
- package/dist/utils/api.cjs +9 -1
- package/dist/utils/api.cjs.map +1 -0
- package/dist/utils/api.js +9 -1
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/blockchain.cjs +7 -1
- package/dist/utils/blockchain.cjs.map +1 -0
- package/dist/utils/blockchain.js +7 -1
- package/dist/utils/blockchain.js.map +1 -0
- package/dist/utils/constants.cjs +19 -1
- package/dist/utils/constants.cjs.map +1 -0
- package/dist/utils/constants.js +19 -1
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/environment.cjs +7 -1
- package/dist/utils/environment.cjs.map +1 -0
- package/dist/utils/environment.js +7 -1
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/helpers.cjs +9 -1
- package/dist/utils/helpers.cjs.map +1 -0
- package/dist/utils/helpers.js +9 -1
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/signer.cjs +10 -1
- package/dist/utils/signer.cjs.map +1 -0
- package/dist/utils/signer.js +10 -1
- package/dist/utils/signer.js.map +1 -0
- package/dist/utils/test.cjs +27 -1
- package/dist/utils/test.cjs.map +1 -0
- package/dist/utils/test.js +27 -1
- package/dist/utils/test.js.map +1 -0
- package/package.json +4 -4
- package/dist/chunk-27US7ZBX.js +0 -1
- package/dist/chunk-2GS5TXEY.cjs +0 -1
- package/dist/chunk-2R6HK64N.cjs +0 -1
- package/dist/chunk-3F6P4HUZ.js +0 -1
- package/dist/chunk-4SPA557P.js +0 -0
- package/dist/chunk-5M3MSPHK.cjs +0 -1
- package/dist/chunk-6DE5YEO5.cjs +0 -1
- package/dist/chunk-7AVDZZGD.cjs +0 -1
- package/dist/chunk-7FXFOOQU.cjs +0 -1
- package/dist/chunk-7JAT6GQU.js +0 -1
- package/dist/chunk-ATQ4WGCW.js +0 -1
- package/dist/chunk-B3LJJZXD.cjs +0 -2
- package/dist/chunk-BJZQA5VC.js +0 -1
- package/dist/chunk-BXXREMNR.cjs +0 -1
- package/dist/chunk-C3VZY7VJ.js +0 -1
- package/dist/chunk-CPYNP4XI.js +0 -1
- package/dist/chunk-CUTQYF3F.js +0 -1
- package/dist/chunk-D4NDUT36.js +0 -1
- package/dist/chunk-DIDKPOO2.cjs +0 -1
- package/dist/chunk-ETVJGLNY.js +0 -1
- package/dist/chunk-FHNNZVNU.js +0 -1
- package/dist/chunk-FIJ3CBJ4.js +0 -3
- package/dist/chunk-G57LROTD.js +0 -1
- package/dist/chunk-GB35YMN4.cjs +0 -1
- package/dist/chunk-H4CMXNVK.js +0 -1
- package/dist/chunk-IQTGPM2U.cjs +0 -1
- package/dist/chunk-KYPTGHC6.cjs +0 -1
- package/dist/chunk-LMVY4C4Y.js +0 -1
- package/dist/chunk-M4K3IZTT.cjs +0 -1
- package/dist/chunk-NLGILHJS.js +0 -1
- package/dist/chunk-O2ACORII.cjs +0 -1
- package/dist/chunk-OCJYX5QF.cjs +0 -1
- package/dist/chunk-ODAUWGUU.cjs +0 -1
- package/dist/chunk-PBUJXVQT.js +0 -1
- package/dist/chunk-PLRQBDYS.cjs +0 -1
- package/dist/chunk-PPTSNCSQ.cjs +0 -1
- package/dist/chunk-PZ6Q22YJ.js +0 -1
- package/dist/chunk-Q44P7MO7.cjs +0 -1
- package/dist/chunk-QVB3HE6Q.js +0 -2
- package/dist/chunk-S2XBSAGM.js +0 -1
- package/dist/chunk-SCXFZMLR.cjs +0 -1
- package/dist/chunk-STH2LE35.cjs +0 -1
- package/dist/chunk-SWWOVT47.cjs +0 -1
- package/dist/chunk-TZG6MROQ.js +0 -1
- package/dist/chunk-UG47CBKR.js +0 -1
- package/dist/chunk-UPURFW46.js +0 -1
- package/dist/chunk-WDM7PN4O.js +0 -1
- package/dist/chunk-WJ6XJMRD.cjs +0 -1
- package/dist/chunk-WTPE2I2Q.cjs +0 -1
- package/dist/chunk-XHSA4YTO.cjs +0 -3
- package/dist/chunk-XP6ESWVJ.js +0 -1
- package/dist/chunk-XQ2K2K23.cjs +0 -1
- package/dist/chunk-YBHSEZMB.js +0 -1
- package/dist/chunk-YZQJV2KA.cjs +0 -1
- package/dist/chunk-Z22H3MJS.js +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkFXGOVLZWcjs = require('./chunk-FXGOVLZW.cjs');
|
|
4
|
+
|
|
5
|
+
// src/blockchain/wallets/paymaster.ts
|
|
6
|
+
function usePaymaster(chain) {
|
|
7
|
+
return !_chunkFXGOVLZWcjs.usesGelatoBundler.call(void 0, 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
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.usePaymaster = usePaymaster; exports.paymasterMiddleware = paymasterMiddleware;
|
|
36
|
+
//# sourceMappingURL=chunk-DYO4HODM.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/blockchain/wallets/paymaster.ts"],"names":[],"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","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"]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PasskeyCreationStrategy
|
|
3
|
+
} from "./chunk-TDJDKTRS.js";
|
|
4
|
+
import {
|
|
5
|
+
ClientDecorator
|
|
6
|
+
} from "./chunk-QFMVSQA5.js";
|
|
7
|
+
import {
|
|
8
|
+
SmartWalletService
|
|
9
|
+
} from "./chunk-O3YQNP7C.js";
|
|
10
|
+
import {
|
|
11
|
+
AccountConfigCache
|
|
12
|
+
} from "./chunk-535JCXYA.js";
|
|
13
|
+
import {
|
|
14
|
+
AccountConfigService
|
|
15
|
+
} from "./chunk-2HB65Y7D.js";
|
|
16
|
+
import {
|
|
17
|
+
AccountCreator
|
|
18
|
+
} from "./chunk-Z4DWICCM.js";
|
|
19
|
+
import {
|
|
20
|
+
EOACreationStrategy
|
|
21
|
+
} from "./chunk-U4OBHCIP.js";
|
|
22
|
+
import {
|
|
23
|
+
isClient
|
|
24
|
+
} from "./chunk-5URMCCO6.js";
|
|
25
|
+
import {
|
|
26
|
+
CrossmintWalletService
|
|
27
|
+
} from "./chunk-JSFGHJTS.js";
|
|
28
|
+
import {
|
|
29
|
+
scwDatadogLogger,
|
|
30
|
+
scwLogger
|
|
31
|
+
} from "./chunk-MILDB23W.js";
|
|
32
|
+
import {
|
|
33
|
+
isMainnetChain,
|
|
34
|
+
isTestnetChain
|
|
35
|
+
} from "./chunk-6NJVFL2X.js";
|
|
36
|
+
import {
|
|
37
|
+
ErrorProcessor
|
|
38
|
+
} from "./chunk-YVORZRCJ.js";
|
|
39
|
+
import {
|
|
40
|
+
SDK_VERSION
|
|
41
|
+
} from "./chunk-SEA2NTT5.js";
|
|
42
|
+
import {
|
|
43
|
+
SmartWalletError
|
|
44
|
+
} from "./chunk-ASIPMVRQ.js";
|
|
45
|
+
|
|
46
|
+
// src/SmartWalletSDK.ts
|
|
47
|
+
import { stringify } from "viem";
|
|
48
|
+
import { validateAPIKey } from "@crossmint/common-sdk-base";
|
|
49
|
+
var SmartWalletSDK = class _SmartWalletSDK {
|
|
50
|
+
constructor(crossmintEnv, smartWalletService, errorProcessor, logger = scwLogger) {
|
|
51
|
+
this.crossmintEnv = crossmintEnv;
|
|
52
|
+
this.smartWalletService = smartWalletService;
|
|
53
|
+
this.errorProcessor = errorProcessor;
|
|
54
|
+
this.logger = logger;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Initializes the SDK with the **client side** API key obtained from the Crossmint console.
|
|
58
|
+
* @throws error if the api key is not formatted correctly.
|
|
59
|
+
*/
|
|
60
|
+
static init({ clientApiKey }) {
|
|
61
|
+
const validationResult = validateAPIKey(clientApiKey);
|
|
62
|
+
if (!validationResult.isValid) {
|
|
63
|
+
throw new Error("API key invalid");
|
|
64
|
+
}
|
|
65
|
+
const crossmintService = new CrossmintWalletService(clientApiKey);
|
|
66
|
+
const errorProcessor = new ErrorProcessor(scwDatadogLogger);
|
|
67
|
+
const accountCreator = new AccountCreator(
|
|
68
|
+
new EOACreationStrategy(),
|
|
69
|
+
new PasskeyCreationStrategy(crossmintService.getPasskeyServerUrl(), clientApiKey)
|
|
70
|
+
);
|
|
71
|
+
const accountCache = new AccountConfigCache(`smart-wallet-${SDK_VERSION}`);
|
|
72
|
+
const smartWalletService = new SmartWalletService(
|
|
73
|
+
crossmintService,
|
|
74
|
+
new AccountConfigService(crossmintService, accountCache),
|
|
75
|
+
accountCreator,
|
|
76
|
+
new ClientDecorator(errorProcessor)
|
|
77
|
+
);
|
|
78
|
+
return new _SmartWalletSDK(validationResult.environment, smartWalletService, errorProcessor);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Retrieves or creates a wallet for the specified user.
|
|
82
|
+
* The default configuration is a `PasskeySigner` with the name, which is displayed to the user during creation or signing prompts, derived from the provided jwt.
|
|
83
|
+
*
|
|
84
|
+
* Example using the default passkey signer:
|
|
85
|
+
* ```ts
|
|
86
|
+
* const wallet = await smartWalletSDK.getOrCreateWallet({ jwt: "xxx" }, "base");
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
async getOrCreateWallet(user, chain, walletParams = { signer: { type: "PASSKEY" } }) {
|
|
90
|
+
if (!isClient()) {
|
|
91
|
+
throw new SmartWalletError("Smart Wallet SDK should only be used client side.");
|
|
92
|
+
}
|
|
93
|
+
this.assertValidChain(chain);
|
|
94
|
+
return await this.logger.logPerformance("GET_OR_CREATE_WALLET", async () => {
|
|
95
|
+
try {
|
|
96
|
+
return await this.smartWalletService.getOrCreate(user, chain, walletParams);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
throw this.errorProcessor.map(
|
|
99
|
+
error,
|
|
100
|
+
new SmartWalletError(`Wallet creation failed: ${error.message}.`, stringify(error))
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
assertValidChain(chain) {
|
|
106
|
+
if (!this.validChain(chain)) {
|
|
107
|
+
throw new SmartWalletError(
|
|
108
|
+
`The selected chain "${chain}" is not available in "${this.crossmintEnv}". Either set a valid chain or check you're using an API key for the environment you're trying to target.`
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
validChain(chain) {
|
|
113
|
+
if (this.crossmintEnv === "development" || this.crossmintEnv === "staging") {
|
|
114
|
+
return isTestnetChain(chain);
|
|
115
|
+
}
|
|
116
|
+
return isMainnetChain(chain);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
export {
|
|
121
|
+
SmartWalletSDK
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=chunk-ECIGZ74W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/SmartWalletSDK.ts"],"sourcesContent":["import { stringify } from \"viem\";\n\nimport { type APIKeyEnvironmentPrefix, validateAPIKey } from \"@crossmint/common-sdk-base\";\n\nimport { CrossmintWalletService } from \"./api/CrossmintWalletService\";\nimport { type SmartWalletChain, isMainnetChain, isTestnetChain } from \"./blockchain/chains\";\nimport type { EVMSmartWallet } from \"./blockchain/wallets\";\nimport { AccountConfigCache } from \"./blockchain/wallets/account/cache\";\nimport { AccountConfigService } from \"./blockchain/wallets/account/config\";\nimport { AccountCreator } from \"./blockchain/wallets/account/creator\";\nimport { EOACreationStrategy } from \"./blockchain/wallets/account/eoa\";\nimport { PasskeyCreationStrategy } from \"./blockchain/wallets/account/passkey\";\nimport { ClientDecorator } from \"./blockchain/wallets/clientDecorator\";\nimport { SmartWalletService } from \"./blockchain/wallets/service\";\nimport { SmartWalletError } from \"./error\";\nimport { ErrorProcessor } from \"./error/processor\";\nimport { scwDatadogLogger, scwLogger } from \"./services\";\nimport type { SmartWalletSDKInitParams, UserParams, WalletParams } from \"./types/params\";\nimport { SDK_VERSION } from \"./utils/constants\";\nimport { isClient } from \"./utils/environment\";\n\nexport class SmartWalletSDK {\n private constructor(\n private readonly crossmintEnv: APIKeyEnvironmentPrefix,\n private readonly smartWalletService: SmartWalletService,\n private readonly errorProcessor: ErrorProcessor,\n private readonly logger = scwLogger\n ) {}\n\n /**\n * Initializes the SDK with the **client side** API key obtained from the Crossmint console.\n * @throws error if the api key is not formatted correctly.\n */\n static init({ clientApiKey }: SmartWalletSDKInitParams): SmartWalletSDK {\n const validationResult = validateAPIKey(clientApiKey);\n if (!validationResult.isValid) {\n throw new Error(\"API key invalid\");\n }\n\n const crossmintService = new CrossmintWalletService(clientApiKey);\n const errorProcessor = new ErrorProcessor(scwDatadogLogger);\n const accountCreator = new AccountCreator(\n new EOACreationStrategy(),\n new PasskeyCreationStrategy(crossmintService.getPasskeyServerUrl(), clientApiKey)\n );\n const accountCache = new AccountConfigCache(`smart-wallet-${SDK_VERSION}`);\n\n const smartWalletService = new SmartWalletService(\n crossmintService,\n new AccountConfigService(crossmintService, accountCache),\n accountCreator,\n new ClientDecorator(errorProcessor)\n );\n\n return new SmartWalletSDK(validationResult.environment, smartWalletService, errorProcessor);\n }\n\n /**\n * Retrieves or creates a wallet for the specified user.\n * The default configuration is a `PasskeySigner` with the name, which is displayed to the user during creation or signing prompts, derived from the provided jwt.\n *\n * Example using the default passkey signer:\n * ```ts\n * const wallet = await smartWalletSDK.getOrCreateWallet({ jwt: \"xxx\" }, \"base\");\n * ```\n */\n async getOrCreateWallet(\n user: UserParams,\n chain: SmartWalletChain,\n walletParams: WalletParams = { signer: { type: \"PASSKEY\" } }\n ): Promise<EVMSmartWallet> {\n if (!isClient()) {\n throw new SmartWalletError(\"Smart Wallet SDK should only be used client side.\");\n }\n this.assertValidChain(chain);\n\n return await this.logger.logPerformance(\"GET_OR_CREATE_WALLET\", async () => {\n try {\n return await this.smartWalletService.getOrCreate(user, chain, walletParams);\n } catch (error: any) {\n throw this.errorProcessor.map(\n error,\n new SmartWalletError(`Wallet creation failed: ${error.message}.`, stringify(error))\n );\n }\n });\n }\n\n private assertValidChain(chain: SmartWalletChain) {\n if (!this.validChain(chain)) {\n throw new SmartWalletError(\n `The selected chain \"${chain}\" is not available in \"${this.crossmintEnv}\". Either set a valid chain or check you're using an API key for the environment you're trying to target.`\n );\n }\n }\n\n private validChain(chain: SmartWalletChain): boolean {\n if (this.crossmintEnv === \"development\" || this.crossmintEnv === \"staging\") {\n return isTestnetChain(chain);\n }\n\n return isMainnetChain(chain);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,iBAAiB;AAE1B,SAAuC,sBAAsB;AAmBtD,IAAM,iBAAN,MAAM,gBAAe;AAAA,EAChB,YACa,cACA,oBACA,gBACA,SAAS,WAC5B;AAJmB;AACA;AACA;AACA;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMH,OAAO,KAAK,EAAE,aAAa,GAA6C;AACpE,UAAM,mBAAmB,eAAe,YAAY;AACpD,QAAI,CAAC,iBAAiB,SAAS;AAC3B,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACrC;AAEA,UAAM,mBAAmB,IAAI,uBAAuB,YAAY;AAChE,UAAM,iBAAiB,IAAI,eAAe,gBAAgB;AAC1D,UAAM,iBAAiB,IAAI;AAAA,MACvB,IAAI,oBAAoB;AAAA,MACxB,IAAI,wBAAwB,iBAAiB,oBAAoB,GAAG,YAAY;AAAA,IACpF;AACA,UAAM,eAAe,IAAI,mBAAmB,gBAAgB,WAAW,EAAE;AAEzE,UAAM,qBAAqB,IAAI;AAAA,MAC3B;AAAA,MACA,IAAI,qBAAqB,kBAAkB,YAAY;AAAA,MACvD;AAAA,MACA,IAAI,gBAAgB,cAAc;AAAA,IACtC;AAEA,WAAO,IAAI,gBAAe,iBAAiB,aAAa,oBAAoB,cAAc;AAAA,EAC9F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,kBACF,MACA,OACA,eAA6B,EAAE,QAAQ,EAAE,MAAM,UAAU,EAAE,GACpC;AACvB,QAAI,CAAC,SAAS,GAAG;AACb,YAAM,IAAI,iBAAiB,mDAAmD;AAAA,IAClF;AACA,SAAK,iBAAiB,KAAK;AAE3B,WAAO,MAAM,KAAK,OAAO,eAAe,wBAAwB,YAAY;AACxE,UAAI;AACA,eAAO,MAAM,KAAK,mBAAmB,YAAY,MAAM,OAAO,YAAY;AAAA,MAC9E,SAAS,OAAY;AACjB,cAAM,KAAK,eAAe;AAAA,UACtB;AAAA,UACA,IAAI,iBAAiB,2BAA2B,MAAM,OAAO,KAAK,UAAU,KAAK,CAAC;AAAA,QACtF;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEQ,iBAAiB,OAAyB;AAC9C,QAAI,CAAC,KAAK,WAAW,KAAK,GAAG;AACzB,YAAM,IAAI;AAAA,QACN,uBAAuB,KAAK,0BAA0B,KAAK,YAAY;AAAA,MAC3E;AAAA,IACJ;AAAA,EACJ;AAAA,EAEQ,WAAW,OAAkC;AACjD,QAAI,KAAK,iBAAiB,iBAAiB,KAAK,iBAAiB,WAAW;AACxE,aAAO,eAAe,KAAK;AAAA,IAC/B;AAEA,WAAO,eAAe,KAAK;AAAA,EAC/B;AACJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/environment.ts"],"names":[],"mappings":";AAAO,SAAS,WAAW;AACvB,SAAO,OAAO,WAAW;AAC7B","sourcesContent":["export function isClient() {\n return typeof window !== \"undefined\";\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SmartWalletError
|
|
3
|
+
} from "./chunk-ASIPMVRQ.js";
|
|
4
|
+
|
|
5
|
+
// src/utils/signer.ts
|
|
6
|
+
import { providerToSmartAccountSigner } from "permissionless";
|
|
7
|
+
async function createOwnerSigner({
|
|
8
|
+
walletParams
|
|
9
|
+
}) {
|
|
10
|
+
if (isEIP1193Provider(walletParams.signer)) {
|
|
11
|
+
return await providerToSmartAccountSigner(walletParams.signer);
|
|
12
|
+
} else if (isAccount(walletParams.signer)) {
|
|
13
|
+
return walletParams.signer.account;
|
|
14
|
+
} else {
|
|
15
|
+
const signer = walletParams.signer;
|
|
16
|
+
throw new SmartWalletError(`The signer type ${signer.type} is not supported`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function isEIP1193Provider(signer) {
|
|
20
|
+
return signer && typeof signer.request === "function";
|
|
21
|
+
}
|
|
22
|
+
function isAccount(signer) {
|
|
23
|
+
return signer && signer.type === "VIEM_ACCOUNT";
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export {
|
|
27
|
+
createOwnerSigner,
|
|
28
|
+
isAccount
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-EQSMHR77.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/signer.ts"],"sourcesContent":["import { providerToSmartAccountSigner } from \"permissionless\";\nimport type { SmartAccountSigner } from \"permissionless/accounts\";\nimport type { Address, EIP1193Provider } from \"viem\";\n\nimport type { SmartWalletChain } from \"../blockchain/chains\";\nimport { SmartWalletError } from \"../error\";\nimport type { ViemAccount, WalletParams } from \"../types/params\";\n\ntype CreateOwnerSignerInput = {\n chain: SmartWalletChain;\n walletParams: WalletParams;\n};\n\nexport async function createOwnerSigner({\n walletParams,\n}: CreateOwnerSignerInput): Promise<SmartAccountSigner<\"custom\", Address>> {\n if (isEIP1193Provider(walletParams.signer)) {\n return await providerToSmartAccountSigner(walletParams.signer);\n } else if (isAccount(walletParams.signer)) {\n return walletParams.signer.account;\n } else {\n const signer = walletParams.signer as any;\n throw new SmartWalletError(`The signer type ${signer.type} is not supported`);\n }\n}\n\nfunction isEIP1193Provider(signer: any): signer is EIP1193Provider {\n return signer && typeof signer.request === \"function\";\n}\n\nexport function isAccount(signer: any): signer is ViemAccount {\n return signer && signer.type === \"VIEM_ACCOUNT\";\n}\n"],"mappings":";;;;;AAAA,SAAS,oCAAoC;AAa7C,eAAsB,kBAAkB;AAAA,EACpC;AACJ,GAA2E;AACvE,MAAI,kBAAkB,aAAa,MAAM,GAAG;AACxC,WAAO,MAAM,6BAA6B,aAAa,MAAM;AAAA,EACjE,WAAW,UAAU,aAAa,MAAM,GAAG;AACvC,WAAO,aAAa,OAAO;AAAA,EAC/B,OAAO;AACH,UAAM,SAAS,aAAa;AAC5B,UAAM,IAAI,iBAAiB,mBAAmB,OAAO,IAAI,mBAAmB;AAAA,EAChF;AACJ;AAEA,SAAS,kBAAkB,QAAwC;AAC/D,SAAO,UAAU,OAAO,OAAO,YAAY;AAC/C;AAEO,SAAS,UAAU,QAAoC;AAC1D,SAAO,UAAU,OAAO,SAAS;AACrC;","names":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// src/utils/api.ts
|
|
2
|
+
import { toHex } from "viem";
|
|
3
|
+
function mapObject(data, fn) {
|
|
4
|
+
const result = fn(data);
|
|
5
|
+
if (result.replace) {
|
|
6
|
+
return result.value;
|
|
7
|
+
}
|
|
8
|
+
if (Array.isArray(data)) {
|
|
9
|
+
return data.map((item) => mapObject(item, fn));
|
|
10
|
+
} else if (data !== null && typeof data === "object") {
|
|
11
|
+
return Object.fromEntries(Object.entries(data).map(([key, value]) => [key, mapObject(value, fn)]));
|
|
12
|
+
}
|
|
13
|
+
return result.value;
|
|
14
|
+
}
|
|
15
|
+
function bigintsToHex(data) {
|
|
16
|
+
return mapObject(data, (value) => {
|
|
17
|
+
if (typeof value === "bigint") {
|
|
18
|
+
return { value: toHex(value), replace: true };
|
|
19
|
+
}
|
|
20
|
+
return { value, replace: false };
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function parseBigintAPIResponse(data) {
|
|
24
|
+
return mapObject(data, (value) => {
|
|
25
|
+
if (value != null && typeof value == "object" && "__xm_serializedType" in value && "value" in value && value.__xm_serializedType === "bigint" && typeof value.value === "string") {
|
|
26
|
+
return { value: BigInt(value.value), replace: true };
|
|
27
|
+
}
|
|
28
|
+
return { value, replace: false };
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
bigintsToHex,
|
|
34
|
+
parseBigintAPIResponse
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=chunk-FSIMJYXR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/api.ts"],"sourcesContent":["import { toHex } from \"viem\";\n\nfunction mapObject(data: any, fn: (value: unknown) => { value: unknown; replace: boolean }): any {\n const result = fn(data);\n if (result.replace) {\n return result.value;\n }\n if (Array.isArray(data)) {\n return data.map((item) => mapObject(item, fn));\n } else if (data !== null && typeof data === \"object\") {\n return Object.fromEntries(Object.entries(data).map(([key, value]) => [key, mapObject(value, fn)]));\n }\n return result.value;\n}\n\nexport function bigintsToHex(data: any): any {\n return mapObject(data, (value) => {\n if (typeof value === \"bigint\") {\n return { value: toHex(value), replace: true };\n }\n return { value, replace: false };\n });\n}\n\nexport function parseBigintAPIResponse(data: any): any {\n return mapObject(data, (value) => {\n if (\n value != null &&\n typeof value == \"object\" &&\n \"__xm_serializedType\" in value &&\n \"value\" in value &&\n value.__xm_serializedType === \"bigint\" &&\n typeof value.value === \"string\"\n ) {\n return { value: BigInt(value.value), replace: true };\n }\n return { value, replace: false };\n });\n}\n"],"mappings":";AAAA,SAAS,aAAa;AAEtB,SAAS,UAAU,MAAW,IAAmE;AAC7F,QAAM,SAAS,GAAG,IAAI;AACtB,MAAI,OAAO,SAAS;AAChB,WAAO,OAAO;AAAA,EAClB;AACA,MAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,WAAO,KAAK,IAAI,CAAC,SAAS,UAAU,MAAM,EAAE,CAAC;AAAA,EACjD,WAAW,SAAS,QAAQ,OAAO,SAAS,UAAU;AAClD,WAAO,OAAO,YAAY,OAAO,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;AAAA,EACrG;AACA,SAAO,OAAO;AAClB;AAEO,SAAS,aAAa,MAAgB;AACzC,SAAO,UAAU,MAAM,CAAC,UAAU;AAC9B,QAAI,OAAO,UAAU,UAAU;AAC3B,aAAO,EAAE,OAAO,MAAM,KAAK,GAAG,SAAS,KAAK;AAAA,IAChD;AACA,WAAO,EAAE,OAAO,SAAS,MAAM;AAAA,EACnC,CAAC;AACL;AAEO,SAAS,uBAAuB,MAAgB;AACnD,SAAO,UAAU,MAAM,CAAC,UAAU;AAC9B,QACI,SAAS,QACT,OAAO,SAAS,YAChB,yBAAyB,SACzB,WAAW,SACX,MAAM,wBAAwB,YAC9B,OAAO,MAAM,UAAU,UACzB;AACE,aAAO,EAAE,OAAO,OAAO,MAAM,KAAK,GAAG,SAAS,KAAK;AAAA,IACvD;AACA,WAAO,EAAE,OAAO,SAAS,MAAM;AAAA,EACnC,CAAC;AACL;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/blockchain.ts"],"names":[],"mappings":";AAEO,SAAS,kBAAkB,OAAyB;AACvD,SAAO;AACX","sourcesContent":["import type { SmartWalletChain } from \"../blockchain/chains\";\n\nexport function usesGelatoBundler(chain: SmartWalletChain) {\n return false;\n}\n"]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkLGYR5QB5cjs = require('./chunk-LGYR5QB5.cjs');
|
|
4
|
+
|
|
5
|
+
// src/blockchain/wallets/account/cache.ts
|
|
6
|
+
var _viem = require('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 = _chunkLGYR5QB5cjs.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}-${_viem.keccak256.call(void 0, _viem.toHex.call(void 0, user.jwt))}`;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
exports.AccountConfigCache = AccountConfigCache;
|
|
44
|
+
//# sourceMappingURL=chunk-IKVGZHGP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/blockchain/wallets/account/cache.ts"],"names":[],"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","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"]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SUPPORTED_ENTRYPOINT_VERSIONS,
|
|
3
|
+
SUPPORTED_KERNEL_VERSIONS
|
|
4
|
+
} from "./chunk-SEA2NTT5.js";
|
|
5
|
+
|
|
6
|
+
// src/types/schema.ts
|
|
7
|
+
import { PasskeyValidatorContractVersion } from "@zerodev/passkey-validator";
|
|
8
|
+
import { isAddress, isHex } from "viem";
|
|
9
|
+
import { z } from "zod";
|
|
10
|
+
var HexSchema = z.custom((val) => isHex(val), {
|
|
11
|
+
message: "Invalid hex string"
|
|
12
|
+
});
|
|
13
|
+
var evmAddressSchema = z.custom((val) => isAddress(val), {
|
|
14
|
+
message: "Invalid evm address"
|
|
15
|
+
});
|
|
16
|
+
var EOASignerDataSchema = z.object({
|
|
17
|
+
eoaAddress: evmAddressSchema,
|
|
18
|
+
type: z.literal("eoa")
|
|
19
|
+
});
|
|
20
|
+
var PasskeyValidatorSerializedDataSchema = z.object({
|
|
21
|
+
entryPoint: evmAddressSchema,
|
|
22
|
+
validatorAddress: evmAddressSchema,
|
|
23
|
+
pubKeyX: z.string(),
|
|
24
|
+
pubKeyY: z.string(),
|
|
25
|
+
authenticatorIdHash: HexSchema,
|
|
26
|
+
authenticatorId: z.string()
|
|
27
|
+
});
|
|
28
|
+
var PasskeySignerDataSchema = PasskeyValidatorSerializedDataSchema.extend({
|
|
29
|
+
passkeyName: z.string(),
|
|
30
|
+
validatorContractVersion: z.nativeEnum(PasskeyValidatorContractVersion),
|
|
31
|
+
domain: z.string(),
|
|
32
|
+
type: z.literal("passkeys")
|
|
33
|
+
});
|
|
34
|
+
var SignerDataSchema = z.discriminatedUnion("type", [PasskeySignerDataSchema, EOASignerDataSchema]);
|
|
35
|
+
var SmartWalletConfigSchema = z.object({
|
|
36
|
+
kernelVersion: z.enum(SUPPORTED_KERNEL_VERSIONS, {
|
|
37
|
+
errorMap: (_, ctx) => ({
|
|
38
|
+
message: `Unsupported kernel version. Supported versions: ${SUPPORTED_KERNEL_VERSIONS.join(
|
|
39
|
+
", "
|
|
40
|
+
)}. Version used: ${ctx.data}. Please contact support`
|
|
41
|
+
})
|
|
42
|
+
}),
|
|
43
|
+
entryPointVersion: z.enum(SUPPORTED_ENTRYPOINT_VERSIONS, {
|
|
44
|
+
errorMap: (_, ctx) => ({
|
|
45
|
+
message: `Unsupported entry point version. Supported versions: ${SUPPORTED_ENTRYPOINT_VERSIONS.join(
|
|
46
|
+
", "
|
|
47
|
+
)}. Version used: ${ctx.data}. Please contact support`
|
|
48
|
+
})
|
|
49
|
+
}),
|
|
50
|
+
userId: z.string().min(1),
|
|
51
|
+
signers: z.array(
|
|
52
|
+
z.object({
|
|
53
|
+
signerData: SignerDataSchema
|
|
54
|
+
})
|
|
55
|
+
).min(0).max(1, "Invalid wallet signer configuration. Please contact support"),
|
|
56
|
+
smartContractWalletAddress: evmAddressSchema.optional()
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
export {
|
|
60
|
+
EOASignerDataSchema,
|
|
61
|
+
PasskeyValidatorSerializedDataSchema,
|
|
62
|
+
PasskeySignerDataSchema,
|
|
63
|
+
SignerDataSchema,
|
|
64
|
+
SmartWalletConfigSchema
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=chunk-IYBOBUTI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/schema.ts"],"sourcesContent":["import { PasskeyValidatorContractVersion } from \"@zerodev/passkey-validator\";\nimport { isAddress, isHex } from \"viem\";\nimport { z } from \"zod\";\n\nimport { SUPPORTED_ENTRYPOINT_VERSIONS, SUPPORTED_KERNEL_VERSIONS } from \"../utils/constants\";\n\nconst HexSchema = z.custom<`0x${string}`>((val): val is `0x${string}` => isHex(val as string), {\n message: \"Invalid hex string\",\n});\n\nconst evmAddressSchema = z.custom<`0x${string}`>((val): val is `0x${string}` => isAddress(val as string), {\n message: \"Invalid evm address\",\n});\n\nexport const EOASignerDataSchema = z.object({\n eoaAddress: evmAddressSchema,\n type: z.literal(\"eoa\"),\n});\n\nexport const PasskeyValidatorSerializedDataSchema = z.object({\n entryPoint: evmAddressSchema,\n validatorAddress: evmAddressSchema,\n pubKeyX: z.string(),\n pubKeyY: z.string(),\n authenticatorIdHash: HexSchema,\n authenticatorId: z.string(),\n});\n\nexport const PasskeySignerDataSchema = PasskeyValidatorSerializedDataSchema.extend({\n passkeyName: z.string(),\n validatorContractVersion: z.nativeEnum(PasskeyValidatorContractVersion),\n domain: z.string(),\n type: z.literal(\"passkeys\"),\n});\n\nexport const SignerDataSchema = z.discriminatedUnion(\"type\", [PasskeySignerDataSchema, EOASignerDataSchema]);\n\nexport const SmartWalletConfigSchema = z.object({\n kernelVersion: z.enum(SUPPORTED_KERNEL_VERSIONS, {\n errorMap: (_, ctx) => ({\n message: `Unsupported kernel version. Supported versions: ${SUPPORTED_KERNEL_VERSIONS.join(\n \", \"\n )}. Version used: ${ctx.data}. Please contact support`,\n }),\n }),\n entryPointVersion: z.enum(SUPPORTED_ENTRYPOINT_VERSIONS, {\n errorMap: (_, ctx) => ({\n message: `Unsupported entry point version. Supported versions: ${SUPPORTED_ENTRYPOINT_VERSIONS.join(\n \", \"\n )}. Version used: ${ctx.data}. Please contact support`,\n }),\n }),\n userId: z.string().min(1),\n signers: z\n .array(\n z.object({\n signerData: SignerDataSchema,\n })\n )\n .min(0)\n .max(1, \"Invalid wallet signer configuration. Please contact support\"),\n smartContractWalletAddress: evmAddressSchema.optional(),\n});\n"],"mappings":";;;;;;AAAA,SAAS,uCAAuC;AAChD,SAAS,WAAW,aAAa;AACjC,SAAS,SAAS;AAIlB,IAAM,YAAY,EAAE,OAAsB,CAAC,QAA8B,MAAM,GAAa,GAAG;AAAA,EAC3F,SAAS;AACb,CAAC;AAED,IAAM,mBAAmB,EAAE,OAAsB,CAAC,QAA8B,UAAU,GAAa,GAAG;AAAA,EACtG,SAAS;AACb,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EACxC,YAAY;AAAA,EACZ,MAAM,EAAE,QAAQ,KAAK;AACzB,CAAC;AAEM,IAAM,uCAAuC,EAAE,OAAO;AAAA,EACzD,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,SAAS,EAAE,OAAO;AAAA,EAClB,SAAS,EAAE,OAAO;AAAA,EAClB,qBAAqB;AAAA,EACrB,iBAAiB,EAAE,OAAO;AAC9B,CAAC;AAEM,IAAM,0BAA0B,qCAAqC,OAAO;AAAA,EAC/E,aAAa,EAAE,OAAO;AAAA,EACtB,0BAA0B,EAAE,WAAW,+BAA+B;AAAA,EACtE,QAAQ,EAAE,OAAO;AAAA,EACjB,MAAM,EAAE,QAAQ,UAAU;AAC9B,CAAC;AAEM,IAAM,mBAAmB,EAAE,mBAAmB,QAAQ,CAAC,yBAAyB,mBAAmB,CAAC;AAEpG,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC5C,eAAe,EAAE,KAAK,2BAA2B;AAAA,IAC7C,UAAU,CAAC,GAAG,SAAS;AAAA,MACnB,SAAS,mDAAmD,0BAA0B;AAAA,QAClF;AAAA,MACJ,CAAC,mBAAmB,IAAI,IAAI;AAAA,IAChC;AAAA,EACJ,CAAC;AAAA,EACD,mBAAmB,EAAE,KAAK,+BAA+B;AAAA,IACrD,UAAU,CAAC,GAAG,SAAS;AAAA,MACnB,SAAS,wDAAwD,8BAA8B;AAAA,QAC3F;AAAA,MACJ,CAAC,mBAAmB,IAAI,IAAI;AAAA,IAChC;AAAA,EACJ,CAAC;AAAA,EACD,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,SAAS,EACJ;AAAA,IACG,EAAE,OAAO;AAAA,MACL,YAAY;AAAA,IAChB,CAAC;AAAA,EACL,EACC,IAAI,CAAC,EACL,IAAI,GAAG,6DAA6D;AAAA,EACzE,4BAA4B,iBAAiB,SAAS;AAC1D,CAAC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/blockchain.ts"],"sourcesContent":["import type { SmartWalletChain } from \"../blockchain/chains\";\n\nexport function usesGelatoBundler(chain: SmartWalletChain) {\n return false;\n}\n"],"mappings":";AAEO,SAAS,kBAAkB,OAAyB;AACvD,SAAO;AACX;","names":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {
|
|
2
|
+
scwLogger
|
|
3
|
+
} from "./chunk-MILDB23W.js";
|
|
4
|
+
import {
|
|
5
|
+
SmartWalletConfigSchema
|
|
6
|
+
} from "./chunk-IYBOBUTI.js";
|
|
7
|
+
import {
|
|
8
|
+
bigintsToHex,
|
|
9
|
+
parseBigintAPIResponse
|
|
10
|
+
} from "./chunk-FSIMJYXR.js";
|
|
11
|
+
import {
|
|
12
|
+
API_VERSION
|
|
13
|
+
} from "./chunk-SEA2NTT5.js";
|
|
14
|
+
import {
|
|
15
|
+
AdminAlreadyUsedError,
|
|
16
|
+
SmartWalletsNotEnabledError,
|
|
17
|
+
UserWalletAlreadyCreatedError
|
|
18
|
+
} from "./chunk-ASIPMVRQ.js";
|
|
19
|
+
|
|
20
|
+
// src/api/CrossmintWalletService.ts
|
|
21
|
+
import { APIErrorService, BaseCrossmintService, CrossmintServiceError } from "@crossmint/client-sdk-base";
|
|
22
|
+
import { blockchainToChainId } from "@crossmint/common-sdk-base";
|
|
23
|
+
var CrossmintWalletService = class extends BaseCrossmintService {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.logger = scwLogger;
|
|
27
|
+
this.apiErrorService = new APIErrorService({
|
|
28
|
+
ERROR_USER_WALLET_ALREADY_CREATED: ({ userId }) => new UserWalletAlreadyCreatedError(userId),
|
|
29
|
+
ERROR_ADMIN_SIGNER_ALREADY_USED: () => new AdminAlreadyUsedError(),
|
|
30
|
+
ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED: () => new SmartWalletsNotEnabledError()
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
async idempotentCreateSmartWallet(user, input) {
|
|
34
|
+
await this.fetchCrossmintAPI(
|
|
35
|
+
`${API_VERSION}/sdk/smart-wallet`,
|
|
36
|
+
{ method: "PUT", body: JSON.stringify(input) },
|
|
37
|
+
"Error creating abstract wallet. Please contact support",
|
|
38
|
+
user.jwt
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
async sponsorUserOperation(user, userOp, entryPoint, chain) {
|
|
42
|
+
const chainId = blockchainToChainId(chain);
|
|
43
|
+
const result = await this.fetchCrossmintAPI(
|
|
44
|
+
`${API_VERSION}/sdk/paymaster`,
|
|
45
|
+
{ method: "POST", body: JSON.stringify({ userOp: bigintsToHex(userOp), entryPoint, chainId }) },
|
|
46
|
+
"Error sponsoring user operation. Please contact support",
|
|
47
|
+
user.jwt
|
|
48
|
+
);
|
|
49
|
+
return parseBigintAPIResponse(result);
|
|
50
|
+
}
|
|
51
|
+
async getSmartWalletConfig(user, chain) {
|
|
52
|
+
const data = await this.fetchCrossmintAPI(
|
|
53
|
+
`${API_VERSION}/sdk/smart-wallet/config?chain=${chain}`,
|
|
54
|
+
{ method: "GET" },
|
|
55
|
+
"Error getting smart wallet version configuration. Please contact support",
|
|
56
|
+
user.jwt
|
|
57
|
+
);
|
|
58
|
+
const result = SmartWalletConfigSchema.safeParse(data);
|
|
59
|
+
if (!result.success) {
|
|
60
|
+
throw new CrossmintServiceError(
|
|
61
|
+
`Invalid smart wallet config, please contact support. Details below:
|
|
62
|
+
${result.error.toString()}`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
return result.data;
|
|
66
|
+
}
|
|
67
|
+
async fetchNFTs(address, chain) {
|
|
68
|
+
return this.fetchCrossmintAPI(
|
|
69
|
+
`v1-alpha1/wallets/${chain}:${address}/nfts`,
|
|
70
|
+
{ method: "GET" },
|
|
71
|
+
`Error fetching NFTs for wallet: ${address}`
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
getPasskeyServerUrl() {
|
|
75
|
+
return this.crossmintBaseUrl + "api/internal/passkeys";
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export {
|
|
80
|
+
CrossmintWalletService
|
|
81
|
+
};
|
|
82
|
+
//# sourceMappingURL=chunk-JSFGHJTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/CrossmintWalletService.ts"],"sourcesContent":["import type { UserOperation } from \"permissionless\";\nimport type { EntryPoint, GetEntryPointVersion } from \"permissionless/types/entrypoint\";\n\nimport { APIErrorService, BaseCrossmintService, CrossmintServiceError } from \"@crossmint/client-sdk-base\";\nimport { blockchainToChainId } from \"@crossmint/common-sdk-base\";\n\nimport type { SmartWalletChain } from \"../blockchain/chains\";\nimport { AdminAlreadyUsedError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from \"../error\";\nimport { scwLogger } from \"../services\";\nimport type { UserParams } from \"../types/params\";\nimport { SmartWalletConfigSchema } from \"../types/schema\";\nimport type { SmartWalletConfig, StoreSmartWalletParams } from \"../types/service\";\nimport { bigintsToHex, parseBigintAPIResponse } from \"../utils/api\";\nimport { API_VERSION } from \"../utils/constants\";\n\ntype WalletsAPIErrorCodes =\n | \"ERROR_USER_WALLET_ALREADY_CREATED\"\n | \"ERROR_ADMIN_SIGNER_ALREADY_USED\"\n | \"ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED\";\n\nexport class CrossmintWalletService extends BaseCrossmintService {\n logger = scwLogger;\n protected apiErrorService = new APIErrorService<WalletsAPIErrorCodes>({\n ERROR_USER_WALLET_ALREADY_CREATED: ({ userId }: { userId: string }) =>\n new UserWalletAlreadyCreatedError(userId),\n ERROR_ADMIN_SIGNER_ALREADY_USED: () => new AdminAlreadyUsedError(),\n ERROR_PROJECT_NONCUSTODIAL_WALLETS_NOT_ENABLED: () => new SmartWalletsNotEnabledError(),\n });\n\n async idempotentCreateSmartWallet(user: UserParams, input: StoreSmartWalletParams): Promise<void> {\n await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/smart-wallet`,\n { method: \"PUT\", body: JSON.stringify(input) },\n \"Error creating abstract wallet. Please contact support\",\n user.jwt\n );\n }\n\n async sponsorUserOperation<E extends EntryPoint>(\n user: UserParams,\n userOp: UserOperation<GetEntryPointVersion<E>>,\n entryPoint: E,\n chain: SmartWalletChain\n ): Promise<{ sponsorUserOpParams: UserOperation<GetEntryPointVersion<E>> }> {\n const chainId = blockchainToChainId(chain);\n const result = await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/paymaster`,\n { method: \"POST\", body: JSON.stringify({ userOp: bigintsToHex(userOp), entryPoint, chainId }) },\n \"Error sponsoring user operation. Please contact support\",\n user.jwt\n );\n return parseBigintAPIResponse(result);\n }\n\n async getSmartWalletConfig(user: UserParams, chain: SmartWalletChain): Promise<SmartWalletConfig> {\n const data: unknown = await this.fetchCrossmintAPI(\n `${API_VERSION}/sdk/smart-wallet/config?chain=${chain}`,\n { method: \"GET\" },\n \"Error getting smart wallet version configuration. Please contact support\",\n user.jwt\n );\n\n const result = SmartWalletConfigSchema.safeParse(data);\n if (!result.success) {\n throw new CrossmintServiceError(\n `Invalid smart wallet config, please contact support. Details below:\\n${result.error.toString()}`\n );\n }\n\n return result.data;\n }\n\n async fetchNFTs(address: string, chain: SmartWalletChain) {\n return this.fetchCrossmintAPI(\n `v1-alpha1/wallets/${chain}:${address}/nfts`,\n { method: \"GET\" },\n `Error fetching NFTs for wallet: ${address}`\n );\n }\n\n public getPasskeyServerUrl(): string {\n return this.crossmintBaseUrl + \"api/internal/passkeys\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA,SAAS,iBAAiB,sBAAsB,6BAA6B;AAC7E,SAAS,2BAA2B;AAgB7B,IAAM,yBAAN,cAAqC,qBAAqB;AAAA,EAA1D;AAAA;AACH,kBAAS;AACT,SAAU,kBAAkB,IAAI,gBAAsC;AAAA,MAClE,mCAAmC,CAAC,EAAE,OAAO,MACzC,IAAI,8BAA8B,MAAM;AAAA,MAC5C,iCAAiC,MAAM,IAAI,sBAAsB;AAAA,MACjE,gDAAgD,MAAM,IAAI,4BAA4B;AAAA,IAC1F,CAAC;AAAA;AAAA,EAED,MAAM,4BAA4B,MAAkB,OAA8C;AAC9F,UAAM,KAAK;AAAA,MACP,GAAG,WAAW;AAAA,MACd,EAAE,QAAQ,OAAO,MAAM,KAAK,UAAU,KAAK,EAAE;AAAA,MAC7C;AAAA,MACA,KAAK;AAAA,IACT;AAAA,EACJ;AAAA,EAEA,MAAM,qBACF,MACA,QACA,YACA,OACwE;AACxE,UAAM,UAAU,oBAAoB,KAAK;AACzC,UAAM,SAAS,MAAM,KAAK;AAAA,MACtB,GAAG,WAAW;AAAA,MACd,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,EAAE,QAAQ,aAAa,MAAM,GAAG,YAAY,QAAQ,CAAC,EAAE;AAAA,MAC9F;AAAA,MACA,KAAK;AAAA,IACT;AACA,WAAO,uBAAuB,MAAM;AAAA,EACxC;AAAA,EAEA,MAAM,qBAAqB,MAAkB,OAAqD;AAC9F,UAAM,OAAgB,MAAM,KAAK;AAAA,MAC7B,GAAG,WAAW,kCAAkC,KAAK;AAAA,MACrD,EAAE,QAAQ,MAAM;AAAA,MAChB;AAAA,MACA,KAAK;AAAA,IACT;AAEA,UAAM,SAAS,wBAAwB,UAAU,IAAI;AACrD,QAAI,CAAC,OAAO,SAAS;AACjB,YAAM,IAAI;AAAA,QACN;AAAA,EAAwE,OAAO,MAAM,SAAS,CAAC;AAAA,MACnG;AAAA,IACJ;AAEA,WAAO,OAAO;AAAA,EAClB;AAAA,EAEA,MAAM,UAAU,SAAiB,OAAyB;AACtD,WAAO,KAAK;AAAA,MACR,qBAAqB,KAAK,IAAI,OAAO;AAAA,MACrC,EAAE,QAAQ,MAAM;AAAA,MAChB,mCAAmC,OAAO;AAAA,IAC9C;AAAA,EACJ;AAAA,EAEO,sBAA8B;AACjC,WAAO,KAAK,mBAAmB;AAAA,EACnC;AACJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-KHROQTVY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunk5EHCB2XXcjs = require('./chunk-5EHCB2XX.cjs');
|
|
5
|
+
|
|
6
|
+
// src/types/schema.ts
|
|
7
|
+
var _passkeyvalidator = require('@zerodev/passkey-validator');
|
|
8
|
+
var _viem = require('viem');
|
|
9
|
+
var _zod = require('zod');
|
|
10
|
+
var HexSchema = _zod.z.custom((val) => _viem.isHex.call(void 0, val), {
|
|
11
|
+
message: "Invalid hex string"
|
|
12
|
+
});
|
|
13
|
+
var evmAddressSchema = _zod.z.custom((val) => _viem.isAddress.call(void 0, val), {
|
|
14
|
+
message: "Invalid evm address"
|
|
15
|
+
});
|
|
16
|
+
var EOASignerDataSchema = _zod.z.object({
|
|
17
|
+
eoaAddress: evmAddressSchema,
|
|
18
|
+
type: _zod.z.literal("eoa")
|
|
19
|
+
});
|
|
20
|
+
var PasskeyValidatorSerializedDataSchema = _zod.z.object({
|
|
21
|
+
entryPoint: evmAddressSchema,
|
|
22
|
+
validatorAddress: evmAddressSchema,
|
|
23
|
+
pubKeyX: _zod.z.string(),
|
|
24
|
+
pubKeyY: _zod.z.string(),
|
|
25
|
+
authenticatorIdHash: HexSchema,
|
|
26
|
+
authenticatorId: _zod.z.string()
|
|
27
|
+
});
|
|
28
|
+
var PasskeySignerDataSchema = PasskeyValidatorSerializedDataSchema.extend({
|
|
29
|
+
passkeyName: _zod.z.string(),
|
|
30
|
+
validatorContractVersion: _zod.z.nativeEnum(_passkeyvalidator.PasskeyValidatorContractVersion),
|
|
31
|
+
domain: _zod.z.string(),
|
|
32
|
+
type: _zod.z.literal("passkeys")
|
|
33
|
+
});
|
|
34
|
+
var SignerDataSchema = _zod.z.discriminatedUnion("type", [PasskeySignerDataSchema, EOASignerDataSchema]);
|
|
35
|
+
var SmartWalletConfigSchema = _zod.z.object({
|
|
36
|
+
kernelVersion: _zod.z.enum(_chunk5EHCB2XXcjs.SUPPORTED_KERNEL_VERSIONS, {
|
|
37
|
+
errorMap: (_, ctx) => ({
|
|
38
|
+
message: `Unsupported kernel version. Supported versions: ${_chunk5EHCB2XXcjs.SUPPORTED_KERNEL_VERSIONS.join(
|
|
39
|
+
", "
|
|
40
|
+
)}. Version used: ${ctx.data}. Please contact support`
|
|
41
|
+
})
|
|
42
|
+
}),
|
|
43
|
+
entryPointVersion: _zod.z.enum(_chunk5EHCB2XXcjs.SUPPORTED_ENTRYPOINT_VERSIONS, {
|
|
44
|
+
errorMap: (_, ctx) => ({
|
|
45
|
+
message: `Unsupported entry point version. Supported versions: ${_chunk5EHCB2XXcjs.SUPPORTED_ENTRYPOINT_VERSIONS.join(
|
|
46
|
+
", "
|
|
47
|
+
)}. Version used: ${ctx.data}. Please contact support`
|
|
48
|
+
})
|
|
49
|
+
}),
|
|
50
|
+
userId: _zod.z.string().min(1),
|
|
51
|
+
signers: _zod.z.array(
|
|
52
|
+
_zod.z.object({
|
|
53
|
+
signerData: SignerDataSchema
|
|
54
|
+
})
|
|
55
|
+
).min(0).max(1, "Invalid wallet signer configuration. Please contact support"),
|
|
56
|
+
smartContractWalletAddress: evmAddressSchema.optional()
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
exports.EOASignerDataSchema = EOASignerDataSchema; exports.PasskeyValidatorSerializedDataSchema = PasskeyValidatorSerializedDataSchema; exports.PasskeySignerDataSchema = PasskeySignerDataSchema; exports.SignerDataSchema = SignerDataSchema; exports.SmartWalletConfigSchema = SmartWalletConfigSchema;
|
|
66
|
+
//# sourceMappingURL=chunk-LGYR5QB5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/schema.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,uCAAuC;AAChD,SAAS,WAAW,aAAa;AACjC,SAAS,SAAS;AAIlB,IAAM,YAAY,EAAE,OAAsB,CAAC,QAA8B,MAAM,GAAa,GAAG;AAAA,EAC3F,SAAS;AACb,CAAC;AAED,IAAM,mBAAmB,EAAE,OAAsB,CAAC,QAA8B,UAAU,GAAa,GAAG;AAAA,EACtG,SAAS;AACb,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EACxC,YAAY;AAAA,EACZ,MAAM,EAAE,QAAQ,KAAK;AACzB,CAAC;AAEM,IAAM,uCAAuC,EAAE,OAAO;AAAA,EACzD,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,SAAS,EAAE,OAAO;AAAA,EAClB,SAAS,EAAE,OAAO;AAAA,EAClB,qBAAqB;AAAA,EACrB,iBAAiB,EAAE,OAAO;AAC9B,CAAC;AAEM,IAAM,0BAA0B,qCAAqC,OAAO;AAAA,EAC/E,aAAa,EAAE,OAAO;AAAA,EACtB,0BAA0B,EAAE,WAAW,+BAA+B;AAAA,EACtE,QAAQ,EAAE,OAAO;AAAA,EACjB,MAAM,EAAE,QAAQ,UAAU;AAC9B,CAAC;AAEM,IAAM,mBAAmB,EAAE,mBAAmB,QAAQ,CAAC,yBAAyB,mBAAmB,CAAC;AAEpG,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC5C,eAAe,EAAE,KAAK,2BAA2B;AAAA,IAC7C,UAAU,CAAC,GAAG,SAAS;AAAA,MACnB,SAAS,mDAAmD,0BAA0B;AAAA,QAClF;AAAA,MACJ,CAAC,mBAAmB,IAAI,IAAI;AAAA,IAChC;AAAA,EACJ,CAAC;AAAA,EACD,mBAAmB,EAAE,KAAK,+BAA+B;AAAA,IACrD,UAAU,CAAC,GAAG,SAAS;AAAA,MACnB,SAAS,wDAAwD,8BAA8B;AAAA,QAC3F;AAAA,MACJ,CAAC,mBAAmB,IAAI,IAAI;AAAA,IAChC;AAAA,EACJ,CAAC;AAAA,EACD,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EACxB,SAAS,EACJ;AAAA,IACG,EAAE,OAAO;AAAA,MACL,YAAY;AAAA,IAChB,CAAC;AAAA,EACL,EACC,IAAI,CAAC,EACL,IAAI,GAAG,6DAA6D;AAAA,EACzE,4BAA4B,iBAAiB,SAAS;AAC1D,CAAC","sourcesContent":["import { PasskeyValidatorContractVersion } from \"@zerodev/passkey-validator\";\nimport { isAddress, isHex } from \"viem\";\nimport { z } from \"zod\";\n\nimport { SUPPORTED_ENTRYPOINT_VERSIONS, SUPPORTED_KERNEL_VERSIONS } from \"../utils/constants\";\n\nconst HexSchema = z.custom<`0x${string}`>((val): val is `0x${string}` => isHex(val as string), {\n message: \"Invalid hex string\",\n});\n\nconst evmAddressSchema = z.custom<`0x${string}`>((val): val is `0x${string}` => isAddress(val as string), {\n message: \"Invalid evm address\",\n});\n\nexport const EOASignerDataSchema = z.object({\n eoaAddress: evmAddressSchema,\n type: z.literal(\"eoa\"),\n});\n\nexport const PasskeyValidatorSerializedDataSchema = z.object({\n entryPoint: evmAddressSchema,\n validatorAddress: evmAddressSchema,\n pubKeyX: z.string(),\n pubKeyY: z.string(),\n authenticatorIdHash: HexSchema,\n authenticatorId: z.string(),\n});\n\nexport const PasskeySignerDataSchema = PasskeyValidatorSerializedDataSchema.extend({\n passkeyName: z.string(),\n validatorContractVersion: z.nativeEnum(PasskeyValidatorContractVersion),\n domain: z.string(),\n type: z.literal(\"passkeys\"),\n});\n\nexport const SignerDataSchema = z.discriminatedUnion(\"type\", [PasskeySignerDataSchema, EOASignerDataSchema]);\n\nexport const SmartWalletConfigSchema = z.object({\n kernelVersion: z.enum(SUPPORTED_KERNEL_VERSIONS, {\n errorMap: (_, ctx) => ({\n message: `Unsupported kernel version. Supported versions: ${SUPPORTED_KERNEL_VERSIONS.join(\n \", \"\n )}. Version used: ${ctx.data}. Please contact support`,\n }),\n }),\n entryPointVersion: z.enum(SUPPORTED_ENTRYPOINT_VERSIONS, {\n errorMap: (_, ctx) => ({\n message: `Unsupported entry point version. Supported versions: ${SUPPORTED_ENTRYPOINT_VERSIONS.join(\n \", \"\n )}. Version used: ${ctx.data}. Please contact support`,\n }),\n }),\n userId: z.string().min(1),\n signers: z\n .array(\n z.object({\n signerData: SignerDataSchema,\n })\n )\n .min(0)\n .max(1, \"Invalid wallet signer configuration. Please contact support\"),\n smartContractWalletAddress: evmAddressSchema.optional(),\n});\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SCW_SERVICE
|
|
3
|
+
} from "./chunk-SEA2NTT5.js";
|
|
4
|
+
|
|
5
|
+
// src/services/logger.ts
|
|
6
|
+
import { SDKLogger, getBrowserLogger } from "@crossmint/client-sdk-base";
|
|
7
|
+
var scwLogger = new SDKLogger(SCW_SERVICE);
|
|
8
|
+
var scwDatadogLogger = new SDKLogger(SCW_SERVICE, getBrowserLogger(SCW_SERVICE, { onlyDatadog: true }));
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
scwLogger,
|
|
12
|
+
scwDatadogLogger
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=chunk-MILDB23W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/logger.ts"],"sourcesContent":["import { SDKLogger, getBrowserLogger } from \"@crossmint/client-sdk-base\";\n\nimport { SCW_SERVICE } from \"../utils/constants\";\n\nexport const scwLogger = new SDKLogger(SCW_SERVICE);\nexport const scwDatadogLogger = new SDKLogger(SCW_SERVICE, getBrowserLogger(SCW_SERVICE, { onlyDatadog: true }));\n"],"mappings":";;;;;AAAA,SAAS,WAAW,wBAAwB;AAIrC,IAAM,YAAY,IAAI,UAAU,WAAW;AAC3C,IAAM,mBAAmB,IAAI,UAAU,aAAa,iBAAiB,aAAa,EAAE,aAAa,KAAK,CAAC,CAAC;","names":[]}
|