@metamask/keyring-api 21.3.0 → 21.5.0
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/CHANGELOG.md +49 -2
- package/README.md +4 -0
- package/dist/api/account-options.cjs +44 -7
- package/dist/api/account-options.cjs.map +1 -1
- package/dist/api/account-options.d.cts +41 -3
- package/dist/api/account-options.d.cts.map +1 -1
- package/dist/api/account-options.d.mts +41 -3
- package/dist/api/account-options.d.mts.map +1 -1
- package/dist/api/account-options.mjs +43 -6
- package/dist/api/account-options.mjs.map +1 -1
- package/dist/api/account.d.cts +4 -0
- package/dist/api/account.d.cts.map +1 -1
- package/dist/api/account.d.mts +4 -0
- package/dist/api/account.d.mts.map +1 -1
- package/dist/api/keyring.cjs +0 -2
- package/dist/api/keyring.cjs.map +1 -1
- package/dist/api/keyring.d.cts +13 -0
- package/dist/api/keyring.d.cts.map +1 -1
- package/dist/api/keyring.d.mts +13 -0
- package/dist/api/keyring.d.mts.map +1 -1
- package/dist/api/keyring.mjs +0 -2
- package/dist/api/keyring.mjs.map +1 -1
- package/dist/api/v2/create-account/bip44.cjs +27 -1
- package/dist/api/v2/create-account/bip44.cjs.map +1 -1
- package/dist/api/v2/create-account/bip44.d.cts +46 -0
- package/dist/api/v2/create-account/bip44.d.cts.map +1 -1
- package/dist/api/v2/create-account/bip44.d.mts +46 -0
- package/dist/api/v2/create-account/bip44.d.mts.map +1 -1
- package/dist/api/v2/create-account/bip44.mjs +26 -0
- package/dist/api/v2/create-account/bip44.mjs.map +1 -1
- package/dist/api/v2/create-account/custom.cjs +14 -0
- package/dist/api/v2/create-account/custom.cjs.map +1 -0
- package/dist/api/v2/create-account/custom.d.cts +25 -0
- package/dist/api/v2/create-account/custom.d.cts.map +1 -0
- package/dist/api/v2/create-account/custom.d.mts +25 -0
- package/dist/api/v2/create-account/custom.d.mts.map +1 -0
- package/dist/api/v2/create-account/custom.mjs +11 -0
- package/dist/api/v2/create-account/custom.mjs.map +1 -0
- package/dist/api/v2/create-account/index.cjs +55 -0
- package/dist/api/v2/create-account/index.cjs.map +1 -1
- package/dist/api/v2/create-account/index.d.cts +55 -1
- package/dist/api/v2/create-account/index.d.cts.map +1 -1
- package/dist/api/v2/create-account/index.d.mts +55 -1
- package/dist/api/v2/create-account/index.d.mts.map +1 -1
- package/dist/api/v2/create-account/index.mjs +55 -1
- package/dist/api/v2/create-account/index.mjs.map +1 -1
- package/dist/api/v2/index.cjs +1 -0
- package/dist/api/v2/index.cjs.map +1 -1
- package/dist/api/v2/index.d.cts +1 -0
- package/dist/api/v2/index.d.cts.map +1 -1
- package/dist/api/v2/index.d.mts +1 -0
- package/dist/api/v2/index.d.mts.map +1 -1
- package/dist/api/v2/index.mjs +1 -0
- package/dist/api/v2/index.mjs.map +1 -1
- package/dist/api/v2/keyring-capabilities.cjs +17 -3
- package/dist/api/v2/keyring-capabilities.cjs.map +1 -1
- package/dist/api/v2/keyring-capabilities.d.cts +31 -9
- package/dist/api/v2/keyring-capabilities.d.cts.map +1 -1
- package/dist/api/v2/keyring-capabilities.d.mts +31 -9
- package/dist/api/v2/keyring-capabilities.d.mts.map +1 -1
- package/dist/api/v2/keyring-capabilities.mjs +18 -4
- package/dist/api/v2/keyring-capabilities.mjs.map +1 -1
- package/dist/api/v2/wrapper/index.cjs +19 -0
- package/dist/api/v2/wrapper/index.cjs.map +1 -0
- package/dist/api/v2/wrapper/index.d.cts +3 -0
- package/dist/api/v2/wrapper/index.d.cts.map +1 -0
- package/dist/api/v2/wrapper/index.d.mts +3 -0
- package/dist/api/v2/wrapper/index.d.mts.map +1 -0
- package/dist/api/v2/wrapper/index.mjs +3 -0
- package/dist/api/v2/wrapper/index.mjs.map +1 -0
- package/dist/api/v2/wrapper/keyring-account-registry.cjs +135 -0
- package/dist/api/v2/wrapper/keyring-account-registry.cjs.map +1 -0
- package/dist/api/v2/wrapper/keyring-account-registry.d.cts +88 -0
- package/dist/api/v2/wrapper/keyring-account-registry.d.cts.map +1 -0
- package/dist/api/v2/wrapper/keyring-account-registry.d.mts +88 -0
- package/dist/api/v2/wrapper/keyring-account-registry.d.mts.map +1 -0
- package/dist/api/v2/wrapper/keyring-account-registry.mjs +131 -0
- package/dist/api/v2/wrapper/keyring-account-registry.mjs.map +1 -0
- package/dist/api/v2/wrapper/keyring-wrapper.cjs +134 -0
- package/dist/api/v2/wrapper/keyring-wrapper.cjs.map +1 -0
- package/dist/api/v2/wrapper/keyring-wrapper.d.cts +154 -0
- package/dist/api/v2/wrapper/keyring-wrapper.d.cts.map +1 -0
- package/dist/api/v2/wrapper/keyring-wrapper.d.mts +154 -0
- package/dist/api/v2/wrapper/keyring-wrapper.d.mts.map +1 -0
- package/dist/api/v2/wrapper/keyring-wrapper.mjs +130 -0
- package/dist/api/v2/wrapper/keyring-wrapper.mjs.map +1 -0
- package/dist/btc/types.d.cts +16 -0
- package/dist/btc/types.d.cts.map +1 -1
- package/dist/btc/types.d.mts +16 -0
- package/dist/btc/types.d.mts.map +1 -1
- package/dist/eth/index.cjs +2 -0
- package/dist/eth/index.cjs.map +1 -1
- package/dist/eth/index.d.cts +2 -0
- package/dist/eth/index.d.cts.map +1 -1
- package/dist/eth/index.d.mts +2 -0
- package/dist/eth/index.d.mts.map +1 -1
- package/dist/eth/index.mjs +2 -0
- package/dist/eth/index.mjs.map +1 -1
- package/dist/eth/rpc/index.cjs +18 -0
- package/dist/eth/rpc/index.cjs.map +1 -0
- package/dist/eth/rpc/index.d.cts +2 -0
- package/dist/eth/rpc/index.d.cts.map +1 -0
- package/dist/eth/rpc/index.d.mts +2 -0
- package/dist/eth/rpc/index.d.mts.map +1 -0
- package/dist/eth/rpc/index.mjs +2 -0
- package/dist/eth/rpc/index.mjs.map +1 -0
- package/dist/eth/rpc/params.cjs +151 -0
- package/dist/eth/rpc/params.cjs.map +1 -0
- package/dist/eth/rpc/params.d.cts +215 -0
- package/dist/eth/rpc/params.d.cts.map +1 -0
- package/dist/eth/rpc/params.d.mts +215 -0
- package/dist/eth/rpc/params.d.mts.map +1 -0
- package/dist/eth/rpc/params.mjs +148 -0
- package/dist/eth/rpc/params.mjs.map +1 -0
- package/dist/eth/types.cjs +5 -2
- package/dist/eth/types.cjs.map +1 -1
- package/dist/eth/types.d.cts +9 -0
- package/dist/eth/types.d.cts.map +1 -1
- package/dist/eth/types.d.mts +9 -0
- package/dist/eth/types.d.mts.map +1 -1
- package/dist/eth/types.mjs +4 -1
- package/dist/eth/types.mjs.map +1 -1
- package/dist/eth/v2/eth-keyring-wrapper.cjs +165 -0
- package/dist/eth/v2/eth-keyring-wrapper.cjs.map +1 -0
- package/dist/eth/v2/eth-keyring-wrapper.d.cts +54 -0
- package/dist/eth/v2/eth-keyring-wrapper.d.cts.map +1 -0
- package/dist/eth/v2/eth-keyring-wrapper.d.mts +54 -0
- package/dist/eth/v2/eth-keyring-wrapper.d.mts.map +1 -0
- package/dist/eth/v2/eth-keyring-wrapper.mjs +161 -0
- package/dist/eth/v2/eth-keyring-wrapper.mjs.map +1 -0
- package/dist/eth/v2/index.cjs +18 -0
- package/dist/eth/v2/index.cjs.map +1 -0
- package/dist/eth/v2/index.d.cts +2 -0
- package/dist/eth/v2/index.d.cts.map +1 -0
- package/dist/eth/v2/index.d.mts +2 -0
- package/dist/eth/v2/index.d.mts.map +1 -0
- package/dist/eth/v2/index.mjs +2 -0
- package/dist/eth/v2/index.mjs.map +1 -0
- package/dist/events.cjs +0 -2
- package/dist/events.cjs.map +1 -1
- package/dist/events.d.cts +16 -0
- package/dist/events.d.cts.map +1 -1
- package/dist/events.d.mts +16 -0
- package/dist/events.d.mts.map +1 -1
- package/dist/events.mjs +0 -2
- package/dist/events.mjs.map +1 -1
- package/dist/rpc.cjs +27 -12
- package/dist/rpc.cjs.map +1 -1
- package/dist/rpc.d.cts +200 -12
- package/dist/rpc.d.cts.map +1 -1
- package/dist/rpc.d.mts +200 -12
- package/dist/rpc.d.mts.map +1 -1
- package/dist/rpc.mjs +27 -12
- package/dist/rpc.mjs.map +1 -1
- package/dist/sol/types.d.cts +4 -0
- package/dist/sol/types.d.cts.map +1 -1
- package/dist/sol/types.d.mts +4 -0
- package/dist/sol/types.d.mts.map +1 -1
- package/dist/trx/types.d.cts +4 -0
- package/dist/trx/types.d.cts.map +1 -1
- package/dist/trx/types.d.mts +4 -0
- package/dist/trx/types.d.mts.map +1 -1
- package/package.json +9 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.d.cts","sourceRoot":"","sources":["../../../src/eth/rpc/params.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAsBnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;GAMhC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;WAQnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;EAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,+EAIxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,KAAK,CACzC,OAAO,6BAA6B,CACrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sCAAsC,uEAGlD,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;SAAoC,CAAC;AAEhF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAC1C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,gEAG9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,2BAA2B,2EAGtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;WAGzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAC1C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;SAGvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;SAAkC,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,+BAA+B,wDAE1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,OAAO,+BAA+B,CACvC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uCAAuC,iFAElD,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,KAAK,CACnD,OAAO,uCAAuC,CAC/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qCAAqC,6FAGhD,CAAC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Superstruct validation schemas for Ethereum JSON-RPC method parameters.
|
|
3
|
+
*
|
|
4
|
+
* These structs provide runtime validation for the parameters passed to various
|
|
5
|
+
* Ethereum RPC methods. They can be used by keyring implementations to validate
|
|
6
|
+
* incoming requests before processing.
|
|
7
|
+
*/
|
|
8
|
+
import type { Infer } from "@metamask/superstruct";
|
|
9
|
+
/**
|
|
10
|
+
* A struct for validating Ethereum transaction data.
|
|
11
|
+
*
|
|
12
|
+
* This uses `type()` instead of `object()` to allow extra properties,
|
|
13
|
+
* since transaction formats can vary and include additional fields.
|
|
14
|
+
* The actual transaction validation is performed by the transaction library.
|
|
15
|
+
*/
|
|
16
|
+
export declare const EthTransactionDataStruct: import("@metamask/superstruct").Struct<{
|
|
17
|
+
value?: string | number | undefined;
|
|
18
|
+
type?: string | number | undefined;
|
|
19
|
+
data?: string | undefined;
|
|
20
|
+
from?: string | undefined;
|
|
21
|
+
chainId?: string | number | undefined;
|
|
22
|
+
accessList?: {
|
|
23
|
+
address: string;
|
|
24
|
+
storageKeys: string[];
|
|
25
|
+
}[] | undefined;
|
|
26
|
+
nonce?: string | number | undefined;
|
|
27
|
+
to?: string | null | undefined;
|
|
28
|
+
maxFeePerGas?: string | number | undefined;
|
|
29
|
+
maxPriorityFeePerGas?: string | number | undefined;
|
|
30
|
+
gas?: string | number | undefined;
|
|
31
|
+
gasLimit?: string | number | undefined;
|
|
32
|
+
gasPrice?: string | number | undefined;
|
|
33
|
+
}, {
|
|
34
|
+
to: import("@metamask/superstruct").Struct<string | null | undefined, null>;
|
|
35
|
+
from: import("@metamask/superstruct").Struct<string | undefined, null>;
|
|
36
|
+
nonce: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
37
|
+
value: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
38
|
+
data: import("@metamask/superstruct").Struct<string | undefined, null>;
|
|
39
|
+
gas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
40
|
+
gasLimit: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
41
|
+
gasPrice: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
42
|
+
maxFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
43
|
+
maxPriorityFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
44
|
+
accessList: import("@metamask/superstruct").Struct<{
|
|
45
|
+
address: string;
|
|
46
|
+
storageKeys: string[];
|
|
47
|
+
}[] | undefined, import("@metamask/superstruct").Struct<{
|
|
48
|
+
address: string;
|
|
49
|
+
storageKeys: string[];
|
|
50
|
+
}, {
|
|
51
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
52
|
+
storageKeys: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
|
|
53
|
+
}>>;
|
|
54
|
+
type: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
55
|
+
chainId: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
56
|
+
}>;
|
|
57
|
+
export type EthTransactionData = Infer<typeof EthTransactionDataStruct>;
|
|
58
|
+
/**
|
|
59
|
+
* A struct for TypedDataV1 format (legacy typed data).
|
|
60
|
+
* This is an array of { type, name, value } objects.
|
|
61
|
+
*/
|
|
62
|
+
export declare const EthTypedDataV1Struct: import("@metamask/superstruct").Struct<{
|
|
63
|
+
name: string;
|
|
64
|
+
value: unknown;
|
|
65
|
+
type: string;
|
|
66
|
+
}[], import("@metamask/superstruct").Struct<{
|
|
67
|
+
name: string;
|
|
68
|
+
value: unknown;
|
|
69
|
+
type: string;
|
|
70
|
+
}, {
|
|
71
|
+
type: import("@metamask/superstruct").Struct<string, null>;
|
|
72
|
+
name: import("@metamask/superstruct").Struct<string, null>;
|
|
73
|
+
value: import("@metamask/superstruct").Struct<unknown, null>;
|
|
74
|
+
}>>;
|
|
75
|
+
export type EthTypedDataV1 = Infer<typeof EthTypedDataV1Struct>;
|
|
76
|
+
/**
|
|
77
|
+
* A struct for TypedData types definition.
|
|
78
|
+
* Maps type names to arrays of { name, type } definitions.
|
|
79
|
+
*/
|
|
80
|
+
export declare const EthTypedDataTypesStruct: import("@metamask/superstruct").Struct<Record<string, {
|
|
81
|
+
name: string;
|
|
82
|
+
type: string;
|
|
83
|
+
}[]>, null>;
|
|
84
|
+
export type EthTypedDataTypes = Infer<typeof EthTypedDataTypesStruct>;
|
|
85
|
+
/**
|
|
86
|
+
* A struct for TypedMessage format (EIP-712 V3/V4).
|
|
87
|
+
* Contains types, domain, primaryType, and message.
|
|
88
|
+
*/
|
|
89
|
+
export declare const EthTypedMessageStruct: import("@metamask/superstruct").Struct<{
|
|
90
|
+
message: Record<string, any>;
|
|
91
|
+
domain: Record<string, any>;
|
|
92
|
+
types: Record<string, {
|
|
93
|
+
name: string;
|
|
94
|
+
type: string;
|
|
95
|
+
}[]>;
|
|
96
|
+
primaryType: string;
|
|
97
|
+
}, {
|
|
98
|
+
types: import("@metamask/superstruct").Struct<Record<string, {
|
|
99
|
+
name: string;
|
|
100
|
+
type: string;
|
|
101
|
+
}[]>, null>;
|
|
102
|
+
primaryType: import("@metamask/superstruct").Struct<string, null>;
|
|
103
|
+
domain: import("@metamask/superstruct").Struct<Record<string, any>, null>;
|
|
104
|
+
message: import("@metamask/superstruct").Struct<Record<string, any>, null>;
|
|
105
|
+
}>;
|
|
106
|
+
export type EthTypedMessage = Infer<typeof EthTypedMessageStruct>;
|
|
107
|
+
/**
|
|
108
|
+
* A struct for EIP-1024 encrypted data format (x25519-xsalsa20-poly1305).
|
|
109
|
+
*/
|
|
110
|
+
export declare const EthEncryptedDataStruct: import("@metamask/superstruct").Struct<{
|
|
111
|
+
nonce: string;
|
|
112
|
+
version: "x25519-xsalsa20-poly1305";
|
|
113
|
+
ephemPublicKey: string;
|
|
114
|
+
ciphertext: string;
|
|
115
|
+
}, {
|
|
116
|
+
version: import("@metamask/superstruct").Struct<"x25519-xsalsa20-poly1305", "x25519-xsalsa20-poly1305">;
|
|
117
|
+
nonce: import("@metamask/superstruct").Struct<string, null>;
|
|
118
|
+
ephemPublicKey: import("@metamask/superstruct").Struct<string, null>;
|
|
119
|
+
ciphertext: import("@metamask/superstruct").Struct<string, null>;
|
|
120
|
+
}>;
|
|
121
|
+
export type EthEncryptedData = Infer<typeof EthEncryptedDataStruct>;
|
|
122
|
+
/**
|
|
123
|
+
* A struct for EIP-7702 authorization tuple.
|
|
124
|
+
* Format: [chainId, address, nonce]
|
|
125
|
+
*/
|
|
126
|
+
export declare const EthEip7702AuthorizationStruct: import("@metamask/superstruct").Struct<[number, `0x${string}`, number], null>;
|
|
127
|
+
export type EthEip7702Authorization = Infer<typeof EthEip7702AuthorizationStruct>;
|
|
128
|
+
/**
|
|
129
|
+
* A struct for getEncryptionPublicKey options.
|
|
130
|
+
*/
|
|
131
|
+
export declare const EthGetEncryptionPublicKeyOptionsStruct: import("@metamask/superstruct").Struct<Record<string, unknown>, null>;
|
|
132
|
+
/**
|
|
133
|
+
* Parameters for `eth_signTransaction`.
|
|
134
|
+
*/
|
|
135
|
+
export declare const EthSignTransactionParamsStruct: import("@metamask/superstruct").Struct<[{
|
|
136
|
+
value?: string | number | undefined;
|
|
137
|
+
type?: string | number | undefined;
|
|
138
|
+
data?: string | undefined;
|
|
139
|
+
from?: string | undefined;
|
|
140
|
+
chainId?: string | number | undefined;
|
|
141
|
+
accessList?: {
|
|
142
|
+
address: string;
|
|
143
|
+
storageKeys: string[];
|
|
144
|
+
}[] | undefined;
|
|
145
|
+
nonce?: string | number | undefined;
|
|
146
|
+
to?: string | null | undefined;
|
|
147
|
+
maxFeePerGas?: string | number | undefined;
|
|
148
|
+
maxPriorityFeePerGas?: string | number | undefined;
|
|
149
|
+
gas?: string | number | undefined;
|
|
150
|
+
gasLimit?: string | number | undefined;
|
|
151
|
+
gasPrice?: string | number | undefined;
|
|
152
|
+
}], null>;
|
|
153
|
+
export type EthSignTransactionParams = Infer<typeof EthSignTransactionParamsStruct>;
|
|
154
|
+
/**
|
|
155
|
+
* Parameters for `eth_sign`.
|
|
156
|
+
*/
|
|
157
|
+
export declare const EthSignParamsStruct: import("@metamask/superstruct").Struct<[string, string], null>;
|
|
158
|
+
export type EthSignParams = Infer<typeof EthSignParamsStruct>;
|
|
159
|
+
/**
|
|
160
|
+
* Parameters for `personal_sign`.
|
|
161
|
+
*/
|
|
162
|
+
export declare const EthPersonalSignParamsStruct: import("@metamask/superstruct").Struct<[string, string] | [string], null>;
|
|
163
|
+
export type EthPersonalSignParams = Infer<typeof EthPersonalSignParamsStruct>;
|
|
164
|
+
/**
|
|
165
|
+
* Parameters for `eth_signTypedData_v1`.
|
|
166
|
+
*/
|
|
167
|
+
export declare const EthSignTypedDataV1ParamsStruct: import("@metamask/superstruct").Struct<[string, {
|
|
168
|
+
name: string;
|
|
169
|
+
value: unknown;
|
|
170
|
+
type: string;
|
|
171
|
+
}[]], null>;
|
|
172
|
+
export type EthSignTypedDataV1Params = Infer<typeof EthSignTypedDataV1ParamsStruct>;
|
|
173
|
+
/**
|
|
174
|
+
* Parameters for `eth_signTypedData_v3` and `eth_signTypedData_v4`.
|
|
175
|
+
*/
|
|
176
|
+
export declare const EthSignTypedDataParamsStruct: import("@metamask/superstruct").Struct<[string, {
|
|
177
|
+
message: Record<string, any>;
|
|
178
|
+
domain: Record<string, any>;
|
|
179
|
+
types: Record<string, {
|
|
180
|
+
name: string;
|
|
181
|
+
type: string;
|
|
182
|
+
}[]>;
|
|
183
|
+
primaryType: string;
|
|
184
|
+
}], null>;
|
|
185
|
+
export type EthSignTypedDataParams = Infer<typeof EthSignTypedDataParamsStruct>;
|
|
186
|
+
/**
|
|
187
|
+
* Parameters for `eth_decrypt`.
|
|
188
|
+
*/
|
|
189
|
+
export declare const EthDecryptParamsStruct: import("@metamask/superstruct").Struct<[{
|
|
190
|
+
nonce: string;
|
|
191
|
+
version: "x25519-xsalsa20-poly1305";
|
|
192
|
+
ephemPublicKey: string;
|
|
193
|
+
ciphertext: string;
|
|
194
|
+
}], null>;
|
|
195
|
+
export type EthDecryptParams = Infer<typeof EthDecryptParamsStruct>;
|
|
196
|
+
/**
|
|
197
|
+
* Parameters for `eth_getAppKeyAddress`.
|
|
198
|
+
*/
|
|
199
|
+
export declare const EthGetAppKeyAddressParamsStruct: import("@metamask/superstruct").Struct<[string], null>;
|
|
200
|
+
export type EthGetAppKeyAddressParams = Infer<typeof EthGetAppKeyAddressParamsStruct>;
|
|
201
|
+
/**
|
|
202
|
+
* Parameters for `eth_signEip7702Authorization`.
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```ts
|
|
206
|
+
* const params = [[1, '0xContractAddress', 0]];
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
export declare const EthSignEip7702AuthorizationParamsStruct: import("@metamask/superstruct").Struct<[[number, `0x${string}`, number]], null>;
|
|
210
|
+
export type EthSignEip7702AuthorizationParams = Infer<typeof EthSignEip7702AuthorizationParamsStruct>;
|
|
211
|
+
/**
|
|
212
|
+
* Parameters for `eth_getEncryptionPublicKey`.
|
|
213
|
+
*/
|
|
214
|
+
export declare const EthGetEncryptionPublicKeyParamsStruct: import("@metamask/superstruct").Struct<[string, Record<string, unknown> | undefined], null>;
|
|
215
|
+
//# sourceMappingURL=params.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.d.mts","sourceRoot":"","sources":["../../../src/eth/rpc/params.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAsBnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;GAMhC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;WAQnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;EAKjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,6BAA6B,+EAIxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,KAAK,CACzC,OAAO,6BAA6B,CACrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sCAAsC,uEAGlD,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;SAAoC,CAAC;AAEhF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAC1C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,gEAG9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,2BAA2B,2EAGtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,8BAA8B;;;;WAGzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAC1C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;SAGvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;SAAkC,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,+BAA+B,wDAE1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAC3C,OAAO,+BAA+B,CACvC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uCAAuC,iFAElD,CAAC;AAEH,MAAM,MAAM,iCAAiC,GAAG,KAAK,CACnD,OAAO,uCAAuC,CAC/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qCAAqC,6FAGhD,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Superstruct validation schemas for Ethereum JSON-RPC method parameters.
|
|
3
|
+
*
|
|
4
|
+
* These structs provide runtime validation for the parameters passed to various
|
|
5
|
+
* Ethereum RPC methods. They can be used by keyring implementations to validate
|
|
6
|
+
* incoming requests before processing.
|
|
7
|
+
*/
|
|
8
|
+
import { object } from "@metamask/keyring-utils";
|
|
9
|
+
import { any, array, literal, nullable, number, optional, record, string, tuple, type, union, unknown } from "@metamask/superstruct";
|
|
10
|
+
import { EthAddressStrictStruct, EthAddressStruct, EthBytesStruct } from "../types.mjs";
|
|
11
|
+
/**
|
|
12
|
+
* A struct for validating Ethereum transaction data.
|
|
13
|
+
*
|
|
14
|
+
* This uses `type()` instead of `object()` to allow extra properties,
|
|
15
|
+
* since transaction formats can vary and include additional fields.
|
|
16
|
+
* The actual transaction validation is performed by the transaction library.
|
|
17
|
+
*/
|
|
18
|
+
export const EthTransactionDataStruct = type({
|
|
19
|
+
to: optional(nullable(EthAddressStruct)),
|
|
20
|
+
from: optional(EthAddressStruct),
|
|
21
|
+
nonce: optional(union([string(), number()])),
|
|
22
|
+
value: optional(union([string(), number()])),
|
|
23
|
+
data: optional(EthBytesStruct),
|
|
24
|
+
gas: optional(union([string(), number()])),
|
|
25
|
+
gasLimit: optional(union([string(), number()])),
|
|
26
|
+
gasPrice: optional(union([string(), number()])),
|
|
27
|
+
maxFeePerGas: optional(union([string(), number()])),
|
|
28
|
+
maxPriorityFeePerGas: optional(union([string(), number()])),
|
|
29
|
+
accessList: optional(array(type({
|
|
30
|
+
address: EthAddressStruct,
|
|
31
|
+
storageKeys: array(string()),
|
|
32
|
+
}))),
|
|
33
|
+
type: optional(union([string(), number()])),
|
|
34
|
+
chainId: optional(union([string(), number()])),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* A struct for TypedDataV1 format (legacy typed data).
|
|
38
|
+
* This is an array of { type, name, value } objects.
|
|
39
|
+
*/
|
|
40
|
+
export const EthTypedDataV1Struct = array(object({
|
|
41
|
+
type: string(),
|
|
42
|
+
name: string(),
|
|
43
|
+
value: unknown(),
|
|
44
|
+
}));
|
|
45
|
+
/**
|
|
46
|
+
* A struct for TypedData types definition.
|
|
47
|
+
* Maps type names to arrays of { name, type } definitions.
|
|
48
|
+
*/
|
|
49
|
+
export const EthTypedDataTypesStruct = record(string(), array(object({
|
|
50
|
+
name: string(),
|
|
51
|
+
type: string(),
|
|
52
|
+
})));
|
|
53
|
+
/**
|
|
54
|
+
* A struct for TypedMessage format (EIP-712 V3/V4).
|
|
55
|
+
* Contains types, domain, primaryType, and message.
|
|
56
|
+
*/
|
|
57
|
+
export const EthTypedMessageStruct = object({
|
|
58
|
+
types: EthTypedDataTypesStruct,
|
|
59
|
+
primaryType: string(),
|
|
60
|
+
domain: record(string(), any()),
|
|
61
|
+
message: record(string(), any()),
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* A struct for EIP-1024 encrypted data format (x25519-xsalsa20-poly1305).
|
|
65
|
+
*/
|
|
66
|
+
export const EthEncryptedDataStruct = object({
|
|
67
|
+
version: literal('x25519-xsalsa20-poly1305'),
|
|
68
|
+
nonce: string(),
|
|
69
|
+
ephemPublicKey: string(),
|
|
70
|
+
ciphertext: string(),
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* A struct for EIP-7702 authorization tuple.
|
|
74
|
+
* Format: [chainId, address, nonce]
|
|
75
|
+
*/
|
|
76
|
+
export const EthEip7702AuthorizationStruct = tuple([
|
|
77
|
+
number(), // chainId
|
|
78
|
+
EthAddressStrictStruct, // address (contract to delegate to)
|
|
79
|
+
number(), // nonce
|
|
80
|
+
]);
|
|
81
|
+
/**
|
|
82
|
+
* A struct for getEncryptionPublicKey options.
|
|
83
|
+
*/
|
|
84
|
+
export const EthGetEncryptionPublicKeyOptionsStruct = record(string(), unknown());
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// RPC Method Parameter Structs
|
|
87
|
+
// ============================================================================
|
|
88
|
+
/**
|
|
89
|
+
* Parameters for `eth_signTransaction`.
|
|
90
|
+
*/
|
|
91
|
+
export const EthSignTransactionParamsStruct = tuple([EthTransactionDataStruct]);
|
|
92
|
+
/**
|
|
93
|
+
* Parameters for `eth_sign`.
|
|
94
|
+
*/
|
|
95
|
+
export const EthSignParamsStruct = tuple([
|
|
96
|
+
EthAddressStruct, // address
|
|
97
|
+
EthBytesStruct, // data (hex-encoded message hash)
|
|
98
|
+
]);
|
|
99
|
+
/**
|
|
100
|
+
* Parameters for `personal_sign`.
|
|
101
|
+
*/
|
|
102
|
+
export const EthPersonalSignParamsStruct = union([
|
|
103
|
+
tuple([EthBytesStruct]), // [data]
|
|
104
|
+
tuple([EthBytesStruct, EthAddressStruct]), // [data, address]
|
|
105
|
+
]);
|
|
106
|
+
/**
|
|
107
|
+
* Parameters for `eth_signTypedData_v1`.
|
|
108
|
+
*/
|
|
109
|
+
export const EthSignTypedDataV1ParamsStruct = tuple([
|
|
110
|
+
EthAddressStruct, // address
|
|
111
|
+
EthTypedDataV1Struct, // typed data array
|
|
112
|
+
]);
|
|
113
|
+
/**
|
|
114
|
+
* Parameters for `eth_signTypedData_v3` and `eth_signTypedData_v4`.
|
|
115
|
+
*/
|
|
116
|
+
export const EthSignTypedDataParamsStruct = tuple([
|
|
117
|
+
EthAddressStruct, // address
|
|
118
|
+
EthTypedMessageStruct, // typed data object
|
|
119
|
+
]);
|
|
120
|
+
/**
|
|
121
|
+
* Parameters for `eth_decrypt`.
|
|
122
|
+
*/
|
|
123
|
+
export const EthDecryptParamsStruct = tuple([EthEncryptedDataStruct]);
|
|
124
|
+
/**
|
|
125
|
+
* Parameters for `eth_getAppKeyAddress`.
|
|
126
|
+
*/
|
|
127
|
+
export const EthGetAppKeyAddressParamsStruct = tuple([
|
|
128
|
+
string(), // origin URL
|
|
129
|
+
]);
|
|
130
|
+
/**
|
|
131
|
+
* Parameters for `eth_signEip7702Authorization`.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```ts
|
|
135
|
+
* const params = [[1, '0xContractAddress', 0]];
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export const EthSignEip7702AuthorizationParamsStruct = tuple([
|
|
139
|
+
EthEip7702AuthorizationStruct,
|
|
140
|
+
]);
|
|
141
|
+
/**
|
|
142
|
+
* Parameters for `eth_getEncryptionPublicKey`.
|
|
143
|
+
*/
|
|
144
|
+
export const EthGetEncryptionPublicKeyParamsStruct = tuple([
|
|
145
|
+
EthAddressStruct, // address
|
|
146
|
+
optional(EthGetEncryptionPublicKeyOptionsStruct), // options
|
|
147
|
+
]);
|
|
148
|
+
//# sourceMappingURL=params.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"params.mjs","sourceRoot":"","sources":["../../../src/eth/rpc/params.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Superstruct validation schemas for Ethereum JSON-RPC method parameters.\n *\n * These structs provide runtime validation for the parameters passed to various\n * Ethereum RPC methods. They can be used by keyring implementations to validate\n * incoming requests before processing.\n */\n\nimport { object } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n any,\n array,\n literal,\n nullable,\n number,\n optional,\n record,\n string,\n tuple,\n type,\n union,\n unknown,\n} from '@metamask/superstruct';\n\nimport {\n EthAddressStrictStruct,\n EthAddressStruct,\n EthBytesStruct,\n} from '../types';\n\n/**\n * A struct for validating Ethereum transaction data.\n *\n * This uses `type()` instead of `object()` to allow extra properties,\n * since transaction formats can vary and include additional fields.\n * The actual transaction validation is performed by the transaction library.\n */\nexport const EthTransactionDataStruct = type({\n to: optional(nullable(EthAddressStruct)),\n from: optional(EthAddressStruct),\n nonce: optional(union([string(), number()])),\n value: optional(union([string(), number()])),\n data: optional(EthBytesStruct),\n gas: optional(union([string(), number()])),\n gasLimit: optional(union([string(), number()])),\n gasPrice: optional(union([string(), number()])),\n maxFeePerGas: optional(union([string(), number()])),\n maxPriorityFeePerGas: optional(union([string(), number()])),\n accessList: optional(\n array(\n type({\n address: EthAddressStruct,\n storageKeys: array(string()),\n }),\n ),\n ),\n type: optional(union([string(), number()])),\n chainId: optional(union([string(), number()])),\n});\n\nexport type EthTransactionData = Infer<typeof EthTransactionDataStruct>;\n\n/**\n * A struct for TypedDataV1 format (legacy typed data).\n * This is an array of { type, name, value } objects.\n */\nexport const EthTypedDataV1Struct = array(\n object({\n type: string(),\n name: string(),\n value: unknown(),\n }),\n);\n\nexport type EthTypedDataV1 = Infer<typeof EthTypedDataV1Struct>;\n\n/**\n * A struct for TypedData types definition.\n * Maps type names to arrays of { name, type } definitions.\n */\nexport const EthTypedDataTypesStruct = record(\n string(),\n array(\n object({\n name: string(),\n type: string(),\n }),\n ),\n);\n\nexport type EthTypedDataTypes = Infer<typeof EthTypedDataTypesStruct>;\n\n/**\n * A struct for TypedMessage format (EIP-712 V3/V4).\n * Contains types, domain, primaryType, and message.\n */\nexport const EthTypedMessageStruct = object({\n types: EthTypedDataTypesStruct,\n primaryType: string(),\n domain: record(string(), any()),\n message: record(string(), any()),\n});\n\nexport type EthTypedMessage = Infer<typeof EthTypedMessageStruct>;\n\n/**\n * A struct for EIP-1024 encrypted data format (x25519-xsalsa20-poly1305).\n */\nexport const EthEncryptedDataStruct = object({\n version: literal('x25519-xsalsa20-poly1305'),\n nonce: string(),\n ephemPublicKey: string(),\n ciphertext: string(),\n});\n\nexport type EthEncryptedData = Infer<typeof EthEncryptedDataStruct>;\n\n/**\n * A struct for EIP-7702 authorization tuple.\n * Format: [chainId, address, nonce]\n */\nexport const EthEip7702AuthorizationStruct = tuple([\n number(), // chainId\n EthAddressStrictStruct, // address (contract to delegate to)\n number(), // nonce\n]);\n\nexport type EthEip7702Authorization = Infer<\n typeof EthEip7702AuthorizationStruct\n>;\n\n/**\n * A struct for getEncryptionPublicKey options.\n */\nexport const EthGetEncryptionPublicKeyOptionsStruct = record(\n string(),\n unknown(),\n);\n\n// ============================================================================\n// RPC Method Parameter Structs\n// ============================================================================\n\n/**\n * Parameters for `eth_signTransaction`.\n */\nexport const EthSignTransactionParamsStruct = tuple([EthTransactionDataStruct]);\n\nexport type EthSignTransactionParams = Infer<\n typeof EthSignTransactionParamsStruct\n>;\n\n/**\n * Parameters for `eth_sign`.\n */\nexport const EthSignParamsStruct = tuple([\n EthAddressStruct, // address\n EthBytesStruct, // data (hex-encoded message hash)\n]);\n\nexport type EthSignParams = Infer<typeof EthSignParamsStruct>;\n\n/**\n * Parameters for `personal_sign`.\n */\nexport const EthPersonalSignParamsStruct = union([\n tuple([EthBytesStruct]), // [data]\n tuple([EthBytesStruct, EthAddressStruct]), // [data, address]\n]);\n\nexport type EthPersonalSignParams = Infer<typeof EthPersonalSignParamsStruct>;\n\n/**\n * Parameters for `eth_signTypedData_v1`.\n */\nexport const EthSignTypedDataV1ParamsStruct = tuple([\n EthAddressStruct, // address\n EthTypedDataV1Struct, // typed data array\n]);\n\nexport type EthSignTypedDataV1Params = Infer<\n typeof EthSignTypedDataV1ParamsStruct\n>;\n\n/**\n * Parameters for `eth_signTypedData_v3` and `eth_signTypedData_v4`.\n */\nexport const EthSignTypedDataParamsStruct = tuple([\n EthAddressStruct, // address\n EthTypedMessageStruct, // typed data object\n]);\n\nexport type EthSignTypedDataParams = Infer<typeof EthSignTypedDataParamsStruct>;\n\n/**\n * Parameters for `eth_decrypt`.\n */\nexport const EthDecryptParamsStruct = tuple([EthEncryptedDataStruct]);\n\nexport type EthDecryptParams = Infer<typeof EthDecryptParamsStruct>;\n\n/**\n * Parameters for `eth_getAppKeyAddress`.\n */\nexport const EthGetAppKeyAddressParamsStruct = tuple([\n string(), // origin URL\n]);\n\nexport type EthGetAppKeyAddressParams = Infer<\n typeof EthGetAppKeyAddressParamsStruct\n>;\n\n/**\n * Parameters for `eth_signEip7702Authorization`.\n *\n * @example\n * ```ts\n * const params = [[1, '0xContractAddress', 0]];\n * ```\n */\nexport const EthSignEip7702AuthorizationParamsStruct = tuple([\n EthEip7702AuthorizationStruct,\n]);\n\nexport type EthSignEip7702AuthorizationParams = Infer<\n typeof EthSignEip7702AuthorizationParamsStruct\n>;\n\n/**\n * Parameters for `eth_getEncryptionPublicKey`.\n */\nexport const EthGetEncryptionPublicKeyParamsStruct = tuple([\n EthAddressStruct, // address\n optional(EthGetEncryptionPublicKeyOptionsStruct), // options\n]);\n"]}
|
package/dist/eth/types.cjs
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EthErc4337AccountStruct = exports.EthEoaAccountStruct = exports.EthMethod = exports.EthUint256Struct = exports.EthAddressStruct = exports.EthBytesStruct = void 0;
|
|
3
|
+
exports.EthErc4337AccountStruct = exports.EthEoaAccountStruct = exports.EthMethod = exports.EthUint256Struct = exports.EthAddressStrictStruct = exports.EthAddressStruct = exports.EthBytesStruct = void 0;
|
|
4
4
|
const keyring_utils_1 = require("@metamask/keyring-utils");
|
|
5
5
|
const superstruct_1 = require("@metamask/superstruct");
|
|
6
6
|
const utils_1 = require("@metamask/utils");
|
|
7
7
|
const _1 = require("./index.cjs");
|
|
8
8
|
const api_1 = require("../api/index.cjs");
|
|
9
9
|
exports.EthBytesStruct = (0, utils_1.definePattern)('EthBytes', /^0x[0-9a-f]*$/iu);
|
|
10
|
-
|
|
10
|
+
const ETH_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/iu;
|
|
11
|
+
exports.EthAddressStruct = (0, utils_1.definePattern)('EthAddress', ETH_ADDRESS_REGEX);
|
|
12
|
+
// Stricter struct that uses `Hex` as final type.
|
|
13
|
+
exports.EthAddressStrictStruct = (0, utils_1.definePattern)('EthAddressStrict', ETH_ADDRESS_REGEX);
|
|
11
14
|
exports.EthUint256Struct = (0, utils_1.definePattern)('EthUint256', /^0x([1-9a-f][0-9a-f]*|0)$/iu);
|
|
12
15
|
/**
|
|
13
16
|
* Supported Ethereum methods.
|
package/dist/eth/types.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AAEjD,uDAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AAEjD,uDAAwE;AACxE,2CAA0D;AAE1D,kCAA6B;AAC7B,0CAIgB;AAEH,QAAA,cAAc,GAAG,IAAA,qBAAa,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAE3E,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAClC,QAAA,gBAAgB,GAAG,IAAA,qBAAa,EAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC/E,iDAAiD;AACpC,QAAA,sBAAsB,GAAG,IAAA,qBAAa,EACjD,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,qBAAa,EAC3C,YAAY,EACZ,6BAA6B,CAC9B,CAAC;AAEF;;GAEG;AACH,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,0BAA0B;IAC1B,2CAA8B,CAAA;IAC9B,8BAAiB,CAAA;IACjB,oDAAuC,CAAA;IACvC,qDAAwC,CAAA;IACxC,qDAAwC,CAAA;IACxC,qDAAwC,CAAA;IACxC,mBAAmB;IACnB,8DAAiD,CAAA;IACjD,0DAA6C,CAAA;IAC7C,wDAA2C,CAAA;AAC7C,CAAC,EAZW,SAAS,yBAAT,SAAS,QAYpB;AAEY,QAAA,mBAAmB,GAAG,IAAA,sBAAM,EAAC;IACxC,GAAG,0BAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,wBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,IAAA,qBAAO,EAAC,GAAG,oBAAc,CAAC,GAAG,EAAE,CAAC;IAEtC;;OAEG;IACH,MAAM,EAAE,IAAA,sBAAQ,EAAC,IAAA,mBAAK,EAAC,IAAA,qBAAO,EAAC,WAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,IAAA,mBAAK,EACZ,IAAA,mBAAK,EAAC;QACJ,GAAG,SAAS,CAAC,YAAY,EAAE;QAC3B,GAAG,SAAS,CAAC,IAAI,EAAE;QACnB,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;KAC/B,CAAC,CACH;CACF,CAAC,CAAC;AAIU,QAAA,uBAAuB,GAAG,IAAA,sBAAM,EAAC;IAC5C,GAAG,0BAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,wBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,IAAA,qBAAO,EAAC,GAAG,oBAAc,CAAC,OAAO,EAAE,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE,IAAA,sBAAQ,EAAC,IAAA,mBAAK,EAAC,uBAAiB,CAAC,CAAC;IAE1C;;OAEG;IACH,OAAO,EAAE,IAAA,mBAAK,EACZ,IAAA,mBAAK,EAAC;QACJ,GAAG,SAAS,CAAC,YAAY,EAAE;QAC3B,GAAG,SAAS,CAAC,IAAI,EAAE;QACnB,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,oBAAoB,EAAE;QACnC,GAAG,SAAS,CAAC,kBAAkB,EAAE;QACjC,GAAG,SAAS,CAAC,iBAAiB,EAAE;KACjC,CAAC,CACH;CACF,CAAC,CAAC","sourcesContent":["import { object } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport { nonempty, array, enums, literal } from '@metamask/superstruct';\nimport { definePattern, type Hex } from '@metamask/utils';\n\nimport { EthScope } from '.';\nimport {\n CaipChainIdStruct,\n EthAccountType,\n KeyringAccountStruct,\n} from '../api';\n\nexport const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu);\n\nconst ETH_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/iu;\nexport const EthAddressStruct = definePattern('EthAddress', ETH_ADDRESS_REGEX);\n// Stricter struct that uses `Hex` as final type.\nexport const EthAddressStrictStruct = definePattern<Hex>(\n 'EthAddressStrict',\n ETH_ADDRESS_REGEX,\n);\n\nexport const EthUint256Struct = definePattern(\n 'EthUint256',\n /^0x([1-9a-f][0-9a-f]*|0)$/iu,\n);\n\n/**\n * Supported Ethereum methods.\n */\nexport enum EthMethod {\n // General signing methods\n PersonalSign = 'personal_sign',\n Sign = 'eth_sign',\n SignTransaction = 'eth_signTransaction',\n SignTypedDataV1 = 'eth_signTypedData_v1',\n SignTypedDataV3 = 'eth_signTypedData_v3',\n SignTypedDataV4 = 'eth_signTypedData_v4',\n // ERC-4337 methods\n PrepareUserOperation = 'eth_prepareUserOperation',\n PatchUserOperation = 'eth_patchUserOperation',\n SignUserOperation = 'eth_signUserOperation',\n}\n\nexport const EthEoaAccountStruct = object({\n ...KeyringAccountStruct.schema,\n\n /**\n * Account address.\n */\n address: EthAddressStruct,\n\n /**\n * Account type.\n */\n type: literal(`${EthAccountType.Eoa}`),\n\n /**\n * Account scopes (must be ['eip155:0']).\n */\n scopes: nonempty(array(literal(EthScope.Eoa))),\n\n /**\n * Account supported methods.\n */\n methods: array(\n enums([\n `${EthMethod.PersonalSign}`,\n `${EthMethod.Sign}`,\n `${EthMethod.SignTransaction}`,\n `${EthMethod.SignTypedDataV1}`,\n `${EthMethod.SignTypedDataV3}`,\n `${EthMethod.SignTypedDataV4}`,\n ]),\n ),\n});\n\nexport type EthEoaAccount = Infer<typeof EthEoaAccountStruct>;\n\nexport const EthErc4337AccountStruct = object({\n ...KeyringAccountStruct.schema,\n\n /**\n * Account address.\n */\n address: EthAddressStruct,\n\n /**\n * Account type.\n */\n type: literal(`${EthAccountType.Erc4337}`),\n\n /**\n * Account supported scopes (CAIP-2 chain IDs).\n */\n scopes: nonempty(array(CaipChainIdStruct)),\n\n /**\n * Account supported methods.\n */\n methods: array(\n enums([\n `${EthMethod.PersonalSign}`,\n `${EthMethod.Sign}`,\n `${EthMethod.SignTypedDataV1}`,\n `${EthMethod.SignTypedDataV3}`,\n `${EthMethod.SignTypedDataV4}`,\n `${EthMethod.PrepareUserOperation}`,\n `${EthMethod.PatchUserOperation}`,\n `${EthMethod.SignUserOperation}`,\n ]),\n ),\n});\n\nexport type EthErc4337Account = Infer<typeof EthErc4337AccountStruct>;\n"]}
|
package/dist/eth/types.d.cts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Infer } from "@metamask/superstruct";
|
|
|
2
2
|
import { EthScope } from "./index.cjs";
|
|
3
3
|
export declare const EthBytesStruct: import("@metamask/superstruct").Struct<string, null>;
|
|
4
4
|
export declare const EthAddressStruct: import("@metamask/superstruct").Struct<string, null>;
|
|
5
|
+
export declare const EthAddressStrictStruct: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
5
6
|
export declare const EthUint256Struct: import("@metamask/superstruct").Struct<string, null>;
|
|
6
7
|
/**
|
|
7
8
|
* Supported Ethereum methods.
|
|
@@ -28,6 +29,8 @@ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct
|
|
|
28
29
|
groupIndex: number;
|
|
29
30
|
} | {
|
|
30
31
|
type: "private-key";
|
|
32
|
+
} | {
|
|
33
|
+
type: "custom";
|
|
31
34
|
};
|
|
32
35
|
exportable?: boolean;
|
|
33
36
|
};
|
|
@@ -67,6 +70,8 @@ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct
|
|
|
67
70
|
groupIndex: number;
|
|
68
71
|
} | {
|
|
69
72
|
type: "private-key";
|
|
73
|
+
} | {
|
|
74
|
+
type: "custom";
|
|
70
75
|
};
|
|
71
76
|
exportable?: boolean;
|
|
72
77
|
}, null>;
|
|
@@ -83,6 +88,8 @@ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").St
|
|
|
83
88
|
groupIndex: number;
|
|
84
89
|
} | {
|
|
85
90
|
type: "private-key";
|
|
91
|
+
} | {
|
|
92
|
+
type: "custom";
|
|
86
93
|
};
|
|
87
94
|
exportable?: boolean;
|
|
88
95
|
};
|
|
@@ -124,6 +131,8 @@ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").St
|
|
|
124
131
|
groupIndex: number;
|
|
125
132
|
} | {
|
|
126
133
|
type: "private-key";
|
|
134
|
+
} | {
|
|
135
|
+
type: "custom";
|
|
127
136
|
};
|
|
128
137
|
exportable?: boolean;
|
|
129
138
|
}, null>;
|
package/dist/eth/types.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAInD,OAAO,EAAE,QAAQ,EAAE,oBAAU;AAO7B,eAAO,MAAM,cAAc,sDAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAInD,OAAO,EAAE,QAAQ,EAAE,oBAAU;AAO7B,eAAO,MAAM,cAAc,sDAA+C,CAAC;AAG3E,eAAO,MAAM,gBAAgB,sDAAiD,CAAC;AAE/E,eAAO,MAAM,sBAAsB,6DAGlC,CAAC;AAEF,eAAO,MAAM,gBAAgB,sDAG5B,CAAC;AAEF;;GAEG;AACH,oBAAY,SAAS;IAEnB,YAAY,kBAAkB;IAC9B,IAAI,aAAa;IACjB,eAAe,wBAAwB;IACvC,eAAe,yBAAyB;IACxC,eAAe,yBAAyB;IACxC,eAAe,yBAAyB;IAExC,oBAAoB,6BAA6B;IACjD,kBAAkB,2BAA2B;IAC7C,iBAAiB,0BAA0B;CAC5C;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;IAG9B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;EAWH,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE9D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;IAGlC;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;EAaH,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
package/dist/eth/types.d.mts
CHANGED
|
@@ -2,6 +2,7 @@ import type { Infer } from "@metamask/superstruct";
|
|
|
2
2
|
import { EthScope } from "./index.mjs";
|
|
3
3
|
export declare const EthBytesStruct: import("@metamask/superstruct").Struct<string, null>;
|
|
4
4
|
export declare const EthAddressStruct: import("@metamask/superstruct").Struct<string, null>;
|
|
5
|
+
export declare const EthAddressStrictStruct: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
5
6
|
export declare const EthUint256Struct: import("@metamask/superstruct").Struct<string, null>;
|
|
6
7
|
/**
|
|
7
8
|
* Supported Ethereum methods.
|
|
@@ -28,6 +29,8 @@ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct
|
|
|
28
29
|
groupIndex: number;
|
|
29
30
|
} | {
|
|
30
31
|
type: "private-key";
|
|
32
|
+
} | {
|
|
33
|
+
type: "custom";
|
|
31
34
|
};
|
|
32
35
|
exportable?: boolean;
|
|
33
36
|
};
|
|
@@ -67,6 +70,8 @@ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct
|
|
|
67
70
|
groupIndex: number;
|
|
68
71
|
} | {
|
|
69
72
|
type: "private-key";
|
|
73
|
+
} | {
|
|
74
|
+
type: "custom";
|
|
70
75
|
};
|
|
71
76
|
exportable?: boolean;
|
|
72
77
|
}, null>;
|
|
@@ -83,6 +88,8 @@ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").St
|
|
|
83
88
|
groupIndex: number;
|
|
84
89
|
} | {
|
|
85
90
|
type: "private-key";
|
|
91
|
+
} | {
|
|
92
|
+
type: "custom";
|
|
86
93
|
};
|
|
87
94
|
exportable?: boolean;
|
|
88
95
|
};
|
|
@@ -124,6 +131,8 @@ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").St
|
|
|
124
131
|
groupIndex: number;
|
|
125
132
|
} | {
|
|
126
133
|
type: "private-key";
|
|
134
|
+
} | {
|
|
135
|
+
type: "custom";
|
|
127
136
|
};
|
|
128
137
|
exportable?: boolean;
|
|
129
138
|
}, null>;
|
package/dist/eth/types.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAInD,OAAO,EAAE,QAAQ,EAAE,oBAAU;AAO7B,eAAO,MAAM,cAAc,sDAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAInD,OAAO,EAAE,QAAQ,EAAE,oBAAU;AAO7B,eAAO,MAAM,cAAc,sDAA+C,CAAC;AAG3E,eAAO,MAAM,gBAAgB,sDAAiD,CAAC;AAE/E,eAAO,MAAM,sBAAsB,6DAGlC,CAAC;AAEF,eAAO,MAAM,gBAAgB,sDAG5B,CAAC;AAEF;;GAEG;AACH,oBAAY,SAAS;IAEnB,YAAY,kBAAkB;IAC9B,IAAI,aAAa;IACjB,eAAe,wBAAwB;IACvC,eAAe,yBAAyB;IACxC,eAAe,yBAAyB;IACxC,eAAe,yBAAyB;IAExC,oBAAoB,6BAA6B;IACjD,kBAAkB,2BAA2B;IAC7C,iBAAiB,0BAA0B;CAC5C;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;IAG9B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;EAWH,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE9D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;IAGlC;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;EAaH,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
package/dist/eth/types.mjs
CHANGED
|
@@ -4,7 +4,10 @@ import { definePattern } from "@metamask/utils";
|
|
|
4
4
|
import { EthScope } from "./index.mjs";
|
|
5
5
|
import { CaipChainIdStruct, EthAccountType, KeyringAccountStruct } from "../api/index.mjs";
|
|
6
6
|
export const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu);
|
|
7
|
-
|
|
7
|
+
const ETH_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/iu;
|
|
8
|
+
export const EthAddressStruct = definePattern('EthAddress', ETH_ADDRESS_REGEX);
|
|
9
|
+
// Stricter struct that uses `Hex` as final type.
|
|
10
|
+
export const EthAddressStrictStruct = definePattern('EthAddressStrict', ETH_ADDRESS_REGEX);
|
|
8
11
|
export const EthUint256Struct = definePattern('EthUint256', /^0x([1-9a-f][0-9a-f]*|0)$/iu);
|
|
9
12
|
/**
|
|
10
13
|
* Supported Ethereum methods.
|
package/dist/eth/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gCAAgC;AAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA8B;AACxE,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gCAAgC;AAEjD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA8B;AACxE,OAAO,EAAE,aAAa,EAAY,wBAAwB;AAE1D,OAAO,EAAE,QAAQ,EAAE,oBAAU;AAC7B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACrB,yBAAe;AAEhB,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAE3E,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAC/E,iDAAiD;AACjD,MAAM,CAAC,MAAM,sBAAsB,GAAG,aAAa,CACjD,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAC3C,YAAY,EACZ,6BAA6B,CAC9B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACnB,0BAA0B;IAC1B,2CAA8B,CAAA;IAC9B,8BAAiB,CAAA;IACjB,oDAAuC,CAAA;IACvC,qDAAwC,CAAA;IACxC,qDAAwC,CAAA;IACxC,qDAAwC,CAAA;IACxC,mBAAmB;IACnB,8DAAiD,CAAA;IACjD,0DAA6C,CAAA;IAC7C,wDAA2C,CAAA;AAC7C,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;IACxC,GAAG,oBAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,gBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;IAEtC;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9C;;OAEG;IACH,OAAO,EAAE,KAAK,CACZ,KAAK,CAAC;QACJ,GAAG,SAAS,CAAC,YAAY,EAAE;QAC3B,GAAG,SAAS,CAAC,IAAI,EAAE;QACnB,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;KAC/B,CAAC,CACH;CACF,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;IAC5C,GAAG,oBAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,gBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAE1C;;OAEG;IACH,OAAO,EAAE,KAAK,CACZ,KAAK,CAAC;QACJ,GAAG,SAAS,CAAC,YAAY,EAAE;QAC3B,GAAG,SAAS,CAAC,IAAI,EAAE;QACnB,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,eAAe,EAAE;QAC9B,GAAG,SAAS,CAAC,oBAAoB,EAAE;QACnC,GAAG,SAAS,CAAC,kBAAkB,EAAE;QACjC,GAAG,SAAS,CAAC,iBAAiB,EAAE;KACjC,CAAC,CACH;CACF,CAAC,CAAC","sourcesContent":["import { object } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport { nonempty, array, enums, literal } from '@metamask/superstruct';\nimport { definePattern, type Hex } from '@metamask/utils';\n\nimport { EthScope } from '.';\nimport {\n CaipChainIdStruct,\n EthAccountType,\n KeyringAccountStruct,\n} from '../api';\n\nexport const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu);\n\nconst ETH_ADDRESS_REGEX = /^0x[0-9a-f]{40}$/iu;\nexport const EthAddressStruct = definePattern('EthAddress', ETH_ADDRESS_REGEX);\n// Stricter struct that uses `Hex` as final type.\nexport const EthAddressStrictStruct = definePattern<Hex>(\n 'EthAddressStrict',\n ETH_ADDRESS_REGEX,\n);\n\nexport const EthUint256Struct = definePattern(\n 'EthUint256',\n /^0x([1-9a-f][0-9a-f]*|0)$/iu,\n);\n\n/**\n * Supported Ethereum methods.\n */\nexport enum EthMethod {\n // General signing methods\n PersonalSign = 'personal_sign',\n Sign = 'eth_sign',\n SignTransaction = 'eth_signTransaction',\n SignTypedDataV1 = 'eth_signTypedData_v1',\n SignTypedDataV3 = 'eth_signTypedData_v3',\n SignTypedDataV4 = 'eth_signTypedData_v4',\n // ERC-4337 methods\n PrepareUserOperation = 'eth_prepareUserOperation',\n PatchUserOperation = 'eth_patchUserOperation',\n SignUserOperation = 'eth_signUserOperation',\n}\n\nexport const EthEoaAccountStruct = object({\n ...KeyringAccountStruct.schema,\n\n /**\n * Account address.\n */\n address: EthAddressStruct,\n\n /**\n * Account type.\n */\n type: literal(`${EthAccountType.Eoa}`),\n\n /**\n * Account scopes (must be ['eip155:0']).\n */\n scopes: nonempty(array(literal(EthScope.Eoa))),\n\n /**\n * Account supported methods.\n */\n methods: array(\n enums([\n `${EthMethod.PersonalSign}`,\n `${EthMethod.Sign}`,\n `${EthMethod.SignTransaction}`,\n `${EthMethod.SignTypedDataV1}`,\n `${EthMethod.SignTypedDataV3}`,\n `${EthMethod.SignTypedDataV4}`,\n ]),\n ),\n});\n\nexport type EthEoaAccount = Infer<typeof EthEoaAccountStruct>;\n\nexport const EthErc4337AccountStruct = object({\n ...KeyringAccountStruct.schema,\n\n /**\n * Account address.\n */\n address: EthAddressStruct,\n\n /**\n * Account type.\n */\n type: literal(`${EthAccountType.Erc4337}`),\n\n /**\n * Account supported scopes (CAIP-2 chain IDs).\n */\n scopes: nonempty(array(CaipChainIdStruct)),\n\n /**\n * Account supported methods.\n */\n methods: array(\n enums([\n `${EthMethod.PersonalSign}`,\n `${EthMethod.Sign}`,\n `${EthMethod.SignTypedDataV1}`,\n `${EthMethod.SignTypedDataV3}`,\n `${EthMethod.SignTypedDataV4}`,\n `${EthMethod.PrepareUserOperation}`,\n `${EthMethod.PatchUserOperation}`,\n `${EthMethod.SignUserOperation}`,\n ]),\n ),\n});\n\nexport type EthErc4337Account = Infer<typeof EthErc4337AccountStruct>;\n"]}
|