@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.
Files changed (285) hide show
  1. package/README.md +293 -0
  2. package/dist/abi/entryPoint.cjs +1 -0
  3. package/dist/abi/entryPoint.d.cts +777 -0
  4. package/dist/abi/entryPoint.d.ts +777 -0
  5. package/dist/abi/entryPoint.js +1 -0
  6. package/dist/abi/erc1155.cjs +1 -0
  7. package/dist/abi/erc1155.d.cts +254 -0
  8. package/dist/abi/erc1155.d.ts +254 -0
  9. package/dist/abi/erc1155.js +1 -0
  10. package/dist/abi/erc20.cjs +1 -0
  11. package/dist/abi/erc20.d.cts +170 -0
  12. package/dist/abi/erc20.d.ts +170 -0
  13. package/dist/abi/erc20.js +1 -0
  14. package/dist/abi/erc721.cjs +1 -0
  15. package/dist/abi/erc721.d.cts +247 -0
  16. package/dist/abi/erc721.d.ts +247 -0
  17. package/dist/abi/erc721.js +1 -0
  18. package/dist/apiService-D4DIxjMr.d.ts +136 -0
  19. package/dist/apiService-Dum8A8_6.d.cts +136 -0
  20. package/dist/apiService.cjs +1 -0
  21. package/dist/apiService.d.cts +9 -0
  22. package/dist/apiService.d.ts +9 -0
  23. package/dist/apiService.js +1 -0
  24. package/dist/{chunk-IUIBQFWY.cjs → chunk-23IWY6XV.cjs} +1 -1
  25. package/dist/chunk-2MQHIAJE.js +1 -0
  26. package/dist/chunk-4PMBBA3O.cjs +1 -0
  27. package/dist/chunk-5T3HB4Y6.js +1 -0
  28. package/dist/chunk-73LUJQGU.cjs +1 -0
  29. package/dist/chunk-75JNTS3U.js +1 -0
  30. package/dist/chunk-AS5VIM5V.cjs +1 -0
  31. package/dist/chunk-BCWZIVSQ.js +1 -0
  32. package/dist/{chunk-SODH64MG.cjs → chunk-D33JIUOQ.cjs} +1 -1
  33. package/dist/chunk-DB2QM3HB.js +1 -0
  34. package/dist/chunk-EMZ5NAG2.cjs +1 -0
  35. package/dist/chunk-GGKMZPIA.js +1 -0
  36. package/dist/chunk-I5RZI2HB.js +1 -0
  37. package/dist/chunk-J5SRLI35.cjs +1 -0
  38. package/dist/chunk-KXYDJTZS.cjs +1 -0
  39. package/dist/{chunk-I22LKNPM.js → chunk-LJ43A5BN.js} +1 -1
  40. package/dist/chunk-LPLLPZFU.cjs +1 -0
  41. package/dist/chunk-MLTT5BGD.cjs +1 -0
  42. package/dist/chunk-NXTHA2ZL.js +1 -0
  43. package/dist/chunk-OWZ3LXVG.js +1 -0
  44. package/dist/chunk-Q23CHZRT.cjs +1 -0
  45. package/dist/chunk-Q6YGAHDR.cjs +1 -0
  46. package/dist/chunk-SVGKSKZD.cjs +1 -0
  47. package/dist/chunk-T5PL4ATW.js +1 -0
  48. package/dist/chunk-U2JMKBCC.cjs +1 -0
  49. package/dist/chunk-UBRUUSMF.js +1 -0
  50. package/dist/chunk-VEZ3PQGX.js +1 -0
  51. package/dist/chunk-Z3KARJF5.js +1 -0
  52. package/dist/error/index.cjs +1 -1
  53. package/dist/error/index.d.cts +25 -43
  54. package/dist/error/index.d.ts +25 -43
  55. package/dist/error/index.js +1 -1
  56. package/dist/error/processor.cjs +1 -1
  57. package/dist/error/processor.d.cts +0 -13
  58. package/dist/error/processor.d.ts +0 -13
  59. package/dist/error/processor.js +1 -1
  60. package/dist/evm/chains/definitions/story-testnet.cjs +1 -0
  61. package/dist/evm/chains/definitions/story-testnet.js +1 -0
  62. package/dist/evm/chains/definitions/story.cjs +1 -0
  63. package/dist/evm/chains/definitions/story.js +1 -0
  64. package/dist/evm/chains/index.cjs +1 -0
  65. package/dist/{blockchain/chains.d.cts → evm/chains/index.d.cts} +4 -7
  66. package/dist/{blockchain/chains.d.ts → evm/chains/index.d.ts} +4 -7
  67. package/dist/evm/chains/index.js +1 -0
  68. package/dist/evm/rpc.cjs +1 -0
  69. package/dist/{blockchain → evm}/rpc.d.cts +4 -3
  70. package/dist/{blockchain → evm}/rpc.d.ts +4 -3
  71. package/dist/evm/rpc.js +1 -0
  72. package/dist/evm/smartWalletClient.d.cts +59 -0
  73. package/dist/evm/smartWalletClient.d.ts +59 -0
  74. package/dist/evm/transfer.cjs +1 -0
  75. package/dist/evm/transfer.d.cts +8 -0
  76. package/dist/evm/transfer.d.ts +8 -0
  77. package/dist/evm/transfer.js +1 -0
  78. package/dist/evm/wallet.cjs +1 -0
  79. package/dist/evm/wallet.d.cts +9 -0
  80. package/dist/evm/wallet.d.ts +9 -0
  81. package/dist/evm/wallet.js +1 -0
  82. package/dist/index.cjs +1 -1
  83. package/dist/index.d.cts +9 -20
  84. package/dist/index.d.ts +9 -20
  85. package/dist/index.js +1 -1
  86. package/dist/sdk.cjs +1 -0
  87. package/dist/{SmartWalletSDK.d.ts → sdk.d.cts} +18 -21
  88. package/dist/{SmartWalletSDK.d.cts → sdk.d.ts} +18 -21
  89. package/dist/sdk.js +1 -0
  90. package/dist/services/index.cjs +1 -1
  91. package/dist/services/index.js +1 -1
  92. package/dist/services/logger.cjs +1 -1
  93. package/dist/services/logger.js +1 -1
  94. package/dist/smartWalletService.cjs +1 -0
  95. package/dist/smartWalletService.d.cts +9 -0
  96. package/dist/smartWalletService.d.ts +9 -0
  97. package/dist/smartWalletService.js +1 -0
  98. package/dist/types/api.d.cts +195 -0
  99. package/dist/types/api.d.ts +195 -0
  100. package/dist/types/transfer.d.cts +46 -0
  101. package/dist/types/transfer.d.ts +46 -0
  102. package/dist/utils/constants.cjs +1 -1
  103. package/dist/utils/constants.d.cts +5 -6
  104. package/dist/utils/constants.d.ts +5 -6
  105. package/dist/utils/constants.js +1 -1
  106. package/dist/utils/index.cjs +1 -0
  107. package/dist/utils/index.d.cts +3 -0
  108. package/dist/utils/index.d.ts +3 -0
  109. package/dist/utils/index.js +1 -0
  110. package/package.json +3 -8
  111. package/dist/SmartWalletSDK.cjs +0 -1
  112. package/dist/SmartWalletSDK.js +0 -1
  113. package/dist/api/CrossmintWalletService.cjs +0 -1
  114. package/dist/api/CrossmintWalletService.d.cts +0 -31
  115. package/dist/api/CrossmintWalletService.d.ts +0 -31
  116. package/dist/api/CrossmintWalletService.js +0 -1
  117. package/dist/blockchain/chains.cjs +0 -1
  118. package/dist/blockchain/chains.js +0 -1
  119. package/dist/blockchain/rpc.cjs +0 -1
  120. package/dist/blockchain/rpc.js +0 -1
  121. package/dist/blockchain/transfer.cjs +0 -1
  122. package/dist/blockchain/transfer.d.cts +0 -23
  123. package/dist/blockchain/transfer.d.ts +0 -23
  124. package/dist/blockchain/transfer.js +0 -1
  125. package/dist/blockchain/wallets/EVMSmartWallet.cjs +0 -1
  126. package/dist/blockchain/wallets/EVMSmartWallet.d.cts +0 -102
  127. package/dist/blockchain/wallets/EVMSmartWallet.d.ts +0 -102
  128. package/dist/blockchain/wallets/EVMSmartWallet.js +0 -1
  129. package/dist/blockchain/wallets/SendTransactionService.cjs +0 -1
  130. package/dist/blockchain/wallets/SendTransactionService.d.cts +0 -84
  131. package/dist/blockchain/wallets/SendTransactionService.d.ts +0 -84
  132. package/dist/blockchain/wallets/SendTransactionService.js +0 -1
  133. package/dist/blockchain/wallets/account/cache.cjs +0 -1
  134. package/dist/blockchain/wallets/account/cache.d.cts +0 -25
  135. package/dist/blockchain/wallets/account/cache.d.ts +0 -25
  136. package/dist/blockchain/wallets/account/cache.js +0 -1
  137. package/dist/blockchain/wallets/account/config.cjs +0 -1
  138. package/dist/blockchain/wallets/account/config.d.cts +0 -47
  139. package/dist/blockchain/wallets/account/config.d.ts +0 -47
  140. package/dist/blockchain/wallets/account/config.js +0 -1
  141. package/dist/blockchain/wallets/account/creator.cjs +0 -1
  142. package/dist/blockchain/wallets/account/creator.d.cts +0 -26
  143. package/dist/blockchain/wallets/account/creator.d.ts +0 -26
  144. package/dist/blockchain/wallets/account/creator.js +0 -1
  145. package/dist/blockchain/wallets/account/eoa.cjs +0 -1
  146. package/dist/blockchain/wallets/account/eoa.d.cts +0 -21
  147. package/dist/blockchain/wallets/account/eoa.d.ts +0 -21
  148. package/dist/blockchain/wallets/account/eoa.js +0 -1
  149. package/dist/blockchain/wallets/account/passkey.cjs +0 -1
  150. package/dist/blockchain/wallets/account/passkey.d.cts +0 -29
  151. package/dist/blockchain/wallets/account/passkey.d.ts +0 -29
  152. package/dist/blockchain/wallets/account/passkey.js +0 -1
  153. package/dist/blockchain/wallets/account/signer.cjs +0 -1
  154. package/dist/blockchain/wallets/account/signer.d.cts +0 -14
  155. package/dist/blockchain/wallets/account/signer.d.ts +0 -14
  156. package/dist/blockchain/wallets/account/signer.js +0 -1
  157. package/dist/blockchain/wallets/account/strategy.d.cts +0 -20
  158. package/dist/blockchain/wallets/account/strategy.d.ts +0 -20
  159. package/dist/blockchain/wallets/clientDecorator.cjs +0 -1
  160. package/dist/blockchain/wallets/clientDecorator.d.cts +0 -38
  161. package/dist/blockchain/wallets/clientDecorator.d.ts +0 -38
  162. package/dist/blockchain/wallets/clientDecorator.js +0 -1
  163. package/dist/blockchain/wallets/definitions/story-testnet.cjs +0 -1
  164. package/dist/blockchain/wallets/definitions/story-testnet.js +0 -1
  165. package/dist/blockchain/wallets/definitions/story.cjs +0 -1
  166. package/dist/blockchain/wallets/definitions/story.js +0 -1
  167. package/dist/blockchain/wallets/index.cjs +0 -1
  168. package/dist/blockchain/wallets/index.d.cts +0 -20
  169. package/dist/blockchain/wallets/index.d.ts +0 -20
  170. package/dist/blockchain/wallets/index.js +0 -1
  171. package/dist/blockchain/wallets/paymaster.cjs +0 -1
  172. package/dist/blockchain/wallets/paymaster.d.cts +0 -29
  173. package/dist/blockchain/wallets/paymaster.d.ts +0 -29
  174. package/dist/blockchain/wallets/paymaster.js +0 -1
  175. package/dist/blockchain/wallets/service.cjs +0 -1
  176. package/dist/blockchain/wallets/service.d.cts +0 -41
  177. package/dist/blockchain/wallets/service.d.ts +0 -41
  178. package/dist/blockchain/wallets/service.js +0 -1
  179. package/dist/chunk-2R6HK64N.cjs +0 -1
  180. package/dist/chunk-3F6P4HUZ.js +0 -1
  181. package/dist/chunk-5FGSZZCU.js +0 -1
  182. package/dist/chunk-74J3L7KP.js +0 -1
  183. package/dist/chunk-76TIESKQ.cjs +0 -2
  184. package/dist/chunk-7AVDZZGD.cjs +0 -1
  185. package/dist/chunk-7COIRB4M.js +0 -1
  186. package/dist/chunk-ATQ4WGCW.js +0 -1
  187. package/dist/chunk-BJZQA5VC.js +0 -1
  188. package/dist/chunk-C3VZY7VJ.js +0 -1
  189. package/dist/chunk-CUTQYF3F.js +0 -1
  190. package/dist/chunk-D4NDUT36.js +0 -1
  191. package/dist/chunk-DHZVUAQA.js +0 -1
  192. package/dist/chunk-DIDKPOO2.cjs +0 -1
  193. package/dist/chunk-ERDSL6AZ.cjs +0 -1
  194. package/dist/chunk-ETVJGLNY.js +0 -1
  195. package/dist/chunk-FHNNZVNU.js +0 -1
  196. package/dist/chunk-GB35YMN4.cjs +0 -1
  197. package/dist/chunk-GVRCHWHG.js +0 -1
  198. package/dist/chunk-H4CMXNVK.js +0 -1
  199. package/dist/chunk-HN42GEK5.cjs +0 -3
  200. package/dist/chunk-ICKMQEHA.cjs +0 -1
  201. package/dist/chunk-IQTGPM2U.cjs +0 -1
  202. package/dist/chunk-KREX6Z32.js +0 -1
  203. package/dist/chunk-KYPTGHC6.cjs +0 -1
  204. package/dist/chunk-M4K3IZTT.cjs +0 -1
  205. package/dist/chunk-MECWQ5TQ.cjs +0 -1
  206. package/dist/chunk-MLZJIYAZ.js +0 -1
  207. package/dist/chunk-N64VSC3H.cjs +0 -1
  208. package/dist/chunk-NLGILHJS.js +0 -1
  209. package/dist/chunk-NQUKI27M.cjs +0 -1
  210. package/dist/chunk-O2ACORII.cjs +0 -1
  211. package/dist/chunk-OC3YNPRX.js +0 -3
  212. package/dist/chunk-OXRLBURF.js +0 -1
  213. package/dist/chunk-P5PDYDCW.js +0 -1
  214. package/dist/chunk-PZ6Q22YJ.js +0 -1
  215. package/dist/chunk-QBGECKSZ.cjs +0 -1
  216. package/dist/chunk-QQEJPZKN.cjs +0 -1
  217. package/dist/chunk-RLVETRLF.cjs +0 -1
  218. package/dist/chunk-S2XBSAGM.js +0 -1
  219. package/dist/chunk-SCXFZMLR.cjs +0 -1
  220. package/dist/chunk-STH2LE35.cjs +0 -1
  221. package/dist/chunk-SWWOVT47.cjs +0 -1
  222. package/dist/chunk-UG47CBKR.js +0 -1
  223. package/dist/chunk-UL4HKRLD.js +0 -1
  224. package/dist/chunk-UPURFW46.js +0 -1
  225. package/dist/chunk-WJ6XJMRD.cjs +0 -1
  226. package/dist/chunk-XI4CDQWT.cjs +0 -1
  227. package/dist/chunk-XJGFG3RT.cjs +0 -1
  228. package/dist/chunk-XQ2K2K23.cjs +0 -1
  229. package/dist/chunk-YYGR7VFT.js +0 -2
  230. package/dist/service-DqYCir8s.d.ts +0 -103
  231. package/dist/service-Ir-Qho-9.d.cts +0 -103
  232. package/dist/types/internal.cjs +0 -1
  233. package/dist/types/internal.d.cts +0 -14
  234. package/dist/types/internal.d.ts +0 -14
  235. package/dist/types/internal.js +0 -1
  236. package/dist/types/params.d.cts +0 -33
  237. package/dist/types/params.d.ts +0 -33
  238. package/dist/types/schema.cjs +0 -1
  239. package/dist/types/schema.d.cts +0 -241
  240. package/dist/types/schema.d.ts +0 -241
  241. package/dist/types/schema.js +0 -1
  242. package/dist/types/service.d.cts +0 -14
  243. package/dist/types/service.d.ts +0 -14
  244. package/dist/types/token.cjs +0 -1
  245. package/dist/types/token.d.cts +0 -35
  246. package/dist/types/token.d.ts +0 -35
  247. package/dist/types/token.js +0 -0
  248. package/dist/utils/api.cjs +0 -1
  249. package/dist/utils/api.d.cts +0 -4
  250. package/dist/utils/api.d.ts +0 -4
  251. package/dist/utils/api.js +0 -1
  252. package/dist/utils/blockchain.cjs +0 -1
  253. package/dist/utils/blockchain.d.cts +0 -7
  254. package/dist/utils/blockchain.d.ts +0 -7
  255. package/dist/utils/blockchain.js +0 -1
  256. package/dist/utils/environment.cjs +0 -1
  257. package/dist/utils/environment.d.cts +0 -3
  258. package/dist/utils/environment.d.ts +0 -3
  259. package/dist/utils/environment.js +0 -1
  260. package/dist/utils/helpers.cjs +0 -1
  261. package/dist/utils/helpers.d.cts +0 -4
  262. package/dist/utils/helpers.d.ts +0 -4
  263. package/dist/utils/helpers.js +0 -1
  264. package/dist/utils/signer.cjs +0 -1
  265. package/dist/utils/signer.d.cts +0 -15
  266. package/dist/utils/signer.d.ts +0 -15
  267. package/dist/utils/signer.js +0 -1
  268. package/dist/utils/test.cjs +0 -1
  269. package/dist/utils/test.d.cts +0 -18
  270. package/dist/utils/test.d.ts +0 -18
  271. package/dist/utils/test.js +0 -1
  272. /package/dist/{chunk-HQXF6VHP.cjs → chunk-5URY3C2T.cjs} +0 -0
  273. /package/dist/{chunk-DYVHPARQ.js → chunk-KVFFSUF4.js} +0 -0
  274. /package/dist/{chunk-GPZ7PHS6.cjs → chunk-MFUN74KH.cjs} +0 -0
  275. /package/dist/{chunk-NT7LBRZQ.js → chunk-XLACPZJJ.js} +0 -0
  276. /package/dist/{blockchain/wallets → evm/chains}/definitions/story-testnet.d.cts +0 -0
  277. /package/dist/{blockchain/wallets → evm/chains}/definitions/story-testnet.d.ts +0 -0
  278. /package/dist/{blockchain/wallets → evm/chains}/definitions/story.d.cts +0 -0
  279. /package/dist/{blockchain/wallets → evm/chains}/definitions/story.d.ts +0 -0
  280. /package/dist/{blockchain/wallets/account/strategy.cjs → evm/smartWalletClient.cjs} +0 -0
  281. /package/dist/{blockchain/wallets/account/strategy.js → evm/smartWalletClient.js} +0 -0
  282. /package/dist/types/{params.cjs → api.cjs} +0 -0
  283. /package/dist/types/{params.js → api.js} +0 -0
  284. /package/dist/types/{service.cjs → transfer.cjs} +0 -0
  285. /package/dist/types/{service.js → transfer.js} +0 -0
@@ -0,0 +1,136 @@
1
+ import { CrossmintApiClient, Crossmint, BlockchainIncludingTestnet } from '@crossmint/common-sdk-base';
2
+ import { SDKLogger, APIErrorService } from '@crossmint/client-sdk-base';
3
+ import { PublicClient, HttpTransport, Address, Abi, ContractFunctionName, ContractFunctionArgs, WriteContractParameters, Hex, LocalAccount, EIP1193Provider } from 'viem';
4
+ import { WebAuthnP256 } from 'ox';
5
+ import { NftResponse, CreateWalletParams, CreateWalletResponse, CreateTransactionParams, TransactionResponse, ApproveTransactionParams, CreateSignatureParams, SignatureResponse, ApproveSignatureParams } from './types/api.js';
6
+ import { SmartWalletChain } from './evm/chains/index.js';
7
+ import { TransferType } from './types/transfer.js';
8
+ import { SmartWalletClient } from './evm/smartWalletClient.js';
9
+
10
+ declare class EVMSmartWallet {
11
+ /**
12
+ * [viem](https://viem.sh/) clients that provide an interface for core wallet functionality.
13
+ */
14
+ readonly client: {
15
+ /**
16
+ * An interface to interact with the smart wallet, execute transactions, sign messages, etc.
17
+ */
18
+ public: PublicClient<HttpTransport>;
19
+ /**
20
+ * An interface to read onchain data, fetch transactions, retrieve account balances, etc. Corresponds to public [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods.
21
+ */
22
+ wallet: SmartWalletClient;
23
+ };
24
+ readonly chain: SmartWalletChain;
25
+ private readonly apiService;
26
+ constructor(
27
+ /**
28
+ * [viem](https://viem.sh/) clients that provide an interface for core wallet functionality.
29
+ */
30
+ client: {
31
+ /**
32
+ * An interface to interact with the smart wallet, execute transactions, sign messages, etc.
33
+ */
34
+ public: PublicClient<HttpTransport>;
35
+ /**
36
+ * An interface to read onchain data, fetch transactions, retrieve account balances, etc. Corresponds to public [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods.
37
+ */
38
+ wallet: SmartWalletClient;
39
+ }, chain: SmartWalletChain, apiService: CrossmintApiService);
40
+ /**
41
+ * The address of the smart wallet.
42
+ */
43
+ get address(): `0x${string}`;
44
+ /**
45
+ * Transfers tokens from the smart wallet to a specified address.
46
+ * @param toAddress The recipient's address.
47
+ * @param config The transfer configuration, including token details and amount.
48
+ * @throws {InvalidTransferChainError} If the chain of the token does not match the chain of the wallet.
49
+ * @returns The transaction hash.
50
+ */
51
+ transferToken(toAddress: Address, config: TransferType): Promise<string>;
52
+ /**
53
+ * @returns A list of NFTs owned by the wallet.
54
+ */
55
+ nfts(): Promise<NftResponse>;
56
+ /**
57
+ * Sends a contract call transaction and returns the hash of a confirmed transaction.
58
+ * @param address the address of the contract to be called
59
+ * @param abi the ABI of the contract - ***should be defined as a typed variable*** to enable type checking of the contract arguments, see https://viem.sh/docs/typescript#type-inference for guidance
60
+ * @param functionName the name of the smart contract function to be called
61
+ * @param args the arguments to be passed to the function
62
+ * @returns The transaction hash.
63
+ *
64
+ * **Passing a typed ABI:**
65
+ * @example
66
+ * const abi = [{
67
+ * "inputs": [
68
+ * {
69
+ * "internalType": "address",
70
+ * "name": "recipient",
71
+ * "type": "address"
72
+ * },
73
+ * ],
74
+ * "name": "mintNFT",
75
+ * "outputs": [],
76
+ * "stateMutability": "nonpayable",
77
+ * "type": "function"
78
+ * }] as const;
79
+ *
80
+ * await wallet.executeContract({
81
+ * address: contractAddress,
82
+ * abi,
83
+ * functionName: "mintNFT",
84
+ * args: [recipientAddress],
85
+ * });
86
+ */
87
+ executeContract<const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable"> = ContractFunctionName<TAbi, "nonpayable" | "payable">, TArgs extends ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName> = ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName>>({ address, abi, functionName, args, value, }: Omit<WriteContractParameters<TAbi, TFunctionName, TArgs>, "chain" | "account">): Promise<Hex>;
88
+ }
89
+
90
+ type ViemAccount = {
91
+ type: "VIEM_ACCOUNT";
92
+ account: LocalAccount & {
93
+ source: "custom";
94
+ };
95
+ };
96
+ type PasskeySigner = {
97
+ type: "PASSKEY";
98
+ credential: WebAuthnP256.P256Credential;
99
+ };
100
+ type ExternalSigner = EIP1193Provider | ViemAccount;
101
+ interface WalletParams {
102
+ signer: ExternalSigner | PasskeySigner;
103
+ }
104
+ interface UserParams {
105
+ jwt: string;
106
+ }
107
+ declare class SmartWalletService {
108
+ private readonly crossmintApiService;
109
+ constructor(crossmintApiService: CrossmintApiService);
110
+ getOrCreate(user: UserParams, chain: SmartWalletChain, walletParams: WalletParams): Promise<EVMSmartWallet>;
111
+ private smartAccountClient;
112
+ private sendTransactionInternal;
113
+ private createWallet;
114
+ private getSignerLocator;
115
+ private getSignerAddress;
116
+ private approveTransaction;
117
+ private approveSignature;
118
+ }
119
+
120
+ declare const scwLogger: SDKLogger;
121
+ declare class CrossmintApiService {
122
+ logger: SDKLogger;
123
+ protected apiErrorService: APIErrorService<never>;
124
+ protected apiClient: CrossmintApiClient;
125
+ constructor(crossmint: Crossmint);
126
+ createWallet(user: UserParams, params: CreateWalletParams): Promise<CreateWalletResponse>;
127
+ createTransaction(user: UserParams, params: CreateTransactionParams): Promise<TransactionResponse>;
128
+ approveTransaction(user: UserParams, transactionId: string, params: ApproveTransactionParams): Promise<TransactionResponse>;
129
+ getTransaction(user: UserParams, transactionId: string): Promise<TransactionResponse>;
130
+ createSignature(user: UserParams, params: CreateSignatureParams): Promise<SignatureResponse>;
131
+ approveSignature(user: UserParams, signatureId: string, params: ApproveSignatureParams): Promise<SignatureResponse>;
132
+ getSignature(user: UserParams, signatureId: string): Promise<SignatureResponse>;
133
+ getNfts(walletLocator: `${BlockchainIncludingTestnet}:${Address}`): Promise<NftResponse>;
134
+ }
135
+
136
+ export { CrossmintApiService as C, type ExternalSigner as E, type PasskeySigner as P, SmartWalletService as S, type UserParams as U, type ViemAccount as V, type WalletParams as W, EVMSmartWallet as a, scwLogger as s };
@@ -0,0 +1,136 @@
1
+ import { CrossmintApiClient, Crossmint, BlockchainIncludingTestnet } from '@crossmint/common-sdk-base';
2
+ import { SDKLogger, APIErrorService } from '@crossmint/client-sdk-base';
3
+ import { PublicClient, HttpTransport, Address, Abi, ContractFunctionName, ContractFunctionArgs, WriteContractParameters, Hex, LocalAccount, EIP1193Provider } from 'viem';
4
+ import { WebAuthnP256 } from 'ox';
5
+ import { NftResponse, CreateWalletParams, CreateWalletResponse, CreateTransactionParams, TransactionResponse, ApproveTransactionParams, CreateSignatureParams, SignatureResponse, ApproveSignatureParams } from './types/api.cjs';
6
+ import { SmartWalletChain } from './evm/chains/index.cjs';
7
+ import { TransferType } from './types/transfer.cjs';
8
+ import { SmartWalletClient } from './evm/smartWalletClient.cjs';
9
+
10
+ declare class EVMSmartWallet {
11
+ /**
12
+ * [viem](https://viem.sh/) clients that provide an interface for core wallet functionality.
13
+ */
14
+ readonly client: {
15
+ /**
16
+ * An interface to interact with the smart wallet, execute transactions, sign messages, etc.
17
+ */
18
+ public: PublicClient<HttpTransport>;
19
+ /**
20
+ * An interface to read onchain data, fetch transactions, retrieve account balances, etc. Corresponds to public [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods.
21
+ */
22
+ wallet: SmartWalletClient;
23
+ };
24
+ readonly chain: SmartWalletChain;
25
+ private readonly apiService;
26
+ constructor(
27
+ /**
28
+ * [viem](https://viem.sh/) clients that provide an interface for core wallet functionality.
29
+ */
30
+ client: {
31
+ /**
32
+ * An interface to interact with the smart wallet, execute transactions, sign messages, etc.
33
+ */
34
+ public: PublicClient<HttpTransport>;
35
+ /**
36
+ * An interface to read onchain data, fetch transactions, retrieve account balances, etc. Corresponds to public [JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) methods.
37
+ */
38
+ wallet: SmartWalletClient;
39
+ }, chain: SmartWalletChain, apiService: CrossmintApiService);
40
+ /**
41
+ * The address of the smart wallet.
42
+ */
43
+ get address(): `0x${string}`;
44
+ /**
45
+ * Transfers tokens from the smart wallet to a specified address.
46
+ * @param toAddress The recipient's address.
47
+ * @param config The transfer configuration, including token details and amount.
48
+ * @throws {InvalidTransferChainError} If the chain of the token does not match the chain of the wallet.
49
+ * @returns The transaction hash.
50
+ */
51
+ transferToken(toAddress: Address, config: TransferType): Promise<string>;
52
+ /**
53
+ * @returns A list of NFTs owned by the wallet.
54
+ */
55
+ nfts(): Promise<NftResponse>;
56
+ /**
57
+ * Sends a contract call transaction and returns the hash of a confirmed transaction.
58
+ * @param address the address of the contract to be called
59
+ * @param abi the ABI of the contract - ***should be defined as a typed variable*** to enable type checking of the contract arguments, see https://viem.sh/docs/typescript#type-inference for guidance
60
+ * @param functionName the name of the smart contract function to be called
61
+ * @param args the arguments to be passed to the function
62
+ * @returns The transaction hash.
63
+ *
64
+ * **Passing a typed ABI:**
65
+ * @example
66
+ * const abi = [{
67
+ * "inputs": [
68
+ * {
69
+ * "internalType": "address",
70
+ * "name": "recipient",
71
+ * "type": "address"
72
+ * },
73
+ * ],
74
+ * "name": "mintNFT",
75
+ * "outputs": [],
76
+ * "stateMutability": "nonpayable",
77
+ * "type": "function"
78
+ * }] as const;
79
+ *
80
+ * await wallet.executeContract({
81
+ * address: contractAddress,
82
+ * abi,
83
+ * functionName: "mintNFT",
84
+ * args: [recipientAddress],
85
+ * });
86
+ */
87
+ executeContract<const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable"> = ContractFunctionName<TAbi, "nonpayable" | "payable">, TArgs extends ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName> = ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName>>({ address, abi, functionName, args, value, }: Omit<WriteContractParameters<TAbi, TFunctionName, TArgs>, "chain" | "account">): Promise<Hex>;
88
+ }
89
+
90
+ type ViemAccount = {
91
+ type: "VIEM_ACCOUNT";
92
+ account: LocalAccount & {
93
+ source: "custom";
94
+ };
95
+ };
96
+ type PasskeySigner = {
97
+ type: "PASSKEY";
98
+ credential: WebAuthnP256.P256Credential;
99
+ };
100
+ type ExternalSigner = EIP1193Provider | ViemAccount;
101
+ interface WalletParams {
102
+ signer: ExternalSigner | PasskeySigner;
103
+ }
104
+ interface UserParams {
105
+ jwt: string;
106
+ }
107
+ declare class SmartWalletService {
108
+ private readonly crossmintApiService;
109
+ constructor(crossmintApiService: CrossmintApiService);
110
+ getOrCreate(user: UserParams, chain: SmartWalletChain, walletParams: WalletParams): Promise<EVMSmartWallet>;
111
+ private smartAccountClient;
112
+ private sendTransactionInternal;
113
+ private createWallet;
114
+ private getSignerLocator;
115
+ private getSignerAddress;
116
+ private approveTransaction;
117
+ private approveSignature;
118
+ }
119
+
120
+ declare const scwLogger: SDKLogger;
121
+ declare class CrossmintApiService {
122
+ logger: SDKLogger;
123
+ protected apiErrorService: APIErrorService<never>;
124
+ protected apiClient: CrossmintApiClient;
125
+ constructor(crossmint: Crossmint);
126
+ createWallet(user: UserParams, params: CreateWalletParams): Promise<CreateWalletResponse>;
127
+ createTransaction(user: UserParams, params: CreateTransactionParams): Promise<TransactionResponse>;
128
+ approveTransaction(user: UserParams, transactionId: string, params: ApproveTransactionParams): Promise<TransactionResponse>;
129
+ getTransaction(user: UserParams, transactionId: string): Promise<TransactionResponse>;
130
+ createSignature(user: UserParams, params: CreateSignatureParams): Promise<SignatureResponse>;
131
+ approveSignature(user: UserParams, signatureId: string, params: ApproveSignatureParams): Promise<SignatureResponse>;
132
+ getSignature(user: UserParams, signatureId: string): Promise<SignatureResponse>;
133
+ getNfts(walletLocator: `${BlockchainIncludingTestnet}:${Address}`): Promise<NftResponse>;
134
+ }
135
+
136
+ export { CrossmintApiService as C, type ExternalSigner as E, type PasskeySigner as P, SmartWalletService as S, type UserParams as U, type ViemAccount as V, type WalletParams as W, EVMSmartWallet as a, scwLogger as s };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkSVGKSKZDcjs = require('./chunk-SVGKSKZD.cjs');require('./chunk-EMZ5NAG2.cjs');exports.CrossmintApiService = _chunkSVGKSKZDcjs.b; exports.scwLogger = _chunkSVGKSKZDcjs.a;
@@ -0,0 +1,9 @@
1
+ import '@crossmint/common-sdk-base';
2
+ import '@crossmint/client-sdk-base';
3
+ import 'viem';
4
+ export { C as CrossmintApiService, s as scwLogger } from './apiService-Dum8A8_6.cjs';
5
+ import './types/api.cjs';
6
+ import 'ox';
7
+ import './evm/chains/index.cjs';
8
+ import './types/transfer.cjs';
9
+ import './evm/smartWalletClient.cjs';
@@ -0,0 +1,9 @@
1
+ import '@crossmint/common-sdk-base';
2
+ import '@crossmint/client-sdk-base';
3
+ import 'viem';
4
+ export { C as CrossmintApiService, s as scwLogger } from './apiService-D4DIxjMr.js';
5
+ import './types/api.js';
6
+ import 'ox';
7
+ import './evm/chains/index.js';
8
+ import './types/transfer.js';
9
+ import './evm/smartWalletClient.js';
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-BCWZIVSQ.js";import"./chunk-T5PL4ATW.js";export{b as CrossmintApiService,a as scwLogger};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkNQUKI27Mcjs = require('./chunk-NQUKI27M.cjs');var _commonsdkbase = require('@crossmint/common-sdk-base');var i="-7M6vRDBDknwvMxnqah_jbcieWg0qad9",e="pim_9dKmQPxiTCvtbUNF7XFBbA",r= exports.a ={polygon:"polygon-mainnet","polygon-amoy":"polygon-amoy",base:"base-mainnet","base-sepolia":"base-sepolia",optimism:"opt-mainnet","optimism-sepolia":"opt-sepolia",arbitrum:"arb-mainnet","arbitrum-sepolia":"arb-sepolia"};function n(t){return`https://${r[t]}.g.alchemy.com/v2/${i}`}function s(t){return t==="story-testnet"||t==="story"?_chunkNQUKI27Mcjs.i[t].rpcUrls.default.http[0]:n(t)}function c(t){return`https://api.pimlico.io/v2/${_commonsdkbase.blockchainToChainId.call(void 0, t)}/rpc?apikey=${e}`}exports.a = r; exports.b = s; exports.c = c;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkMLTT5BGDcjs = require('./chunk-MLTT5BGD.cjs');var _commonsdkbase = require('@crossmint/common-sdk-base');var e="-7M6vRDBDknwvMxnqah_jbcieWg0qad9",i="pim_9dKmQPxiTCvtbUNF7XFBbA",r= exports.a ={polygon:"polygon-mainnet","polygon-amoy":"polygon-amoy",base:"base-mainnet","base-sepolia":"base-sepolia",optimism:"opt-mainnet","optimism-sepolia":"opt-sepolia",arbitrum:"arb-mainnet","arbitrum-sepolia":"arb-sepolia"};function n(t){return`https://${r[t]}.g.alchemy.com/v2/${e}`}function s(t){return t==="story-testnet"||t==="story"?_chunkMLTT5BGDcjs.c[t].rpcUrls.default.http[0]:n(t)}function c(t){return`https://api.pimlico.io/v2/${_commonsdkbase.blockchainToChainId.call(void 0, t)}/rpc?apikey=${i}`}exports.a = r; exports.b = n; exports.c = s; exports.d = c;
@@ -0,0 +1 @@
1
+ async function o(e){return new Promise(n=>setTimeout(n,e))}export{o as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJ5SRLI35cjs = require('./chunk-J5SRLI35.cjs');var _viem = require('viem');function i({contract:e,config:r,from:s,to:a}){switch(r.token.type){case"ft":return{address:e,abi:_viem.erc20Abi,functionName:"transfer",args:[a,r.amount]};case"sft":return{address:e,abi:_chunkJ5SRLI35cjs.a,functionName:"safeTransferFrom",args:[s,a,r.token.tokenId,r.quantity,"0x00"],tokenId:r.token.tokenId};case"nft":return{address:e,abi:_viem.erc721Abi,functionName:"safeTransferFrom",args:[s,a,r.token.tokenId],tokenId:r.token.tokenId}}}exports.a = i;
@@ -0,0 +1 @@
1
+ import{a as o}from"./chunk-UBRUUSMF.js";import{b as a}from"./chunk-T5PL4ATW.js";import{BaseError as e,stringify as i}from"viem";var r=class{constructor(n){this.logger=n}map(n,t){return this.record(n),n instanceof o||n instanceof e?n:t}record(n){let t=n instanceof Error?n.message:String(n);this.logger.error(`Smart Wallet SDK Error: ${t}`,{stack:n instanceof Error?n.stack:void 0,name:n instanceof Error?n.name:"UnknownError",details:i(n),domain:window.location.hostname,sdk_version:a})}};export{r as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _clientsdkbase = require('@crossmint/client-sdk-base');var n=class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},l= exports.b =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},E= exports.c =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},x= exports.d =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},u= exports.e =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},C= exports.f =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},p= exports.g =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},g= exports.h =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},d= exports.i =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},m= exports.j =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},G= exports.k =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}},O= exports.l =class extends _clientsdkbase.CrossmintSDKError{constructor(t,r,s=_clientsdkbase.SmartWalletErrorCode.UNCATEGORIZED){super(t,s,r)}};exports.a = n; exports.b = l; exports.c = E; exports.d = x; exports.e = u; exports.f = C; exports.g = p; exports.h = g; exports.i = d; exports.j = m; exports.k = G; exports.l = O;
@@ -0,0 +1 @@
1
+ import{c as o}from"./chunk-VEZ3PQGX.js";import{blockchainToChainId as a}from"@crossmint/common-sdk-base";var e="-7M6vRDBDknwvMxnqah_jbcieWg0qad9",i="pim_9dKmQPxiTCvtbUNF7XFBbA",r={polygon:"polygon-mainnet","polygon-amoy":"polygon-amoy",base:"base-mainnet","base-sepolia":"base-sepolia",optimism:"opt-mainnet","optimism-sepolia":"opt-sepolia",arbitrum:"arb-mainnet","arbitrum-sepolia":"arb-sepolia"};function n(t){return`https://${r[t]}.g.alchemy.com/v2/${e}`}function c(t){return t==="story-testnet"||t==="story"?o[t].rpcUrls.default.http[0]:n(t)}function C(t){return`https://api.pimlico.io/v2/${a(t)}/rpc?apikey=${i}`}export{r as a,n as b,c,C as d};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});async function t(e){return new Promise(n=>setTimeout(n,e))}exports.a = t;
@@ -0,0 +1 @@
1
+ import{a as r,b as n,c as o,d as a}from"./chunk-T5PL4ATW.js";import{CrossmintApiClient as l}from"@crossmint/common-sdk-base";import{APIErrorService as m,SDKLogger as c}from"@crossmint/client-sdk-base";var g=new c(r),i=class{constructor(e){this.logger=g;this.apiErrorService=new m({});this.apiClient=new l(e,{internalConfig:{sdkMetadata:{name:o,version:n}}})}async createWallet(e,s){return(await this.apiClient.post(`api/${a}/wallets/me`,{body:JSON.stringify(s),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async createTransaction(e,s){return(await this.apiClient.post(`api/${a}/wallets/me:evm-smart-wallet/transactions`,{body:JSON.stringify(s),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async approveTransaction(e,s,t){return(await this.apiClient.post(`api/${a}/wallets/me:evm-smart-wallet/transactions/${s}/approvals`,{body:JSON.stringify(t),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async getTransaction(e,s){return(await this.apiClient.get(`api/${a}/wallets/me:evm-smart-wallet/transactions/${s}`,{headers:{Authorization:`Bearer ${e.jwt}`}})).json()}async createSignature(e,s){return(await this.apiClient.post(`api/${a}/wallets/me:evm-smart-wallet/signatures`,{body:JSON.stringify(s),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async approveSignature(e,s,t){return(await this.apiClient.post(`api/${a}/wallets/me:evm-smart-wallet/signatures/${s}/approvals`,{body:JSON.stringify(t),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async getSignature(e,s){return(await this.apiClient.get(`api/${a}/wallets/me:evm-smart-wallet/signatures/${s}`,{headers:{Authorization:`Bearer ${e.jwt}`}})).json()}async getNfts(e){return(await this.apiClient.get(`api/${a}/wallets/${e}/nfts`,{})).json()}};export{g as a,i as b};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkQBGECKSZcjs = require('./chunk-QBGECKSZ.cjs');var _chunkM4K3IZTTcjs = require('./chunk-M4K3IZTT.cjs');var _viem = require('viem');var r=class{constructor(n){this.logger=n}map(n,t){return this.record(n),n instanceof _chunkM4K3IZTTcjs.a||n instanceof _viem.BaseError?n:t}record(n){let t=n instanceof Error?n.message:String(n);this.logger.error(`Smart Wallet SDK Error: ${t}`,{stack:n instanceof Error?n.stack:void 0,name:n instanceof Error?n.name:"UnknownError",details:_viem.stringify.call(void 0, n),domain:window.location.hostname,sdk_version:_chunkQBGECKSZcjs.d})}};exports.a = r;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk73LUJQGUcjs = require('./chunk-73LUJQGU.cjs');var _chunkEMZ5NAG2cjs = require('./chunk-EMZ5NAG2.cjs');var _viem = require('viem');var r=class{constructor(n){this.logger=n}map(n,t){return this.record(n),n instanceof _chunk73LUJQGUcjs.a||n instanceof _viem.BaseError?n:t}record(n){let t=n instanceof Error?n.message:String(n);this.logger.error(`Smart Wallet SDK Error: ${t}`,{stack:n instanceof Error?n.stack:void 0,name:n instanceof Error?n.name:"UnknownError",details:_viem.stringify.call(void 0, n),domain:window.location.hostname,sdk_version:_chunkEMZ5NAG2cjs.b})}};exports.a = r;
@@ -0,0 +1 @@
1
+ import{e as a}from"./chunk-UBRUUSMF.js";import{a as r}from"./chunk-NXTHA2ZL.js";import{encodeFunctionData as p}from"viem";var i=class{constructor(e,t,n){this.client=e;this.chain=t;this.apiService=n}get address(){return this.client.wallet.getAddress()}async transferToken(e,t){if(this.chain!==t.token.chain)throw new a(`Chain mismatch: Expected ${t.token.chain}, but got ${this.chain}. Ensure you are interacting with the correct blockchain.`);return await this.executeContract(r({contract:t.token.contractAddress,from:this.address,to:e,config:t}))}async nfts(){return await this.apiService.getNfts(`${this.chain}:${this.address}`)}async executeContract({address:e,abi:t,functionName:n,args:o,value:c}){let s=p({abi:t,functionName:n,args:o});return await this.client.wallet.sendTransaction({to:e,data:s,value:c})}};export{i as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var s="@crossmint/client-sdk-smart-wallet",t="0.2.0";var d="SCW_SDK",c= exports.b =t,r= exports.c =s,p= exports.d ="2022-06-09",a= exports.e ="0x0000000071727de22e5e9d8baf0edac6f37da032",m= exports.f =1e3;exports.a = d; exports.b = c; exports.c = r; exports.d = p; exports.e = a; exports.f = m;
@@ -0,0 +1 @@
1
+ var e=[{inputs:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"ret",type:"bytes"}],name:"DelegateAndRevert",type:"error"},{inputs:[{internalType:"uint256",name:"opIndex",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"FailedOp",type:"error"},{inputs:[{internalType:"uint256",name:"opIndex",type:"uint256"},{internalType:"string",name:"reason",type:"string"},{internalType:"bytes",name:"inner",type:"bytes"}],name:"FailedOpWithRevert",type:"error"},{inputs:[{internalType:"bytes",name:"returnData",type:"bytes"}],name:"PostOpReverted",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"SenderAddressResult",type:"error"},{inputs:[{internalType:"address",name:"aggregator",type:"address"}],name:"SignatureValidationFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"factory",type:"address"},{indexed:!1,internalType:"address",name:"paymaster",type:"address"}],name:"AccountDeployed",type:"event"},{anonymous:!1,inputs:[],name:"BeforeExecution",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"uint256",name:"totalDeposit",type:"uint256"}],name:"Deposited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes",name:"revertReason",type:"bytes"}],name:"PostOpRevertReason",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"aggregator",type:"address"}],name:"SignatureAggregatorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"uint256",name:"totalStaked",type:"uint256"},{indexed:!1,internalType:"uint256",name:"unstakeDelaySec",type:"uint256"}],name:"StakeLocked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"uint256",name:"withdrawTime",type:"uint256"}],name:"StakeUnlocked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"address",name:"withdrawAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"StakeWithdrawn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"paymaster",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"uint256",name:"actualGasCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"actualGasUsed",type:"uint256"}],name:"UserOperationEvent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"}],name:"UserOperationPrefundTooLow",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes",name:"revertReason",type:"bytes"}],name:"UserOperationRevertReason",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"address",name:"withdrawAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdrawn",type:"event"},{inputs:[{internalType:"uint32",name:"unstakeDelaySec",type:"uint32"}],name:"addStake",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"delegateAndRevert",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"depositTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"deposits",outputs:[{internalType:"uint256",name:"deposit",type:"uint256"},{internalType:"bool",name:"staked",type:"bool"},{internalType:"uint112",name:"stake",type:"uint112"},{internalType:"uint32",name:"unstakeDelaySec",type:"uint32"},{internalType:"uint48",name:"withdrawTime",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getDepositInfo",outputs:[{components:[{internalType:"uint256",name:"deposit",type:"uint256"},{internalType:"bool",name:"staked",type:"bool"},{internalType:"uint112",name:"stake",type:"uint112"},{internalType:"uint32",name:"unstakeDelaySec",type:"uint32"},{internalType:"uint48",name:"withdrawTime",type:"uint48"}],internalType:"struct IStakeManager.DepositInfo",name:"info",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint192",name:"key",type:"uint192"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"initCode",type:"bytes"}],name:"getSenderAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"initCode",type:"bytes"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bytes32",name:"accountGasLimits",type:"bytes32"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"bytes32",name:"gasFees",type:"bytes32"},{internalType:"bytes",name:"paymasterAndData",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct PackedUserOperation",name:"userOp",type:"tuple"}],name:"getUserOpHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"initCode",type:"bytes"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bytes32",name:"accountGasLimits",type:"bytes32"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"bytes32",name:"gasFees",type:"bytes32"},{internalType:"bytes",name:"paymasterAndData",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct PackedUserOperation[]",name:"userOps",type:"tuple[]"},{internalType:"contract IAggregator",name:"aggregator",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct IEntryPoint.UserOpsPerAggregator[]",name:"opsPerAggregator",type:"tuple[]"},{internalType:"address payable",name:"beneficiary",type:"address"}],name:"handleAggregatedOps",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"initCode",type:"bytes"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bytes32",name:"accountGasLimits",type:"bytes32"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"bytes32",name:"gasFees",type:"bytes32"},{internalType:"bytes",name:"paymasterAndData",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct PackedUserOperation[]",name:"ops",type:"tuple[]"},{internalType:"address payable",name:"beneficiary",type:"address"}],name:"handleOps",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint192",name:"key",type:"uint192"}],name:"incrementNonce",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"callData",type:"bytes"},{components:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"verificationGasLimit",type:"uint256"},{internalType:"uint256",name:"callGasLimit",type:"uint256"},{internalType:"uint256",name:"paymasterVerificationGasLimit",type:"uint256"},{internalType:"uint256",name:"paymasterPostOpGasLimit",type:"uint256"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"address",name:"paymaster",type:"address"},{internalType:"uint256",name:"maxFeePerGas",type:"uint256"},{internalType:"uint256",name:"maxPriorityFeePerGas",type:"uint256"}],internalType:"struct EntryPoint.MemoryUserOp",name:"mUserOp",type:"tuple"},{internalType:"bytes32",name:"userOpHash",type:"bytes32"},{internalType:"uint256",name:"prefund",type:"uint256"},{internalType:"uint256",name:"contextOffset",type:"uint256"},{internalType:"uint256",name:"preOpGas",type:"uint256"}],internalType:"struct EntryPoint.UserOpInfo",name:"opInfo",type:"tuple"},{internalType:"bytes",name:"context",type:"bytes"}],name:"innerHandleOp",outputs:[{internalType:"uint256",name:"actualGasCost",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint192",name:"",type:"uint192"}],name:"nonceSequenceNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unlockStake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"withdrawAddress",type:"address"}],name:"withdrawStake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"withdrawAddress",type:"address"},{internalType:"uint256",name:"withdrawAmount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],a=e;export{a};
@@ -0,0 +1 @@
1
+ var e=[{inputs:[{internalType:"string",name:"uri_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"accounts",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],a=e;export{a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var e=[{inputs:[{internalType:"string",name:"uri_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"accounts",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],t= exports.a =e;exports.a = t;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var e=[{inputs:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"ret",type:"bytes"}],name:"DelegateAndRevert",type:"error"},{inputs:[{internalType:"uint256",name:"opIndex",type:"uint256"},{internalType:"string",name:"reason",type:"string"}],name:"FailedOp",type:"error"},{inputs:[{internalType:"uint256",name:"opIndex",type:"uint256"},{internalType:"string",name:"reason",type:"string"},{internalType:"bytes",name:"inner",type:"bytes"}],name:"FailedOpWithRevert",type:"error"},{inputs:[{internalType:"bytes",name:"returnData",type:"bytes"}],name:"PostOpReverted",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"SenderAddressResult",type:"error"},{inputs:[{internalType:"address",name:"aggregator",type:"address"}],name:"SignatureValidationFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"factory",type:"address"},{indexed:!1,internalType:"address",name:"paymaster",type:"address"}],name:"AccountDeployed",type:"event"},{anonymous:!1,inputs:[],name:"BeforeExecution",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"uint256",name:"totalDeposit",type:"uint256"}],name:"Deposited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes",name:"revertReason",type:"bytes"}],name:"PostOpRevertReason",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"aggregator",type:"address"}],name:"SignatureAggregatorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"uint256",name:"totalStaked",type:"uint256"},{indexed:!1,internalType:"uint256",name:"unstakeDelaySec",type:"uint256"}],name:"StakeLocked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"uint256",name:"withdrawTime",type:"uint256"}],name:"StakeUnlocked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"address",name:"withdrawAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"StakeWithdrawn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"paymaster",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bool",name:"success",type:"bool"},{indexed:!1,internalType:"uint256",name:"actualGasCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"actualGasUsed",type:"uint256"}],name:"UserOperationEvent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"}],name:"UserOperationPrefundTooLow",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"userOpHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes",name:"revertReason",type:"bytes"}],name:"UserOperationRevertReason",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!1,internalType:"address",name:"withdrawAddress",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdrawn",type:"event"},{inputs:[{internalType:"uint32",name:"unstakeDelaySec",type:"uint32"}],name:"addStake",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"delegateAndRevert",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"depositTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"deposits",outputs:[{internalType:"uint256",name:"deposit",type:"uint256"},{internalType:"bool",name:"staked",type:"bool"},{internalType:"uint112",name:"stake",type:"uint112"},{internalType:"uint32",name:"unstakeDelaySec",type:"uint32"},{internalType:"uint48",name:"withdrawTime",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"getDepositInfo",outputs:[{components:[{internalType:"uint256",name:"deposit",type:"uint256"},{internalType:"bool",name:"staked",type:"bool"},{internalType:"uint112",name:"stake",type:"uint112"},{internalType:"uint32",name:"unstakeDelaySec",type:"uint32"},{internalType:"uint48",name:"withdrawTime",type:"uint48"}],internalType:"struct IStakeManager.DepositInfo",name:"info",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint192",name:"key",type:"uint192"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"initCode",type:"bytes"}],name:"getSenderAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"initCode",type:"bytes"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bytes32",name:"accountGasLimits",type:"bytes32"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"bytes32",name:"gasFees",type:"bytes32"},{internalType:"bytes",name:"paymasterAndData",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct PackedUserOperation",name:"userOp",type:"tuple"}],name:"getUserOpHash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"initCode",type:"bytes"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bytes32",name:"accountGasLimits",type:"bytes32"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"bytes32",name:"gasFees",type:"bytes32"},{internalType:"bytes",name:"paymasterAndData",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct PackedUserOperation[]",name:"userOps",type:"tuple[]"},{internalType:"contract IAggregator",name:"aggregator",type:"address"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct IEntryPoint.UserOpsPerAggregator[]",name:"opsPerAggregator",type:"tuple[]"},{internalType:"address payable",name:"beneficiary",type:"address"}],name:"handleAggregatedOps",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"initCode",type:"bytes"},{internalType:"bytes",name:"callData",type:"bytes"},{internalType:"bytes32",name:"accountGasLimits",type:"bytes32"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"bytes32",name:"gasFees",type:"bytes32"},{internalType:"bytes",name:"paymasterAndData",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct PackedUserOperation[]",name:"ops",type:"tuple[]"},{internalType:"address payable",name:"beneficiary",type:"address"}],name:"handleOps",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint192",name:"key",type:"uint192"}],name:"incrementNonce",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"callData",type:"bytes"},{components:[{components:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"verificationGasLimit",type:"uint256"},{internalType:"uint256",name:"callGasLimit",type:"uint256"},{internalType:"uint256",name:"paymasterVerificationGasLimit",type:"uint256"},{internalType:"uint256",name:"paymasterPostOpGasLimit",type:"uint256"},{internalType:"uint256",name:"preVerificationGas",type:"uint256"},{internalType:"address",name:"paymaster",type:"address"},{internalType:"uint256",name:"maxFeePerGas",type:"uint256"},{internalType:"uint256",name:"maxPriorityFeePerGas",type:"uint256"}],internalType:"struct EntryPoint.MemoryUserOp",name:"mUserOp",type:"tuple"},{internalType:"bytes32",name:"userOpHash",type:"bytes32"},{internalType:"uint256",name:"prefund",type:"uint256"},{internalType:"uint256",name:"contextOffset",type:"uint256"},{internalType:"uint256",name:"preOpGas",type:"uint256"}],internalType:"struct EntryPoint.UserOpInfo",name:"opInfo",type:"tuple"},{internalType:"bytes",name:"context",type:"bytes"}],name:"innerHandleOp",outputs:[{internalType:"uint256",name:"actualGasCost",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint192",name:"",type:"uint192"}],name:"nonceSequenceNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unlockStake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"withdrawAddress",type:"address"}],name:"withdrawStake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address payable",name:"withdrawAddress",type:"address"},{internalType:"uint256",name:"withdrawAmount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],n= exports.a =e;exports.a = n;
@@ -1 +1 @@
1
- import{c as o}from"./chunk-5FGSZZCU.js";import{SDKLogger as r,getBrowserLogger as e}from"@crossmint/client-sdk-base";var w=new r(o),a=new r(o,e(o,{onlyDatadog:!0}));export{w as a,a as b};
1
+ import{a as o}from"./chunk-T5PL4ATW.js";import{SDKLogger as r,getBrowserLogger as e}from"@crossmint/client-sdk-base";var w=new r(o),a=new r(o,e(o,{onlyDatadog:!0}));export{w as a,a as b};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk73LUJQGUcjs = require('./chunk-73LUJQGU.cjs');var _chunk4PMBBA3Ocjs = require('./chunk-4PMBBA3O.cjs');var _viem = require('viem');var i=class{constructor(e,t,n){this.client=e;this.chain=t;this.apiService=n}get address(){return this.client.wallet.getAddress()}async transferToken(e,t){if(this.chain!==t.token.chain)throw new (0, _chunk73LUJQGUcjs.e)(`Chain mismatch: Expected ${t.token.chain}, but got ${this.chain}. Ensure you are interacting with the correct blockchain.`);return await this.executeContract(_chunk4PMBBA3Ocjs.a.call(void 0, {contract:t.token.contractAddress,from:this.address,to:e,config:t}))}async nfts(){return await this.apiService.getNfts(`${this.chain}:${this.address}`)}async executeContract({address:e,abi:t,functionName:n,args:o,value:c}){let s=_viem.encodeFunctionData.call(void 0, {abi:t,functionName:n,args:o});return await this.client.wallet.sendTransaction({to:e,data:s,value:c})}};exports.a = i;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5URY3C2Tcjs = require('./chunk-5URY3C2T.cjs');var _chunkMFUN74KHcjs = require('./chunk-MFUN74KH.cjs');var _commonsdkbase = require('@crossmint/common-sdk-base');var _chains = require('viem/chains');var l={BASE_SEPOLIA:_commonsdkbase.BlockchainIncludingTestnet.BASE_SEPOLIA,POLYGON_AMOY:_commonsdkbase.BlockchainIncludingTestnet.POLYGON_AMOY,OPTIMISM_SEPOLIA:_commonsdkbase.BlockchainIncludingTestnet.OPTIMISM_SEPOLIA,ARBITRUM_SEPOLIA:_commonsdkbase.BlockchainIncludingTestnet.ARBITRUM_SEPOLIA,STORY_TESTNET:_commonsdkbase.BlockchainIncludingTestnet.STORY_TESTNET},M=_commonsdkbase.objectValues.call(void 0, l),o={BASE:_commonsdkbase.BlockchainIncludingTestnet.BASE,POLYGON:_commonsdkbase.BlockchainIncludingTestnet.POLYGON,OPTIMISM:_commonsdkbase.BlockchainIncludingTestnet.OPTIMISM,ARBITRUM:_commonsdkbase.BlockchainIncludingTestnet.ARBITRUM,STORY:_commonsdkbase.BlockchainIncludingTestnet.STORY},c=_commonsdkbase.objectValues.call(void 0, o),_={...l,...o};function W(e){return M.includes(e)}function h(e){return c.includes(e)}var y={[_commonsdkbase.BlockchainIncludingTestnet.POLYGON]:_chains.polygon,[_commonsdkbase.BlockchainIncludingTestnet.POLYGON_AMOY]:_chains.polygonAmoy,[_commonsdkbase.BlockchainIncludingTestnet.BASE]:_chains.base,[_commonsdkbase.BlockchainIncludingTestnet.BASE_SEPOLIA]:_chains.baseSepolia,[_commonsdkbase.BlockchainIncludingTestnet.OPTIMISM]:_chains.optimism,[_commonsdkbase.BlockchainIncludingTestnet.OPTIMISM_SEPOLIA]:_chains.optimismSepolia,[_commonsdkbase.BlockchainIncludingTestnet.ARBITRUM]:_chains.arbitrum,[_commonsdkbase.BlockchainIncludingTestnet.ARBITRUM_SEPOLIA]:_chains.arbitrumSepolia,[_commonsdkbase.BlockchainIncludingTestnet.STORY_TESTNET]:_chunk5URY3C2Tcjs.a,[_commonsdkbase.BlockchainIncludingTestnet.STORY]:_chunkMFUN74KHcjs.a};exports.a = W; exports.b = h; exports.c = y;
@@ -0,0 +1 @@
1
+ import{a as n}from"./chunk-I5RZI2HB.js";import{erc20Abi as t,erc721Abi as f}from"viem";function p({contract:e,config:r,from:s,to:a}){switch(r.token.type){case"ft":return{address:e,abi:t,functionName:"transfer",args:[a,r.amount]};case"sft":return{address:e,abi:n,functionName:"safeTransferFrom",args:[s,a,r.token.tokenId,r.quantity,"0x00"],tokenId:r.token.tokenId};case"nft":return{address:e,abi:f,functionName:"safeTransferFrom",args:[s,a,r.token.tokenId],tokenId:r.token.tokenId}}}export{p as a};
@@ -0,0 +1 @@
1
+ import{a as y}from"./chunk-5T3HB4Y6.js";import{a as p,b as v}from"./chunk-LJ43A5BN.js";import{b as i}from"./chunk-BCWZIVSQ.js";import{a as h}from"./chunk-Z3KARJF5.js";import{a as m,b as c}from"./chunk-VEZ3PQGX.js";import{a as n,b as o,c as s,d as l}from"./chunk-UBRUUSMF.js";import{validateAPIKey as f}from"@crossmint/common-sdk-base";import{stringify as W}from"viem";import{WebAuthnP256 as E}from"ox";import{isClient as w}from"@crossmint/client-sdk-base";var S=class g{constructor(r,e,a,t=p){this.crossmintEnv=r;this.smartWalletService=e;this.errorProcessor=a;this.logger=t}static init(r){let{clientApiKey:e}=r,a=f(e);if(!a.isValid)throw new o("API key invalid");let t=new i({apiKey:e}),P=new h(t),d=new y(v);return new g(a.environment,P,d)}async getOrCreateWallet(r,e,a){if(!w())throw new n("Smart Wallet SDK should only be used client side.");return this.assertValidChain(e),await this.logger.logPerformance("GET_OR_CREATE_WALLET",async()=>{try{return await this.smartWalletService.getOrCreate(r,e,a)}catch(t){throw this.errorProcessor.map(t,new s(`Wallet creation failed: ${t.message}.`,W(t)))}})}async createPasskeySigner(r){return{type:"PASSKEY",credential:await E.createCredential({name:r})}}assertValidChain(r){if(!this.validChain(r))throw new l(`The selected chain "${r}" 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.`)}validChain(r){return this.crossmintEnv==="development"||this.crossmintEnv==="staging"?m(r):c(r)}};export{S as a};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEMZ5NAG2cjs = require('./chunk-EMZ5NAG2.cjs');var _clientsdkbase = require('@crossmint/client-sdk-base');var s=new (0, _clientsdkbase.SDKLogger)(_chunkEMZ5NAG2cjs.a),w= exports.b =new (0, _clientsdkbase.SDKLogger)(_chunkEMZ5NAG2cjs.a,_clientsdkbase.getBrowserLogger.call(void 0, _chunkEMZ5NAG2cjs.a,{onlyDatadog:!0}));exports.a = s; exports.b = w;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkD33JIUOQcjs = require('./chunk-D33JIUOQ.cjs');var _chunkQ23CHZRTcjs = require('./chunk-Q23CHZRT.cjs');var _chunkSVGKSKZDcjs = require('./chunk-SVGKSKZD.cjs');var _chunkU2JMKBCCcjs = require('./chunk-U2JMKBCC.cjs');var _chunkMLTT5BGDcjs = require('./chunk-MLTT5BGD.cjs');var _chunk73LUJQGUcjs = require('./chunk-73LUJQGU.cjs');var _commonsdkbase = require('@crossmint/common-sdk-base');var _viem = require('viem');var _ox = require('ox');var _clientsdkbase = require('@crossmint/client-sdk-base');var S=class g{constructor(r,e,a,t=_chunkQ23CHZRTcjs.a){this.crossmintEnv=r;this.smartWalletService=e;this.errorProcessor=a;this.logger=t}static init(r){let{clientApiKey:e}=r,a=_commonsdkbase.validateAPIKey.call(void 0, e);if(!a.isValid)throw new (0, _chunk73LUJQGUcjs.b)("API key invalid");let t=new (0, _chunkSVGKSKZDcjs.b)({apiKey:e}),P=new (0, _chunkU2JMKBCCcjs.a)(t),d=new (0, _chunkD33JIUOQcjs.a)(_chunkQ23CHZRTcjs.b);return new g(a.environment,P,d)}async getOrCreateWallet(r,e,a){if(!_clientsdkbase.isClient.call(void 0, ))throw new (0, _chunk73LUJQGUcjs.a)("Smart Wallet SDK should only be used client side.");return this.assertValidChain(e),await this.logger.logPerformance("GET_OR_CREATE_WALLET",async()=>{try{return await this.smartWalletService.getOrCreate(r,e,a)}catch(t){throw this.errorProcessor.map(t,new (0, _chunk73LUJQGUcjs.c)(`Wallet creation failed: ${t.message}.`,_viem.stringify.call(void 0, t)))}})}async createPasskeySigner(r){return{type:"PASSKEY",credential:await _ox.WebAuthnP256.createCredential({name:r})}}assertValidChain(r){if(!this.validChain(r))throw new (0, _chunk73LUJQGUcjs.d)(`The selected chain "${r}" 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.`)}validChain(r){return this.crossmintEnv==="development"||this.crossmintEnv==="staging"?_chunkMLTT5BGDcjs.a.call(void 0, r):_chunkMLTT5BGDcjs.b.call(void 0, r)}};exports.a = S;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEMZ5NAG2cjs = require('./chunk-EMZ5NAG2.cjs');var _commonsdkbase = require('@crossmint/common-sdk-base');var _clientsdkbase = require('@crossmint/client-sdk-base');var g=new (0, _clientsdkbase.SDKLogger)(_chunkEMZ5NAG2cjs.a),i= exports.b =class{constructor(e){this.logger=g;this.apiErrorService=new (0, _clientsdkbase.APIErrorService)({});this.apiClient=new (0, _commonsdkbase.CrossmintApiClient)(e,{internalConfig:{sdkMetadata:{name:_chunkEMZ5NAG2cjs.c,version:_chunkEMZ5NAG2cjs.b}}})}async createWallet(e,s){return(await this.apiClient.post(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me`,{body:JSON.stringify(s),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async createTransaction(e,s){return(await this.apiClient.post(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me:evm-smart-wallet/transactions`,{body:JSON.stringify(s),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async approveTransaction(e,s,t){return(await this.apiClient.post(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me:evm-smart-wallet/transactions/${s}/approvals`,{body:JSON.stringify(t),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async getTransaction(e,s){return(await this.apiClient.get(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me:evm-smart-wallet/transactions/${s}`,{headers:{Authorization:`Bearer ${e.jwt}`}})).json()}async createSignature(e,s){return(await this.apiClient.post(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me:evm-smart-wallet/signatures`,{body:JSON.stringify(s),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async approveSignature(e,s,t){return(await this.apiClient.post(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me:evm-smart-wallet/signatures/${s}/approvals`,{body:JSON.stringify(t),headers:{Authorization:`Bearer ${e.jwt}`,"Content-Type":"application/json"}})).json()}async getSignature(e,s){return(await this.apiClient.get(`api/${_chunkEMZ5NAG2cjs.d}/wallets/me:evm-smart-wallet/signatures/${s}`,{headers:{Authorization:`Bearer ${e.jwt}`}})).json()}async getNfts(e){return(await this.apiClient.get(`api/${_chunkEMZ5NAG2cjs.d}/wallets/${e}/nfts`,{})).json()}};exports.a = g; exports.b = i;
@@ -0,0 +1 @@
1
+ var s="@crossmint/client-sdk-smart-wallet",t="0.2.0";var c="SCW_SDK",r=t,p=s,a="2022-06-09",m="0x0000000071727de22e5e9d8baf0edac6f37da032",l=1e3;export{c as a,r as b,p as c,a as d,m as e,l as f};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkAS5VIM5Vcjs = require('./chunk-AS5VIM5V.cjs');var _chunk23IWY6XVcjs = require('./chunk-23IWY6XV.cjs');var _chunkLPLLPZFUcjs = require('./chunk-LPLLPZFU.cjs');var _chunk73LUJQGUcjs = require('./chunk-73LUJQGU.cjs');var _chunkEMZ5NAG2cjs = require('./chunk-EMZ5NAG2.cjs');var _chunkKXYDJTZScjs = require('./chunk-KXYDJTZS.cjs');var _viem = require('viem');var _ox = require('ox');var D=class{constructor(t){this.crossmintApiService=t}async getOrCreate(t,e,r){let i=_viem.createPublicClient.call(void 0, {transport:_viem.http.call(void 0, _chunk23IWY6XVcjs.b.call(void 0, e))}),{signer:a}=r,s=(await this.createWallet(t,a)).address;return new (0, _chunkLPLLPZFUcjs.a)({wallet:this.smartAccountClient(t,a,e,s),public:i},e,this.crossmintApiService)}smartAccountClient(t,e,r,i){return{getAddress:()=>i,getNonce:async a=>await _viem.createPublicClient.call(void 0, {transport:_viem.http.call(void 0, _chunk23IWY6XVcjs.b.call(void 0, r))}).readContract({abi:_chunkKXYDJTZScjs.a,address:_chunkEMZ5NAG2cjs.e,functionName:"getNonce",args:[i,_nullishCoalesce(_optionalChain([a, 'optionalAccess', _ => _.key]), () => (0n))]}),signMessage:async a=>{if(typeof a.message!="string")throw new (0, _chunk73LUJQGUcjs.f)("Message must be a string");let n=await this.getSignerLocator(e),s=await this.crossmintApiService.createSignature(t,{type:"evm-message",params:{message:a.message,signer:n,chain:r}}),p=s.id,c=s.approvals.pending;if(c.length!==1)throw new (0, _chunk73LUJQGUcjs.g)(`Expected 1 pending approval, got ${c.length}`);let o=c[0],l=await this.approveSignature(t,e,p,o.message),g=null;for(;g===null||g.status==="pending";)await _chunkAS5VIM5Vcjs.a.call(void 0, _chunkEMZ5NAG2cjs.f),g=await this.crossmintApiService.getSignature(t,p);if(g.status==="failed")throw new (0, _chunk73LUJQGUcjs.g)("Message signing failed");return l},signTypedData:async a=>{let n=await this.getSignerLocator(e),{domain:s,message:p,primaryType:c,types:o}=a;if(!s||!p||!o)throw new (0, _chunk73LUJQGUcjs.h)("Invalid typed data");let l=await this.crossmintApiService.createSignature(t,{type:"evm-typed-data",params:{typedData:{domain:s,message:p,primaryType:c,types:o},signer:n,chain:r,isSmartWalletSignature:!1}}),g=l.id,u=l.approvals.pending;if(u.length!==1)throw new (0, _chunk73LUJQGUcjs.i)(`Expected 1 pending approval, got ${u.length}`);let R=u[0],I=await this.approveSignature(t,e,g,R.message),d=null;for(;d===null||d.status==="pending";)await _chunkAS5VIM5Vcjs.a.call(void 0, _chunkEMZ5NAG2cjs.f),d=await this.crossmintApiService.getSignature(t,g);if(d.status==="failed")throw new (0, _chunk73LUJQGUcjs.i)("Typed data signing failed");return I},sendTransaction:async a=>await this.sendTransactionInternal(a,e,t,r),writeContract:async({address:a,abi:n,functionName:s,args:p,value:c})=>{let o=_viem.encodeFunctionData.call(void 0, {abi:n,functionName:s,args:p});return await this.sendTransactionInternal({to:a,data:o,value:c},e,t,r)}}}async sendTransactionInternal(t,e,r,i){let a=await this.getSignerLocator(e),n=await this.crossmintApiService.createTransaction(r,{params:{signer:a,chain:i,calls:[{to:t.to,value:t.value?t.value.toString():"0",data:_nullishCoalesce(t.data, () => ("0x"))}]}}),s=n.id,p=n.approvals.pending;if(p.length!==1)throw new (0, _chunk73LUJQGUcjs.j)(`Expected 1 pending approval, got ${p.length}`);let c=p[0];await this.approveTransaction(r,e,s,c.message);let o=null;for(;o===null||o.status==="pending";)await _chunkAS5VIM5Vcjs.a.call(void 0, _chunkEMZ5NAG2cjs.f),o=await this.crossmintApiService.getTransaction(r,s);if(o.status==="failed")throw new (0, _chunk73LUJQGUcjs.k)("Transaction sending failed",_viem.stringify.call(void 0, o.error));let l=o.onChain.txId;if(l===void 0)throw new (0, _chunk73LUJQGUcjs.l)("Transaction hash not found");return l}async createWallet(t,e){if("type"in e&&e.type==="PASSKEY")return await this.crossmintApiService.createWallet(t,{type:"evm-smart-wallet",config:{adminSigner:{type:"evm-passkey",id:e.credential.id,name:"Default",publicKey:{x:`0x${e.credential.publicKey.x.toString(16)}`,y:`0x${e.credential.publicKey.y.toString(16)}`}}}});{let r=await this.getSignerAddress(e);return await this.crossmintApiService.createWallet(t,{type:"evm-smart-wallet",config:{adminSigner:{type:"evm-keypair",address:r}}})}}async getSignerLocator(t){return"type"in t&&t.type==="PASSKEY"?`evm-passkey:${t.credential.id}`:`evm-keypair:${await this.getSignerAddress(t)}`}async getSignerAddress(t){return"type"in t?t.account.address:(await t.request({method:"eth_requestAccounts"}))[0]}async approveTransaction(t,e,r,i){if("type"in e&&e.type==="PASSKEY"){let{metadata:a,signature:n}=await _ox.WebAuthnP256.sign({credentialId:e.credential.id,challenge:i});await this.crossmintApiService.approveTransaction(t,r,{approvals:[{metadata:a,signature:{r:`0x${n.r.toString(16)}`,s:`0x${n.s.toString(16)}`},signer:`evm-passkey:${e.credential.id}`}]})}else{let a=await this.getSignerAddress(e),n="type"in e?await e.account.signMessage({message:{raw:i}}):await e.request({method:"personal_sign",params:[i,a]});await this.crossmintApiService.approveTransaction(t,r,{approvals:[{signature:n,signer:`evm-keypair:${a}`}]})}}async approveSignature(t,e,r,i){if("type"in e&&e.type==="PASSKEY"){let{metadata:a,signature:n}=await _ox.WebAuthnP256.sign({credentialId:e.credential.id,challenge:i});return await this.crossmintApiService.approveSignature(t,r,{approvals:[{metadata:a,signature:{r:`0x${n.r.toString(16)}`,s:`0x${n.s.toString(16)}`},signer:`evm-passkey:${e.credential.id}`}]}),_viem.concat.call(void 0, [`0x${n.r.toString(16)}`,`0x${n.s.toString(16)}`])}else{let a=await this.getSignerAddress(e),n="type"in e?await e.account.signMessage({message:{raw:i}}):await e.request({method:"personal_sign",params:[i,a]});return await this.crossmintApiService.approveSignature(t,r,{approvals:[{signature:n,signer:`evm-keypair:${a}`}]}),n}}};exports.a = D;
@@ -0,0 +1 @@
1
+ import{CrossmintSDKError as e,SmartWalletErrorCode as o}from"@crossmint/client-sdk-base";var n=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},l=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},E=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},x=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},u=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},C=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},p=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},g=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},d=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},m=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},G=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}},O=class extends e{constructor(t,r,s=o.UNCATEGORIZED){super(t,s,r)}};export{n as a,l as b,E as c,x as d,u as e,C as f,p as g,g as h,d as i,m as j,G as k,O as l};
@@ -0,0 +1 @@
1
+ import{a as n}from"./chunk-XLACPZJJ.js";import{a}from"./chunk-KVFFSUF4.js";import{BlockchainIncludingTestnet as t,objectValues as S}from"@crossmint/common-sdk-base";import{polygon as i,polygonAmoy as r,base as T,baseSepolia as O,optimism as s,optimismSepolia as m,arbitrum as A,arbitrumSepolia as I}from"viem/chains";var l={BASE_SEPOLIA:t.BASE_SEPOLIA,POLYGON_AMOY:t.POLYGON_AMOY,OPTIMISM_SEPOLIA:t.OPTIMISM_SEPOLIA,ARBITRUM_SEPOLIA:t.ARBITRUM_SEPOLIA,STORY_TESTNET:t.STORY_TESTNET},M=S(l),o={BASE:t.BASE,POLYGON:t.POLYGON,OPTIMISM:t.OPTIMISM,ARBITRUM:t.ARBITRUM,STORY:t.STORY},c=S(o),W={...l,...o};function h(e){return M.includes(e)}function y(e){return c.includes(e)}var Y={[t.POLYGON]:i,[t.POLYGON_AMOY]:r,[t.BASE]:T,[t.BASE_SEPOLIA]:O,[t.OPTIMISM]:s,[t.OPTIMISM_SEPOLIA]:m,[t.ARBITRUM]:A,[t.ARBITRUM_SEPOLIA]:I,[t.STORY_TESTNET]:n,[t.STORY]:a};export{h as a,y as b,Y as c};
@@ -0,0 +1 @@
1
+ import{a as y}from"./chunk-2MQHIAJE.js";import{b as A}from"./chunk-75JNTS3U.js";import{a as C}from"./chunk-DB2QM3HB.js";import{f as h,g as S,h as T,i as v,j as f,k as P,l as x}from"./chunk-UBRUUSMF.js";import{e as w,f as m}from"./chunk-T5PL4ATW.js";import{a as b}from"./chunk-GGKMZPIA.js";import{createPublicClient as E,concat as $,http as k,stringify as N,encodeFunctionData as F}from"viem";import{WebAuthnP256 as W}from"ox";var D=class{constructor(t){this.crossmintApiService=t}async getOrCreate(t,e,r){let i=E({transport:k(A(e))}),{signer:a}=r,s=(await this.createWallet(t,a)).address;return new C({wallet:this.smartAccountClient(t,a,e,s),public:i},e,this.crossmintApiService)}smartAccountClient(t,e,r,i){return{getAddress:()=>i,getNonce:async a=>await E({transport:k(A(r))}).readContract({abi:b,address:w,functionName:"getNonce",args:[i,a?.key??0n]}),signMessage:async a=>{if(typeof a.message!="string")throw new h("Message must be a string");let n=await this.getSignerLocator(e),s=await this.crossmintApiService.createSignature(t,{type:"evm-message",params:{message:a.message,signer:n,chain:r}}),p=s.id,c=s.approvals.pending;if(c.length!==1)throw new S(`Expected 1 pending approval, got ${c.length}`);let o=c[0],l=await this.approveSignature(t,e,p,o.message),g=null;for(;g===null||g.status==="pending";)await y(m),g=await this.crossmintApiService.getSignature(t,p);if(g.status==="failed")throw new S("Message signing failed");return l},signTypedData:async a=>{let n=await this.getSignerLocator(e),{domain:s,message:p,primaryType:c,types:o}=a;if(!s||!p||!o)throw new T("Invalid typed data");let l=await this.crossmintApiService.createSignature(t,{type:"evm-typed-data",params:{typedData:{domain:s,message:p,primaryType:c,types:o},signer:n,chain:r,isSmartWalletSignature:!1}}),g=l.id,u=l.approvals.pending;if(u.length!==1)throw new v(`Expected 1 pending approval, got ${u.length}`);let R=u[0],I=await this.approveSignature(t,e,g,R.message),d=null;for(;d===null||d.status==="pending";)await y(m),d=await this.crossmintApiService.getSignature(t,g);if(d.status==="failed")throw new v("Typed data signing failed");return I},sendTransaction:async a=>await this.sendTransactionInternal(a,e,t,r),writeContract:async({address:a,abi:n,functionName:s,args:p,value:c})=>{let o=F({abi:n,functionName:s,args:p});return await this.sendTransactionInternal({to:a,data:o,value:c},e,t,r)}}}async sendTransactionInternal(t,e,r,i){let a=await this.getSignerLocator(e),n=await this.crossmintApiService.createTransaction(r,{params:{signer:a,chain:i,calls:[{to:t.to,value:t.value?t.value.toString():"0",data:t.data??"0x"}]}}),s=n.id,p=n.approvals.pending;if(p.length!==1)throw new f(`Expected 1 pending approval, got ${p.length}`);let c=p[0];await this.approveTransaction(r,e,s,c.message);let o=null;for(;o===null||o.status==="pending";)await y(m),o=await this.crossmintApiService.getTransaction(r,s);if(o.status==="failed")throw new P("Transaction sending failed",N(o.error));let l=o.onChain.txId;if(l===void 0)throw new x("Transaction hash not found");return l}async createWallet(t,e){if("type"in e&&e.type==="PASSKEY")return await this.crossmintApiService.createWallet(t,{type:"evm-smart-wallet",config:{adminSigner:{type:"evm-passkey",id:e.credential.id,name:"Default",publicKey:{x:`0x${e.credential.publicKey.x.toString(16)}`,y:`0x${e.credential.publicKey.y.toString(16)}`}}}});{let r=await this.getSignerAddress(e);return await this.crossmintApiService.createWallet(t,{type:"evm-smart-wallet",config:{adminSigner:{type:"evm-keypair",address:r}}})}}async getSignerLocator(t){return"type"in t&&t.type==="PASSKEY"?`evm-passkey:${t.credential.id}`:`evm-keypair:${await this.getSignerAddress(t)}`}async getSignerAddress(t){return"type"in t?t.account.address:(await t.request({method:"eth_requestAccounts"}))[0]}async approveTransaction(t,e,r,i){if("type"in e&&e.type==="PASSKEY"){let{metadata:a,signature:n}=await W.sign({credentialId:e.credential.id,challenge:i});await this.crossmintApiService.approveTransaction(t,r,{approvals:[{metadata:a,signature:{r:`0x${n.r.toString(16)}`,s:`0x${n.s.toString(16)}`},signer:`evm-passkey:${e.credential.id}`}]})}else{let a=await this.getSignerAddress(e),n="type"in e?await e.account.signMessage({message:{raw:i}}):await e.request({method:"personal_sign",params:[i,a]});await this.crossmintApiService.approveTransaction(t,r,{approvals:[{signature:n,signer:`evm-keypair:${a}`}]})}}async approveSignature(t,e,r,i){if("type"in e&&e.type==="PASSKEY"){let{metadata:a,signature:n}=await W.sign({credentialId:e.credential.id,challenge:i});return await this.crossmintApiService.approveSignature(t,r,{approvals:[{metadata:a,signature:{r:`0x${n.r.toString(16)}`,s:`0x${n.s.toString(16)}`},signer:`evm-passkey:${e.credential.id}`}]}),$([`0x${n.r.toString(16)}`,`0x${n.s.toString(16)}`])}else{let a=await this.getSignerAddress(e),n="type"in e?await e.account.signMessage({message:{raw:i}}):await e.request({method:"personal_sign",params:[i,a]});return await this.crossmintApiService.approveSignature(t,r,{approvals:[{signature:n,signer:`evm-keypair:${a}`}]}),n}}};export{D as a};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkM4K3IZTTcjs = require('../chunk-M4K3IZTT.cjs');exports.AdminAlreadyUsedError = _chunkM4K3IZTTcjs.i; exports.AdminMismatchError = _chunkM4K3IZTTcjs.b; exports.ConfigError = _chunkM4K3IZTTcjs.h; exports.PasskeyIncompatibleAuthenticatorError = _chunkM4K3IZTTcjs.g; exports.PasskeyMismatchError = _chunkM4K3IZTTcjs.c; exports.PasskeyPromptError = _chunkM4K3IZTTcjs.e; exports.PasskeyRegistrationError = _chunkM4K3IZTTcjs.f; exports.SmartWalletError = _chunkM4K3IZTTcjs.a; exports.SmartWalletsNotEnabledError = _chunkM4K3IZTTcjs.j; exports.UserWalletAlreadyCreatedError = _chunkM4K3IZTTcjs.d;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk73LUJQGUcjs = require('../chunk-73LUJQGU.cjs');exports.InvalidApiKeyError = _chunk73LUJQGUcjs.b; exports.InvalidChainError = _chunk73LUJQGUcjs.d; exports.InvalidMessageFormatError = _chunk73LUJQGUcjs.f; exports.InvalidTransferChainError = _chunk73LUJQGUcjs.e; exports.InvalidTypedDataError = _chunk73LUJQGUcjs.h; exports.MessageSigningError = _chunk73LUJQGUcjs.g; exports.SmartWalletError = _chunk73LUJQGUcjs.a; exports.TransactionApprovalError = _chunk73LUJQGUcjs.j; exports.TransactionFailedError = _chunk73LUJQGUcjs.k; exports.TransactionNotFoundError = _chunk73LUJQGUcjs.l; exports.TypedDataSigningError = _chunk73LUJQGUcjs.i; exports.WalletCreationError = _chunk73LUJQGUcjs.c;