@zerodev/sdk 4.0.9 → 4.0.10
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 +125 -3
- package/dist/cjs/index.d.ts +3 -4
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts +2 -2
- package/dist/cjs/kernel-zerodev/abis/ESCDAValidatorAbi.js +2 -2
- package/dist/cjs/kernel-zerodev/abis/ESCDAValidatorAbi.js.map +1 -1
- package/dist/cjs/kernel-zerodev/abis/KernelAccountAbi.d.ts +3 -3
- package/dist/cjs/kernel-zerodev/abis/KernelAccountAbi.js +3 -3
- package/dist/cjs/kernel-zerodev/abis/KernelAccountAbi.js.map +1 -1
- package/dist/cjs/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts +158 -0
- package/dist/cjs/kernel-zerodev/abis/SessionKeyValidatorAbi.js +210 -0
- package/dist/cjs/kernel-zerodev/abis/SessionKeyValidatorAbi.js.map +1 -0
- package/dist/cjs/kernel-zerodev/abis/Test_ERC20Abi.d.ts +237 -39
- package/dist/cjs/kernel-zerodev/abis/Test_ERC20Abi.js.map +1 -1
- package/dist/cjs/kernel-zerodev/account.d.ts +13 -4
- package/dist/cjs/kernel-zerodev/account.js +50 -38
- package/dist/cjs/kernel-zerodev/account.js.map +1 -1
- package/dist/cjs/kernel-zerodev/constants.d.ts +2 -0
- package/dist/cjs/kernel-zerodev/constants.js +3 -1
- package/dist/cjs/kernel-zerodev/constants.js.map +1 -1
- package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -1
- package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js +1 -1
- package/dist/cjs/kernel-zerodev/ethers-provider/account-signer.js.map +1 -1
- package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.d.ts +4 -3
- package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js +12 -1
- package/dist/cjs/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/provider.js +1 -0
- package/dist/cjs/kernel-zerodev/provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/signer/empty-account.d.ts +10 -0
- package/dist/cjs/kernel-zerodev/signer/empty-account.js +43 -0
- package/dist/cjs/kernel-zerodev/signer/empty-account.js.map +1 -0
- package/dist/cjs/kernel-zerodev/utils.d.ts +2 -0
- package/dist/cjs/kernel-zerodev/utils.js +11 -1
- package/dist/cjs/kernel-zerodev/utils.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/base.d.ts +6 -3
- package/dist/cjs/kernel-zerodev/validator/base.js +20 -3
- package/dist/cjs/kernel-zerodev/validator/base.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.d.ts +1 -0
- package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.js +11 -0
- package/dist/cjs/kernel-zerodev/validator/erc165-session-key-validator.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/index.d.ts +2 -1
- package/dist/cjs/kernel-zerodev/validator/index.js +4 -1
- package/dist/cjs/kernel-zerodev/validator/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js +1 -0
- package/dist/cjs/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator/session-key-validator.d.ts +65 -0
- package/dist/cjs/kernel-zerodev/validator/session-key-validator.js +345 -0
- package/dist/cjs/kernel-zerodev/validator/session-key-validator.js.map +1 -0
- package/dist/cjs/kernel-zerodev/validator/types.d.ts +5 -1
- package/dist/cjs/kernel-zerodev/validator/types.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/base.d.ts +5 -4
- package/dist/cjs/kernel-zerodev/validator-provider/base.js +17 -2
- package/dist/cjs/kernel-zerodev/validator-provider/base.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/ecdsa-provider.d.ts +2 -2
- package/dist/cjs/kernel-zerodev/validator-provider/ecdsa-provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts +2 -2
- package/dist/cjs/kernel-zerodev/validator-provider/erc165-session-key-provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/index.d.ts +2 -1
- package/dist/cjs/kernel-zerodev/validator-provider/index.js +4 -1
- package/dist/cjs/kernel-zerodev/validator-provider/index.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/kill-switch-provider.d.ts +2 -2
- package/dist/cjs/kernel-zerodev/validator-provider/kill-switch-provider.js.map +1 -1
- package/dist/cjs/kernel-zerodev/validator-provider/session-key-provider.d.ts +18 -0
- package/dist/cjs/kernel-zerodev/validator-provider/session-key-provider.js +114 -0
- package/dist/cjs/kernel-zerodev/validator-provider/session-key-provider.js.map +1 -0
- package/dist/cjs/kernel-zerodev/validator-provider/types.d.ts +5 -0
- package/dist/cjs/kernel-zerodev/validator-provider/types.js.map +1 -1
- package/dist/esm/index.d.ts +3 -4
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts +2 -2
- package/dist/esm/kernel-zerodev/abis/ESCDAValidatorAbi.js +2 -2
- package/dist/esm/kernel-zerodev/abis/ESCDAValidatorAbi.js.map +1 -1
- package/dist/esm/kernel-zerodev/abis/KernelAccountAbi.d.ts +3 -3
- package/dist/esm/kernel-zerodev/abis/KernelAccountAbi.js +3 -3
- package/dist/esm/kernel-zerodev/abis/KernelAccountAbi.js.map +1 -1
- package/dist/esm/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts +158 -0
- package/dist/esm/kernel-zerodev/abis/SessionKeyValidatorAbi.js +207 -0
- package/dist/esm/kernel-zerodev/abis/SessionKeyValidatorAbi.js.map +1 -0
- package/dist/esm/kernel-zerodev/abis/Test_ERC20Abi.d.ts +237 -39
- package/dist/esm/kernel-zerodev/abis/Test_ERC20Abi.js.map +1 -1
- package/dist/esm/kernel-zerodev/account.d.ts +13 -4
- package/dist/esm/kernel-zerodev/account.js +51 -38
- package/dist/esm/kernel-zerodev/account.js.map +1 -1
- package/dist/esm/kernel-zerodev/constants.d.ts +2 -0
- package/dist/esm/kernel-zerodev/constants.js +2 -0
- package/dist/esm/kernel-zerodev/constants.js.map +1 -1
- package/dist/esm/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -1
- package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js +2 -2
- package/dist/esm/kernel-zerodev/ethers-provider/account-signer.js.map +1 -1
- package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.d.ts +4 -3
- package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js +13 -2
- package/dist/esm/kernel-zerodev/ethers-provider/ethers-provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/provider.js +1 -0
- package/dist/esm/kernel-zerodev/provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/signer/empty-account.d.ts +10 -0
- package/dist/esm/kernel-zerodev/signer/empty-account.js +40 -0
- package/dist/esm/kernel-zerodev/signer/empty-account.js.map +1 -0
- package/dist/esm/kernel-zerodev/utils.d.ts +2 -0
- package/dist/esm/kernel-zerodev/utils.js +8 -0
- package/dist/esm/kernel-zerodev/utils.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/base.d.ts +6 -3
- package/dist/esm/kernel-zerodev/validator/base.js +20 -3
- package/dist/esm/kernel-zerodev/validator/base.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.d.ts +1 -0
- package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.js +13 -2
- package/dist/esm/kernel-zerodev/validator/erc165-session-key-validator.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/index.d.ts +2 -1
- package/dist/esm/kernel-zerodev/validator/index.js +3 -1
- package/dist/esm/kernel-zerodev/validator/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js +2 -1
- package/dist/esm/kernel-zerodev/validator/kill-switch-validator.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator/session-key-validator.d.ts +65 -0
- package/dist/esm/kernel-zerodev/validator/session-key-validator.js +341 -0
- package/dist/esm/kernel-zerodev/validator/session-key-validator.js.map +1 -0
- package/dist/esm/kernel-zerodev/validator/types.d.ts +5 -1
- package/dist/esm/kernel-zerodev/validator/types.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/base.d.ts +5 -4
- package/dist/esm/kernel-zerodev/validator-provider/base.js +17 -2
- package/dist/esm/kernel-zerodev/validator-provider/base.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/ecdsa-provider.d.ts +2 -2
- package/dist/esm/kernel-zerodev/validator-provider/ecdsa-provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts +2 -2
- package/dist/esm/kernel-zerodev/validator-provider/erc165-session-key-provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/index.d.ts +2 -1
- package/dist/esm/kernel-zerodev/validator-provider/index.js +3 -1
- package/dist/esm/kernel-zerodev/validator-provider/index.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/kill-switch-provider.d.ts +2 -2
- package/dist/esm/kernel-zerodev/validator-provider/kill-switch-provider.js.map +1 -1
- package/dist/esm/kernel-zerodev/validator-provider/session-key-provider.d.ts +18 -0
- package/dist/esm/kernel-zerodev/validator-provider/session-key-provider.js +110 -0
- package/dist/esm/kernel-zerodev/validator-provider/session-key-provider.js.map +1 -0
- package/dist/esm/kernel-zerodev/validator-provider/types.d.ts +5 -0
- package/dist/esm/kernel-zerodev/validator-provider/types.js.map +1 -1
- package/dist/types/index.d.ts +3 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/abis/ESCDAValidatorAbi.d.ts +2 -2
- package/dist/types/kernel-zerodev/abis/KernelAccountAbi.d.ts +3 -3
- package/dist/types/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts +159 -0
- package/dist/types/kernel-zerodev/abis/SessionKeyValidatorAbi.d.ts.map +1 -0
- package/dist/types/kernel-zerodev/abis/Test_ERC20Abi.d.ts +237 -39
- package/dist/types/kernel-zerodev/abis/Test_ERC20Abi.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/account.d.ts +13 -4
- package/dist/types/kernel-zerodev/account.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/constants.d.ts +2 -0
- package/dist/types/kernel-zerodev/constants.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts +1 -1
- package/dist/types/kernel-zerodev/ethers-provider/account-signer.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts +4 -3
- package/dist/types/kernel-zerodev/ethers-provider/ethers-provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/signer/empty-account.d.ts +11 -0
- package/dist/types/kernel-zerodev/signer/empty-account.d.ts.map +1 -0
- package/dist/types/kernel-zerodev/utils.d.ts +2 -0
- package/dist/types/kernel-zerodev/utils.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/base.d.ts +6 -3
- package/dist/types/kernel-zerodev/validator/base.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/erc165-session-key-validator.d.ts +1 -0
- package/dist/types/kernel-zerodev/validator/erc165-session-key-validator.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/index.d.ts +2 -1
- package/dist/types/kernel-zerodev/validator/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/kill-switch-validator.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts +66 -0
- package/dist/types/kernel-zerodev/validator/session-key-validator.d.ts.map +1 -0
- package/dist/types/kernel-zerodev/validator/types.d.ts +5 -1
- package/dist/types/kernel-zerodev/validator/types.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/base.d.ts +5 -4
- package/dist/types/kernel-zerodev/validator-provider/base.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/ecdsa-provider.d.ts +2 -2
- package/dist/types/kernel-zerodev/validator-provider/ecdsa-provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts +2 -2
- package/dist/types/kernel-zerodev/validator-provider/erc165-session-key-provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/index.d.ts +2 -1
- package/dist/types/kernel-zerodev/validator-provider/index.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/kill-switch-provider.d.ts +2 -2
- package/dist/types/kernel-zerodev/validator-provider/kill-switch-provider.d.ts.map +1 -1
- package/dist/types/kernel-zerodev/validator-provider/session-key-provider.d.ts +19 -0
- package/dist/types/kernel-zerodev/validator-provider/session-key-provider.d.ts.map +1 -0
- package/dist/types/kernel-zerodev/validator-provider/types.d.ts +5 -0
- package/dist/types/kernel-zerodev/validator-provider/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/index.ts +3 -4
- package/src/kernel-zerodev/abis/ESCDAValidatorAbi.ts +2 -2
- package/src/kernel-zerodev/abis/KernelAccountAbi.ts +3 -3
- package/src/kernel-zerodev/abis/SessionKeyValidatorAbi.ts +206 -0
- package/src/kernel-zerodev/abis/Test_ERC20Abi.ts +1 -1
- package/src/kernel-zerodev/account.ts +58 -50
- package/src/kernel-zerodev/constants.ts +3 -0
- package/src/kernel-zerodev/ethers-provider/account-signer.ts +3 -3
- package/src/kernel-zerodev/ethers-provider/ethers-provider.ts +25 -7
- package/src/kernel-zerodev/provider.ts +4 -2
- package/src/kernel-zerodev/signer/empty-account.ts +27 -0
- package/src/kernel-zerodev/utils.ts +10 -0
- package/src/kernel-zerodev/validator/base.ts +32 -6
- package/src/kernel-zerodev/validator/erc165-session-key-validator.ts +20 -1
- package/src/kernel-zerodev/validator/index.ts +8 -1
- package/src/kernel-zerodev/validator/kill-switch-validator.ts +6 -1
- package/src/kernel-zerodev/validator/session-key-validator.ts +483 -0
- package/src/kernel-zerodev/validator/types.ts +14 -1
- package/src/kernel-zerodev/validator-provider/base.ts +24 -13
- package/src/kernel-zerodev/validator-provider/ecdsa-provider.ts +4 -1
- package/src/kernel-zerodev/validator-provider/erc165-session-key-provider.ts +4 -1
- package/src/kernel-zerodev/validator-provider/index.ts +8 -1
- package/src/kernel-zerodev/validator-provider/kill-switch-provider.ts +4 -1
- package/src/kernel-zerodev/validator-provider/session-key-provider.ts +151 -0
- package/src/kernel-zerodev/validator-provider/types.ts +10 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ValidatorProvider,
|
|
3
|
+
type ExtendedValidatorProviderParams,
|
|
4
|
+
type ValidatorProviderParams,
|
|
5
|
+
} from "./base.js";
|
|
6
|
+
import {
|
|
7
|
+
SessionKeyValidator,
|
|
8
|
+
type SessionKeyParams,
|
|
9
|
+
type SessionKeyValidatorParams,
|
|
10
|
+
} from "../validator/session-key-validator.js";
|
|
11
|
+
import {
|
|
12
|
+
getChain,
|
|
13
|
+
LocalAccountSigner,
|
|
14
|
+
type Hex,
|
|
15
|
+
type SmartAccountSigner,
|
|
16
|
+
} from "@alchemy/aa-core";
|
|
17
|
+
import { getChainId } from "../api/index.js";
|
|
18
|
+
import { polygonMumbai } from "viem/chains";
|
|
19
|
+
import { SESSION_KEY_VALIDATOR_ADDRESS } from "../constants.js";
|
|
20
|
+
import { base64ToBytes, bytesToBase64 } from "../utils.js";
|
|
21
|
+
import type { RequiredProps, WithRequired } from "../types.js";
|
|
22
|
+
import type { KernelBaseValidatorParams } from "../validator/base.js";
|
|
23
|
+
|
|
24
|
+
export type PrefillSessionData = {
|
|
25
|
+
sessionKeyParams: SessionKeyParams &
|
|
26
|
+
WithRequired<SessionKeyParams, "sessionPrivateKey">;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export type SessionKeyProviderParams = PrefillSessionData &
|
|
30
|
+
ValidatorProviderParams<SessionKeyValidatorParams> &
|
|
31
|
+
Partial<SessionKeyValidatorParams> &
|
|
32
|
+
RequiredProps<KernelBaseValidatorParams>;
|
|
33
|
+
|
|
34
|
+
export class SessionKeyProvider extends ValidatorProvider<
|
|
35
|
+
SessionKeyValidator,
|
|
36
|
+
SessionKeyValidatorParams
|
|
37
|
+
> {
|
|
38
|
+
constructor(
|
|
39
|
+
params: ExtendedValidatorProviderParams<SessionKeyValidatorParams>
|
|
40
|
+
) {
|
|
41
|
+
const chain =
|
|
42
|
+
typeof params.opts?.providerConfig?.chain === "number"
|
|
43
|
+
? getChain(params.opts.providerConfig.chain)
|
|
44
|
+
: params.opts?.providerConfig?.chain ?? polygonMumbai;
|
|
45
|
+
const validator = new SessionKeyValidator({
|
|
46
|
+
projectId: params.projectId,
|
|
47
|
+
sessionKey: params.sessionKey,
|
|
48
|
+
sessionKeyData: params.sessionKeyData,
|
|
49
|
+
chain,
|
|
50
|
+
validatorAddress:
|
|
51
|
+
params.opts?.validatorConfig?.validatorAddress ??
|
|
52
|
+
SESSION_KEY_VALIDATOR_ADDRESS,
|
|
53
|
+
...params.opts?.validatorConfig,
|
|
54
|
+
});
|
|
55
|
+
super(
|
|
56
|
+
{
|
|
57
|
+
...params,
|
|
58
|
+
opts: {
|
|
59
|
+
...params.opts,
|
|
60
|
+
providerConfig: { ...params.opts?.providerConfig, chain },
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
validator
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public static async init(
|
|
68
|
+
params: ExtendedValidatorProviderParams<SessionKeyValidatorParams>
|
|
69
|
+
): Promise<SessionKeyProvider> {
|
|
70
|
+
const chainId = await getChainId(params.projectId);
|
|
71
|
+
if (!chainId) {
|
|
72
|
+
throw new Error("ChainId not found");
|
|
73
|
+
}
|
|
74
|
+
const chain = getChain(chainId);
|
|
75
|
+
const instance = new SessionKeyProvider({
|
|
76
|
+
...params,
|
|
77
|
+
opts: {
|
|
78
|
+
...params.opts,
|
|
79
|
+
providerConfig: {
|
|
80
|
+
chain,
|
|
81
|
+
...params.opts?.providerConfig,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
return instance;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public static async fromSessionKeyParams(
|
|
89
|
+
params: SessionKeyProviderParams,
|
|
90
|
+
signer?: SmartAccountSigner
|
|
91
|
+
) {
|
|
92
|
+
let sessionKey = signer;
|
|
93
|
+
|
|
94
|
+
if (!sessionKey) {
|
|
95
|
+
sessionKey = LocalAccountSigner.privateKeyToAccountSigner(
|
|
96
|
+
params.sessionKeyParams.sessionPrivateKey
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
return await SessionKeyProvider.init({
|
|
100
|
+
...params,
|
|
101
|
+
sessionKey,
|
|
102
|
+
sessionKeyData: params.sessionKeyParams.sessionKeyData,
|
|
103
|
+
opts: {
|
|
104
|
+
...params.opts,
|
|
105
|
+
accountConfig: {
|
|
106
|
+
...params.opts?.accountConfig,
|
|
107
|
+
accountAddress: params.sessionKeyParams.accountAddress,
|
|
108
|
+
initCode: params.sessionKeyParams.initCode,
|
|
109
|
+
},
|
|
110
|
+
validatorConfig: {
|
|
111
|
+
...params.opts?.validatorConfig,
|
|
112
|
+
executor: params.sessionKeyParams.executor,
|
|
113
|
+
selector: params.sessionKeyParams.selector,
|
|
114
|
+
enableSignature: params.sessionKeyParams.enableSignature,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async serializeSessionKeyParams(sessionPrivateKey?: Hex): Promise<string> {
|
|
121
|
+
await this.getAccount().approvePlugin();
|
|
122
|
+
let sessionKeyParams = this.getValidator().getSessionData();
|
|
123
|
+
const initCode = await this.getAccount().getInitCode();
|
|
124
|
+
const accountAddress = await this.getAddress();
|
|
125
|
+
if (!initCode) {
|
|
126
|
+
throw Error("initCode not set");
|
|
127
|
+
}
|
|
128
|
+
sessionKeyParams = {
|
|
129
|
+
...sessionKeyParams,
|
|
130
|
+
sessionPrivateKey,
|
|
131
|
+
initCode,
|
|
132
|
+
accountAddress,
|
|
133
|
+
};
|
|
134
|
+
const jsonString = JSON.stringify(sessionKeyParams);
|
|
135
|
+
const uint8Array = new TextEncoder().encode(jsonString);
|
|
136
|
+
const base64String = bytesToBase64(uint8Array);
|
|
137
|
+
return base64String;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
public static deserializeSessionKeyParams(
|
|
141
|
+
sessionKeyParams: string
|
|
142
|
+
): PrefillSessionData["sessionKeyParams"] {
|
|
143
|
+
const uint8Array = base64ToBytes(sessionKeyParams);
|
|
144
|
+
const jsonString = new TextDecoder().decode(uint8Array);
|
|
145
|
+
return JSON.parse(jsonString) as PrefillSessionData["sessionKeyParams"];
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
changeSessionKeyData = this.sendEnableUserOperation;
|
|
149
|
+
|
|
150
|
+
deleteSessionKey = this.sendDisableUserOperation;
|
|
151
|
+
}
|
|
@@ -1,22 +1,30 @@
|
|
|
1
1
|
import type { ECDSAValidatorParams } from "../validator/ecdsa-validator.js";
|
|
2
2
|
import type { ERC165SessionKeyValidatorParams } from "../validator/erc165-session-key-validator.js";
|
|
3
3
|
import type { KillSwitchValidatorParams } from "../validator/kill-switch-validator.js";
|
|
4
|
+
import type { SessionKeyValidatorParams } from "../validator/session-key-validator.js";
|
|
4
5
|
import type { SupportedValidators } from "../validator/types.js";
|
|
5
6
|
import type { ExtendedValidatorProviderParams } from "./base.js";
|
|
6
7
|
import type { ECDSAProvider } from "./ecdsa-provider.js";
|
|
7
8
|
import type { ERC165SessionKeyProvider } from "./erc165-session-key-provider.js";
|
|
8
9
|
import type { KillSwitchProvider } from "./kill-switch-provider.js";
|
|
10
|
+
import type {
|
|
11
|
+
SessionKeyProvider,
|
|
12
|
+
PrefillSessionData,
|
|
13
|
+
SessionKeyProviderParams,
|
|
14
|
+
} from "./session-key-provider.js";
|
|
9
15
|
|
|
10
16
|
export type ValidatorProviderTypeMap = {
|
|
11
17
|
ECDSA: ECDSAProvider;
|
|
12
18
|
KILL_SWITCH: KillSwitchProvider;
|
|
13
19
|
ERC165_SESSION_KEY: ERC165SessionKeyProvider;
|
|
20
|
+
SESSION_KEY: SessionKeyProvider;
|
|
14
21
|
};
|
|
15
22
|
|
|
16
23
|
export type ValidatorProviderParamsMap = {
|
|
17
24
|
ECDSA: ExtendedValidatorProviderParams<ECDSAValidatorParams>;
|
|
18
25
|
KILL_SWITCH: ExtendedValidatorProviderParams<KillSwitchValidatorParams>;
|
|
19
26
|
ERC165_SESSION_KEY: ExtendedValidatorProviderParams<ERC165SessionKeyValidatorParams>;
|
|
27
|
+
SESSION_KEY: ExtendedValidatorProviderParams<SessionKeyValidatorParams>;
|
|
20
28
|
};
|
|
21
29
|
|
|
22
30
|
export type ValidatorProviderMap = {
|
|
@@ -24,3 +32,5 @@ export type ValidatorProviderMap = {
|
|
|
24
32
|
params: ValidatorProviderParamsMap[V]
|
|
25
33
|
) => ValidatorProviderTypeMap[V];
|
|
26
34
|
};
|
|
35
|
+
|
|
36
|
+
export type { PrefillSessionData, SessionKeyProviderParams };
|