@paulstinchcombe/gasless-nft-tx 0.0.18 → 0.0.20
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleAccountDeployer.d.ts","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"SimpleAccountDeployer.d.ts","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAuE,MAAM,MAAM,CAAC;AAEzG,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,CA0CxI;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,CA2ElB;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"}
|
|
@@ -20,11 +20,15 @@ async function deploySimpleAccountFactory(client, deployerPrivateKey, entryPoint
|
|
|
20
20
|
console.log(`EntryPoint: ${entryPoint}`);
|
|
21
21
|
// Create account from private key
|
|
22
22
|
const account = (0, accounts_1.privateKeyToAccount)(deployerPrivateKey);
|
|
23
|
-
//
|
|
24
|
-
const
|
|
23
|
+
// Encode constructor arguments (entryPoint address)
|
|
24
|
+
const constructorArgs = (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)('address'), [entryPoint]);
|
|
25
|
+
// Combine bytecode with constructor arguments
|
|
26
|
+
const deploymentData = (0, viem_1.concat)([SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_BYTECODE, constructorArgs]);
|
|
27
|
+
console.log('Sending factory deployment transaction...');
|
|
28
|
+
// Deploy the factory using sendTransaction
|
|
29
|
+
const deployTx = await client.walletClient.sendTransaction({
|
|
25
30
|
account,
|
|
26
|
-
|
|
27
|
-
args: [entryPoint],
|
|
31
|
+
data: deploymentData,
|
|
28
32
|
gas: 3000000n,
|
|
29
33
|
});
|
|
30
34
|
console.log('Factory deployment transaction:', deployTx);
|
|
@@ -59,6 +63,21 @@ async function createSimpleAccount(client, factoryAddress, owner, salt, deployer
|
|
|
59
63
|
console.log(`Factory: ${factoryAddress}`);
|
|
60
64
|
console.log(`Owner: ${owner}`);
|
|
61
65
|
console.log(`Salt: ${salt}`);
|
|
66
|
+
// First, get the expected address from the factory
|
|
67
|
+
console.log('Getting expected account address from factory...');
|
|
68
|
+
const accountAddress = (await client.publicClient.readContract({
|
|
69
|
+
address: factoryAddress,
|
|
70
|
+
abi: SimpleAccount_1.SIMPLE_ACCOUNT_FACTORY_ABI,
|
|
71
|
+
functionName: 'getAddress',
|
|
72
|
+
args: [owner, salt],
|
|
73
|
+
}));
|
|
74
|
+
console.log(`Expected account address: ${accountAddress}`);
|
|
75
|
+
// Check if already deployed
|
|
76
|
+
const existingCode = await client.publicClient.getBytecode({ address: accountAddress });
|
|
77
|
+
if (existingCode && existingCode !== '0x' && existingCode.length > 10) {
|
|
78
|
+
console.log('SimpleAccount already exists at this address');
|
|
79
|
+
return accountAddress;
|
|
80
|
+
}
|
|
62
81
|
// Create account from private key
|
|
63
82
|
const account = (0, accounts_1.privateKeyToAccount)(deployerPrivateKey);
|
|
64
83
|
// Encode the createAccount call
|
|
@@ -67,6 +86,7 @@ async function createSimpleAccount(client, factoryAddress, owner, salt, deployer
|
|
|
67
86
|
functionName: 'createAccount',
|
|
68
87
|
args: [owner, salt],
|
|
69
88
|
});
|
|
89
|
+
console.log('Sending account creation transaction...');
|
|
70
90
|
// Call the factory to create the account
|
|
71
91
|
const createTx = await client.walletClient.sendTransaction({
|
|
72
92
|
account,
|
|
@@ -82,15 +102,18 @@ async function createSimpleAccount(client, factoryAddress, owner, salt, deployer
|
|
|
82
102
|
if (receipt.status !== 'success') {
|
|
83
103
|
throw new Error('Account creation transaction failed');
|
|
84
104
|
}
|
|
85
|
-
// Calculate the deterministic address
|
|
86
|
-
const accountAddress = (0, SimpleAccount_1.getSimpleAccountAddress)(owner, salt, factoryAddress);
|
|
87
105
|
console.log('SimpleAccount created successfully!');
|
|
88
106
|
console.log('Account Address:', accountAddress);
|
|
89
107
|
// Verify the account was deployed
|
|
90
108
|
const code = await client.publicClient.getBytecode({ address: accountAddress });
|
|
91
|
-
if (!code || code === '0x') {
|
|
92
|
-
|
|
109
|
+
if (!code || code === '0x' || code.length < 10) {
|
|
110
|
+
console.error('Account verification failed:');
|
|
111
|
+
console.error(` Address: ${accountAddress}`);
|
|
112
|
+
console.error(` Code: ${code}`);
|
|
113
|
+
console.error(` Code length: ${code?.length || 0}`);
|
|
114
|
+
throw new Error('Account was not deployed correctly - no bytecode found at expected address');
|
|
93
115
|
}
|
|
116
|
+
console.log(`✅ Account verified with ${code.length} bytes of bytecode`);
|
|
94
117
|
return accountAddress;
|
|
95
118
|
}
|
|
96
119
|
catch (error) {
|
|
@@ -116,7 +139,6 @@ function getSimpleAccountAddressFromFactory(factoryAddress, owner, salt) {
|
|
|
116
139
|
async function isSimpleAccountDeployed(client, accountAddress) {
|
|
117
140
|
try {
|
|
118
141
|
const code = await client.publicClient.getBytecode({ address: accountAddress });
|
|
119
|
-
return false;
|
|
120
142
|
return code !== undefined && code !== '0x' && code.length > 100;
|
|
121
143
|
}
|
|
122
144
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleAccountDeployer.js","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":";;AAiBA,
|
|
1
|
+
{"version":3,"file":"SimpleAccountDeployer.js","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED