@metamask-previews/eth-json-rpc-middleware 21.0.0-preview-5a558267 → 21.0.0-preview-fe4c2215

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 (118) hide show
  1. package/CHANGELOG.md +0 -3
  2. package/dist/block-cache.cjs +32 -41
  3. package/dist/block-cache.cjs.map +1 -1
  4. package/dist/block-cache.d.cts +3 -12
  5. package/dist/block-cache.d.cts.map +1 -1
  6. package/dist/block-cache.d.mts +3 -12
  7. package/dist/block-cache.d.mts.map +1 -1
  8. package/dist/block-cache.mjs +32 -41
  9. package/dist/block-cache.mjs.map +1 -1
  10. package/dist/block-ref-rewrite.cjs +8 -12
  11. package/dist/block-ref-rewrite.cjs.map +1 -1
  12. package/dist/block-ref-rewrite.d.cts +3 -3
  13. package/dist/block-ref-rewrite.d.cts.map +1 -1
  14. package/dist/block-ref-rewrite.d.mts +3 -3
  15. package/dist/block-ref-rewrite.d.mts.map +1 -1
  16. package/dist/block-ref-rewrite.mjs +8 -12
  17. package/dist/block-ref-rewrite.mjs.map +1 -1
  18. package/dist/block-ref.cjs +10 -17
  19. package/dist/block-ref.cjs.map +1 -1
  20. package/dist/block-ref.d.cts +3 -12
  21. package/dist/block-ref.d.cts.map +1 -1
  22. package/dist/block-ref.d.mts +3 -12
  23. package/dist/block-ref.d.mts.map +1 -1
  24. package/dist/block-ref.mjs +10 -17
  25. package/dist/block-ref.mjs.map +1 -1
  26. package/dist/block-tracker-inspector.cjs +25 -28
  27. package/dist/block-tracker-inspector.cjs.map +1 -1
  28. package/dist/block-tracker-inspector.d.cts +3 -3
  29. package/dist/block-tracker-inspector.d.cts.map +1 -1
  30. package/dist/block-tracker-inspector.d.mts +3 -3
  31. package/dist/block-tracker-inspector.d.mts.map +1 -1
  32. package/dist/block-tracker-inspector.mjs +25 -28
  33. package/dist/block-tracker-inspector.mjs.map +1 -1
  34. package/dist/fetch.cjs +12 -8
  35. package/dist/fetch.cjs.map +1 -1
  36. package/dist/fetch.d.cts +3 -5
  37. package/dist/fetch.d.cts.map +1 -1
  38. package/dist/fetch.d.mts +3 -5
  39. package/dist/fetch.d.mts.map +1 -1
  40. package/dist/fetch.mjs +12 -8
  41. package/dist/fetch.mjs.map +1 -1
  42. package/dist/inflight-cache.cjs +45 -61
  43. package/dist/inflight-cache.cjs.map +1 -1
  44. package/dist/inflight-cache.d.cts +3 -12
  45. package/dist/inflight-cache.d.cts.map +1 -1
  46. package/dist/inflight-cache.d.mts +3 -12
  47. package/dist/inflight-cache.d.mts.map +1 -1
  48. package/dist/inflight-cache.mjs +45 -61
  49. package/dist/inflight-cache.mjs.map +1 -1
  50. package/dist/methods/wallet-request-execution-permissions.cjs +9 -20
  51. package/dist/methods/wallet-request-execution-permissions.cjs.map +1 -1
  52. package/dist/methods/wallet-request-execution-permissions.d.cts +3 -14
  53. package/dist/methods/wallet-request-execution-permissions.d.cts.map +1 -1
  54. package/dist/methods/wallet-request-execution-permissions.d.mts +3 -14
  55. package/dist/methods/wallet-request-execution-permissions.d.mts.map +1 -1
  56. package/dist/methods/wallet-request-execution-permissions.mjs +7 -18
  57. package/dist/methods/wallet-request-execution-permissions.mjs.map +1 -1
  58. package/dist/methods/wallet-revoke-execution-permission.cjs +11 -23
  59. package/dist/methods/wallet-revoke-execution-permission.cjs.map +1 -1
  60. package/dist/methods/wallet-revoke-execution-permission.d.cts +5 -19
  61. package/dist/methods/wallet-revoke-execution-permission.d.cts.map +1 -1
  62. package/dist/methods/wallet-revoke-execution-permission.d.mts +5 -19
  63. package/dist/methods/wallet-revoke-execution-permission.d.mts.map +1 -1
  64. package/dist/methods/wallet-revoke-execution-permission.mjs +8 -20
  65. package/dist/methods/wallet-revoke-execution-permission.mjs.map +1 -1
  66. package/dist/providerAsMiddleware.cjs +1 -18
  67. package/dist/providerAsMiddleware.cjs.map +1 -1
  68. package/dist/providerAsMiddleware.d.cts +3 -18
  69. package/dist/providerAsMiddleware.d.cts.map +1 -1
  70. package/dist/providerAsMiddleware.d.mts +3 -18
  71. package/dist/providerAsMiddleware.d.mts.map +1 -1
  72. package/dist/providerAsMiddleware.mjs +0 -16
  73. package/dist/providerAsMiddleware.mjs.map +1 -1
  74. package/dist/retryOnEmpty.cjs +11 -8
  75. package/dist/retryOnEmpty.cjs.map +1 -1
  76. package/dist/retryOnEmpty.d.cts +3 -3
  77. package/dist/retryOnEmpty.d.cts.map +1 -1
  78. package/dist/retryOnEmpty.d.mts +3 -3
  79. package/dist/retryOnEmpty.d.mts.map +1 -1
  80. package/dist/retryOnEmpty.mjs +11 -8
  81. package/dist/retryOnEmpty.mjs.map +1 -1
  82. package/dist/types.cjs.map +1 -1
  83. package/dist/types.d.cts +5 -0
  84. package/dist/types.d.cts.map +1 -1
  85. package/dist/types.d.mts +5 -0
  86. package/dist/types.d.mts.map +1 -1
  87. package/dist/types.mjs.map +1 -1
  88. package/dist/utils/error.cjs +0 -7
  89. package/dist/utils/error.cjs.map +1 -1
  90. package/dist/utils/error.d.cts +0 -7
  91. package/dist/utils/error.d.cts.map +1 -1
  92. package/dist/utils/error.d.mts +0 -7
  93. package/dist/utils/error.d.mts.map +1 -1
  94. package/dist/utils/error.mjs +0 -7
  95. package/dist/utils/error.mjs.map +1 -1
  96. package/dist/utils/normalize.cjs +2 -7
  97. package/dist/utils/normalize.cjs.map +1 -1
  98. package/dist/utils/normalize.d.cts.map +1 -1
  99. package/dist/utils/normalize.d.mts.map +1 -1
  100. package/dist/utils/normalize.mjs +2 -7
  101. package/dist/utils/normalize.mjs.map +1 -1
  102. package/dist/utils/validation.cjs +2 -34
  103. package/dist/utils/validation.cjs.map +1 -1
  104. package/dist/utils/validation.d.cts +3 -29
  105. package/dist/utils/validation.d.cts.map +1 -1
  106. package/dist/utils/validation.d.mts +3 -29
  107. package/dist/utils/validation.d.mts.map +1 -1
  108. package/dist/utils/validation.mjs +2 -34
  109. package/dist/utils/validation.mjs.map +1 -1
  110. package/dist/wallet.cjs +92 -199
  111. package/dist/wallet.cjs.map +1 -1
  112. package/dist/wallet.d.cts +13 -40
  113. package/dist/wallet.d.cts.map +1 -1
  114. package/dist/wallet.d.mts +13 -40
  115. package/dist/wallet.d.mts.map +1 -1
  116. package/dist/wallet.mjs +93 -200
  117. package/dist/wallet.mjs.map +1 -1
  118. package/package.json +1 -4
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,qCAAqC;AAEtC,OAAO,KAAK,EAAE,cAAc,EAAE,kCAAkC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAO,wBAAwB;AAEjE,OAAO,EAEL,KAAK,sCAAsC,EAC5C,2DAAuD;AACxD,OAAO,EACL,KAAK,oCAAoC,EAE1C,yDAAqD;AAQtD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,0BAA0B,CAAC,EAAE,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CACvB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CACvB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,KAC7B,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,mBAAmB,CAAC,EAAE,CACpB,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;IAC5E,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GACjC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;AAE/C,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CACnD,cAAc,EACd,uBAAuB,CACxB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,gCAAgC,GACjC,EAAE,uBAAuB,GAAG,iBAAiB,CAC5C,cAAc,EACd,IAAI,EACJ,uBAAuB,CACxB,CAybA"}
1
+ {"version":3,"file":"wallet.d.cts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAOnE,OAAO,KAAK,EACV,cAAc,EAIf,wBAAwB;AAEzB,OAAO,EACL,KAAK,sCAAsC,EAE5C,2DAAuD;AACxD,OAAO,EACL,KAAK,oCAAoC,EAE1C,yDAAqD;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAgB;AAqBrC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,0BAA0B,CAAC,EAAE,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CACvB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CACvB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,mBAAmB,CAAC,EAAE,CACpB,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;IAC5E,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,gCAAgC,GACjC,EACD,uBAAuB,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAoWtD"}
package/dist/wallet.d.mts CHANGED
@@ -1,8 +1,8 @@
1
- import type { JsonRpcMiddleware, MiddlewareContext, MiddlewareParams } from "@metamask/json-rpc-engine/v2";
2
- import type { MessageRequest } from "@metamask/message-manager";
3
- import type { JsonRpcRequest, Json } from "@metamask/utils";
1
+ import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
2
+ import type { JsonRpcRequest } from "@metamask/utils";
4
3
  import { type ProcessRequestExecutionPermissionsHook } from "./methods/wallet-request-execution-permissions.mjs";
5
4
  import { type ProcessRevokeExecutionPermissionHook } from "./methods/wallet-revoke-execution-permission.mjs";
5
+ import type { Block } from "./types.mjs";
6
6
  export type TransactionParams = {
7
7
  from: string;
8
8
  };
@@ -17,44 +17,17 @@ export type TypedMessageV1Params = Omit<TypedMessageParams, 'data'> & {
17
17
  data: Record<string, unknown>[];
18
18
  };
19
19
  export type WalletMiddlewareOptions = {
20
- getAccounts: (origin: string) => Promise<string[]>;
21
- processDecryptMessage?: (msgParams: MessageParams, req: MessageRequest) => Promise<string>;
22
- processEncryptionPublicKey?: (address: string, req: MessageRequest) => Promise<string>;
23
- processPersonalMessage?: (msgParams: MessageParams, req: JsonRpcRequest, context: WalletMiddlewareContext) => Promise<string>;
24
- processTransaction?: (txParams: TransactionParams, req: JsonRpcRequest, context: WalletMiddlewareContext) => Promise<string>;
25
- processSignTransaction?: (txParams: TransactionParams, req: JsonRpcRequest, context: WalletMiddlewareContext) => Promise<string>;
26
- processTypedMessage?: (msgParams: TypedMessageV1Params, req: JsonRpcRequest, context: WalletMiddlewareContext, version: string) => Promise<string>;
27
- processTypedMessageV3?: (msgParams: TypedMessageParams, req: JsonRpcRequest, context: WalletMiddlewareContext, version: string) => Promise<string>;
28
- processTypedMessageV4?: (msgParams: TypedMessageParams, req: JsonRpcRequest, context: WalletMiddlewareContext, version: string) => Promise<string>;
20
+ getAccounts: (req: JsonRpcRequest) => Promise<string[]>;
21
+ processDecryptMessage?: (msgParams: MessageParams, req: JsonRpcRequest) => Promise<string>;
22
+ processEncryptionPublicKey?: (address: string, req: JsonRpcRequest) => Promise<string>;
23
+ processPersonalMessage?: (msgParams: MessageParams, req: JsonRpcRequest) => Promise<string>;
24
+ processTransaction?: (txParams: TransactionParams, req: JsonRpcRequest) => Promise<string>;
25
+ processSignTransaction?: (txParams: TransactionParams, req: JsonRpcRequest) => Promise<string>;
26
+ processTypedMessage?: (msgParams: TypedMessageV1Params, req: JsonRpcRequest, version: string) => Promise<string>;
27
+ processTypedMessageV3?: (msgParams: TypedMessageParams, req: JsonRpcRequest, version: string) => Promise<string>;
28
+ processTypedMessageV4?: (msgParams: TypedMessageParams, req: JsonRpcRequest, version: string) => Promise<string>;
29
29
  processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;
30
30
  processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;
31
31
  };
32
- export type WalletMiddlewareKeyValues = {
33
- networkClientId: string;
34
- origin: string;
35
- securityAlertResponse?: Record<string, Json>;
36
- traceContext?: unknown;
37
- };
38
- export type WalletMiddlewareContext = MiddlewareContext<WalletMiddlewareKeyValues>;
39
- export type WalletMiddlewareParams = MiddlewareParams<JsonRpcRequest, WalletMiddlewareContext>;
40
- /**
41
- * Creates a JSON-RPC middleware that handles "wallet"-related JSON-RPC methods.
42
- * "Wallet" may have had a specific meaning at some point in the distant past,
43
- * but at this point it's just an arbitrary label.
44
- *
45
- * @param options - The options for the middleware.
46
- * @param options.getAccounts - The function to get the accounts for the origin.
47
- * @param options.processDecryptMessage - The function to process the decrypt message request.
48
- * @param options.processEncryptionPublicKey - The function to process the encryption public key request.
49
- * @param options.processPersonalMessage - The function to process the personal message request.
50
- * @param options.processTransaction - The function to process the transaction request.
51
- * @param options.processSignTransaction - The function to process the sign transaction request.
52
- * @param options.processTypedMessage - The function to process the typed message request.
53
- * @param options.processTypedMessageV3 - The function to process the typed message v3 request.
54
- * @param options.processTypedMessageV4 - The function to process the typed message v4 request.
55
- * @param options.processRequestExecutionPermissions - The function to process the request execution permissions request.
56
- * @param options.processRevokeExecutionPermission - The function to process the revoke execution permission request.
57
- * @returns A JSON-RPC middleware that handles wallet-related JSON-RPC methods.
58
- */
59
- export declare function createWalletMiddleware({ getAccounts, processDecryptMessage, processEncryptionPublicKey, processPersonalMessage, processTransaction, processSignTransaction, processTypedMessage, processTypedMessageV3, processTypedMessageV4, processRequestExecutionPermissions, processRevokeExecutionPermission, }: WalletMiddlewareOptions): JsonRpcMiddleware<JsonRpcRequest, Json, WalletMiddlewareContext>;
32
+ export declare function createWalletMiddleware({ getAccounts, processDecryptMessage, processEncryptionPublicKey, processPersonalMessage, processTransaction, processSignTransaction, processTypedMessage, processTypedMessageV3, processTypedMessageV4, processRequestExecutionPermissions, processRevokeExecutionPermission, }: WalletMiddlewareOptions): JsonRpcMiddleware<any, Block>;
60
33
  //# sourceMappingURL=wallet.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.mts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAOnE,OAAO,KAAK,EACV,cAAc,EAIf,wBAAwB;AAEzB,OAAO,EACL,KAAK,sCAAsC,EAE5C,2DAAuD;AACxD,OAAO,EACL,KAAK,oCAAoC,EAE1C,yDAAqD;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,oBAAgB;AAqBrC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;IACpE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,WAAW,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxD,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,0BAA0B,CAAC,EAAE,CAC3B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CACvB,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,CAAC,EAAE,CACvB,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,mBAAmB,CAAC,EAAE,CACpB,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;IAC5E,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,gCAAgC,GACjC,EACD,uBAAuB,GAAG,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAoWtD"}
package/dist/wallet.mjs CHANGED
@@ -1,156 +1,99 @@
1
1
  import * as sigUtil from "@metamask/eth-sig-util";
2
- import { createScaffoldMiddleware } from "@metamask/json-rpc-engine/v2";
2
+ import { createAsyncMiddleware, createScaffoldMiddleware } from "@metamask/json-rpc-engine";
3
3
  import { rpcErrors } from "@metamask/rpc-errors";
4
4
  import { isValidHexAddress } from "@metamask/utils";
5
- import { createWalletRequestExecutionPermissionsHandler } from "./methods/wallet-request-execution-permissions.mjs";
6
- import { createWalletRevokeExecutionPermissionHandler } from "./methods/wallet-revoke-execution-permission.mjs";
5
+ import { walletRequestExecutionPermissions } from "./methods/wallet-request-execution-permissions.mjs";
6
+ import { walletRevokeExecutionPermission } from "./methods/wallet-revoke-execution-permission.mjs";
7
7
  import { stripArrayTypeIfPresent } from "./utils/common.mjs";
8
8
  import { normalizeTypedMessage, parseTypedMessage } from "./utils/normalize.mjs";
9
9
  import { resemblesAddress, validateAndNormalizeKeyholder as validateKeyholder } from "./utils/validation.mjs";
10
- /**
11
- * Creates a JSON-RPC middleware that handles "wallet"-related JSON-RPC methods.
12
- * "Wallet" may have had a specific meaning at some point in the distant past,
13
- * but at this point it's just an arbitrary label.
14
- *
15
- * @param options - The options for the middleware.
16
- * @param options.getAccounts - The function to get the accounts for the origin.
17
- * @param options.processDecryptMessage - The function to process the decrypt message request.
18
- * @param options.processEncryptionPublicKey - The function to process the encryption public key request.
19
- * @param options.processPersonalMessage - The function to process the personal message request.
20
- * @param options.processTransaction - The function to process the transaction request.
21
- * @param options.processSignTransaction - The function to process the sign transaction request.
22
- * @param options.processTypedMessage - The function to process the typed message request.
23
- * @param options.processTypedMessageV3 - The function to process the typed message v3 request.
24
- * @param options.processTypedMessageV4 - The function to process the typed message v4 request.
25
- * @param options.processRequestExecutionPermissions - The function to process the request execution permissions request.
26
- * @param options.processRevokeExecutionPermission - The function to process the revoke execution permission request.
27
- * @returns A JSON-RPC middleware that handles wallet-related JSON-RPC methods.
28
- */
29
10
  export function createWalletMiddleware({ getAccounts, processDecryptMessage, processEncryptionPublicKey, processPersonalMessage, processTransaction, processSignTransaction, processTypedMessage, processTypedMessageV3, processTypedMessageV4, processRequestExecutionPermissions, processRevokeExecutionPermission, }) {
30
11
  if (!getAccounts) {
31
12
  throw new Error('opts.getAccounts is required');
32
13
  }
33
14
  return createScaffoldMiddleware({
34
15
  // account lookups
35
- eth_accounts: lookupAccounts,
36
- eth_coinbase: lookupDefaultAccount,
16
+ eth_accounts: createAsyncMiddleware(lookupAccounts),
17
+ eth_coinbase: createAsyncMiddleware(lookupDefaultAccount),
37
18
  // tx signatures
38
- eth_sendTransaction: sendTransaction,
39
- eth_signTransaction: signTransaction,
19
+ eth_sendTransaction: createAsyncMiddleware(sendTransaction),
20
+ eth_signTransaction: createAsyncMiddleware(signTransaction),
40
21
  // message signatures
41
- eth_signTypedData: signTypedData,
42
- eth_signTypedData_v3: signTypedDataV3,
43
- eth_signTypedData_v4: signTypedDataV4,
44
- personal_sign: personalSign,
45
- eth_getEncryptionPublicKey: encryptionPublicKey,
46
- eth_decrypt: decryptMessage,
47
- personal_ecRecover: personalRecover,
22
+ eth_signTypedData: createAsyncMiddleware(signTypedData),
23
+ eth_signTypedData_v3: createAsyncMiddleware(signTypedDataV3),
24
+ eth_signTypedData_v4: createAsyncMiddleware(signTypedDataV4),
25
+ personal_sign: createAsyncMiddleware(personalSign),
26
+ eth_getEncryptionPublicKey: createAsyncMiddleware(encryptionPublicKey),
27
+ eth_decrypt: createAsyncMiddleware(decryptMessage),
28
+ personal_ecRecover: createAsyncMiddleware(personalRecover),
48
29
  // EIP-7715
49
- wallet_requestExecutionPermissions: createWalletRequestExecutionPermissionsHandler({
30
+ wallet_requestExecutionPermissions: createAsyncMiddleware(async (req, res) => walletRequestExecutionPermissions(req, res, {
50
31
  processRequestExecutionPermissions,
51
- }),
52
- wallet_revokeExecutionPermission: createWalletRevokeExecutionPermissionHandler({
32
+ })),
33
+ wallet_revokeExecutionPermission: createAsyncMiddleware(async (req, res) => walletRevokeExecutionPermission(req, res, {
53
34
  processRevokeExecutionPermission,
54
- }),
35
+ })),
55
36
  });
56
37
  //
57
38
  // account lookups
58
39
  //
59
- /**
60
- * Gets the accounts for the origin.
61
- *
62
- * @param options - Options bag.
63
- * @param options.context - The context of the request.
64
- * @returns The accounts for the origin.
65
- */
66
- async function lookupAccounts({ context, }) {
67
- return await getAccounts(context.assertGet('origin'));
40
+ async function lookupAccounts(req, res) {
41
+ res.result = await getAccounts(req);
68
42
  }
69
- /**
70
- * Gets the default account (i.e. first in the list) for the origin.
71
- *
72
- * @param options - Options bag.
73
- * @param options.context - The context of the request.
74
- * @returns The default account for the origin.
75
- */
76
- async function lookupDefaultAccount({ context, }) {
77
- const accounts = await getAccounts(context.assertGet('origin'));
78
- return accounts[0] || null;
43
+ async function lookupDefaultAccount(req, res) {
44
+ const accounts = await getAccounts(req);
45
+ res.result = accounts[0] || null;
79
46
  }
80
47
  //
81
48
  // transaction signatures
82
49
  //
83
- /**
84
- * Sends a transaction.
85
- *
86
- * @param options - Options bag.
87
- * @param options.request - The request.
88
- * @param options.context - The context of the request.
89
- * @returns The transaction hash.
90
- */
91
- async function sendTransaction({ request, context, }) {
50
+ async function sendTransaction(req, res) {
92
51
  if (!processTransaction) {
93
52
  throw rpcErrors.methodNotSupported();
94
53
  }
95
- if (!request.params ||
96
- !Array.isArray(request.params) ||
97
- !(request.params.length >= 1)) {
54
+ if (!req.params ||
55
+ !Array.isArray(req.params) ||
56
+ !(req.params.length >= 1)) {
98
57
  throw rpcErrors.invalidInput();
99
58
  }
100
- const params = request.params[0];
59
+ const params = req.params[0];
101
60
  const txParams = {
102
61
  ...params,
103
- from: await validateAndNormalizeKeyholder(params?.from || '', context),
62
+ from: await validateAndNormalizeKeyholder(params?.from || '', req),
104
63
  };
105
- return await processTransaction(txParams, request, context);
64
+ res.result = await processTransaction(txParams, req);
106
65
  }
107
- /**
108
- * Signs a transaction.
109
- *
110
- * @param options - Options bag.
111
- * @param options.request - The request.
112
- * @param options.context - The context of the request.
113
- * @returns The signed transaction.
114
- */
115
- async function signTransaction({ request, context, }) {
66
+ async function signTransaction(req, res) {
116
67
  if (!processSignTransaction) {
117
68
  throw rpcErrors.methodNotSupported();
118
69
  }
119
- if (!request.params ||
120
- !Array.isArray(request.params) ||
121
- !(request.params.length >= 1)) {
70
+ if (!req.params ||
71
+ !Array.isArray(req.params) ||
72
+ !(req.params.length >= 1)) {
122
73
  throw rpcErrors.invalidInput();
123
74
  }
124
- const params = request.params[0];
75
+ const params = req.params[0];
125
76
  const txParams = {
126
77
  ...params,
127
- from: await validateAndNormalizeKeyholder(params?.from || '', context),
78
+ from: await validateAndNormalizeKeyholder(params?.from || '', req),
128
79
  };
129
- return await processSignTransaction(txParams, request, context);
80
+ res.result = await processSignTransaction(txParams, req);
130
81
  }
131
82
  //
132
83
  // message signatures
133
84
  //
134
- /**
135
- * Signs a `eth_signTypedData` message.
136
- *
137
- * @param options - Options bag.
138
- * @param options.request - The request.
139
- * @param options.context - The context of the request.
140
- * @returns The signed message.
141
- */
142
- async function signTypedData({ request, context, }) {
85
+ async function signTypedData(req, res) {
143
86
  if (!processTypedMessage) {
144
87
  throw rpcErrors.methodNotSupported();
145
88
  }
146
- if (!request.params ||
147
- !Array.isArray(request.params) ||
148
- !(request.params.length >= 2)) {
89
+ if (!req?.params ||
90
+ !Array.isArray(req.params) ||
91
+ !(req.params.length >= 2)) {
149
92
  throw rpcErrors.invalidInput();
150
93
  }
151
- const params = request.params;
94
+ const params = req.params;
152
95
  const message = params[0];
153
- const address = await validateAndNormalizeKeyholder(params[1], context);
96
+ const address = await validateAndNormalizeKeyholder(params[1], req);
154
97
  const version = 'V1';
155
98
  const extraParams = params[2] || {};
156
99
  const msgParams = {
@@ -160,27 +103,19 @@ export function createWalletMiddleware({ getAccounts, processDecryptMessage, pro
160
103
  signatureMethod: 'eth_signTypedData',
161
104
  version,
162
105
  };
163
- return await processTypedMessage(msgParams, request, context, version);
106
+ res.result = await processTypedMessage(msgParams, req, version);
164
107
  }
165
- /**
166
- * Signs a `eth_signTypedData_v3` message.
167
- *
168
- * @param options - Options bag.
169
- * @param options.request - The request.
170
- * @param options.context - The context of the request.
171
- * @returns The signed message.
172
- */
173
- async function signTypedDataV3({ request, context, }) {
108
+ async function signTypedDataV3(req, res) {
174
109
  if (!processTypedMessageV3) {
175
110
  throw rpcErrors.methodNotSupported();
176
111
  }
177
- if (!request.params ||
178
- !Array.isArray(request.params) ||
179
- !(request.params.length >= 2)) {
112
+ if (!req?.params ||
113
+ !Array.isArray(req.params) ||
114
+ !(req.params.length >= 2)) {
180
115
  throw rpcErrors.invalidInput();
181
116
  }
182
- const params = request.params;
183
- const address = await validateAndNormalizeKeyholder(params[0], context);
117
+ const params = req.params;
118
+ const address = await validateAndNormalizeKeyholder(params[0], req);
184
119
  const message = normalizeTypedMessage(params[1]);
185
120
  validatePrimaryType(message);
186
121
  validateVerifyingContract(message);
@@ -191,27 +126,19 @@ export function createWalletMiddleware({ getAccounts, processDecryptMessage, pro
191
126
  version,
192
127
  signatureMethod: 'eth_signTypedData_v3',
193
128
  };
194
- return await processTypedMessageV3(msgParams, request, context, version);
129
+ res.result = await processTypedMessageV3(msgParams, req, version);
195
130
  }
196
- /**
197
- * Signs a `eth_signTypedData_v4` message.
198
- *
199
- * @param options - Options bag.
200
- * @param options.request - The request.
201
- * @param options.context - The context of the request.
202
- * @returns The signed message.
203
- */
204
- async function signTypedDataV4({ request, context, }) {
131
+ async function signTypedDataV4(req, res) {
205
132
  if (!processTypedMessageV4) {
206
133
  throw rpcErrors.methodNotSupported();
207
134
  }
208
- if (!request.params ||
209
- !Array.isArray(request.params) ||
210
- !(request.params.length >= 2)) {
135
+ if (!req?.params ||
136
+ !Array.isArray(req.params) ||
137
+ !(req.params.length >= 2)) {
211
138
  throw rpcErrors.invalidInput();
212
139
  }
213
- const params = request.params;
214
- const address = await validateAndNormalizeKeyholder(params[0], context);
140
+ const params = req.params;
141
+ const address = await validateAndNormalizeKeyholder(params[0], req);
215
142
  const message = normalizeTypedMessage(params[1]);
216
143
  validatePrimaryType(message);
217
144
  validateVerifyingContract(message);
@@ -222,26 +149,18 @@ export function createWalletMiddleware({ getAccounts, processDecryptMessage, pro
222
149
  version,
223
150
  signatureMethod: 'eth_signTypedData_v4',
224
151
  };
225
- return await processTypedMessageV4(msgParams, request, context, version);
152
+ res.result = await processTypedMessageV4(msgParams, req, version);
226
153
  }
227
- /**
228
- * Signs a `personal_sign` message.
229
- *
230
- * @param options - Options bag.
231
- * @param options.request - The request.
232
- * @param options.context - The context of the request.
233
- * @returns The signed message.
234
- */
235
- async function personalSign({ request, context, }) {
154
+ async function personalSign(req, res) {
236
155
  if (!processPersonalMessage) {
237
156
  throw rpcErrors.methodNotSupported();
238
157
  }
239
- if (!request.params ||
240
- !Array.isArray(request.params) ||
241
- !(request.params.length >= 2)) {
158
+ if (!req?.params ||
159
+ !Array.isArray(req.params) ||
160
+ !(req.params.length >= 2)) {
242
161
  throw rpcErrors.invalidInput();
243
162
  }
244
- const params = request.params;
163
+ const params = req.params;
245
164
  // process normally
246
165
  const firstParam = params[0];
247
166
  const secondParam = params[1];
@@ -256,6 +175,11 @@ export function createWalletMiddleware({ getAccounts, processDecryptMessage, pro
256
175
  // and the second param is definitely not, but is hex.
257
176
  let address, message;
258
177
  if (resemblesAddress(firstParam) && !resemblesAddress(secondParam)) {
178
+ let warning = `The eth_personalSign method requires params ordered `;
179
+ warning += `[message, address]. This was previously handled incorrectly, `;
180
+ warning += `and has been corrected automatically. `;
181
+ warning += `Please switch this param order for smooth behavior in the future.`;
182
+ res.warning = warning;
259
183
  address = firstParam;
260
184
  message = secondParam;
261
185
  }
@@ -263,93 +187,62 @@ export function createWalletMiddleware({ getAccounts, processDecryptMessage, pro
263
187
  message = firstParam;
264
188
  address = secondParam;
265
189
  }
266
- address = await validateAndNormalizeKeyholder(address, context);
190
+ address = await validateAndNormalizeKeyholder(address, req);
267
191
  const msgParams = {
268
192
  ...extraParams,
269
193
  from: address,
270
194
  data: message,
271
195
  signatureMethod: 'personal_sign',
272
196
  };
273
- return await processPersonalMessage(msgParams, request, context);
197
+ res.result = await processPersonalMessage(msgParams, req);
274
198
  }
275
- /**
276
- * Recovers the signer address from a `personal_sign` message.
277
- *
278
- * @param options - Options bag.
279
- * @param options.request - The request.
280
- * @returns The recovered signer address.
281
- */
282
- async function personalRecover({ request, }) {
283
- if (!request.params ||
284
- !Array.isArray(request.params) ||
285
- !(request.params.length >= 2)) {
199
+ async function personalRecover(req, res) {
200
+ if (!req?.params ||
201
+ !Array.isArray(req.params) ||
202
+ !(req.params.length >= 2)) {
286
203
  throw rpcErrors.invalidInput();
287
204
  }
288
- const params = request.params;
205
+ const params = req.params;
289
206
  const message = params[0];
290
207
  const signature = params[1];
291
208
  const signerAddress = sigUtil.recoverPersonalSignature({
292
209
  data: message,
293
210
  signature,
294
211
  });
295
- return signerAddress;
212
+ res.result = signerAddress;
296
213
  }
297
- /**
298
- * Gets the encryption public key for an address.
299
- *
300
- * @param options - Options bag.
301
- * @param options.request - The request.
302
- * @param options.context - The context of the request.
303
- * @returns The encryption public key.
304
- */
305
- async function encryptionPublicKey({ request, context, }) {
214
+ async function encryptionPublicKey(req, res) {
306
215
  if (!processEncryptionPublicKey) {
307
216
  throw rpcErrors.methodNotSupported();
308
217
  }
309
- if (!request.params ||
310
- !Array.isArray(request.params) ||
311
- !(request.params.length >= 1)) {
218
+ if (!req?.params ||
219
+ !Array.isArray(req.params) ||
220
+ !(req.params.length >= 1)) {
312
221
  throw rpcErrors.invalidInput();
313
222
  }
314
- const params = request.params;
315
- const address = await validateAndNormalizeKeyholder(params[0], context);
316
- return await processEncryptionPublicKey(address, {
317
- id: request.id,
318
- origin: context.assertGet('origin'),
319
- securityAlertResponse: context.get('securityAlertResponse'),
320
- });
223
+ const params = req.params;
224
+ const address = await validateAndNormalizeKeyholder(params[0], req);
225
+ res.result = await processEncryptionPublicKey(address, req);
321
226
  }
322
- /**
323
- * Decrypts a message.
324
- *
325
- * @param options - Options bag.
326
- * @param options.request - The request.
327
- * @param options.context - The context of the request.
328
- * @returns The decrypted message.
329
- */
330
- async function decryptMessage({ request, context, }) {
227
+ async function decryptMessage(req, res) {
331
228
  if (!processDecryptMessage) {
332
229
  throw rpcErrors.methodNotSupported();
333
230
  }
334
- if (!request.params ||
335
- !Array.isArray(request.params) ||
336
- !(request.params.length >= 1)) {
231
+ if (!req?.params ||
232
+ !Array.isArray(req.params) ||
233
+ !(req.params.length >= 1)) {
337
234
  throw rpcErrors.invalidInput();
338
235
  }
339
- const params = request.params;
236
+ const params = req.params;
340
237
  const ciphertext = params[0];
341
- const address = await validateAndNormalizeKeyholder(params[1], context);
238
+ const address = await validateAndNormalizeKeyholder(params[1], req);
342
239
  const extraParams = params[2] || {};
343
240
  const msgParams = {
344
241
  ...extraParams,
345
242
  from: address,
346
243
  data: ciphertext,
347
244
  };
348
- return await processDecryptMessage(msgParams, {
349
- id: request.id,
350
- origin: context.assertGet('origin'),
351
- securityAlertResponse: context.get('securityAlertResponse'),
352
- });
245
+ res.result = await processDecryptMessage(msgParams, req);
353
246
  }
354
247
  //
355
248
  // utility
@@ -359,12 +252,12 @@ export function createWalletMiddleware({ getAccounts, processDecryptMessage, pro
359
252
  * copy of it.
360
253
  *
361
254
  * @param address - The address to validate and normalize.
362
- * @param context - The context of the request.
255
+ * @param req - The request object.
363
256
  * @returns The normalized address, if valid. Otherwise, throws
364
257
  * an error
365
258
  */
366
- async function validateAndNormalizeKeyholder(address, context) {
367
- return validateKeyholder(address, context, { getAccounts });
259
+ async function validateAndNormalizeKeyholder(address, req) {
260
+ return validateKeyholder(address, req, { getAccounts });
368
261
  }
369
262
  }
370
263
  /**