@zerodev/sdk 4.0.2-alpha.23 → 4.0.2-alpha.24
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 +8 -8
- package/dist/cjs/index.d.ts +0 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/provider.d.ts +4 -3
- package/dist/cjs/kernel-zerodev/provider.js +26 -2
- package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/utils.d.ts +3 -1
- package/dist/cjs/kernel-zerodev/utils.js +12 -1
- package/dist/cjs/kernel-zerodev/utils.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/base.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/validator/base.js +2 -1
- package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/provider.d.ts +4 -3
- package/dist/esm/kernel-zerodev/provider.js +26 -3
- package/dist/esm/kernel-zerodev/provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/utils.d.ts +3 -1
- package/dist/esm/kernel-zerodev/utils.js +11 -0
- package/dist/esm/kernel-zerodev/utils.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/base.d.ts +1 -1
- package/dist/esm/kernel-zerodev/validator/base.js +2 -1
- package/dist/esm/kernel-zerodev/validator/base.js.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/provider.d.ts +4 -3
- package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/utils.d.ts +3 -1
- package/dist/types/kernel-zerodev/utils.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/base.d.ts +1 -1
- package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -1
- package/package.json +8 -9
- package/src/index.ts +0 -1
- package/src/kernel-zerodev/__tests__/mocks/mock-signer.ts +13 -3
- package/src/kernel-zerodev/provider.ts +35 -1
- package/src/kernel-zerodev/utils.ts +31 -2
- package/src/kernel-zerodev/validator/base.ts +3 -2
- package/dist/cjs/kernel-zerodev/signer/zd-local-account.d.ts +0 -13
- package/dist/cjs/kernel-zerodev/signer/zd-local-account.js +0 -61
- package/dist/cjs/kernel-zerodev/signer/zd-local-account.js.map +0 -1
- package/dist/esm/kernel-zerodev/signer/zd-local-account.d.ts +0 -13
- package/dist/esm/kernel-zerodev/signer/zd-local-account.js +0 -58
- package/dist/esm/kernel-zerodev/signer/zd-local-account.js.map +0 -1
- package/dist/types/kernel-zerodev/signer/zd-local-account.d.ts +0 -14
- package/dist/types/kernel-zerodev/signer/zd-local-account.d.ts.map +0 -1
- package/src/kernel-zerodev/__tests__/mocks/mock-signer-validator.ts +0 -20
- package/src/kernel-zerodev/signer/zd-local-account.ts +0 -63
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
ENTRYPOINT_ADDRESS,
|
|
24
24
|
} from "../constants.js";
|
|
25
25
|
import type { PaymasterAndBundlerProviders } from "../paymaster/types.js";
|
|
26
|
+
import { polygonMumbai } from "viem/dist/types/chains/index.js";
|
|
26
27
|
|
|
27
28
|
export enum ValidatorMode {
|
|
28
29
|
sudo = "0x00000000",
|
|
@@ -60,7 +61,7 @@ export abstract class KernelBaseValidator {
|
|
|
60
61
|
protected selector?: string;
|
|
61
62
|
protected rpcUrl?: string;
|
|
62
63
|
protected bundlerProvider?: PaymasterAndBundlerProviders;
|
|
63
|
-
protected publicClient?: PublicClient<Transport, Chain
|
|
64
|
+
protected publicClient?: PublicClient<Transport, Chain>;
|
|
64
65
|
|
|
65
66
|
constructor(params: KernelBaseValidatorParams) {
|
|
66
67
|
this.projectId = params.projectId;
|
|
@@ -87,7 +88,7 @@ export abstract class KernelBaseValidator {
|
|
|
87
88
|
: {},
|
|
88
89
|
},
|
|
89
90
|
}),
|
|
90
|
-
chain: this.chain,
|
|
91
|
+
chain: this.chain ?? polygonMumbai,
|
|
91
92
|
});
|
|
92
93
|
}
|
|
93
94
|
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import { type HDAccount, type Hash, type PrivateKeyAccount, type TypedData, type TypedDataDefinition, type Hex } from "viem";
|
|
3
|
-
export declare class ZeroDevLocalAccountSigner<T extends HDAccount | PrivateKeyAccount> implements SmartAccountSigner {
|
|
4
|
-
private owner;
|
|
5
|
-
constructor(owner: T);
|
|
6
|
-
readonly signMessage: (msg: string | Uint8Array) => Promise<`0x${string}`>;
|
|
7
|
-
readonly signTypedData: <TTypedData extends TypedData | {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
}, TPrimaryType extends string = string>(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hash>;
|
|
10
|
-
readonly getAddress: () => Promise<`0x${string}`>;
|
|
11
|
-
static mnemonicToAccountSigner(key: string): ZeroDevLocalAccountSigner<HDAccount>;
|
|
12
|
-
static privateKeyToAccountSigner(key: Hex): ZeroDevLocalAccountSigner<PrivateKeyAccount>;
|
|
13
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ZeroDevLocalAccountSigner = void 0;
|
|
4
|
-
const viem_1 = require("viem");
|
|
5
|
-
const accounts_1 = require("viem/accounts");
|
|
6
|
-
class ZeroDevLocalAccountSigner {
|
|
7
|
-
constructor(owner) {
|
|
8
|
-
Object.defineProperty(this, "owner", {
|
|
9
|
-
enumerable: true,
|
|
10
|
-
configurable: true,
|
|
11
|
-
writable: true,
|
|
12
|
-
value: void 0
|
|
13
|
-
});
|
|
14
|
-
Object.defineProperty(this, "signMessage", {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
configurable: true,
|
|
17
|
-
writable: true,
|
|
18
|
-
value: (msg) => {
|
|
19
|
-
if (typeof msg === "string" && !(0, viem_1.isHex)(msg)) {
|
|
20
|
-
return this.owner.signMessage({
|
|
21
|
-
message: msg,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return this.owner.signMessage({
|
|
26
|
-
message: {
|
|
27
|
-
raw: msg,
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
Object.defineProperty(this, "signTypedData", {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: true,
|
|
36
|
-
writable: true,
|
|
37
|
-
value: async (typedData) => {
|
|
38
|
-
return await this.owner.signTypedData(typedData);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
Object.defineProperty(this, "getAddress", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: async () => {
|
|
46
|
-
return this.owner.address;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
this.owner = owner;
|
|
50
|
-
}
|
|
51
|
-
static mnemonicToAccountSigner(key) {
|
|
52
|
-
const owner = (0, accounts_1.mnemonicToAccount)(key);
|
|
53
|
-
return new ZeroDevLocalAccountSigner(owner);
|
|
54
|
-
}
|
|
55
|
-
static privateKeyToAccountSigner(key) {
|
|
56
|
-
const owner = (0, accounts_1.privateKeyToAccount)(key);
|
|
57
|
-
return new ZeroDevLocalAccountSigner(owner);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.ZeroDevLocalAccountSigner = ZeroDevLocalAccountSigner;
|
|
61
|
-
//# sourceMappingURL=zd-local-account.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zd-local-account.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/signer/zd-local-account.ts"],"names":[],"mappings":";;;AACA,+BAQc;AACd,4CAAuE;AAEvE,MAAa,yBAAyB;IAIpC,YAAY,KAAQ;QADZ;;;;;WAAS;QAKR;;;;mBAAoE,CAC3E,GAAG,EACH,EAAE;gBACF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,IAAA,YAAK,EAAC,GAAG,CAAC,EAAE;oBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBAC5B,OAAO,EAAE,GAAG;qBACb,CAAC,CAAC;iBACJ;qBAAM;oBACL,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBAC5B,OAAO,EAAE;4BACP,GAAG,EAAE,GAAG;yBACT;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;WAAC;QAEO;;;;mBAKY,KAAK,EAAE,SAAS,EAAE,EAAE;gBACvC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;WAAC;QAEO;;;;mBAA2C,KAAK,IAAI,EAAE;gBAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAC5B,CAAC;WAAC;QA9BA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IA+BD,MAAM,CAAC,uBAAuB,CAC5B,GAAW;QAEX,MAAM,KAAK,GAAG,IAAA,4BAAiB,EAAC,GAAG,CAAC,CAAC;QACrC,OAAO,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC9B,GAAQ;QAER,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF;AAlDD,8DAkDC","sourcesContent":["import { type SmartAccountSigner } from \"@alchemy/aa-core\";\nimport {\n isHex,\n type HDAccount,\n type Hash,\n type PrivateKeyAccount,\n type TypedData,\n type TypedDataDefinition,\n type Hex,\n} from \"viem\";\nimport { mnemonicToAccount, privateKeyToAccount } from \"viem/accounts\";\n\nexport class ZeroDevLocalAccountSigner<T extends HDAccount | PrivateKeyAccount>\n implements SmartAccountSigner\n{\n private owner: T;\n constructor(owner: T) {\n this.owner = owner;\n }\n\n readonly signMessage: (msg: string | Uint8Array) => Promise<`0x${string}`> = (\n msg\n ) => {\n if (typeof msg === \"string\" && !isHex(msg)) {\n return this.owner.signMessage({\n message: msg,\n });\n } else {\n return this.owner.signMessage({\n message: {\n raw: msg,\n },\n });\n }\n };\n\n readonly signTypedData: <\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string\n >(\n typedData: TypedDataDefinition<TTypedData, TPrimaryType>\n ) => Promise<Hash> = async (typedData) => {\n return await this.owner.signTypedData(typedData);\n };\n\n readonly getAddress: () => Promise<`0x${string}`> = async () => {\n return this.owner.address;\n };\n\n static mnemonicToAccountSigner(\n key: string\n ): ZeroDevLocalAccountSigner<HDAccount> {\n const owner = mnemonicToAccount(key);\n return new ZeroDevLocalAccountSigner(owner);\n }\n\n static privateKeyToAccountSigner(\n key: Hex\n ): ZeroDevLocalAccountSigner<PrivateKeyAccount> {\n const owner = privateKeyToAccount(key);\n return new ZeroDevLocalAccountSigner(owner);\n }\n}\n"]}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import { type HDAccount, type Hash, type PrivateKeyAccount, type TypedData, type TypedDataDefinition, type Hex } from "viem";
|
|
3
|
-
export declare class ZeroDevLocalAccountSigner<T extends HDAccount | PrivateKeyAccount> implements SmartAccountSigner {
|
|
4
|
-
private owner;
|
|
5
|
-
constructor(owner: T);
|
|
6
|
-
readonly signMessage: (msg: string | Uint8Array) => Promise<`0x${string}`>;
|
|
7
|
-
readonly signTypedData: <TTypedData extends TypedData | {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
}, TPrimaryType extends string = string>(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hash>;
|
|
10
|
-
readonly getAddress: () => Promise<`0x${string}`>;
|
|
11
|
-
static mnemonicToAccountSigner(key: string): ZeroDevLocalAccountSigner<HDAccount>;
|
|
12
|
-
static privateKeyToAccountSigner(key: Hex): ZeroDevLocalAccountSigner<PrivateKeyAccount>;
|
|
13
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import {} from "@alchemy/aa-core";
|
|
2
|
-
import { isHex, } from "viem";
|
|
3
|
-
import { mnemonicToAccount, privateKeyToAccount } from "viem/accounts";
|
|
4
|
-
export class ZeroDevLocalAccountSigner {
|
|
5
|
-
constructor(owner) {
|
|
6
|
-
Object.defineProperty(this, "owner", {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
configurable: true,
|
|
9
|
-
writable: true,
|
|
10
|
-
value: void 0
|
|
11
|
-
});
|
|
12
|
-
Object.defineProperty(this, "signMessage", {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
configurable: true,
|
|
15
|
-
writable: true,
|
|
16
|
-
value: (msg) => {
|
|
17
|
-
if (typeof msg === "string" && !isHex(msg)) {
|
|
18
|
-
return this.owner.signMessage({
|
|
19
|
-
message: msg,
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
return this.owner.signMessage({
|
|
24
|
-
message: {
|
|
25
|
-
raw: msg,
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(this, "signTypedData", {
|
|
32
|
-
enumerable: true,
|
|
33
|
-
configurable: true,
|
|
34
|
-
writable: true,
|
|
35
|
-
value: async (typedData) => {
|
|
36
|
-
return await this.owner.signTypedData(typedData);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(this, "getAddress", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
configurable: true,
|
|
42
|
-
writable: true,
|
|
43
|
-
value: async () => {
|
|
44
|
-
return this.owner.address;
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
this.owner = owner;
|
|
48
|
-
}
|
|
49
|
-
static mnemonicToAccountSigner(key) {
|
|
50
|
-
const owner = mnemonicToAccount(key);
|
|
51
|
-
return new ZeroDevLocalAccountSigner(owner);
|
|
52
|
-
}
|
|
53
|
-
static privateKeyToAccountSigner(key) {
|
|
54
|
-
const owner = privateKeyToAccount(key);
|
|
55
|
-
return new ZeroDevLocalAccountSigner(owner);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=zd-local-account.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zd-local-account.js","sourceRoot":"","sources":["../../../../src/kernel-zerodev/signer/zd-local-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACL,KAAK,GAON,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEvE,MAAM,OAAO,yBAAyB;IAIpC,YAAY,KAAQ;QADZ;;;;;WAAS;QAKR;;;;mBAAoE,CAC3E,GAAG,EACH,EAAE;gBACF,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBAC5B,OAAO,EAAE,GAAG;qBACb,CAAC,CAAC;iBACJ;qBAAM;oBACL,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;wBAC5B,OAAO,EAAE;4BACP,GAAG,EAAE,GAAG;yBACT;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC;WAAC;QAEO;;;;mBAKY,KAAK,EAAE,SAAS,EAAE,EAAE;gBACvC,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;WAAC;QAEO;;;;mBAA2C,KAAK,IAAI,EAAE;gBAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YAC5B,CAAC;WAAC;QA9BA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IA+BD,MAAM,CAAC,uBAAuB,CAC5B,GAAW;QAEX,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,yBAAyB,CAC9B,GAAQ;QAER,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;CACF","sourcesContent":["import { type SmartAccountSigner } from \"@alchemy/aa-core\";\nimport {\n isHex,\n type HDAccount,\n type Hash,\n type PrivateKeyAccount,\n type TypedData,\n type TypedDataDefinition,\n type Hex,\n} from \"viem\";\nimport { mnemonicToAccount, privateKeyToAccount } from \"viem/accounts\";\n\nexport class ZeroDevLocalAccountSigner<T extends HDAccount | PrivateKeyAccount>\n implements SmartAccountSigner\n{\n private owner: T;\n constructor(owner: T) {\n this.owner = owner;\n }\n\n readonly signMessage: (msg: string | Uint8Array) => Promise<`0x${string}`> = (\n msg\n ) => {\n if (typeof msg === \"string\" && !isHex(msg)) {\n return this.owner.signMessage({\n message: msg,\n });\n } else {\n return this.owner.signMessage({\n message: {\n raw: msg,\n },\n });\n }\n };\n\n readonly signTypedData: <\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string\n >(\n typedData: TypedDataDefinition<TTypedData, TPrimaryType>\n ) => Promise<Hash> = async (typedData) => {\n return await this.owner.signTypedData(typedData);\n };\n\n readonly getAddress: () => Promise<`0x${string}`> = async () => {\n return this.owner.address;\n };\n\n static mnemonicToAccountSigner(\n key: string\n ): ZeroDevLocalAccountSigner<HDAccount> {\n const owner = mnemonicToAccount(key);\n return new ZeroDevLocalAccountSigner(owner);\n }\n\n static privateKeyToAccountSigner(\n key: Hex\n ): ZeroDevLocalAccountSigner<PrivateKeyAccount> {\n const owner = privateKeyToAccount(key);\n return new ZeroDevLocalAccountSigner(owner);\n }\n}\n"]}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { type SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import { type HDAccount, type Hash, type PrivateKeyAccount, type TypedData, type TypedDataDefinition, type Hex } from "viem";
|
|
3
|
-
export declare class ZeroDevLocalAccountSigner<T extends HDAccount | PrivateKeyAccount> implements SmartAccountSigner {
|
|
4
|
-
private owner;
|
|
5
|
-
constructor(owner: T);
|
|
6
|
-
readonly signMessage: (msg: string | Uint8Array) => Promise<`0x${string}`>;
|
|
7
|
-
readonly signTypedData: <TTypedData extends TypedData | {
|
|
8
|
-
[key: string]: unknown;
|
|
9
|
-
}, TPrimaryType extends string = string>(typedData: TypedDataDefinition<TTypedData, TPrimaryType>) => Promise<Hash>;
|
|
10
|
-
readonly getAddress: () => Promise<`0x${string}`>;
|
|
11
|
-
static mnemonicToAccountSigner(key: string): ZeroDevLocalAccountSigner<HDAccount>;
|
|
12
|
-
static privateKeyToAccountSigner(key: Hex): ZeroDevLocalAccountSigner<PrivateKeyAccount>;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=zd-local-account.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zd-local-account.d.ts","sourceRoot":"","sources":["../../../../src/kernel-zerodev/signer/zd-local-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,IAAI,EACT,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AAGd,qBAAa,yBAAyB,CAAC,CAAC,SAAS,SAAS,GAAG,iBAAiB,CAC5E,YAAW,kBAAkB;IAE7B,OAAO,CAAC,KAAK,CAAI;gBACL,KAAK,EAAE,CAAC;IAIpB,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAcxE;IAEF,QAAQ,CAAC,aAAa,EAAE,CACtB,UAAU,SAAS,SAAS,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EACzD,YAAY,SAAS,MAAM,GAAG,MAAM,EAEpC,SAAS,EAAE,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,KACrD,OAAO,CAAC,IAAI,CAAC,CAEhB;IAEF,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAE/C;IAEF,MAAM,CAAC,uBAAuB,CAC5B,GAAG,EAAE,MAAM,GACV,yBAAyB,CAAC,SAAS,CAAC;IAKvC,MAAM,CAAC,yBAAyB,CAC9B,GAAG,EAAE,GAAG,GACP,yBAAyB,CAAC,iBAAiB,CAAC;CAIhD"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { Address, Hex, SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
|
|
3
|
-
export class MockSignerValidator implements SmartAccountSigner {
|
|
4
|
-
getAddress(): Promise<Address> {
|
|
5
|
-
return Promise.resolve("0xabcfC3DB1e0f5023F5a4f40c03D149f316E6A5cc");
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
async signMessage(msg: Uint8Array | Hex | string): Promise<Hex> {
|
|
9
|
-
switch (msg) {
|
|
10
|
-
case "0xabcfC3DB1e0f5023F5a4f40c03D149f316E6A5cc":
|
|
11
|
-
return "0x64e29e4786b3740ceffc2c1a932124ee74c29b552957ea3bde8913753d1763af4f03362e387d2badb33932e8fc4f7b3411a0a5ade32a5b708aa48c171632a6211b";
|
|
12
|
-
case "icanbreakthistestcase":
|
|
13
|
-
return "0xabd26de022c2785a7d86c5c388f4adef5d93358b39fbb757463bc9edc78b7b86566cb1ab8c7ff3a52b10d98de6398aacc7b48aec92a3e280065a47b9698209541b";
|
|
14
|
-
case "0xbc7299170f076afcbafe11da04482e72e3beccabcd82de0cd2797500e81b76c4":
|
|
15
|
-
return "0x6c21c7271c8403452c5a812c9ba776b33b12733953f154d36d989d379c92ec632b7a1997ca16203a7ef5fcd639bcaa3d5420b65e0774a8bca7fad6d1437024661c";
|
|
16
|
-
default:
|
|
17
|
-
throw new Error("Invalid message");
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { type SmartAccountSigner } from "@alchemy/aa-core";
|
|
2
|
-
import {
|
|
3
|
-
isHex,
|
|
4
|
-
type HDAccount,
|
|
5
|
-
type Hash,
|
|
6
|
-
type PrivateKeyAccount,
|
|
7
|
-
type TypedData,
|
|
8
|
-
type TypedDataDefinition,
|
|
9
|
-
type Hex,
|
|
10
|
-
} from "viem";
|
|
11
|
-
import { mnemonicToAccount, privateKeyToAccount } from "viem/accounts";
|
|
12
|
-
|
|
13
|
-
export class ZeroDevLocalAccountSigner<T extends HDAccount | PrivateKeyAccount>
|
|
14
|
-
implements SmartAccountSigner
|
|
15
|
-
{
|
|
16
|
-
private owner: T;
|
|
17
|
-
constructor(owner: T) {
|
|
18
|
-
this.owner = owner;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
readonly signMessage: (msg: string | Uint8Array) => Promise<`0x${string}`> = (
|
|
22
|
-
msg
|
|
23
|
-
) => {
|
|
24
|
-
if (typeof msg === "string" && !isHex(msg)) {
|
|
25
|
-
return this.owner.signMessage({
|
|
26
|
-
message: msg,
|
|
27
|
-
});
|
|
28
|
-
} else {
|
|
29
|
-
return this.owner.signMessage({
|
|
30
|
-
message: {
|
|
31
|
-
raw: msg,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
readonly signTypedData: <
|
|
38
|
-
TTypedData extends TypedData | { [key: string]: unknown },
|
|
39
|
-
TPrimaryType extends string = string
|
|
40
|
-
>(
|
|
41
|
-
typedData: TypedDataDefinition<TTypedData, TPrimaryType>
|
|
42
|
-
) => Promise<Hash> = async (typedData) => {
|
|
43
|
-
return await this.owner.signTypedData(typedData);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
readonly getAddress: () => Promise<`0x${string}`> = async () => {
|
|
47
|
-
return this.owner.address;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
static mnemonicToAccountSigner(
|
|
51
|
-
key: string
|
|
52
|
-
): ZeroDevLocalAccountSigner<HDAccount> {
|
|
53
|
-
const owner = mnemonicToAccount(key);
|
|
54
|
-
return new ZeroDevLocalAccountSigner(owner);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
static privateKeyToAccountSigner(
|
|
58
|
-
key: Hex
|
|
59
|
-
): ZeroDevLocalAccountSigner<PrivateKeyAccount> {
|
|
60
|
-
const owner = privateKeyToAccount(key);
|
|
61
|
-
return new ZeroDevLocalAccountSigner(owner);
|
|
62
|
-
}
|
|
63
|
-
}
|