@paulstinchcombe/gasless-nft-tx 0.0.19 → 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,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,
|
|
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"}
|
|
@@ -63,6 +63,21 @@ async function createSimpleAccount(client, factoryAddress, owner, salt, deployer
|
|
|
63
63
|
console.log(`Factory: ${factoryAddress}`);
|
|
64
64
|
console.log(`Owner: ${owner}`);
|
|
65
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
|
+
}
|
|
66
81
|
// Create account from private key
|
|
67
82
|
const account = (0, accounts_1.privateKeyToAccount)(deployerPrivateKey);
|
|
68
83
|
// Encode the createAccount call
|
|
@@ -71,6 +86,7 @@ async function createSimpleAccount(client, factoryAddress, owner, salt, deployer
|
|
|
71
86
|
functionName: 'createAccount',
|
|
72
87
|
args: [owner, salt],
|
|
73
88
|
});
|
|
89
|
+
console.log('Sending account creation transaction...');
|
|
74
90
|
// Call the factory to create the account
|
|
75
91
|
const createTx = await client.walletClient.sendTransaction({
|
|
76
92
|
account,
|
|
@@ -86,15 +102,18 @@ async function createSimpleAccount(client, factoryAddress, owner, salt, deployer
|
|
|
86
102
|
if (receipt.status !== 'success') {
|
|
87
103
|
throw new Error('Account creation transaction failed');
|
|
88
104
|
}
|
|
89
|
-
// Calculate the deterministic address
|
|
90
|
-
const accountAddress = (0, SimpleAccount_1.getSimpleAccountAddress)(owner, salt, factoryAddress);
|
|
91
105
|
console.log('SimpleAccount created successfully!');
|
|
92
106
|
console.log('Account Address:', accountAddress);
|
|
93
107
|
// Verify the account was deployed
|
|
94
108
|
const code = await client.publicClient.getBytecode({ address: accountAddress });
|
|
95
|
-
if (!code || code === '0x') {
|
|
96
|
-
|
|
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');
|
|
97
115
|
}
|
|
116
|
+
console.log(`✅ Account verified with ${code.length} bytes of bytecode`);
|
|
98
117
|
return accountAddress;
|
|
99
118
|
}
|
|
100
119
|
catch (error) {
|
|
@@ -120,7 +139,6 @@ function getSimpleAccountAddressFromFactory(factoryAddress, owner, salt) {
|
|
|
120
139
|
async function isSimpleAccountDeployed(client, accountAddress) {
|
|
121
140
|
try {
|
|
122
141
|
const code = await client.publicClient.getBytecode({ address: accountAddress });
|
|
123
|
-
return false;
|
|
124
142
|
return code !== undefined && code !== '0x' && code.length > 100;
|
|
125
143
|
}
|
|
126
144
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleAccountDeployer.js","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":";;AAiBA,gEA0CC;AAWD,
|
|
1
|
+
{"version":3,"file":"SimpleAccountDeployer.js","sourceRoot":"","sources":["../src/SimpleAccountDeployer.ts"],"names":[],"mappings":";;AAiBA,gEA0CC;AAWD,kDAiFC;AASD,gFAEC;AAQD,0DAOC;AAjLD,+BAAyG;AACzG,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,oDAAoD;QACpD,MAAM,eAAe,GAAG,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAEzF,8CAA8C;QAC9C,MAAM,cAAc,GAAG,IAAA,aAAM,EAAC,CAAC,+CAA+B,EAAE,eAAe,CAAC,CAAC,CAAC;QAElF,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAEzD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC;YAC1D,OAAO;YACP,IAAI,EAAE,cAAc;YACpB,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,mDAAmD;QACnD,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC;YAC9D,OAAO,EAAE,cAAc;YACvB,GAAG,EAAE,0CAA0B;YAC/B,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;SACnB,CAAC,CAAY,CAAC;QAEf,OAAO,CAAC,GAAG,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAC;QAE3D,4BAA4B;QAC5B,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QACxF,IAAI,YAAY,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,cAAc,CAAC;QACvB,CAAC;QAED,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,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAEvD,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,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,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,cAAc,cAAc,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAC/F,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,MAAM,oBAAoB,CAAC,CAAC;QAExE,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"}
|
package/package.json
CHANGED