@metamask/keyring-api 21.4.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 +19 -2
- package/dist/api/v2/create-account/index.cjs +34 -0
- package/dist/api/v2/create-account/index.cjs.map +1 -1
- package/dist/api/v2/create-account/index.d.cts +29 -0
- package/dist/api/v2/create-account/index.d.cts.map +1 -1
- package/dist/api/v2/create-account/index.d.mts +29 -0
- package/dist/api/v2/create-account/index.d.mts.map +1 -1
- package/dist/api/v2/create-account/index.mjs +33 -0
- package/dist/api/v2/create-account/index.mjs.map +1 -1
- package/dist/eth/erc4337/types.d.cts +4 -4
- package/dist/eth/erc4337/types.d.mts +4 -4
- package/dist/eth/rpc/params.cjs +1 -1
- package/dist/eth/rpc/params.cjs.map +1 -1
- package/dist/eth/rpc/params.d.cts +16 -16
- package/dist/eth/rpc/params.d.cts.map +1 -1
- package/dist/eth/rpc/params.d.mts +16 -16
- package/dist/eth/rpc/params.d.mts.map +1 -1
- package/dist/eth/rpc/params.mjs +2 -2
- package/dist/eth/rpc/params.mjs.map +1 -1
- package/dist/eth/types.cjs +5 -2
- package/dist/eth/types.cjs.map +1 -1
- package/dist/eth/types.d.cts +6 -5
- package/dist/eth/types.d.cts.map +1 -1
- package/dist/eth/types.d.mts +6 -5
- 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/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [21.
|
|
10
|
+
## [21.5.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add `EthAddressStrictStruct` struct and `EthAddressStrict` types ([#465](https://github.com/MetaMask/accounts/pull/465))
|
|
15
|
+
- This is a stricter variant of `EthAddressStruct` which uses `Hex` instead of `string` for its inferred type.
|
|
16
|
+
- Add `assertCreateAccountOptionIsSupported` helper ([#464](https://github.com/MetaMask/accounts/pull/464))
|
|
17
|
+
- This helper can be used to implement `createAccounts` and narrow down the `options` to the supported types (based on the keyring capabilities).
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Re-use `string` for ERC4337 address-like fields ([#465](https://github.com/MetaMask/accounts/pull/465))
|
|
22
|
+
- This change reverts that and keeps using `string` for all address-like types.
|
|
23
|
+
- Changes in [#405](https://github.com/MetaMask/accounts/pull/405) updated the associated type for `EthAddressStruct` from `string` to `Hex`, this was actually a small breaking change that went unnoticed and that would require some effort to adapt in upstream clients/controllers, for this reason, we are undoing this change for now.
|
|
24
|
+
- Version [21.4.0] is marked as **DEPRECATED**, consumers are expected to use version [21.5.0] instead, that reverts this breaking change.
|
|
25
|
+
|
|
26
|
+
## [21.4.0] - 2026-02-09 [DEPRECATED]
|
|
11
27
|
|
|
12
28
|
### Added
|
|
13
29
|
|
|
@@ -684,7 +700,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
684
700
|
- SnapController keyring client. It is intended to be used by MetaMask to talk to the snap.
|
|
685
701
|
- Helper functions to create keyring handler in the snap.
|
|
686
702
|
|
|
687
|
-
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-api@21.
|
|
703
|
+
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-api@21.5.0...HEAD
|
|
704
|
+
[21.5.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-api@21.4.0...@metamask/keyring-api@21.5.0
|
|
688
705
|
[21.4.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-api@21.3.0...@metamask/keyring-api@21.4.0
|
|
689
706
|
[21.3.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-api@21.2.0...@metamask/keyring-api@21.3.0
|
|
690
707
|
[21.2.0]: https://github.com/MetaMask/accounts/compare/@metamask/keyring-api@21.1.0...@metamask/keyring-api@21.2.0
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.CreateAccountOptionsStruct = exports.AccountCreationType = void 0;
|
|
18
|
+
exports.assertCreateAccountOptionIsSupported = assertCreateAccountOptionIsSupported;
|
|
18
19
|
const keyring_utils_1 = require("@metamask/keyring-utils");
|
|
19
20
|
const bip44_1 = require("./bip44.cjs");
|
|
20
21
|
const custom_1 = require("./custom.cjs");
|
|
@@ -90,4 +91,37 @@ exports.CreateAccountOptionsStruct = (0, keyring_utils_1.selectiveUnion)((value)
|
|
|
90
91
|
return bip44_1.CreateAccountBip44DerivePathOptionsStruct;
|
|
91
92
|
}
|
|
92
93
|
});
|
|
94
|
+
/**
|
|
95
|
+
* Asserts that a given create account option type is supported by the keyring.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* createAccounts(options: CreateAccountOptions) {
|
|
100
|
+
* assertCreateAccountOptionIsSupported(options, [
|
|
101
|
+
* ${AccountCreationType.Bip44DeriveIndex},
|
|
102
|
+
* ${AccountCreationType.Bip44DeriveIndexRange},
|
|
103
|
+
* ] as const);
|
|
104
|
+
*
|
|
105
|
+
* // At this point, TypeScript knows that options.type is either Bip44DeriveIndex or Bip44DeriveIndexRange.
|
|
106
|
+
* if (options.type === AccountCreationType.Bip44DeriveIndex) {
|
|
107
|
+
* ... // Handle Bip44DeriveIndex case.
|
|
108
|
+
* } else {
|
|
109
|
+
* ... // Handle Bip44DeriveIndexRange case.
|
|
110
|
+
* }
|
|
111
|
+
* ...
|
|
112
|
+
* return accounts;
|
|
113
|
+
* }
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @param options - The create account option object to check.
|
|
117
|
+
* @param supportedTypes - The list of supported create account option types for this keyring.
|
|
118
|
+
* @throws Will throw an error if the provided options are not supported.
|
|
119
|
+
*/
|
|
120
|
+
function assertCreateAccountOptionIsSupported(options, supportedTypes) {
|
|
121
|
+
const { type } = options;
|
|
122
|
+
const types = supportedTypes;
|
|
123
|
+
if (!types.includes(type)) {
|
|
124
|
+
throw new Error(`Unsupported create account option type: ${type}`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
93
127
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAyHA,oFAeC;AAxID,2DAAyD;AAGzD,uCAKiB;AACjB,yCAA4D;AAC5D,mDAAqE;AAErE,8CAAwB;AACxB,+CAAyB;AACzB,oDAA8B;AAE9B;;GAEG;AACH,IAAY,mBA6CX;AA7CD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,4DAAqC,CAAA;IAErC;;;;;;OAMG;IACH,8DAAuC,CAAA;IAEvC;;;;;;OAMG;IACH,yEAAkD,CAAA;IAElD;;;;;;OAMG;IACH,uDAAgC,CAAA;IAEhC;;OAEG;IACH,8DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,wCAAiB,CAAA;AACnB,CAAC,EA7CW,mBAAmB,mCAAnB,mBAAmB,QA6C9B;AAED;;GAEG;AACU,QAAA,0BAA0B,GAAG,IAAA,8BAAc,EAAC,CAAC,KAAU,EAAE,EAAE;IACtE,MAAM,mBAAmB,GAAG,KAAK,EAAE,IAA2B,CAAC;IAC/D,QAAQ,mBAAmB,EAAE,CAAC;QAC5B,KAAK,mBAAmB,CAAC,eAAe;YACtC,OAAO,iDAAyC,CAAC;QACnD,KAAK,mBAAmB,CAAC,gBAAgB;YACvC,OAAO,kDAA0C,CAAC;QACpD,KAAK,mBAAmB,CAAC,qBAAqB;YAC5C,OAAO,uDAA+C,CAAC;QACzD,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO,+CAAuC,CAAC;QACjD,KAAK,mBAAmB,CAAC,gBAAgB;YACvC,OAAO,kDAAoC,CAAC;QAC9C,KAAK,mBAAmB,CAAC,MAAM;YAC7B,OAAO,yCAAgC,CAAC;QAC1C;YACE,wGAAwG;YACxG,OAAO,iDAAyC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAOH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,SAAgB,oCAAoC,CAKlD,OAAgB,EAChB,cAAoC;IAGpC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,KAAK,GAA4C,cAAc,CAAC;IAEtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC","sourcesContent":["import { selectiveUnion } from '@metamask/keyring-utils';\nimport { type Infer } from '@metamask/superstruct';\n\nimport {\n CreateAccountBip44DiscoverOptionsStruct,\n CreateAccountBip44DeriveIndexOptionsStruct,\n CreateAccountBip44DeriveIndexRangeOptionsStruct,\n CreateAccountBip44DerivePathOptionsStruct,\n} from './bip44';\nimport { CreateAccountCustomOptionsStruct } from './custom';\nimport { CreateAccountPrivateKeyOptionsStruct } from './private-key';\n\nexport * from './bip44';\nexport * from './custom';\nexport * from './private-key';\n\n/**\n * Enum representing the different ways an account can be created.\n */\nexport enum AccountCreationType {\n /**\n * Represents an account created using a BIP-44 derivation path.\n */\n Bip44DerivePath = 'bip44:derive-path',\n\n /**\n * Represents accounts created using a BIP-44 account index.\n *\n * More than one account can be created, for example, the keyring can create\n * multiple account types (e.g., P2PKH, P2TR, P2WPKH) for the same account\n * index.\n */\n Bip44DeriveIndex = 'bip44:derive-index',\n\n /**\n * Represents accounts created by deriving a range of BIP-44 account indices.\n *\n * More than one account can be created per index, for example, the keyring\n * can create multiple account types (e.g., P2PKH, P2TR, P2WPKH) for each\n * account index in the range.\n */\n Bip44DeriveIndexRange = 'bip44:derive-index-range',\n\n /**\n * Represents accounts created through BIP-44 account discovery.\n *\n * More than one account can be created, for example, the keyring can create\n * multiple account types (e.g., P2PKH, P2TR, P2WPKH) for the same account\n * index.\n */\n Bip44Discover = 'bip44:discover',\n\n /**\n * Represents an account imported from a private key.\n */\n PrivateKeyImport = 'private-key:import',\n\n /**\n * Represents an account created using a custom, keyring-specific method.\n *\n * This is used by keyrings that have non-standard account creation flows\n * and declare `custom.createAccounts: true` in their capabilities.\n */\n Custom = 'custom',\n}\n\n/**\n * Struct for {@link CreateAccountOptions}.\n */\nexport const CreateAccountOptionsStruct = selectiveUnion((value: any) => {\n const accountCreationType = value?.type as AccountCreationType;\n switch (accountCreationType) {\n case AccountCreationType.Bip44DerivePath:\n return CreateAccountBip44DerivePathOptionsStruct;\n case AccountCreationType.Bip44DeriveIndex:\n return CreateAccountBip44DeriveIndexOptionsStruct;\n case AccountCreationType.Bip44DeriveIndexRange:\n return CreateAccountBip44DeriveIndexRangeOptionsStruct;\n case AccountCreationType.Bip44Discover:\n return CreateAccountBip44DiscoverOptionsStruct;\n case AccountCreationType.PrivateKeyImport:\n return CreateAccountPrivateKeyOptionsStruct;\n case AccountCreationType.Custom:\n return CreateAccountCustomOptionsStruct;\n default:\n // Return first struct as fallback - validation will fail with proper error indicating the type mismatch\n return CreateAccountBip44DerivePathOptionsStruct;\n }\n});\n\n/**\n * Represents the available options for creating a new account.\n */\nexport type CreateAccountOptions = Infer<typeof CreateAccountOptionsStruct>;\n\n/**\n * Asserts that a given create account option type is supported by the keyring.\n *\n * @example\n * ```ts\n * createAccounts(options: CreateAccountOptions) {\n * assertCreateAccountOptionIsSupported(options, [\n * ${AccountCreationType.Bip44DeriveIndex},\n * ${AccountCreationType.Bip44DeriveIndexRange},\n * ] as const);\n *\n * // At this point, TypeScript knows that options.type is either Bip44DeriveIndex or Bip44DeriveIndexRange.\n * if (options.type === AccountCreationType.Bip44DeriveIndex) {\n * ... // Handle Bip44DeriveIndex case.\n * } else {\n * ... // Handle Bip44DeriveIndexRange case.\n * }\n * ...\n * return accounts;\n * }\n * ```\n *\n * @param options - The create account option object to check.\n * @param supportedTypes - The list of supported create account option types for this keyring.\n * @throws Will throw an error if the provided options are not supported.\n */\nexport function assertCreateAccountOptionIsSupported<\n Options extends CreateAccountOptions,\n // We use template literal types to enforce string-literal over strict enum values.\n Type extends `${CreateAccountOptions['type']}`,\n>(\n options: Options,\n supportedTypes: readonly `${Type}`[],\n // Use intersection to avoid widening `type` beyond `Options['type']`.\n): asserts options is Options & { type: `${Type}` & `${Options['type']}` } {\n const { type } = options;\n const types: readonly CreateAccountOptions['type'][] = supportedTypes;\n\n if (!types.includes(type)) {\n throw new Error(`Unsupported create account option type: ${type}`);\n }\n}\n"]}
|
|
@@ -80,4 +80,33 @@ export declare const CreateAccountOptionsStruct: import("@metamask/superstruct")
|
|
|
80
80
|
* Represents the available options for creating a new account.
|
|
81
81
|
*/
|
|
82
82
|
export type CreateAccountOptions = Infer<typeof CreateAccountOptionsStruct>;
|
|
83
|
+
/**
|
|
84
|
+
* Asserts that a given create account option type is supported by the keyring.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* createAccounts(options: CreateAccountOptions) {
|
|
89
|
+
* assertCreateAccountOptionIsSupported(options, [
|
|
90
|
+
* ${AccountCreationType.Bip44DeriveIndex},
|
|
91
|
+
* ${AccountCreationType.Bip44DeriveIndexRange},
|
|
92
|
+
* ] as const);
|
|
93
|
+
*
|
|
94
|
+
* // At this point, TypeScript knows that options.type is either Bip44DeriveIndex or Bip44DeriveIndexRange.
|
|
95
|
+
* if (options.type === AccountCreationType.Bip44DeriveIndex) {
|
|
96
|
+
* ... // Handle Bip44DeriveIndex case.
|
|
97
|
+
* } else {
|
|
98
|
+
* ... // Handle Bip44DeriveIndexRange case.
|
|
99
|
+
* }
|
|
100
|
+
* ...
|
|
101
|
+
* return accounts;
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @param options - The create account option object to check.
|
|
106
|
+
* @param supportedTypes - The list of supported create account option types for this keyring.
|
|
107
|
+
* @throws Will throw an error if the provided options are not supported.
|
|
108
|
+
*/
|
|
109
|
+
export declare function assertCreateAccountOptionIsSupported<Options extends CreateAccountOptions, Type extends `${CreateAccountOptions['type']}`>(options: Options, supportedTypes: readonly `${Type}`[]): asserts options is Options & {
|
|
110
|
+
type: `${Type}` & `${Options['type']}`;
|
|
111
|
+
};
|
|
83
112
|
//# sourceMappingURL=index.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,8BAA8B;AAWnD,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAE9B;;GAEG;AACH,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,eAAe,sBAAsB;IAErC;;;;;;OAMG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;;OAMG;IACH,qBAAqB,6BAA6B;IAElD;;;;;;OAMG;IACH,aAAa,mBAAmB;IAEhC;;OAEG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;OAKG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;QAmBrC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,8BAA8B;AAWnD,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAE9B;;GAEG;AACH,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,eAAe,sBAAsB;IAErC;;;;;;OAMG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;;OAMG;IACH,qBAAqB,6BAA6B;IAElD;;;;;;OAMG;IACH,aAAa,mBAAmB;IAEhC;;OAEG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;OAKG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;QAmBrC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,SAAS,oBAAoB,EAEpC,IAAI,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAE9C,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,GAEnC,OAAO,CAAC,OAAO,IAAI,OAAO,GAAG;IAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;CAAE,CAOzE"}
|
|
@@ -80,4 +80,33 @@ export declare const CreateAccountOptionsStruct: import("@metamask/superstruct")
|
|
|
80
80
|
* Represents the available options for creating a new account.
|
|
81
81
|
*/
|
|
82
82
|
export type CreateAccountOptions = Infer<typeof CreateAccountOptionsStruct>;
|
|
83
|
+
/**
|
|
84
|
+
* Asserts that a given create account option type is supported by the keyring.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* createAccounts(options: CreateAccountOptions) {
|
|
89
|
+
* assertCreateAccountOptionIsSupported(options, [
|
|
90
|
+
* ${AccountCreationType.Bip44DeriveIndex},
|
|
91
|
+
* ${AccountCreationType.Bip44DeriveIndexRange},
|
|
92
|
+
* ] as const);
|
|
93
|
+
*
|
|
94
|
+
* // At this point, TypeScript knows that options.type is either Bip44DeriveIndex or Bip44DeriveIndexRange.
|
|
95
|
+
* if (options.type === AccountCreationType.Bip44DeriveIndex) {
|
|
96
|
+
* ... // Handle Bip44DeriveIndex case.
|
|
97
|
+
* } else {
|
|
98
|
+
* ... // Handle Bip44DeriveIndexRange case.
|
|
99
|
+
* }
|
|
100
|
+
* ...
|
|
101
|
+
* return accounts;
|
|
102
|
+
* }
|
|
103
|
+
* ```
|
|
104
|
+
*
|
|
105
|
+
* @param options - The create account option object to check.
|
|
106
|
+
* @param supportedTypes - The list of supported create account option types for this keyring.
|
|
107
|
+
* @throws Will throw an error if the provided options are not supported.
|
|
108
|
+
*/
|
|
109
|
+
export declare function assertCreateAccountOptionIsSupported<Options extends CreateAccountOptions, Type extends `${CreateAccountOptions['type']}`>(options: Options, supportedTypes: readonly `${Type}`[]): asserts options is Options & {
|
|
110
|
+
type: `${Type}` & `${Options['type']}`;
|
|
111
|
+
};
|
|
83
112
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,8BAA8B;AAWnD,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAE9B;;GAEG;AACH,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,eAAe,sBAAsB;IAErC;;;;;;OAMG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;;OAMG;IACH,qBAAqB,6BAA6B;IAElD;;;;;;OAMG;IACH,aAAa,mBAAmB;IAEhC;;OAEG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;OAKG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;QAmBrC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,8BAA8B;AAWnD,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAE9B;;GAEG;AACH,oBAAY,mBAAmB;IAC7B;;OAEG;IACH,eAAe,sBAAsB;IAErC;;;;;;OAMG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;;OAMG;IACH,qBAAqB,6BAA6B;IAElD;;;;;;OAMG;IACH,aAAa,mBAAmB;IAEhC;;OAEG;IACH,gBAAgB,uBAAuB;IAEvC;;;;;OAKG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;QAmBrC,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,SAAS,oBAAoB,EAEpC,IAAI,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,EAAE,EAE9C,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,GAEnC,OAAO,CAAC,OAAO,IAAI,OAAO,GAAG;IAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;CAAE,CAOzE"}
|
|
@@ -73,4 +73,37 @@ export const CreateAccountOptionsStruct = selectiveUnion((value) => {
|
|
|
73
73
|
return CreateAccountBip44DerivePathOptionsStruct;
|
|
74
74
|
}
|
|
75
75
|
});
|
|
76
|
+
/**
|
|
77
|
+
* Asserts that a given create account option type is supported by the keyring.
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* createAccounts(options: CreateAccountOptions) {
|
|
82
|
+
* assertCreateAccountOptionIsSupported(options, [
|
|
83
|
+
* ${AccountCreationType.Bip44DeriveIndex},
|
|
84
|
+
* ${AccountCreationType.Bip44DeriveIndexRange},
|
|
85
|
+
* ] as const);
|
|
86
|
+
*
|
|
87
|
+
* // At this point, TypeScript knows that options.type is either Bip44DeriveIndex or Bip44DeriveIndexRange.
|
|
88
|
+
* if (options.type === AccountCreationType.Bip44DeriveIndex) {
|
|
89
|
+
* ... // Handle Bip44DeriveIndex case.
|
|
90
|
+
* } else {
|
|
91
|
+
* ... // Handle Bip44DeriveIndexRange case.
|
|
92
|
+
* }
|
|
93
|
+
* ...
|
|
94
|
+
* return accounts;
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @param options - The create account option object to check.
|
|
99
|
+
* @param supportedTypes - The list of supported create account option types for this keyring.
|
|
100
|
+
* @throws Will throw an error if the provided options are not supported.
|
|
101
|
+
*/
|
|
102
|
+
export function assertCreateAccountOptionIsSupported(options, supportedTypes) {
|
|
103
|
+
const { type } = options;
|
|
104
|
+
const types = supportedTypes;
|
|
105
|
+
if (!types.includes(type)) {
|
|
106
|
+
throw new Error(`Unsupported create account option type: ${type}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
76
109
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gCAAgC;AAGzD,OAAO,EACL,uCAAuC,EACvC,0CAA0C,EAC1C,+CAA+C,EAC/C,yCAAyC,EAC1C,oBAAgB;AACjB,OAAO,EAAE,gCAAgC,EAAE,qBAAiB;AAC5D,OAAO,EAAE,oCAAoC,EAAE,0BAAsB;AAErE,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAE9B;;GAEG;AACH,MAAM,CAAN,IAAY,mBA6CX;AA7CD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,4DAAqC,CAAA;IAErC;;;;;;OAMG;IACH,8DAAuC,CAAA;IAEvC;;;;;;OAMG;IACH,yEAAkD,CAAA;IAElD;;;;;;OAMG;IACH,uDAAgC,CAAA;IAEhC;;OAEG;IACH,8DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,wCAAiB,CAAA;AACnB,CAAC,EA7CW,mBAAmB,KAAnB,mBAAmB,QA6C9B;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC,CAAC,KAAU,EAAE,EAAE;IACtE,MAAM,mBAAmB,GAAG,KAAK,EAAE,IAA2B,CAAC;IAC/D,QAAQ,mBAAmB,EAAE,CAAC;QAC5B,KAAK,mBAAmB,CAAC,eAAe;YACtC,OAAO,yCAAyC,CAAC;QACnD,KAAK,mBAAmB,CAAC,gBAAgB;YACvC,OAAO,0CAA0C,CAAC;QACpD,KAAK,mBAAmB,CAAC,qBAAqB;YAC5C,OAAO,+CAA+C,CAAC;QACzD,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO,uCAAuC,CAAC;QACjD,KAAK,mBAAmB,CAAC,gBAAgB;YACvC,OAAO,oCAAoC,CAAC;QAC9C,KAAK,mBAAmB,CAAC,MAAM;YAC7B,OAAO,gCAAgC,CAAC;QAC1C;YACE,wGAAwG;YACxG,OAAO,yCAAyC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC","sourcesContent":["import { selectiveUnion } from '@metamask/keyring-utils';\nimport { type Infer } from '@metamask/superstruct';\n\nimport {\n CreateAccountBip44DiscoverOptionsStruct,\n CreateAccountBip44DeriveIndexOptionsStruct,\n CreateAccountBip44DeriveIndexRangeOptionsStruct,\n CreateAccountBip44DerivePathOptionsStruct,\n} from './bip44';\nimport { CreateAccountCustomOptionsStruct } from './custom';\nimport { CreateAccountPrivateKeyOptionsStruct } from './private-key';\n\nexport * from './bip44';\nexport * from './custom';\nexport * from './private-key';\n\n/**\n * Enum representing the different ways an account can be created.\n */\nexport enum AccountCreationType {\n /**\n * Represents an account created using a BIP-44 derivation path.\n */\n Bip44DerivePath = 'bip44:derive-path',\n\n /**\n * Represents accounts created using a BIP-44 account index.\n *\n * More than one account can be created, for example, the keyring can create\n * multiple account types (e.g., P2PKH, P2TR, P2WPKH) for the same account\n * index.\n */\n Bip44DeriveIndex = 'bip44:derive-index',\n\n /**\n * Represents accounts created by deriving a range of BIP-44 account indices.\n *\n * More than one account can be created per index, for example, the keyring\n * can create multiple account types (e.g., P2PKH, P2TR, P2WPKH) for each\n * account index in the range.\n */\n Bip44DeriveIndexRange = 'bip44:derive-index-range',\n\n /**\n * Represents accounts created through BIP-44 account discovery.\n *\n * More than one account can be created, for example, the keyring can create\n * multiple account types (e.g., P2PKH, P2TR, P2WPKH) for the same account\n * index.\n */\n Bip44Discover = 'bip44:discover',\n\n /**\n * Represents an account imported from a private key.\n */\n PrivateKeyImport = 'private-key:import',\n\n /**\n * Represents an account created using a custom, keyring-specific method.\n *\n * This is used by keyrings that have non-standard account creation flows\n * and declare `custom.createAccounts: true` in their capabilities.\n */\n Custom = 'custom',\n}\n\n/**\n * Struct for {@link CreateAccountOptions}.\n */\nexport const CreateAccountOptionsStruct = selectiveUnion((value: any) => {\n const accountCreationType = value?.type as AccountCreationType;\n switch (accountCreationType) {\n case AccountCreationType.Bip44DerivePath:\n return CreateAccountBip44DerivePathOptionsStruct;\n case AccountCreationType.Bip44DeriveIndex:\n return CreateAccountBip44DeriveIndexOptionsStruct;\n case AccountCreationType.Bip44DeriveIndexRange:\n return CreateAccountBip44DeriveIndexRangeOptionsStruct;\n case AccountCreationType.Bip44Discover:\n return CreateAccountBip44DiscoverOptionsStruct;\n case AccountCreationType.PrivateKeyImport:\n return CreateAccountPrivateKeyOptionsStruct;\n case AccountCreationType.Custom:\n return CreateAccountCustomOptionsStruct;\n default:\n // Return first struct as fallback - validation will fail with proper error indicating the type mismatch\n return CreateAccountBip44DerivePathOptionsStruct;\n }\n});\n\n/**\n * Represents the available options for creating a new account.\n */\nexport type CreateAccountOptions = Infer<typeof CreateAccountOptionsStruct>;\n"]}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../src/api/v2/create-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gCAAgC;AAGzD,OAAO,EACL,uCAAuC,EACvC,0CAA0C,EAC1C,+CAA+C,EAC/C,yCAAyC,EAC1C,oBAAgB;AACjB,OAAO,EAAE,gCAAgC,EAAE,qBAAiB;AAC5D,OAAO,EAAE,oCAAoC,EAAE,0BAAsB;AAErE,4BAAwB;AACxB,6BAAyB;AACzB,kCAA8B;AAE9B;;GAEG;AACH,MAAM,CAAN,IAAY,mBA6CX;AA7CD,WAAY,mBAAmB;IAC7B;;OAEG;IACH,4DAAqC,CAAA;IAErC;;;;;;OAMG;IACH,8DAAuC,CAAA;IAEvC;;;;;;OAMG;IACH,yEAAkD,CAAA;IAElD;;;;;;OAMG;IACH,uDAAgC,CAAA;IAEhC;;OAEG;IACH,8DAAuC,CAAA;IAEvC;;;;;OAKG;IACH,wCAAiB,CAAA;AACnB,CAAC,EA7CW,mBAAmB,KAAnB,mBAAmB,QA6C9B;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC,CAAC,KAAU,EAAE,EAAE;IACtE,MAAM,mBAAmB,GAAG,KAAK,EAAE,IAA2B,CAAC;IAC/D,QAAQ,mBAAmB,EAAE,CAAC;QAC5B,KAAK,mBAAmB,CAAC,eAAe;YACtC,OAAO,yCAAyC,CAAC;QACnD,KAAK,mBAAmB,CAAC,gBAAgB;YACvC,OAAO,0CAA0C,CAAC;QACpD,KAAK,mBAAmB,CAAC,qBAAqB;YAC5C,OAAO,+CAA+C,CAAC;QACzD,KAAK,mBAAmB,CAAC,aAAa;YACpC,OAAO,uCAAuC,CAAC;QACjD,KAAK,mBAAmB,CAAC,gBAAgB;YACvC,OAAO,oCAAoC,CAAC;QAC9C,KAAK,mBAAmB,CAAC,MAAM;YAC7B,OAAO,gCAAgC,CAAC;QAC1C;YACE,wGAAwG;YACxG,OAAO,yCAAyC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC,CAAC;AAOH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,oCAAoC,CAKlD,OAAgB,EAChB,cAAoC;IAGpC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,KAAK,GAA4C,cAAc,CAAC;IAEtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC","sourcesContent":["import { selectiveUnion } from '@metamask/keyring-utils';\nimport { type Infer } from '@metamask/superstruct';\n\nimport {\n CreateAccountBip44DiscoverOptionsStruct,\n CreateAccountBip44DeriveIndexOptionsStruct,\n CreateAccountBip44DeriveIndexRangeOptionsStruct,\n CreateAccountBip44DerivePathOptionsStruct,\n} from './bip44';\nimport { CreateAccountCustomOptionsStruct } from './custom';\nimport { CreateAccountPrivateKeyOptionsStruct } from './private-key';\n\nexport * from './bip44';\nexport * from './custom';\nexport * from './private-key';\n\n/**\n * Enum representing the different ways an account can be created.\n */\nexport enum AccountCreationType {\n /**\n * Represents an account created using a BIP-44 derivation path.\n */\n Bip44DerivePath = 'bip44:derive-path',\n\n /**\n * Represents accounts created using a BIP-44 account index.\n *\n * More than one account can be created, for example, the keyring can create\n * multiple account types (e.g., P2PKH, P2TR, P2WPKH) for the same account\n * index.\n */\n Bip44DeriveIndex = 'bip44:derive-index',\n\n /**\n * Represents accounts created by deriving a range of BIP-44 account indices.\n *\n * More than one account can be created per index, for example, the keyring\n * can create multiple account types (e.g., P2PKH, P2TR, P2WPKH) for each\n * account index in the range.\n */\n Bip44DeriveIndexRange = 'bip44:derive-index-range',\n\n /**\n * Represents accounts created through BIP-44 account discovery.\n *\n * More than one account can be created, for example, the keyring can create\n * multiple account types (e.g., P2PKH, P2TR, P2WPKH) for the same account\n * index.\n */\n Bip44Discover = 'bip44:discover',\n\n /**\n * Represents an account imported from a private key.\n */\n PrivateKeyImport = 'private-key:import',\n\n /**\n * Represents an account created using a custom, keyring-specific method.\n *\n * This is used by keyrings that have non-standard account creation flows\n * and declare `custom.createAccounts: true` in their capabilities.\n */\n Custom = 'custom',\n}\n\n/**\n * Struct for {@link CreateAccountOptions}.\n */\nexport const CreateAccountOptionsStruct = selectiveUnion((value: any) => {\n const accountCreationType = value?.type as AccountCreationType;\n switch (accountCreationType) {\n case AccountCreationType.Bip44DerivePath:\n return CreateAccountBip44DerivePathOptionsStruct;\n case AccountCreationType.Bip44DeriveIndex:\n return CreateAccountBip44DeriveIndexOptionsStruct;\n case AccountCreationType.Bip44DeriveIndexRange:\n return CreateAccountBip44DeriveIndexRangeOptionsStruct;\n case AccountCreationType.Bip44Discover:\n return CreateAccountBip44DiscoverOptionsStruct;\n case AccountCreationType.PrivateKeyImport:\n return CreateAccountPrivateKeyOptionsStruct;\n case AccountCreationType.Custom:\n return CreateAccountCustomOptionsStruct;\n default:\n // Return first struct as fallback - validation will fail with proper error indicating the type mismatch\n return CreateAccountBip44DerivePathOptionsStruct;\n }\n});\n\n/**\n * Represents the available options for creating a new account.\n */\nexport type CreateAccountOptions = Infer<typeof CreateAccountOptionsStruct>;\n\n/**\n * Asserts that a given create account option type is supported by the keyring.\n *\n * @example\n * ```ts\n * createAccounts(options: CreateAccountOptions) {\n * assertCreateAccountOptionIsSupported(options, [\n * ${AccountCreationType.Bip44DeriveIndex},\n * ${AccountCreationType.Bip44DeriveIndexRange},\n * ] as const);\n *\n * // At this point, TypeScript knows that options.type is either Bip44DeriveIndex or Bip44DeriveIndexRange.\n * if (options.type === AccountCreationType.Bip44DeriveIndex) {\n * ... // Handle Bip44DeriveIndex case.\n * } else {\n * ... // Handle Bip44DeriveIndexRange case.\n * }\n * ...\n * return accounts;\n * }\n * ```\n *\n * @param options - The create account option object to check.\n * @param supportedTypes - The list of supported create account option types for this keyring.\n * @throws Will throw an error if the provided options are not supported.\n */\nexport function assertCreateAccountOptionIsSupported<\n Options extends CreateAccountOptions,\n // We use template literal types to enforce string-literal over strict enum values.\n Type extends `${CreateAccountOptions['type']}`,\n>(\n options: Options,\n supportedTypes: readonly `${Type}`[],\n // Use intersection to avoid widening `type` beyond `Options['type']`.\n): asserts options is Options & { type: `${Type}` & `${Options['type']}` } {\n const { type } = options;\n const types: readonly CreateAccountOptions['type'][] = supportedTypes;\n\n if (!types.includes(type)) {\n throw new Error(`Unsupported create account option type: ${type}`);\n }\n}\n"]}
|
|
@@ -6,7 +6,7 @@ import { type Infer } from "@metamask/superstruct";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const EthUserOperationStruct: import("@metamask/superstruct").Struct<{
|
|
8
8
|
nonce: string;
|
|
9
|
-
sender:
|
|
9
|
+
sender: string;
|
|
10
10
|
initCode: string;
|
|
11
11
|
callData: string;
|
|
12
12
|
callGasLimit: string;
|
|
@@ -17,7 +17,7 @@ export declare const EthUserOperationStruct: import("@metamask/superstruct").Str
|
|
|
17
17
|
paymasterAndData: string;
|
|
18
18
|
signature: string;
|
|
19
19
|
}, {
|
|
20
|
-
sender: import("@metamask/superstruct").Struct
|
|
20
|
+
sender: import("@metamask/superstruct").Struct<string, null>;
|
|
21
21
|
nonce: import("@metamask/superstruct").Struct<string, null>;
|
|
22
22
|
initCode: import("@metamask/superstruct").Struct<string, null>;
|
|
23
23
|
callData: import("@metamask/superstruct").Struct<string, null>;
|
|
@@ -37,12 +37,12 @@ export type EthUserOperation = Infer<typeof EthUserOperationStruct>;
|
|
|
37
37
|
export declare const EthBaseTransactionStruct: import("@metamask/superstruct").Struct<{
|
|
38
38
|
value: string;
|
|
39
39
|
data: string;
|
|
40
|
-
to:
|
|
40
|
+
to: string;
|
|
41
41
|
}, {
|
|
42
42
|
/**
|
|
43
43
|
* Address of the transaction recipient.
|
|
44
44
|
*/
|
|
45
|
-
to: import("@metamask/superstruct").Struct
|
|
45
|
+
to: import("@metamask/superstruct").Struct<string, null>;
|
|
46
46
|
/**
|
|
47
47
|
* Amount of wei to transfer to the recipient.
|
|
48
48
|
*/
|
|
@@ -6,7 +6,7 @@ import { type Infer } from "@metamask/superstruct";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const EthUserOperationStruct: import("@metamask/superstruct").Struct<{
|
|
8
8
|
nonce: string;
|
|
9
|
-
sender:
|
|
9
|
+
sender: string;
|
|
10
10
|
initCode: string;
|
|
11
11
|
callData: string;
|
|
12
12
|
callGasLimit: string;
|
|
@@ -17,7 +17,7 @@ export declare const EthUserOperationStruct: import("@metamask/superstruct").Str
|
|
|
17
17
|
paymasterAndData: string;
|
|
18
18
|
signature: string;
|
|
19
19
|
}, {
|
|
20
|
-
sender: import("@metamask/superstruct").Struct
|
|
20
|
+
sender: import("@metamask/superstruct").Struct<string, null>;
|
|
21
21
|
nonce: import("@metamask/superstruct").Struct<string, null>;
|
|
22
22
|
initCode: import("@metamask/superstruct").Struct<string, null>;
|
|
23
23
|
callData: import("@metamask/superstruct").Struct<string, null>;
|
|
@@ -37,12 +37,12 @@ export type EthUserOperation = Infer<typeof EthUserOperationStruct>;
|
|
|
37
37
|
export declare const EthBaseTransactionStruct: import("@metamask/superstruct").Struct<{
|
|
38
38
|
value: string;
|
|
39
39
|
data: string;
|
|
40
|
-
to:
|
|
40
|
+
to: string;
|
|
41
41
|
}, {
|
|
42
42
|
/**
|
|
43
43
|
* Address of the transaction recipient.
|
|
44
44
|
*/
|
|
45
|
-
to: import("@metamask/superstruct").Struct
|
|
45
|
+
to: import("@metamask/superstruct").Struct<string, null>;
|
|
46
46
|
/**
|
|
47
47
|
* Amount of wei to transfer to the recipient.
|
|
48
48
|
*/
|
package/dist/eth/rpc/params.cjs
CHANGED
|
@@ -78,7 +78,7 @@ exports.EthEncryptedDataStruct = (0, keyring_utils_1.object)({
|
|
|
78
78
|
*/
|
|
79
79
|
exports.EthEip7702AuthorizationStruct = (0, superstruct_1.tuple)([
|
|
80
80
|
(0, superstruct_1.number)(), // chainId
|
|
81
|
-
types_1.
|
|
81
|
+
types_1.EthAddressStrictStruct, // address (contract to delegate to)
|
|
82
82
|
(0, superstruct_1.number)(), // nonce
|
|
83
83
|
]);
|
|
84
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.cjs","sourceRoot":"","sources":["../../../src/eth/rpc/params.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,2DAAiD;AAEjD,uDAa+B;AAE/B,
|
|
1
|
+
{"version":3,"file":"params.cjs","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"]}
|
|
@@ -17,22 +17,22 @@ export declare const EthTransactionDataStruct: import("@metamask/superstruct").S
|
|
|
17
17
|
value?: string | number | undefined;
|
|
18
18
|
type?: string | number | undefined;
|
|
19
19
|
data?: string | undefined;
|
|
20
|
-
from?:
|
|
20
|
+
from?: string | undefined;
|
|
21
21
|
chainId?: string | number | undefined;
|
|
22
22
|
accessList?: {
|
|
23
|
-
address:
|
|
23
|
+
address: string;
|
|
24
24
|
storageKeys: string[];
|
|
25
25
|
}[] | undefined;
|
|
26
26
|
nonce?: string | number | undefined;
|
|
27
|
-
to?:
|
|
27
|
+
to?: string | null | undefined;
|
|
28
28
|
maxFeePerGas?: string | number | undefined;
|
|
29
29
|
maxPriorityFeePerGas?: string | number | undefined;
|
|
30
30
|
gas?: string | number | undefined;
|
|
31
31
|
gasLimit?: string | number | undefined;
|
|
32
32
|
gasPrice?: string | number | undefined;
|
|
33
33
|
}, {
|
|
34
|
-
to: import("@metamask/superstruct").Struct
|
|
35
|
-
from: import("@metamask/superstruct").Struct
|
|
34
|
+
to: import("@metamask/superstruct").Struct<string | null | undefined, null>;
|
|
35
|
+
from: import("@metamask/superstruct").Struct<string | undefined, null>;
|
|
36
36
|
nonce: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
37
37
|
value: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
38
38
|
data: import("@metamask/superstruct").Struct<string | undefined, null>;
|
|
@@ -42,13 +42,13 @@ export declare const EthTransactionDataStruct: import("@metamask/superstruct").S
|
|
|
42
42
|
maxFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
43
43
|
maxPriorityFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
44
44
|
accessList: import("@metamask/superstruct").Struct<{
|
|
45
|
-
address:
|
|
45
|
+
address: string;
|
|
46
46
|
storageKeys: string[];
|
|
47
47
|
}[] | undefined, import("@metamask/superstruct").Struct<{
|
|
48
|
-
address:
|
|
48
|
+
address: string;
|
|
49
49
|
storageKeys: string[];
|
|
50
50
|
}, {
|
|
51
|
-
address: import("@metamask/superstruct").Struct
|
|
51
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
52
52
|
storageKeys: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
|
|
53
53
|
}>>;
|
|
54
54
|
type: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
@@ -136,14 +136,14 @@ export declare const EthSignTransactionParamsStruct: import("@metamask/superstru
|
|
|
136
136
|
value?: string | number | undefined;
|
|
137
137
|
type?: string | number | undefined;
|
|
138
138
|
data?: string | undefined;
|
|
139
|
-
from?:
|
|
139
|
+
from?: string | undefined;
|
|
140
140
|
chainId?: string | number | undefined;
|
|
141
141
|
accessList?: {
|
|
142
|
-
address:
|
|
142
|
+
address: string;
|
|
143
143
|
storageKeys: string[];
|
|
144
144
|
}[] | undefined;
|
|
145
145
|
nonce?: string | number | undefined;
|
|
146
|
-
to?:
|
|
146
|
+
to?: string | null | undefined;
|
|
147
147
|
maxFeePerGas?: string | number | undefined;
|
|
148
148
|
maxPriorityFeePerGas?: string | number | undefined;
|
|
149
149
|
gas?: string | number | undefined;
|
|
@@ -154,17 +154,17 @@ export type EthSignTransactionParams = Infer<typeof EthSignTransactionParamsStru
|
|
|
154
154
|
/**
|
|
155
155
|
* Parameters for `eth_sign`.
|
|
156
156
|
*/
|
|
157
|
-
export declare const EthSignParamsStruct: import("@metamask/superstruct").Struct<[
|
|
157
|
+
export declare const EthSignParamsStruct: import("@metamask/superstruct").Struct<[string, string], null>;
|
|
158
158
|
export type EthSignParams = Infer<typeof EthSignParamsStruct>;
|
|
159
159
|
/**
|
|
160
160
|
* Parameters for `personal_sign`.
|
|
161
161
|
*/
|
|
162
|
-
export declare const EthPersonalSignParamsStruct: import("@metamask/superstruct").Struct<[string] | [string
|
|
162
|
+
export declare const EthPersonalSignParamsStruct: import("@metamask/superstruct").Struct<[string, string] | [string], null>;
|
|
163
163
|
export type EthPersonalSignParams = Infer<typeof EthPersonalSignParamsStruct>;
|
|
164
164
|
/**
|
|
165
165
|
* Parameters for `eth_signTypedData_v1`.
|
|
166
166
|
*/
|
|
167
|
-
export declare const EthSignTypedDataV1ParamsStruct: import("@metamask/superstruct").Struct<[
|
|
167
|
+
export declare const EthSignTypedDataV1ParamsStruct: import("@metamask/superstruct").Struct<[string, {
|
|
168
168
|
name: string;
|
|
169
169
|
value: unknown;
|
|
170
170
|
type: string;
|
|
@@ -173,7 +173,7 @@ export type EthSignTypedDataV1Params = Infer<typeof EthSignTypedDataV1ParamsStru
|
|
|
173
173
|
/**
|
|
174
174
|
* Parameters for `eth_signTypedData_v3` and `eth_signTypedData_v4`.
|
|
175
175
|
*/
|
|
176
|
-
export declare const EthSignTypedDataParamsStruct: import("@metamask/superstruct").Struct<[
|
|
176
|
+
export declare const EthSignTypedDataParamsStruct: import("@metamask/superstruct").Struct<[string, {
|
|
177
177
|
message: Record<string, any>;
|
|
178
178
|
domain: Record<string, any>;
|
|
179
179
|
types: Record<string, {
|
|
@@ -211,5 +211,5 @@ export type EthSignEip7702AuthorizationParams = Infer<typeof EthSignEip7702Autho
|
|
|
211
211
|
/**
|
|
212
212
|
* Parameters for `eth_getEncryptionPublicKey`.
|
|
213
213
|
*/
|
|
214
|
-
export declare const EthGetEncryptionPublicKeyParamsStruct: import("@metamask/superstruct").Struct<[
|
|
214
|
+
export declare const EthGetEncryptionPublicKeyParamsStruct: import("@metamask/superstruct").Struct<[string, Record<string, unknown> | undefined], null>;
|
|
215
215
|
//# sourceMappingURL=params.d.cts.map
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -17,22 +17,22 @@ export declare const EthTransactionDataStruct: import("@metamask/superstruct").S
|
|
|
17
17
|
value?: string | number | undefined;
|
|
18
18
|
type?: string | number | undefined;
|
|
19
19
|
data?: string | undefined;
|
|
20
|
-
from?:
|
|
20
|
+
from?: string | undefined;
|
|
21
21
|
chainId?: string | number | undefined;
|
|
22
22
|
accessList?: {
|
|
23
|
-
address:
|
|
23
|
+
address: string;
|
|
24
24
|
storageKeys: string[];
|
|
25
25
|
}[] | undefined;
|
|
26
26
|
nonce?: string | number | undefined;
|
|
27
|
-
to?:
|
|
27
|
+
to?: string | null | undefined;
|
|
28
28
|
maxFeePerGas?: string | number | undefined;
|
|
29
29
|
maxPriorityFeePerGas?: string | number | undefined;
|
|
30
30
|
gas?: string | number | undefined;
|
|
31
31
|
gasLimit?: string | number | undefined;
|
|
32
32
|
gasPrice?: string | number | undefined;
|
|
33
33
|
}, {
|
|
34
|
-
to: import("@metamask/superstruct").Struct
|
|
35
|
-
from: import("@metamask/superstruct").Struct
|
|
34
|
+
to: import("@metamask/superstruct").Struct<string | null | undefined, null>;
|
|
35
|
+
from: import("@metamask/superstruct").Struct<string | undefined, null>;
|
|
36
36
|
nonce: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
37
37
|
value: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
38
38
|
data: import("@metamask/superstruct").Struct<string | undefined, null>;
|
|
@@ -42,13 +42,13 @@ export declare const EthTransactionDataStruct: import("@metamask/superstruct").S
|
|
|
42
42
|
maxFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
43
43
|
maxPriorityFeePerGas: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
44
44
|
accessList: import("@metamask/superstruct").Struct<{
|
|
45
|
-
address:
|
|
45
|
+
address: string;
|
|
46
46
|
storageKeys: string[];
|
|
47
47
|
}[] | undefined, import("@metamask/superstruct").Struct<{
|
|
48
|
-
address:
|
|
48
|
+
address: string;
|
|
49
49
|
storageKeys: string[];
|
|
50
50
|
}, {
|
|
51
|
-
address: import("@metamask/superstruct").Struct
|
|
51
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
52
52
|
storageKeys: import("@metamask/superstruct").Struct<string[], import("@metamask/superstruct").Struct<string, null>>;
|
|
53
53
|
}>>;
|
|
54
54
|
type: import("@metamask/superstruct").Struct<string | number | undefined, null>;
|
|
@@ -136,14 +136,14 @@ export declare const EthSignTransactionParamsStruct: import("@metamask/superstru
|
|
|
136
136
|
value?: string | number | undefined;
|
|
137
137
|
type?: string | number | undefined;
|
|
138
138
|
data?: string | undefined;
|
|
139
|
-
from?:
|
|
139
|
+
from?: string | undefined;
|
|
140
140
|
chainId?: string | number | undefined;
|
|
141
141
|
accessList?: {
|
|
142
|
-
address:
|
|
142
|
+
address: string;
|
|
143
143
|
storageKeys: string[];
|
|
144
144
|
}[] | undefined;
|
|
145
145
|
nonce?: string | number | undefined;
|
|
146
|
-
to?:
|
|
146
|
+
to?: string | null | undefined;
|
|
147
147
|
maxFeePerGas?: string | number | undefined;
|
|
148
148
|
maxPriorityFeePerGas?: string | number | undefined;
|
|
149
149
|
gas?: string | number | undefined;
|
|
@@ -154,17 +154,17 @@ export type EthSignTransactionParams = Infer<typeof EthSignTransactionParamsStru
|
|
|
154
154
|
/**
|
|
155
155
|
* Parameters for `eth_sign`.
|
|
156
156
|
*/
|
|
157
|
-
export declare const EthSignParamsStruct: import("@metamask/superstruct").Struct<[
|
|
157
|
+
export declare const EthSignParamsStruct: import("@metamask/superstruct").Struct<[string, string], null>;
|
|
158
158
|
export type EthSignParams = Infer<typeof EthSignParamsStruct>;
|
|
159
159
|
/**
|
|
160
160
|
* Parameters for `personal_sign`.
|
|
161
161
|
*/
|
|
162
|
-
export declare const EthPersonalSignParamsStruct: import("@metamask/superstruct").Struct<[string] | [string
|
|
162
|
+
export declare const EthPersonalSignParamsStruct: import("@metamask/superstruct").Struct<[string, string] | [string], null>;
|
|
163
163
|
export type EthPersonalSignParams = Infer<typeof EthPersonalSignParamsStruct>;
|
|
164
164
|
/**
|
|
165
165
|
* Parameters for `eth_signTypedData_v1`.
|
|
166
166
|
*/
|
|
167
|
-
export declare const EthSignTypedDataV1ParamsStruct: import("@metamask/superstruct").Struct<[
|
|
167
|
+
export declare const EthSignTypedDataV1ParamsStruct: import("@metamask/superstruct").Struct<[string, {
|
|
168
168
|
name: string;
|
|
169
169
|
value: unknown;
|
|
170
170
|
type: string;
|
|
@@ -173,7 +173,7 @@ export type EthSignTypedDataV1Params = Infer<typeof EthSignTypedDataV1ParamsStru
|
|
|
173
173
|
/**
|
|
174
174
|
* Parameters for `eth_signTypedData_v3` and `eth_signTypedData_v4`.
|
|
175
175
|
*/
|
|
176
|
-
export declare const EthSignTypedDataParamsStruct: import("@metamask/superstruct").Struct<[
|
|
176
|
+
export declare const EthSignTypedDataParamsStruct: import("@metamask/superstruct").Struct<[string, {
|
|
177
177
|
message: Record<string, any>;
|
|
178
178
|
domain: Record<string, any>;
|
|
179
179
|
types: Record<string, {
|
|
@@ -211,5 +211,5 @@ export type EthSignEip7702AuthorizationParams = Infer<typeof EthSignEip7702Autho
|
|
|
211
211
|
/**
|
|
212
212
|
* Parameters for `eth_getEncryptionPublicKey`.
|
|
213
213
|
*/
|
|
214
|
-
export declare const EthGetEncryptionPublicKeyParamsStruct: import("@metamask/superstruct").Struct<[
|
|
214
|
+
export declare const EthGetEncryptionPublicKeyParamsStruct: import("@metamask/superstruct").Struct<[string, Record<string, unknown> | undefined], null>;
|
|
215
215
|
//# sourceMappingURL=params.d.mts.map
|
|
@@ -1 +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;
|
|
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"}
|
package/dist/eth/rpc/params.mjs
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { object } from "@metamask/keyring-utils";
|
|
9
9
|
import { any, array, literal, nullable, number, optional, record, string, tuple, type, union, unknown } from "@metamask/superstruct";
|
|
10
|
-
import { EthAddressStruct, EthBytesStruct } from "../types.mjs";
|
|
10
|
+
import { EthAddressStrictStruct, EthAddressStruct, EthBytesStruct } from "../types.mjs";
|
|
11
11
|
/**
|
|
12
12
|
* A struct for validating Ethereum transaction data.
|
|
13
13
|
*
|
|
@@ -75,7 +75,7 @@ export const EthEncryptedDataStruct = object({
|
|
|
75
75
|
*/
|
|
76
76
|
export const EthEip7702AuthorizationStruct = tuple([
|
|
77
77
|
number(), // chainId
|
|
78
|
-
|
|
78
|
+
EthAddressStrictStruct, // address (contract to delegate to)
|
|
79
79
|
number(), // nonce
|
|
80
80
|
]);
|
|
81
81
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"params.mjs","sourceRoot":"","sources":["../../../src/eth/rpc/params.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,gCAAgC;AAEjD,OAAO,EACL,GAAG,EACH,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,KAAK,EACL,IAAI,EACJ,KAAK,EACL,OAAO,EACR,8BAA8B;AAE/B,OAAO,
|
|
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,2CAA0D;AAE1D,kCAA6B;AAC7B,0CAIgB;AAEH,QAAA,cAAc,GAAG,IAAA,qBAAa,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;
|
|
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
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
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
|
-
export declare const EthAddressStruct: import("@metamask/superstruct").Struct
|
|
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.
|
|
@@ -33,14 +34,14 @@ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct
|
|
|
33
34
|
};
|
|
34
35
|
exportable?: boolean;
|
|
35
36
|
};
|
|
36
|
-
address:
|
|
37
|
+
address: string;
|
|
37
38
|
scopes: EthScope.Eoa[];
|
|
38
39
|
methods: ("personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4")[];
|
|
39
40
|
}, {
|
|
40
41
|
/**
|
|
41
42
|
* Account address.
|
|
42
43
|
*/
|
|
43
|
-
address: import("@metamask/superstruct").Struct
|
|
44
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
44
45
|
/**
|
|
45
46
|
* Account type.
|
|
46
47
|
*/
|
|
@@ -92,14 +93,14 @@ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").St
|
|
|
92
93
|
};
|
|
93
94
|
exportable?: boolean;
|
|
94
95
|
};
|
|
95
|
-
address:
|
|
96
|
+
address: string;
|
|
96
97
|
scopes: `${string}:${string}`[];
|
|
97
98
|
methods: ("personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation")[];
|
|
98
99
|
}, {
|
|
99
100
|
/**
|
|
100
101
|
* Account address.
|
|
101
102
|
*/
|
|
102
|
-
address: import("@metamask/superstruct").Struct
|
|
103
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
103
104
|
/**
|
|
104
105
|
* Account type.
|
|
105
106
|
*/
|
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
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
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
|
-
export declare const EthAddressStruct: import("@metamask/superstruct").Struct
|
|
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.
|
|
@@ -33,14 +34,14 @@ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct
|
|
|
33
34
|
};
|
|
34
35
|
exportable?: boolean;
|
|
35
36
|
};
|
|
36
|
-
address:
|
|
37
|
+
address: string;
|
|
37
38
|
scopes: EthScope.Eoa[];
|
|
38
39
|
methods: ("personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4")[];
|
|
39
40
|
}, {
|
|
40
41
|
/**
|
|
41
42
|
* Account address.
|
|
42
43
|
*/
|
|
43
|
-
address: import("@metamask/superstruct").Struct
|
|
44
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
44
45
|
/**
|
|
45
46
|
* Account type.
|
|
46
47
|
*/
|
|
@@ -92,14 +93,14 @@ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").St
|
|
|
92
93
|
};
|
|
93
94
|
exportable?: boolean;
|
|
94
95
|
};
|
|
95
|
-
address:
|
|
96
|
+
address: string;
|
|
96
97
|
scopes: `${string}:${string}`[];
|
|
97
98
|
methods: ("personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation")[];
|
|
98
99
|
}, {
|
|
99
100
|
/**
|
|
100
101
|
* Account address.
|
|
101
102
|
*/
|
|
102
|
-
address: import("@metamask/superstruct").Struct
|
|
103
|
+
address: import("@metamask/superstruct").Struct<string, null>;
|
|
103
104
|
/**
|
|
104
105
|
* Account type.
|
|
105
106
|
*/
|
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,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,CAAC,MAAM,gBAAgB,GAAG,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"]}
|