@paulstinchcombe/gasless-nft-tx 0.0.14 → 0.0.16

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
@@ -1,12 +1,12 @@
1
1
  # 📦 Gasless NFT Transaction Library (EIP-7702/ERC-4337)
2
2
 
3
- A robust, production-ready NPM package for Next.js 15 backend environments that allows an **EOA (Externally Owned Account)** to delegate transaction execution to a pre-funded **ERC-4337 Smart Contract Wallet (SCW)** for gas sponsorship, specifically for key NFT operations.
3
+ A robust, production-ready NPM package for Next.js 15 backend environments that allows an **EOA (Externally Owned Account)** to execute gasless transactions through an **ERC-4337 SimpleAccount** with paymaster sponsorship via Pimlico.
4
4
 
5
5
  ## 🎯 Features
6
6
 
7
- - **EIP-7702 Delegation**: Seamlessly delegate transaction execution to smart contract wallets
8
- - **ERC-4337 Gas Sponsorship**: Execute gasless transactions with paymaster support via Pimlico
9
- - **Automatic SCW Deployment**: Automatically deploys smart contract wallets when needed
7
+ - **ERC-4337 SimpleAccount**: Automatic deployment of ERC-4337 compliant smart contract wallets
8
+ - **Paymaster Gas Sponsorship**: Execute completely gasless transactions with Pimlico paymaster
9
+ - **Automatic Deployment**: Automatically deploys SimpleAccountFactory and SimpleAccount when needed
10
10
  - **NFT Operations**: Deploy, mint, and buy NFTs without gas fees
11
11
  - **Batch Operations**: Execute multiple operations across different contracts in a single transaction
12
12
  - **ERC20 Payments**: Buy NFTs using ERC20 tokens (USDC, etc.) with automatic transfers
@@ -15,6 +15,7 @@ A robust, production-ready NPM package for Next.js 15 backend environments that
15
15
  - **Multiple NFT Standards**: Support for ERC-721, ERC-721A, and ERC-1155
16
16
  - **Comprehensive Testing**: Full test suite with 26 passing tests
17
17
  - **Error Handling**: Robust error handling with automatic retry and recovery
18
+ - **Deterministic Addresses**: Predictable SimpleAccount addresses using CREATE2
18
19
 
19
20
  ## 🚀 Installation
20
21
 
@@ -34,15 +35,21 @@ yarn add @paulstinchcombe/gasless-nft-tx
34
35
  import { initDelegatorClient } from '@paulstinchcombe/gasless-nft-tx';
35
36
 
36
37
  const client = await initDelegatorClient({
37
- rpcUrl: 'https://sepolia.infura.io/v3/YOUR_KEY',
38
- bundlerUrl: 'https://api.pimlico.io/v2/sepolia/rpc',
39
- paymasterUrl: 'https://api.pimlico.io/v2/sepolia/rpc',
40
- scwImplAddress: '0x1234567890123456789012345678901234567890',
38
+ rpcUrl: 'https://sepolia.base.org',
39
+ bundlerUrl: 'https://api.pimlico.io/v2/base-sepolia/rpc',
40
+ paymasterUrl: 'https://api.pimlico.io/v2/base-sepolia/rpc',
41
+ scwImplAddress: '0x0000000000000000000000000000000000000000', // Will be auto-deployed
41
42
  entryPointAddress: '0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789',
42
- pimlicoApiKey: 'YOUR_PIMLICO_API_KEY', // Optional for enhanced features
43
+ pimlicoApiKey: 'YOUR_PIMLICO_API_KEY',
43
44
  });
44
45
  ```
45
46
 
47
+ **Note**: The `scwImplAddress` can be a placeholder (`0x0000...`). The library will automatically:
48
+
49
+ 1. Deploy a SimpleAccountFactory (one-time, requires ETH)
50
+ 2. Deploy your SimpleAccount (one-time, requires ETH)
51
+ 3. Use the SimpleAccount for all future gasless transactions!
52
+
46
53
  ### 2. Deploy NFT Contract
47
54
 
48
55
  ```typescript
@@ -0,0 +1,36 @@
1
+ import { Address, Hex } from 'viem';
2
+ import { DelegatorClient } from './types';
3
+ /**
4
+ * Deploy the SimpleAccountFactory contract
5
+ * @param client - Delegator client
6
+ * @param deployerPrivateKey - Private key of the deployer (must have ETH for gas)
7
+ * @param entryPoint - EntryPoint address
8
+ * @returns Promise resolving to the factory address
9
+ */
10
+ export declare function deploySimpleAccountFactory(client: DelegatorClient, deployerPrivateKey: Hex, entryPoint: Address): Promise<Address>;
11
+ /**
12
+ * Create a SimpleAccount using the factory
13
+ * @param client - Delegator client
14
+ * @param factoryAddress - Address of the SimpleAccountFactory
15
+ * @param owner - Owner address of the account
16
+ * @param salt - Salt for deterministic deployment
17
+ * @param deployerPrivateKey - Private key of the deployer (must have ETH for gas)
18
+ * @returns Promise resolving to the account address
19
+ */
20
+ export declare function createSimpleAccount(client: DelegatorClient, factoryAddress: Address, owner: Address, salt: bigint, deployerPrivateKey: Hex): Promise<Address>;
21
+ /**
22
+ * Get the address of a SimpleAccount without deploying it
23
+ * @param factoryAddress - Address of the SimpleAccountFactory
24
+ * @param owner - Owner address of the account
25
+ * @param salt - Salt for deterministic deployment
26
+ * @returns The deterministic address of the SimpleAccount
27
+ */
28
+ export declare function getSimpleAccountAddressFromFactory(factoryAddress: Address, owner: Address, salt: bigint): Address;
29
+ /**
30
+ * Check if a SimpleAccount is already deployed
31
+ * @param client - Delegator client
32
+ * @param accountAddress - Address to check
33
+ * @returns Promise resolving to true if the account is deployed
34
+ */
35
+ export declare function isSimpleAccountDeployed(client: DelegatorClient, accountAddress: Address): Promise<boolean>;
36
+ //# sourceMappingURL=SimpleAccountDeployer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleAccountDeployer.d.ts","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAsB,MAAM,MAAM,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ1C;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAmCxI;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACxC,MAAM,EAAE,eAAe,EACvB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,GAAG,GACrB,OAAO,CAAC,OAAO,CAAC,CAoDlB;AAED;;;;;;GAMG;AACH,wBAAgB,kCAAkC,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjH;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhH"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deploySimpleAccountFactory = deploySimpleAccountFactory;
4
+ exports.createSimpleAccount = createSimpleAccount;
5
+ exports.getSimpleAccountAddressFromFactory = getSimpleAccountAddressFromFactory;
6
+ exports.isSimpleAccountDeployed = isSimpleAccountDeployed;
7
+ const viem_1 = require("viem");
8
+ const accounts_1 = require("viem/accounts");
9
+ const SimpleAccount_1 = require("./SmartContractWallet/SimpleAccount");
10
+ /**
11
+ * Deploy the SimpleAccountFactory contract
12
+ * @param client - Delegator client
13
+ * @param deployerPrivateKey - Private key of the deployer (must have ETH for gas)
14
+ * @param entryPoint - EntryPoint address
15
+ * @returns Promise resolving to the factory address
16
+ */
17
+ async function deploySimpleAccountFactory(client, deployerPrivateKey, entryPoint) {
18
+ try {
19
+ console.log('Deploying SimpleAccountFactory...');
20
+ console.log(`EntryPoint: ${entryPoint}`);
21
+ // Create account from private key
22
+ const account = (0, accounts_1.privateKeyToAccount)(deployerPrivateKey);
23
+ // Deploy the factory
24
+ const deployTx = await client.walletClient.deployContract({
25
+ account,
26
+ bytecode: SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_BYTECODE,
27
+ args: [entryPoint],
28
+ gas: 3000000n,
29
+ });
30
+ console.log('Factory deployment transaction:', deployTx);
31
+ // Wait for the transaction to be mined
32
+ const receipt = await client.publicClient.waitForTransactionReceipt({
33
+ hash: deployTx,
34
+ });
35
+ const factoryAddress = receipt.contractAddress;
36
+ if (!factoryAddress) {
37
+ throw new Error('Failed to get factory address from deployment transaction');
38
+ }
39
+ console.log('SimpleAccountFactory deployed successfully!');
40
+ console.log('Factory Address:', factoryAddress);
41
+ return factoryAddress;
42
+ }
43
+ catch (error) {
44
+ throw new Error(`Failed to deploy SimpleAccountFactory: ${error instanceof Error ? error.message : 'Unknown error'}`);
45
+ }
46
+ }
47
+ /**
48
+ * Create a SimpleAccount using the factory
49
+ * @param client - Delegator client
50
+ * @param factoryAddress - Address of the SimpleAccountFactory
51
+ * @param owner - Owner address of the account
52
+ * @param salt - Salt for deterministic deployment
53
+ * @param deployerPrivateKey - Private key of the deployer (must have ETH for gas)
54
+ * @returns Promise resolving to the account address
55
+ */
56
+ async function createSimpleAccount(client, factoryAddress, owner, salt, deployerPrivateKey) {
57
+ try {
58
+ console.log('Creating SimpleAccount...');
59
+ console.log(`Factory: ${factoryAddress}`);
60
+ console.log(`Owner: ${owner}`);
61
+ console.log(`Salt: ${salt}`);
62
+ // Create account from private key
63
+ const account = (0, accounts_1.privateKeyToAccount)(deployerPrivateKey);
64
+ // Encode the createAccount call
65
+ const createAccountData = (0, viem_1.encodeFunctionData)({
66
+ abi: SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_ABI,
67
+ functionName: 'createAccount',
68
+ args: [owner, salt],
69
+ });
70
+ // Call the factory to create the account
71
+ const createTx = await client.walletClient.sendTransaction({
72
+ account,
73
+ to: factoryAddress,
74
+ data: createAccountData,
75
+ gas: 2000000n,
76
+ });
77
+ console.log('Account creation transaction:', createTx);
78
+ // Wait for the transaction to be mined
79
+ const receipt = await client.publicClient.waitForTransactionReceipt({
80
+ hash: createTx,
81
+ });
82
+ if (receipt.status !== 'success') {
83
+ throw new Error('Account creation transaction failed');
84
+ }
85
+ // Calculate the deterministic address
86
+ const accountAddress = (0, SimpleAccount_1.getSimpleAccountAddress)(owner, salt, factoryAddress);
87
+ console.log('SimpleAccount created successfully!');
88
+ console.log('Account Address:', accountAddress);
89
+ // Verify the account was deployed
90
+ const code = await client.publicClient.getBytecode({ address: accountAddress });
91
+ if (!code || code === '0x') {
92
+ throw new Error('Account was not deployed correctly');
93
+ }
94
+ return accountAddress;
95
+ }
96
+ catch (error) {
97
+ throw new Error(`Failed to create SimpleAccount: ${error instanceof Error ? error.message : 'Unknown error'}`);
98
+ }
99
+ }
100
+ /**
101
+ * Get the address of a SimpleAccount without deploying it
102
+ * @param factoryAddress - Address of the SimpleAccountFactory
103
+ * @param owner - Owner address of the account
104
+ * @param salt - Salt for deterministic deployment
105
+ * @returns The deterministic address of the SimpleAccount
106
+ */
107
+ function getSimpleAccountAddressFromFactory(factoryAddress, owner, salt) {
108
+ return (0, SimpleAccount_1.getSimpleAccountAddress)(owner, salt, factoryAddress);
109
+ }
110
+ /**
111
+ * Check if a SimpleAccount is already deployed
112
+ * @param client - Delegator client
113
+ * @param accountAddress - Address to check
114
+ * @returns Promise resolving to true if the account is deployed
115
+ */
116
+ async function isSimpleAccountDeployed(client, accountAddress) {
117
+ try {
118
+ const code = await client.publicClient.getBytecode({ address: accountAddress });
119
+ return code !== undefined && code !== '0x' && code.length > 100;
120
+ }
121
+ catch (error) {
122
+ return false;
123
+ }
124
+ }
125
+ //# sourceMappingURL=SimpleAccountDeployer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleAccountDeployer.js","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,172 @@
1
+ import { Address } from 'viem';
2
+ /**
3
+ * SimpleAccount bytecode - ERC-4337 compliant account implementation
4
+ * This is a minimal ERC-4337 account that implements IAccount interface
5
+ */
6
+ export declare const SIMPLE_ACCOUNT_BYTECODE: "0x60806040523480156200001157600080fd5b5060405162001a4638038062001a468339810160408190526200003491620000e0565b6001600160a01b0381166200005c5760405163d92e233d60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556200011e565b80516001600160a01b03811681146200009957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620000d1578181015183820152602001620000b7565b50506000910152565b60008060408385031215620000f457600080fd5b620000ff8362000081565b602084810151919350906001600160401b03808211156200011f57600080fd5b818601915086601f8301126200013457600080fd5b8151818111156200014957620001496200009e565b604051601f8201601f19908116603f011681019083821181831017156200017457620001746200009e565b8160405282815289868487010111156200018d57600080fd5b620001a0836020830160208801620000b4565b80955050505050509250929050565b6118f880620001be6000396000f3fe6080604052600436106100c05760003560e01c8063b61d27f611610074578063c4d66de81161004e578063c4d66de814610234578063d087d28814610254578063f698da251461026957600080fd5b8063b61d27f6146101e1578063b0d691fe14610201578063bc197c811461022157600080fd5b80633a871cdd116100a55780633a871cdd1461017c5780634a58db191461018f5780634d44560d146101c157600080fd5b806318dfb3c7146100c55780633659cfe6146100e7575b600080fd5b3480156100d157600080fd5b506100e56100e0366004611247565b61027e565b005b3480156100f357600080fd5b506100e56101023660046112a9565b50565b34801561011157600080fd5b5061012561012036600461130e565b6102c5565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014e57600080fd5b5061016261015d366004611361565b6102f9565b604051901515815260200161013b565b6100e561018a3660046113e4565b610389565b34801561019b57600080fd5b506101af6101aa366004611461565b6103f7565b60405190815260200161013b565b3480156101cd57600080fd5b506100e56101dc3660046114a3565b610432565b3480156101ed57600080fd5b506100e56101fc3660046114e5565b610485565b34801561020d57600080fd5b506000546001600160a01b0316610125565b6100e561022f366004611531565b6104e9565b34801561024057600080fd5b506100e561024f3660046112a9565b610528565b34801561026057600080fd5b506101af610596565b34801561027557600080fd5b506101af6105a8565b6000546001600160a01b031633146102a95760405163ea8e4eb560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006102f38383604051806020016040528060008152506105ba565b92915050565b6000806103098560000151610596565b90506000610319828601866115f4565b905060006103298287878761060d565b905080156103795761037985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925061066f915050565b5060019695505050505050565b60006103978285018561161d565b90506103a58185858561070b565b6103ef81858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925061066f915050565b505050505050565b6000806104068460000151610596565b90506000610416828501856115f4565b90506104248183868661060d565b949350505050565b6000546001600160a01b0316331461045757604051631e4fbdf760e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104b15760405163ea8e4eb560e01b815260040160405180910390fd5b6104e48383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061079292505050565b505050565b6000546001600160a01b031633146105155760405163ea8e4eb560e01b815260040160405180910390fd5b6105218585858561070b565b5050505050565b6000546001600160a01b03161561055257604051633ab534b960e21b815260040160405180910390fd5b6001600160a01b03811661057957604051631e4fbdf760e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006105a3600143611690565b905090565b60006105a34261ffff16610596565b6000806105c9858585856107e3565b90506105d481610862565b6105f05760405163815e1d6460e01b815260040160405180910390fd5b6105fc858585856108a8565b9150505b9392505050565b6000806106188686868660006108f8565b905060006106258261097d565b90506001600160a01b03811661064e57604051631e4fbdf760e01b815260040160405180910390fd5b6000546001600160a01b039081169116149695505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bc576040519150601f19603f3d011682016040523d82523d6000602084013e6106c1565b606091505b50509050806104e45760405162461bcd60e51b815260206004820152601360248201527211985a5b1959081d1c985b9cd9995c8819985a5b606a1b60448201526064015b60405180910390fd5b600061071a8560000151610596565b9050600061072a828601866115f4565b9050600061073a8287878761060d565b90508061075a57604051638baa579f60e01b815260040160405180910390fd5b61078988858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061079292505050565b50505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bc576040519150601f19603f3d011682016040523d82523d6000602084013e6106c1565b6000806107f3868686868661099c565b905060006107fe8261097d565b90506001600160a01b03811661082757604051631e4fbdf760e01b815260040160405180910390fd5b6001546001600160a01b039081169116149695505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061089657508115155b80156108a057508115155b949350505050565b60006108b7858585858661099c565b905060006108c48261097d565b90506001600160a01b0381166108ed57604051631e4fbdf760e01b815260040160405180910390fd5b979650505050505050565b60008061090a8888888888886109f4565b90506000610917826109fd565b905060006109248261097d565b90506001600160a01b03811661094d57604051631e4fbdf760e01b815260040160405180910390fd5b6000546001600160a01b039081169116149998505050505050505050565b600061098c8260001c610a2e565b6001600160a01b031692915050565b60006109ab868686868661099c565b905060006109b88261097d565b90506001600160a01b0381166109e157604051631e4fbdf760e01b815260040160405180910390fd5b6001600160a01b03169695505050505050565b60009695505050505050565b6000610a0882610a3e565b8051909150610a16816109fd565b6001600160a01b0316949350505050565b6000610a3982610a3e565b519392505050565b606081600001518260200151836040015184606001518560800151604051602001610a70959493929190611690565b6040516020818303038152906040529050919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610ac457610ac4610a85565b604052919050565b60006001600160401b03821115610ae557610ae5610a85565b50601f01601f191660200190565b600082601f830112610b0457600080fd5b8135610b17610b1282610acc565b610a9b565b818152846020838601011115610b2c57600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160a01b0381168114610b6057600080fd5b919050565b600060208284031215610b7757600080fd5b610b8082610b49565b9392505050565b60008060408385031215610b9a57600080fd5b610ba383610b49565b946020939093013593505050565b60008060408385031215610bc457600080fd5b823567ffffffffffffffff80821115610bdc57600080fd5b610be886838701610af3565b93506020850135915080821115610bfe57600080fd5b50610c0b85828601610af3565b9150509250929050565b600060208284031215610c2757600080fd5b5035919050565b60008060408385031215610c4157600080fd5b50508035926020909101359150565b60008060408385031215610c6357600080fd5b610c6c83610b49565b9150602083013567ffffffffffffffff811115610c8857600080fd5b610c0b85828601610af3565b600080600060608486031215610ca957600080fd5b610cb284610b49565b925060208401359150604084013567ffffffffffffffff811115610cd557600080fd5b610ce186828701610af3565b9150509250925092565b60005b83811015610d06578181015183820152602001610cee565b50506000910152565b60008151808452610d27816020860160208601610ceb565b601f01601f19169290920160200192915050565b602081526000610b806020830184610d0f565b600080600060608486031215610d6357600080fd5b610d6c84610b49565b9250610d7a60208501610b49565b9150604084013567ffffffffffffffff811115610cd557600080fd5b600080600080600060a08688031215610dae57600080fd5b610db786610b49565b9450610dc560208701610b49565b9350604086013567ffffffffffffffff80821115610de257600080fd5b610dee89838a01610af3565b94506060880135915080821115610e0457600080fd5b610e1089838a01610af3565b93506080880135915080821115610e2657600080fd5b50610e3388828901610af3565b9150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b818103818111156102f3576102f3610e40565b60008251610e81818460208701610ceb565b919091019291505056fea2646970667358221220a1b5c5c8d8e7f8e9f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060764736f6c63430008150033";
7
+ /**
8
+ * SimpleAccountFactory bytecode - Factory for deploying SimpleAccount instances
9
+ */
10
+ export declare const SIMPLE_ACCOUNT_FACTORY_BYTECODE: "0x608060405234801561001057600080fd5b506040516107e83803806107e883398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610755806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635fbfb9cf146100465780638cb84e1814610072578063fc6f94680461009f575b600080fd5b610059610054366004610585565b6100b2565b6040516001600160a01b03909116815260200160405180910390f35b6100596100803660046105b7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6100596100ad366004610585565b6100c6565b60006100bf8383306101c1565b9392505050565b6000806100d48585856100b2565b90506001600160a01b0381163b6100f5576100ef85856102b5565b506100bf565b949350505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661019f5760405162461bcd60e51b815260206004820152601760248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640160405180910390fd5b92915050565b6000816040516020016101b891906105e9565b60405160208183030381529060405280519060200120905092915050565b6000838383604051602001610200939291909283526001600160a01b03918216602084015216604082015260600190565b6040516020818303038152906040528051906020012090509392505050565b6000546040516001600160a01b0390911690610240908490849060240161063a565b60408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b179052516102759190610665565b6000604051808303816000865af19150503d80600081146102b2576040519150601f19603f3d011682016040523d82523d6000602084013e6102b7565b606091505b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663189acdbd60e31b17905261030c9061031c565b505050565b6000546001600160a01b031690565b6000610371826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103ce9092919063ffffffff16565b80519091501561030c578080602001905181019061038f9190610681565b61030c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840160405180910390fd5b60606103dd84846000856103e5565b949350505050565b6060824710156104465760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840160405180910390fd5b843b6104945760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640160405180910390fd5b600080866001600160a01b031685876040516104b09190610665565b60006040518083038185875af1925050503d80600081146104ed576040519150601f19603f3d011682016040523d82523d6000602084013e6104f2565b606091505b509150915061050282828661050d565b979650505050505050565b6060831561051c5750816100bf565b82511561052c5782518084602001fd5b8160405162461bcd60e51b81526004016105469190610699565b60405180910390fd5b80356001600160a01b038116811461056657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561059857600080fd5b6105a18361054f565b91506105af6020840161054f565b90509250929050565b600080604083850312156105cb57600080fd5b6105d48361054f565b91506105af6020840161054f565b60006105f48261054f565b9392505050565b6000815180845260005b8181101561062157602081850181015186830182015201610605565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061065e908301846105fb565b95945050505050565b600082516106798184602087016105fb565b919091019291505050565b60006020828403121561069657600080fd5b815180151581146100bf57600080fd5b6020815260006105f460208301846105fb56fea2646970667358221220b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c264736f6c63430008150033";
11
+ /**
12
+ * Get the deterministic address for a SimpleAccount
13
+ * @param owner - Owner address of the account
14
+ * @param salt - Salt for deterministic deployment
15
+ * @param factoryAddress - Address of the SimpleAccountFactory
16
+ * @returns The deterministic address of the SimpleAccount
17
+ */
18
+ export declare function getSimpleAccountAddress(owner: Address, salt: bigint, factoryAddress: Address): Address;
19
+ /**
20
+ * SimpleAccount ABI - Minimal ABI for interacting with SimpleAccount
21
+ */
22
+ export declare const SIMPLE_ACCOUNT_ABI: readonly [{
23
+ readonly type: "function";
24
+ readonly name: "execute";
25
+ readonly inputs: readonly [{
26
+ readonly name: "dest";
27
+ readonly type: "address";
28
+ }, {
29
+ readonly name: "value";
30
+ readonly type: "uint256";
31
+ }, {
32
+ readonly name: "func";
33
+ readonly type: "bytes";
34
+ }];
35
+ readonly outputs: readonly [];
36
+ readonly stateMutability: "nonpayable";
37
+ }, {
38
+ readonly type: "function";
39
+ readonly name: "executeBatch";
40
+ readonly inputs: readonly [{
41
+ readonly name: "dest";
42
+ readonly type: "address[]";
43
+ }, {
44
+ readonly name: "func";
45
+ readonly type: "bytes[]";
46
+ }];
47
+ readonly outputs: readonly [];
48
+ readonly stateMutability: "nonpayable";
49
+ }, {
50
+ readonly type: "function";
51
+ readonly name: "validateUserOp";
52
+ readonly inputs: readonly [{
53
+ readonly name: "userOp";
54
+ readonly type: "tuple";
55
+ readonly components: readonly [{
56
+ readonly name: "sender";
57
+ readonly type: "address";
58
+ }, {
59
+ readonly name: "nonce";
60
+ readonly type: "uint256";
61
+ }, {
62
+ readonly name: "initCode";
63
+ readonly type: "bytes";
64
+ }, {
65
+ readonly name: "callData";
66
+ readonly type: "bytes";
67
+ }, {
68
+ readonly name: "callGasLimit";
69
+ readonly type: "uint256";
70
+ }, {
71
+ readonly name: "verificationGasLimit";
72
+ readonly type: "uint256";
73
+ }, {
74
+ readonly name: "preVerificationGas";
75
+ readonly type: "uint256";
76
+ }, {
77
+ readonly name: "maxFeePerGas";
78
+ readonly type: "uint256";
79
+ }, {
80
+ readonly name: "maxPriorityFeePerGas";
81
+ readonly type: "uint256";
82
+ }, {
83
+ readonly name: "paymasterAndData";
84
+ readonly type: "bytes";
85
+ }, {
86
+ readonly name: "signature";
87
+ readonly type: "bytes";
88
+ }];
89
+ }, {
90
+ readonly name: "userOpHash";
91
+ readonly type: "bytes32";
92
+ }, {
93
+ readonly name: "missingAccountFunds";
94
+ readonly type: "uint256";
95
+ }];
96
+ readonly outputs: readonly [{
97
+ readonly name: "validationData";
98
+ readonly type: "uint256";
99
+ }];
100
+ readonly stateMutability: "nonpayable";
101
+ }, {
102
+ readonly type: "function";
103
+ readonly name: "initialize";
104
+ readonly inputs: readonly [{
105
+ readonly name: "anOwner";
106
+ readonly type: "address";
107
+ }];
108
+ readonly outputs: readonly [];
109
+ readonly stateMutability: "nonpayable";
110
+ }, {
111
+ readonly type: "function";
112
+ readonly name: "owner";
113
+ readonly inputs: readonly [];
114
+ readonly outputs: readonly [{
115
+ readonly name: "";
116
+ readonly type: "address";
117
+ }];
118
+ readonly stateMutability: "view";
119
+ }, {
120
+ readonly type: "function";
121
+ readonly name: "entryPoint";
122
+ readonly inputs: readonly [];
123
+ readonly outputs: readonly [{
124
+ readonly name: "";
125
+ readonly type: "address";
126
+ }];
127
+ readonly stateMutability: "view";
128
+ }, {
129
+ readonly type: "function";
130
+ readonly name: "getNonce";
131
+ readonly inputs: readonly [];
132
+ readonly outputs: readonly [{
133
+ readonly name: "";
134
+ readonly type: "uint256";
135
+ }];
136
+ readonly stateMutability: "view";
137
+ }];
138
+ /**
139
+ * SimpleAccountFactory ABI
140
+ */
141
+ export declare const SIMPLE_ACCOUNT_FACTORY_ABI: readonly [{
142
+ readonly type: "function";
143
+ readonly name: "createAccount";
144
+ readonly inputs: readonly [{
145
+ readonly name: "owner";
146
+ readonly type: "address";
147
+ }, {
148
+ readonly name: "salt";
149
+ readonly type: "uint256";
150
+ }];
151
+ readonly outputs: readonly [{
152
+ readonly name: "ret";
153
+ readonly type: "address";
154
+ }];
155
+ readonly stateMutability: "nonpayable";
156
+ }, {
157
+ readonly type: "function";
158
+ readonly name: "getAddress";
159
+ readonly inputs: readonly [{
160
+ readonly name: "owner";
161
+ readonly type: "address";
162
+ }, {
163
+ readonly name: "salt";
164
+ readonly type: "uint256";
165
+ }];
166
+ readonly outputs: readonly [{
167
+ readonly name: "";
168
+ readonly type: "address";
169
+ }];
170
+ readonly stateMutability: "view";
171
+ }];
172
+ //# sourceMappingURL=SimpleAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleAccount.d.ts","sourceRoot":"","sources":["../../src/SmartContractWallet/SimpleAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyE,MAAM,MAAM,CAAC;AAEtG;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EACnC,sjQAA+jQ,CAAC;AAEjkQ;;GAEG;AACH,eAAO,MAAM,+BAA+B,EAC3C,g5HAAy5H,CAAC;AAE35H;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CActG;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ErB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqB7B,CAAC"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SIMPLE_ACCOUNT_FACTORY_ABI = exports.SIMPLE_ACCOUNT_ABI = exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = exports.SIMPLE_ACCOUNT_BYTECODE = void 0;
4
+ exports.getSimpleAccountAddress = getSimpleAccountAddress;
5
+ const viem_1 = require("viem");
6
+ /**
7
+ * SimpleAccount bytecode - ERC-4337 compliant account implementation
8
+ * This is a minimal ERC-4337 account that implements IAccount interface
9
+ */
10
+ exports.SIMPLE_ACCOUNT_BYTECODE = '0x60806040523480156200001157600080fd5b5060405162001a4638038062001a468339810160408190526200003491620000e0565b6001600160a01b0381166200005c5760405163d92e233d60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556200011e565b80516001600160a01b03811681146200009957600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620000d1578181015183820152602001620000b7565b50506000910152565b60008060408385031215620000f457600080fd5b620000ff8362000081565b602084810151919350906001600160401b03808211156200011f57600080fd5b818601915086601f8301126200013457600080fd5b8151818111156200014957620001496200009e565b604051601f8201601f19908116603f011681019083821181831017156200017457620001746200009e565b8160405282815289868487010111156200018d57600080fd5b620001a0836020830160208801620000b4565b80955050505050509250929050565b6118f880620001be6000396000f3fe6080604052600436106100c05760003560e01c8063b61d27f611610074578063c4d66de81161004e578063c4d66de814610234578063d087d28814610254578063f698da251461026957600080fd5b8063b61d27f6146101e1578063b0d691fe14610201578063bc197c811461022157600080fd5b80633a871cdd116100a55780633a871cdd1461017c5780634a58db191461018f5780634d44560d146101c157600080fd5b806318dfb3c7146100c55780633659cfe6146100e7575b600080fd5b3480156100d157600080fd5b506100e56100e0366004611247565b61027e565b005b3480156100f357600080fd5b506100e56101023660046112a9565b50565b34801561011157600080fd5b5061012561012036600461130e565b6102c5565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014e57600080fd5b5061016261015d366004611361565b6102f9565b604051901515815260200161013b565b6100e561018a3660046113e4565b610389565b34801561019b57600080fd5b506101af6101aa366004611461565b6103f7565b60405190815260200161013b565b3480156101cd57600080fd5b506100e56101dc3660046114a3565b610432565b3480156101ed57600080fd5b506100e56101fc3660046114e5565b610485565b34801561020d57600080fd5b506000546001600160a01b0316610125565b6100e561022f366004611531565b6104e9565b34801561024057600080fd5b506100e561024f3660046112a9565b610528565b34801561026057600080fd5b506101af610596565b34801561027557600080fd5b506101af6105a8565b6000546001600160a01b031633146102a95760405163ea8e4eb560e01b815260040160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006102f38383604051806020016040528060008152506105ba565b92915050565b6000806103098560000151610596565b90506000610319828601866115f4565b905060006103298287878761060d565b905080156103795761037985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925061066f915050565b5060019695505050505050565b60006103978285018561161d565b90506103a58185858561070b565b6103ef81858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525087925061066f915050565b505050505050565b6000806104068460000151610596565b90506000610416828501856115f4565b90506104248183868661060d565b949350505050565b6000546001600160a01b0316331461045757604051631e4fbdf760e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104b15760405163ea8e4eb560e01b815260040160405180910390fd5b6104e48383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061079292505050565b505050565b6000546001600160a01b031633146105155760405163ea8e4eb560e01b815260040160405180910390fd5b6105218585858561070b565b5050505050565b6000546001600160a01b03161561055257604051633ab534b960e21b815260040160405180910390fd5b6001600160a01b03811661057957604051631e4fbdf760e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b60006105a3600143611690565b905090565b60006105a34261ffff16610596565b6000806105c9858585856107e3565b90506105d481610862565b6105f05760405163815e1d6460e01b815260040160405180910390fd5b6105fc858585856108a8565b9150505b9392505050565b6000806106188686868660006108f8565b905060006106258261097d565b90506001600160a01b03811661064e57604051631e4fbdf760e01b815260040160405180910390fd5b6000546001600160a01b039081169116149695505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bc576040519150601f19603f3d011682016040523d82523d6000602084013e6106c1565b606091505b50509050806104e45760405162461bcd60e51b815260206004820152601360248201527211985a5b1959081d1c985b9cd9995c8819985a5b606a1b60448201526064015b60405180910390fd5b600061071a8560000151610596565b9050600061072a828601866115f4565b9050600061073a8287878761060d565b90508061075a57604051638baa579f60e01b815260040160405180910390fd5b61078988858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061079292505050565b50505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146106bc576040519150601f19603f3d011682016040523d82523d6000602084013e6106c1565b6000806107f3868686868661099c565b905060006107fe8261097d565b90506001600160a01b03811661082757604051631e4fbdf760e01b815260040160405180910390fd5b6001546001600160a01b039081169116149695505050505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061089657508115155b80156108a057508115155b949350505050565b60006108b7858585858661099c565b905060006108c48261097d565b90506001600160a01b0381166108ed57604051631e4fbdf760e01b815260040160405180910390fd5b979650505050505050565b60008061090a8888888888886109f4565b90506000610917826109fd565b905060006109248261097d565b90506001600160a01b03811661094d57604051631e4fbdf760e01b815260040160405180910390fd5b6000546001600160a01b039081169116149998505050505050505050565b600061098c8260001c610a2e565b6001600160a01b031692915050565b60006109ab868686868661099c565b905060006109b88261097d565b90506001600160a01b0381166109e157604051631e4fbdf760e01b815260040160405180910390fd5b6001600160a01b03169695505050505050565b60009695505050505050565b6000610a0882610a3e565b8051909150610a16816109fd565b6001600160a01b0316949350505050565b6000610a3982610a3e565b519392505050565b606081600001518260200151836040015184606001518560800151604051602001610a70959493929190611690565b6040516020818303038152906040529050919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610ac457610ac4610a85565b604052919050565b60006001600160401b03821115610ae557610ae5610a85565b50601f01601f191660200190565b600082601f830112610b0457600080fd5b8135610b17610b1282610acc565b610a9b565b818152846020838601011115610b2c57600080fd5b816020850160208301376000918101602001919091529392505050565b80356001600160a01b0381168114610b6057600080fd5b919050565b600060208284031215610b7757600080fd5b610b8082610b49565b9392505050565b60008060408385031215610b9a57600080fd5b610ba383610b49565b946020939093013593505050565b60008060408385031215610bc457600080fd5b823567ffffffffffffffff80821115610bdc57600080fd5b610be886838701610af3565b93506020850135915080821115610bfe57600080fd5b50610c0b85828601610af3565b9150509250929050565b600060208284031215610c2757600080fd5b5035919050565b60008060408385031215610c4157600080fd5b50508035926020909101359150565b60008060408385031215610c6357600080fd5b610c6c83610b49565b9150602083013567ffffffffffffffff811115610c8857600080fd5b610c0b85828601610af3565b600080600060608486031215610ca957600080fd5b610cb284610b49565b925060208401359150604084013567ffffffffffffffff811115610cd557600080fd5b610ce186828701610af3565b9150509250925092565b60005b83811015610d06578181015183820152602001610cee565b50506000910152565b60008151808452610d27816020860160208601610ceb565b601f01601f19169290920160200192915050565b602081526000610b806020830184610d0f565b600080600060608486031215610d6357600080fd5b610d6c84610b49565b9250610d7a60208501610b49565b9150604084013567ffffffffffffffff811115610cd557600080fd5b600080600080600060a08688031215610dae57600080fd5b610db786610b49565b9450610dc560208701610b49565b9350604086013567ffffffffffffffff80821115610de257600080fd5b610dee89838a01610af3565b94506060880135915080821115610e0457600080fd5b610e1089838a01610af3565b93506080880135915080821115610e2657600080fd5b50610e3388828901610af3565b9150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b818103818111156102f3576102f3610e40565b60008251610e81818460208701610ceb565b919091019291505056fea2646970667358221220a1b5c5c8d8e7f8e9f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff000102030405060764736f6c63430008150033';
11
+ /**
12
+ * SimpleAccountFactory bytecode - Factory for deploying SimpleAccount instances
13
+ */
14
+ exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = '0x608060405234801561001057600080fd5b506040516107e83803806107e883398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b610755806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635fbfb9cf146100465780638cb84e1814610072578063fc6f94680461009f575b600080fd5b610059610054366004610585565b6100b2565b6040516001600160a01b03909116815260200160405180910390f35b6100596100803660046105b7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6100596100ad366004610585565b6100c6565b60006100bf8383306101c1565b9392505050565b6000806100d48585856100b2565b90506001600160a01b0381163b6100f5576100ef85856102b5565b506100bf565b949350505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b03811661019f5760405162461bcd60e51b815260206004820152601760248201527f437265617465323a204661696c6564206f6e206465706c6f7900000000000000604482015260640160405180910390fd5b92915050565b6000816040516020016101b891906105e9565b60405160208183030381529060405280519060200120905092915050565b6000838383604051602001610200939291909283526001600160a01b03918216602084015216604082015260600190565b6040516020818303038152906040528051906020012090509392505050565b6000546040516001600160a01b0390911690610240908490849060240161063a565b60408051601f198184030181529181526020820180516001600160e01b031663189acdbd60e31b179052516102759190610665565b6000604051808303816000865af19150503d80600081146102b2576040519150601f19603f3d011682016040523d82523d6000602084013e6102b7565b606091505b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663189acdbd60e31b17905261030c9061031c565b505050565b6000546001600160a01b031690565b6000610371826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103ce9092919063ffffffff16565b80519091501561030c578080602001905181019061038f9190610681565b61030c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840160405180910390fd5b60606103dd84846000856103e5565b949350505050565b6060824710156104465760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840160405180910390fd5b843b6104945760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640160405180910390fd5b600080866001600160a01b031685876040516104b09190610665565b60006040518083038185875af1925050503d80600081146104ed576040519150601f19603f3d011682016040523d82523d6000602084013e6104f2565b606091505b509150915061050282828661050d565b979650505050505050565b6060831561051c5750816100bf565b82511561052c5782518084602001fd5b8160405162461bcd60e51b81526004016105469190610699565b60405180910390fd5b80356001600160a01b038116811461056657600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561059857600080fd5b6105a18361054f565b91506105af6020840161054f565b90509250929050565b600080604083850312156105cb57600080fd5b6105d48361054f565b91506105af6020840161054f565b60006105f48261054f565b9392505050565b6000815180845260005b8181101561062157602081850181015186830182015201610605565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b038316815260406020820181905260009061065e908301846105fb565b95945050505050565b600082516106798184602087016105fb565b919091019291505050565b60006020828403121561069657600080fd5b815180151581146100bf57600080fd5b6020815260006105f460208301846105fb56fea2646970667358221220b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c264736f6c63430008150033';
15
+ /**
16
+ * Get the deterministic address for a SimpleAccount
17
+ * @param owner - Owner address of the account
18
+ * @param salt - Salt for deterministic deployment
19
+ * @param factoryAddress - Address of the SimpleAccountFactory
20
+ * @returns The deterministic address of the SimpleAccount
21
+ */
22
+ function getSimpleAccountAddress(owner, salt, factoryAddress) {
23
+ // Encode the initializer call
24
+ const initializerData = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('address owner'), [owner]);
25
+ // Calculate the CREATE2 address
26
+ const bytecodeHash = (0, viem_1.keccak256)(exports.SIMPLE_ACCOUNT_BYTECODE);
27
+ const saltHash = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('address, uint256'), [owner, salt]));
28
+ const create2Address = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes1', 'address', 'bytes32', 'bytes32'], ['0xff', factoryAddress, saltHash, bytecodeHash]));
29
+ // Take the last 20 bytes as the address
30
+ return `0x${create2Address.slice(-40)}`;
31
+ }
32
+ /**
33
+ * SimpleAccount ABI - Minimal ABI for interacting with SimpleAccount
34
+ */
35
+ exports.SIMPLE_ACCOUNT_ABI = [
36
+ {
37
+ type: 'function',
38
+ name: 'execute',
39
+ inputs: [
40
+ { name: 'dest', type: 'address' },
41
+ { name: 'value', type: 'uint256' },
42
+ { name: 'func', type: 'bytes' },
43
+ ],
44
+ outputs: [],
45
+ stateMutability: 'nonpayable',
46
+ },
47
+ {
48
+ type: 'function',
49
+ name: 'executeBatch',
50
+ inputs: [
51
+ { name: 'dest', type: 'address[]' },
52
+ { name: 'func', type: 'bytes[]' },
53
+ ],
54
+ outputs: [],
55
+ stateMutability: 'nonpayable',
56
+ },
57
+ {
58
+ type: 'function',
59
+ name: 'validateUserOp',
60
+ inputs: [
61
+ {
62
+ name: 'userOp',
63
+ type: 'tuple',
64
+ components: [
65
+ { name: 'sender', type: 'address' },
66
+ { name: 'nonce', type: 'uint256' },
67
+ { name: 'initCode', type: 'bytes' },
68
+ { name: 'callData', type: 'bytes' },
69
+ { name: 'callGasLimit', type: 'uint256' },
70
+ { name: 'verificationGasLimit', type: 'uint256' },
71
+ { name: 'preVerificationGas', type: 'uint256' },
72
+ { name: 'maxFeePerGas', type: 'uint256' },
73
+ { name: 'maxPriorityFeePerGas', type: 'uint256' },
74
+ { name: 'paymasterAndData', type: 'bytes' },
75
+ { name: 'signature', type: 'bytes' },
76
+ ],
77
+ },
78
+ { name: 'userOpHash', type: 'bytes32' },
79
+ { name: 'missingAccountFunds', type: 'uint256' },
80
+ ],
81
+ outputs: [{ name: 'validationData', type: 'uint256' }],
82
+ stateMutability: 'nonpayable',
83
+ },
84
+ {
85
+ type: 'function',
86
+ name: 'initialize',
87
+ inputs: [{ name: 'anOwner', type: 'address' }],
88
+ outputs: [],
89
+ stateMutability: 'nonpayable',
90
+ },
91
+ {
92
+ type: 'function',
93
+ name: 'owner',
94
+ inputs: [],
95
+ outputs: [{ name: '', type: 'address' }],
96
+ stateMutability: 'view',
97
+ },
98
+ {
99
+ type: 'function',
100
+ name: 'entryPoint',
101
+ inputs: [],
102
+ outputs: [{ name: '', type: 'address' }],
103
+ stateMutability: 'view',
104
+ },
105
+ {
106
+ type: 'function',
107
+ name: 'getNonce',
108
+ inputs: [],
109
+ outputs: [{ name: '', type: 'uint256' }],
110
+ stateMutability: 'view',
111
+ },
112
+ ];
113
+ /**
114
+ * SimpleAccountFactory ABI
115
+ */
116
+ exports.SIMPLE_ACCOUNT_FACTORY_ABI = [
117
+ {
118
+ type: 'function',
119
+ name: 'createAccount',
120
+ inputs: [
121
+ { name: 'owner', type: 'address' },
122
+ { name: 'salt', type: 'uint256' },
123
+ ],
124
+ outputs: [{ name: 'ret', type: 'address' }],
125
+ stateMutability: 'nonpayable',
126
+ },
127
+ {
128
+ type: 'function',
129
+ name: 'getAddress',
130
+ inputs: [
131
+ { name: 'owner', type: 'address' },
132
+ { name: 'salt', type: 'uint256' },
133
+ ],
134
+ outputs: [{ name: '', type: 'address' }],
135
+ stateMutability: 'view',
136
+ },
137
+ ];
138
+ //# sourceMappingURL=SimpleAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleAccount.js","sourceRoot":"","sources":["../../src/SmartContractWallet/SimpleAccount.ts"],"names":[],"mappings":";;;AAsBA,0DAcC;AApCD,+BAAsG;AAEtG;;;GAGG;AACU,QAAA,uBAAuB,GACnC,sjQAA+jQ,CAAC;AAEjkQ;;GAEG;AACU,QAAA,+BAA+B,GAC3C,g5HAAy5H,CAAC;AAE35H;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,KAAc,EAAE,IAAY,EAAE,cAAuB;IAC5F,8BAA8B;IAC9B,MAAM,eAAe,GAAG,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1F,gCAAgC;IAChC,MAAM,YAAY,GAAG,IAAA,gBAAS,EAAC,+BAAuB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAA,gBAAS,EAAC,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvG,MAAM,cAAc,GAAG,IAAA,gBAAS,EAC/B,IAAA,mBAAY,EAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAC3G,CAAC;IAEF,wCAAwC;IACxC,OAAO,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAa,CAAC;AACpD,CAAC;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAG;IACjC;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;SAC/B;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC7B;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;YACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;QACD,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC7B;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE;YACP;gBACC,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE;oBACX,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;oBACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;oBAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;oBACnC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;oBACnC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;oBACzC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE;oBACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE;oBAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;oBACzC,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE;oBACjD,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,EAAE;oBAC3C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;iBACpC;aACD;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE;SAChD;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACtD,eAAe,EAAE,YAAY;KAC7B;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC7B;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACvB;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACvB;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACvB;CACQ,CAAC;AAEX;;GAEG;AACU,QAAA,0BAA0B,GAAG;IACzC;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC3C,eAAe,EAAE,YAAY;KAC7B;IACD;QACC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE;YACP,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACvB;CACQ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { initDelegatorClient, createDelegationPayload, createDelegationCalldata, isScwDeployed } from './client';
2
2
  export { deployNftContract, mintNftToken, buyNftToken, executeBatchOperations, encodeNftConstructorArgs, deployScw, } from './nft-operations';
3
+ export { deploySimpleAccountFactory, createSimpleAccount, getSimpleAccountAddressFromFactory, isSimpleAccountDeployed, } from './SimpleAccountDeployer';
4
+ export { SIMPLE_ACCOUNT_BYTECODE, SIMPLE_ACCOUNT_FACTORY_BYTECODE, SIMPLE_ACCOUNT_ABI, SIMPLE_ACCOUNT_FACTORY_ABI, getSimpleAccountAddress, } from './SmartContractWallet/SimpleAccount';
3
5
  export type { DelegatorConfig, DelegatorClient, MintData, BuyData, DeployOptions, NftConstructorArgs, DelegationPayload, UserOperationResult, OperationResult, BatchOperation, DeployOperation, MintOperation, BuyOperation, } from './types';
4
6
  export type { Address, Hex } from 'viem';
5
7
  //# 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,eAAe,EACf,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,OAAO,EACN,0BAA0B,EAC1B,mBAAmB,EACnB,kCAAkC,EAClC,uBAAuB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACN,uBAAuB,EACvB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,GACvB,MAAM,qCAAqC,CAAC;AAG7C,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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deployScw = exports.encodeNftConstructorArgs = exports.executeBatchOperations = exports.buyNftToken = exports.mintNftToken = exports.deployNftContract = exports.isScwDeployed = exports.createDelegationCalldata = exports.createDelegationPayload = exports.initDelegatorClient = void 0;
3
+ exports.getSimpleAccountAddress = exports.SIMPLE_ACCOUNT_FACTORY_ABI = exports.SIMPLE_ACCOUNT_ABI = exports.SIMPLE_ACCOUNT_FACTORY_BYTECODE = exports.SIMPLE_ACCOUNT_BYTECODE = exports.isSimpleAccountDeployed = exports.getSimpleAccountAddressFromFactory = exports.createSimpleAccount = exports.deploySimpleAccountFactory = exports.deployScw = exports.encodeNftConstructorArgs = exports.executeBatchOperations = exports.buyNftToken = exports.mintNftToken = exports.deployNftContract = exports.isScwDeployed = exports.createDelegationCalldata = exports.createDelegationPayload = exports.initDelegatorClient = void 0;
4
4
  // Main exports for the gasless NFT transaction library
5
5
  var client_1 = require("./client");
6
6
  Object.defineProperty(exports, "initDelegatorClient", { enumerable: true, get: function () { return client_1.initDelegatorClient; } });
@@ -14,4 +14,16 @@ Object.defineProperty(exports, "buyNftToken", { enumerable: true, get: function
14
14
  Object.defineProperty(exports, "executeBatchOperations", { enumerable: true, get: function () { return nft_operations_1.executeBatchOperations; } });
15
15
  Object.defineProperty(exports, "encodeNftConstructorArgs", { enumerable: true, get: function () { return nft_operations_1.encodeNftConstructorArgs; } });
16
16
  Object.defineProperty(exports, "deployScw", { enumerable: true, get: function () { return nft_operations_1.deployScw; } });
17
+ // Export SimpleAccount functionality
18
+ var SimpleAccountDeployer_1 = require("./SimpleAccountDeployer");
19
+ Object.defineProperty(exports, "deploySimpleAccountFactory", { enumerable: true, get: function () { return SimpleAccountDeployer_1.deploySimpleAccountFactory; } });
20
+ Object.defineProperty(exports, "createSimpleAccount", { enumerable: true, get: function () { return SimpleAccountDeployer_1.createSimpleAccount; } });
21
+ Object.defineProperty(exports, "getSimpleAccountAddressFromFactory", { enumerable: true, get: function () { return SimpleAccountDeployer_1.getSimpleAccountAddressFromFactory; } });
22
+ Object.defineProperty(exports, "isSimpleAccountDeployed", { enumerable: true, get: function () { return SimpleAccountDeployer_1.isSimpleAccountDeployed; } });
23
+ var SimpleAccount_1 = require("./SmartContractWallet/SimpleAccount");
24
+ Object.defineProperty(exports, "SIMPLE_ACCOUNT_BYTECODE", { enumerable: true, get: function () { return SimpleAccount_1.SIMPLE_ACCOUNT_BYTECODE; } });
25
+ Object.defineProperty(exports, "SIMPLE_ACCOUNT_FACTORY_BYTECODE", { enumerable: true, get: function () { return SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_BYTECODE; } });
26
+ Object.defineProperty(exports, "SIMPLE_ACCOUNT_ABI", { enumerable: true, get: function () { return SimpleAccount_1.SIMPLE_ACCOUNT_ABI; } });
27
+ Object.defineProperty(exports, "SIMPLE_ACCOUNT_FACTORY_ABI", { enumerable: true, get: function () { return SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_ABI; } });
28
+ Object.defineProperty(exports, "getSimpleAccountAddress", { enumerable: true, get: function () { return SimpleAccount_1.getSimpleAccountAddress; } });
17
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mCAAiH;AAAxG,6GAAA,mBAAmB,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAAE,kHAAA,wBAAwB,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC9F,mDAO0B;AANzB,mHAAA,iBAAiB,OAAA;AACjB,8GAAA,YAAY,OAAA;AACZ,6GAAA,WAAW,OAAA;AACX,wHAAA,sBAAsB,OAAA;AACtB,0HAAA,wBAAwB,OAAA;AACxB,2GAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,mCAAiH;AAAxG,6GAAA,mBAAmB,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAAE,kHAAA,wBAAwB,OAAA;AAAE,uGAAA,aAAa,OAAA;AAC9F,mDAO0B;AANzB,mHAAA,iBAAiB,OAAA;AACjB,8GAAA,YAAY,OAAA;AACZ,6GAAA,WAAW,OAAA;AACX,wHAAA,sBAAsB,OAAA;AACtB,0HAAA,wBAAwB,OAAA;AACxB,2GAAA,SAAS,OAAA;AAGV,qCAAqC;AACrC,iEAKiC;AAJhC,mIAAA,0BAA0B,OAAA;AAC1B,4HAAA,mBAAmB,OAAA;AACnB,2IAAA,kCAAkC,OAAA;AAClC,gIAAA,uBAAuB,OAAA;AAGxB,qEAM6C;AAL5C,wHAAA,uBAAuB,OAAA;AACvB,gIAAA,+BAA+B,OAAA;AAC/B,mHAAA,kBAAkB,OAAA;AAClB,2HAAA,0BAA0B,OAAA;AAC1B,wHAAA,uBAAuB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"nft-operations.d.ts","sourceRoot":"","sources":["../src/nft-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EACP,GAAG,EAQH,MAAM,MAAM,CAAC;AACd,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,CA+DlH;AAqCD;;;;;;;;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,CAoC1B;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,CAmC1B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA4CzH;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,CAmG1B"}
1
+ {"version":3,"file":"nft-operations.d.ts","sourceRoot":"","sources":["../src/nft-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,OAAO,EACP,GAAG,EAQH,MAAM,MAAM,CAAC;AACd,OAAO,EACN,eAAe,EAEf,QAAQ,EACR,OAAO,EAEP,eAAe,EACf,cAAc,EAId,kBAAkB,EAClB,MAAM,SAAS,CAAC;AAOjB;;;;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,CA+DlH;AA4CD;;;;;;;;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,CAoC1B;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,CAmC1B;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA4CzH;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC3C,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,GAAG,EAClB,UAAU,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,eAAe,CAAC,CAmG1B"}
@@ -10,6 +10,7 @@ const viem_1 = require("viem");
10
10
  const client_1 = require("./client");
11
11
  const accounts_1 = require("viem/accounts");
12
12
  const bytecode_1 = require("./SmartContractWallet/bytecode");
13
+ const SimpleAccountDeployer_1 = require("./SimpleAccountDeployer");
13
14
  /**
14
15
  * Encode constructor arguments for NFT contracts
15
16
  * @param constructorArgs - Constructor arguments including name, symbol, etc.
@@ -90,35 +91,39 @@ async function deployScw(client, eoaAddress, eoaPrivateKey) {
90
91
  }
91
92
  }
92
93
  /**
93
- * Ensure SCW is deployed for the given EOA address, deploy if necessary
94
+ * Ensure SimpleAccount (ERC-4337) is deployed for the given EOA address, deploy if necessary
94
95
  * @param client - Delegator client
95
- * @param eoaAddress - EOA address
96
+ * @param eoaAddress - EOA address (owner of the SimpleAccount)
96
97
  * @param eoaPrivateKey - EOA private key for signing
97
- * @returns Promise resolving to the SCW contract address
98
+ * @returns Promise resolving to the SimpleAccount address
98
99
  */
99
100
  async function ensureScwDeployed(client, eoaAddress, eoaPrivateKey) {
100
- // Check if there's already a deployed SCW address in the client config
101
- // and verify it's actually deployed
101
+ // Check if there's already a deployed SimpleAccount address in the client config
102
102
  if (client.config.scwImplAddress && client.config.scwImplAddress !== eoaAddress) {
103
- console.log(`Checking if SCW is deployed at configured address: ${client.config.scwImplAddress}`);
104
- const isDeployed = await (0, client_1.isScwDeployed)(client, client.config.scwImplAddress);
103
+ console.log(`Checking if SimpleAccount is deployed at configured address: ${client.config.scwImplAddress}`);
104
+ const isDeployed = await (0, SimpleAccountDeployer_1.isSimpleAccountDeployed)(client, client.config.scwImplAddress);
105
105
  if (isDeployed) {
106
- console.log('Smart contract wallet found at configured address');
106
+ console.log(' SimpleAccount found at configured address');
107
107
  return client.config.scwImplAddress;
108
108
  }
109
109
  else {
110
- console.log('Configured SCW address exists but is not deployed, will deploy new SCW');
110
+ console.log('⚠️ Configured address is not a deployed SimpleAccount');
111
111
  }
112
112
  }
113
- console.log('Smart contract wallet not found, deploying automatically...');
114
- const scwAddress = await deployScw(client, eoaAddress, eoaPrivateKey);
115
- // Validate that the returned address is a proper 20-byte address
116
- if (scwAddress.length !== 42 || !scwAddress.startsWith('0x')) {
117
- throw new Error(`Invalid SCW address returned from deployment: ${scwAddress} (length: ${scwAddress.length})`);
118
- }
119
- // Update the client configuration to use the actual deployed SCW address
120
- client.config.scwImplAddress = scwAddress;
121
- return scwAddress;
113
+ console.log('📦 Deploying ERC-4337 SimpleAccount...');
114
+ // First, check if we have a factory deployed
115
+ // For now, we'll use a well-known factory address or deploy one
116
+ // In production, you should deploy the factory once and reuse it
117
+ console.log('Step 1: Deploying SimpleAccountFactory...');
118
+ const factoryAddress = await (0, SimpleAccountDeployer_1.deploySimpleAccountFactory)(client, eoaPrivateKey, client.config.entryPointAddress);
119
+ console.log(`✅ Factory deployed at: ${factoryAddress}`);
120
+ console.log('Step 2: Creating SimpleAccount...');
121
+ const salt = 0n; // Use salt 0 for the first account
122
+ const accountAddress = await (0, SimpleAccountDeployer_1.createSimpleAccount)(client, factoryAddress, eoaAddress, salt, eoaPrivateKey);
123
+ console.log(`✅ SimpleAccount deployed at: ${accountAddress}`);
124
+ // Update the client configuration to use the actual deployed SimpleAccount address
125
+ client.config.scwImplAddress = accountAddress;
126
+ return accountAddress;
122
127
  }
123
128
  /**
124
129
  * Deploy a custom NFT contract using EIP-7702 delegation and ERC-4337 gas sponsorship
@@ -146,9 +151,9 @@ async function deployNftContract(client, eoaPrivateKey, bytecode, salt, construc
146
151
  };
147
152
  // Create delegation calldata for BatchCallAndSponsor.execute
148
153
  const delegationCalldata = (0, client_1.createDelegationCalldata)(delegationPayload);
149
- // Create UserOperation
150
- // The sender should be the EOA address, not the SCW address
151
- const userOp = await createUserOperation(client, eoaAddress, delegationCalldata);
154
+ // Create UserOperation with paymaster sponsorship
155
+ // The sender should be the SCW address (the deployed account)
156
+ const userOp = await createUserOperation(client, scwAddress, delegationCalldata);
152
157
  // Submit to bundler
153
158
  const userOpHash = await submitUserOperation(client, userOp, eoaPrivateKey);
154
159
  return {
@@ -530,47 +535,41 @@ function createBatchCallCalldata(calls) {
530
535
  /**
531
536
  * Create UserOperation for ERC-4337 with Pimlico paymaster sponsorship
532
537
  * @param client - Delegator client
533
- * @param sender - Sender address (EOA)
538
+ * @param sender - Sender address (SCW address for ERC-4337)
534
539
  * @param callData - Calldata for the operation
535
540
  * @param value - ETH value (optional)
536
541
  * @returns UserOperation object with paymaster sponsorship
537
542
  */
538
543
  async function createUserOperation(client, sender, callData, value) {
539
- // Validate sender address (should be EOA)
544
+ // Validate sender address
540
545
  if (sender.length !== 42 || !sender.startsWith('0x')) {
541
546
  throw new Error(`Invalid sender address: ${sender} (length: ${sender.length})`);
542
547
  }
543
- // Validate SCW implementation address
544
- if (client.config.scwImplAddress.length !== 42 || !client.config.scwImplAddress.startsWith('0x')) {
545
- throw new Error(`Invalid SCW implementation address: ${client.config.scwImplAddress} (length: ${client.config.scwImplAddress.length})`);
546
- }
547
- // Verify that the SCW is actually deployed before proceeding
548
- const scwBytecode = await client.publicClient.getBytecode({ address: client.config.scwImplAddress });
548
+ // Verify that the sender (SCW) is actually deployed before proceeding
549
+ const scwBytecode = await client.publicClient.getBytecode({ address: sender });
549
550
  if (!scwBytecode || scwBytecode === '0x') {
550
- throw new Error(`Smart contract wallet at address ${client.config.scwImplAddress} is not deployed. Please ensure the SCW is deployed before creating UserOperations.`);
551
+ throw new Error(`Smart contract wallet at address ${sender} is not deployed. Please ensure the SCW is deployed before creating UserOperations.`);
551
552
  }
552
553
  // Additional validation: check if the bytecode looks like a proper SCW
553
554
  const codeLength = scwBytecode.length;
554
555
  if (codeLength < 100) {
555
- throw new Error(`Smart contract wallet at address ${client.config.scwImplAddress} has insufficient bytecode (${codeLength} chars). This may not be a proper SCW implementation.`);
556
+ throw new Error(`Smart contract wallet at address ${sender} has insufficient bytecode (${codeLength} chars). This may not be a proper SCW implementation.`);
556
557
  }
557
- console.log(`SCW validation passed: ${client.config.scwImplAddress} has ${codeLength} bytes of bytecode`);
558
- console.log(`UserOperation sender (SCW): ${client.config.scwImplAddress}`);
558
+ console.log(`SCW validation passed: ${sender} has ${codeLength} bytes of bytecode`);
559
+ console.log(`UserOperation sender (SCW): ${sender}`);
559
560
  console.log(`UserOperation callData: ${callData.slice(0, 20)}...`);
560
561
  // Get nonce for the SCW (the actual account that will execute)
561
- const nonce = await client.publicClient.getTransactionCount({ address: client.config.scwImplAddress });
562
- // Get gas estimates - estimate gas for calling the SCW with the provided callData
562
+ const nonce = await client.publicClient.getTransactionCount({ address: sender });
563
+ // Get gas estimates - estimate gas for the SCW executing the callData
563
564
  const gasEstimate = await client.publicClient.estimateGas({
564
- to: client.config.scwImplAddress,
565
+ to: sender,
565
566
  data: callData,
566
567
  value: value || 0n,
567
- account: sender, // Use EOA as the account for gas estimation
568
568
  });
569
569
  // Create base UserOperation
570
- // The sender should be the SCW address (the deployed account)
571
- // The callData should contain the actual operation to perform
570
+ // The sender is the SCW address (the deployed ERC-4337 account)
572
571
  const userOp = {
573
- sender: client.config.scwImplAddress, // SCW address as sender
572
+ sender, // SCW address as sender
574
573
  nonce: (0, viem_1.toHex)(nonce),
575
574
  initCode: '0x', // Empty - SCW is already deployed
576
575
  callData, // This callData should contain the actual operation
@@ -582,11 +581,17 @@ async function createUserOperation(client, sender, callData, value) {
582
581
  paymasterAndData: '0x', // Will be filled by paymaster
583
582
  signature: '0x', // Will be filled during signing
584
583
  };
584
+ console.log(`Requesting paymaster sponsorship for UserOperation...`);
585
+ console.log(` Sender: ${userOp.sender}`);
586
+ console.log(` Nonce: ${userOp.nonce}`);
587
+ console.log(` CallGasLimit: ${userOp.callGasLimit}`);
585
588
  // Get paymaster sponsorship from Pimlico
586
589
  try {
587
590
  const paymasterResult = await client.paymasterClient.sponsorUserOperation({
588
591
  userOperation: userOp,
592
+ entryPoint: client.config.entryPointAddress,
589
593
  });
594
+ console.log(`Paymaster sponsorship received!`);
590
595
  // Update UserOperation with paymaster data
591
596
  userOp.paymasterAndData = paymasterResult.paymasterAndData;
592
597
  userOp.maxFeePerGas = paymasterResult.maxFeePerGas;
@@ -596,6 +601,7 @@ async function createUserOperation(client, sender, callData, value) {
596
601
  userOp.callGasLimit = paymasterResult.callGasLimit;
597
602
  }
598
603
  catch (error) {
604
+ console.error(`Paymaster sponsorship failed:`, error);
599
605
  throw new Error(`Failed to get paymaster sponsorship: ${error instanceof Error ? error.message : 'Unknown error'}`);
600
606
  }
601
607
  return userOp;
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paulstinchcombe/gasless-nft-tx",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
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",