@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 +16 -9
- package/dist/SimpleAccountDeployer.d.ts +36 -0
- package/dist/SimpleAccountDeployer.d.ts.map +1 -0
- package/dist/SimpleAccountDeployer.js +125 -0
- package/dist/SimpleAccountDeployer.js.map +1 -0
- package/dist/SmartContractWallet/SimpleAccount.d.ts +172 -0
- package/dist/SmartContractWallet/SimpleAccount.d.ts.map +1 -0
- package/dist/SmartContractWallet/SimpleAccount.js +138 -0
- package/dist/SmartContractWallet/SimpleAccount.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/nft-operations.d.ts.map +1 -1
- package/dist/nft-operations.js +46 -40
- package/dist/nft-operations.js.map +1 -1
- package/package.json +1 -1
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
|
|
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
|
-
- **
|
|
8
|
-
- **
|
|
9
|
-
- **Automatic
|
|
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.
|
|
38
|
-
bundlerUrl: 'https://api.pimlico.io/v2/sepolia/rpc',
|
|
39
|
-
paymasterUrl: 'https://api.pimlico.io/v2/sepolia/rpc',
|
|
40
|
-
scwImplAddress: '
|
|
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',
|
|
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":";;AAiBA,gEAmCC;AAWD,kDA0DC;AASD,gFAEC;AAQD,0DAOC;AAnJD,+BAAwD;AACxD,4CAAoD;AAEpD,uEAK6C;AAE7C;;;;;;GAMG;AACI,KAAK,UAAU,0BAA0B,CAAC,MAAuB,EAAE,kBAAuB,EAAE,UAAmB;IACrH,IAAI,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;QAEzC,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAExD,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC;YACzD,OAAO;YACP,QAAQ,EAAE,+CAA+B;YACzC,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,GAAG,EAAE,QAAQ;SACb,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC;QAEzD,uCAAuC;QACvC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC;YACnE,IAAI,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAEhD,OAAO,cAAc,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IACvH,CAAC;AACF,CAAC;AAED;;;;;;;;GAQG;AACI,KAAK,UAAU,mBAAmB,CACxC,MAAuB,EACvB,cAAuB,EACvB,KAAc,EACd,IAAY,EACZ,kBAAuB;IAEvB,IAAI,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,YAAY,cAAc,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAE7B,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,kBAAkB,CAAC,CAAC;QAExD,gCAAgC;QAChC,MAAM,iBAAiB,GAAG,IAAA,yBAAkB,EAAC;YAC5C,GAAG,EAAE,0CAA0B;YAC/B,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;SACnB,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC;YAC1D,OAAO;YACP,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,iBAAiB;YACvB,GAAG,EAAE,QAAQ;SACb,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;QAEvD,uCAAuC;QACvC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC;YACnE,IAAI,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACxD,CAAC;QAED,sCAAsC;QACtC,MAAM,cAAc,GAAG,IAAA,uCAAuB,EAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAE5E,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;QAEhD,kCAAkC;QAClC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,cAAc,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAChH,CAAC;AACF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kCAAkC,CAAC,cAAuB,EAAE,KAAc,EAAE,IAAY;IACvG,OAAO,IAAA,uCAAuB,EAAC,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,uBAAuB,CAAC,MAAuB,EAAE,cAAuB;IAC7F,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QAChF,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;IACjE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC"}
|
|
@@ -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":"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"}
|
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
|
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,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;
|
|
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"}
|
package/dist/nft-operations.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
104
|
-
const isDeployed = await (0,
|
|
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('
|
|
106
|
+
console.log('✅ SimpleAccount found at configured address');
|
|
107
107
|
return client.config.scwImplAddress;
|
|
108
108
|
}
|
|
109
109
|
else {
|
|
110
|
-
console.log('Configured
|
|
110
|
+
console.log('⚠️ Configured address is not a deployed SimpleAccount');
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
console.log('
|
|
114
|
-
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
|
151
|
-
const userOp = await createUserOperation(client,
|
|
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 (
|
|
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
|
|
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
|
-
//
|
|
544
|
-
|
|
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 ${
|
|
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 ${
|
|
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: ${
|
|
558
|
-
console.log(`UserOperation sender (SCW): ${
|
|
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:
|
|
562
|
-
// Get gas estimates - estimate gas for
|
|
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:
|
|
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
|
|
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
|
|
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