@metamask/snaps-rpc-methods 13.0.0 → 13.2.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 (70) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/dist/endowments/index.cjs +3 -0
  3. package/dist/endowments/index.cjs.map +1 -1
  4. package/dist/endowments/index.d.cts.map +1 -1
  5. package/dist/endowments/index.d.mts.map +1 -1
  6. package/dist/endowments/index.mjs +3 -0
  7. package/dist/endowments/index.mjs.map +1 -1
  8. package/dist/permitted/closeWebSocket.cjs +70 -0
  9. package/dist/permitted/closeWebSocket.cjs.map +1 -0
  10. package/dist/permitted/closeWebSocket.d.cts +19 -0
  11. package/dist/permitted/closeWebSocket.d.cts.map +1 -0
  12. package/dist/permitted/closeWebSocket.d.mts +19 -0
  13. package/dist/permitted/closeWebSocket.d.mts.map +1 -0
  14. package/dist/permitted/closeWebSocket.mjs +67 -0
  15. package/dist/permitted/closeWebSocket.mjs.map +1 -0
  16. package/dist/permitted/createInterface.d.cts +10 -10
  17. package/dist/permitted/createInterface.d.mts +10 -10
  18. package/dist/permitted/getWebSockets.cjs +42 -0
  19. package/dist/permitted/getWebSockets.cjs.map +1 -0
  20. package/dist/permitted/getWebSockets.d.cts +11 -0
  21. package/dist/permitted/getWebSockets.d.cts.map +1 -0
  22. package/dist/permitted/getWebSockets.d.mts +11 -0
  23. package/dist/permitted/getWebSockets.d.mts.map +1 -0
  24. package/dist/permitted/getWebSockets.mjs +39 -0
  25. package/dist/permitted/getWebSockets.mjs.map +1 -0
  26. package/dist/permitted/handlers.cjs +10 -0
  27. package/dist/permitted/handlers.cjs.map +1 -1
  28. package/dist/permitted/handlers.d.cts +7 -2
  29. package/dist/permitted/handlers.d.cts.map +1 -1
  30. package/dist/permitted/handlers.d.mts +7 -2
  31. package/dist/permitted/handlers.d.mts.map +1 -1
  32. package/dist/permitted/handlers.mjs +10 -0
  33. package/dist/permitted/handlers.mjs.map +1 -1
  34. package/dist/permitted/index.cjs.map +1 -1
  35. package/dist/permitted/index.d.cts +7 -1
  36. package/dist/permitted/index.d.cts.map +1 -1
  37. package/dist/permitted/index.d.mts +7 -1
  38. package/dist/permitted/index.d.mts.map +1 -1
  39. package/dist/permitted/index.mjs.map +1 -1
  40. package/dist/permitted/openWebSocket.cjs +72 -0
  41. package/dist/permitted/openWebSocket.cjs.map +1 -0
  42. package/dist/permitted/openWebSocket.d.cts +21 -0
  43. package/dist/permitted/openWebSocket.d.cts.map +1 -0
  44. package/dist/permitted/openWebSocket.d.mts +21 -0
  45. package/dist/permitted/openWebSocket.d.mts.map +1 -0
  46. package/dist/permitted/openWebSocket.mjs +69 -0
  47. package/dist/permitted/openWebSocket.mjs.map +1 -0
  48. package/dist/permitted/sendWebSocketMessage.cjs +72 -0
  49. package/dist/permitted/sendWebSocketMessage.cjs.map +1 -0
  50. package/dist/permitted/sendWebSocketMessage.d.cts +21 -0
  51. package/dist/permitted/sendWebSocketMessage.d.cts.map +1 -0
  52. package/dist/permitted/sendWebSocketMessage.d.mts +21 -0
  53. package/dist/permitted/sendWebSocketMessage.d.mts.map +1 -0
  54. package/dist/permitted/sendWebSocketMessage.mjs +69 -0
  55. package/dist/permitted/sendWebSocketMessage.mjs.map +1 -0
  56. package/dist/permitted/trackError.cjs +94 -0
  57. package/dist/permitted/trackError.cjs.map +1 -0
  58. package/dist/permitted/trackError.d.cts +32 -0
  59. package/dist/permitted/trackError.d.cts.map +1 -0
  60. package/dist/permitted/trackError.d.mts +32 -0
  61. package/dist/permitted/trackError.d.mts.map +1 -0
  62. package/dist/permitted/trackError.mjs +91 -0
  63. package/dist/permitted/trackError.mjs.map +1 -0
  64. package/dist/permitted/updateInterface.d.cts +10 -10
  65. package/dist/permitted/updateInterface.d.mts +10 -10
  66. package/dist/restricted/dialog.d.cts +20 -20
  67. package/dist/restricted/dialog.d.mts +20 -20
  68. package/dist/restricted/notify.d.cts +15 -15
  69. package/dist/restricted/notify.d.mts +15 -15
  70. package/package.json +4 -4
package/CHANGELOG.md CHANGED
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [13.2.0]
11
+
12
+ ### Added
13
+
14
+ - Add `snap_trackError` method for error tracking through Sentry ([#3498](https://github.com/MetaMask/snaps/pull/3498))
15
+ - Add support for `onAssetsMarketData` handler ([#3496](https://github.com/MetaMask/snaps/pull/3496))
16
+
17
+ ## [13.1.0]
18
+
19
+ ### Added
20
+
21
+ - Add RPC methods for WebSockets ([#3450](https://github.com/MetaMask/snaps/pull/3450), [#3459](https://github.com/MetaMask/snaps/pull/3459))
22
+ - Add `onStart` to lifecycle hooks endowment ([#3455](https://github.com/MetaMask/snaps/pull/3455))
23
+
10
24
  ## [13.0.0]
11
25
 
12
26
  ### Changed
@@ -455,7 +469,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
455
469
  - The version of the package no longer needs to match the version of all other
456
470
  MetaMask Snaps packages.
457
471
 
458
- [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.0.0...HEAD
472
+ [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.2.0...HEAD
473
+ [13.2.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.1.0...@metamask/snaps-rpc-methods@13.2.0
474
+ [13.1.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.0.0...@metamask/snaps-rpc-methods@13.1.0
459
475
  [13.0.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@12.4.0...@metamask/snaps-rpc-methods@13.0.0
460
476
  [12.4.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@12.3.0...@metamask/snaps-rpc-methods@12.4.0
461
477
  [12.3.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@12.2.0...@metamask/snaps-rpc-methods@12.3.0
@@ -78,6 +78,7 @@ exports.handlerEndowments = {
78
78
  [snaps_utils_1.HandlerType.OnNameLookup]: name_lookup_1.nameLookupEndowmentBuilder.targetName,
79
79
  [snaps_utils_1.HandlerType.OnInstall]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName,
80
80
  [snaps_utils_1.HandlerType.OnUpdate]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName,
81
+ [snaps_utils_1.HandlerType.OnStart]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName,
81
82
  [snaps_utils_1.HandlerType.OnKeyringRequest]: keyring_1.keyringEndowmentBuilder.targetName,
82
83
  [snaps_utils_1.HandlerType.OnHomePage]: home_page_1.homePageEndowmentBuilder.targetName,
83
84
  [snaps_utils_1.HandlerType.OnSettingsPage]: settings_page_1.settingsPageEndowmentBuilder.targetName,
@@ -86,8 +87,10 @@ exports.handlerEndowments = {
86
87
  [snaps_utils_1.HandlerType.OnAssetHistoricalPrice]: assets_1.assetsEndowmentBuilder.targetName,
87
88
  [snaps_utils_1.HandlerType.OnAssetsLookup]: assets_1.assetsEndowmentBuilder.targetName,
88
89
  [snaps_utils_1.HandlerType.OnAssetsConversion]: assets_1.assetsEndowmentBuilder.targetName,
90
+ [snaps_utils_1.HandlerType.OnAssetsMarketData]: assets_1.assetsEndowmentBuilder.targetName,
89
91
  [snaps_utils_1.HandlerType.OnProtocolRequest]: protocol_1.protocolEndowmentBuilder.targetName,
90
92
  [snaps_utils_1.HandlerType.OnClientRequest]: null,
93
+ [snaps_utils_1.HandlerType.OnWebSocketEvent]: network_access_1.networkAccessEndowmentBuilder.targetName,
91
94
  };
92
95
  __exportStar(require("./enum.cjs"), exports);
93
96
  var rpc_2 = require("./rpc.cjs");
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport { getKeyringCaveatOrigins } from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,uDAAoD;AAGpD,yCAAyE;AACzE,iDAImB;AACnB,2CAImB;AACnB,+DAAuE;AACvE,+CAAuD;AACvD,2CAImB;AACnB,2DAAmE;AACnE,mDAIuB;AACvB,yDAAiE;AACjE,6CAIoB;AACpB,mCAIe;AACf,uDAA+D;AAC/D,+DAI6B;AAC7B,mEAI+B;AAC/B,qDAA6D;AAEhD,QAAA,2BAA2B,GAAG;IACzC,CAAC,8CAA6B,CAAC,UAAU,CAAC,EAAE,8CAA6B;IACzE,CAAC,wDAAkC,CAAC,UAAU,CAAC,EAC7C,wDAAkC;IACpC,CAAC,iCAAuB,CAAC,UAAU,CAAC,EAAE,iCAAuB;IAC7D,CAAC,oDAAgC,CAAC,UAAU,CAAC,EAC3C,oDAAgC;IAClC,CAAC,yBAAmB,CAAC,UAAU,CAAC,EAAE,yBAAmB;IACrD,CAAC,0CAA2B,CAAC,UAAU,CAAC,EAAE,0CAA2B;IACrE,CAAC,wCAA0B,CAAC,UAAU,CAAC,EAAE,wCAA0B;IACnE,CAAC,gDAA8B,CAAC,UAAU,CAAC,EAAE,gDAA8B;IAC3E,CAAC,iCAAuB,CAAC,UAAU,CAAC,EAAE,iCAAuB;IAC7D,CAAC,4CAA4B,CAAC,UAAU,CAAC,EAAE,4CAA4B;IACvE,CAAC,mCAAwB,CAAC,UAAU,CAAC,EAAE,mCAAwB;IAC/D,CAAC,oCAAwB,CAAC,UAAU,CAAC,EAAE,oCAAwB;IAC/D,CAAC,oDAAgC,CAAC,UAAU,CAAC,EAC3C,oDAAgC;IAClC,CAAC,+BAAsB,CAAC,UAAU,CAAC,EAAE,+BAAsB;CACnD,CAAC;AAEE,QAAA,6BAA6B,GAAG;IAC3C,GAAG,qCAA2B;IAC9B,GAAG,4DAAsC;IACzC,GAAG,6BAAuB;IAC1B,GAAG,4CAA8B;IACjC,GAAG,qCAA2B;IAC9B,GAAG,wDAAoC;IACvC,GAAG,4CAAkC;IACrC,GAAG,uCAA4B;CAChC,CAAC;AAEW,QAAA,sBAAsB,GAG/B;IACF,CAAC,iCAAuB,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EAC9D,gCAAsB,CACvB;IACD,CAAC,wDAAkC,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EACzE,uDAAiC,CAClC;IACD,CAAC,yBAAmB,CAAC,UAAU,CAAC,EAC9B,IAAA,oCAA0B,EAAC,wBAAkB,CAAC;IAChD,CAAC,wCAA0B,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EACjE,uCAAyB,CAC1B;IACD,CAAC,iCAAuB,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EAC9D,gCAAsB,CACvB;IACD,CAAC,mCAAwB,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EAC/D,kCAAuB,CACxB;IACD,CAAC,oDAAgC,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EACvE,mDAA+B,CAChC;IACD,CAAC,gDAA8B,CAAC,UAAU,CAAC,EAAE,uCAA6B;IAC1E,CAAC,oCAAwB,CAAC,UAAU,CAAC,EAAE,uCAA6B;IACpE,CAAC,4CAA4B,CAAC,UAAU,CAAC,EAAE,uCAA6B;IACxE,CAAC,+BAAsB,CAAC,UAAU,CAAC,EAAE,IAAA,oCAA0B,EAC7D,8BAAqB,CACtB;CACF,CAAC;AAEF,uEAAuE;AAC1D,QAAA,iBAAiB,GAAuC;IACnE,CAAC,yBAAW,CAAC,YAAY,CAAC,EAAE,yBAAmB,CAAC,UAAU;IAC1D,CAAC,yBAAW,CAAC,aAAa,CAAC,EAAE,wDAAkC,CAAC,UAAU;IAC1E,CAAC,yBAAW,CAAC,SAAS,CAAC,EAAE,iCAAuB,CAAC,UAAU;IAC3D,CAAC,yBAAW,CAAC,YAAY,CAAC,EAAE,wCAA0B,CAAC,UAAU;IACjE,CAAC,yBAAW,CAAC,SAAS,CAAC,EAAE,gDAA8B,CAAC,UAAU;IAClE,CAAC,yBAAW,CAAC,QAAQ,CAAC,EAAE,gDAA8B,CAAC,UAAU;IACjE,CAAC,yBAAW,CAAC,OAAO,CAAC,EAAE,gDAA8B,CAAC,UAAU;IAChE,CAAC,yBAAW,CAAC,gBAAgB,CAAC,EAAE,iCAAuB,CAAC,UAAU;IAClE,CAAC,yBAAW,CAAC,UAAU,CAAC,EAAE,oCAAwB,CAAC,UAAU;IAC7D,CAAC,yBAAW,CAAC,cAAc,CAAC,EAAE,4CAA4B,CAAC,UAAU;IACrE,CAAC,yBAAW,CAAC,WAAW,CAAC,EAAE,oDAAgC,CAAC,UAAU;IACtE,CAAC,yBAAW,CAAC,WAAW,CAAC,EAAE,IAAI;IAC/B,CAAC,yBAAW,CAAC,sBAAsB,CAAC,EAAE,+BAAsB,CAAC,UAAU;IACvE,CAAC,yBAAW,CAAC,cAAc,CAAC,EAAE,+BAAsB,CAAC,UAAU;IAC/D,CAAC,yBAAW,CAAC,kBAAkB,CAAC,EAAE,+BAAsB,CAAC,UAAU;IACnE,CAAC,yBAAW,CAAC,kBAAkB,CAAC,EAAE,+BAAsB,CAAC,UAAU;IACnE,CAAC,yBAAW,CAAC,iBAAiB,CAAC,EAAE,mCAAwB,CAAC,UAAU;IACpE,CAAC,yBAAW,CAAC,eAAe,CAAC,EAAE,IAAI;IACnC,CAAC,yBAAW,CAAC,gBAAgB,CAAC,EAAE,8CAA6B,CAAC,UAAU;CACzE,CAAC;AAEF,6CAAuB;AACvB,iCAA4C;AAAnC,0GAAA,mBAAmB,OAAA;AAC5B,6DAA+D;AAAtD,6HAAA,wBAAwB,OAAA;AACjC,iEAAmE;AAA1D,iIAAA,0BAA0B,OAAA;AACnC,iDAA2E;AAAlE,gHAAA,iBAAiB,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AACnD,yCAAoD;AAA3C,kHAAA,uBAAuB,OAAA;AAChC,+CAAoD;AAA3C,kHAAA,uBAAuB,OAAA;AAChC,yCAAiD;AAAxC,+GAAA,oBAAoB,OAAA;AAC7B,2CAAqD;AAA5C,mHAAA,uBAAuB,OAAA","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport { getKeyringCaveatOrigins } from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAkD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAkD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAkD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,wCAAwC;AAC5E,OAAO,EAAE,WAAW,EAAE,8BAA8B;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,wBAAwB;AAkD5C,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9B,CAAC;AAEX,eAAO,MAAM,6BAA6B;;;;;;;;;;CASzC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,MAAM,EACN,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAC,oBAAoB,EAAE,SAAS,CAAC,CA4BvD,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoBhE,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB"}
@@ -61,6 +61,7 @@ export const handlerEndowments = {
61
61
  [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,
62
62
  [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,
63
63
  [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,
64
+ [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,
64
65
  [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,
65
66
  [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,
66
67
  [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,
@@ -69,8 +70,10 @@ export const handlerEndowments = {
69
70
  [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,
70
71
  [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,
71
72
  [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,
73
+ [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,
72
74
  [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,
73
75
  [HandlerType.OnClientRequest]: null,
76
+ [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,
74
77
  };
75
78
  export * from "./enum.mjs";
76
79
  export { getRpcCaveatOrigins } from "./rpc.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,8BAA8B;AAGpD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAiB;AACzE,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,kCAAkC,EACnC,4BAAkB;AACnB,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,EACvB,sBAAkB;AACnB,OAAO,EAAE,gCAAgC,EAAE,gCAA4B;AACvE,OAAO,EAAE,wBAAwB,EAAE,wBAAoB;AACvD,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACxB,sBAAkB;AACnB,OAAO,EAAE,8BAA8B,EAAE,8BAA0B;AACnE,OAAO,EACL,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC3B,0BAAsB;AACvB,OAAO,EAAE,6BAA6B,EAAE,6BAAyB;AACjE,OAAO,EACL,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACzB,uBAAmB;AACpB,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACpB,kBAAc;AACf,OAAO,EAAE,4BAA4B,EAAE,4BAAwB;AAC/D,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,gCAAgC,EACjC,gCAA4B;AAC7B,OAAO,EACL,iCAAiC,EACjC,sCAAsC,EACtC,kCAAkC,EACnC,kCAA8B;AAC/B,OAAO,EAAE,2BAA2B,EAAE,2BAAuB;AAE7D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,CAAC,6BAA6B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACzE,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAC7C,kCAAkC;IACpC,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7D,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAC3C,gCAAgC;IAClC,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,mBAAmB;IACrD,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,2BAA2B;IACrE,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAA0B;IACnE,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAAE,8BAA8B;IAC3E,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,uBAAuB;IAC7D,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,4BAA4B;IACvE,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,wBAAwB;IAC/D,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,wBAAwB;IAC/D,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAC3C,gCAAgC;IAClC,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,sBAAsB;CACnD,CAAC;AAEX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,GAAG,2BAA2B;IAC9B,GAAG,sCAAsC;IACzC,GAAG,uBAAuB;IAC1B,GAAG,8BAA8B;IACjC,GAAG,2BAA2B;IAC9B,GAAG,oCAAoC;IACvC,GAAG,kCAAkC;IACrC,GAAG,4BAA4B;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAG/B;IACF,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC9D,sBAAsB,CACvB;IACD,CAAC,kCAAkC,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACzE,iCAAiC,CAClC;IACD,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAC9B,0BAA0B,CAAC,kBAAkB,CAAC;IAChD,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACjE,yBAAyB,CAC1B;IACD,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC9D,sBAAsB,CACvB;IACD,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC/D,uBAAuB,CACxB;IACD,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAAE,0BAA0B,CACvE,+BAA+B,CAChC;IACD,CAAC,8BAA8B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IAC1E,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACpE,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,6BAA6B;IACxE,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,0BAA0B,CAC7D,qBAAqB,CACtB;CACF,CAAC;AAEF,uEAAuE;AACvE,MAAM,CAAC,MAAM,iBAAiB,GAAuC;IACnE,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,UAAU;IAC1D,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,kCAAkC,CAAC,UAAU;IAC1E,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAC3D,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,0BAA0B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,8BAA8B,CAAC,UAAU;IAClE,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,8BAA8B,CAAC,UAAU;IACjE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC,UAAU;IAClE,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,wBAAwB,CAAC,UAAU;IAC7D,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAC,UAAU;IACrE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,gCAAgC,CAAC,UAAU;IACtE,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,IAAI;IAC/B,CAAC,WAAW,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,UAAU;IACvE,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,UAAU;IAC/D,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,sBAAsB,CAAC,UAAU;IACnE,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC,UAAU;IACpE,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,IAAI;CACpC,CAAC;AAEF,2BAAuB;AACvB,OAAO,EAAE,mBAAmB,EAAE,kBAAc;AAC5C,OAAO,EAAE,wBAAwB,EAAE,gCAA4B;AAC/D,OAAO,EAAE,0BAA0B,EAAE,kCAA8B;AACnE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,0BAAsB;AAC3E,OAAO,EAAE,uBAAuB,EAAE,sBAAkB;AACpD,OAAO,EAAE,uBAAuB,EAAE,4BAAkB;AACpD,OAAO,EAAE,oBAAoB,EAAE,sBAAkB;AACjD,OAAO,EAAE,uBAAuB,EAAE,uBAAmB","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport { getKeyringCaveatOrigins } from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/endowments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PermissionConstraint } from '@metamask/permission-controller';\nimport { HandlerType } from '@metamask/snaps-utils';\nimport type { Json } from '@metamask/utils';\n\nimport { assetsEndowmentBuilder, getAssetsCaveatMapper } from './assets';\nimport {\n createMaxRequestTimeMapper,\n getMaxRequestTimeCaveatMapper,\n maxRequestTimeCaveatSpecifications,\n} from './caveats';\nimport {\n cronjobCaveatSpecifications,\n cronjobEndowmentBuilder,\n getCronjobCaveatMapper,\n} from './cronjob';\nimport { ethereumProviderEndowmentBuilder } from './ethereum-provider';\nimport { homePageEndowmentBuilder } from './home-page';\nimport {\n getKeyringCaveatMapper,\n keyringCaveatSpecifications,\n keyringEndowmentBuilder,\n} from './keyring';\nimport { lifecycleHooksEndowmentBuilder } from './lifecycle-hooks';\nimport {\n getNameLookupCaveatMapper,\n nameLookupCaveatSpecifications,\n nameLookupEndowmentBuilder,\n} from './name-lookup';\nimport { networkAccessEndowmentBuilder } from './network-access';\nimport {\n getProtocolCaveatMapper,\n protocolCaveatSpecifications,\n protocolEndowmentBuilder,\n} from './protocol';\nimport {\n getRpcCaveatMapper,\n rpcCaveatSpecifications,\n rpcEndowmentBuilder,\n} from './rpc';\nimport { settingsPageEndowmentBuilder } from './settings-page';\nimport {\n getSignatureInsightCaveatMapper,\n signatureInsightCaveatSpecifications,\n signatureInsightEndowmentBuilder,\n} from './signature-insight';\nimport {\n getTransactionInsightCaveatMapper,\n transactionInsightCaveatSpecifications,\n transactionInsightEndowmentBuilder,\n} from './transaction-insight';\nimport { webAssemblyEndowmentBuilder } from './web-assembly';\n\nexport const endowmentPermissionBuilders = {\n [networkAccessEndowmentBuilder.targetName]: networkAccessEndowmentBuilder,\n [transactionInsightEndowmentBuilder.targetName]:\n transactionInsightEndowmentBuilder,\n [cronjobEndowmentBuilder.targetName]: cronjobEndowmentBuilder,\n [ethereumProviderEndowmentBuilder.targetName]:\n ethereumProviderEndowmentBuilder,\n [rpcEndowmentBuilder.targetName]: rpcEndowmentBuilder,\n [webAssemblyEndowmentBuilder.targetName]: webAssemblyEndowmentBuilder,\n [nameLookupEndowmentBuilder.targetName]: nameLookupEndowmentBuilder,\n [lifecycleHooksEndowmentBuilder.targetName]: lifecycleHooksEndowmentBuilder,\n [keyringEndowmentBuilder.targetName]: keyringEndowmentBuilder,\n [settingsPageEndowmentBuilder.targetName]: settingsPageEndowmentBuilder,\n [protocolEndowmentBuilder.targetName]: protocolEndowmentBuilder,\n [homePageEndowmentBuilder.targetName]: homePageEndowmentBuilder,\n [signatureInsightEndowmentBuilder.targetName]:\n signatureInsightEndowmentBuilder,\n [assetsEndowmentBuilder.targetName]: assetsEndowmentBuilder,\n} as const;\n\nexport const endowmentCaveatSpecifications = {\n ...cronjobCaveatSpecifications,\n ...transactionInsightCaveatSpecifications,\n ...rpcCaveatSpecifications,\n ...nameLookupCaveatSpecifications,\n ...keyringCaveatSpecifications,\n ...signatureInsightCaveatSpecifications,\n ...maxRequestTimeCaveatSpecifications,\n ...protocolCaveatSpecifications,\n};\n\nexport const endowmentCaveatMappers: Record<\n string,\n (value: Json) => Pick<PermissionConstraint, 'caveats'>\n> = {\n [cronjobEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getCronjobCaveatMapper,\n ),\n [transactionInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getTransactionInsightCaveatMapper,\n ),\n [rpcEndowmentBuilder.targetName]:\n createMaxRequestTimeMapper(getRpcCaveatMapper),\n [nameLookupEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getNameLookupCaveatMapper,\n ),\n [keyringEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getKeyringCaveatMapper,\n ),\n [protocolEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getProtocolCaveatMapper,\n ),\n [signatureInsightEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getSignatureInsightCaveatMapper,\n ),\n [lifecycleHooksEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [homePageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [settingsPageEndowmentBuilder.targetName]: getMaxRequestTimeCaveatMapper,\n [assetsEndowmentBuilder.targetName]: createMaxRequestTimeMapper(\n getAssetsCaveatMapper,\n ),\n};\n\n// We allow null because a permitted handler does not have an endowment\nexport const handlerEndowments: Record<HandlerType, string | null> = {\n [HandlerType.OnRpcRequest]: rpcEndowmentBuilder.targetName,\n [HandlerType.OnTransaction]: transactionInsightEndowmentBuilder.targetName,\n [HandlerType.OnCronjob]: cronjobEndowmentBuilder.targetName,\n [HandlerType.OnNameLookup]: nameLookupEndowmentBuilder.targetName,\n [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,\n [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,\n [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,\n [HandlerType.OnSignature]: signatureInsightEndowmentBuilder.targetName,\n [HandlerType.OnUserInput]: null,\n [HandlerType.OnAssetHistoricalPrice]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsLookup]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsConversion]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnAssetsMarketData]: assetsEndowmentBuilder.targetName,\n [HandlerType.OnProtocolRequest]: protocolEndowmentBuilder.targetName,\n [HandlerType.OnClientRequest]: null,\n [HandlerType.OnWebSocketEvent]: networkAccessEndowmentBuilder.targetName,\n};\n\nexport * from './enum';\nexport { getRpcCaveatOrigins } from './rpc';\nexport { getSignatureOriginCaveat } from './signature-insight';\nexport { getTransactionOriginCaveat } from './transaction-insight';\nexport { getChainIdsCaveat, getLookupMatchersCaveat } from './name-lookup';\nexport { getKeyringCaveatOrigins } from './keyring';\nexport { getMaxRequestTimeCaveat } from './caveats';\nexport { getCronjobCaveatJobs } from './cronjob';\nexport { getProtocolCaveatScopes } from './protocol';\n"]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.closeWebSocketHandler = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const superstruct_1 = require("@metamask/superstruct");
6
+ const endowments_1 = require("../endowments/index.cjs");
7
+ const hookNames = {
8
+ hasPermission: true,
9
+ closeWebSocket: true,
10
+ };
11
+ const CloseWebSocketParametersStruct = (0, superstruct_1.object)({
12
+ id: (0, superstruct_1.string)(),
13
+ });
14
+ /**
15
+ * Handler for the `snap_closeWebSocket` method.
16
+ */
17
+ exports.closeWebSocketHandler = {
18
+ methodNames: ['snap_closeWebSocket'],
19
+ implementation: closeWebSocketImplementation,
20
+ hookNames,
21
+ };
22
+ /**
23
+ * The `snap_closeWebSocket` method implementation.
24
+ *
25
+ * @param req - The JSON-RPC request object.
26
+ * @param res - The JSON-RPC response object.
27
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this function.
28
+ * @param end - The `json-rpc-engine` "end" callback.
29
+ * @param hooks - The RPC method hooks.
30
+ * @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.
31
+ * @param hooks.closeWebSocket - The function to close a WebSocket.
32
+ * @returns Nothing.
33
+ */
34
+ function closeWebSocketImplementation(req, res, _next, end, { hasPermission, closeWebSocket }) {
35
+ if (!hasPermission(endowments_1.SnapEndowments.NetworkAccess)) {
36
+ return end(rpc_errors_1.providerErrors.unauthorized());
37
+ }
38
+ const { params } = req;
39
+ try {
40
+ const { id } = getValidatedParams(params);
41
+ closeWebSocket(id);
42
+ res.result = null;
43
+ }
44
+ catch (error) {
45
+ return end(error);
46
+ }
47
+ return end();
48
+ }
49
+ /**
50
+ * Validates the parameters for the snap_closeWebSocket method.
51
+ *
52
+ * @param params - Parameters to validate.
53
+ * @returns Validated parameters.
54
+ * @throws Throws RPC error if validation fails.
55
+ */
56
+ function getValidatedParams(params) {
57
+ try {
58
+ return (0, superstruct_1.create)(params, CloseWebSocketParametersStruct);
59
+ }
60
+ catch (error) {
61
+ if (error instanceof superstruct_1.StructError) {
62
+ throw rpc_errors_1.rpcErrors.invalidParams({
63
+ message: `Invalid params: ${error.message}.`,
64
+ });
65
+ }
66
+ /* istanbul ignore next */
67
+ throw rpc_errors_1.rpcErrors.internal();
68
+ }
69
+ }
70
+ //# sourceMappingURL=closeWebSocket.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeWebSocket.cjs","sourceRoot":"","sources":["../../src/permitted/closeWebSocket.ts"],"names":[],"mappings":";;;AAEA,qDAAiE;AAOjE,uDAA4E;AAG5E,wDAA+C;AAG/C,MAAM,SAAS,GAAiD;IAC9D,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;CACrB,CAAC;AAOF,MAAM,8BAA8B,GAAG,IAAA,oBAAM,EAAC;IAC5C,EAAE,EAAE,IAAA,oBAAM,GAAE;CACb,CAAC,CAAC;AAOH;;GAEG;AACU,QAAA,qBAAqB,GAI9B;IACF,WAAW,EAAE,CAAC,qBAAqB,CAAC;IACpC,cAAc,EAAE,4BAA4B;IAC5C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAS,4BAA4B,CACnC,GAA6C,EAC7C,GAAiD,EACjD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,cAAc,EAA6B;IAE5D,IAAI,CAAC,aAAa,CAAC,2BAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,oBAAM,EAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,yBAAW,EAAE,CAAC;YACjC,MAAM,sBAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n CloseWebSocketParams,\n CloseWebSocketResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport { create, object, string, StructError } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<CloseWebSocketMethodHooks> = {\n hasPermission: true,\n closeWebSocket: true,\n};\n\nexport type CloseWebSocketMethodHooks = {\n hasPermission: (permissionName: string) => boolean;\n closeWebSocket: (id: string) => void;\n};\n\nconst CloseWebSocketParametersStruct = object({\n id: string(),\n});\n\nexport type CloseWebSocketParameters = InferMatching<\n typeof CloseWebSocketParametersStruct,\n CloseWebSocketParams\n>;\n\n/**\n * Handler for the `snap_closeWebSocket` method.\n */\nexport const closeWebSocketHandler: PermittedHandlerExport<\n CloseWebSocketMethodHooks,\n CloseWebSocketParams,\n CloseWebSocketResult\n> = {\n methodNames: ['snap_closeWebSocket'],\n implementation: closeWebSocketImplementation,\n hookNames,\n};\n\n/**\n * The `snap_closeWebSocket` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.\n * @param hooks.closeWebSocket - The function to close a WebSocket.\n * @returns Nothing.\n */\nfunction closeWebSocketImplementation(\n req: JsonRpcRequest<CloseWebSocketParameters>,\n res: PendingJsonRpcResponse<CloseWebSocketResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, closeWebSocket }: CloseWebSocketMethodHooks,\n): void {\n if (!hasPermission(SnapEndowments.NetworkAccess)) {\n return end(providerErrors.unauthorized());\n }\n\n const { params } = req;\n\n try {\n const { id } = getValidatedParams(params);\n closeWebSocket(id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validates the parameters for the snap_closeWebSocket method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): CloseWebSocketParameters {\n try {\n return create(params, CloseWebSocketParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { CloseWebSocketParams, CloseWebSocketResult } from "@metamask/snaps-sdk";
3
+ import type { InferMatching } from "@metamask/snaps-utils";
4
+ export type CloseWebSocketMethodHooks = {
5
+ hasPermission: (permissionName: string) => boolean;
6
+ closeWebSocket: (id: string) => void;
7
+ };
8
+ declare const CloseWebSocketParametersStruct: import("@metamask/superstruct").Struct<{
9
+ id: string;
10
+ }, {
11
+ id: import("@metamask/superstruct").Struct<string, null>;
12
+ }>;
13
+ export type CloseWebSocketParameters = InferMatching<typeof CloseWebSocketParametersStruct, CloseWebSocketParams>;
14
+ /**
15
+ * Handler for the `snap_closeWebSocket` method.
16
+ */
17
+ export declare const closeWebSocketHandler: PermittedHandlerExport<CloseWebSocketMethodHooks, CloseWebSocketParams, CloseWebSocketResult>;
18
+ export {};
19
+ //# sourceMappingURL=closeWebSocket.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeWebSocket.d.cts","sourceRoot":"","sources":["../../src/permitted/closeWebSocket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,oBAAoB,EACpB,oBAAoB,EACrB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAY3D,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,QAAA,MAAM,8BAA8B;;;;EAElC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAClD,OAAO,8BAA8B,EACrC,oBAAoB,CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,sBAAsB,CACxD,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,CAKrB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { CloseWebSocketParams, CloseWebSocketResult } from "@metamask/snaps-sdk";
3
+ import type { InferMatching } from "@metamask/snaps-utils";
4
+ export type CloseWebSocketMethodHooks = {
5
+ hasPermission: (permissionName: string) => boolean;
6
+ closeWebSocket: (id: string) => void;
7
+ };
8
+ declare const CloseWebSocketParametersStruct: import("@metamask/superstruct").Struct<{
9
+ id: string;
10
+ }, {
11
+ id: import("@metamask/superstruct").Struct<string, null>;
12
+ }>;
13
+ export type CloseWebSocketParameters = InferMatching<typeof CloseWebSocketParametersStruct, CloseWebSocketParams>;
14
+ /**
15
+ * Handler for the `snap_closeWebSocket` method.
16
+ */
17
+ export declare const closeWebSocketHandler: PermittedHandlerExport<CloseWebSocketMethodHooks, CloseWebSocketParams, CloseWebSocketResult>;
18
+ export {};
19
+ //# sourceMappingURL=closeWebSocket.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeWebSocket.d.mts","sourceRoot":"","sources":["../../src/permitted/closeWebSocket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,oBAAoB,EACpB,oBAAoB,EACrB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,8BAA8B;AAY3D,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,QAAA,MAAM,8BAA8B;;;;EAElC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAClD,OAAO,8BAA8B,EACrC,oBAAoB,CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,sBAAsB,CACxD,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,CAKrB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { providerErrors, rpcErrors } from "@metamask/rpc-errors";
2
+ import { create, object, string, StructError } from "@metamask/superstruct";
3
+ import { SnapEndowments } from "../endowments/index.mjs";
4
+ const hookNames = {
5
+ hasPermission: true,
6
+ closeWebSocket: true,
7
+ };
8
+ const CloseWebSocketParametersStruct = object({
9
+ id: string(),
10
+ });
11
+ /**
12
+ * Handler for the `snap_closeWebSocket` method.
13
+ */
14
+ export const closeWebSocketHandler = {
15
+ methodNames: ['snap_closeWebSocket'],
16
+ implementation: closeWebSocketImplementation,
17
+ hookNames,
18
+ };
19
+ /**
20
+ * The `snap_closeWebSocket` method implementation.
21
+ *
22
+ * @param req - The JSON-RPC request object.
23
+ * @param res - The JSON-RPC response object.
24
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this function.
25
+ * @param end - The `json-rpc-engine` "end" callback.
26
+ * @param hooks - The RPC method hooks.
27
+ * @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.
28
+ * @param hooks.closeWebSocket - The function to close a WebSocket.
29
+ * @returns Nothing.
30
+ */
31
+ function closeWebSocketImplementation(req, res, _next, end, { hasPermission, closeWebSocket }) {
32
+ if (!hasPermission(SnapEndowments.NetworkAccess)) {
33
+ return end(providerErrors.unauthorized());
34
+ }
35
+ const { params } = req;
36
+ try {
37
+ const { id } = getValidatedParams(params);
38
+ closeWebSocket(id);
39
+ res.result = null;
40
+ }
41
+ catch (error) {
42
+ return end(error);
43
+ }
44
+ return end();
45
+ }
46
+ /**
47
+ * Validates the parameters for the snap_closeWebSocket method.
48
+ *
49
+ * @param params - Parameters to validate.
50
+ * @returns Validated parameters.
51
+ * @throws Throws RPC error if validation fails.
52
+ */
53
+ function getValidatedParams(params) {
54
+ try {
55
+ return create(params, CloseWebSocketParametersStruct);
56
+ }
57
+ catch (error) {
58
+ if (error instanceof StructError) {
59
+ throw rpcErrors.invalidParams({
60
+ message: `Invalid params: ${error.message}.`,
61
+ });
62
+ }
63
+ /* istanbul ignore next */
64
+ throw rpcErrors.internal();
65
+ }
66
+ }
67
+ //# sourceMappingURL=closeWebSocket.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"closeWebSocket.mjs","sourceRoot":"","sources":["../../src/permitted/closeWebSocket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B;AAOjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B;AAG5E,OAAO,EAAE,cAAc,EAAE,gCAAsB;AAG/C,MAAM,SAAS,GAAiD;IAC9D,aAAa,EAAE,IAAI;IACnB,cAAc,EAAE,IAAI;CACrB,CAAC;AAOF,MAAM,8BAA8B,GAAG,MAAM,CAAC;IAC5C,EAAE,EAAE,MAAM,EAAE;CACb,CAAC,CAAC;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAI9B;IACF,WAAW,EAAE,CAAC,qBAAqB,CAAC;IACpC,cAAc,EAAE,4BAA4B;IAC5C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAS,4BAA4B,CACnC,GAA6C,EAC7C,GAAiD,EACjD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,cAAc,EAA6B;IAE5D,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,aAAa,CAAC;gBAC5B,OAAO,EAAE,mBAAmB,KAAK,CAAC,OAAO,GAAG;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors, rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n CloseWebSocketParams,\n CloseWebSocketResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching } from '@metamask/snaps-utils';\nimport { create, object, string, StructError } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<CloseWebSocketMethodHooks> = {\n hasPermission: true,\n closeWebSocket: true,\n};\n\nexport type CloseWebSocketMethodHooks = {\n hasPermission: (permissionName: string) => boolean;\n closeWebSocket: (id: string) => void;\n};\n\nconst CloseWebSocketParametersStruct = object({\n id: string(),\n});\n\nexport type CloseWebSocketParameters = InferMatching<\n typeof CloseWebSocketParametersStruct,\n CloseWebSocketParams\n>;\n\n/**\n * Handler for the `snap_closeWebSocket` method.\n */\nexport const closeWebSocketHandler: PermittedHandlerExport<\n CloseWebSocketMethodHooks,\n CloseWebSocketParams,\n CloseWebSocketResult\n> = {\n methodNames: ['snap_closeWebSocket'],\n implementation: closeWebSocketImplementation,\n hookNames,\n};\n\n/**\n * The `snap_closeWebSocket` method implementation.\n *\n * @param req - The JSON-RPC request object.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.\n * @param hooks.closeWebSocket - The function to close a WebSocket.\n * @returns Nothing.\n */\nfunction closeWebSocketImplementation(\n req: JsonRpcRequest<CloseWebSocketParameters>,\n res: PendingJsonRpcResponse<CloseWebSocketResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, closeWebSocket }: CloseWebSocketMethodHooks,\n): void {\n if (!hasPermission(SnapEndowments.NetworkAccess)) {\n return end(providerErrors.unauthorized());\n }\n\n const { params } = req;\n\n try {\n const { id } = getValidatedParams(params);\n closeWebSocket(id);\n res.result = null;\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validates the parameters for the snap_closeWebSocket method.\n *\n * @param params - Parameters to validate.\n * @returns Validated parameters.\n * @throws Throws RPC error if validation fails.\n */\nfunction getValidatedParams(params: unknown): CloseWebSocketParameters {\n try {\n return create(params, CloseWebSocketParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n"]}
@@ -47,8 +47,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
47
47
  label: string;
48
48
  variant?: "default" | "critical" | "warning" | undefined;
49
49
  } | {
50
- name: string;
51
50
  type: import("@metamask/snaps-sdk").NodeType.Input;
51
+ name: string;
52
52
  value?: string | undefined;
53
53
  label?: string | undefined;
54
54
  inputType?: "number" | "text" | "password" | undefined;
@@ -57,15 +57,15 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
57
57
  } | {
58
58
  value: string;
59
59
  type: import("@metamask/snaps-sdk").NodeType.Button;
60
- name?: string | undefined;
61
60
  variant?: "primary" | "secondary" | undefined;
61
+ name?: string | undefined;
62
62
  buttonType?: "button" | "submit" | undefined;
63
63
  } | {
64
- name: string;
65
64
  type: import("@metamask/snaps-sdk").NodeType.Form;
65
+ name: string;
66
66
  children: ({
67
- name: string;
68
67
  type: import("@metamask/snaps-sdk").NodeType.Input;
68
+ name: string;
69
69
  value?: string | undefined;
70
70
  label?: string | undefined;
71
71
  inputType?: "number" | "text" | "password" | undefined;
@@ -74,8 +74,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
74
74
  } | {
75
75
  value: string;
76
76
  type: import("@metamask/snaps-sdk").NodeType.Button;
77
- name?: string | undefined;
78
77
  variant?: "primary" | "secondary" | undefined;
78
+ name?: string | undefined;
79
79
  buttonType?: "button" | "submit" | undefined;
80
80
  })[];
81
81
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -134,8 +134,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
134
134
  label: string;
135
135
  variant?: "default" | "critical" | "warning" | undefined;
136
136
  } | {
137
- name: string;
138
137
  type: import("@metamask/snaps-sdk").NodeType.Input;
138
+ name: string;
139
139
  value?: string | undefined;
140
140
  label?: string | undefined;
141
141
  inputType?: "number" | "text" | "password" | undefined;
@@ -144,15 +144,15 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
144
144
  } | {
145
145
  value: string;
146
146
  type: import("@metamask/snaps-sdk").NodeType.Button;
147
- name?: string | undefined;
148
147
  variant?: "primary" | "secondary" | undefined;
148
+ name?: string | undefined;
149
149
  buttonType?: "button" | "submit" | undefined;
150
150
  } | {
151
- name: string;
152
151
  type: import("@metamask/snaps-sdk").NodeType.Form;
152
+ name: string;
153
153
  children: ({
154
- name: string;
155
154
  type: import("@metamask/snaps-sdk").NodeType.Input;
155
+ name: string;
156
156
  value?: string | undefined;
157
157
  label?: string | undefined;
158
158
  inputType?: "number" | "text" | "password" | undefined;
@@ -161,8 +161,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
161
161
  } | {
162
162
  value: string;
163
163
  type: import("@metamask/snaps-sdk").NodeType.Button;
164
- name?: string | undefined;
165
164
  variant?: "primary" | "secondary" | undefined;
165
+ name?: string | undefined;
166
166
  buttonType?: "button" | "submit" | undefined;
167
167
  })[];
168
168
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -47,8 +47,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
47
47
  label: string;
48
48
  variant?: "default" | "critical" | "warning" | undefined;
49
49
  } | {
50
- name: string;
51
50
  type: import("@metamask/snaps-sdk").NodeType.Input;
51
+ name: string;
52
52
  value?: string | undefined;
53
53
  label?: string | undefined;
54
54
  inputType?: "number" | "text" | "password" | undefined;
@@ -57,15 +57,15 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
57
57
  } | {
58
58
  value: string;
59
59
  type: import("@metamask/snaps-sdk").NodeType.Button;
60
- name?: string | undefined;
61
60
  variant?: "primary" | "secondary" | undefined;
61
+ name?: string | undefined;
62
62
  buttonType?: "button" | "submit" | undefined;
63
63
  } | {
64
- name: string;
65
64
  type: import("@metamask/snaps-sdk").NodeType.Form;
65
+ name: string;
66
66
  children: ({
67
- name: string;
68
67
  type: import("@metamask/snaps-sdk").NodeType.Input;
68
+ name: string;
69
69
  value?: string | undefined;
70
70
  label?: string | undefined;
71
71
  inputType?: "number" | "text" | "password" | undefined;
@@ -74,8 +74,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
74
74
  } | {
75
75
  value: string;
76
76
  type: import("@metamask/snaps-sdk").NodeType.Button;
77
- name?: string | undefined;
78
77
  variant?: "primary" | "secondary" | undefined;
78
+ name?: string | undefined;
79
79
  buttonType?: "button" | "submit" | undefined;
80
80
  })[];
81
81
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -134,8 +134,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
134
134
  label: string;
135
135
  variant?: "default" | "critical" | "warning" | undefined;
136
136
  } | {
137
- name: string;
138
137
  type: import("@metamask/snaps-sdk").NodeType.Input;
138
+ name: string;
139
139
  value?: string | undefined;
140
140
  label?: string | undefined;
141
141
  inputType?: "number" | "text" | "password" | undefined;
@@ -144,15 +144,15 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
144
144
  } | {
145
145
  value: string;
146
146
  type: import("@metamask/snaps-sdk").NodeType.Button;
147
- name?: string | undefined;
148
147
  variant?: "primary" | "secondary" | undefined;
148
+ name?: string | undefined;
149
149
  buttonType?: "button" | "submit" | undefined;
150
150
  } | {
151
- name: string;
152
151
  type: import("@metamask/snaps-sdk").NodeType.Form;
152
+ name: string;
153
153
  children: ({
154
- name: string;
155
154
  type: import("@metamask/snaps-sdk").NodeType.Input;
155
+ name: string;
156
156
  value?: string | undefined;
157
157
  label?: string | undefined;
158
158
  inputType?: "number" | "text" | "password" | undefined;
@@ -161,8 +161,8 @@ declare const CreateInterfaceParametersStruct: import("@metamask/superstruct").S
161
161
  } | {
162
162
  value: string;
163
163
  type: import("@metamask/snaps-sdk").NodeType.Button;
164
- name?: string | undefined;
165
164
  variant?: "primary" | "secondary" | undefined;
165
+ name?: string | undefined;
166
166
  buttonType?: "button" | "submit" | undefined;
167
167
  })[];
168
168
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebSocketsHandler = void 0;
4
+ const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const endowments_1 = require("../endowments/index.cjs");
6
+ const hookNames = {
7
+ hasPermission: true,
8
+ getWebSockets: true,
9
+ };
10
+ /**
11
+ * Handler for the `snap_getWebSockets` method.
12
+ */
13
+ exports.getWebSocketsHandler = {
14
+ methodNames: ['snap_getWebSockets'],
15
+ implementation: getWebSocketsImplementation,
16
+ hookNames,
17
+ };
18
+ /**
19
+ * The `snap_getWebSockets` method implementation.
20
+ *
21
+ * @param _req - The JSON-RPC request object. Not used by this function.
22
+ * @param res - The JSON-RPC response object.
23
+ * @param _next - The `json-rpc-engine` "next" callback. Not used by this function.
24
+ * @param end - The `json-rpc-engine` "end" callback.
25
+ * @param hooks - The RPC method hooks.
26
+ * @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.
27
+ * @param hooks.getWebSockets - The function to get the connected WebSockets for the origin.
28
+ * @returns Nothing.
29
+ */
30
+ function getWebSocketsImplementation(_req, res, _next, end, { hasPermission, getWebSockets }) {
31
+ if (!hasPermission(endowments_1.SnapEndowments.NetworkAccess)) {
32
+ return end(rpc_errors_1.providerErrors.unauthorized());
33
+ }
34
+ try {
35
+ res.result = getWebSockets();
36
+ }
37
+ catch (error) {
38
+ return end(error);
39
+ }
40
+ return end();
41
+ }
42
+ //# sourceMappingURL=getWebSockets.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getWebSockets.cjs","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":";;;AAEA,qDAAsD;AAQtD,wDAA+C;AAG/C,MAAM,SAAS,GAAgD;IAC7D,aAAa,EAAE,IAAI;IACnB,aAAa,EAAE,IAAI;CACpB,CAAC;AAOF;;GAEG;AACU,QAAA,oBAAoB,GAI7B;IACF,WAAW,EAAE,CAAC,oBAAoB,CAAC;IACnC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAClC,IAAyC,EACzC,GAAgD,EAChD,KAAc,EACd,GAA6B,EAC7B,EAAE,aAAa,EAAE,aAAa,EAA4B;IAE1D,IAAI,CAAC,aAAa,CAAC,2BAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,OAAO,GAAG,CAAC,2BAAc,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,GAAG,CAAC,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,EAAE,CAAC;AACf,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { providerErrors } from '@metamask/rpc-errors';\nimport type {\n GetWebSocketsParams,\n GetWebSocketsResult,\n JsonRpcRequest,\n} from '@metamask/snaps-sdk';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport { SnapEndowments } from '../endowments';\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<GetWebSocketsMethodHooks> = {\n hasPermission: true,\n getWebSockets: true,\n};\n\nexport type GetWebSocketsMethodHooks = {\n hasPermission: (permissionName: string) => boolean;\n getWebSockets: () => GetWebSocketsResult;\n};\n\n/**\n * Handler for the `snap_getWebSockets` method.\n */\nexport const getWebSocketsHandler: PermittedHandlerExport<\n GetWebSocketsMethodHooks,\n GetWebSocketsParams,\n GetWebSocketsResult\n> = {\n methodNames: ['snap_getWebSockets'],\n implementation: getWebSocketsImplementation,\n hookNames,\n};\n\n/**\n * The `snap_getWebSockets` method implementation.\n *\n * @param _req - The JSON-RPC request object. Not used by this function.\n * @param res - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.hasPermission - The function to check if a snap has the `endowment:network-access` permission.\n * @param hooks.getWebSockets - The function to get the connected WebSockets for the origin.\n * @returns Nothing.\n */\nfunction getWebSocketsImplementation(\n _req: JsonRpcRequest<GetWebSocketsParams>,\n res: PendingJsonRpcResponse<GetWebSocketsResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { hasPermission, getWebSockets }: GetWebSocketsMethodHooks,\n): void {\n if (!hasPermission(SnapEndowments.NetworkAccess)) {\n return end(providerErrors.unauthorized());\n }\n\n try {\n res.result = getWebSockets();\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
+ import type { GetWebSocketsParams, GetWebSocketsResult } from "@metamask/snaps-sdk";
3
+ export type GetWebSocketsMethodHooks = {
4
+ hasPermission: (permissionName: string) => boolean;
5
+ getWebSockets: () => GetWebSocketsResult;
6
+ };
7
+ /**
8
+ * Handler for the `snap_getWebSockets` method.
9
+ */
10
+ export declare const getWebSocketsHandler: PermittedHandlerExport<GetWebSocketsMethodHooks, GetWebSocketsParams, GetWebSocketsResult>;
11
+ //# sourceMappingURL=getWebSockets.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getWebSockets.d.cts","sourceRoot":"","sources":["../../src/permitted/getWebSockets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EAEpB,4BAA4B;AAW7B,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC;IACnD,aAAa,EAAE,MAAM,mBAAmB,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,sBAAsB,CACvD,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,CAKpB,CAAC"}