@metamask-previews/keyring-internal-api 0.0.1-11541a9

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.
Files changed (123) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +15 -0
  3. package/dist/api.cjs +138 -0
  4. package/dist/api.cjs.map +1 -0
  5. package/dist/api.d.cts +420 -0
  6. package/dist/api.d.cts.map +1 -0
  7. package/dist/api.d.mts +420 -0
  8. package/dist/api.d.mts.map +1 -0
  9. package/dist/api.mjs +135 -0
  10. package/dist/api.mjs.map +1 -0
  11. package/dist/btc/index.cjs +18 -0
  12. package/dist/btc/index.cjs.map +1 -0
  13. package/dist/btc/index.d.cts +2 -0
  14. package/dist/btc/index.d.cts.map +1 -0
  15. package/dist/btc/index.d.mts +2 -0
  16. package/dist/btc/index.d.mts.map +1 -0
  17. package/dist/btc/index.mjs +2 -0
  18. package/dist/btc/index.mjs.map +1 -0
  19. package/dist/btc/types.cjs +40 -0
  20. package/dist/btc/types.cjs.map +1 -0
  21. package/dist/btc/types.d.cts +34 -0
  22. package/dist/btc/types.d.cts.map +1 -0
  23. package/dist/btc/types.d.mts +34 -0
  24. package/dist/btc/types.d.mts.map +1 -0
  25. package/dist/btc/types.mjs +37 -0
  26. package/dist/btc/types.mjs.map +1 -0
  27. package/dist/eth/EthKeyring.cjs +3 -0
  28. package/dist/eth/EthKeyring.cjs.map +1 -0
  29. package/dist/eth/EthKeyring.d.cts +34 -0
  30. package/dist/eth/EthKeyring.d.cts.map +1 -0
  31. package/dist/eth/EthKeyring.d.mts +34 -0
  32. package/dist/eth/EthKeyring.d.mts.map +1 -0
  33. package/dist/eth/EthKeyring.mjs +2 -0
  34. package/dist/eth/EthKeyring.mjs.map +1 -0
  35. package/dist/eth/erc4337/index.cjs +18 -0
  36. package/dist/eth/erc4337/index.cjs.map +1 -0
  37. package/dist/eth/erc4337/index.d.cts +2 -0
  38. package/dist/eth/erc4337/index.d.cts.map +1 -0
  39. package/dist/eth/erc4337/index.d.mts +2 -0
  40. package/dist/eth/erc4337/index.d.mts.map +1 -0
  41. package/dist/eth/erc4337/index.mjs +2 -0
  42. package/dist/eth/erc4337/index.mjs.map +1 -0
  43. package/dist/eth/erc4337/types.cjs +61 -0
  44. package/dist/eth/erc4337/types.cjs.map +1 -0
  45. package/dist/eth/erc4337/types.d.cts +98 -0
  46. package/dist/eth/erc4337/types.d.cts.map +1 -0
  47. package/dist/eth/erc4337/types.d.mts +98 -0
  48. package/dist/eth/erc4337/types.d.mts.map +1 -0
  49. package/dist/eth/erc4337/types.mjs +58 -0
  50. package/dist/eth/erc4337/types.mjs.map +1 -0
  51. package/dist/eth/index.cjs +20 -0
  52. package/dist/eth/index.cjs.map +1 -0
  53. package/dist/eth/index.d.cts +5 -0
  54. package/dist/eth/index.d.cts.map +1 -0
  55. package/dist/eth/index.d.mts +5 -0
  56. package/dist/eth/index.d.mts.map +1 -0
  57. package/dist/eth/index.mjs +4 -0
  58. package/dist/eth/index.mjs.map +1 -0
  59. package/dist/eth/types.cjs +73 -0
  60. package/dist/eth/types.cjs.map +1 -0
  61. package/dist/eth/types.d.cts +81 -0
  62. package/dist/eth/types.d.cts.map +1 -0
  63. package/dist/eth/types.d.mts +81 -0
  64. package/dist/eth/types.d.mts.map +1 -0
  65. package/dist/eth/types.mjs +70 -0
  66. package/dist/eth/types.mjs.map +1 -0
  67. package/dist/eth/utils.cjs +14 -0
  68. package/dist/eth/utils.cjs.map +1 -0
  69. package/dist/eth/utils.d.cts +9 -0
  70. package/dist/eth/utils.d.cts.map +1 -0
  71. package/dist/eth/utils.d.mts +9 -0
  72. package/dist/eth/utils.d.mts.map +1 -0
  73. package/dist/eth/utils.mjs +11 -0
  74. package/dist/eth/utils.mjs.map +1 -0
  75. package/dist/events.cjs +83 -0
  76. package/dist/events.cjs.map +1 -0
  77. package/dist/events.d.cts +172 -0
  78. package/dist/events.d.cts.map +1 -0
  79. package/dist/events.d.mts +172 -0
  80. package/dist/events.d.mts.map +1 -0
  81. package/dist/events.mjs +80 -0
  82. package/dist/events.mjs.map +1 -0
  83. package/dist/index.cjs +24 -0
  84. package/dist/index.cjs.map +1 -0
  85. package/dist/index.d.cts +8 -0
  86. package/dist/index.d.cts.map +1 -0
  87. package/dist/index.d.mts +8 -0
  88. package/dist/index.d.mts.map +1 -0
  89. package/dist/index.mjs +8 -0
  90. package/dist/index.mjs.map +1 -0
  91. package/dist/rpc.cjs +33 -0
  92. package/dist/rpc.cjs.map +1 -0
  93. package/dist/rpc.d.cts +26 -0
  94. package/dist/rpc.d.cts.map +1 -0
  95. package/dist/rpc.d.mts +26 -0
  96. package/dist/rpc.d.mts.map +1 -0
  97. package/dist/rpc.mjs +29 -0
  98. package/dist/rpc.mjs.map +1 -0
  99. package/dist/sol/index.cjs +18 -0
  100. package/dist/sol/index.cjs.map +1 -0
  101. package/dist/sol/index.d.cts +2 -0
  102. package/dist/sol/index.d.cts.map +1 -0
  103. package/dist/sol/index.d.mts +2 -0
  104. package/dist/sol/index.d.mts.map +1 -0
  105. package/dist/sol/index.mjs +2 -0
  106. package/dist/sol/index.mjs.map +1 -0
  107. package/dist/sol/types.cjs +36 -0
  108. package/dist/sol/types.cjs.map +1 -0
  109. package/dist/sol/types.d.cts +39 -0
  110. package/dist/sol/types.d.cts.map +1 -0
  111. package/dist/sol/types.d.mts +39 -0
  112. package/dist/sol/types.d.mts.map +1 -0
  113. package/dist/sol/types.mjs +33 -0
  114. package/dist/sol/types.mjs.map +1 -0
  115. package/dist/types.cjs +56 -0
  116. package/dist/types.cjs.map +1 -0
  117. package/dist/types.d.cts +392 -0
  118. package/dist/types.d.cts.map +1 -0
  119. package/dist/types.d.mts +392 -0
  120. package/dist/types.d.mts.map +1 -0
  121. package/dist/types.mjs +53 -0
  122. package/dist/types.mjs.map +1 -0
  123. package/package.json +90 -0
@@ -0,0 +1,58 @@
1
+ import { exactOptional, object, UrlStruct } from "@metamask/keyring-utils";
2
+ import { EthAddressStruct, EthBytesStruct, EthUint256Struct } from "../types.mjs";
3
+ /**
4
+ * Struct of a UserOperation as defined by ERC-4337.
5
+ *
6
+ * @see https://eips.ethereum.org/EIPS/eip-4337#definitions
7
+ */
8
+ export const EthUserOperationStruct = object({
9
+ sender: EthAddressStruct,
10
+ nonce: EthUint256Struct,
11
+ initCode: EthBytesStruct,
12
+ callData: EthBytesStruct,
13
+ callGasLimit: EthUint256Struct,
14
+ verificationGasLimit: EthUint256Struct,
15
+ preVerificationGas: EthUint256Struct,
16
+ maxFeePerGas: EthUint256Struct,
17
+ maxPriorityFeePerGas: EthUint256Struct,
18
+ paymasterAndData: EthBytesStruct,
19
+ signature: EthBytesStruct,
20
+ });
21
+ /**
22
+ * Struct containing the most basic transaction information required to
23
+ * construct a UserOperation.
24
+ */
25
+ export const EthBaseTransactionStruct = object({
26
+ /**
27
+ * Address of the transaction recipient.
28
+ */
29
+ to: EthAddressStruct,
30
+ /**
31
+ * Amount of wei to transfer to the recipient.
32
+ */
33
+ value: EthUint256Struct,
34
+ /**
35
+ * Data to pass to the recipient.
36
+ */
37
+ data: EthBytesStruct,
38
+ });
39
+ export const EthBaseUserOperationStruct = object({
40
+ nonce: EthUint256Struct,
41
+ initCode: EthBytesStruct,
42
+ callData: EthBytesStruct,
43
+ gasLimits: exactOptional(object({
44
+ callGasLimit: EthUint256Struct,
45
+ verificationGasLimit: EthUint256Struct,
46
+ preVerificationGas: EthUint256Struct,
47
+ })),
48
+ dummyPaymasterAndData: EthBytesStruct,
49
+ dummySignature: EthBytesStruct,
50
+ bundlerUrl: UrlStruct,
51
+ });
52
+ export const EthUserOperationPatchStruct = object({
53
+ paymasterAndData: EthBytesStruct,
54
+ callGasLimit: exactOptional(EthUint256Struct),
55
+ verificationGasLimit: exactOptional(EthUint256Struct),
56
+ preVerificationGas: exactOptional(EthUint256Struct),
57
+ });
58
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../../src/eth/erc4337/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gCAAgC;AAG3E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAiB;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;IAC3C,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,YAAY,EAAE,gBAAgB;IAC9B,oBAAoB,EAAE,gBAAgB;IACtC,kBAAkB,EAAE,gBAAgB;IACpC,YAAY,EAAE,gBAAgB;IAC9B,oBAAoB,EAAE,gBAAgB;IACtC,gBAAgB,EAAE,cAAc;IAChC,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;IAC7C;;OAEG;IACH,EAAE,EAAE,gBAAgB;IAEpB;;OAEG;IACH,KAAK,EAAE,gBAAgB;IAEvB;;OAEG;IACH,IAAI,EAAE,cAAc;CACrB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;IAC/C,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,cAAc;IACxB,QAAQ,EAAE,cAAc;IACxB,SAAS,EAAE,aAAa,CACtB,MAAM,CAAC;QACL,YAAY,EAAE,gBAAgB;QAC9B,oBAAoB,EAAE,gBAAgB;QACtC,kBAAkB,EAAE,gBAAgB;KACrC,CAAC,CACH;IACD,qBAAqB,EAAE,cAAc;IACrC,cAAc,EAAE,cAAc;IAC9B,UAAU,EAAE,SAAS;CACtB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC;IAChD,gBAAgB,EAAE,cAAc;IAChC,YAAY,EAAE,aAAa,CAAC,gBAAgB,CAAC;IAC7C,oBAAoB,EAAE,aAAa,CAAC,gBAAgB,CAAC;IACrD,kBAAkB,EAAE,aAAa,CAAC,gBAAgB,CAAC;CACpD,CAAC,CAAC","sourcesContent":["import { exactOptional, object, UrlStruct } from '@metamask/keyring-utils';\nimport { type Infer } from '@metamask/superstruct';\n\nimport { EthAddressStruct, EthBytesStruct, EthUint256Struct } from '../types';\n\n/**\n * Struct of a UserOperation as defined by ERC-4337.\n *\n * @see https://eips.ethereum.org/EIPS/eip-4337#definitions\n */\nexport const EthUserOperationStruct = object({\n sender: EthAddressStruct,\n nonce: EthUint256Struct,\n initCode: EthBytesStruct,\n callData: EthBytesStruct,\n callGasLimit: EthUint256Struct,\n verificationGasLimit: EthUint256Struct,\n preVerificationGas: EthUint256Struct,\n maxFeePerGas: EthUint256Struct,\n maxPriorityFeePerGas: EthUint256Struct,\n paymasterAndData: EthBytesStruct,\n signature: EthBytesStruct,\n});\n\nexport type EthUserOperation = Infer<typeof EthUserOperationStruct>;\n\n/**\n * Struct containing the most basic transaction information required to\n * construct a UserOperation.\n */\nexport const EthBaseTransactionStruct = object({\n /**\n * Address of the transaction recipient.\n */\n to: EthAddressStruct,\n\n /**\n * Amount of wei to transfer to the recipient.\n */\n value: EthUint256Struct,\n\n /**\n * Data to pass to the recipient.\n */\n data: EthBytesStruct,\n});\n\nexport type EthBaseTransaction = Infer<typeof EthBaseTransactionStruct>;\n\nexport const EthBaseUserOperationStruct = object({\n nonce: EthUint256Struct,\n initCode: EthBytesStruct,\n callData: EthBytesStruct,\n gasLimits: exactOptional(\n object({\n callGasLimit: EthUint256Struct,\n verificationGasLimit: EthUint256Struct,\n preVerificationGas: EthUint256Struct,\n }),\n ),\n dummyPaymasterAndData: EthBytesStruct,\n dummySignature: EthBytesStruct,\n bundlerUrl: UrlStruct,\n});\n\nexport type EthBaseUserOperation = Infer<typeof EthBaseUserOperationStruct>;\n\nexport const EthUserOperationPatchStruct = object({\n paymasterAndData: EthBytesStruct,\n callGasLimit: exactOptional(EthUint256Struct),\n verificationGasLimit: exactOptional(EthUint256Struct),\n preVerificationGas: exactOptional(EthUint256Struct),\n});\n\nexport type EthUserOperationPatch = Infer<typeof EthUserOperationPatchStruct>;\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./erc4337/index.cjs"), exports);
18
+ __exportStar(require("./types.cjs"), exports);
19
+ __exportStar(require("./utils.cjs"), exports);
20
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAA0B;AAC1B,8CAAwB;AACxB,8CAAwB","sourcesContent":["export * from './erc4337';\nexport * from './types';\nexport * from './utils';\nexport type * from './EthKeyring';\n"]}
@@ -0,0 +1,5 @@
1
+ export * from "./erc4337/index.cjs";
2
+ export * from "./types.cjs";
3
+ export * from "./utils.cjs";
4
+ export type * from "./EthKeyring.cjs";
5
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,oCAA0B;AAC1B,4BAAwB;AACxB,4BAAwB;AACxB,sCAAkC"}
@@ -0,0 +1,5 @@
1
+ export * from "./erc4337/index.mjs";
2
+ export * from "./types.mjs";
3
+ export * from "./utils.mjs";
4
+ export type * from "./EthKeyring.mjs";
5
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,oCAA0B;AAC1B,4BAAwB;AACxB,4BAAwB;AACxB,sCAAkC"}
@@ -0,0 +1,4 @@
1
+ export * from "./erc4337/index.mjs";
2
+ export * from "./types.mjs";
3
+ export * from "./utils.mjs";
4
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/eth/index.ts"],"names":[],"mappings":"AAAA,oCAA0B;AAC1B,4BAAwB;AACxB,4BAAwB","sourcesContent":["export * from './erc4337';\nexport * from './types';\nexport * from './utils';\nexport type * from './EthKeyring';\n"]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EthErc4337AccountStruct = exports.EthEoaAccountStruct = exports.EthMethod = exports.EthUint256Struct = exports.EthAddressStruct = exports.EthBytesStruct = void 0;
4
+ const keyring_api_1 = require("@metamask/keyring-api");
5
+ const keyring_utils_1 = require("@metamask/keyring-utils");
6
+ const superstruct_1 = require("@metamask/superstruct");
7
+ exports.EthBytesStruct = (0, keyring_utils_1.definePattern)('EthBytes', /^0x[0-9a-f]*$/iu);
8
+ exports.EthAddressStruct = (0, keyring_utils_1.definePattern)('EthAddress', /^0x[0-9a-f]{40}$/iu);
9
+ exports.EthUint256Struct = (0, keyring_utils_1.definePattern)('EthUint256', /^0x([1-9a-f][0-9a-f]*|0)$/iu);
10
+ /**
11
+ * Supported Ethereum methods.
12
+ */
13
+ var EthMethod;
14
+ (function (EthMethod) {
15
+ // General signing methods
16
+ EthMethod["PersonalSign"] = "personal_sign";
17
+ EthMethod["Sign"] = "eth_sign";
18
+ EthMethod["SignTransaction"] = "eth_signTransaction";
19
+ EthMethod["SignTypedDataV1"] = "eth_signTypedData_v1";
20
+ EthMethod["SignTypedDataV3"] = "eth_signTypedData_v3";
21
+ EthMethod["SignTypedDataV4"] = "eth_signTypedData_v4";
22
+ // ERC-4337 methods
23
+ EthMethod["PrepareUserOperation"] = "eth_prepareUserOperation";
24
+ EthMethod["PatchUserOperation"] = "eth_patchUserOperation";
25
+ EthMethod["SignUserOperation"] = "eth_signUserOperation";
26
+ })(EthMethod || (exports.EthMethod = EthMethod = {}));
27
+ exports.EthEoaAccountStruct = (0, keyring_utils_1.object)({
28
+ ...keyring_api_1.KeyringAccountStruct.schema,
29
+ /**
30
+ * Account address.
31
+ */
32
+ address: exports.EthAddressStruct,
33
+ /**
34
+ * Account type.
35
+ */
36
+ type: (0, superstruct_1.literal)(`${keyring_api_1.EthAccountType.Eoa}`),
37
+ /**
38
+ * Account supported methods.
39
+ */
40
+ methods: (0, superstruct_1.array)((0, superstruct_1.enums)([
41
+ `${EthMethod.PersonalSign}`,
42
+ `${EthMethod.Sign}`,
43
+ `${EthMethod.SignTransaction}`,
44
+ `${EthMethod.SignTypedDataV1}`,
45
+ `${EthMethod.SignTypedDataV3}`,
46
+ `${EthMethod.SignTypedDataV4}`,
47
+ ])),
48
+ });
49
+ exports.EthErc4337AccountStruct = (0, keyring_utils_1.object)({
50
+ ...keyring_api_1.KeyringAccountStruct.schema,
51
+ /**
52
+ * Account address.
53
+ */
54
+ address: exports.EthAddressStruct,
55
+ /**
56
+ * Account type.
57
+ */
58
+ type: (0, superstruct_1.literal)(`${keyring_api_1.EthAccountType.Erc4337}`),
59
+ /**
60
+ * Account supported methods.
61
+ */
62
+ methods: (0, superstruct_1.array)((0, superstruct_1.enums)([
63
+ `${EthMethod.PersonalSign}`,
64
+ `${EthMethod.Sign}`,
65
+ `${EthMethod.SignTypedDataV1}`,
66
+ `${EthMethod.SignTypedDataV3}`,
67
+ `${EthMethod.SignTypedDataV4}`,
68
+ `${EthMethod.PrepareUserOperation}`,
69
+ `${EthMethod.PatchUserOperation}`,
70
+ `${EthMethod.SignUserOperation}`,
71
+ ])),
72
+ });
73
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":";;;AAAA,uDAA6E;AAC7E,2DAAgE;AAEhE,uDAA8D;AAEjD,QAAA,cAAc,GAAG,IAAA,6BAAa,EAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAE9D,QAAA,gBAAgB,GAAG,IAAA,6BAAa,EAC3C,YAAY,EACZ,oBAAoB,CACrB,CAAC;AAEW,QAAA,gBAAgB,GAAG,IAAA,6BAAa,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,kCAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,wBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,IAAA,qBAAO,EAAC,GAAG,4BAAc,CAAC,GAAG,EAAE,CAAC;IAEtC;;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,kCAAoB,CAAC,MAAM;IAE9B;;OAEG;IACH,OAAO,EAAE,wBAAgB;IAEzB;;OAEG;IACH,IAAI,EAAE,IAAA,qBAAO,EAAC,GAAG,4BAAc,CAAC,OAAO,EAAE,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 { EthAccountType, KeyringAccountStruct } from '@metamask/keyring-api';\nimport { object, definePattern } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport { array, enums, literal } from '@metamask/superstruct';\n\nexport const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu);\n\nexport const EthAddressStruct = definePattern(\n 'EthAddress',\n /^0x[0-9a-f]{40}$/iu,\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 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 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"]}
@@ -0,0 +1,81 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ export declare const EthBytesStruct: import("@metamask/superstruct").Struct<string, null>;
3
+ export declare const EthAddressStruct: import("@metamask/superstruct").Struct<string, null>;
4
+ export declare const EthUint256Struct: import("@metamask/superstruct").Struct<string, null>;
5
+ /**
6
+ * Supported Ethereum methods.
7
+ */
8
+ export declare enum EthMethod {
9
+ PersonalSign = "personal_sign",
10
+ Sign = "eth_sign",
11
+ SignTransaction = "eth_signTransaction",
12
+ SignTypedDataV1 = "eth_signTypedData_v1",
13
+ SignTypedDataV3 = "eth_signTypedData_v3",
14
+ SignTypedDataV4 = "eth_signTypedData_v4",
15
+ PrepareUserOperation = "eth_prepareUserOperation",
16
+ PatchUserOperation = "eth_patchUserOperation",
17
+ SignUserOperation = "eth_signUserOperation"
18
+ }
19
+ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct<{
20
+ id: string;
21
+ options: Record<string, import("@metamask/utils").Json>;
22
+ type: "eip155:eoa";
23
+ address: string;
24
+ methods: ("personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4")[];
25
+ }, {
26
+ /**
27
+ * Account address.
28
+ */
29
+ address: import("@metamask/superstruct").Struct<string, null>;
30
+ /**
31
+ * Account type.
32
+ */
33
+ type: import("@metamask/superstruct").Struct<"eip155:eoa", "eip155:eoa">;
34
+ /**
35
+ * Account supported methods.
36
+ */
37
+ methods: import("@metamask/superstruct").Struct<("personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4")[], import("@metamask/superstruct").Struct<"personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4", {
38
+ personal_sign: "personal_sign";
39
+ eth_sign: "eth_sign";
40
+ eth_signTransaction: "eth_signTransaction";
41
+ eth_signTypedData_v1: "eth_signTypedData_v1";
42
+ eth_signTypedData_v3: "eth_signTypedData_v3";
43
+ eth_signTypedData_v4: "eth_signTypedData_v4";
44
+ }>>;
45
+ id: import("@metamask/superstruct").Struct<string, null>;
46
+ options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json>, null>;
47
+ }>;
48
+ export type EthEoaAccount = Infer<typeof EthEoaAccountStruct>;
49
+ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").Struct<{
50
+ id: string;
51
+ options: Record<string, import("@metamask/utils").Json>;
52
+ type: "eip155:erc4337";
53
+ address: string;
54
+ methods: ("personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation")[];
55
+ }, {
56
+ /**
57
+ * Account address.
58
+ */
59
+ address: import("@metamask/superstruct").Struct<string, null>;
60
+ /**
61
+ * Account type.
62
+ */
63
+ type: import("@metamask/superstruct").Struct<"eip155:erc4337", "eip155:erc4337">;
64
+ /**
65
+ * Account supported methods.
66
+ */
67
+ methods: import("@metamask/superstruct").Struct<("personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation")[], import("@metamask/superstruct").Struct<"personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation", {
68
+ personal_sign: "personal_sign";
69
+ eth_sign: "eth_sign";
70
+ eth_signTypedData_v1: "eth_signTypedData_v1";
71
+ eth_signTypedData_v3: "eth_signTypedData_v3";
72
+ eth_signTypedData_v4: "eth_signTypedData_v4";
73
+ eth_prepareUserOperation: "eth_prepareUserOperation";
74
+ eth_patchUserOperation: "eth_patchUserOperation";
75
+ eth_signUserOperation: "eth_signUserOperation";
76
+ }>>;
77
+ id: import("@metamask/superstruct").Struct<string, null>;
78
+ options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json>, null>;
79
+ }>;
80
+ export type EthErc4337Account = Infer<typeof EthErc4337AccountStruct>;
81
+ //# sourceMappingURL=types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.cts","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAGnD,eAAO,MAAM,cAAc,sDAA+C,CAAC;AAE3E,eAAO,MAAM,gBAAgB,sDAG5B,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;;;;;;;;;;;EAWH,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE9D,eAAO,MAAM,uBAAuB;;;;;;;IAGlC;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;EAaH,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,81 @@
1
+ import type { Infer } from "@metamask/superstruct";
2
+ export declare const EthBytesStruct: import("@metamask/superstruct").Struct<string, null>;
3
+ export declare const EthAddressStruct: import("@metamask/superstruct").Struct<string, null>;
4
+ export declare const EthUint256Struct: import("@metamask/superstruct").Struct<string, null>;
5
+ /**
6
+ * Supported Ethereum methods.
7
+ */
8
+ export declare enum EthMethod {
9
+ PersonalSign = "personal_sign",
10
+ Sign = "eth_sign",
11
+ SignTransaction = "eth_signTransaction",
12
+ SignTypedDataV1 = "eth_signTypedData_v1",
13
+ SignTypedDataV3 = "eth_signTypedData_v3",
14
+ SignTypedDataV4 = "eth_signTypedData_v4",
15
+ PrepareUserOperation = "eth_prepareUserOperation",
16
+ PatchUserOperation = "eth_patchUserOperation",
17
+ SignUserOperation = "eth_signUserOperation"
18
+ }
19
+ export declare const EthEoaAccountStruct: import("@metamask/superstruct").Struct<{
20
+ id: string;
21
+ options: Record<string, import("@metamask/utils").Json>;
22
+ type: "eip155:eoa";
23
+ address: string;
24
+ methods: ("personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4")[];
25
+ }, {
26
+ /**
27
+ * Account address.
28
+ */
29
+ address: import("@metamask/superstruct").Struct<string, null>;
30
+ /**
31
+ * Account type.
32
+ */
33
+ type: import("@metamask/superstruct").Struct<"eip155:eoa", "eip155:eoa">;
34
+ /**
35
+ * Account supported methods.
36
+ */
37
+ methods: import("@metamask/superstruct").Struct<("personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4")[], import("@metamask/superstruct").Struct<"personal_sign" | "eth_sign" | "eth_signTransaction" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4", {
38
+ personal_sign: "personal_sign";
39
+ eth_sign: "eth_sign";
40
+ eth_signTransaction: "eth_signTransaction";
41
+ eth_signTypedData_v1: "eth_signTypedData_v1";
42
+ eth_signTypedData_v3: "eth_signTypedData_v3";
43
+ eth_signTypedData_v4: "eth_signTypedData_v4";
44
+ }>>;
45
+ id: import("@metamask/superstruct").Struct<string, null>;
46
+ options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json>, null>;
47
+ }>;
48
+ export type EthEoaAccount = Infer<typeof EthEoaAccountStruct>;
49
+ export declare const EthErc4337AccountStruct: import("@metamask/superstruct").Struct<{
50
+ id: string;
51
+ options: Record<string, import("@metamask/utils").Json>;
52
+ type: "eip155:erc4337";
53
+ address: string;
54
+ methods: ("personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation")[];
55
+ }, {
56
+ /**
57
+ * Account address.
58
+ */
59
+ address: import("@metamask/superstruct").Struct<string, null>;
60
+ /**
61
+ * Account type.
62
+ */
63
+ type: import("@metamask/superstruct").Struct<"eip155:erc4337", "eip155:erc4337">;
64
+ /**
65
+ * Account supported methods.
66
+ */
67
+ methods: import("@metamask/superstruct").Struct<("personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation")[], import("@metamask/superstruct").Struct<"personal_sign" | "eth_sign" | "eth_signTypedData_v1" | "eth_signTypedData_v3" | "eth_signTypedData_v4" | "eth_prepareUserOperation" | "eth_patchUserOperation" | "eth_signUserOperation", {
68
+ personal_sign: "personal_sign";
69
+ eth_sign: "eth_sign";
70
+ eth_signTypedData_v1: "eth_signTypedData_v1";
71
+ eth_signTypedData_v3: "eth_signTypedData_v3";
72
+ eth_signTypedData_v4: "eth_signTypedData_v4";
73
+ eth_prepareUserOperation: "eth_prepareUserOperation";
74
+ eth_patchUserOperation: "eth_patchUserOperation";
75
+ eth_signUserOperation: "eth_signUserOperation";
76
+ }>>;
77
+ id: import("@metamask/superstruct").Struct<string, null>;
78
+ options: import("@metamask/superstruct").Struct<Record<string, import("@metamask/utils").Json>, null>;
79
+ }>;
80
+ export type EthErc4337Account = Infer<typeof EthErc4337AccountStruct>;
81
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAGnD,eAAO,MAAM,cAAc,sDAA+C,CAAC;AAE3E,eAAO,MAAM,gBAAgB,sDAG5B,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;;;;;;;;;;;EAWH,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAE9D,eAAO,MAAM,uBAAuB;;;;;;;IAGlC;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;EAaH,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { EthAccountType, KeyringAccountStruct } from "@metamask/keyring-api";
2
+ import { object, definePattern } from "@metamask/keyring-utils";
3
+ import { array, enums, literal } from "@metamask/superstruct";
4
+ export const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu);
5
+ export const EthAddressStruct = definePattern('EthAddress', /^0x[0-9a-f]{40}$/iu);
6
+ export const EthUint256Struct = definePattern('EthUint256', /^0x([1-9a-f][0-9a-f]*|0)$/iu);
7
+ /**
8
+ * Supported Ethereum methods.
9
+ */
10
+ export var EthMethod;
11
+ (function (EthMethod) {
12
+ // General signing methods
13
+ EthMethod["PersonalSign"] = "personal_sign";
14
+ EthMethod["Sign"] = "eth_sign";
15
+ EthMethod["SignTransaction"] = "eth_signTransaction";
16
+ EthMethod["SignTypedDataV1"] = "eth_signTypedData_v1";
17
+ EthMethod["SignTypedDataV3"] = "eth_signTypedData_v3";
18
+ EthMethod["SignTypedDataV4"] = "eth_signTypedData_v4";
19
+ // ERC-4337 methods
20
+ EthMethod["PrepareUserOperation"] = "eth_prepareUserOperation";
21
+ EthMethod["PatchUserOperation"] = "eth_patchUserOperation";
22
+ EthMethod["SignUserOperation"] = "eth_signUserOperation";
23
+ })(EthMethod || (EthMethod = {}));
24
+ export const EthEoaAccountStruct = object({
25
+ ...KeyringAccountStruct.schema,
26
+ /**
27
+ * Account address.
28
+ */
29
+ address: EthAddressStruct,
30
+ /**
31
+ * Account type.
32
+ */
33
+ type: literal(`${EthAccountType.Eoa}`),
34
+ /**
35
+ * Account supported methods.
36
+ */
37
+ methods: array(enums([
38
+ `${EthMethod.PersonalSign}`,
39
+ `${EthMethod.Sign}`,
40
+ `${EthMethod.SignTransaction}`,
41
+ `${EthMethod.SignTypedDataV1}`,
42
+ `${EthMethod.SignTypedDataV3}`,
43
+ `${EthMethod.SignTypedDataV4}`,
44
+ ])),
45
+ });
46
+ export const EthErc4337AccountStruct = object({
47
+ ...KeyringAccountStruct.schema,
48
+ /**
49
+ * Account address.
50
+ */
51
+ address: EthAddressStruct,
52
+ /**
53
+ * Account type.
54
+ */
55
+ type: literal(`${EthAccountType.Erc4337}`),
56
+ /**
57
+ * Account supported methods.
58
+ */
59
+ methods: array(enums([
60
+ `${EthMethod.PersonalSign}`,
61
+ `${EthMethod.Sign}`,
62
+ `${EthMethod.SignTypedDataV1}`,
63
+ `${EthMethod.SignTypedDataV3}`,
64
+ `${EthMethod.SignTypedDataV4}`,
65
+ `${EthMethod.PrepareUserOperation}`,
66
+ `${EthMethod.PatchUserOperation}`,
67
+ `${EthMethod.SignUserOperation}`,
68
+ ])),
69
+ });
70
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../../src/eth/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,8BAA8B;AAC7E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gCAAgC;AAEhE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,8BAA8B;AAE9D,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAE3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAC3C,YAAY,EACZ,oBAAoB,CACrB,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,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,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 { EthAccountType, KeyringAccountStruct } from '@metamask/keyring-api';\nimport { object, definePattern } from '@metamask/keyring-utils';\nimport type { Infer } from '@metamask/superstruct';\nimport { array, enums, literal } from '@metamask/superstruct';\n\nexport const EthBytesStruct = definePattern('EthBytes', /^0x[0-9a-f]*$/iu);\n\nexport const EthAddressStruct = definePattern(\n 'EthAddress',\n /^0x[0-9a-f]{40}$/iu,\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 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 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"]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEvmAccountType = isEvmAccountType;
4
+ const keyring_api_1 = require("@metamask/keyring-api");
5
+ /**
6
+ * Checks if the given type is an EVM account type.
7
+ *
8
+ * @param type - The type to check.
9
+ * @returns Returns true if the type is an EVM account type, false otherwise.
10
+ */
11
+ function isEvmAccountType(type) {
12
+ return type === keyring_api_1.EthAccountType.Eoa || type === keyring_api_1.EthAccountType.Erc4337;
13
+ }
14
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","sourceRoot":"","sources":["../../src/eth/utils.ts"],"names":[],"mappings":";;AASA,4CAEC;AAVD,uDAAuD;AAEvD;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAwB;IACvD,OAAO,IAAI,KAAK,4BAAc,CAAC,GAAG,IAAI,IAAI,KAAK,4BAAc,CAAC,OAAO,CAAC;AACxE,CAAC","sourcesContent":["import type { KeyringAccountType } from '@metamask/keyring-api';\nimport { EthAccountType } from '@metamask/keyring-api';\n\n/**\n * Checks if the given type is an EVM account type.\n *\n * @param type - The type to check.\n * @returns Returns true if the type is an EVM account type, false otherwise.\n */\nexport function isEvmAccountType(type: KeyringAccountType): boolean {\n return type === EthAccountType.Eoa || type === EthAccountType.Erc4337;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { KeyringAccountType } from "@metamask/keyring-api";
2
+ /**
3
+ * Checks if the given type is an EVM account type.
4
+ *
5
+ * @param type - The type to check.
6
+ * @returns Returns true if the type is an EVM account type, false otherwise.
7
+ */
8
+ export declare function isEvmAccountType(type: KeyringAccountType): boolean;
9
+ //# sourceMappingURL=utils.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.cts","sourceRoot":"","sources":["../../src/eth/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,8BAA8B;AAGhE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAElE"}
@@ -0,0 +1,9 @@
1
+ import type { KeyringAccountType } from "@metamask/keyring-api";
2
+ /**
3
+ * Checks if the given type is an EVM account type.
4
+ *
5
+ * @param type - The type to check.
6
+ * @returns Returns true if the type is an EVM account type, false otherwise.
7
+ */
8
+ export declare function isEvmAccountType(type: KeyringAccountType): boolean;
9
+ //# sourceMappingURL=utils.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.mts","sourceRoot":"","sources":["../../src/eth/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,8BAA8B;AAGhE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAElE"}
@@ -0,0 +1,11 @@
1
+ import { EthAccountType } from "@metamask/keyring-api";
2
+ /**
3
+ * Checks if the given type is an EVM account type.
4
+ *
5
+ * @param type - The type to check.
6
+ * @returns Returns true if the type is an EVM account type, false otherwise.
7
+ */
8
+ export function isEvmAccountType(type) {
9
+ return type === EthAccountType.Eoa || type === EthAccountType.Erc4337;
10
+ }
11
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.mjs","sourceRoot":"","sources":["../../src/eth/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,8BAA8B;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB;IACvD,OAAO,IAAI,KAAK,cAAc,CAAC,GAAG,IAAI,IAAI,KAAK,cAAc,CAAC,OAAO,CAAC;AACxE,CAAC","sourcesContent":["import type { KeyringAccountType } from '@metamask/keyring-api';\nimport { EthAccountType } from '@metamask/keyring-api';\n\n/**\n * Checks if the given type is an EVM account type.\n *\n * @param type - The type to check.\n * @returns Returns true if the type is an EVM account type, false otherwise.\n */\nexport function isEvmAccountType(type: KeyringAccountType): boolean {\n return type === EthAccountType.Eoa || type === EthAccountType.Erc4337;\n}\n"]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RequestRejectedEventStruct = exports.RequestApprovedEventStruct = exports.AccountDeletedEventStruct = exports.AccountUpdatedEventStruct = exports.AccountCreatedEventStruct = exports.KeyringEvent = void 0;
4
+ const keyring_api_1 = require("@metamask/keyring-api");
5
+ const keyring_utils_1 = require("@metamask/keyring-utils");
6
+ const superstruct_1 = require("@metamask/superstruct");
7
+ const utils_1 = require("@metamask/utils");
8
+ /**
9
+ * Supported keyring events.
10
+ */
11
+ var KeyringEvent;
12
+ (function (KeyringEvent) {
13
+ // Account events
14
+ KeyringEvent["AccountCreated"] = "notify:accountCreated";
15
+ KeyringEvent["AccountUpdated"] = "notify:accountUpdated";
16
+ KeyringEvent["AccountDeleted"] = "notify:accountDeleted";
17
+ // Request events
18
+ KeyringEvent["RequestApproved"] = "notify:requestApproved";
19
+ KeyringEvent["RequestRejected"] = "notify:requestRejected";
20
+ })(KeyringEvent || (exports.KeyringEvent = KeyringEvent = {}));
21
+ exports.AccountCreatedEventStruct = (0, keyring_utils_1.object)({
22
+ method: (0, superstruct_1.literal)(`${KeyringEvent.AccountCreated}`),
23
+ params: (0, keyring_utils_1.object)({
24
+ /**
25
+ * New account object.
26
+ */
27
+ account: keyring_api_1.KeyringAccountStruct,
28
+ /**
29
+ * Account name suggestion provided to the MetaMask client.
30
+ *
31
+ * The keyring can suggest a name for the account, but it's up to the
32
+ * client to decide whether to use it. The keyring won't be informed if the
33
+ * client decides to use a different name.
34
+ */
35
+ accountNameSuggestion: (0, keyring_utils_1.exactOptional)((0, superstruct_1.string)()),
36
+ /**
37
+ * Instructs MetaMask to display the add account confirmation dialog in the UI.
38
+ * **Note:** This is not guaranteed to be honored by the MetaMask client.
39
+ */
40
+ displayConfirmation: (0, keyring_utils_1.exactOptional)((0, superstruct_1.boolean)()),
41
+ }),
42
+ });
43
+ exports.AccountUpdatedEventStruct = (0, keyring_utils_1.object)({
44
+ method: (0, superstruct_1.literal)(`${KeyringEvent.AccountUpdated}`),
45
+ params: (0, keyring_utils_1.object)({
46
+ /**
47
+ * Updated account object.
48
+ */
49
+ account: keyring_api_1.KeyringAccountStruct,
50
+ }),
51
+ });
52
+ exports.AccountDeletedEventStruct = (0, keyring_utils_1.object)({
53
+ method: (0, superstruct_1.literal)(`${KeyringEvent.AccountDeleted}`),
54
+ params: (0, keyring_utils_1.object)({
55
+ /**
56
+ * Deleted account ID.
57
+ */
58
+ id: keyring_utils_1.UuidStruct,
59
+ }),
60
+ });
61
+ exports.RequestApprovedEventStruct = (0, keyring_utils_1.object)({
62
+ method: (0, superstruct_1.literal)(`${KeyringEvent.RequestApproved}`),
63
+ params: (0, keyring_utils_1.object)({
64
+ /**
65
+ * Request ID.
66
+ */
67
+ id: keyring_utils_1.UuidStruct,
68
+ /**
69
+ * Request result.
70
+ */
71
+ result: utils_1.JsonStruct,
72
+ }),
73
+ });
74
+ exports.RequestRejectedEventStruct = (0, keyring_utils_1.object)({
75
+ method: (0, superstruct_1.literal)(`${KeyringEvent.RequestRejected}`),
76
+ params: (0, keyring_utils_1.object)({
77
+ /**
78
+ * Request ID.
79
+ */
80
+ id: keyring_utils_1.UuidStruct,
81
+ }),
82
+ });
83
+ //# sourceMappingURL=events.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.cjs","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":";;;AAAA,uDAA6D;AAC7D,2DAA4E;AAC5E,uDAAiE;AACjE,2CAA6C;AAE7C;;GAEG;AACH,IAAY,YASX;AATD,WAAY,YAAY;IACtB,iBAAiB;IACjB,wDAAwC,CAAA;IACxC,wDAAwC,CAAA;IACxC,wDAAwC,CAAA;IAExC,iBAAiB;IACjB,0DAA0C,CAAA;IAC1C,0DAA0C,CAAA;AAC5C,CAAC,EATW,YAAY,4BAAZ,YAAY,QASvB;AAEY,QAAA,yBAAyB,GAAG,IAAA,sBAAM,EAAC;IAC9C,MAAM,EAAE,IAAA,qBAAO,EAAC,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;IACjD,MAAM,EAAE,IAAA,sBAAM,EAAC;QACb;;WAEG;QACH,OAAO,EAAE,kCAAoB;QAE7B;;;;;;WAMG;QACH,qBAAqB,EAAE,IAAA,6BAAa,EAAC,IAAA,oBAAM,GAAE,CAAC;QAE9C;;;WAGG;QACH,mBAAmB,EAAE,IAAA,6BAAa,EAAC,IAAA,qBAAO,GAAE,CAAC;KAC9C,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,IAAA,sBAAM,EAAC;IAC9C,MAAM,EAAE,IAAA,qBAAO,EAAC,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;IACjD,MAAM,EAAE,IAAA,sBAAM,EAAC;QACb;;WAEG;QACH,OAAO,EAAE,kCAAoB;KAC9B,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,yBAAyB,GAAG,IAAA,sBAAM,EAAC;IAC9C,MAAM,EAAE,IAAA,qBAAO,EAAC,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;IACjD,MAAM,EAAE,IAAA,sBAAM,EAAC;QACb;;WAEG;QACH,EAAE,EAAE,0BAAU;KACf,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,0BAA0B,GAAG,IAAA,sBAAM,EAAC;IAC/C,MAAM,EAAE,IAAA,qBAAO,EAAC,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;IAClD,MAAM,EAAE,IAAA,sBAAM,EAAC;QACb;;WAEG;QACH,EAAE,EAAE,0BAAU;QAEd;;WAEG;QACH,MAAM,EAAE,kBAAU;KACnB,CAAC;CACH,CAAC,CAAC;AAEU,QAAA,0BAA0B,GAAG,IAAA,sBAAM,EAAC;IAC/C,MAAM,EAAE,IAAA,qBAAO,EAAC,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;IAClD,MAAM,EAAE,IAAA,sBAAM,EAAC;QACb;;WAEG;QACH,EAAE,EAAE,0BAAU;KACf,CAAC;CACH,CAAC,CAAC","sourcesContent":["import { KeyringAccountStruct } from '@metamask/keyring-api';\nimport { exactOptional, object, UuidStruct } from '@metamask/keyring-utils';\nimport { boolean, literal, string } from '@metamask/superstruct';\nimport { JsonStruct } from '@metamask/utils';\n\n/**\n * Supported keyring events.\n */\nexport enum KeyringEvent {\n // Account events\n AccountCreated = 'notify:accountCreated',\n AccountUpdated = 'notify:accountUpdated',\n AccountDeleted = 'notify:accountDeleted',\n\n // Request events\n RequestApproved = 'notify:requestApproved',\n RequestRejected = 'notify:requestRejected',\n}\n\nexport const AccountCreatedEventStruct = object({\n method: literal(`${KeyringEvent.AccountCreated}`),\n params: object({\n /**\n * New account object.\n */\n account: KeyringAccountStruct,\n\n /**\n * Account name suggestion provided to the MetaMask client.\n *\n * The keyring can suggest a name for the account, but it's up to the\n * client to decide whether to use it. The keyring won't be informed if the\n * client decides to use a different name.\n */\n accountNameSuggestion: exactOptional(string()),\n\n /**\n * Instructs MetaMask to display the add account confirmation dialog in the UI.\n * **Note:** This is not guaranteed to be honored by the MetaMask client.\n */\n displayConfirmation: exactOptional(boolean()),\n }),\n});\n\nexport const AccountUpdatedEventStruct = object({\n method: literal(`${KeyringEvent.AccountUpdated}`),\n params: object({\n /**\n * Updated account object.\n */\n account: KeyringAccountStruct,\n }),\n});\n\nexport const AccountDeletedEventStruct = object({\n method: literal(`${KeyringEvent.AccountDeleted}`),\n params: object({\n /**\n * Deleted account ID.\n */\n id: UuidStruct,\n }),\n});\n\nexport const RequestApprovedEventStruct = object({\n method: literal(`${KeyringEvent.RequestApproved}`),\n params: object({\n /**\n * Request ID.\n */\n id: UuidStruct,\n\n /**\n * Request result.\n */\n result: JsonStruct,\n }),\n});\n\nexport const RequestRejectedEventStruct = object({\n method: literal(`${KeyringEvent.RequestRejected}`),\n params: object({\n /**\n * Request ID.\n */\n id: UuidStruct,\n }),\n});\n"]}