@zerodev/permissions 5.2.1-alpha.9 → 5.2.1
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/_cjs/constants.js +9 -8
- package/_cjs/constants.js.map +1 -1
- package/_cjs/deserializePermissionAccount.js +2 -0
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_cjs/policies/index.js +3 -1
- package/_cjs/policies/index.js.map +1 -1
- package/_cjs/policies/toCallPolicy.js +2 -2
- package/_cjs/policies/toCallPolicy.js.map +1 -1
- package/_cjs/policies/toGasPolicy.js +2 -2
- package/_cjs/policies/toGasPolicy.js.map +1 -1
- package/_cjs/policies/toRateLimitPolicy.js +2 -2
- package/_cjs/policies/toRateLimitPolicy.js.map +1 -1
- package/_cjs/policies/toSignatureCallerPolicy.js +2 -2
- package/_cjs/policies/toSignatureCallerPolicy.js.map +1 -1
- package/_cjs/policies/toSudoPolicy.js +2 -2
- package/_cjs/policies/toSudoPolicy.js.map +1 -1
- package/_cjs/policies/toTimestampPolicy.js +27 -0
- package/_cjs/policies/toTimestampPolicy.js.map +1 -0
- package/_cjs/signers/index.js +3 -1
- package/_cjs/signers/index.js.map +1 -1
- package/_cjs/signers/toEmptyECDSASigner.js +30 -0
- package/_cjs/signers/toEmptyECDSASigner.js.map +1 -0
- package/_cjs/toPermissionValidator.js +3 -10
- package/_cjs/toPermissionValidator.js.map +1 -1
- package/_esm/constants.js +8 -7
- package/_esm/constants.js.map +1 -1
- package/_esm/deserializePermissionAccount.js +3 -1
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_esm/policies/index.js +1 -0
- package/_esm/policies/index.js.map +1 -1
- package/_esm/policies/toCallPolicy.js +2 -2
- package/_esm/policies/toCallPolicy.js.map +1 -1
- package/_esm/policies/toGasPolicy.js +2 -2
- package/_esm/policies/toGasPolicy.js.map +1 -1
- package/_esm/policies/toRateLimitPolicy.js +2 -2
- package/_esm/policies/toRateLimitPolicy.js.map +1 -1
- package/_esm/policies/toSignatureCallerPolicy.js +2 -2
- package/_esm/policies/toSignatureCallerPolicy.js.map +1 -1
- package/_esm/policies/toSudoPolicy.js +2 -2
- package/_esm/policies/toSudoPolicy.js.map +1 -1
- package/_esm/policies/toTimestampPolicy.js +23 -0
- package/_esm/policies/toTimestampPolicy.js.map +1 -0
- package/_esm/signers/index.js +1 -0
- package/_esm/signers/index.js.map +1 -1
- package/_esm/signers/toEmptyECDSASigner.js +27 -0
- package/_esm/signers/toEmptyECDSASigner.js.map +1 -0
- package/_esm/toPermissionValidator.js +5 -12
- package/_esm/toPermissionValidator.js.map +1 -1
- package/_types/constants.d.ts +8 -7
- package/_types/constants.d.ts.map +1 -1
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/policies/index.d.ts +1 -0
- package/_types/policies/index.d.ts.map +1 -1
- package/_types/policies/toCallPolicy.d.ts +1 -2
- package/_types/policies/toCallPolicy.d.ts.map +1 -1
- package/_types/policies/toGasPolicy.d.ts +1 -2
- package/_types/policies/toGasPolicy.d.ts.map +1 -1
- package/_types/policies/toRateLimitPolicy.d.ts +1 -2
- package/_types/policies/toRateLimitPolicy.d.ts.map +1 -1
- package/_types/policies/toSignatureCallerPolicy.d.ts +1 -2
- package/_types/policies/toSignatureCallerPolicy.d.ts.map +1 -1
- package/_types/policies/toSudoPolicy.d.ts +2 -4
- package/_types/policies/toSudoPolicy.d.ts.map +1 -1
- package/_types/policies/toTimestampPolicy.d.ts +7 -0
- package/_types/policies/toTimestampPolicy.d.ts.map +1 -0
- package/_types/signers/index.d.ts +1 -0
- package/_types/signers/index.d.ts.map +1 -1
- package/_types/signers/toEmptyECDSASigner.d.ts +4 -0
- package/_types/signers/toEmptyECDSASigner.d.ts.map +1 -0
- package/_types/toPermissionValidator.d.ts.map +1 -1
- package/_types/types.d.ts +14 -2
- package/_types/types.d.ts.map +1 -1
- package/constants.ts +11 -9
- package/deserializePermissionAccount.ts +4 -1
- package/package.json +4 -4
- package/policies/index.ts +4 -0
- package/policies/toCallPolicy.ts +5 -5
- package/policies/toGasPolicy.ts +3 -5
- package/policies/toRateLimitPolicy.ts +3 -5
- package/policies/toSignatureCallerPolicy.ts +3 -5
- package/policies/toSudoPolicy.ts +4 -7
- package/policies/toTimestampPolicy.ts +37 -0
- package/signers/index.ts +1 -0
- package/signers/toEmptyECDSASigner.ts +34 -0
- package/toPermissionValidator.ts +5 -16
- package/types.ts +10 -6
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { constants } from "@zerodev/sdk"
|
|
2
|
+
import type { TypedData } from "abitype"
|
|
3
|
+
import { type Address, type TypedDataDefinition } from "viem"
|
|
4
|
+
import { toAccount } from "viem/accounts"
|
|
5
|
+
import { ECDSA_SIGNER_CONTRACT } from "../constants.js"
|
|
6
|
+
import type { ModularSigner } from "../types.js"
|
|
7
|
+
|
|
8
|
+
export function toEmptyECDSASigner(address: Address): ModularSigner {
|
|
9
|
+
const account = toAccount({
|
|
10
|
+
address,
|
|
11
|
+
async signMessage() {
|
|
12
|
+
throw new Error("Method not supported")
|
|
13
|
+
},
|
|
14
|
+
async signTransaction(_, __) {
|
|
15
|
+
throw new Error("Method not supported")
|
|
16
|
+
},
|
|
17
|
+
async signTypedData<
|
|
18
|
+
const TTypedData extends TypedData | Record<string, unknown>,
|
|
19
|
+
TPrimaryType extends
|
|
20
|
+
| keyof TTypedData
|
|
21
|
+
| "EIP712Domain" = keyof TTypedData
|
|
22
|
+
>(_typedData: TypedDataDefinition<TTypedData, TPrimaryType>) {
|
|
23
|
+
throw new Error("Method not supported")
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
return {
|
|
27
|
+
account,
|
|
28
|
+
signerContractAddress: ECDSA_SIGNER_CONTRACT,
|
|
29
|
+
getSignerData: () => {
|
|
30
|
+
return address
|
|
31
|
+
},
|
|
32
|
+
getDummySignature: () => constants.DUMMY_ECDSA_SIG
|
|
33
|
+
}
|
|
34
|
+
}
|
package/toPermissionValidator.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
import { KernelV3AccountAbi } from "@zerodev/sdk"
|
|
2
|
-
import {
|
|
3
|
-
getAction,
|
|
4
|
-
getEntryPointVersion,
|
|
5
|
-
getUserOperationHash
|
|
6
|
-
} from "permissionless"
|
|
2
|
+
import { getEntryPointVersion, getUserOperationHash } from "permissionless"
|
|
7
3
|
import type { EntryPoint } from "permissionless/types/entrypoint"
|
|
8
4
|
import {
|
|
9
5
|
type Address,
|
|
@@ -14,11 +10,11 @@ import {
|
|
|
14
10
|
concat,
|
|
15
11
|
encodeAbiParameters,
|
|
16
12
|
keccak256,
|
|
17
|
-
pad,
|
|
18
13
|
slice,
|
|
19
14
|
zeroAddress
|
|
20
15
|
} from "viem"
|
|
21
16
|
import { getChainId, readContract } from "viem/actions"
|
|
17
|
+
import { getAction } from "viem/utils"
|
|
22
18
|
import { PolicyFlags } from "./constants.js"
|
|
23
19
|
import { toPolicyId } from "./policies/index.js"
|
|
24
20
|
import { toSignerId } from "./signers/index.js"
|
|
@@ -136,20 +132,13 @@ export async function toPermissionValidator<
|
|
|
136
132
|
try {
|
|
137
133
|
const permissionConfig = await getAction(
|
|
138
134
|
client,
|
|
139
|
-
readContract
|
|
135
|
+
readContract,
|
|
136
|
+
"readContract"
|
|
140
137
|
)({
|
|
141
138
|
abi: KernelV3AccountAbi,
|
|
142
139
|
address: kernelAccountAddress,
|
|
143
140
|
functionName: "permissionConfig",
|
|
144
|
-
args: [
|
|
145
|
-
concat([
|
|
146
|
-
"0x00",
|
|
147
|
-
pad(getPermissionId(), {
|
|
148
|
-
size: 20,
|
|
149
|
-
dir: "right"
|
|
150
|
-
})
|
|
151
|
-
])
|
|
152
|
-
]
|
|
141
|
+
args: [getPermissionId()]
|
|
153
142
|
})
|
|
154
143
|
return permissionConfig.signer === signer.signerContractAddress
|
|
155
144
|
} catch (error) {
|
package/types.ts
CHANGED
|
@@ -8,7 +8,8 @@ import type {
|
|
|
8
8
|
GasPolicyParams,
|
|
9
9
|
RateLimitPolicyParams,
|
|
10
10
|
SignatureCallerPolicyParams,
|
|
11
|
-
SudoPolicyParams
|
|
11
|
+
SudoPolicyParams,
|
|
12
|
+
TimestampPolicyParams
|
|
12
13
|
} from "./policies/index.js"
|
|
13
14
|
|
|
14
15
|
export type PermissionPlugin<entryPoint extends EntryPoint> = KernelValidator<
|
|
@@ -38,11 +39,14 @@ export type Policy = {
|
|
|
38
39
|
getPolicyInfoInBytes: () => Hex
|
|
39
40
|
// return params directly to serialize/deserialize Policy
|
|
40
41
|
policyParams:
|
|
41
|
-
| CallPolicyParams<Abi | readonly unknown[], string>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
|
45
|
-
|
|
|
42
|
+
| (CallPolicyParams<Abi | readonly unknown[], string> & {
|
|
43
|
+
type: "call"
|
|
44
|
+
})
|
|
45
|
+
| (GasPolicyParams & { type: "gas" })
|
|
46
|
+
| (RateLimitPolicyParams & { type: "rate-limit" })
|
|
47
|
+
| (SignatureCallerPolicyParams & { type: "signature-caller" })
|
|
48
|
+
| (SudoPolicyParams & { type: "sudo" })
|
|
49
|
+
| (TimestampPolicyParams & { type: "timestamp" })
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
export type PermissionPluginParams = {
|