@metamask/snaps-simulation 3.8.0 → 4.0.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 (114) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/dist/constants.cjs +2 -2
  3. package/dist/constants.cjs.map +1 -1
  4. package/dist/constants.mjs +2 -2
  5. package/dist/constants.mjs.map +1 -1
  6. package/dist/controllers.cjs +16 -0
  7. package/dist/controllers.cjs.map +1 -1
  8. package/dist/controllers.d.cts.map +1 -1
  9. package/dist/controllers.d.mts.map +1 -1
  10. package/dist/controllers.mjs +16 -0
  11. package/dist/controllers.mjs.map +1 -1
  12. package/dist/methods/specifications.cjs +2 -0
  13. package/dist/methods/specifications.cjs.map +1 -1
  14. package/dist/methods/specifications.d.cts +7 -1
  15. package/dist/methods/specifications.d.cts.map +1 -1
  16. package/dist/methods/specifications.d.mts +7 -1
  17. package/dist/methods/specifications.d.mts.map +1 -1
  18. package/dist/methods/specifications.mjs +2 -0
  19. package/dist/methods/specifications.mjs.map +1 -1
  20. package/dist/middleware/engine.cjs +5 -1
  21. package/dist/middleware/engine.cjs.map +1 -1
  22. package/dist/middleware/engine.d.cts +6 -2
  23. package/dist/middleware/engine.d.cts.map +1 -1
  24. package/dist/middleware/engine.d.mts +6 -2
  25. package/dist/middleware/engine.d.mts.map +1 -1
  26. package/dist/middleware/engine.mjs +5 -1
  27. package/dist/middleware/engine.mjs.map +1 -1
  28. package/dist/middleware/internal-methods/chain-id.cjs +7 -4
  29. package/dist/middleware/internal-methods/chain-id.cjs.map +1 -1
  30. package/dist/middleware/internal-methods/chain-id.d.cts +4 -4
  31. package/dist/middleware/internal-methods/chain-id.d.cts.map +1 -1
  32. package/dist/middleware/internal-methods/chain-id.d.mts +4 -4
  33. package/dist/middleware/internal-methods/chain-id.d.mts.map +1 -1
  34. package/dist/middleware/internal-methods/chain-id.mjs +7 -4
  35. package/dist/middleware/internal-methods/chain-id.mjs.map +1 -1
  36. package/dist/middleware/internal-methods/net-version.cjs +6 -5
  37. package/dist/middleware/internal-methods/net-version.cjs.map +1 -1
  38. package/dist/middleware/internal-methods/net-version.d.cts +4 -4
  39. package/dist/middleware/internal-methods/net-version.d.cts.map +1 -1
  40. package/dist/middleware/internal-methods/net-version.d.mts +4 -4
  41. package/dist/middleware/internal-methods/net-version.d.mts.map +1 -1
  42. package/dist/middleware/internal-methods/net-version.mjs +7 -6
  43. package/dist/middleware/internal-methods/net-version.mjs.map +1 -1
  44. package/dist/middleware/multichain/create-session.cjs +55 -0
  45. package/dist/middleware/multichain/create-session.cjs.map +1 -0
  46. package/dist/middleware/multichain/create-session.d.cts +19 -0
  47. package/dist/middleware/multichain/create-session.d.cts.map +1 -0
  48. package/dist/middleware/multichain/create-session.d.mts +19 -0
  49. package/dist/middleware/multichain/create-session.d.mts.map +1 -0
  50. package/dist/middleware/multichain/create-session.mjs +51 -0
  51. package/dist/middleware/multichain/create-session.mjs.map +1 -0
  52. package/dist/middleware/multichain/get-session.cjs +20 -0
  53. package/dist/middleware/multichain/get-session.cjs.map +1 -0
  54. package/dist/middleware/multichain/get-session.d.cts +17 -0
  55. package/dist/middleware/multichain/get-session.d.cts.map +1 -0
  56. package/dist/middleware/multichain/get-session.d.mts +17 -0
  57. package/dist/middleware/multichain/get-session.d.mts.map +1 -0
  58. package/dist/middleware/multichain/get-session.mjs +16 -0
  59. package/dist/middleware/multichain/get-session.mjs.map +1 -0
  60. package/dist/middleware/multichain/index.cjs +22 -0
  61. package/dist/middleware/multichain/index.cjs.map +1 -0
  62. package/dist/middleware/multichain/index.d.cts +6 -0
  63. package/dist/middleware/multichain/index.d.cts.map +1 -0
  64. package/dist/middleware/multichain/index.d.mts +6 -0
  65. package/dist/middleware/multichain/index.d.mts.map +1 -0
  66. package/dist/middleware/multichain/index.mjs +6 -0
  67. package/dist/middleware/multichain/index.mjs.map +1 -0
  68. package/dist/middleware/multichain/invoke-method.cjs +36 -0
  69. package/dist/middleware/multichain/invoke-method.cjs.map +1 -0
  70. package/dist/middleware/multichain/invoke-method.d.cts +15 -0
  71. package/dist/middleware/multichain/invoke-method.d.cts.map +1 -0
  72. package/dist/middleware/multichain/invoke-method.d.mts +15 -0
  73. package/dist/middleware/multichain/invoke-method.d.mts.map +1 -0
  74. package/dist/middleware/multichain/invoke-method.mjs +32 -0
  75. package/dist/middleware/multichain/invoke-method.mjs.map +1 -0
  76. package/dist/middleware/multichain/middleware.cjs +49 -0
  77. package/dist/middleware/multichain/middleware.cjs.map +1 -0
  78. package/dist/middleware/multichain/middleware.d.cts +12 -0
  79. package/dist/middleware/multichain/middleware.d.cts.map +1 -0
  80. package/dist/middleware/multichain/middleware.d.mts +12 -0
  81. package/dist/middleware/multichain/middleware.d.mts.map +1 -0
  82. package/dist/middleware/multichain/middleware.mjs +45 -0
  83. package/dist/middleware/multichain/middleware.mjs.map +1 -0
  84. package/dist/middleware/multichain/revoke-session.cjs +17 -0
  85. package/dist/middleware/multichain/revoke-session.cjs.map +1 -0
  86. package/dist/middleware/multichain/revoke-session.d.cts +13 -0
  87. package/dist/middleware/multichain/revoke-session.d.cts.map +1 -0
  88. package/dist/middleware/multichain/revoke-session.d.mts +13 -0
  89. package/dist/middleware/multichain/revoke-session.d.mts.map +1 -0
  90. package/dist/middleware/multichain/revoke-session.mjs +13 -0
  91. package/dist/middleware/multichain/revoke-session.mjs.map +1 -0
  92. package/dist/middleware/multichain/utils.cjs +29 -0
  93. package/dist/middleware/multichain/utils.cjs.map +1 -0
  94. package/dist/middleware/multichain/utils.d.cts +14 -0
  95. package/dist/middleware/multichain/utils.d.cts.map +1 -0
  96. package/dist/middleware/multichain/utils.d.mts +14 -0
  97. package/dist/middleware/multichain/utils.d.mts.map +1 -0
  98. package/dist/middleware/multichain/utils.mjs +25 -0
  99. package/dist/middleware/multichain/utils.mjs.map +1 -0
  100. package/dist/middleware/provider.cjs +12 -3
  101. package/dist/middleware/provider.cjs.map +1 -1
  102. package/dist/middleware/provider.d.cts.map +1 -1
  103. package/dist/middleware/provider.d.mts.map +1 -1
  104. package/dist/middleware/provider.mjs +13 -4
  105. package/dist/middleware/provider.mjs.map +1 -1
  106. package/dist/simulation.cjs +73 -4
  107. package/dist/simulation.cjs.map +1 -1
  108. package/dist/simulation.d.cts +39 -1
  109. package/dist/simulation.d.cts.map +1 -1
  110. package/dist/simulation.d.mts +39 -1
  111. package/dist/simulation.d.mts.map +1 -1
  112. package/dist/simulation.mjs +71 -3
  113. package/dist/simulation.mjs.map +1 -1
  114. package/package.json +8 -7
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getChainIdHandler = void 0;
4
+ const utils_1 = require("@metamask/utils");
4
5
  /**
5
6
  * A mock handler for eth_chainId that always returns a specific
6
7
  * hardcoded result.
7
8
  *
8
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
9
- * 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.
@@ -14,8 +14,11 @@ exports.getChainIdHandler = void 0;
14
14
  * @param hooks - The method hooks.
15
15
  * @returns The JSON-RPC response.
16
16
  */
17
- async function getChainIdHandler(_request, response, _next, end, hooks) {
18
- response.result = hooks.getSimulationState().chain.chainId;
17
+ async function getChainIdHandler(request, response, _next, end, hooks) {
18
+ const requestScope = request.scope && (0, utils_1.parseCaipChainId)(request.scope);
19
+ response.result = requestScope
20
+ ? (0, utils_1.bigIntToHex)(BigInt(requestScope.reference))
21
+ : hooks.getSimulationState().chain.chainId;
19
22
  return end();
20
23
  }
21
24
  exports.getChainIdHandler = getChainIdHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"chain-id.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":";;;AAQA;;;;;;;;;;;;GAYG;AACI,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;AAVD,8CAUC","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"]}
1
+ {"version":3,"file":"chain-id.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":";;;AAIA,2CAIyB;AAKzB;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,iBAAiB,CACrC,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,IAAA,mBAAW,EAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAE7C,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAbD,8CAaC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n bigIntToHex,\n parseCaipChainId,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\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.\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: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? bigIntToHex(BigInt(requestScope.reference))\n : hooks.getSimulationState().chain.chainId;\n\n return end();\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
2
+ import { type PendingJsonRpcResponse } from "@metamask/utils";
3
3
  import type { InternalMethodsMiddlewareHooks } from "./middleware.cjs";
4
+ import type { ScopedJsonRpcRequest } from "../multichain/index.cjs";
4
5
  /**
5
6
  * A mock handler for eth_chainId that always returns a specific
6
7
  * hardcoded result.
7
8
  *
8
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
9
- * 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.
@@ -14,5 +14,5 @@ import type { InternalMethodsMiddlewareHooks } from "./middleware.cjs";
14
14
  * @param hooks - The method hooks.
15
15
  * @returns The JSON-RPC response.
16
16
  */
17
- export declare function getChainIdHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
17
+ export declare function getChainIdHandler(request: ScopedJsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
18
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,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
+ {"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,EAGL,KAAK,sBAAsB,EAC5B,wBAAwB;AAEzB,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gCAAsB;AAE1D;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAQlE"}
@@ -1,12 +1,12 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
2
+ import { type PendingJsonRpcResponse } from "@metamask/utils";
3
3
  import type { InternalMethodsMiddlewareHooks } from "./middleware.mjs";
4
+ import type { ScopedJsonRpcRequest } from "../multichain/index.mjs";
4
5
  /**
5
6
  * A mock handler for eth_chainId that always returns a specific
6
7
  * hardcoded result.
7
8
  *
8
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
9
- * 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.
@@ -14,5 +14,5 @@ import type { InternalMethodsMiddlewareHooks } from "./middleware.mjs";
14
14
  * @param hooks - The method hooks.
15
15
  * @returns The JSON-RPC response.
16
16
  */
17
- export declare function getChainIdHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
17
+ export declare function getChainIdHandler(request: ScopedJsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
18
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,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
+ {"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,EAGL,KAAK,sBAAsB,EAC5B,wBAAwB;AAEzB,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gCAAsB;AAE1D;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAQlE"}
@@ -1,9 +1,9 @@
1
+ import { bigIntToHex, parseCaipChainId } from "@metamask/utils";
1
2
  /**
2
3
  * A mock handler for eth_chainId that always returns a specific
3
4
  * hardcoded result.
4
5
  *
5
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
6
- * 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.
@@ -11,8 +11,11 @@
11
11
  * @param hooks - The method hooks.
12
12
  * @returns The JSON-RPC response.
13
13
  */
14
- export async function getChainIdHandler(_request, response, _next, end, hooks) {
15
- response.result = hooks.getSimulationState().chain.chainId;
14
+ export async function getChainIdHandler(request, response, _next, end, hooks) {
15
+ const requestScope = request.scope && parseCaipChainId(request.scope);
16
+ response.result = requestScope
17
+ ? bigIntToHex(BigInt(requestScope.reference))
18
+ : hooks.getSimulationState().chain.chainId;
16
19
  return end();
17
20
  }
18
21
  //# 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":"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"]}
1
+ {"version":3,"file":"chain-id.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/chain-id.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,gBAAgB,EAEjB,wBAAwB;AAKzB;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IAE7C,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport {\n bigIntToHex,\n parseCaipChainId,\n type PendingJsonRpcResponse,\n} from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\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.\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: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? bigIntToHex(BigInt(requestScope.reference))\n : hooks.getSimulationState().chain.chainId;\n\n return end();\n}\n"]}
@@ -6,8 +6,7 @@ const utils_1 = require("@metamask/utils");
6
6
  * A mock handler for net_version that always returns a specific
7
7
  * hardcoded result.
8
8
  *
9
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
10
- * handler.
9
+ * @param request - Incoming JSON-RPC request.
11
10
  * @param response - The outgoing JSON-RPC response, modified to return the
12
11
  * result.
13
12
  * @param _next - The `json-rpc-engine` middleware next handler.
@@ -15,9 +14,11 @@ const utils_1 = require("@metamask/utils");
15
14
  * @param hooks - The method hooks.
16
15
  * @returns The JSON-RPC response.
17
16
  */
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);
17
+ async function getNetworkVersionHandler(request, response, _next, end, hooks) {
18
+ const requestScope = request.scope && (0, utils_1.parseCaipChainId)(request.scope);
19
+ response.result = requestScope
20
+ ? BigInt(requestScope.reference).toString(10)
21
+ : (0, utils_1.hexToBigInt)(hooks.getSimulationState().chain.chainId).toString(10);
21
22
  return end();
22
23
  }
23
24
  exports.getNetworkVersionHandler = getNetworkVersionHandler;
@@ -1 +1 @@
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
+ {"version":3,"file":"net-version.cjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":";;;AAIA,2CAAgE;AAMhE;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,wBAAwB,CAC5C,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAA,wBAAgB,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,CAAC,CAAC,IAAA,mBAAW,EAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvE,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAbD,4DAaC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { hexToBigInt, parseCaipChainId } from '@metamask/utils';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\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.\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: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? BigInt(requestScope.reference).toString(10)\n : hexToBigInt(hooks.getSimulationState().chain.chainId).toString(10);\n\n return end();\n}\n"]}
@@ -1,12 +1,12 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
2
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
3
3
  import type { InternalMethodsMiddlewareHooks } from "./middleware.cjs";
4
+ import type { ScopedJsonRpcRequest } from "../multichain/index.cjs";
4
5
  /**
5
6
  * A mock handler for net_version that always returns a specific
6
7
  * hardcoded result.
7
8
  *
8
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
9
- * 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.
@@ -14,5 +14,5 @@ import type { InternalMethodsMiddlewareHooks } from "./middleware.cjs";
14
14
  * @param hooks - The method hooks.
15
15
  * @returns The JSON-RPC response.
16
16
  */
17
- export declare function getNetworkVersionHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
17
+ export declare function getNetworkVersionHandler(request: ScopedJsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
18
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;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
+ {"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,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gCAAsB;AAE1D;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAQlE"}
@@ -1,12 +1,12 @@
1
1
  import type { JsonRpcEngineEndCallback, JsonRpcEngineNextCallback } from "@metamask/json-rpc-engine";
2
- import type { JsonRpcRequest, PendingJsonRpcResponse } from "@metamask/utils";
2
+ import type { PendingJsonRpcResponse } from "@metamask/utils";
3
3
  import type { InternalMethodsMiddlewareHooks } from "./middleware.mjs";
4
+ import type { ScopedJsonRpcRequest } from "../multichain/index.mjs";
4
5
  /**
5
6
  * A mock handler for net_version that always returns a specific
6
7
  * hardcoded result.
7
8
  *
8
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
9
- * 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.
@@ -14,5 +14,5 @@ import type { InternalMethodsMiddlewareHooks } from "./middleware.mjs";
14
14
  * @param hooks - The method hooks.
15
15
  * @returns The JSON-RPC response.
16
16
  */
17
- export declare function getNetworkVersionHandler(_request: JsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
17
+ export declare function getNetworkVersionHandler(request: ScopedJsonRpcRequest, response: PendingJsonRpcResponse, _next: JsonRpcEngineNextCallback, end: JsonRpcEngineEndCallback, hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>): Promise<void>;
18
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;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
+ {"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,sBAAsB,EAAE,wBAAwB;AAE9D,OAAO,KAAK,EAAE,8BAA8B,EAAE,yBAAqB;AACnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,gCAAsB;AAE1D;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,yBAAyB,EAChC,GAAG,EAAE,wBAAwB,EAC7B,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,iBAQlE"}
@@ -1,10 +1,9 @@
1
- import { hexToBigInt } from "@metamask/utils";
1
+ import { hexToBigInt, parseCaipChainId } from "@metamask/utils";
2
2
  /**
3
3
  * A mock handler for net_version that always returns a specific
4
4
  * hardcoded result.
5
5
  *
6
- * @param _request - Incoming JSON-RPC request. Ignored for this specific
7
- * handler.
6
+ * @param request - Incoming JSON-RPC request.
8
7
  * @param response - The outgoing JSON-RPC response, modified to return the
9
8
  * result.
10
9
  * @param _next - The `json-rpc-engine` middleware next handler.
@@ -12,9 +11,11 @@ import { hexToBigInt } from "@metamask/utils";
12
11
  * @param hooks - The method hooks.
13
12
  * @returns The JSON-RPC response.
14
13
  */
15
- export async function getNetworkVersionHandler(_request, response, _next, end, hooks) {
16
- const hexChainId = hooks.getSimulationState().chain.chainId;
17
- response.result = hexToBigInt(hexChainId).toString(10);
14
+ export async function getNetworkVersionHandler(request, response, _next, end, hooks) {
15
+ const requestScope = request.scope && parseCaipChainId(request.scope);
16
+ response.result = requestScope
17
+ ? BigInt(requestScope.reference).toString(10)
18
+ : hexToBigInt(hooks.getSimulationState().chain.chainId).toString(10);
18
19
  return end();
19
20
  }
20
21
  //# 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":"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
+ {"version":3,"file":"net-version.mjs","sourceRoot":"","sources":["../../../src/middleware/internal-methods/net-version.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,wBAAwB;AAMhE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAA6B,EAC7B,QAAgC,EAChC,KAAgC,EAChC,GAA6B,EAC7B,KAAiE;IAEjE,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,QAAQ,CAAC,MAAM,GAAG,YAAY;QAC5B,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvE,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type {\n JsonRpcEngineEndCallback,\n JsonRpcEngineNextCallback,\n} from '@metamask/json-rpc-engine';\nimport { hexToBigInt, parseCaipChainId } from '@metamask/utils';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { InternalMethodsMiddlewareHooks } from './middleware';\nimport type { ScopedJsonRpcRequest } from '../multichain';\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.\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: ScopedJsonRpcRequest,\n response: PendingJsonRpcResponse,\n _next: JsonRpcEngineNextCallback,\n end: JsonRpcEngineEndCallback,\n hooks: Pick<InternalMethodsMiddlewareHooks, 'getSimulationState'>,\n) {\n const requestScope = request.scope && parseCaipChainId(request.scope);\n response.result = requestScope\n ? BigInt(requestScope.reference).toString(10)\n : hexToBigInt(hooks.getSimulationState().chain.chainId).toString(10);\n\n return end();\n}\n"]}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSessionHandler = void 0;
4
+ const chain_agnostic_permission_1 = require("@metamask/chain-agnostic-permission");
5
+ const rpc_errors_1 = require("@metamask/rpc-errors");
6
+ const superstruct_1 = require("@metamask/superstruct");
7
+ const utils_1 = require("@metamask/utils");
8
+ const utils_2 = require("./utils.cjs");
9
+ const ScopesStruct = (0, superstruct_1.record)(utils_1.CaipChainIdStruct, (0, superstruct_1.object)({
10
+ methods: (0, superstruct_1.array)((0, superstruct_1.string)()),
11
+ accounts: (0, superstruct_1.array)(utils_1.CaipAccountIdStruct),
12
+ notifications: (0, superstruct_1.array)((0, superstruct_1.string)()),
13
+ }));
14
+ const CreateSessionParamsStruct = (0, superstruct_1.object)({
15
+ requiredScopes: (0, superstruct_1.optional)(ScopesStruct),
16
+ optionalScopes: (0, superstruct_1.optional)(ScopesStruct),
17
+ sessionProperties: (0, superstruct_1.optional)((0, superstruct_1.record)((0, superstruct_1.string)(), utils_1.JsonStruct)),
18
+ });
19
+ /**
20
+ * A handler that implements a simplified version of `wallet_createSession`.
21
+ *
22
+ * @param request - Incoming JSON-RPC request.
23
+ * @param hooks - The method hooks.
24
+ * @returns The JSON-RPC response.
25
+ */
26
+ async function createSessionHandler(request, hooks) {
27
+ if (!(0, superstruct_1.is)(request.params, CreateSessionParamsStruct)) {
28
+ throw rpc_errors_1.rpcErrors.invalidParams({ data: { request } });
29
+ }
30
+ const caveat = {
31
+ requiredScopes: request.params.requiredScopes ?? {},
32
+ optionalScopes: request.params.optionalScopes ?? {},
33
+ sessionProperties: request.params.sessionProperties ?? {},
34
+ isMultichainOrigin: true,
35
+ };
36
+ const accounts = hooks
37
+ .getAccounts()
38
+ .flatMap((account) => account.scopes.map((scope) => `${scope}:${account.address}`));
39
+ const caveatWithAccounts = (0, chain_agnostic_permission_1.setNonSCACaipAccountIdsInCaip25CaveatValue)(caveat, accounts);
40
+ const permissions = {
41
+ [chain_agnostic_permission_1.Caip25EndowmentPermissionName]: {
42
+ caveats: [
43
+ {
44
+ type: chain_agnostic_permission_1.Caip25CaveatType,
45
+ value: caveatWithAccounts,
46
+ },
47
+ ],
48
+ },
49
+ };
50
+ hooks.grantPermissions(permissions);
51
+ const sessionScopes = (0, utils_2.getSessionScopes)(caveatWithAccounts);
52
+ return { sessionScopes, sessionProperties: caveat.sessionProperties };
53
+ }
54
+ exports.createSessionHandler = createSessionHandler;
55
+ //# sourceMappingURL=create-session.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-session.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/create-session.ts"],"names":[],"mappings":";;;AAAA,mFAI6C;AAE7C,qDAAiD;AACjD,uDAO+B;AAC/B,2CAMyB;AAEzB,uCAA2C;AAQ3C,MAAM,YAAY,GAAG,IAAA,oBAAM,EACzB,yBAAiB,EACjB,IAAA,oBAAM,EAAC;IACL,OAAO,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,mBAAK,EAAC,2BAAmB,CAAC;IACpC,aAAa,EAAE,IAAA,mBAAK,EAAC,IAAA,oBAAM,GAAE,CAAC;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,yBAAyB,GAAG,IAAA,oBAAM,EAAC;IACvC,cAAc,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;IACtC,cAAc,EAAE,IAAA,sBAAQ,EAAC,YAAY,CAAC;IACtC,iBAAiB,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,EAAC,IAAA,oBAAM,GAAE,EAAE,kBAAU,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,KAAgC;IAEhC,IAAI,CAAC,IAAA,gBAAE,EAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,CAAC;QACnD,MAAM,sBAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG;QACb,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACzD,kBAAkB,EAAE,IAAI;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK;SACnB,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAC7D,CAAC;IAEJ,MAAM,kBAAkB,GAAG,IAAA,sEAA0C,EACnE,MAAM,EACN,QAA2B,CAC5B,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,CAAC,yDAA6B,CAAC,EAAE;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,4CAAgB;oBACtB,KAAK,EAAE,kBAAkB;iBAC1B;aACF;SACF;KACsB,CAAC;IAE1B,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,IAAA,wBAAgB,EAAC,kBAAkB,CAAC,CAAC;IAE3D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;AACxE,CAAC;AA1CD,oDA0CC","sourcesContent":["import {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n setNonSCACaipAccountIdsInCaip25CaveatValue,\n} from '@metamask/chain-agnostic-permission';\nimport type { RequestedPermissions } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n array,\n is,\n object,\n string,\n optional,\n record,\n} from '@metamask/superstruct';\nimport {\n type CaipAccountId,\n CaipAccountIdStruct,\n CaipChainIdStruct,\n JsonStruct,\n type JsonRpcRequest,\n} from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\nimport type { SimulationAccount } from '../../options';\n\nexport type CreateSessionHandlerHooks = {\n grantPermissions: (permissions: RequestedPermissions) => void;\n getAccounts: () => SimulationAccount[];\n};\n\nconst ScopesStruct = record(\n CaipChainIdStruct,\n object({\n methods: array(string()),\n accounts: array(CaipAccountIdStruct),\n notifications: array(string()),\n }),\n);\n\nconst CreateSessionParamsStruct = object({\n requiredScopes: optional(ScopesStruct),\n optionalScopes: optional(ScopesStruct),\n sessionProperties: optional(record(string(), JsonStruct)),\n});\n\n/**\n * A handler that implements a simplified version of `wallet_createSession`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function createSessionHandler(\n request: JsonRpcRequest,\n hooks: CreateSessionHandlerHooks,\n) {\n if (!is(request.params, CreateSessionParamsStruct)) {\n throw rpcErrors.invalidParams({ data: { request } });\n }\n\n const caveat = {\n requiredScopes: request.params.requiredScopes ?? {},\n optionalScopes: request.params.optionalScopes ?? {},\n sessionProperties: request.params.sessionProperties ?? {},\n isMultichainOrigin: true,\n };\n\n const accounts = hooks\n .getAccounts()\n .flatMap((account) =>\n account.scopes.map((scope) => `${scope}:${account.address}`),\n );\n\n const caveatWithAccounts = setNonSCACaipAccountIdsInCaip25CaveatValue(\n caveat,\n accounts as CaipAccountId[],\n );\n\n const permissions = {\n [Caip25EndowmentPermissionName]: {\n caveats: [\n {\n type: Caip25CaveatType,\n value: caveatWithAccounts,\n },\n ],\n },\n } as RequestedPermissions;\n\n hooks.grantPermissions(permissions);\n\n const sessionScopes = getSessionScopes(caveatWithAccounts);\n\n return { sessionScopes, sessionProperties: caveat.sessionProperties };\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { RequestedPermissions } from "@metamask/permission-controller";
2
+ import { type JsonRpcRequest } from "@metamask/utils";
3
+ import type { SimulationAccount } from "../../options.cjs";
4
+ export type CreateSessionHandlerHooks = {
5
+ grantPermissions: (permissions: RequestedPermissions) => void;
6
+ getAccounts: () => SimulationAccount[];
7
+ };
8
+ /**
9
+ * A handler that implements a simplified version of `wallet_createSession`.
10
+ *
11
+ * @param request - Incoming JSON-RPC request.
12
+ * @param hooks - The method hooks.
13
+ * @returns The JSON-RPC response.
14
+ */
15
+ export declare function createSessionHandler(request: JsonRpcRequest, hooks: CreateSessionHandlerHooks): Promise<{
16
+ sessionScopes: import("@metamask/chain-agnostic-permission").NormalizedScopesObject;
17
+ sessionProperties: Record<string, import("@metamask/utils").Json>;
18
+ }>;
19
+ //# sourceMappingURL=create-session.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-session.d.cts","sourceRoot":"","sources":["../../../src/middleware/multichain/create-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAU5E,OAAO,EAKL,KAAK,cAAc,EACpB,wBAAwB;AAGzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAAsB;AAEvD,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,WAAW,EAAE,MAAM,iBAAiB,EAAE,CAAC;CACxC,CAAC;AAiBF;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,yBAAyB;;;GAwCjC"}
@@ -0,0 +1,19 @@
1
+ import type { RequestedPermissions } from "@metamask/permission-controller";
2
+ import { type JsonRpcRequest } from "@metamask/utils";
3
+ import type { SimulationAccount } from "../../options.mjs";
4
+ export type CreateSessionHandlerHooks = {
5
+ grantPermissions: (permissions: RequestedPermissions) => void;
6
+ getAccounts: () => SimulationAccount[];
7
+ };
8
+ /**
9
+ * A handler that implements a simplified version of `wallet_createSession`.
10
+ *
11
+ * @param request - Incoming JSON-RPC request.
12
+ * @param hooks - The method hooks.
13
+ * @returns The JSON-RPC response.
14
+ */
15
+ export declare function createSessionHandler(request: JsonRpcRequest, hooks: CreateSessionHandlerHooks): Promise<{
16
+ sessionScopes: import("@metamask/chain-agnostic-permission").NormalizedScopesObject;
17
+ sessionProperties: Record<string, import("@metamask/utils").Json>;
18
+ }>;
19
+ //# sourceMappingURL=create-session.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-session.d.mts","sourceRoot":"","sources":["../../../src/middleware/multichain/create-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAU5E,OAAO,EAKL,KAAK,cAAc,EACpB,wBAAwB;AAGzB,OAAO,KAAK,EAAE,iBAAiB,EAAE,0BAAsB;AAEvD,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,EAAE,CAAC,WAAW,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC9D,WAAW,EAAE,MAAM,iBAAiB,EAAE,CAAC;CACxC,CAAC;AAiBF;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,yBAAyB;;;GAwCjC"}
@@ -0,0 +1,51 @@
1
+ import { Caip25CaveatType, Caip25EndowmentPermissionName, setNonSCACaipAccountIdsInCaip25CaveatValue } from "@metamask/chain-agnostic-permission";
2
+ import { rpcErrors } from "@metamask/rpc-errors";
3
+ import { array, is, object, string, optional, record } from "@metamask/superstruct";
4
+ import { CaipAccountIdStruct, CaipChainIdStruct, JsonStruct } from "@metamask/utils";
5
+ import { getSessionScopes } from "./utils.mjs";
6
+ const ScopesStruct = record(CaipChainIdStruct, object({
7
+ methods: array(string()),
8
+ accounts: array(CaipAccountIdStruct),
9
+ notifications: array(string()),
10
+ }));
11
+ const CreateSessionParamsStruct = object({
12
+ requiredScopes: optional(ScopesStruct),
13
+ optionalScopes: optional(ScopesStruct),
14
+ sessionProperties: optional(record(string(), JsonStruct)),
15
+ });
16
+ /**
17
+ * A handler that implements a simplified version of `wallet_createSession`.
18
+ *
19
+ * @param request - Incoming JSON-RPC request.
20
+ * @param hooks - The method hooks.
21
+ * @returns The JSON-RPC response.
22
+ */
23
+ export async function createSessionHandler(request, hooks) {
24
+ if (!is(request.params, CreateSessionParamsStruct)) {
25
+ throw rpcErrors.invalidParams({ data: { request } });
26
+ }
27
+ const caveat = {
28
+ requiredScopes: request.params.requiredScopes ?? {},
29
+ optionalScopes: request.params.optionalScopes ?? {},
30
+ sessionProperties: request.params.sessionProperties ?? {},
31
+ isMultichainOrigin: true,
32
+ };
33
+ const accounts = hooks
34
+ .getAccounts()
35
+ .flatMap((account) => account.scopes.map((scope) => `${scope}:${account.address}`));
36
+ const caveatWithAccounts = setNonSCACaipAccountIdsInCaip25CaveatValue(caveat, accounts);
37
+ const permissions = {
38
+ [Caip25EndowmentPermissionName]: {
39
+ caveats: [
40
+ {
41
+ type: Caip25CaveatType,
42
+ value: caveatWithAccounts,
43
+ },
44
+ ],
45
+ },
46
+ };
47
+ hooks.grantPermissions(permissions);
48
+ const sessionScopes = getSessionScopes(caveatWithAccounts);
49
+ return { sessionScopes, sessionProperties: caveat.sessionProperties };
50
+ }
51
+ //# sourceMappingURL=create-session.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-session.mjs","sourceRoot":"","sources":["../../../src/middleware/multichain/create-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC7B,0CAA0C,EAC3C,4CAA4C;AAE7C,OAAO,EAAE,SAAS,EAAE,6BAA6B;AACjD,OAAO,EACL,KAAK,EACL,EAAE,EACF,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACP,8BAA8B;AAC/B,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EAEX,wBAAwB;AAEzB,OAAO,EAAE,gBAAgB,EAAE,oBAAgB;AAQ3C,MAAM,YAAY,GAAG,MAAM,CACzB,iBAAiB,EACjB,MAAM,CAAC;IACL,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,mBAAmB,CAAC;IACpC,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;CAC/B,CAAC,CACH,CAAC;AAEF,MAAM,yBAAyB,GAAG,MAAM,CAAC;IACvC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC;IACtC,cAAc,EAAE,QAAQ,CAAC,YAAY,CAAC;IACtC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;CAC1D,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,KAAgC;IAEhC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAAE,CAAC;QACnD,MAAM,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,MAAM,GAAG;QACb,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE;QACnD,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACzD,kBAAkB,EAAE,IAAI;KACzB,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK;SACnB,WAAW,EAAE;SACb,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAC7D,CAAC;IAEJ,MAAM,kBAAkB,GAAG,0CAA0C,CACnE,MAAM,EACN,QAA2B,CAC5B,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,CAAC,6BAA6B,CAAC,EAAE;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,kBAAkB;iBAC1B;aACF;SACF;KACsB,CAAC;IAE1B,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAE3D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;AACxE,CAAC","sourcesContent":["import {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n setNonSCACaipAccountIdsInCaip25CaveatValue,\n} from '@metamask/chain-agnostic-permission';\nimport type { RequestedPermissions } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport {\n array,\n is,\n object,\n string,\n optional,\n record,\n} from '@metamask/superstruct';\nimport {\n type CaipAccountId,\n CaipAccountIdStruct,\n CaipChainIdStruct,\n JsonStruct,\n type JsonRpcRequest,\n} from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\nimport type { SimulationAccount } from '../../options';\n\nexport type CreateSessionHandlerHooks = {\n grantPermissions: (permissions: RequestedPermissions) => void;\n getAccounts: () => SimulationAccount[];\n};\n\nconst ScopesStruct = record(\n CaipChainIdStruct,\n object({\n methods: array(string()),\n accounts: array(CaipAccountIdStruct),\n notifications: array(string()),\n }),\n);\n\nconst CreateSessionParamsStruct = object({\n requiredScopes: optional(ScopesStruct),\n optionalScopes: optional(ScopesStruct),\n sessionProperties: optional(record(string(), JsonStruct)),\n});\n\n/**\n * A handler that implements a simplified version of `wallet_createSession`.\n *\n * @param request - Incoming JSON-RPC request.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport async function createSessionHandler(\n request: JsonRpcRequest,\n hooks: CreateSessionHandlerHooks,\n) {\n if (!is(request.params, CreateSessionParamsStruct)) {\n throw rpcErrors.invalidParams({ data: { request } });\n }\n\n const caveat = {\n requiredScopes: request.params.requiredScopes ?? {},\n optionalScopes: request.params.optionalScopes ?? {},\n sessionProperties: request.params.sessionProperties ?? {},\n isMultichainOrigin: true,\n };\n\n const accounts = hooks\n .getAccounts()\n .flatMap((account) =>\n account.scopes.map((scope) => `${scope}:${account.address}`),\n );\n\n const caveatWithAccounts = setNonSCACaipAccountIdsInCaip25CaveatValue(\n caveat,\n accounts as CaipAccountId[],\n );\n\n const permissions = {\n [Caip25EndowmentPermissionName]: {\n caveats: [\n {\n type: Caip25CaveatType,\n value: caveatWithAccounts,\n },\n ],\n },\n } as RequestedPermissions;\n\n hooks.grantPermissions(permissions);\n\n const sessionScopes = getSessionScopes(caveatWithAccounts);\n\n return { sessionScopes, sessionProperties: caveat.sessionProperties };\n}\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSessionHandler = void 0;
4
+ const chain_agnostic_permission_1 = require("@metamask/chain-agnostic-permission");
5
+ const utils_1 = require("./utils.cjs");
6
+ /**
7
+ * A handler that implements a simplified version of `wallet_getSession`.
8
+ *
9
+ * @param _request - Incoming JSON-RPC request. Ignored for this specific
10
+ * handler.
11
+ * @param hooks - The method hooks.
12
+ * @returns The JSON-RPC response.
13
+ */
14
+ function getSessionHandler(_request, hooks) {
15
+ const caveat = hooks.getCaveat(chain_agnostic_permission_1.Caip25EndowmentPermissionName, chain_agnostic_permission_1.Caip25CaveatType);
16
+ const sessionScopes = caveat ? (0, utils_1.getSessionScopes)(caveat.value) : {};
17
+ return { sessionScopes };
18
+ }
19
+ exports.getSessionHandler = getSessionHandler;
20
+ //# sourceMappingURL=get-session.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-session.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/get-session.ts"],"names":[],"mappings":";;;AACA,mFAG6C;AAI7C,uCAA2C;AAS3C;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC/B,QAAwB,EACxB,KAA6B;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,yDAA6B,EAC7B,4CAAgB,CACoB,CAAC;IAEvC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC;AAZD,8CAYC","sourcesContent":["import type { Caip25CaveatValue } from '@metamask/chain-agnostic-permission';\nimport {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n} from '@metamask/chain-agnostic-permission';\nimport type { Caveat } from '@metamask/permission-controller';\nimport type { Json, JsonRpcRequest } from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\n\nexport type GetSessionHandlerHooks = {\n getCaveat: (\n permission: string,\n caveatType: string,\n ) => Caveat<string, Json> | undefined;\n};\n\n/**\n * A handler that implements a simplified version of `wallet_getSession`.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport function getSessionHandler(\n _request: JsonRpcRequest,\n hooks: GetSessionHandlerHooks,\n) {\n const caveat = hooks.getCaveat(\n Caip25EndowmentPermissionName,\n Caip25CaveatType,\n ) as Caveat<string, Caip25CaveatValue>;\n\n const sessionScopes = caveat ? getSessionScopes(caveat.value) : {};\n\n return { sessionScopes };\n}\n"]}
@@ -0,0 +1,17 @@
1
+ import type { Caveat } from "@metamask/permission-controller";
2
+ import type { Json, JsonRpcRequest } from "@metamask/utils";
3
+ export type GetSessionHandlerHooks = {
4
+ getCaveat: (permission: string, caveatType: string) => Caveat<string, Json> | undefined;
5
+ };
6
+ /**
7
+ * A handler that implements a simplified version of `wallet_getSession`.
8
+ *
9
+ * @param _request - Incoming JSON-RPC request. Ignored for this specific
10
+ * handler.
11
+ * @param hooks - The method hooks.
12
+ * @returns The JSON-RPC response.
13
+ */
14
+ export declare function getSessionHandler(_request: JsonRpcRequest, hooks: GetSessionHandlerHooks): {
15
+ sessionScopes: import("@metamask/chain-agnostic-permission").NormalizedScopesObject;
16
+ };
17
+ //# sourceMappingURL=get-session.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-session.d.cts","sourceRoot":"","sources":["../../../src/middleware/multichain/get-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,wCAAwC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,wBAAwB;AAI5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,CACT,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,sBAAsB;;EAU9B"}
@@ -0,0 +1,17 @@
1
+ import type { Caveat } from "@metamask/permission-controller";
2
+ import type { Json, JsonRpcRequest } from "@metamask/utils";
3
+ export type GetSessionHandlerHooks = {
4
+ getCaveat: (permission: string, caveatType: string) => Caveat<string, Json> | undefined;
5
+ };
6
+ /**
7
+ * A handler that implements a simplified version of `wallet_getSession`.
8
+ *
9
+ * @param _request - Incoming JSON-RPC request. Ignored for this specific
10
+ * handler.
11
+ * @param hooks - The method hooks.
12
+ * @returns The JSON-RPC response.
13
+ */
14
+ export declare function getSessionHandler(_request: JsonRpcRequest, hooks: GetSessionHandlerHooks): {
15
+ sessionScopes: import("@metamask/chain-agnostic-permission").NormalizedScopesObject;
16
+ };
17
+ //# sourceMappingURL=get-session.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-session.d.mts","sourceRoot":"","sources":["../../../src/middleware/multichain/get-session.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,wCAAwC;AAC9D,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,wBAAwB;AAI5D,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,CACT,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,sBAAsB;;EAU9B"}
@@ -0,0 +1,16 @@
1
+ import { Caip25CaveatType, Caip25EndowmentPermissionName } from "@metamask/chain-agnostic-permission";
2
+ import { getSessionScopes } from "./utils.mjs";
3
+ /**
4
+ * A handler that implements a simplified version of `wallet_getSession`.
5
+ *
6
+ * @param _request - Incoming JSON-RPC request. Ignored for this specific
7
+ * handler.
8
+ * @param hooks - The method hooks.
9
+ * @returns The JSON-RPC response.
10
+ */
11
+ export function getSessionHandler(_request, hooks) {
12
+ const caveat = hooks.getCaveat(Caip25EndowmentPermissionName, Caip25CaveatType);
13
+ const sessionScopes = caveat ? getSessionScopes(caveat.value) : {};
14
+ return { sessionScopes };
15
+ }
16
+ //# sourceMappingURL=get-session.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-session.mjs","sourceRoot":"","sources":["../../../src/middleware/multichain/get-session.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,6BAA6B,EAC9B,4CAA4C;AAI7C,OAAO,EAAE,gBAAgB,EAAE,oBAAgB;AAS3C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAwB,EACxB,KAA6B;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,6BAA6B,EAC7B,gBAAgB,CACoB,CAAC;IAEvC,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnE,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC","sourcesContent":["import type { Caip25CaveatValue } from '@metamask/chain-agnostic-permission';\nimport {\n Caip25CaveatType,\n Caip25EndowmentPermissionName,\n} from '@metamask/chain-agnostic-permission';\nimport type { Caveat } from '@metamask/permission-controller';\nimport type { Json, JsonRpcRequest } from '@metamask/utils';\n\nimport { getSessionScopes } from './utils';\n\nexport type GetSessionHandlerHooks = {\n getCaveat: (\n permission: string,\n caveatType: string,\n ) => Caveat<string, Json> | undefined;\n};\n\n/**\n * A handler that implements a simplified version of `wallet_getSession`.\n *\n * @param _request - Incoming JSON-RPC request. Ignored for this specific\n * handler.\n * @param hooks - The method hooks.\n * @returns The JSON-RPC response.\n */\nexport function getSessionHandler(\n _request: JsonRpcRequest,\n hooks: GetSessionHandlerHooks,\n) {\n const caveat = hooks.getCaveat(\n Caip25EndowmentPermissionName,\n Caip25CaveatType,\n ) as Caveat<string, Caip25CaveatValue>;\n\n const sessionScopes = caveat ? getSessionScopes(caveat.value) : {};\n\n return { sessionScopes };\n}\n"]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./create-session.cjs"), exports);
18
+ __exportStar(require("./get-session.cjs"), exports);
19
+ __exportStar(require("./invoke-method.cjs"), exports);
20
+ __exportStar(require("./middleware.cjs"), exports);
21
+ __exportStar(require("./utils.cjs"), exports);
22
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../../src/middleware/multichain/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAiC;AACjC,oDAA8B;AAC9B,sDAAgC;AAChC,mDAA6B;AAC7B,8CAAwB","sourcesContent":["export * from './create-session';\nexport * from './get-session';\nexport * from './invoke-method';\nexport * from './middleware';\nexport * from './utils';\n"]}
@@ -0,0 +1,6 @@
1
+ export * from "./create-session.cjs";
2
+ export * from "./get-session.cjs";
3
+ export * from "./invoke-method.cjs";
4
+ export * from "./middleware.cjs";
5
+ export * from "./utils.cjs";
6
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/middleware/multichain/index.ts"],"names":[],"mappings":"AAAA,qCAAiC;AACjC,kCAA8B;AAC9B,oCAAgC;AAChC,iCAA6B;AAC7B,4BAAwB"}
@@ -0,0 +1,6 @@
1
+ export * from "./create-session.mjs";
2
+ export * from "./get-session.mjs";
3
+ export * from "./invoke-method.mjs";
4
+ export * from "./middleware.mjs";
5
+ export * from "./utils.mjs";
6
+ //# sourceMappingURL=index.d.mts.map