Skip to content

Commit a16ca24

Browse files
authored
Dummy Signature (etherspot#106)
1 parent 54a63a7 commit a16ca24

File tree

7 files changed

+19
-16
lines changed

7 files changed

+19
-16
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
# Changelog
2+
## [1.6.0] - 2024-03-08
3+
### Bug Fixes
4+
- Passed the dummy signature based on the type of smart wallet account to the paymaster
5+
26
## [1.5.4] - 2024-03-01
37
### New
48
- The `DataUtils` module has been updated to fetch data from REST APIs provided by the new backend

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@etherspot/prime-sdk",
3-
"version": "1.5.4",
3+
"version": "1.6.0",
44
"description": "Etherspot Prime (Account Abstraction) SDK",
55
"keywords": [
66
"ether",

src/sdk/base/BaseAccountAPI.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ export abstract class BaseAccountAPI {
458458
return {
459459
...partialUserOp,
460460
preVerificationGas: this.getPreVerificationGas(partialUserOp),
461-
signature: '0x',
461+
signature: info.dummySignature ?? '0x',
462462
};
463463
}
464464

src/sdk/base/TransactionDetailsForUserOp.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export interface TransactionDetailsForUserOp {
1313
gasLimit?: BigNumberish;
1414
maxFeePerGas?: BigNumberish;
1515
maxPriorityFeePerGas?: BigNumberish;
16+
dummySignature?: string;
1617
}
1718

1819
export interface TransactionGasInfoForUserOp {

src/sdk/base/VerifyingPaymasterAPI.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ export class VerifyingPaymasterAPI extends PaymasterAPI {
2323
private paymasterUrl: string;
2424
private entryPoint: string;
2525
private context: any;
26-
private api_key: string;
27-
private chainId: number;
2826
constructor(paymasterUrl: string, entryPoint: string, context: any) {
2927
super();
3028
this.paymasterUrl = paymasterUrl;
@@ -50,7 +48,7 @@ export class VerifyingPaymasterAPI extends PaymasterAPI {
5048
maxPriorityFeePerGas: userOp.maxPriorityFeePerGas,
5149
// A dummy value here is required in order to calculate a correct preVerificationGas value.
5250
paymasterAndData: DUMMY_PAYMASTER_AND_DATA,
53-
signature: ethers.utils.hexlify(Buffer.alloc(SIG_SIZE, 1)),
51+
signature: userOp.signature ?? '0x',
5452
};
5553
const op = await ethers.utils.resolveProperties(pmOp);
5654
op.preVerificationGas = calcPreVerificationGas(op);

src/sdk/sdk.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,14 @@ export class PrimeSdk {
168168
key?: number
169169
} = {}) {
170170
const { paymasterDetails, gasDetails, callGasLimit, key } = params;
171+
let dummySignature = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
172+
173+
/**
174+
* Dummy signature used only in the case of zeroDev factory contract
175+
*/
176+
if (this.factoryUsed === Factory.ZERO_DEV) {
177+
dummySignature = "0x00000000870fe151d548a1c527c3804866fab30abf28ed17b79d5fc5149f19ca0819fefc3c57f3da4fdf9b10fab3f2f3dca536467ae44943b9dbb8433efe7760ddd72aaa1c"
178+
}
171179

172180
if (this.userOpsBatch.to.length < 1) {
173181
throw new ErrorHandler('cannot sign empty transaction batch', 1);
@@ -182,6 +190,7 @@ export class PrimeSdk {
182190
target: this.userOpsBatch.to,
183191
values: this.userOpsBatch.value,
184192
data: this.userOpsBatch.data,
193+
dummySignature: dummySignature,
185194
...gasDetails,
186195
}
187196

@@ -197,15 +206,6 @@ export class PrimeSdk {
197206
partialtx.callGasLimit = BigNumber.from(callGasLimit).toHexString();
198207
}
199208

200-
partialtx.signature = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
201-
202-
/**
203-
* Dummy signature used only in the case of zeroDev factory contract
204-
*/
205-
if (this.factoryUsed === Factory.ZERO_DEV) {
206-
partialtx.signature = "0x00000000870fe151d548a1c527c3804866fab30abf28ed17b79d5fc5149f19ca0819fefc3c57f3da4fdf9b10fab3f2f3dca536467ae44943b9dbb8433efe7760ddd72aaa1c"
207-
}
208-
209209
const bundlerGasEstimate = await this.bundler.getVerificationGasInfo(partialtx);
210210

211211
// if user has specified the gas prices then use them

0 commit comments

Comments
 (0)