@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 +93 -35
- package/dist/SmartContractWallet/bytecode.d.ts +2 -0
- package/dist/SmartContractWallet/bytecode.d.ts.map +1 -0
- package/dist/SmartContractWallet/bytecode.js +5 -0
- package/dist/SmartContractWallet/bytecode.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/nft-operations.d.ts +11 -11
- package/dist/nft-operations.d.ts.map +1 -1
- package/dist/nft-operations.js +72 -63
- package/dist/nft-operations.js.map +1 -1
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
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
|
-
//
|
|
56
|
-
const
|
|
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
|
|
69
|
-
console.log('Deployment with constructor args:',
|
|
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
|
-
//
|
|
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
|
|
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
|
-
//
|
|
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
|
|
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
|
|
168
|
-
console.log('Batch Operations Hash:',
|
|
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
|
|
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 {
|
|
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
|
|
187
|
+
// Manually deploy SCW if needed (usually not required)
|
|
181
188
|
if (!isDeployed) {
|
|
182
|
-
const
|
|
183
|
-
console.log('SCW
|
|
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
|
|
243
|
-
3. **
|
|
244
|
-
4. **
|
|
245
|
-
5. **
|
|
246
|
-
6. **
|
|
247
|
-
7. **
|
|
248
|
-
8. **
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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.
|
|
499
|
+
This error occurs when trying to use EIP-7702 delegation without a deployed smart contract wallet.
|
|
443
500
|
|
|
444
|
-
**Solution:**
|
|
501
|
+
**Solution:** Deploy a smart contract wallet first:
|
|
445
502
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/dist/nft-operations.d.ts
CHANGED
|
@@ -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
|
|
14
|
+
* @returns Promise resolving to the deployed SCW contract address
|
|
15
15
|
*/
|
|
16
|
-
export declare function deployScw(client: DelegatorClient, eoaAddress: Address, eoaPrivateKey: Hex): Promise<
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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;
|
|
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"}
|
package/dist/nft-operations.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
//
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
//
|
|
83
|
-
|
|
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:
|
|
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
|
|
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
|
-
//
|
|
123
|
-
|
|
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
|
|
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
|
-
//
|
|
161
|
-
|
|
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:
|
|
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
|
|
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
|
-
//
|
|
206
|
-
|
|
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:
|
|
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:
|
|
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
|
|
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":"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"}
|
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
|
*/
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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