@metamask/snaps-simulation 3.6.0 → 3.8.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.
Files changed (138) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/dist/constants.cjs +1 -5
  3. package/dist/constants.cjs.map +1 -1
  4. package/dist/constants.d.cts +0 -4
  5. package/dist/constants.d.cts.map +1 -1
  6. package/dist/constants.d.mts +0 -4
  7. package/dist/constants.d.mts.map +1 -1
  8. package/dist/constants.mjs +0 -4
  9. package/dist/constants.mjs.map +1 -1
  10. package/dist/controllers.cjs +1 -0
  11. package/dist/controllers.cjs.map +1 -1
  12. package/dist/controllers.d.cts.map +1 -1
  13. package/dist/controllers.d.mts.map +1 -1
  14. package/dist/controllers.mjs +1 -0
  15. package/dist/controllers.mjs.map +1 -1
  16. package/dist/methods/hooks/chain.cjs +29 -0
  17. package/dist/methods/hooks/chain.cjs.map +1 -0
  18. package/dist/methods/hooks/chain.d.cts +9 -0
  19. package/dist/methods/hooks/chain.d.cts.map +1 -0
  20. package/dist/methods/hooks/chain.d.mts +9 -0
  21. package/dist/methods/hooks/chain.d.mts.map +1 -0
  22. package/dist/methods/hooks/chain.mjs +25 -0
  23. package/dist/methods/hooks/chain.mjs.map +1 -0
  24. package/dist/methods/hooks/index.cjs +1 -0
  25. package/dist/methods/hooks/index.cjs.map +1 -1
  26. package/dist/methods/hooks/index.d.cts +1 -0
  27. package/dist/methods/hooks/index.d.cts.map +1 -1
  28. package/dist/methods/hooks/index.d.mts +1 -0
  29. package/dist/methods/hooks/index.d.mts.map +1 -1
  30. package/dist/methods/hooks/index.mjs +1 -0
  31. package/dist/methods/hooks/index.mjs.map +1 -1
  32. package/dist/middleware/engine.cjs +3 -9
  33. package/dist/middleware/engine.cjs.map +1 -1
  34. package/dist/middleware/engine.d.cts +1 -2
  35. package/dist/middleware/engine.d.cts.map +1 -1
  36. package/dist/middleware/engine.d.mts +1 -2
  37. package/dist/middleware/engine.d.mts.map +1 -1
  38. package/dist/middleware/engine.mjs +3 -9
  39. package/dist/middleware/engine.mjs.map +1 -1
  40. package/dist/middleware/internal-methods/chain-id.cjs +3 -4
  41. package/dist/middleware/internal-methods/chain-id.cjs.map +1 -1
  42. package/dist/middleware/internal-methods/chain-id.d.cts +3 -1
  43. package/dist/middleware/internal-methods/chain-id.d.cts.map +1 -1
  44. package/dist/middleware/internal-methods/chain-id.d.mts +3 -1
  45. package/dist/middleware/internal-methods/chain-id.d.mts.map +1 -1
  46. package/dist/middleware/internal-methods/chain-id.mjs +3 -4
  47. package/dist/middleware/internal-methods/chain-id.mjs.map +1 -1
  48. package/dist/middleware/internal-methods/middleware.cjs +0 -2
  49. package/dist/middleware/internal-methods/middleware.cjs.map +1 -1
  50. package/dist/middleware/internal-methods/middleware.d.cts +14 -1
  51. package/dist/middleware/internal-methods/middleware.d.cts.map +1 -1
  52. package/dist/middleware/internal-methods/middleware.d.mts +14 -1
  53. package/dist/middleware/internal-methods/middleware.d.mts.map +1 -1
  54. package/dist/middleware/internal-methods/middleware.mjs +0 -2
  55. package/dist/middleware/internal-methods/middleware.mjs.map +1 -1
  56. package/dist/middleware/internal-methods/net-version.cjs +5 -4
  57. package/dist/middleware/internal-methods/net-version.cjs.map +1 -1
  58. package/dist/middleware/internal-methods/net-version.d.cts +3 -1
  59. package/dist/middleware/internal-methods/net-version.d.cts.map +1 -1
  60. package/dist/middleware/internal-methods/net-version.d.mts +3 -1
  61. package/dist/middleware/internal-methods/net-version.d.mts.map +1 -1
  62. package/dist/middleware/internal-methods/net-version.mjs +5 -4
  63. package/dist/middleware/internal-methods/net-version.mjs.map +1 -1
  64. package/dist/middleware/internal-methods/switch-ethereum-chain.cjs +7 -3
  65. package/dist/middleware/internal-methods/switch-ethereum-chain.cjs.map +1 -1
  66. package/dist/middleware/internal-methods/switch-ethereum-chain.d.cts +7 -4
  67. package/dist/middleware/internal-methods/switch-ethereum-chain.d.cts.map +1 -1
  68. package/dist/middleware/internal-methods/switch-ethereum-chain.d.mts +7 -4
  69. package/dist/middleware/internal-methods/switch-ethereum-chain.d.mts.map +1 -1
  70. package/dist/middleware/internal-methods/switch-ethereum-chain.mjs +7 -3
  71. package/dist/middleware/internal-methods/switch-ethereum-chain.mjs.map +1 -1
  72. package/dist/middleware/provider.cjs +39 -0
  73. package/dist/middleware/provider.cjs.map +1 -0
  74. package/dist/middleware/provider.d.cts +11 -0
  75. package/dist/middleware/provider.d.cts.map +1 -0
  76. package/dist/middleware/provider.d.mts +11 -0
  77. package/dist/middleware/provider.d.mts.map +1 -0
  78. package/dist/middleware/provider.mjs +35 -0
  79. package/dist/middleware/provider.mjs.map +1 -0
  80. package/dist/simulation.cjs +6 -2
  81. package/dist/simulation.cjs.map +1 -1
  82. package/dist/simulation.d.cts +17 -3
  83. package/dist/simulation.d.cts.map +1 -1
  84. package/dist/simulation.d.mts +17 -3
  85. package/dist/simulation.d.mts.map +1 -1
  86. package/dist/simulation.mjs +7 -3
  87. package/dist/simulation.mjs.map +1 -1
  88. package/dist/store/chain.cjs +29 -0
  89. package/dist/store/chain.cjs.map +1 -0
  90. package/dist/store/chain.d.cts +18 -0
  91. package/dist/store/chain.d.cts.map +1 -0
  92. package/dist/store/chain.d.mts +18 -0
  93. package/dist/store/chain.d.mts.map +1 -0
  94. package/dist/store/chain.mjs +26 -0
  95. package/dist/store/chain.mjs.map +1 -0
  96. package/dist/store/index.cjs +1 -0
  97. package/dist/store/index.cjs.map +1 -1
  98. package/dist/store/index.d.cts +1 -0
  99. package/dist/store/index.d.cts.map +1 -1
  100. package/dist/store/index.d.mts +1 -0
  101. package/dist/store/index.d.mts.map +1 -1
  102. package/dist/store/index.mjs +1 -0
  103. package/dist/store/index.mjs.map +1 -1
  104. package/dist/store/notifications.d.cts +1 -0
  105. package/dist/store/notifications.d.cts.map +1 -1
  106. package/dist/store/notifications.d.mts +1 -0
  107. package/dist/store/notifications.d.mts.map +1 -1
  108. package/dist/store/state.d.cts +2 -0
  109. package/dist/store/state.d.cts.map +1 -1
  110. package/dist/store/state.d.mts +2 -0
  111. package/dist/store/state.d.mts.map +1 -1
  112. package/dist/store/store.cjs +2 -0
  113. package/dist/store/store.cjs.map +1 -1
  114. package/dist/store/store.d.cts +1 -0
  115. package/dist/store/store.d.cts.map +1 -1
  116. package/dist/store/store.d.mts +1 -0
  117. package/dist/store/store.d.mts.map +1 -1
  118. package/dist/store/store.mjs +2 -0
  119. package/dist/store/store.mjs.map +1 -1
  120. package/dist/store/trackables.d.cts +3 -0
  121. package/dist/store/trackables.d.cts.map +1 -1
  122. package/dist/store/trackables.d.mts +3 -0
  123. package/dist/store/trackables.d.mts.map +1 -1
  124. package/dist/store/ui.d.cts +1 -0
  125. package/dist/store/ui.d.cts.map +1 -1
  126. package/dist/store/ui.d.mts +1 -0
  127. package/dist/store/ui.d.mts.map +1 -1
  128. package/dist/structs.d.cts +51 -51
  129. package/dist/structs.d.mts +51 -51
  130. package/package.json +10 -9
  131. package/dist/middleware/internal-methods/provider-state.cjs +0 -28
  132. package/dist/middleware/internal-methods/provider-state.cjs.map +0 -1
  133. package/dist/middleware/internal-methods/provider-state.d.cts +0 -16
  134. package/dist/middleware/internal-methods/provider-state.d.cts.map +0 -1
  135. package/dist/middleware/internal-methods/provider-state.d.mts +0 -16
  136. package/dist/middleware/internal-methods/provider-state.d.mts.map +0 -1
  137. package/dist/middleware/internal-methods/provider-state.mjs +0 -24
  138. package/dist/middleware/internal-methods/provider-state.mjs.map +0 -1
@@ -1,5 +1,6 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
2
  import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
3
+ import type { InternalMethodsMiddlewareHooks } from "./middleware.cjs";
3
4
  /**
4
5
  * A mock handler for eth_chainId that always returns a specific
5
6
  * hardcoded result.
@@ -10,7 +11,8 @@ import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
10
11
  * result.
11
12
  * @param _next - The `json-rpc-engine` middleware next handler.
12
13
  * @param end - The `json-rpc-engine` middleware end handler.
14
+ * @param hooks - The method hooks.
13
15
  * @returns The JSON-RPC response.
14
16
  */
15
- export declare function getChainIdHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback): Promise<void>;
17
+ export declare function getChainIdHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
16
18
  //# sourceMappingURL=chain-id.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-id.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,iBAO9B"}
1
+ {"version":3,"file":"chain-id.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAKlE"}
@@ -1,5 +1,6 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
2
  import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
3
+ import type { InternalMethodsMiddlewareHooks } from "./middleware.mjs";
3
4
  /**
4
5
  * A mock handler for eth_chainId that always returns a specific
5
6
  * hardcoded result.
@@ -10,7 +11,8 @@ import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
10
11
  * result.
11
12
  * @param _next - The `json-rpc-engine` middleware next handler.
12
13
  * @param end - The `json-rpc-engine` middleware end handler.
14
+ * @param hooks - The method hooks.
13
15
  * @returns The JSON-RPC response.
14
16
  */
15
- export declare function getChainIdHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback): Promise<void>;
17
+ export declare function getChainIdHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
16
18
  //# sourceMappingURL=chain-id.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-id.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,iBAO9B"}
1
+ {"version":3,"file":"chain-id.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAKlE"}
@@ -8,12 +8,11 @@
8
8
  * result.
9
9
  * @param _next - The `json-rpc-engine` middleware next handler.
10
10
  * @param end - The `json-rpc-engine` middleware end handler.
11
+ * @param hooks - The method hooks.
11
12
  * @returns The JSON-RPC response.
12
13
  */
13
- export async function getChainIdHandler(_request, response, _next, end) {
14
- // For now this will return a mocked result, this should probably match
15
- // whatever network the simulation is using.
16
- response.result = '0x01';
14
+ export async function getChainIdHandler(_request, response, _next, end, hooks) {
15
+ response.result = hooks.getSimulationState().chain.chainId;
17
16
  return end();
18
17
  }
19
18
  //# sourceMappingURL=chain-id.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-id.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B;IAE7B,uEAAuE;IACvE,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAEzB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\n/**\n * A mock handler for eth_chainId that always returns a specific\n * hardcoded result.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @returns The JSON-RPC response.\n */\nexport async function getChainIdHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n) {\n // For now this will return a mocked result, this should probably match\n // whatever network the simulation is using.\n response.result = '0x01';\n\n return end();\n}\n"]}
1
+ {"version":3,"file":"chain-id.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAE3D,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\n\n/**\n * A mock handler for eth_chainId that always returns a specific\n * hardcoded result.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getChainIdHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n response.result = hooks.getSimulationState().chain.chainId;\n\n return end();\n}\n"]}
@@ -5,11 +5,9 @@ const snaps_utils_1 = require("@metamask/snaps-utils");
5
5
  const accounts_1 = require("./accounts.cjs");
6
6
  const chain_id_1 = require("./chain-id.cjs");
7
7
  const net_version_1 = require("./net-version.cjs");
8
- const provider_state_1 = require("./provider-state.cjs");
9
8
  const switch_ethereum_chain_1 = require("./switch-ethereum-chain.cjs");
10
9
  const methodHandlers = {
11
10
  /* eslint-disable @typescript-eslint/naming-convention */
12
- metamask_getProviderState: provider_state_1.getProviderStateHandler,
13
11
  eth_requestAccounts: accounts_1.getAccountsHandler,
14
12
  eth_accounts: accounts_1.getAccountsHandler,
15
13
  eth_chainId: chain_id_1.getChainIdHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":";;;AACA,uDAAiD;AAGjD,6CAAgD;AAChD,6CAA+C;AAC/C,mDAAyD;AACzD,yDAA2D;AAC3D,uEAAwE;AAWxE,MAAM,cAAc,GAAG;IACrB,yDAAyD;IACzD,yBAAyB,EAAE,wCAAuB;IAClD,mBAAmB,EAAE,6BAAkB;IACvC,YAAY,EAAE,6BAAkB;IAChC,WAAW,EAAE,4BAAiB;IAC9B,WAAW,EAAE,sCAAwB;IACrC,0BAA0B,EAAE,qDAA6B;IACzD,wDAAwD;CACzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAC7C,KAAqC;IAErC,kDAAkD;IAClD,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,kEAAkE;gBAClE,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AApBD,0EAoBC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getChainIdHandler } from './chain-id';\nimport { getNetworkVersionHandler } from './net-version';\nimport { getProviderStateHandler } from './provider-state';\nimport { getSwitchEthereumChainHandler } from './switch-ethereum-chain';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n metamask_getProviderState: getProviderStateHandler,\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n eth_chainId: getChainIdHandler,\n net_version: getNetworkVersionHandler,\n wallet_switchEthereumChain: getSwitchEthereumChainHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"]}
1
+ {"version":3,"file":"middleware.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":";;;AACA,uDAAiD;AAGjD,6CAAgD;AAChD,6CAA+C;AAC/C,mDAAyD;AACzD,uEAAwE;AA0BxE,MAAM,cAAc,GAAG;IACrB,yDAAyD;IACzD,mBAAmB,EAAE,6BAAkB;IACvC,YAAY,EAAE,6BAAkB;IAChC,WAAW,EAAE,4BAAiB;IAC9B,WAAW,EAAE,sCAAwB;IACrC,0BAA0B,EAAE,qDAA6B;IACzD,wDAAwD;CACzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,+BAA+B,CAC7C,KAAqC;IAErC,kDAAkD;IAClD,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,kEAAkE;gBAClE,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AApBD,0EAoBC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Hex, Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getChainIdHandler } from './chain-id';\nimport { getNetworkVersionHandler } from './net-version';\nimport { getSwitchEthereumChainHandler } from './switch-ethereum-chain';\nimport type { ApplicationState } from '../../store';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns the simulation state.\n *\n * @returns The simulation state.\n */\n getSimulationState: () => ApplicationState;\n\n /**\n * A hook that sets the current chain ID.\n *\n * @param chainId - The chain ID.\n */\n setCurrentChain: (chainId: Hex) => null;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n eth_chainId: getChainIdHandler,\n net_version: getNetworkVersionHandler,\n wallet_switchEthereumChain: getSwitchEthereumChainHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
2
- import type { Json, JsonRpcParams } from "@metamask/utils";
2
+ import type { Hex, Json, JsonRpcParams } from "@metamask/utils";
3
+ import type { ApplicationState } from "../../store/index.cjs";
3
4
  export type InternalMethodsMiddlewareHooks = {
4
5
  /**
5
6
  * A hook that returns the user's secret recovery phrase.
@@ -7,6 +8,18 @@ export type InternalMethodsMiddlewareHooks = {
7
8
  * @returns The user's secret recovery phrase.
8
9
  */
9
10
  getMnemonic: () => Promise<Uint8Array>;
11
+ /**
12
+ * A hook that returns the simulation state.
13
+ *
14
+ * @returns The simulation state.
15
+ */
16
+ getSimulationState: () => ApplicationState;
17
+ /**
18
+ * A hook that sets the current chain ID.
19
+ *
20
+ * @param chainId - The chain ID.
21
+ */
22
+ setCurrentChain: (chainId: Hex) => null;
10
23
  };
11
24
  /**
12
25
  * Create a middleware for handling JSON-RPC methods normally handled internally
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAQ3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACxC,CAAC;AAaF;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,8BAA8B,GACpC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAkBxC"}
1
+ {"version":3,"file":"middleware.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAMhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,8BAAoB;AAEpD,MAAM,MAAM,8BAA8B,GAAG;IAC3C;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvC;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;IAE3C;;;;OAIG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;CACzC,CAAC;AAYF;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,8BAA8B,GACpC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAkBxC"}
@@ -1,5 +1,6 @@
1
1
  import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
2
- import type { Json, JsonRpcParams } from "@metamask/utils";
2
+ import type { Hex, Json, JsonRpcParams } from "@metamask/utils";
3
+ import type { ApplicationState } from "../../store/index.mjs";
3
4
  export type InternalMethodsMiddlewareHooks = {
4
5
  /**
5
6
  * A hook that returns the user's secret recovery phrase.
@@ -7,6 +8,18 @@ export type InternalMethodsMiddlewareHooks = {
7
8
  * @returns The user's secret recovery phrase.
8
9
  */
9
10
  getMnemonic: () => Promise<Uint8Array>;
11
+ /**
12
+ * A hook that returns the simulation state.
13
+ *
14
+ * @returns The simulation state.
15
+ */
16
+ getSimulationState: () => ApplicationState;
17
+ /**
18
+ * A hook that sets the current chain ID.
19
+ *
20
+ * @param chainId - The chain ID.
21
+ */
22
+ setCurrentChain: (chainId: Hex) => null;
10
23
  };
11
24
  /**
12
25
  * Create a middleware for handling JSON-RPC methods normally handled internally
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAQ3D,MAAM,MAAM,8BAA8B,GAAG;IAC3C;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;CACxC,CAAC;AAaF;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,8BAA8B,GACpC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAkBxC"}
1
+ {"version":3,"file":"middleware.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAEnE,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAMhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,8BAAoB;AAEpD,MAAM,MAAM,8BAA8B,GAAG;IAC3C;;;;OAIG;IACH,WAAW,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvC;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;IAE3C;;;;OAIG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;CACzC,CAAC;AAYF;;;;;;;;;;GAUG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,8BAA8B,GACpC,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAkBxC"}
@@ -2,11 +2,9 @@ import { logError } from "@metamask/snaps-utils";
2
2
  import { getAccountsHandler } from "./accounts.mjs";
3
3
  import { getChainIdHandler } from "./chain-id.mjs";
4
4
  import { getNetworkVersionHandler } from "./net-version.mjs";
5
- import { getProviderStateHandler } from "./provider-state.mjs";
6
5
  import { getSwitchEthereumChainHandler } from "./switch-ethereum-chain.mjs";
7
6
  const methodHandlers = {
8
7
  /* eslint-disable @typescript-eslint/naming-convention */
9
- metamask_getProviderState: getProviderStateHandler,
10
8
  eth_requestAccounts: getAccountsHandler,
11
9
  eth_accounts: getAccountsHandler,
12
10
  eth_chainId: getChainIdHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AAGjD,OAAO,EAAE,kBAAkB,EAAE,uBAAmB;AAChD,OAAO,EAAE,iBAAiB,EAAE,uBAAmB;AAC/C,OAAO,EAAE,wBAAwB,EAAE,0BAAsB;AACzD,OAAO,EAAE,uBAAuB,EAAE,6BAAyB;AAC3D,OAAO,EAAE,6BAA6B,EAAE,oCAAgC;AAWxE,MAAM,cAAc,GAAG;IACrB,yDAAyD;IACzD,yBAAyB,EAAE,uBAAuB;IAClD,mBAAmB,EAAE,kBAAkB;IACvC,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,wBAAwB;IACrC,0BAA0B,EAAE,6BAA6B;IACzD,wDAAwD;CACzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KAAqC;IAErC,kDAAkD;IAClD,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,kEAAkE;gBAClE,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getChainIdHandler } from './chain-id';\nimport { getNetworkVersionHandler } from './net-version';\nimport { getProviderStateHandler } from './provider-state';\nimport { getSwitchEthereumChainHandler } from './switch-ethereum-chain';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n metamask_getProviderState: getProviderStateHandler,\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n eth_chainId: getChainIdHandler,\n net_version: getNetworkVersionHandler,\n wallet_switchEthereumChain: getSwitchEthereumChainHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"]}
1
+ {"version":3,"file":"middleware.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,8BAA8B;AAGjD,OAAO,EAAE,kBAAkB,EAAE,uBAAmB;AAChD,OAAO,EAAE,iBAAiB,EAAE,uBAAmB;AAC/C,OAAO,EAAE,wBAAwB,EAAE,0BAAsB;AACzD,OAAO,EAAE,6BAA6B,EAAE,oCAAgC;AA0BxE,MAAM,cAAc,GAAG;IACrB,yDAAyD;IACzD,mBAAmB,EAAE,kBAAkB;IACvC,YAAY,EAAE,kBAAkB;IAChC,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,wBAAwB;IACrC,0BAA0B,EAAE,6BAA6B;IACzD,wDAAwD;CACzD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,+BAA+B,CAC7C,KAAqC;IAErC,kDAAkD;IAClD,kEAAkE;IAClE,OAAO,KAAK,UAAU,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG;QACjE,MAAM,OAAO,GACX,cAAc,CAAC,OAAO,CAAC,MAAqC,CAAC,CAAC;QAChE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,kEAAkE;gBAClE,OAAO,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChB,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { logError } from '@metamask/snaps-utils';\nimport type { Hex, Json, JsonRpcParams } from '@metamask/utils';\n\nimport { getAccountsHandler } from './accounts';\nimport { getChainIdHandler } from './chain-id';\nimport { getNetworkVersionHandler } from './net-version';\nimport { getSwitchEthereumChainHandler } from './switch-ethereum-chain';\nimport type { ApplicationState } from '../../store';\n\nexport type InternalMethodsMiddlewareHooks = {\n /**\n * A hook that returns the user's secret recovery phrase.\n *\n * @returns The user's secret recovery phrase.\n */\n getMnemonic: () => Promise<Uint8Array>;\n\n /**\n * A hook that returns the simulation state.\n *\n * @returns The simulation state.\n */\n getSimulationState: () => ApplicationState;\n\n /**\n * A hook that sets the current chain ID.\n *\n * @param chainId - The chain ID.\n */\n setCurrentChain: (chainId: Hex) => null;\n};\n\nconst methodHandlers = {\n /* eslint-disable @typescript-eslint/naming-convention */\n eth_requestAccounts: getAccountsHandler,\n eth_accounts: getAccountsHandler,\n eth_chainId: getChainIdHandler,\n net_version: getNetworkVersionHandler,\n wallet_switchEthereumChain: getSwitchEthereumChainHandler,\n /* eslint-enable @typescript-eslint/naming-convention */\n};\n\n/**\n * Create a middleware for handling JSON-RPC methods normally handled internally\n * by the MetaMask client.\n *\n * NOTE: This middleware provides all `hooks` to all handlers and should\n * therefore NOT be used outside of the simulation environment. It is intended\n * for testing purposes only.\n *\n * @param hooks - Any hooks used by the middleware handlers.\n * @returns A middleware function.\n */\nexport function createInternalMethodsMiddleware(\n hooks: InternalMethodsMiddlewareHooks,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n // This should probably use createAsyncMiddleware.\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n return async function methodMiddleware(request, response, next, end) {\n const handler =\n methodHandlers[request.method as keyof typeof methodHandlers];\n if (handler) {\n try {\n // Implementations may or may not be async, so we must await them.\n return await handler(request, response, next, end, hooks);\n } catch (error: any) {\n logError(error);\n return end(error);\n }\n }\n\n return next();\n };\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getNetworkVersionHandler = void 0;
4
+ const utils_1 = require("@metamask/utils");
4
5
  /**
5
6
  * A mock handler for net_version that always returns a specific
6
7
  * hardcoded result.
@@ -11,12 +12,12 @@ exports.getNetworkVersionHandler = void 0;
11
12
  * result.
12
13
  * @param _next - The `json-rpc-engine` middleware next handler.
13
14
  * @param end - The `json-rpc-engine` middleware end handler.
15
+ * @param hooks - The method hooks.
14
16
  * @returns The JSON-RPC response.
15
17
  */
16
- async function getNetworkVersionHandler(_request, response, _next, end) {
17
- // For now this will return a mocked result, this should probably match
18
- // whatever network the simulation is using.
19
- response.result = '1';
18
+ async function getNetworkVersionHandler(_request, response, _next, end, hooks) {
19
+ const hexChainId = hooks.getSimulationState().chain.chainId;
20
+ response.result = (0, utils_1.hexToBigInt)(hexChainId).toString(10);
20
21
  return end();
21
22
  }
22
23
  exports.getNetworkVersionHandler = getNetworkVersionHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"net-version.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":";;;AAMA;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B;IAE7B,uEAAuE;IACvE,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;IAEtB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAXD,4DAWC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\n/**\n * A mock handler for net_version that always returns a specific\n * hardcoded result.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @returns The JSON-RPC response.\n */\nexport async function getNetworkVersionHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n) {\n // For now this will return a mocked result, this should probably match\n // whatever network the simulation is using.\n response.result = '1';\n\n return end();\n}\n"]}
1
+ {"version":3,"file":"net-version.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":";;;AAIA,2CAA8C;AAK9C;;;;;;;;;;;;GAYG;AACI,KAAK,UAAU,wBAAwB,CAC5C,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5D,QAAQ,CAAC,MAAM,GAAG,IAAA,mBAAW,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvD,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAXD,4DAWC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { hexToBigInt } from '@metamask/utils';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\n\n/**\n * A mock handler for net_version that always returns a specific\n * hardcoded result.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getNetworkVersionHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const hexChainId = hooks.getSimulationState().chain.chainId;\n response.result = hexToBigInt(hexChainId).toString(10);\n\n return end();\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
2
  import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
3
+ import type { InternalMethodsMiddlewareHooks } from "./middleware.cjs";
3
4
  /**
4
5
  * A mock handler for net_version that always returns a specific
5
6
  * hardcoded result.
@@ -10,7 +11,8 @@ import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
10
11
  * result.
11
12
  * @param _next - The `json-rpc-engine` middleware next handler.
12
13
  * @param end - The `json-rpc-engine` middleware end handler.
14
+ * @param hooks - The method hooks.
13
15
  * @returns The JSON-RPC response.
14
16
  */
15
- export declare function getNetworkVersionHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback): Promise<void>;
17
+ export declare function getNetworkVersionHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
16
18
  //# sourceMappingURL=net-version.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"net-version.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,iBAO9B"}
1
+ {"version":3,"file":"net-version.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAMlE"}
@@ -1,5 +1,6 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
2
  import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
3
+ import type { InternalMethodsMiddlewareHooks } from "./middleware.mjs";
3
4
  /**
4
5
  * A mock handler for net_version that always returns a specific
5
6
  * hardcoded result.
@@ -10,7 +11,8 @@ import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
10
11
  * result.
11
12
  * @param _next - The `json-rpc-engine` middleware next handler.
12
13
  * @param end - The `json-rpc-engine` middleware end handler.
14
+ * @param hooks - The method hooks.
13
15
  * @returns The JSON-RPC response.
14
16
  */
15
- export declare function getNetworkVersionHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback): Promise<void>;
17
+ export declare function getNetworkVersionHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
16
18
  //# sourceMappingURL=net-version.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"net-version.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,iBAO9B"}
1
+ {"version":3,"file":"net-version.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AAEnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AAEnE;;;;;;;;;;;;GAYG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAMlE"}
@@ -1,3 +1,4 @@
1
+ import { hexToBigInt } from "@metamask/utils";
1
2
  /**
2
3
  * A mock handler for net_version that always returns a specific
3
4
  * hardcoded result.
@@ -8,12 +9,12 @@
8
9
  * result.
9
10
  * @param _next - The `json-rpc-engine` middleware next handler.
10
11
  * @param end - The `json-rpc-engine` middleware end handler.
12
+ * @param hooks - The method hooks.
11
13
  * @returns The JSON-RPC response.
12
14
  */
13
- export async function getNetworkVersionHandler(_request, response, _next, end) {
14
- // For now this will return a mocked result, this should probably match
15
- // whatever network the simulation is using.
16
- response.result = '1';
15
+ export async function getNetworkVersionHandler(_request, response, _next, end, hooks) {
16
+ const hexChainId = hooks.getSimulationState().chain.chainId;
17
+ response.result = hexToBigInt(hexChainId).toString(10);
17
18
  return end();
18
19
  }
19
20
  //# sourceMappingURL=net-version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"net-version.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B;IAE7B,uEAAuE;IACvE,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;IAEtB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\n/**\n * A mock handler for net_version that always returns a specific\n * hardcoded result.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @returns The JSON-RPC response.\n */\nexport async function getNetworkVersionHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n) {\n // For now this will return a mocked result, this should probably match\n // whatever network the simulation is using.\n response.result = '1';\n\n return end();\n}\n"]}
1
+ {"version":3,"file":"net-version.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,wBAAwB;AAK9C;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,UAAU,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5D,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvD,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { hexToBigInt } from '@metamask/utils';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\n\n/**\n * A mock handler for net_version that always returns a specific\n * hardcoded result.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function getNetworkVersionHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const hexChainId = hooks.getSimulationState().chain.chainId;\n response.result = hexToBigInt(hexChainId).toString(10);\n\n return end();\n}\n"]}
@@ -1,19 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSwitchEthereumChainHandler = void 0;
4
+ const utils_1 = require("@metamask/utils");
4
5
  /**
5
6
  * A mock handler for the `wallet_switchEthereumChain` method that always
6
7
  * returns `null`.
7
8
  *
8
- * @param _request - Incoming JSON-RPC request. This is ignored for this
9
- * specific handler.
9
+ * @param request - Incoming JSON-RPC request.
10
10
  * @param response - The outgoing JSON-RPC response, modified to return the
11
11
  * result.
12
12
  * @param _next - The `json-rpc-engine` middleware next handler.
13
13
  * @param end - The `json-rpc-engine` middleware end handler.
14
+ * @param hooks - The method hooks.
14
15
  * @returns The response.
15
16
  */
16
- async function getSwitchEthereumChainHandler(_request, response, _next, end) {
17
+ async function getSwitchEthereumChainHandler(request, response, _next, end, hooks) {
18
+ const castRequest = request;
19
+ (0, utils_1.assert)(castRequest.params?.[0]?.chainId, 'No chain ID passed.');
20
+ hooks.setCurrentChain(castRequest.params[0].chainId);
17
21
  response.result = null;
18
22
  return end();
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch-ethereum-chain.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":";;;AAMA;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,6BAA6B,CACjD,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B;IAE7B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AARD,sEAQC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\n/**\n * A mock handler for the `wallet_switchEthereumChain` method that always\n * returns `null`.\n *\n * @param _request - Incoming JSON-RPC request. This is ignored for this\n * specific handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @returns The response.\n */\nexport async function getSwitchEthereumChainHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n) {\n response.result = null;\n return end();\n}\n"]}
1
+ {"version":3,"file":"switch-ethereum-chain.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":";;;AAIA,2CAKyB;AAMzB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,6BAA6B,CACjD,OAAuB,EACvB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAA+B;IAE/B,MAAM,WAAW,GAAG,OAA6C,CAAC;IAElE,IAAA,cAAM,EAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAChE,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAdD,sEAcC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n assert,\n type Hex,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nexport type SwitchEthereumChainHooks = {\n setCurrentChain: (chain: Hex) => null;\n};\n\n/**\n * A mock handler for the `wallet_switchEthereumChain` method that always\n * returns `null`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The response.\n */\nexport async function getSwitchEthereumChainHandler(\n request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: SwitchEthereumChainHooks,\n) {\n const castRequest = request as JsonRpcRequest<[{ chainId: Hex }]>;\n\n assert(castRequest.params?.[0]?.chainId, 'No chain ID passed.');\n hooks.setCurrentChain(castRequest.params[0].chainId);\n\n response.result = null;\n return end();\n}\n"]}
@@ -1,16 +1,19 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
2
+ import { type Hex, type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
3
+ export type SwitchEthereumChainHooks = {
4
+ setCurrentChain: (chain: Hex) => null;
5
+ };
3
6
  /**
4
7
  * A mock handler for the `wallet_switchEthereumChain` method that always
5
8
  * returns `null`.
6
9
  *
7
- * @param _request - Incoming JSON-RPC request. This is ignored for this
8
- * specific handler.
10
+ * @param request - Incoming JSON-RPC request.
9
11
  * @param response - The outgoing JSON-RPC response, modified to return the
10
12
  * result.
11
13
  * @param _next - The `json-rpc-engine` middleware next handler.
12
14
  * @param end - The `json-rpc-engine` middleware end handler.
15
+ * @param hooks - The method hooks.
13
16
  * @returns The response.
14
17
  */
15
- export declare function getSwitchEthereumChainHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback): Promise<void>;
18
+ export declare function getSwitchEthereumChainHandler(request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: SwitchEthereumChainHooks): Promise<void>;
16
19
  //# sourceMappingURL=switch-ethereum-chain.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-ethereum-chain.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,iBAI9B"}
1
+ {"version":3,"file":"switch-ethereum-chain.d.cts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC5B,wBAAwB;AAEzB,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,wBAAwB,iBAShC"}
@@ -1,16 +1,19 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
2
+ import { type Hex, type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
3
+ export type SwitchEthereumChainHooks = {
4
+ setCurrentChain: (chain: Hex) => null;
5
+ };
3
6
  /**
4
7
  * A mock handler for the `wallet_switchEthereumChain` method that always
5
8
  * returns `null`.
6
9
  *
7
- * @param _request - Incoming JSON-RPC request. This is ignored for this
8
- * specific handler.
10
+ * @param request - Incoming JSON-RPC request.
9
11
  * @param response - The outgoing JSON-RPC response, modified to return the
10
12
  * result.
11
13
  * @param _next - The `json-rpc-engine` middleware next handler.
12
14
  * @param end - The `json-rpc-engine` middleware end handler.
15
+ * @param hooks - The method hooks.
13
16
  * @returns The response.
14
17
  */
15
- export declare function getSwitchEthereumChainHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback): Promise<void>;
18
+ export declare function getSwitchEthereumChainHandler(request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: SwitchEthereumChainHooks): Promise<void>;
16
19
  //# sourceMappingURL=switch-ethereum-chain.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"switch-ethereum-chain.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,wBAAwB;AAE9E;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,iBAI9B"}
1
+ {"version":3,"file":"switch-ethereum-chain.d.mts","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,kCAAkC;AACnC,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC5B,wBAAwB;AAEzB,MAAM,MAAM,wBAAwB,GAAG;IACrC,eAAe,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACvC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,wBAAwB,iBAShC"}
@@ -1,16 +1,20 @@
1
+ import { assert } from "@metamask/utils";
1
2
  /**
2
3
  * A mock handler for the `wallet_switchEthereumChain` method that always
3
4
  * returns `null`.
4
5
  *
5
- * @param _request - Incoming JSON-RPC request. This is ignored for this
6
- * specific handler.
6
+ * @param request - Incoming JSON-RPC request.
7
7
  * @param response - The outgoing JSON-RPC response, modified to return the
8
8
  * result.
9
9
  * @param _next - The `json-rpc-engine` middleware next handler.
10
10
  * @param end - The `json-rpc-engine` middleware end handler.
11
+ * @param hooks - The method hooks.
11
12
  * @returns The response.
12
13
  */
13
- export async function getSwitchEthereumChainHandler(_request, response, _next, end) {
14
+ export async function getSwitchEthereumChainHandler(request, response, _next, end, hooks) {
15
+ const castRequest = request;
16
+ assert(castRequest.params?.[0]?.chainId, 'No chain ID passed.');
17
+ hooks.setCurrentChain(castRequest.params[0].chainId);
14
18
  response.result = null;
15
19
  return end();
16
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch-ethereum-chain.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,QAAwB,EACxB,QAAgC,EAChC,KAAgC,EAChC,GAA6B;IAE7B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport type { JsonRpcRequest, PendingJsonRpcResponse } from '@metamask/utils';\n\n/**\n * A mock handler for the `wallet_switchEthereumChain` method that always\n * returns `null`.\n *\n * @param _request - Incoming JSON-RPC request. This is ignored for this\n * specific handler.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @returns The response.\n */\nexport async function getSwitchEthereumChainHandler(\n _request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n) {\n response.result = null;\n return end();\n}\n"]}
1
+ {"version":3,"file":"switch-ethereum-chain.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/switch-ethereum-chain.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EAIP,wBAAwB;AAMzB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAuB,EACvB,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAA+B;IAE/B,MAAM,WAAW,GAAG,OAA6C,CAAC;IAElE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAChE,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAErD,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n assert,\n type Hex,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nexport type SwitchEthereumChainHooks = {\n setCurrentChain: (chain: Hex) => null;\n};\n\n/**\n * A mock handler for the `wallet_switchEthereumChain` method that always\n * returns `null`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param response - The outgoing JSON-RPC response, modified to return the\n * result.\n * @param _next - The `json-rpc-engine` middleware next handler.\n * @param end - The `json-rpc-engine` middleware end handler.\n * @param hooks - The method hooks.\n * @returns The response.\n */\nexport async function getSwitchEthereumChainHandler(\n request: JsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: SwitchEthereumChainHooks,\n) {\n const castRequest = request as JsonRpcRequest<[{ chainId: Hex }]>;\n\n assert(castRequest.params?.[0]?.chainId, 'No chain ID passed.');\n hooks.setCurrentChain(castRequest.params[0].chainId);\n\n response.result = null;\n return end();\n}\n"]}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProviderMiddleware = void 0;
4
+ const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
5
+ const rpc_errors_1 = require("@metamask/rpc-errors");
6
+ const utils_1 = require("@metamask/utils");
7
+ const ethers_1 = require("ethers");
8
+ const store_1 = require("../store/index.cjs");
9
+ /**
10
+ * Create a middleware that uses a JSON-RPC provider to respond to RPC requests.
11
+ *
12
+ * @param store - The Redux store.
13
+ * @returns A middleware that responds to JSON-RPC requests.
14
+ */
15
+ function createProviderMiddleware(store) {
16
+ return (0, json_rpc_engine_1.createAsyncMiddleware)(async (request, response) => {
17
+ try {
18
+ const chainId = (0, store_1.getChainId)(store.getState());
19
+ const provider = new ethers_1.InfuraProvider((0, utils_1.hexToBigInt)(chainId));
20
+ const result = await provider.send(request.method, request.params ?? []);
21
+ response.result = result;
22
+ }
23
+ catch (error) {
24
+ if ((0, utils_1.hasProperty)(error, 'info') && (0, utils_1.hasProperty)(error.info, 'error')) {
25
+ response.error = error.info.error;
26
+ return;
27
+ }
28
+ if ((0, utils_1.hasProperty)(error, 'error')) {
29
+ response.error = error.error;
30
+ return;
31
+ }
32
+ response.error = rpc_errors_1.rpcErrors.internal({
33
+ data: { cause: (0, rpc_errors_1.serializeCause)(error) },
34
+ });
35
+ }
36
+ });
37
+ }
38
+ exports.createProviderMiddleware = createProviderMiddleware;
39
+ //# sourceMappingURL=provider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.cjs","sourceRoot":"","sources":["../../src/middleware/provider.ts"],"names":[],"mappings":";;;AACA,+DAAkE;AAClE,qDAAiE;AAEjE,2CAA2D;AAC3D,mCAAwC;AAGxC,8CAAsC;AAEtC;;;;;GAKG;AACH,SAAgB,wBAAwB,CACtC,KAAY;IAEZ,OAAO,IAAA,uCAAqB,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,uBAAc,CAAC,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACzE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAA,mBAAW,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,IAAA,mBAAW,EAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBACnE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,IAAI,IAAA,mBAAW,EAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,KAAK,GAAG,sBAAS,CAAC,QAAQ,CAAC;gBAClC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAA,2BAAc,EAAC,KAAK,CAAC,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxBD,4DAwBC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { createAsyncMiddleware } from '@metamask/json-rpc-engine';\nimport { rpcErrors, serializeCause } from '@metamask/rpc-errors';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\nimport { hasProperty, hexToBigInt } from '@metamask/utils';\nimport { InfuraProvider } from 'ethers';\n\nimport type { Store } from '../store';\nimport { getChainId } from '../store';\n\n/**\n * Create a middleware that uses a JSON-RPC provider to respond to RPC requests.\n *\n * @param store - The Redux store.\n * @returns A middleware that responds to JSON-RPC requests.\n */\nexport function createProviderMiddleware(\n store: Store,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (request, response) => {\n try {\n const chainId = getChainId(store.getState());\n const provider = new InfuraProvider(hexToBigInt(chainId));\n\n const result = await provider.send(request.method, request.params ?? []);\n response.result = result;\n } catch (error) {\n if (hasProperty(error, 'info') && hasProperty(error.info, 'error')) {\n response.error = error.info.error;\n return;\n }\n if (hasProperty(error, 'error')) {\n response.error = error.error;\n return;\n }\n response.error = rpcErrors.internal({\n data: { cause: serializeCause(error) },\n });\n }\n });\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
2
+ import type { Json, JsonRpcParams } from "@metamask/utils";
3
+ import type { Store } from "../store/index.cjs";
4
+ /**
5
+ * Create a middleware that uses a JSON-RPC provider to respond to RPC requests.
6
+ *
7
+ * @param store - The Redux store.
8
+ * @returns A middleware that responds to JSON-RPC requests.
9
+ */
10
+ export declare function createProviderMiddleware(store: Store): JsonRpcMiddleware<JsonRpcParams, Json>;
11
+ //# sourceMappingURL=provider.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.cts","sourceRoot":"","sources":["../../src/middleware/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAGnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAI3D,OAAO,KAAK,EAAE,KAAK,EAAE,2BAAiB;AAGtC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,GACX,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAsBxC"}
@@ -0,0 +1,11 @@
1
+ import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
2
+ import type { Json, JsonRpcParams } from "@metamask/utils";
3
+ import type { Store } from "../store/index.mjs";
4
+ /**
5
+ * Create a middleware that uses a JSON-RPC provider to respond to RPC requests.
6
+ *
7
+ * @param store - The Redux store.
8
+ * @returns A middleware that responds to JSON-RPC requests.
9
+ */
10
+ export declare function createProviderMiddleware(store: Store): JsonRpcMiddleware<JsonRpcParams, Json>;
11
+ //# sourceMappingURL=provider.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.mts","sourceRoot":"","sources":["../../src/middleware/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAGnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAI3D,OAAO,KAAK,EAAE,KAAK,EAAE,2BAAiB;AAGtC;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,GACX,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAsBxC"}
@@ -0,0 +1,35 @@
1
+ import { createAsyncMiddleware } from "@metamask/json-rpc-engine";
2
+ import { rpcErrors, serializeCause } from "@metamask/rpc-errors";
3
+ import { hasProperty, hexToBigInt } from "@metamask/utils";
4
+ import { InfuraProvider } from "ethers";
5
+ import { getChainId } from "../store/index.mjs";
6
+ /**
7
+ * Create a middleware that uses a JSON-RPC provider to respond to RPC requests.
8
+ *
9
+ * @param store - The Redux store.
10
+ * @returns A middleware that responds to JSON-RPC requests.
11
+ */
12
+ export function createProviderMiddleware(store) {
13
+ return createAsyncMiddleware(async (request, response) => {
14
+ try {
15
+ const chainId = getChainId(store.getState());
16
+ const provider = new InfuraProvider(hexToBigInt(chainId));
17
+ const result = await provider.send(request.method, request.params ?? []);
18
+ response.result = result;
19
+ }
20
+ catch (error) {
21
+ if (hasProperty(error, 'info') && hasProperty(error.info, 'error')) {
22
+ response.error = error.info.error;
23
+ return;
24
+ }
25
+ if (hasProperty(error, 'error')) {
26
+ response.error = error.error;
27
+ return;
28
+ }
29
+ response.error = rpcErrors.internal({
30
+ data: { cause: serializeCause(error) },
31
+ });
32
+ }
33
+ });
34
+ }
35
+ //# sourceMappingURL=provider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.mjs","sourceRoot":"","sources":["../../src/middleware/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,kCAAkC;AAClE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,6BAA6B;AAEjE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,wBAAwB;AAC3D,OAAO,EAAE,cAAc,EAAE,eAAe;AAGxC,OAAO,EAAE,UAAU,EAAE,2BAAiB;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAY;IAEZ,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YAE1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACzE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBACnE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;gBAClC,OAAO;YACT,CAAC;YACD,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC;gBAClC,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { createAsyncMiddleware } from '@metamask/json-rpc-engine';\nimport { rpcErrors, serializeCause } from '@metamask/rpc-errors';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\nimport { hasProperty, hexToBigInt } from '@metamask/utils';\nimport { InfuraProvider } from 'ethers';\n\nimport type { Store } from '../store';\nimport { getChainId } from '../store';\n\n/**\n * Create a middleware that uses a JSON-RPC provider to respond to RPC requests.\n *\n * @param store - The Redux store.\n * @returns A middleware that responds to JSON-RPC requests.\n */\nexport function createProviderMiddleware(\n store: Store,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (request, response) => {\n try {\n const chainId = getChainId(store.getState());\n const provider = new InfuraProvider(hexToBigInt(chainId));\n\n const result = await provider.send(request.method, request.params ?? []);\n response.result = result;\n } catch (error) {\n if (hasProperty(error, 'info') && hasProperty(error.info, 'error')) {\n response.error = error.info.error;\n return;\n }\n if (hasProperty(error, 'error')) {\n response.error = error.error;\n return;\n }\n response.error = rpcErrors.internal({\n data: { cause: serializeCause(error) },\n });\n }\n });\n}\n"]}