@crossmint/client-sdk-smart-wallet 0.1.35 → 0.2.0
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/README.md +293 -0
- package/dist/abi/entryPoint.cjs +1 -0
- package/dist/abi/entryPoint.d.cts +777 -0
- package/dist/abi/entryPoint.d.ts +777 -0
- package/dist/abi/entryPoint.js +1 -0
- package/dist/abi/erc1155.cjs +1 -0
- package/dist/abi/erc1155.d.cts +254 -0
- package/dist/abi/erc1155.d.ts +254 -0
- package/dist/abi/erc1155.js +1 -0
- package/dist/abi/erc20.cjs +1 -0
- package/dist/abi/erc20.d.cts +170 -0
- package/dist/abi/erc20.d.ts +170 -0
- package/dist/abi/erc20.js +1 -0
- package/dist/abi/erc721.cjs +1 -0
- package/dist/abi/erc721.d.cts +247 -0
- package/dist/abi/erc721.d.ts +247 -0
- package/dist/abi/erc721.js +1 -0
- package/dist/apiService-D4DIxjMr.d.ts +136 -0
- package/dist/apiService-Dum8A8_6.d.cts +136 -0
- package/dist/apiService.cjs +1 -0
- package/dist/apiService.d.cts +9 -0
- package/dist/apiService.d.ts +9 -0
- package/dist/apiService.js +1 -0
- package/dist/{chunk-IUIBQFWY.cjs → chunk-23IWY6XV.cjs} +1 -1
- package/dist/chunk-2MQHIAJE.js +1 -0
- package/dist/chunk-4PMBBA3O.cjs +1 -0
- package/dist/chunk-5T3HB4Y6.js +1 -0
- package/dist/chunk-73LUJQGU.cjs +1 -0
- package/dist/chunk-75JNTS3U.js +1 -0
- package/dist/chunk-AS5VIM5V.cjs +1 -0
- package/dist/chunk-BCWZIVSQ.js +1 -0
- package/dist/{chunk-SODH64MG.cjs → chunk-D33JIUOQ.cjs} +1 -1
- package/dist/chunk-DB2QM3HB.js +1 -0
- package/dist/chunk-EMZ5NAG2.cjs +1 -0
- package/dist/chunk-GGKMZPIA.js +1 -0
- package/dist/chunk-I5RZI2HB.js +1 -0
- package/dist/chunk-J5SRLI35.cjs +1 -0
- package/dist/chunk-KXYDJTZS.cjs +1 -0
- package/dist/{chunk-I22LKNPM.js → chunk-LJ43A5BN.js} +1 -1
- package/dist/chunk-LPLLPZFU.cjs +1 -0
- package/dist/chunk-MLTT5BGD.cjs +1 -0
- package/dist/chunk-NXTHA2ZL.js +1 -0
- package/dist/chunk-OWZ3LXVG.js +1 -0
- package/dist/chunk-Q23CHZRT.cjs +1 -0
- package/dist/chunk-Q6YGAHDR.cjs +1 -0
- package/dist/chunk-SVGKSKZD.cjs +1 -0
- package/dist/chunk-T5PL4ATW.js +1 -0
- package/dist/chunk-U2JMKBCC.cjs +1 -0
- package/dist/chunk-UBRUUSMF.js +1 -0
- package/dist/chunk-VEZ3PQGX.js +1 -0
- package/dist/chunk-Z3KARJF5.js +1 -0
- package/dist/error/index.cjs +1 -1
- package/dist/error/index.d.cts +25 -43
- package/dist/error/index.d.ts +25 -43
- package/dist/error/index.js +1 -1
- package/dist/error/processor.cjs +1 -1
- package/dist/error/processor.d.cts +0 -13
- package/dist/error/processor.d.ts +0 -13
- package/dist/error/processor.js +1 -1
- package/dist/evm/chains/definitions/story-testnet.cjs +1 -0
- package/dist/evm/chains/definitions/story-testnet.js +1 -0
- package/dist/evm/chains/definitions/story.cjs +1 -0
- package/dist/evm/chains/definitions/story.js +1 -0
- package/dist/evm/chains/index.cjs +1 -0
- package/dist/{blockchain/chains.d.cts → evm/chains/index.d.cts} +4 -7
- package/dist/{blockchain/chains.d.ts → evm/chains/index.d.ts} +4 -7
- package/dist/evm/chains/index.js +1 -0
- package/dist/evm/rpc.cjs +1 -0
- package/dist/{blockchain → evm}/rpc.d.cts +4 -3
- package/dist/{blockchain → evm}/rpc.d.ts +4 -3
- package/dist/evm/rpc.js +1 -0
- package/dist/evm/smartWalletClient.d.cts +59 -0
- package/dist/evm/smartWalletClient.d.ts +59 -0
- package/dist/evm/transfer.cjs +1 -0
- package/dist/evm/transfer.d.cts +8 -0
- package/dist/evm/transfer.d.ts +8 -0
- package/dist/evm/transfer.js +1 -0
- package/dist/evm/wallet.cjs +1 -0
- package/dist/evm/wallet.d.cts +9 -0
- package/dist/evm/wallet.d.ts +9 -0
- package/dist/evm/wallet.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +9 -20
- package/dist/index.d.ts +9 -20
- package/dist/index.js +1 -1
- package/dist/sdk.cjs +1 -0
- package/dist/{SmartWalletSDK.d.ts → sdk.d.cts} +18 -21
- package/dist/{SmartWalletSDK.d.cts → sdk.d.ts} +18 -21
- package/dist/sdk.js +1 -0
- package/dist/services/index.cjs +1 -1
- package/dist/services/index.js +1 -1
- package/dist/services/logger.cjs +1 -1
- package/dist/services/logger.js +1 -1
- package/dist/smartWalletService.cjs +1 -0
- package/dist/smartWalletService.d.cts +9 -0
- package/dist/smartWalletService.d.ts +9 -0
- package/dist/smartWalletService.js +1 -0
- package/dist/types/api.d.cts +195 -0
- package/dist/types/api.d.ts +195 -0
- package/dist/types/transfer.d.cts +46 -0
- package/dist/types/transfer.d.ts +46 -0
- package/dist/utils/constants.cjs +1 -1
- package/dist/utils/constants.d.cts +5 -6
- package/dist/utils/constants.d.ts +5 -6
- package/dist/utils/constants.js +1 -1
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +3 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +1 -0
- package/package.json +3 -8
- package/dist/SmartWalletSDK.cjs +0 -1
- package/dist/SmartWalletSDK.js +0 -1
- package/dist/api/CrossmintWalletService.cjs +0 -1
- package/dist/api/CrossmintWalletService.d.cts +0 -31
- package/dist/api/CrossmintWalletService.d.ts +0 -31
- package/dist/api/CrossmintWalletService.js +0 -1
- package/dist/blockchain/chains.cjs +0 -1
- package/dist/blockchain/chains.js +0 -1
- package/dist/blockchain/rpc.cjs +0 -1
- package/dist/blockchain/rpc.js +0 -1
- package/dist/blockchain/transfer.cjs +0 -1
- package/dist/blockchain/transfer.d.cts +0 -23
- package/dist/blockchain/transfer.d.ts +0 -23
- package/dist/blockchain/transfer.js +0 -1
- package/dist/blockchain/wallets/EVMSmartWallet.cjs +0 -1
- package/dist/blockchain/wallets/EVMSmartWallet.d.cts +0 -102
- package/dist/blockchain/wallets/EVMSmartWallet.d.ts +0 -102
- package/dist/blockchain/wallets/EVMSmartWallet.js +0 -1
- package/dist/blockchain/wallets/SendTransactionService.cjs +0 -1
- package/dist/blockchain/wallets/SendTransactionService.d.cts +0 -84
- package/dist/blockchain/wallets/SendTransactionService.d.ts +0 -84
- package/dist/blockchain/wallets/SendTransactionService.js +0 -1
- package/dist/blockchain/wallets/account/cache.cjs +0 -1
- package/dist/blockchain/wallets/account/cache.d.cts +0 -25
- package/dist/blockchain/wallets/account/cache.d.ts +0 -25
- package/dist/blockchain/wallets/account/cache.js +0 -1
- package/dist/blockchain/wallets/account/config.cjs +0 -1
- package/dist/blockchain/wallets/account/config.d.cts +0 -47
- package/dist/blockchain/wallets/account/config.d.ts +0 -47
- package/dist/blockchain/wallets/account/config.js +0 -1
- package/dist/blockchain/wallets/account/creator.cjs +0 -1
- package/dist/blockchain/wallets/account/creator.d.cts +0 -26
- package/dist/blockchain/wallets/account/creator.d.ts +0 -26
- package/dist/blockchain/wallets/account/creator.js +0 -1
- package/dist/blockchain/wallets/account/eoa.cjs +0 -1
- package/dist/blockchain/wallets/account/eoa.d.cts +0 -21
- package/dist/blockchain/wallets/account/eoa.d.ts +0 -21
- package/dist/blockchain/wallets/account/eoa.js +0 -1
- package/dist/blockchain/wallets/account/passkey.cjs +0 -1
- package/dist/blockchain/wallets/account/passkey.d.cts +0 -29
- package/dist/blockchain/wallets/account/passkey.d.ts +0 -29
- package/dist/blockchain/wallets/account/passkey.js +0 -1
- package/dist/blockchain/wallets/account/signer.cjs +0 -1
- package/dist/blockchain/wallets/account/signer.d.cts +0 -14
- package/dist/blockchain/wallets/account/signer.d.ts +0 -14
- package/dist/blockchain/wallets/account/signer.js +0 -1
- package/dist/blockchain/wallets/account/strategy.d.cts +0 -20
- package/dist/blockchain/wallets/account/strategy.d.ts +0 -20
- package/dist/blockchain/wallets/clientDecorator.cjs +0 -1
- package/dist/blockchain/wallets/clientDecorator.d.cts +0 -38
- package/dist/blockchain/wallets/clientDecorator.d.ts +0 -38
- package/dist/blockchain/wallets/clientDecorator.js +0 -1
- package/dist/blockchain/wallets/definitions/story-testnet.cjs +0 -1
- package/dist/blockchain/wallets/definitions/story-testnet.js +0 -1
- package/dist/blockchain/wallets/definitions/story.cjs +0 -1
- package/dist/blockchain/wallets/definitions/story.js +0 -1
- package/dist/blockchain/wallets/index.cjs +0 -1
- package/dist/blockchain/wallets/index.d.cts +0 -20
- package/dist/blockchain/wallets/index.d.ts +0 -20
- package/dist/blockchain/wallets/index.js +0 -1
- package/dist/blockchain/wallets/paymaster.cjs +0 -1
- package/dist/blockchain/wallets/paymaster.d.cts +0 -29
- package/dist/blockchain/wallets/paymaster.d.ts +0 -29
- package/dist/blockchain/wallets/paymaster.js +0 -1
- package/dist/blockchain/wallets/service.cjs +0 -1
- package/dist/blockchain/wallets/service.d.cts +0 -41
- package/dist/blockchain/wallets/service.d.ts +0 -41
- package/dist/blockchain/wallets/service.js +0 -1
- package/dist/chunk-2R6HK64N.cjs +0 -1
- package/dist/chunk-3F6P4HUZ.js +0 -1
- package/dist/chunk-5FGSZZCU.js +0 -1
- package/dist/chunk-74J3L7KP.js +0 -1
- package/dist/chunk-76TIESKQ.cjs +0 -2
- package/dist/chunk-7AVDZZGD.cjs +0 -1
- package/dist/chunk-7COIRB4M.js +0 -1
- package/dist/chunk-ATQ4WGCW.js +0 -1
- package/dist/chunk-BJZQA5VC.js +0 -1
- package/dist/chunk-C3VZY7VJ.js +0 -1
- package/dist/chunk-CUTQYF3F.js +0 -1
- package/dist/chunk-D4NDUT36.js +0 -1
- package/dist/chunk-DHZVUAQA.js +0 -1
- package/dist/chunk-DIDKPOO2.cjs +0 -1
- package/dist/chunk-ERDSL6AZ.cjs +0 -1
- package/dist/chunk-ETVJGLNY.js +0 -1
- package/dist/chunk-FHNNZVNU.js +0 -1
- package/dist/chunk-GB35YMN4.cjs +0 -1
- package/dist/chunk-GVRCHWHG.js +0 -1
- package/dist/chunk-H4CMXNVK.js +0 -1
- package/dist/chunk-HN42GEK5.cjs +0 -3
- package/dist/chunk-ICKMQEHA.cjs +0 -1
- package/dist/chunk-IQTGPM2U.cjs +0 -1
- package/dist/chunk-KREX6Z32.js +0 -1
- package/dist/chunk-KYPTGHC6.cjs +0 -1
- package/dist/chunk-M4K3IZTT.cjs +0 -1
- package/dist/chunk-MECWQ5TQ.cjs +0 -1
- package/dist/chunk-MLZJIYAZ.js +0 -1
- package/dist/chunk-N64VSC3H.cjs +0 -1
- package/dist/chunk-NLGILHJS.js +0 -1
- package/dist/chunk-NQUKI27M.cjs +0 -1
- package/dist/chunk-O2ACORII.cjs +0 -1
- package/dist/chunk-OC3YNPRX.js +0 -3
- package/dist/chunk-OXRLBURF.js +0 -1
- package/dist/chunk-P5PDYDCW.js +0 -1
- package/dist/chunk-PZ6Q22YJ.js +0 -1
- package/dist/chunk-QBGECKSZ.cjs +0 -1
- package/dist/chunk-QQEJPZKN.cjs +0 -1
- package/dist/chunk-RLVETRLF.cjs +0 -1
- 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-UG47CBKR.js +0 -1
- package/dist/chunk-UL4HKRLD.js +0 -1
- package/dist/chunk-UPURFW46.js +0 -1
- package/dist/chunk-WJ6XJMRD.cjs +0 -1
- package/dist/chunk-XI4CDQWT.cjs +0 -1
- package/dist/chunk-XJGFG3RT.cjs +0 -1
- package/dist/chunk-XQ2K2K23.cjs +0 -1
- package/dist/chunk-YYGR7VFT.js +0 -2
- package/dist/service-DqYCir8s.d.ts +0 -103
- package/dist/service-Ir-Qho-9.d.cts +0 -103
- package/dist/types/internal.cjs +0 -1
- package/dist/types/internal.d.cts +0 -14
- package/dist/types/internal.d.ts +0 -14
- package/dist/types/internal.js +0 -1
- package/dist/types/params.d.cts +0 -33
- package/dist/types/params.d.ts +0 -33
- package/dist/types/schema.cjs +0 -1
- package/dist/types/schema.d.cts +0 -241
- package/dist/types/schema.d.ts +0 -241
- package/dist/types/schema.js +0 -1
- package/dist/types/service.d.cts +0 -14
- package/dist/types/service.d.ts +0 -14
- package/dist/types/token.cjs +0 -1
- package/dist/types/token.d.cts +0 -35
- package/dist/types/token.d.ts +0 -35
- package/dist/types/token.js +0 -0
- package/dist/utils/api.cjs +0 -1
- package/dist/utils/api.d.cts +0 -4
- package/dist/utils/api.d.ts +0 -4
- package/dist/utils/api.js +0 -1
- package/dist/utils/blockchain.cjs +0 -1
- package/dist/utils/blockchain.d.cts +0 -7
- package/dist/utils/blockchain.d.ts +0 -7
- package/dist/utils/blockchain.js +0 -1
- package/dist/utils/environment.cjs +0 -1
- package/dist/utils/environment.d.cts +0 -3
- package/dist/utils/environment.d.ts +0 -3
- package/dist/utils/environment.js +0 -1
- package/dist/utils/helpers.cjs +0 -1
- package/dist/utils/helpers.d.cts +0 -4
- package/dist/utils/helpers.d.ts +0 -4
- package/dist/utils/helpers.js +0 -1
- package/dist/utils/signer.cjs +0 -1
- package/dist/utils/signer.d.cts +0 -15
- package/dist/utils/signer.d.ts +0 -15
- package/dist/utils/signer.js +0 -1
- package/dist/utils/test.cjs +0 -1
- package/dist/utils/test.d.cts +0 -18
- package/dist/utils/test.d.ts +0 -18
- package/dist/utils/test.js +0 -1
- /package/dist/{chunk-HQXF6VHP.cjs → chunk-5URY3C2T.cjs} +0 -0
- /package/dist/{chunk-DYVHPARQ.js → chunk-KVFFSUF4.js} +0 -0
- /package/dist/{chunk-GPZ7PHS6.cjs → chunk-MFUN74KH.cjs} +0 -0
- /package/dist/{chunk-NT7LBRZQ.js → chunk-XLACPZJJ.js} +0 -0
- /package/dist/{blockchain/wallets → evm/chains}/definitions/story-testnet.d.cts +0 -0
- /package/dist/{blockchain/wallets → evm/chains}/definitions/story-testnet.d.ts +0 -0
- /package/dist/{blockchain/wallets → evm/chains}/definitions/story.d.cts +0 -0
- /package/dist/{blockchain/wallets → evm/chains}/definitions/story.d.ts +0 -0
- /package/dist/{blockchain/wallets/account/strategy.cjs → evm/smartWalletClient.cjs} +0 -0
- /package/dist/{blockchain/wallets/account/strategy.js → evm/smartWalletClient.js} +0 -0
- /package/dist/types/{params.cjs → api.cjs} +0 -0
- /package/dist/types/{params.js → api.js} +0 -0
- /package/dist/types/{service.cjs → transfer.cjs} +0 -0
- /package/dist/types/{service.js → transfer.js} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
# Smart Wallet SDK
|
|
2
|
+
|
|
3
|
+
A client-side SDK for interacting with Crossmint Smart Wallets. This SDK enables developers to create and manage smart contract wallets that support both traditional keypair-based signing and passkey authentication.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm install @crossmint/client-sdk-smart-wallet
|
|
9
|
+
# or
|
|
10
|
+
pnpm add @crossmint/client-sdk-smart-wallet
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Authentication
|
|
14
|
+
|
|
15
|
+
This SDK uses JSON Web Tokens (JWT) to authenticate your users. JWT is generated by the auth server and used to authorize users to deploy and operate their wallets.
|
|
16
|
+
|
|
17
|
+
For detailed instructions on how to obtain a JWT token, please refer to [User Auth](https://docs.crossmint.com/wallets/quickstarts/EVM/non-custodial-wallets/evm-non-custodial-client-side#4-set-up-user-auth).
|
|
18
|
+
|
|
19
|
+
## Quick Start
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { SmartWalletSDK } from "@crossmint/client-sdk-smart-wallet";
|
|
23
|
+
import { privateKeyToAccount } from "viem";
|
|
24
|
+
|
|
25
|
+
const sdk = SmartWalletSDK.init({ clientApiKey: "<YOUR_API_KEY>" });
|
|
26
|
+
const account = privateKeyToAccount(privateKey);
|
|
27
|
+
|
|
28
|
+
const wallet = await sdk.getOrCreateWallet(
|
|
29
|
+
{
|
|
30
|
+
jwt: "<USER_TOKEN>",
|
|
31
|
+
},
|
|
32
|
+
"base-sepolia",
|
|
33
|
+
{
|
|
34
|
+
signer: {
|
|
35
|
+
type: "VIEM_ACCOUNT",
|
|
36
|
+
account,
|
|
37
|
+
},
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
const address = wallet.address;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Examples
|
|
45
|
+
|
|
46
|
+
### Wallet Creation
|
|
47
|
+
|
|
48
|
+
#### Passkey Wallets
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
const signer = await sdk.createPasskeySigner("My Wallet")
|
|
52
|
+
const wallet = await sdk.getOrCreateWallet(
|
|
53
|
+
{
|
|
54
|
+
jwt: "<USER_TOKEN>",
|
|
55
|
+
},
|
|
56
|
+
"base-sepolia",
|
|
57
|
+
{
|
|
58
|
+
signer,
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
const address = walletClient.getAddress();
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
#### Private Key Wallets
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
import { privateKeyToAccount } from "viem";
|
|
68
|
+
|
|
69
|
+
const account = privateKeyToAccount(privateKey);
|
|
70
|
+
const wallet = await sdk.getOrCreateWallet(
|
|
71
|
+
{
|
|
72
|
+
jwt: "<USER_TOKEN>",
|
|
73
|
+
},
|
|
74
|
+
"base-sepolia",
|
|
75
|
+
{
|
|
76
|
+
signer: {
|
|
77
|
+
type: "VIEM_ACCOUNT",
|
|
78
|
+
account,
|
|
79
|
+
},
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
const address = walletClient.getAddress();
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
#### Browser Wallets
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
import type { EIP1193Provider } from "viem";
|
|
89
|
+
|
|
90
|
+
const providerSigner = window.ethereum as EIP1193Provider;
|
|
91
|
+
const wallet = await sdk.getOrCreateWallet(
|
|
92
|
+
{
|
|
93
|
+
jwt: "<USER_TOKEN>",
|
|
94
|
+
},
|
|
95
|
+
"base-sepolia",
|
|
96
|
+
{
|
|
97
|
+
signer: providerSigner,
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Sending Transactions
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
import { encodeFunctionData, erc20Abi } from "viem";
|
|
106
|
+
|
|
107
|
+
const walletClient = wallet.client.wallet;
|
|
108
|
+
const txHash = await walletClient.sendTransaction({
|
|
109
|
+
to: "<TOKEN_ADDRESS>",
|
|
110
|
+
data: encodeFunctionData({
|
|
111
|
+
abi: erc20Abi,
|
|
112
|
+
functionName: "transfer",
|
|
113
|
+
args: ["<RECEIVER_ADDRESS>", "<TRANSFER_AMOUNT>"],
|
|
114
|
+
})
|
|
115
|
+
})
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Signing Messages
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
const walletClient = wallet.client.wallet;
|
|
122
|
+
const signature = await walletClient.signMessage({
|
|
123
|
+
message: "Hello, Crossmint!"
|
|
124
|
+
})
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Migrating from `0.1.x`
|
|
128
|
+
|
|
129
|
+
`0.2.x` SDK strives to be backwards-compatible with `0.1.x` as much as possible.
|
|
130
|
+
|
|
131
|
+
However, since the wallets are now powered by Crossmint API, some functionality is not available anymore.
|
|
132
|
+
|
|
133
|
+
Specifically, some functions from the `SmartWalletClient` object are not available anymore:
|
|
134
|
+
|
|
135
|
+
- `request`
|
|
136
|
+
- `writeContract`
|
|
137
|
+
- `deployContract`
|
|
138
|
+
- `account`
|
|
139
|
+
- `sendUserOperation`
|
|
140
|
+
- `prepareUserOperationRequest`
|
|
141
|
+
|
|
142
|
+
Additionally, the passkey creation flow is changed. To create a passkey-powered wallet, you first create a passkey signer:
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
const signer = await sdk.createPasskeySigner("My Wallet")
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Then use that signer during wallet creation:
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
const wallet = await sdk.getOrCreateWallet(
|
|
152
|
+
{
|
|
153
|
+
jwt: "<USER_TOKEN>",
|
|
154
|
+
},
|
|
155
|
+
"<NETWORK>",
|
|
156
|
+
{
|
|
157
|
+
signer,
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## API Reference
|
|
163
|
+
|
|
164
|
+
### SmartWalletSDK
|
|
165
|
+
|
|
166
|
+
The main entry point for interacting with smart wallets.
|
|
167
|
+
|
|
168
|
+
#### Static Methods
|
|
169
|
+
|
|
170
|
+
##### `init(params: SmartWalletSDKInitParams): SmartWalletSDK`
|
|
171
|
+
|
|
172
|
+
Initializes the SDK with your client-side API key.
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
const sdk = SmartWalletSDK.init({ clientApiKey: "<YOUR_API_KEY>" });
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
#### Instance Methods
|
|
179
|
+
|
|
180
|
+
##### `getOrCreateWallet(user: UserParams, chain: SmartWalletChain, walletParams: WalletParams): Promise<EVMSmartWallet>`
|
|
181
|
+
|
|
182
|
+
Creates or retrieves a smart wallet for the specified user.
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
const wallet = await sdk.getOrCreateWallet(
|
|
186
|
+
{
|
|
187
|
+
jwt: "<USER_TOKEN>"
|
|
188
|
+
},
|
|
189
|
+
"<NETWORK>",
|
|
190
|
+
{
|
|
191
|
+
signer: /* PasskeySigner or ExternalSigner */
|
|
192
|
+
}
|
|
193
|
+
);
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
##### `createPasskeySigner(name: string): Promise<PasskeySigner>`
|
|
197
|
+
|
|
198
|
+
Creates a new passkey signer with the given name.
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
const signer = await sdk.createPasskeySigner("My Wallet");
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Types
|
|
205
|
+
|
|
206
|
+
#### SmartWalletChain
|
|
207
|
+
|
|
208
|
+
Supported blockchain networks.
|
|
209
|
+
|
|
210
|
+
#### WalletParams
|
|
211
|
+
|
|
212
|
+
Configuration for wallet creation:
|
|
213
|
+
|
|
214
|
+
```typescript
|
|
215
|
+
interface WalletParams {
|
|
216
|
+
signer: ExternalSigner | PasskeySigner;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Use existing Web3 wallet or private key
|
|
220
|
+
type ExternalSigner = EIP1193Provider | ViemAccount;
|
|
221
|
+
|
|
222
|
+
// Use private key authentication
|
|
223
|
+
interface ViemAccount {
|
|
224
|
+
type: "VIEM_ACCOUNT";
|
|
225
|
+
account: LocalAccount & { source: "custom" };
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
// Use passkey authentication
|
|
229
|
+
interface PasskeySigner {
|
|
230
|
+
type: "PASSKEY";
|
|
231
|
+
credential: WebAuthnP256.P256Credential;
|
|
232
|
+
}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### EVMSmartWallet
|
|
236
|
+
|
|
237
|
+
The wallet instance returned by `getOrCreateWallet()`. Provides methods for interacting with the smart wallet:
|
|
238
|
+
|
|
239
|
+
```typescript
|
|
240
|
+
interface EVMSmartWallet {
|
|
241
|
+
// viem clients that provide an interface for core wallet functionality.
|
|
242
|
+
client: {
|
|
243
|
+
public: PublicClient<HttpTransport>;
|
|
244
|
+
wallet: SmartWalletClient;
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
// The EVM chain of the smart wallet.
|
|
248
|
+
chain: SmartWalletChain;
|
|
249
|
+
|
|
250
|
+
// The address of the smart wallet.
|
|
251
|
+
address(): Address;
|
|
252
|
+
|
|
253
|
+
// Transfers tokens from the smart wallet to a specified address.
|
|
254
|
+
transferToken(toAddress: Address, config: TransferType): Promise<string>;
|
|
255
|
+
|
|
256
|
+
// A list of NFTs owned by the wallet.
|
|
257
|
+
nfts(): Promise<NftResponse>;
|
|
258
|
+
|
|
259
|
+
// Sends a contract call transaction and returns the hash of a confirmed transaction.
|
|
260
|
+
executeContract(params: {
|
|
261
|
+
address: Address;
|
|
262
|
+
abi: Abi;
|
|
263
|
+
functionName: string;
|
|
264
|
+
args: unknown;
|
|
265
|
+
}): Promise<Hex>;
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### SmartWalletClient
|
|
270
|
+
|
|
271
|
+
The client instance available via `wallet.client.wallet`. Provides methods for interacting with the wallet:
|
|
272
|
+
|
|
273
|
+
```typescript
|
|
274
|
+
interface SmartWalletClient {
|
|
275
|
+
// Get the wallet's address
|
|
276
|
+
getAddress(): Address;
|
|
277
|
+
|
|
278
|
+
// Sign a message
|
|
279
|
+
signMessage(message: string): Promise<Hex>;
|
|
280
|
+
|
|
281
|
+
// Sign typed data (EIP-712)
|
|
282
|
+
signTypedData<T extends TypedData>(params: TypedDataDefinition<T>): Promise<Hex>;
|
|
283
|
+
|
|
284
|
+
// Send a transaction
|
|
285
|
+
sendTransaction(params: {
|
|
286
|
+
to: Address;
|
|
287
|
+
data?: Hex;
|
|
288
|
+
value?: bigint;
|
|
289
|
+
}): Promise<Hex>;
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Full reference is available in the [docs](https://docs.crossmint.com/sdk-reference/smart-wallets/introduction).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKXYDJTZScjs = require('../chunk-KXYDJTZS.cjs');exports.default = _chunkKXYDJTZScjs.a;
|