@paulstinchcombe/gasless-nft-tx 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -52,9 +52,10 @@ const bytecode = '0x608060405234801561001057600080fd5b50...'; // Your NFT contra
52
52
  const privateKey = '0x1234567890123456789012345678901234567890123456789012345678901234';
53
53
 
54
54
  // Deploy without constructor arguments
55
- // The library automatically deploys a smart contract wallet if needed
56
- const userOpHash = await deployNftContract(client, privateKey, bytecode);
57
- console.log('Deployment UserOperation Hash:', userOpHash);
55
+ // Note: SCW will be automatically deployed if needed
56
+ const deployResult = await deployNftContract(client, privateKey, bytecode);
57
+ console.log('Deployment UserOperation Hash:', deployResult.userOpHash);
58
+ console.log('SCW Address used:', deployResult.scwAddress);
58
59
 
59
60
  // Deploy with constructor arguments (name, symbol, etc.)
60
61
  const constructorArgs = {
@@ -65,8 +66,9 @@ const constructorArgs = {
65
66
  owner: '0x1234567890123456789012345678901234567890',
66
67
  };
67
68
 
68
- const userOpHashWithArgs = await deployNftContract(client, privateKey, bytecode, undefined, constructorArgs);
69
- console.log('Deployment with constructor args:', userOpHashWithArgs);
69
+ const deployResultWithArgs = await deployNftContract(client, privateKey, bytecode, undefined, constructorArgs);
70
+ console.log('Deployment with constructor args:', deployResultWithArgs.userOpHash);
71
+ console.log('SCW Address used:', deployResultWithArgs.scwAddress);
70
72
  ```
71
73
 
72
74
  ### 3. Mint NFT Token
@@ -77,7 +79,7 @@ import { mintNftToken } from '@paulstinchcombe/gasless-nft-tx';
77
79
  const nftAddress = '0x1234567890123456789012345678901234567890';
78
80
 
79
81
  // Single mint (ERC-721)
80
- // The library automatically handles SCW deployment if needed
82
+ // Note: SCW will be automatically deployed if needed
81
83
  const singleMintData = {
82
84
  to: '0x1234567890123456789012345678901234567890',
83
85
  tokenId: 1n,
@@ -90,8 +92,9 @@ const batchMintData = {
90
92
  quantity: 5n, // Mint 5 tokens
91
93
  };
92
94
 
93
- const userOpHash = await mintNftToken(client, privateKey, nftAddress, singleMintData);
94
- console.log('Mint UserOperation Hash:', userOpHash);
95
+ const mintResult = await mintNftToken(client, privateKey, nftAddress, singleMintData);
96
+ console.log('Mint UserOperation Hash:', mintResult.userOpHash);
97
+ console.log('SCW Address used:', mintResult.scwAddress);
95
98
  ```
96
99
 
97
100
  ### 4. Buy NFT with ERC20 Tokens
@@ -100,7 +103,7 @@ console.log('Mint UserOperation Hash:', userOpHash);
100
103
  import { buyNftToken } from '@paulstinchcombe/gasless-nft-tx';
101
104
 
102
105
  // Single purchase
103
- // The library automatically handles SCW deployment if needed
106
+ // Note: SCW will be automatically deployed if needed
104
107
  const singleBuyData = {
105
108
  nftContractAddress: '0x1234567890123456789012345678901234567890',
106
109
  tokenId: 1n,
@@ -120,8 +123,9 @@ const batchBuyData = {
120
123
  recipient: '0x1234567890123456789012345678901234567890',
121
124
  };
122
125
 
123
- const userOpHash = await buyNftToken(client, privateKey, singleBuyData);
124
- console.log('Buy UserOperation Hash:', userOpHash);
126
+ const buyResult = await buyNftToken(client, privateKey, singleBuyData);
127
+ console.log('Buy UserOperation Hash:', buyResult.userOpHash);
128
+ console.log('SCW Address used:', buyResult.scwAddress);
125
129
  ```
126
130
 
127
131
  ### 5. Batch Operations
@@ -164,28 +168,79 @@ const operations = [
164
168
  },
165
169
  ];
166
170
 
167
- const batchHash = await executeBatchOperations(client, privateKey, operations);
168
- console.log('Batch Operations Hash:', batchHash);
171
+ const batchResult = await executeBatchOperations(client, privateKey, operations);
172
+ console.log('Batch Operations Hash:', batchResult.userOpHash);
173
+ console.log('SCW Address used:', batchResult.scwAddress);
169
174
  ```
170
175
 
171
- ### 6. Smart Contract Wallet Management
176
+ ### 6. Automatic Smart Contract Wallet Deployment
177
+
178
+ **Automatic SCW Management:** The library automatically handles smart contract wallet deployment when needed. No manual setup required!
172
179
 
173
180
  ```typescript
174
- import { deployScw, isScwDeployed } from '@paulstinchcombe/gasless-nft-tx';
181
+ import { isScwDeployed, deployScw } from '@paulstinchcombe/gasless-nft-tx';
175
182
 
176
183
  // Check if SCW is deployed for an EOA
177
184
  const isDeployed = await isScwDeployed(client, eoaAddress);
178
185
  console.log('SCW deployed:', isDeployed);
179
186
 
180
- // Manually deploy SCW (usually not needed as it's automatic)
187
+ // Manually deploy SCW if needed (usually not required)
181
188
  if (!isDeployed) {
182
- const scwHash = await deployScw(client, eoaAddress, privateKey);
183
- console.log('SCW Deployment Hash:', scwHash);
189
+ const scwAddress = await deployScw(client, eoaAddress, eoaPrivateKey);
190
+ console.log('SCW deployed at:', scwAddress);
184
191
  }
185
192
  ```
186
193
 
194
+ **How Automatic Deployment Works:**
195
+
196
+ 1. **Detection**: Library checks if SCW exists at the EOA address
197
+ 2. **Automatic Deployment**: If not found, deploys SCW using the provided bytecode
198
+ 3. **Address Tracking**: Returns the actual deployed SCW address for future operations
199
+ 4. **Seamless Integration**: All subsequent operations use the deployed SCW automatically
200
+
201
+ **Manual SCW Deployment (Optional):**
202
+
203
+ If you prefer to deploy SCWs manually, you can use factory contracts or direct deployment:
204
+
205
+ ```typescript
206
+ // Example using a factory contract (address varies by network)
207
+ const factoryAddress = '0x9406Cc6185a346906296840746125a0E44976454';
208
+ const factoryCalldata = encodeFunctionData({
209
+ abi: [
210
+ {
211
+ type: 'function',
212
+ name: 'createAccount',
213
+ inputs: [
214
+ { name: 'owner', type: 'address' },
215
+ { name: 'salt', type: 'uint256' },
216
+ ],
217
+ outputs: [{ name: 'ret', type: 'address' }],
218
+ },
219
+ ],
220
+ functionName: 'createAccount',
221
+ args: [eoaAddress, 0n],
222
+ });
223
+
224
+ // Send transaction to factory
225
+ const txHash = await client.walletClient.sendTransaction({
226
+ account: eoaPrivateKey,
227
+ to: factoryAddress,
228
+ data: factoryCalldata,
229
+ value: 0n,
230
+ });
231
+ ```
232
+
187
233
  ## 📋 Data Structures
188
234
 
235
+ ### OperationResult
236
+
237
+ ```typescript
238
+ interface OperationResult {
239
+ userOpHash: Hex; // UserOperation hash from bundler
240
+ scwAddress: Address; // Smart contract wallet address used
241
+ }
242
+ ```
243
+
189
244
  ### MintData
190
245
 
191
246
  ```typescript
@@ -239,13 +294,14 @@ The library leverages EIP-7702 to temporarily give the EOA the execution context
239
294
  ### Flow:
240
295
 
241
296
  1. **SCW Check**: Library checks if a smart contract wallet is deployed at the EOA address
242
- 2. **SCW Deployment**: If not deployed, automatically deploys SCW using ERC-4337 UserOperation
243
- 3. **Transaction Construction**: Library constructs calldata for the target NFT action
244
- 4. **EIP-7702 Delegation**: Wraps action calldata into EIP-7702 delegation structure
245
- 5. **ERC-4337 UserOperation**: Delegation payload becomes the `callData` field of a UserOperation
246
- 6. **EOA Signing**: EOA's private key signs the UserOperation hash
247
- 7. **Bundler Submission**: Signed UserOperation is sent to ERC-4337 Bundler
248
- 8. **Execution**: Bundler executes the EIP-7702 delegation with paymaster sponsorship
297
+ 2. **Automatic SCW Deployment**: If not deployed, automatically deploys SCW using the provided bytecode
298
+ 3. **Address Tracking**: Returns the actual deployed SCW address for transparency
299
+ 4. **Transaction Construction**: Library constructs calldata for the target NFT action
300
+ 5. **EIP-7702 Delegation**: Wraps action calldata into EIP-7702 delegation structure
301
+ 6. **ERC-4337 UserOperation**: Delegation payload becomes the `callData` field of a UserOperation
302
+ 7. **EOA Signing**: EOA's private key signs the UserOperation hash
303
+ 8. **Bundler Submission**: Signed UserOperation is sent to ERC-4337 Bundler
304
+ 9. **Execution**: Bundler executes the EIP-7702 delegation with paymaster sponsorship
249
305
 
250
306
  ### Key Improvements:
251
307
 
@@ -260,6 +316,7 @@ Check out the comprehensive examples in the `examples/` directory:
260
316
 
261
317
  - **`basic-usage.ts`**: Simple examples of all operations
262
318
  - **`batch-operations.ts`**: Advanced batch operation examples
319
+ - **`scw-deployment-example.ts`**: SCW deployment and address usage examples
263
320
 
264
321
  ## 🧪 Testing
265
322
 
@@ -298,7 +355,7 @@ Deploy a custom NFT contract using gasless transactions.
298
355
  - `salt` (Hex, optional): Salt for deterministic deployment
299
356
  - `constructorArgs` (NftConstructorArgs, optional): Constructor arguments including name, symbol, etc.
300
357
 
301
- **Returns:** `Promise<Hex>` - UserOperation hash
358
+ **Returns:** `Promise<OperationResult>` - Operation result with UserOperation hash and SCW address
302
359
 
303
360
  ### `encodeNftConstructorArgs(constructorArgs)`
304
361
 
@@ -321,7 +378,7 @@ Mint an NFT token using gasless transactions.
321
378
  - `nftContractAddress` (Address): NFT contract address
322
379
  - `mintData` (MintData): Mint data including recipient and token details
323
380
 
324
- **Returns:** `Promise<Hex>` - UserOperation hash
381
+ **Returns:** `Promise<OperationResult>` - Operation result with UserOperation hash and SCW address
325
382
 
326
383
  ### `buyNftToken(client, eoaPrivateKey, buyData)`
327
384
 
@@ -333,7 +390,7 @@ Buy an NFT using ERC20 tokens with gasless transactions.
333
390
  - `eoaPrivateKey` (Hex): EOA wallet private key
334
391
  - `buyData` (BuyData): Purchase data including NFT contract, token ID, ERC20 token, and price
335
392
 
336
- **Returns:** `Promise<Hex>` - UserOperation hash
393
+ **Returns:** `Promise<OperationResult>` - Operation result with UserOperation hash and SCW address
337
394
 
338
395
  ### `executeBatchOperations(client, eoaPrivateKey, operations)`
339
396
 
@@ -345,7 +402,7 @@ Execute multiple NFT operations in a single gasless transaction.
345
402
  - `eoaPrivateKey` (Hex): EOA wallet private key
346
403
  - `operations` (BatchOperation[]): Array of operations to execute
347
404
 
348
- **Returns:** `Promise<Hex>` - UserOperation hash
405
+ **Returns:** `Promise<OperationResult>` - Operation result with UserOperation hash and SCW address
349
406
 
350
407
  **Operation Types:**
351
408
 
@@ -402,7 +459,7 @@ Deploy a smart contract wallet for the given EOA address.
402
459
  - `eoaAddress` (Address): EOA address that will own the SCW
403
460
  - `eoaPrivateKey` (Hex): EOA private key for signing
404
461
 
405
- **Returns:** `Promise<Hex>` - UserOperation hash
462
+ **Returns:** `Promise<Address>` - Deployed SCW contract address
406
463
 
407
464
  **Note:** This function is automatically called by other functions when needed.
408
465
 
@@ -439,13 +496,14 @@ pnpm test
439
496
 
440
497
  #### "AA20 account not deployed" Error
441
498
 
442
- This error occurs when trying to use EIP-7702 delegation without a deployed smart contract wallet. The library now automatically handles this by deploying the SCW when needed.
499
+ This error occurs when trying to use EIP-7702 delegation without a deployed smart contract wallet.
443
500
 
444
- **Solution:** The library automatically deploys the SCW, but if you encounter this error, ensure:
501
+ **Solution:** Deploy a smart contract wallet first:
445
502
 
446
- - Your EOA has sufficient funds for the initial SCW deployment
447
- - The Pimlico API key is correctly configured
448
- - The network is properly connected
503
+ 1. Use a factory contract to deploy the SCW
504
+ 2. Deploy the SCW manually using the implementation address
505
+ 3. Use a different EOA that already has a deployed SCW
506
+ 4. Check the SCW deployment status using `isScwDeployed()`
449
507
 
450
508
  #### "Failed to get paymaster sponsorship" Error
451
509
 
@@ -0,0 +1,2 @@
1
+ export declare const bytecode = "6080604052348015600e575f5ffd5b506112108061001c5f395ff3fe608060405260043610610037575f3560e01c80633f707e6b1461003a5780636171d1c914610056578063affed0e01461007257610038565b5b005b610054600480360381019061004f9190610869565b61009c565b005b610070600480360381019061006b9190610909565b610118565b005b34801561007d575f5ffd5b506100866102fc565b604051610093919061099f565b60405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461010a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010190610a12565b60405180910390fd5b6101148282610301565b5050565b60605f5f90505b858590508110156101f0578186868381811061013e5761013d610a30565b5b90506020028101906101509190610a69565b5f0160208101906101619190610aea565b87878481811061017457610173610a30565b5b90506020028101906101869190610a69565b6020013588888581811061019d5761019c610a30565b5b90506020028101906101af9190610a69565b80604001906101be9190610b15565b6040516020016101d2959493929190610c60565b6040516020818303038152906040529150808060010191505061011f565b505f5f5482604051602001610206929190610ca7565b6040516020818303038152906040528051906020012090505f610228826103a6565b90505f6102788287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506103d9565b90503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146102e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102df90610d18565b60405180910390fd5b6102f28888610301565b5050505050505050565b5f5481565b5f5f5490505f5f81548092919061031790610d63565b91905055505f5f90505b838390508110156103665761035984848381811061034257610341610a30565b5b90506020028101906103549190610a69565b610403565b8080600101915050610321565b50807f280bb3599696acbf79fb8ffcde81a57337b52500f789600fbb1cff9b4cbaba398484604051610399929190611010565b60405180910390a2505050565b5f7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f5281601c52603c5f209050919050565b5f5f5f5f6103e78686610562565b9250925092506103f782826105b7565b82935050505092915050565b5f815f0160208101906104169190610aea565b73ffffffffffffffffffffffffffffffffffffffff1682602001358380604001906104419190610b15565b60405161044f929190611032565b5f6040518083038185875af1925050503d805f8114610489576040519150601f19603f3d011682016040523d82523d5f602084013e61048e565b606091505b50509050806104d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c990611094565b60405180910390fd5b815f0160208101906104e49190610aea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fed7e8f919df9cc0d0ad8b4057d084ebf319b630564d5da283e14751adc931f3a84602001358580604001906105479190610b15565b604051610556939291906110ee565b60405180910390a35050565b5f5f5f60418451036105a2575f5f5f602087015192506040870151915060608701515f1a905061059488828585610719565b9550955095505050506105b0565b5f600285515f1b9250925092505b9250925092565b5f60038111156105ca576105c961111e565b5b8260038111156105dd576105dc61111e565b5b031561071557600160038111156105f7576105f661111e565b5b82600381111561060a5761060961111e565b5b03610641576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156106555761065461111e565b5b8260038111156106685761066761111e565b5b036106ac57805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016106a3919061099f565b60405180910390fd5b6003808111156106bf576106be61111e565b5b8260038111156106d2576106d161111e565b5b0361071457806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161070b9190611163565b60405180910390fd5b5b5050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115610755575f6003859250925092506107f6565b5f6001888888886040515f81526020016040526040516107789493929190611197565b6020604051602081039080840390855afa158015610798573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107e9575f60015f5f1b935093509350506107f6565b805f5f5f1b935093509350505b9450945094915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261082957610828610808565b5b8235905067ffffffffffffffff8111156108465761084561080c565b5b60208301915083602082028301111561086257610861610810565b5b9250929050565b5f5f6020838503121561087f5761087e610800565b5b5f83013567ffffffffffffffff81111561089c5761089b610804565b5b6108a885828601610814565b92509250509250929050565b5f5f83601f8401126108c9576108c8610808565b5b8235905067ffffffffffffffff8111156108e6576108e561080c565b5b60208301915083600182028301111561090257610901610810565b5b9250929050565b5f5f5f5f6040858703121561092157610920610800565b5b5f85013567ffffffffffffffff81111561093e5761093d610804565b5b61094a87828801610814565b9450945050602085013567ffffffffffffffff81111561096d5761096c610804565b5b610979878288016108b4565b925092505092959194509250565b5f819050919050565b61099981610987565b82525050565b5f6020820190506109b25f830184610990565b92915050565b5f82825260208201905092915050565b7f496e76616c696420617574686f726974790000000000000000000000000000005f82015250565b5f6109fc6011836109b8565b9150610a07826109c8565b602082019050919050565b5f6020820190508181035f830152610a29816109f0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f82356001606003833603038112610a8457610a83610a5d565b5b80830191505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ab982610a90565b9050919050565b610ac981610aaf565b8114610ad3575f5ffd5b50565b5f81359050610ae481610ac0565b92915050565b5f60208284031215610aff57610afe610800565b5b5f610b0c84828501610ad6565b91505092915050565b5f5f83356001602003843603038112610b3157610b30610a5d565b5b80840192508235915067ffffffffffffffff821115610b5357610b52610a61565b5b602083019250600182023603831315610b6f57610b6e610a65565b5b509250929050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610ba382610b77565b610bad8185610b81565b9350610bbd818560208601610b8b565b80840191505092915050565b5f8160601b9050919050565b5f610bdf82610bc9565b9050919050565b5f610bf082610bd5565b9050919050565b610c08610c0382610aaf565b610be6565b82525050565b5f819050919050565b610c28610c2382610987565b610c0e565b82525050565b828183375f83830152505050565b5f610c478385610b81565b9350610c54838584610c2e565b82840190509392505050565b5f610c6b8288610b99565b9150610c778287610bf7565b601482019150610c878286610c17565b602082019150610c98828486610c3c565b91508190509695505050505050565b5f610cb28285610c17565b602082019150610cc28284610b99565b91508190509392505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f610d026011836109b8565b9150610d0d82610cce565b602082019050919050565b5f6020820190508181035f830152610d2f81610cf6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d6d82610987565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d9f57610d9e610d36565b5b600182019050919050565b5f82825260208201905092915050565b5f819050919050565b5f610dd16020840184610ad6565b905092915050565b610de281610aaf565b82525050565b610df181610987565b8114610dfb575f5ffd5b50565b5f81359050610e0c81610de8565b92915050565b5f610e206020840184610dfe565b905092915050565b610e3181610987565b82525050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112610e5f57610e5e610e3f565b5b83810192508235915060208301925067ffffffffffffffff821115610e8757610e86610e37565b5b600182023603831315610e9d57610e9c610e3b565b5b509250929050565b5f82825260208201905092915050565b5f601f19601f8301169050919050565b5f610ed08385610ea5565b9350610edd838584610c2e565b610ee683610eb5565b840190509392505050565b5f60608301610f025f840184610dc3565b610f0e5f860182610dd9565b50610f1c6020840184610e12565b610f296020860182610e28565b50610f376040840184610e43565b8583036040870152610f4a838284610ec5565b925050508091505092915050565b5f610f638383610ef1565b905092915050565b5f82356001606003833603038112610f8657610f85610e3f565b5b82810191505092915050565b5f602082019050919050565b5f610fa98385610daa565b935083602084028501610fbb84610dba565b805f5b87811015610ffe578484038952610fd58284610f6b565b610fdf8582610f58565b9450610fea83610f92565b925060208a01995050600181019050610fbe565b50829750879450505050509392505050565b5f6020820190508181035f830152611029818486610f9e565b90509392505050565b5f61103e828486610c3c565b91508190509392505050565b7f43616c6c207265766572746564000000000000000000000000000000000000005f82015250565b5f61107e600d836109b8565b91506110898261104a565b602082019050919050565b5f6020820190508181035f8301526110ab81611072565b9050919050565b5f82825260208201905092915050565b5f6110cd83856110b2565b93506110da838584610c2e565b6110e383610eb5565b840190509392505050565b5f6040820190506111015f830186610990565b81810360208301526111148184866110c2565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b61115d8161114b565b82525050565b5f6020820190506111765f830184611154565b92915050565b5f60ff82169050919050565b6111918161117c565b82525050565b5f6080820190506111aa5f830187611154565b6111b76020830186611188565b6111c46040830185611154565b6111d16060830184611154565b9594505050505056fea2646970667358221220ae4cd7d662dcac827e12ba5c770f4f1da5755540e66118987c8cc83527b8cbd164736f6c634300081e0033";
2
+ //# sourceMappingURL=bytecode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytecode.d.ts","sourceRoot":"","sources":["../../src/SmartContractWallet/bytecode.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,6lSAA6lS,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bytecode = void 0;
4
+ exports.bytecode = `6080604052348015600e575f5ffd5b506112108061001c5f395ff3fe608060405260043610610037575f3560e01c80633f707e6b1461003a5780636171d1c914610056578063affed0e01461007257610038565b5b005b610054600480360381019061004f9190610869565b61009c565b005b610070600480360381019061006b9190610909565b610118565b005b34801561007d575f5ffd5b506100866102fc565b604051610093919061099f565b60405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461010a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010190610a12565b60405180910390fd5b6101148282610301565b5050565b60605f5f90505b858590508110156101f0578186868381811061013e5761013d610a30565b5b90506020028101906101509190610a69565b5f0160208101906101619190610aea565b87878481811061017457610173610a30565b5b90506020028101906101869190610a69565b6020013588888581811061019d5761019c610a30565b5b90506020028101906101af9190610a69565b80604001906101be9190610b15565b6040516020016101d2959493929190610c60565b6040516020818303038152906040529150808060010191505061011f565b505f5f5482604051602001610206929190610ca7565b6040516020818303038152906040528051906020012090505f610228826103a6565b90505f6102788287878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050506103d9565b90503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146102e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102df90610d18565b60405180910390fd5b6102f28888610301565b5050505050505050565b5f5481565b5f5f5490505f5f81548092919061031790610d63565b91905055505f5f90505b838390508110156103665761035984848381811061034257610341610a30565b5b90506020028101906103549190610a69565b610403565b8080600101915050610321565b50807f280bb3599696acbf79fb8ffcde81a57337b52500f789600fbb1cff9b4cbaba398484604051610399929190611010565b60405180910390a2505050565b5f7f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f5281601c52603c5f209050919050565b5f5f5f5f6103e78686610562565b9250925092506103f782826105b7565b82935050505092915050565b5f815f0160208101906104169190610aea565b73ffffffffffffffffffffffffffffffffffffffff1682602001358380604001906104419190610b15565b60405161044f929190611032565b5f6040518083038185875af1925050503d805f8114610489576040519150601f19603f3d011682016040523d82523d5f602084013e61048e565b606091505b50509050806104d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c990611094565b60405180910390fd5b815f0160208101906104e49190610aea565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fed7e8f919df9cc0d0ad8b4057d084ebf319b630564d5da283e14751adc931f3a84602001358580604001906105479190610b15565b604051610556939291906110ee565b60405180910390a35050565b5f5f5f60418451036105a2575f5f5f602087015192506040870151915060608701515f1a905061059488828585610719565b9550955095505050506105b0565b5f600285515f1b9250925092505b9250925092565b5f60038111156105ca576105c961111e565b5b8260038111156105dd576105dc61111e565b5b031561071557600160038111156105f7576105f661111e565b5b82600381111561060a5761060961111e565b5b03610641576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156106555761065461111e565b5b8260038111156106685761066761111e565b5b036106ac57805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016106a3919061099f565b60405180910390fd5b6003808111156106bf576106be61111e565b5b8260038111156106d2576106d161111e565b5b0361071457806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161070b9190611163565b60405180910390fd5b5b5050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115610755575f6003859250925092506107f6565b5f6001888888886040515f81526020016040526040516107789493929190611197565b6020604051602081039080840390855afa158015610798573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036107e9575f60015f5f1b935093509350506107f6565b805f5f5f1b935093509350505b9450945094915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261082957610828610808565b5b8235905067ffffffffffffffff8111156108465761084561080c565b5b60208301915083602082028301111561086257610861610810565b5b9250929050565b5f5f6020838503121561087f5761087e610800565b5b5f83013567ffffffffffffffff81111561089c5761089b610804565b5b6108a885828601610814565b92509250509250929050565b5f5f83601f8401126108c9576108c8610808565b5b8235905067ffffffffffffffff8111156108e6576108e561080c565b5b60208301915083600182028301111561090257610901610810565b5b9250929050565b5f5f5f5f6040858703121561092157610920610800565b5b5f85013567ffffffffffffffff81111561093e5761093d610804565b5b61094a87828801610814565b9450945050602085013567ffffffffffffffff81111561096d5761096c610804565b5b610979878288016108b4565b925092505092959194509250565b5f819050919050565b61099981610987565b82525050565b5f6020820190506109b25f830184610990565b92915050565b5f82825260208201905092915050565b7f496e76616c696420617574686f726974790000000000000000000000000000005f82015250565b5f6109fc6011836109b8565b9150610a07826109c8565b602082019050919050565b5f6020820190508181035f830152610a29816109f0565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f82356001606003833603038112610a8457610a83610a5d565b5b80830191505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610ab982610a90565b9050919050565b610ac981610aaf565b8114610ad3575f5ffd5b50565b5f81359050610ae481610ac0565b92915050565b5f60208284031215610aff57610afe610800565b5b5f610b0c84828501610ad6565b91505092915050565b5f5f83356001602003843603038112610b3157610b30610a5d565b5b80840192508235915067ffffffffffffffff821115610b5357610b52610a61565b5b602083019250600182023603831315610b6f57610b6e610a65565b5b509250929050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f610ba382610b77565b610bad8185610b81565b9350610bbd818560208601610b8b565b80840191505092915050565b5f8160601b9050919050565b5f610bdf82610bc9565b9050919050565b5f610bf082610bd5565b9050919050565b610c08610c0382610aaf565b610be6565b82525050565b5f819050919050565b610c28610c2382610987565b610c0e565b82525050565b828183375f83830152505050565b5f610c478385610b81565b9350610c54838584610c2e565b82840190509392505050565b5f610c6b8288610b99565b9150610c778287610bf7565b601482019150610c878286610c17565b602082019150610c98828486610c3c565b91508190509695505050505050565b5f610cb28285610c17565b602082019150610cc28284610b99565b91508190509392505050565b7f496e76616c6964207369676e61747572650000000000000000000000000000005f82015250565b5f610d026011836109b8565b9150610d0d82610cce565b602082019050919050565b5f6020820190508181035f830152610d2f81610cf6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610d6d82610987565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d9f57610d9e610d36565b5b600182019050919050565b5f82825260208201905092915050565b5f819050919050565b5f610dd16020840184610ad6565b905092915050565b610de281610aaf565b82525050565b610df181610987565b8114610dfb575f5ffd5b50565b5f81359050610e0c81610de8565b92915050565b5f610e206020840184610dfe565b905092915050565b610e3181610987565b82525050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112610e5f57610e5e610e3f565b5b83810192508235915060208301925067ffffffffffffffff821115610e8757610e86610e37565b5b600182023603831315610e9d57610e9c610e3b565b5b509250929050565b5f82825260208201905092915050565b5f601f19601f8301169050919050565b5f610ed08385610ea5565b9350610edd838584610c2e565b610ee683610eb5565b840190509392505050565b5f60608301610f025f840184610dc3565b610f0e5f860182610dd9565b50610f1c6020840184610e12565b610f296020860182610e28565b50610f376040840184610e43565b8583036040870152610f4a838284610ec5565b925050508091505092915050565b5f610f638383610ef1565b905092915050565b5f82356001606003833603038112610f8657610f85610e3f565b5b82810191505092915050565b5f602082019050919050565b5f610fa98385610daa565b935083602084028501610fbb84610dba565b805f5b87811015610ffe578484038952610fd58284610f6b565b610fdf8582610f58565b9450610fea83610f92565b925060208a01995050600181019050610fbe565b50829750879450505050509392505050565b5f6020820190508181035f830152611029818486610f9e565b90509392505050565b5f61103e828486610c3c565b91508190509392505050565b7f43616c6c207265766572746564000000000000000000000000000000000000005f82015250565b5f61107e600d836109b8565b91506110898261104a565b602082019050919050565b5f6020820190508181035f8301526110ab81611072565b9050919050565b5f82825260208201905092915050565b5f6110cd83856110b2565b93506110da838584610c2e565b6110e383610eb5565b840190509392505050565b5f6040820190506111015f830186610990565b81810360208301526111148184866110c2565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b61115d8161114b565b82525050565b5f6020820190506111765f830184611154565b92915050565b5f60ff82169050919050565b6111918161117c565b82525050565b5f6080820190506111aa5f830187611154565b6111b76020830186611188565b6111c46040830185611154565b6111d16060830184611154565b9594505050505056fea2646970667358221220ae4cd7d662dcac827e12ba5c770f4f1da5755540e66118987c8cc83527b8cbd164736f6c634300081e0033`;
5
+ //# sourceMappingURL=bytecode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytecode.js","sourceRoot":"","sources":["../../src/SmartContractWallet/bytecode.ts"],"names":[],"mappings":";;;AAAa,QAAA,QAAQ,GAAG,0lSAA0lS,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { initDelegatorClient, createDelegationPayload, createDelegationCalldata, isScwDeployed } from './client';
2
2
  export { deployNftContract, mintNftToken, buyNftToken, executeBatchOperations, encodeNftConstructorArgs, deployScw, } from './nft-operations';
3
- export type { DelegatorConfig, DelegatorClient, MintData, BuyData, DeployOptions, NftConstructorArgs, DelegationPayload, UserOperationResult, BatchOperation, DeployOperation, MintOperation, BuyOperation, } from './types';
3
+ export type { DelegatorConfig, DelegatorClient, MintData, BuyData, DeployOptions, NftConstructorArgs, DelegationPayload, UserOperationResult, OperationResult, BatchOperation, DeployOperation, MintOperation, BuyOperation, } from './types';
4
4
  export type { Address, Hex } from 'viem';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjH,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,wBAAwB,EACxB,SAAS,GACT,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACX,eAAe,EACf,eAAe,EACf,QAAQ,EACR,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,GACZ,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjH,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,wBAAwB,EACxB,SAAS,GACT,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACX,eAAe,EACf,eAAe,EACf,QAAQ,EACR,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,GACZ,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Address, Hex } from 'viem';
2
- import { DelegatorClient, MintData, BuyData, BatchOperation, NftConstructorArgs } from './types';
2
+ import { DelegatorClient, MintData, BuyData, OperationResult, BatchOperation, NftConstructorArgs } from './types';
3
3
  /**
4
4
  * Encode constructor arguments for NFT contracts
5
5
  * @param constructorArgs - Constructor arguments including name, symbol, etc.
@@ -11,9 +11,9 @@ export declare function encodeNftConstructorArgs(constructorArgs: NftConstructor
11
11
  * @param client - Delegator client
12
12
  * @param eoaAddress - EOA address that will own the SCW
13
13
  * @param eoaPrivateKey - EOA private key for signing
14
- * @returns Promise resolving to UserOperation hash
14
+ * @returns Promise resolving to the deployed SCW contract address
15
15
  */
16
- export declare function deployScw(client: DelegatorClient, eoaAddress: Address, eoaPrivateKey: Hex): Promise<Hex>;
16
+ export declare function deployScw(client: DelegatorClient, eoaAddress: Address, eoaPrivateKey: Hex): Promise<Address>;
17
17
  /**
18
18
  * Deploy a custom NFT contract using EIP-7702 delegation and ERC-4337 gas sponsorship
19
19
  * @param client - Initialized delegator client
@@ -21,32 +21,32 @@ export declare function deployScw(client: DelegatorClient, eoaAddress: Address,
21
21
  * @param bytecode - Compiled NFT contract bytecode
22
22
  * @param salt - Optional salt for deterministic deployment
23
23
  * @param constructorArgs - Optional constructor arguments (name, symbol, etc.)
24
- * @returns Promise resolving to UserOperation hash
24
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
25
25
  */
26
- export declare function deployNftContract(client: DelegatorClient, eoaPrivateKey: Hex, bytecode: Hex, salt?: Hex, constructorArgs?: NftConstructorArgs): Promise<Hex>;
26
+ export declare function deployNftContract(client: DelegatorClient, eoaPrivateKey: Hex, bytecode: Hex, salt?: Hex, constructorArgs?: NftConstructorArgs): Promise<OperationResult>;
27
27
  /**
28
28
  * Mint an NFT token using EIP-7702 delegation and ERC-4337 gas sponsorship
29
29
  * @param client - Initialized delegator client
30
30
  * @param eoaPrivateKey - EOA private key for signing
31
31
  * @param nftContractAddress - Address of the NFT contract
32
32
  * @param mintData - Mint data including recipient and token details
33
- * @returns Promise resolving to UserOperation hash
33
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
34
34
  */
35
- export declare function mintNftToken(client: DelegatorClient, eoaPrivateKey: Hex, nftContractAddress: Address, mintData: MintData): Promise<Hex>;
35
+ export declare function mintNftToken(client: DelegatorClient, eoaPrivateKey: Hex, nftContractAddress: Address, mintData: MintData): Promise<OperationResult>;
36
36
  /**
37
37
  * Buy an NFT using ERC20 tokens with EIP-7702 delegation and ERC-4337 gas sponsorship
38
38
  * @param client - Initialized delegator client
39
39
  * @param eoaPrivateKey - EOA private key for signing
40
40
  * @param buyData - Buy data including NFT contract, token ID, ERC20 token, and price
41
- * @returns Promise resolving to UserOperation hash
41
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
42
42
  */
43
- export declare function buyNftToken(client: DelegatorClient, eoaPrivateKey: Hex, buyData: BuyData): Promise<Hex>;
43
+ export declare function buyNftToken(client: DelegatorClient, eoaPrivateKey: Hex, buyData: BuyData): Promise<OperationResult>;
44
44
  /**
45
45
  * Execute multiple NFT operations in a single transaction
46
46
  * @param client - Initialized delegator client
47
47
  * @param eoaPrivateKey - EOA private key for signing
48
48
  * @param operations - Array of operations to execute
49
- * @returns Promise resolving to UserOperation hash
49
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
50
50
  */
51
- export declare function executeBatchOperations(client: DelegatorClient, eoaPrivateKey: Hex, operations: BatchOperation[]): Promise<Hex>;
51
+ export declare function executeBatchOperations(client: DelegatorClient, eoaPrivateKey: Hex, operations: BatchOperation[]): Promise<OperationResult>;
52
52
  //# sourceMappingURL=nft-operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nft-operations.d.ts","sourceRoot":"","sources":["../src/nft-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAiF,MAAM,MAAM,CAAC;AACnH,OAAO,EACN,eAAe,EAEf,QAAQ,EACR,OAAO,EAEP,cAAc,EAId,kBAAkB,EAClB,MAAM,SAAS,CAAC;AAIjB;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,GAAG,GAAG,CAajF;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAmC9G;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,QAAQ,EAAE,GAAG,EACb,IAAI,CAAC,EAAE,GAAG,EACV,eAAe,CAAC,EAAE,kBAAkB,GAClC,OAAO,CAAC,GAAG,CAAC,CAqCd;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,kBAAkB,EAAE,OAAO,EAC3B,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,GAAG,CAAC,CAoCd;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CA6C7G;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAoGpI"}
1
+ {"version":3,"file":"nft-operations.d.ts","sourceRoot":"","sources":["../src/nft-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAiF,MAAM,MAAM,CAAC;AACnH,OAAO,EACN,eAAe,EAEf,QAAQ,EACR,OAAO,EAEP,eAAe,EACf,cAAc,EAId,kBAAkB,EAClB,MAAM,SAAS,CAAC;AAKjB;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,GAAG,GAAG,CAajF;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAoClH;AAuBD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,QAAQ,EAAE,GAAG,EACb,IAAI,CAAC,EAAE,GAAG,EACV,eAAe,CAAC,EAAE,kBAAkB,GAClC,OAAO,CAAC,eAAe,CAAC,CAmC1B;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,kBAAkB,EAAE,OAAO,EAC3B,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA2CzH;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,CAkG1B"}
@@ -9,6 +9,7 @@ exports.executeBatchOperations = executeBatchOperations;
9
9
  const viem_1 = require("viem");
10
10
  const client_1 = require("./client");
11
11
  const accounts_1 = require("viem/accounts");
12
+ const bytecode_1 = require("./SmartContractWallet/bytecode");
12
13
  /**
13
14
  * Encode constructor arguments for NFT contracts
14
15
  * @param constructorArgs - Constructor arguments including name, symbol, etc.
@@ -31,41 +32,57 @@ function encodeNftConstructorArgs(constructorArgs) {
31
32
  * @param client - Delegator client
32
33
  * @param eoaAddress - EOA address that will own the SCW
33
34
  * @param eoaPrivateKey - EOA private key for signing
34
- * @returns Promise resolving to UserOperation hash
35
+ * @returns Promise resolving to the deployed SCW contract address
35
36
  */
36
37
  async function deployScw(client, eoaAddress, eoaPrivateKey) {
37
38
  try {
38
39
  // Check if SCW is already deployed
39
40
  if (await (0, client_1.isScwDeployed)(client, eoaAddress)) {
40
- throw new Error('Smart contract wallet already deployed at this address');
41
+ console.log('Smart contract wallet already deployed at this address');
42
+ return eoaAddress; // Return the EOA address as the SCW address
41
43
  }
42
- // Create SCW deployment calldata
43
- const deployCalldata = (0, viem_1.encodeFunctionData)({
44
- abi: [
45
- {
46
- type: 'function',
47
- name: 'deploy',
48
- inputs: [
49
- { name: 'implementation', type: 'address' },
50
- { name: 'salt', type: 'bytes32' },
51
- { name: 'initData', type: 'bytes' },
52
- ],
53
- outputs: [{ name: 'account', type: 'address' }],
54
- },
55
- ],
56
- functionName: 'deploy',
57
- args: [client.config.scwImplAddress, '0x0000000000000000000000000000000000000000000000000000000000000000', '0x'],
44
+ console.log('Deploying smart contract wallet...');
45
+ console.log(`EOA Address: ${eoaAddress}`);
46
+ // Deploy the SCW using the provided bytecode
47
+ const deployTx = await client.walletClient.deployContract({
48
+ account: eoaPrivateKey,
49
+ bytecode: bytecode_1.bytecode,
50
+ args: [], // SCW doesn't require constructor arguments
58
51
  });
59
- // Create UserOperation for SCW deployment
60
- const userOp = await createUserOperation(client, eoaAddress, deployCalldata);
61
- // Submit to bundler
62
- const userOpHash = await submitUserOperation(client, userOp, eoaPrivateKey);
63
- return userOpHash;
52
+ // Wait for the transaction to be mined and get the contract address
53
+ const receipt = await client.publicClient.waitForTransactionReceipt({
54
+ hash: deployTx,
55
+ });
56
+ const scwAddress = receipt.contractAddress;
57
+ if (!scwAddress) {
58
+ throw new Error('Failed to get contract address from deployment transaction');
59
+ }
60
+ console.log('Smart contract wallet deployed successfully!');
61
+ console.log('Transaction hash:', deployTx);
62
+ console.log('SCW Address:', scwAddress);
63
+ return scwAddress;
64
64
  }
65
65
  catch (error) {
66
66
  throw new Error(`Failed to deploy smart contract wallet: ${error instanceof Error ? error.message : 'Unknown error'}`);
67
67
  }
68
68
  }
69
+ /**
70
+ * Ensure SCW is deployed for the given EOA address, deploy if necessary
71
+ * @param client - Delegator client
72
+ * @param eoaAddress - EOA address
73
+ * @param eoaPrivateKey - EOA private key for signing
74
+ * @returns Promise resolving to the SCW contract address
75
+ */
76
+ async function ensureScwDeployed(client, eoaAddress, eoaPrivateKey) {
77
+ if (await (0, client_1.isScwDeployed)(client, eoaAddress)) {
78
+ return eoaAddress; // Return the EOA address as the SCW address
79
+ }
80
+ console.log('Smart contract wallet not found, deploying automatically...');
81
+ const scwAddress = await deployScw(client, eoaAddress, eoaPrivateKey);
82
+ // Update the client configuration to use the actual deployed SCW address
83
+ client.config.scwImplAddress = scwAddress;
84
+ return scwAddress;
85
+ }
69
86
  /**
70
87
  * Deploy a custom NFT contract using EIP-7702 delegation and ERC-4337 gas sponsorship
71
88
  * @param client - Initialized delegator client
@@ -73,25 +90,20 @@ async function deployScw(client, eoaAddress, eoaPrivateKey) {
73
90
  * @param bytecode - Compiled NFT contract bytecode
74
91
  * @param salt - Optional salt for deterministic deployment
75
92
  * @param constructorArgs - Optional constructor arguments (name, symbol, etc.)
76
- * @returns Promise resolving to UserOperation hash
93
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
77
94
  */
78
95
  async function deployNftContract(client, eoaPrivateKey, bytecode, salt, constructorArgs) {
79
96
  try {
80
97
  // Get EOA address from private key
81
98
  const eoaAddress = (0, accounts_1.privateKeyToAddress)(eoaPrivateKey);
82
- // Check if SCW is deployed, if not deploy it first
83
- if (!(await (0, client_1.isScwDeployed)(client, eoaAddress))) {
84
- console.log('Smart contract wallet not deployed, deploying SCW first...');
85
- await deployScw(client, eoaAddress, eoaPrivateKey);
86
- // Wait a bit for the SCW deployment to be mined
87
- await new Promise((resolve) => setTimeout(resolve, 5000));
88
- }
99
+ // Ensure SCW is deployed and get the SCW address
100
+ const scwAddress = await ensureScwDeployed(client, eoaAddress, eoaPrivateKey);
89
101
  // Create contract deployment calldata with constructor arguments
90
102
  const encodedConstructorArgs = constructorArgs ? encodeNftConstructorArgs(constructorArgs) : undefined;
91
103
  const deployCalldata = createDeployCalldata(bytecode, salt, encodedConstructorArgs);
92
104
  // Create EIP-7702 delegation payload
93
105
  const delegationPayload = {
94
- target: client.config.scwImplAddress,
106
+ target: scwAddress,
95
107
  callData: deployCalldata,
96
108
  value: 0n,
97
109
  };
@@ -101,7 +113,10 @@ async function deployNftContract(client, eoaPrivateKey, bytecode, salt, construc
101
113
  const userOp = await createUserOperation(client, eoaAddress, delegationCalldata);
102
114
  // Submit to bundler
103
115
  const userOpHash = await submitUserOperation(client, userOp, eoaPrivateKey);
104
- return userOpHash;
116
+ return {
117
+ userOpHash,
118
+ scwAddress,
119
+ };
105
120
  }
106
121
  catch (error) {
107
122
  throw new Error(`Failed to deploy NFT contract: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -113,19 +128,14 @@ async function deployNftContract(client, eoaPrivateKey, bytecode, salt, construc
113
128
  * @param eoaPrivateKey - EOA private key for signing
114
129
  * @param nftContractAddress - Address of the NFT contract
115
130
  * @param mintData - Mint data including recipient and token details
116
- * @returns Promise resolving to UserOperation hash
131
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
117
132
  */
118
133
  async function mintNftToken(client, eoaPrivateKey, nftContractAddress, mintData) {
119
134
  try {
120
135
  // Get EOA address from private key
121
136
  const eoaAddress = (0, accounts_1.privateKeyToAddress)(eoaPrivateKey);
122
- // Check if SCW is deployed, if not deploy it first
123
- if (!(await (0, client_1.isScwDeployed)(client, eoaAddress))) {
124
- console.log('Smart contract wallet not deployed, deploying SCW first...');
125
- await deployScw(client, eoaAddress, eoaPrivateKey);
126
- // Wait a bit for the SCW deployment to be mined
127
- await new Promise((resolve) => setTimeout(resolve, 5000));
128
- }
137
+ // Ensure SCW is deployed and get the SCW address
138
+ const scwAddress = await ensureScwDeployed(client, eoaAddress, eoaPrivateKey);
129
139
  // Create mint function calldata
130
140
  const mintCalldata = createMintCalldata(mintData);
131
141
  // Create EIP-7702 delegation payload
@@ -140,7 +150,10 @@ async function mintNftToken(client, eoaPrivateKey, nftContractAddress, mintData)
140
150
  const userOp = await createUserOperation(client, eoaAddress, delegationCalldata);
141
151
  // Submit to bundler
142
152
  const userOpHash = await submitUserOperation(client, userOp, eoaPrivateKey);
143
- return userOpHash;
153
+ return {
154
+ userOpHash,
155
+ scwAddress,
156
+ };
144
157
  }
145
158
  catch (error) {
146
159
  throw new Error(`Failed to mint NFT token: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -151,19 +164,14 @@ async function mintNftToken(client, eoaPrivateKey, nftContractAddress, mintData)
151
164
  * @param client - Initialized delegator client
152
165
  * @param eoaPrivateKey - EOA private key for signing
153
166
  * @param buyData - Buy data including NFT contract, token ID, ERC20 token, and price
154
- * @returns Promise resolving to UserOperation hash
167
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
155
168
  */
156
169
  async function buyNftToken(client, eoaPrivateKey, buyData) {
157
170
  try {
158
171
  // Get EOA address from private key
159
172
  const eoaAddress = (0, accounts_1.privateKeyToAddress)(eoaPrivateKey);
160
- // Check if SCW is deployed, if not deploy it first
161
- if (!(await (0, client_1.isScwDeployed)(client, eoaAddress))) {
162
- console.log('Smart contract wallet not deployed, deploying SCW first...');
163
- await deployScw(client, eoaAddress, eoaPrivateKey);
164
- // Wait a bit for the SCW deployment to be mined
165
- await new Promise((resolve) => setTimeout(resolve, 5000));
166
- }
173
+ // Ensure SCW is deployed and get the SCW address
174
+ const scwAddress = await ensureScwDeployed(client, eoaAddress, eoaPrivateKey);
167
175
  // Create ERC20 transfer calldata for payment
168
176
  const erc20TransferCalldata = createERC20TransferCalldata(buyData.erc20TokenAddress, buyData.nftContractAddress, buyData.price);
169
177
  // Create NFT purchase calldata (assuming the NFT contract has a buy function)
@@ -175,7 +183,7 @@ async function buyNftToken(client, eoaPrivateKey, buyData) {
175
183
  ]);
176
184
  // Create EIP-7702 delegation payload
177
185
  const delegationPayload = {
178
- target: client.config.scwImplAddress,
186
+ target: scwAddress,
179
187
  callData: batchCalldata,
180
188
  value: 0n,
181
189
  };
@@ -185,7 +193,10 @@ async function buyNftToken(client, eoaPrivateKey, buyData) {
185
193
  const userOp = await createUserOperation(client, eoaAddress, delegationCalldata);
186
194
  // Submit to bundler
187
195
  const userOpHash = await submitUserOperation(client, userOp, eoaPrivateKey);
188
- return userOpHash;
196
+ return {
197
+ userOpHash,
198
+ scwAddress,
199
+ };
189
200
  }
190
201
  catch (error) {
191
202
  throw new Error(`Failed to buy NFT token: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -196,19 +207,14 @@ async function buyNftToken(client, eoaPrivateKey, buyData) {
196
207
  * @param client - Initialized delegator client
197
208
  * @param eoaPrivateKey - EOA private key for signing
198
209
  * @param operations - Array of operations to execute
199
- * @returns Promise resolving to UserOperation hash
210
+ * @returns Promise resolving to operation result with UserOperation hash and SCW address
200
211
  */
201
212
  async function executeBatchOperations(client, eoaPrivateKey, operations) {
202
213
  try {
203
214
  // Get EOA address from private key
204
215
  const eoaAddress = (0, accounts_1.privateKeyToAddress)(eoaPrivateKey);
205
- // Check if SCW is deployed, if not deploy it first
206
- if (!(await (0, client_1.isScwDeployed)(client, eoaAddress))) {
207
- console.log('Smart contract wallet not deployed, deploying SCW first...');
208
- await deployScw(client, eoaAddress, eoaPrivateKey);
209
- // Wait a bit for the SCW deployment to be mined
210
- await new Promise((resolve) => setTimeout(resolve, 5000));
211
- }
216
+ // Ensure SCW is deployed and get the SCW address
217
+ const scwAddress = await ensureScwDeployed(client, eoaAddress, eoaPrivateKey);
212
218
  // Process each operation and create calldata
213
219
  const batchCalls = [];
214
220
  for (const operation of operations) {
@@ -217,7 +223,7 @@ async function executeBatchOperations(client, eoaPrivateKey, operations) {
217
223
  const deployOp = operation.data;
218
224
  const deployCalldata = createDeployCalldata(deployOp.bytecode, deployOp.salt, deployOp.constructorArgs);
219
225
  batchCalls.push({
220
- target: client.config.scwImplAddress,
226
+ target: scwAddress,
221
227
  callData: deployCalldata,
222
228
  value: 0n,
223
229
  });
@@ -260,7 +266,7 @@ async function executeBatchOperations(client, eoaPrivateKey, operations) {
260
266
  const batchCalldata = createBatchCallCalldata(batchCalls);
261
267
  // Create EIP-7702 delegation payload
262
268
  const delegationPayload = {
263
- target: client.config.scwImplAddress,
269
+ target: scwAddress,
264
270
  callData: batchCalldata,
265
271
  value: 0n,
266
272
  };
@@ -270,7 +276,10 @@ async function executeBatchOperations(client, eoaPrivateKey, operations) {
270
276
  const userOp = await createUserOperation(client, eoaAddress, delegationCalldata);
271
277
  // Submit to bundler
272
278
  const userOpHash = await submitUserOperation(client, userOp, eoaPrivateKey);
273
- return userOpHash;
279
+ return {
280
+ userOpHash,
281
+ scwAddress,
282
+ };
274
283
  }
275
284
  catch (error) {
276
285
  throw new Error(`Failed to execute batch operations: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"nft-operations.js","sourceRoot":"","sources":["../src/nft-operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nft-operations.js","sourceRoot":"","sources":["../src/nft-operations.ts"],"names":[],"mappings":";;AAuBA,4DAaC;AASD,8BAoCC;AAgCD,8CAyCC;AAUD,oCAuCC;AASD,kCA2CC;AASD,wDAsGC;AA9WD,+BAAmH;AAcnH,qCAAmE;AACnE,4CAAoD;AACpD,6DAA0E;AAE1E;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,eAAmC;IAC3E,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC;IAEzE,+IAA+I;IAC/I,MAAM,aAAa,GAAG,IAAA,yBAAkB,EAAC,CAAC,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC;IAEnI,OAAO,IAAA,0BAAmB,EAAC,aAAa,EAAE;QACzC,IAAI;QACJ,MAAM;QACN,OAAO;QACP,SAAS,IAAI,EAAE;QACf,KAAK,IAAI,4CAA4C;KACrD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,SAAS,CAAC,MAAuB,EAAE,UAAmB,EAAE,aAAkB;IAC/F,IAAI,CAAC;QACJ,mCAAmC;QACnC,IAAI,MAAM,IAAA,sBAAa,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,UAAU,CAAC,CAAC,4CAA4C;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;QAE1C,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;YACzD,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,mBAAmB;YAC7B,IAAI,EAAE,EAAE,EAAE,4CAA4C;SACtD,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC;YACnE,IAAI,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAExC,OAAO,UAAU,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACxH,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,iBAAiB,CAAC,MAAuB,EAAE,UAAmB,EAAE,aAAkB;IAChG,IAAI,MAAM,IAAA,sBAAa,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7C,OAAO,UAAU,CAAC,CAAC,4CAA4C;IAChE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IAEtE,yEAAyE;IACzE,MAAM,CAAC,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC;IAE1C,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CACtC,MAAuB,EACvB,aAAkB,EAClB,QAAa,EACb,IAAU,EACV,eAAoC;IAEpC,IAAI,CAAC;QACJ,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAA,8BAAmB,EAAC,aAAa,CAAC,CAAC;QAEtD,iDAAiD;QACjD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9E,iEAAiE;QACjE,MAAM,sBAAsB,GAAG,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,sBAAsB,CAAC,CAAC;QAEpF,qCAAqC;QACrC,MAAM,iBAAiB,GAAG;YACzB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG,IAAA,iCAAwB,EAAC,iBAAiB,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAEjF,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE5E,OAAO;YACN,UAAU;YACV,UAAU;SACV,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/G,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,YAAY,CACjC,MAAuB,EACvB,aAAkB,EAClB,kBAA2B,EAC3B,QAAkB;IAElB,IAAI,CAAC;QACJ,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAA,8BAAmB,EAAC,aAAa,CAAC,CAAC;QAEtD,iDAAiD;QACjD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9E,gCAAgC;QAChC,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAElD,qCAAqC;QACrC,MAAM,iBAAiB,GAAG;YACzB,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG,IAAA,iCAAwB,EAAC,iBAAiB,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAEjF,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE5E,OAAO;YACN,UAAU;YACV,UAAU;SACV,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAC1G,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,MAAuB,EAAE,aAAkB,EAAE,OAAgB;IAC9F,IAAI,CAAC;QACJ,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAA,8BAAmB,EAAC,aAAa,CAAC,CAAC;QAEtD,iDAAiD;QACjD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9E,6CAA6C;QAC7C,MAAM,qBAAqB,GAAG,2BAA2B,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEhI,8EAA8E;QAC9E,MAAM,cAAc,GAAG,oBAAoB,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAEpI,sEAAsE;QACtE,MAAM,aAAa,GAAG,uBAAuB,CAAC;YAC7C,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,EAAE,EAAE;YACjF,EAAE,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,EAAE;SAC3E,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,iBAAiB,GAAG;YACzB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG,IAAA,iCAAwB,EAAC,iBAAiB,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAEjF,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE5E,OAAO;YACN,UAAU;YACV,UAAU;SACV,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACzG,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAC3C,MAAuB,EACvB,aAAkB,EAClB,UAA4B;IAE5B,IAAI,CAAC;QACJ,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAA,8BAAmB,EAAC,aAAa,CAAC,CAAC;QAEtD,iDAAiD;QACjD,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAE9E,6CAA6C;QAC7C,MAAM,UAAU,GAA6D,EAAE,CAAC;QAEhF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;gBACxB,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACf,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAuB,CAAC;oBACnD,MAAM,cAAc,GAAG,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;oBACxG,UAAU,CAAC,IAAI,CAAC;wBACf,MAAM,EAAE,UAAU;wBAClB,QAAQ,EAAE,cAAc;wBACxB,KAAK,EAAE,EAAE;qBACT,CAAC,CAAC;oBACH,MAAM;gBACP,CAAC;gBACD,KAAK,MAAM,CAAC,CAAC,CAAC;oBACb,MAAM,MAAM,GAAG,SAAS,CAAC,IAAqB,CAAC;oBAC/C,MAAM,YAAY,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;oBACzD,UAAU,CAAC,IAAI,CAAC;wBACf,MAAM,EAAE,MAAM,CAAC,kBAAkB;wBACjC,QAAQ,EAAE,YAAY;wBACtB,KAAK,EAAE,EAAE;qBACT,CAAC,CAAC;oBACH,MAAM;gBACP,CAAC;gBACD,KAAK,KAAK,CAAC,CAAC,CAAC;oBACZ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAoB,CAAC;oBAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;oBAE1B,6CAA6C;oBAC7C,MAAM,qBAAqB,GAAG,2BAA2B,CACxD,OAAO,CAAC,iBAAiB,EACzB,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,KAAK,CACb,CAAC;oBAEF,+BAA+B;oBAC/B,MAAM,cAAc,GAAG,oBAAoB,CAC1C,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,IAAI,EAAE,EACtB,OAAO,CAAC,SAAS,CACjB,CAAC;oBAEF,oDAAoD;oBACpD,UAAU,CAAC,IAAI,CACd;wBACC,MAAM,EAAE,OAAO,CAAC,iBAAiB;wBACjC,QAAQ,EAAE,qBAAqB;wBAC/B,KAAK,EAAE,EAAE;qBACT,EACD;wBACC,MAAM,EAAE,OAAO,CAAC,kBAAkB;wBAClC,QAAQ,EAAE,cAAc;wBACxB,KAAK,EAAE,EAAE;qBACT,CACD,CAAC;oBACF,MAAM;gBACP,CAAC;gBACD;oBACC,MAAM,IAAI,KAAK,CAAC,+BAAgC,SAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5E,CAAC;QACF,CAAC;QAED,gDAAgD;QAChD,MAAM,aAAa,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;QAE1D,qCAAqC;QACrC,MAAM,iBAAiB,GAAG;YACzB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,EAAE;SACT,CAAC;QAEF,6DAA6D;QAC7D,MAAM,kBAAkB,GAAG,IAAA,iCAAwB,EAAC,iBAAiB,CAAC,CAAC;QAEvE,uBAAuB;QACvB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;QAEjF,oBAAoB;QACpB,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAE5E,OAAO;YACN,UAAU;YACV,UAAU;SACV,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACpH,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,QAAa,EAAE,IAAU,EAAE,eAAqB;IAC7E,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAE,GAAG,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,EAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEpG,IAAI,IAAI,EAAE,CAAC;QACV,qBAAqB;QACrB,OAAO,IAAA,yBAAkB,EAAC;YACzB,GAAG,EAAE;gBACJ;oBACC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,MAAM,EAAE;wBACP,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;wBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;qBACjC;oBACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iBAC/C;aACD;YACD,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;SAC1B,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,oBAAoB;QACpB,OAAO,YAAY,CAAC;IACrB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,QAAkB;IAC7C,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAE9D,qFAAqF;IACrF,MAAM,YAAY,GAAG,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC;IAE/D,IAAI,YAAY,GAAG,EAAE,EAAE,CAAC;QACvB,kCAAkC;QAClC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,0BAA0B;YAC1B,OAAO,IAAA,yBAAkB,EAAC;gBACzB,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,MAAM;wBACZ,MAAM,EAAE;4BACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;yBAC/B;wBACD,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC;aAC7C,CAAC,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,sBAAsB;YACtB,OAAO,IAAA,yBAAkB,EAAC;gBACzB,GAAG,EAAE;oBACJ;wBACC,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,MAAM;wBACZ,MAAM,EAAE;4BACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;yBACrC;wBACD,OAAO,EAAE,EAAE;qBACX;iBACD;gBACD,YAAY,EAAE,MAAM;gBACpB,IAAI,EAAE,CAAC,EAAE,EAAE,YAAY,CAAC;aACxB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;SAAM,CAAC;QACP,sBAAsB;QACtB,OAAO,IAAA,yBAAkB,EAAC;YACzB,GAAG,EAAE;gBACJ;oBACC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE;wBACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC/B,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;qBACpC;oBACD,OAAO,EAAE,EAAE;iBACX;aACD;YACD,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC;SACzB,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B,CAAC,YAAqB,EAAE,EAAW,EAAE,MAAc;IACtF,OAAO,IAAA,yBAAkB,EAAC;QACzB,GAAG,EAAE;YACJ;gBACC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE;oBACP,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;iBACnC;gBACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;aAC5C;SACD;QACD,YAAY,EAAE,UAAU;QACxB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,UAAmB,EAAE,OAAe,EAAE,QAAgB,EAAE,SAAkB;IACvG,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;QACnB,iCAAiC;QACjC,OAAO,IAAA,yBAAkB,EAAC;YACzB,GAAG,EAAE;gBACJ;oBACC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE;wBACP,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;qBACtC;oBACD,OAAO,EAAE,EAAE;iBACX;aACD;YACD,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;SACpC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,qBAAqB;QACrB,OAAO,IAAA,yBAAkB,EAAC;YACzB,GAAG,EAAE;gBACJ;oBACC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,KAAK;oBACX,MAAM,EAAE;wBACP,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBACpC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;qBACtC;oBACD,OAAO,EAAE,EAAE;iBACX;aACD;YACD,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;SAC1B,CAAC,CAAC;IACJ,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,KAA+D;IAC/F,OAAO,IAAA,yBAAkB,EAAC;QACzB,GAAG,EAAE;YACJ;gBACC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE;oBACP;wBACC,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;wBACf,UAAU,EAAE;4BACX,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;4BACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;yBAClC;qBACD;iBACD;gBACD,OAAO,EAAE,EAAE;aACX;SACD;QACD,YAAY,EAAE,SAAS;QACvB,IAAI,EAAE,CAAC,KAAK,CAAC;KACb,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAuB,EAAE,MAAe,EAAE,QAAa,EAAE,KAAc;IACzG,YAAY;IACZ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAEjF,oBAAoB;IACpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;QACzD,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc;QAChC,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK,IAAI,EAAE;KAClB,CAAC,CAAC;IAEH,4BAA4B;IAC5B,MAAM,MAAM,GAAG;QACd,MAAM;QACN,KAAK,EAAE,IAAA,YAAK,EAAC,KAAK,CAAC;QACnB,QAAQ,EAAE,IAAI;QACd,QAAQ;QACR,YAAY,EAAE,IAAA,YAAK,EAAC,WAAW,CAAC;QAChC,oBAAoB,EAAE,IAAA,YAAK,EAAC,OAAO,CAAC,EAAE,2BAA2B;QACjE,kBAAkB,EAAE,IAAA,YAAK,EAAC,MAAM,CAAC,EAAE,+BAA+B;QAClE,YAAY,EAAE,IAAA,YAAK,EAAC,EAAE,CAAC,EAAE,iCAAiC;QAC1D,oBAAoB,EAAE,IAAA,YAAK,EAAC,EAAE,CAAC,EAAE,iCAAiC;QAClE,gBAAgB,EAAE,IAAI,EAAE,8BAA8B;QACtD,SAAS,EAAE,IAAI,EAAE,gCAAgC;KACjD,CAAC;IAEF,yCAAyC;IACzC,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,oBAAoB,CAAC;YACzE,aAAa,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;QAC3D,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;QACnD,MAAM,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAC;QACnE,MAAM,CAAC,kBAAkB,GAAG,eAAe,CAAC,kBAAkB,CAAC;QAC/D,MAAM,CAAC,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,CAAC;QACnE,MAAM,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAuB,EAAE,MAAW,EAAE,UAAe;IACvF,IAAI,CAAC;QACJ,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAQ,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;YACvD,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;SAC5B,CAAC,CAAC;QAEH,iCAAiC;QACjC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAE7B,4BAA4B;QAC5B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC3D,aAAa,EAAE,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,UAAU,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,sDAAsD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACnI,CAAC;AACF,CAAC"}
package/dist/types.d.ts CHANGED
@@ -76,6 +76,13 @@ export interface UserOperationResult {
76
76
  transactionHash?: Hex;
77
77
  error?: string;
78
78
  }
79
+ /**
80
+ * Operation result including UserOperation hash and SCW address
81
+ */
82
+ export interface OperationResult {
83
+ userOpHash: Hex;
84
+ scwAddress: Address;
85
+ }
79
86
  /**
80
87
  * Batch operation for multiple NFT operations
81
88
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,eAAe,CAAC,EAAE,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,eAAe,CAAC,EAAE,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACX;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACvB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,eAAe,CAAC,EAAE,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,GAAG,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,GAAG,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,GAAG,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAChC,IAAI,EAAE,eAAe,GAAG,aAAa,GAAG,YAAY,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,eAAe,CAAC,EAAE,GAAG,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,OAAO,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paulstinchcombe/gasless-nft-tx",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Library for gasless NFT transactions using EIP-7702 delegation and ERC-4337 gas sponsorship",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",