@metamask/snaps-rpc-methods 13.3.0 → 13.5.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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [13.5.0]
11
+
12
+ ### Changed
13
+
14
+ - Use `TrackableErrorStruct` from `@metamask/snaps-utils` ([#3546](https://github.com/MetaMask/snaps/pull/3546))
15
+
16
+ ## [13.4.0]
17
+
18
+ ### Added
19
+
20
+ - Add support `onActive` and `onInactive` lifecycle hooks ([#3542](https://github.com/MetaMask/snaps/pull/3542))
21
+
22
+ ### Changed
23
+
24
+ - Bump `@metamask/rpc-errors` from `7.0.2` to `7.0.3` ([#3525](https://github.com/MetaMask/snaps/pull/3525))
25
+ - Bump `@metamask/utils` from `11.4.1` to `11.4.2` ([#3526](https://github.com/MetaMask/snaps/pull/3526))
26
+
10
27
  ## [13.3.0]
11
28
 
12
29
  ### Added
@@ -476,7 +493,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
476
493
  - The version of the package no longer needs to match the version of all other
477
494
  MetaMask Snaps packages.
478
495
 
479
- [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.3.0...HEAD
496
+ [Unreleased]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.5.0...HEAD
497
+ [13.5.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.4.0...@metamask/snaps-rpc-methods@13.5.0
498
+ [13.4.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.3.0...@metamask/snaps-rpc-methods@13.4.0
480
499
  [13.3.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.2.0...@metamask/snaps-rpc-methods@13.3.0
481
500
  [13.2.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.1.0...@metamask/snaps-rpc-methods@13.2.0
482
501
  [13.1.0]: https://github.com/MetaMask/snaps/compare/@metamask/snaps-rpc-methods@13.0.0...@metamask/snaps-rpc-methods@13.1.0
@@ -79,6 +79,8 @@ exports.handlerEndowments = {
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
81
  [snaps_utils_1.HandlerType.OnStart]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName,
82
+ [snaps_utils_1.HandlerType.OnActive]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName,
83
+ [snaps_utils_1.HandlerType.OnInactive]: lifecycle_hooks_1.lifecycleHooksEndowmentBuilder.targetName,
82
84
  [snaps_utils_1.HandlerType.OnKeyringRequest]: keyring_1.keyringEndowmentBuilder.targetName,
83
85
  [snaps_utils_1.HandlerType.OnHomePage]: home_page_1.homePageEndowmentBuilder.targetName,
84
86
  [snaps_utils_1.HandlerType.OnSettingsPage]: settings_page_1.settingsPageEndowmentBuilder.targetName,
@@ -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.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
+ {"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.OnStart]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnActive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnInactive]: 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,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
+ {"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,CAsBhE,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,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
+ {"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,CAsBhE,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"}
@@ -62,6 +62,8 @@ export const handlerEndowments = {
62
62
  [HandlerType.OnInstall]: lifecycleHooksEndowmentBuilder.targetName,
63
63
  [HandlerType.OnUpdate]: lifecycleHooksEndowmentBuilder.targetName,
64
64
  [HandlerType.OnStart]: lifecycleHooksEndowmentBuilder.targetName,
65
+ [HandlerType.OnActive]: lifecycleHooksEndowmentBuilder.targetName,
66
+ [HandlerType.OnInactive]: lifecycleHooksEndowmentBuilder.targetName,
65
67
  [HandlerType.OnKeyringRequest]: keyringEndowmentBuilder.targetName,
66
68
  [HandlerType.OnHomePage]: homePageEndowmentBuilder.targetName,
67
69
  [HandlerType.OnSettingsPage]: settingsPageEndowmentBuilder.targetName,
@@ -1 +1 @@
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"]}
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.OnActive]: lifecycleHooksEndowmentBuilder.targetName,\n [HandlerType.OnInactive]: 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"]}
@@ -2,19 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.trackErrorHandler = void 0;
4
4
  const rpc_errors_1 = require("@metamask/rpc-errors");
5
+ const snaps_utils_1 = require("@metamask/snaps-utils");
5
6
  const superstruct_1 = require("@metamask/superstruct");
6
7
  const hookNames = {
7
8
  trackError: true,
8
9
  getSnap: true,
9
10
  };
10
- const TrackableErrorStruct = (0, superstruct_1.object)({
11
- name: (0, superstruct_1.string)(),
12
- message: (0, superstruct_1.string)(),
13
- stack: (0, superstruct_1.nullable)((0, superstruct_1.string)()),
14
- cause: (0, superstruct_1.nullable)((0, superstruct_1.lazy)(() => TrackableErrorStruct)),
15
- });
16
11
  const TrackErrorParametersStruct = (0, superstruct_1.object)({
17
- error: TrackableErrorStruct,
12
+ error: snaps_utils_1.TrackableErrorStruct,
18
13
  });
19
14
  /**
20
15
  * Handler for the `snap_trackError` method.
@@ -1 +1 @@
1
- {"version":3,"file":"trackError.cjs","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AASjD,uDAO+B;AAK/B,MAAM,SAAS,GAA6C;IAC1D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;AAoBF,MAAM,oBAAoB,GAA2B,IAAA,oBAAM,EAAC;IAC1D,IAAI,EAAE,IAAA,oBAAM,GAAE;IACd,OAAO,EAAE,IAAA,oBAAM,GAAE;IACjB,KAAK,EAAE,IAAA,sBAAQ,EAAC,IAAA,oBAAM,GAAE,CAAC;IACzB,KAAK,EAAE,IAAA,sBAAQ,EAAC,IAAA,kBAAI,EAAiB,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,IAAA,oBAAM,EAAC;IACxC,KAAK,EAAE,oBAAoB;CAC5B,CAAC,CAAC;AAOH;;GAEG;AACU,QAAA,iBAAiB,GAI1B;IACF,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,2BAA2B,CAClC,OAA6C,EAC7C,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,UAAU,EAAE,OAAO,EAAyB;IAE9C,MAAM,IAAI,GAAG,OAAO,CACjB,OAAiE,CAAC,MAAM,CAC1E,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEtD,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,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,0BAA0B,CAAC,CAAC;IACpD,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;QAED,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IACnD,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;QACnC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n TrackableError,\n TrackErrorParams,\n TrackErrorResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching, Snap } from '@metamask/snaps-utils';\nimport type { Struct } from '@metamask/superstruct';\nimport {\n create,\n lazy,\n nullable,\n object,\n string,\n StructError,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<TrackErrorMethodHooks> = {\n trackError: true,\n getSnap: true,\n};\n\nexport type TrackErrorMethodHooks = {\n /**\n * Track an error.\n *\n * @param error - The error object to track.\n * @returns The ID of the tracked error, as returned by the Sentry instance\n * in the client.\n */\n trackError: (error: Error) => string;\n\n /**\n * Get Snap metadata.\n *\n * @param snapId - The ID of a Snap.\n */\n getSnap: (snapId: string) => Snap | undefined;\n};\n\nconst TrackableErrorStruct: Struct<TrackableError> = object({\n name: string(),\n message: string(),\n stack: nullable(string()),\n cause: nullable(lazy<TrackableError>(() => TrackableErrorStruct)),\n});\n\nconst TrackErrorParametersStruct = object({\n error: TrackableErrorStruct,\n});\n\nexport type TrackErrorParameters = InferMatching<\n typeof TrackErrorParametersStruct,\n TrackErrorParams\n>;\n\n/**\n * Handler for the `snap_trackError` method.\n */\nexport const trackErrorHandler: PermittedHandlerExport<\n TrackErrorMethodHooks,\n TrackErrorParameters,\n TrackErrorResult\n> = {\n methodNames: ['snap_trackError'],\n implementation: getTrackErrorImplementation,\n hookNames,\n};\n\n/**\n * The `snap_trackError` method implementation. This method allows preinstalled\n * Snaps to send errors to the Sentry instance in the client for tracking.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.trackError - The hook function to track an error.\n * @param hooks.getSnap - The hook function to get Snap metadata.\n * @returns Nothing.\n */\nfunction getTrackErrorImplementation(\n request: JsonRpcRequest<TrackErrorParameters>,\n response: PendingJsonRpcResponse<TrackErrorResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { trackError, getSnap }: TrackErrorMethodHooks,\n): void {\n const snap = getSnap(\n (request as JsonRpcRequest<TrackErrorParams> & { origin: string }).origin,\n );\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n const error = deserializeError(validatedParams.error);\n\n response.result = trackError(error);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_trackError` 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): TrackErrorParameters {\n try {\n return create(params, TrackErrorParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n\n/**\n * Deserialize a {@link TrackableError} into a standard {@link Error} object.\n *\n * @param error - The error to deserialize.\n * @returns A standard {@link Error} object with the same properties as the\n * original {@link TrackableError}.\n */\nfunction deserializeError(error: TrackableError): Error {\n const deserializedError = new Error(error.message);\n deserializedError.name = error.name;\n deserializedError.stack = error.stack ?? undefined;\n deserializedError.cause = error.cause\n ? deserializeError(error.cause)\n : undefined;\n\n return deserializedError;\n}\n"]}
1
+ {"version":3,"file":"trackError.cjs","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":";;;AAEA,qDAAiD;AAQjD,uDAA6D;AAC7D,uDAAoE;AAKpE,MAAM,SAAS,GAA6C;IAC1D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;AAoBF,MAAM,0BAA0B,GAAG,IAAA,oBAAM,EAAC;IACxC,KAAK,EAAE,kCAAoB;CAC5B,CAAC,CAAC;AAOH;;GAEG;AACU,QAAA,iBAAiB,GAI1B;IACF,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,2BAA2B,CAClC,OAA6C,EAC7C,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,UAAU,EAAE,OAAO,EAAyB;IAE9C,MAAM,IAAI,GAAG,OAAO,CACjB,OAAiE,CAAC,MAAM,CAC1E,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,sBAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEtD,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,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,0BAA0B,CAAC,CAAC;IACpD,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;QAED,0BAA0B;QAC1B,MAAM,sBAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IACnD,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;QACnC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n TrackableError,\n TrackErrorParams,\n TrackErrorResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching, Snap } from '@metamask/snaps-utils';\nimport { TrackableErrorStruct } from '@metamask/snaps-utils';\nimport { create, object, StructError } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<TrackErrorMethodHooks> = {\n trackError: true,\n getSnap: true,\n};\n\nexport type TrackErrorMethodHooks = {\n /**\n * Track an error.\n *\n * @param error - The error object to track.\n * @returns The ID of the tracked error, as returned by the Sentry instance\n * in the client.\n */\n trackError: (error: Error) => string;\n\n /**\n * Get Snap metadata.\n *\n * @param snapId - The ID of a Snap.\n */\n getSnap: (snapId: string) => Snap | undefined;\n};\n\nconst TrackErrorParametersStruct = object({\n error: TrackableErrorStruct,\n});\n\nexport type TrackErrorParameters = InferMatching<\n typeof TrackErrorParametersStruct,\n TrackErrorParams\n>;\n\n/**\n * Handler for the `snap_trackError` method.\n */\nexport const trackErrorHandler: PermittedHandlerExport<\n TrackErrorMethodHooks,\n TrackErrorParameters,\n TrackErrorResult\n> = {\n methodNames: ['snap_trackError'],\n implementation: getTrackErrorImplementation,\n hookNames,\n};\n\n/**\n * The `snap_trackError` method implementation. This method allows preinstalled\n * Snaps to send errors to the Sentry instance in the client for tracking.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.trackError - The hook function to track an error.\n * @param hooks.getSnap - The hook function to get Snap metadata.\n * @returns Nothing.\n */\nfunction getTrackErrorImplementation(\n request: JsonRpcRequest<TrackErrorParameters>,\n response: PendingJsonRpcResponse<TrackErrorResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { trackError, getSnap }: TrackErrorMethodHooks,\n): void {\n const snap = getSnap(\n (request as JsonRpcRequest<TrackErrorParams> & { origin: string }).origin,\n );\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n const error = deserializeError(validatedParams.error);\n\n response.result = trackError(error);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_trackError` 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): TrackErrorParameters {\n try {\n return create(params, TrackErrorParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n\n/**\n * Deserialize a {@link TrackableError} into a standard {@link Error} object.\n *\n * @param error - The error to deserialize.\n * @returns A standard {@link Error} object with the same properties as the\n * original {@link TrackableError}.\n */\nfunction deserializeError(error: TrackableError): Error {\n const deserializedError = new Error(error.message);\n deserializedError.name = error.name;\n deserializedError.stack = error.stack ?? undefined;\n deserializedError.cause = error.cause\n ? deserializeError(error.cause)\n : undefined;\n\n return deserializedError;\n}\n"]}
@@ -1,7 +1,6 @@
1
1
  import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
2
  import type { TrackableError, TrackErrorParams, TrackErrorResult } from "@metamask/snaps-sdk";
3
3
  import type { InferMatching, Snap } from "@metamask/snaps-utils";
4
- import type { Struct } from "@metamask/superstruct";
5
4
  export type TrackErrorMethodHooks = {
6
5
  /**
7
6
  * Track an error.
@@ -18,10 +17,10 @@ export type TrackErrorMethodHooks = {
18
17
  */
19
18
  getSnap: (snapId: string) => Snap | undefined;
20
19
  };
21
- declare const TrackErrorParametersStruct: Struct<{
20
+ declare const TrackErrorParametersStruct: import("@metamask/superstruct").Struct<{
22
21
  error: TrackableError;
23
22
  }, {
24
- error: Struct<TrackableError, unknown>;
23
+ error: import("@metamask/superstruct").Struct<TrackableError, unknown>;
25
24
  }>;
26
25
  export type TrackErrorParameters = InferMatching<typeof TrackErrorParametersStruct, TrackErrorParams>;
27
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"trackError.d.cts","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,8BAA8B;AAkBpD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAErC;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC;AASF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,sBAAsB,CACpD,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,CAKjB,CAAC"}
1
+ {"version":3,"file":"trackError.d.cts","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AAYjE,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAErC;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,sBAAsB,CACpD,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,CAKjB,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import type { PermittedHandlerExport } from "@metamask/permission-controller";
2
2
  import type { TrackableError, TrackErrorParams, TrackErrorResult } from "@metamask/snaps-sdk";
3
3
  import type { InferMatching, Snap } from "@metamask/snaps-utils";
4
- import type { Struct } from "@metamask/superstruct";
5
4
  export type TrackErrorMethodHooks = {
6
5
  /**
7
6
  * Track an error.
@@ -18,10 +17,10 @@ export type TrackErrorMethodHooks = {
18
17
  */
19
18
  getSnap: (snapId: string) => Snap | undefined;
20
19
  };
21
- declare const TrackErrorParametersStruct: Struct<{
20
+ declare const TrackErrorParametersStruct: import("@metamask/superstruct").Struct<{
22
21
  error: TrackableError;
23
22
  }, {
24
- error: Struct<TrackableError, unknown>;
23
+ error: import("@metamask/superstruct").Struct<TrackableError, unknown>;
25
24
  }>;
26
25
  export type TrackErrorParameters = InferMatching<typeof TrackErrorParametersStruct, TrackErrorParams>;
27
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"trackError.d.mts","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,8BAA8B;AAkBpD,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAErC;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC;AASF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,sBAAsB,CACpD,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,CAKjB,CAAC"}
1
+ {"version":3,"file":"trackError.d.mts","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,wCAAwC;AAE9E,OAAO,KAAK,EAEV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EACjB,4BAA4B;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B;AAYjE,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;;;OAMG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAErC;;;;OAIG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF,QAAA,MAAM,0BAA0B;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,aAAa,CAC9C,OAAO,0BAA0B,EACjC,gBAAgB,CACjB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,sBAAsB,CACpD,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,CAKjB,CAAC"}
@@ -1,15 +1,10 @@
1
1
  import { rpcErrors } from "@metamask/rpc-errors";
2
- import { create, lazy, nullable, object, string, StructError } from "@metamask/superstruct";
2
+ import { TrackableErrorStruct } from "@metamask/snaps-utils";
3
+ import { create, object, StructError } from "@metamask/superstruct";
3
4
  const hookNames = {
4
5
  trackError: true,
5
6
  getSnap: true,
6
7
  };
7
- const TrackableErrorStruct = object({
8
- name: string(),
9
- message: string(),
10
- stack: nullable(string()),
11
- cause: nullable(lazy(() => TrackableErrorStruct)),
12
- });
13
8
  const TrackErrorParametersStruct = object({
14
9
  error: TrackableErrorStruct,
15
10
  });
@@ -1 +1 @@
1
- {"version":3,"file":"trackError.mjs","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AASjD,OAAO,EACL,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACZ,8BAA8B;AAK/B,MAAM,SAAS,GAA6C;IAC1D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;AAoBF,MAAM,oBAAoB,GAA2B,MAAM,CAAC;IAC1D,IAAI,EAAE,MAAM,EAAE;IACd,OAAO,EAAE,MAAM,EAAE;IACjB,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAiB,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;CAClE,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,MAAM,CAAC;IACxC,KAAK,EAAE,oBAAoB;CAC5B,CAAC,CAAC;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAI1B;IACF,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,2BAA2B,CAClC,OAA6C,EAC7C,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,UAAU,EAAE,OAAO,EAAyB;IAE9C,MAAM,IAAI,GAAG,OAAO,CACjB,OAAiE,CAAC,MAAM,CAC1E,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEtD,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,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,0BAA0B,CAAC,CAAC;IACpD,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;QAED,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IACnD,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;QACnC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n TrackableError,\n TrackErrorParams,\n TrackErrorResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching, Snap } from '@metamask/snaps-utils';\nimport type { Struct } from '@metamask/superstruct';\nimport {\n create,\n lazy,\n nullable,\n object,\n string,\n StructError,\n} from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<TrackErrorMethodHooks> = {\n trackError: true,\n getSnap: true,\n};\n\nexport type TrackErrorMethodHooks = {\n /**\n * Track an error.\n *\n * @param error - The error object to track.\n * @returns The ID of the tracked error, as returned by the Sentry instance\n * in the client.\n */\n trackError: (error: Error) => string;\n\n /**\n * Get Snap metadata.\n *\n * @param snapId - The ID of a Snap.\n */\n getSnap: (snapId: string) => Snap | undefined;\n};\n\nconst TrackableErrorStruct: Struct<TrackableError> = object({\n name: string(),\n message: string(),\n stack: nullable(string()),\n cause: nullable(lazy<TrackableError>(() => TrackableErrorStruct)),\n});\n\nconst TrackErrorParametersStruct = object({\n error: TrackableErrorStruct,\n});\n\nexport type TrackErrorParameters = InferMatching<\n typeof TrackErrorParametersStruct,\n TrackErrorParams\n>;\n\n/**\n * Handler for the `snap_trackError` method.\n */\nexport const trackErrorHandler: PermittedHandlerExport<\n TrackErrorMethodHooks,\n TrackErrorParameters,\n TrackErrorResult\n> = {\n methodNames: ['snap_trackError'],\n implementation: getTrackErrorImplementation,\n hookNames,\n};\n\n/**\n * The `snap_trackError` method implementation. This method allows preinstalled\n * Snaps to send errors to the Sentry instance in the client for tracking.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.trackError - The hook function to track an error.\n * @param hooks.getSnap - The hook function to get Snap metadata.\n * @returns Nothing.\n */\nfunction getTrackErrorImplementation(\n request: JsonRpcRequest<TrackErrorParameters>,\n response: PendingJsonRpcResponse<TrackErrorResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { trackError, getSnap }: TrackErrorMethodHooks,\n): void {\n const snap = getSnap(\n (request as JsonRpcRequest<TrackErrorParams> & { origin: string }).origin,\n );\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n const error = deserializeError(validatedParams.error);\n\n response.result = trackError(error);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_trackError` 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): TrackErrorParameters {\n try {\n return create(params, TrackErrorParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n\n/**\n * Deserialize a {@link TrackableError} into a standard {@link Error} object.\n *\n * @param error - The error to deserialize.\n * @returns A standard {@link Error} object with the same properties as the\n * original {@link TrackableError}.\n */\nfunction deserializeError(error: TrackableError): Error {\n const deserializedError = new Error(error.message);\n deserializedError.name = error.name;\n deserializedError.stack = error.stack ?? undefined;\n deserializedError.cause = error.cause\n ? deserializeError(error.cause)\n : undefined;\n\n return deserializedError;\n}\n"]}
1
+ {"version":3,"file":"trackError.mjs","sourceRoot":"","sources":["../../src/permitted/trackError.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAQjD,OAAO,EAAE,oBAAoB,EAAE,8BAA8B;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,8BAA8B;AAKpE,MAAM,SAAS,GAA6C;IAC1D,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;CACd,CAAC;AAoBF,MAAM,0BAA0B,GAAG,MAAM,CAAC;IACxC,KAAK,EAAE,oBAAoB;CAC5B,CAAC,CAAC;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAI1B;IACF,WAAW,EAAE,CAAC,iBAAiB,CAAC;IAChC,cAAc,EAAE,2BAA2B;IAC3C,SAAS;CACV,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,SAAS,2BAA2B,CAClC,OAA6C,EAC7C,QAAkD,EAClD,KAAc,EACd,GAA6B,EAC7B,EAAE,UAAU,EAAE,OAAO,EAAyB;IAE9C,MAAM,IAAI,GAAG,OAAO,CACjB,OAAiE,CAAC,MAAM,CAC1E,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEtD,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACtC,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,0BAA0B,CAAC,CAAC;IACpD,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;QAED,0BAA0B;QAC1B,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB,CAAC,KAAqB;IAC7C,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,iBAAiB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACpC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC;IACnD,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;QACnC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/B,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,iBAAiB,CAAC;AAC3B,CAAC","sourcesContent":["import type { JsonRpcEngineEndCallback } from '@metamask/json-rpc-engine';\nimport type { PermittedHandlerExport } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n JsonRpcRequest,\n TrackableError,\n TrackErrorParams,\n TrackErrorResult,\n} from '@metamask/snaps-sdk';\nimport type { InferMatching, Snap } from '@metamask/snaps-utils';\nimport { TrackableErrorStruct } from '@metamask/snaps-utils';\nimport { create, object, StructError } from '@metamask/superstruct';\nimport type { PendingJsonRpcResponse } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\n\nconst hookNames: MethodHooksObject<TrackErrorMethodHooks> = {\n trackError: true,\n getSnap: true,\n};\n\nexport type TrackErrorMethodHooks = {\n /**\n * Track an error.\n *\n * @param error - The error object to track.\n * @returns The ID of the tracked error, as returned by the Sentry instance\n * in the client.\n */\n trackError: (error: Error) => string;\n\n /**\n * Get Snap metadata.\n *\n * @param snapId - The ID of a Snap.\n */\n getSnap: (snapId: string) => Snap | undefined;\n};\n\nconst TrackErrorParametersStruct = object({\n error: TrackableErrorStruct,\n});\n\nexport type TrackErrorParameters = InferMatching<\n typeof TrackErrorParametersStruct,\n TrackErrorParams\n>;\n\n/**\n * Handler for the `snap_trackError` method.\n */\nexport const trackErrorHandler: PermittedHandlerExport<\n TrackErrorMethodHooks,\n TrackErrorParameters,\n TrackErrorResult\n> = {\n methodNames: ['snap_trackError'],\n implementation: getTrackErrorImplementation,\n hookNames,\n};\n\n/**\n * The `snap_trackError` method implementation. This method allows preinstalled\n * Snaps to send errors to the Sentry instance in the client for tracking.\n *\n * @param request - The JSON-RPC request object.\n * @param response - The JSON-RPC response object.\n * @param _next - The `json-rpc-engine` \"next\" callback. Not used by this\n * function.\n * @param end - The `json-rpc-engine` \"end\" callback.\n * @param hooks - The RPC method hooks.\n * @param hooks.trackError - The hook function to track an error.\n * @param hooks.getSnap - The hook function to get Snap metadata.\n * @returns Nothing.\n */\nfunction getTrackErrorImplementation(\n request: JsonRpcRequest<TrackErrorParameters>,\n response: PendingJsonRpcResponse<TrackErrorResult>,\n _next: unknown,\n end: JsonRpcEngineEndCallback,\n { trackError, getSnap }: TrackErrorMethodHooks,\n): void {\n const snap = getSnap(\n (request as JsonRpcRequest<TrackErrorParams> & { origin: string }).origin,\n );\n\n if (!snap?.preinstalled) {\n return end(rpcErrors.methodNotFound());\n }\n\n const { params } = request;\n\n try {\n const validatedParams = getValidatedParams(params);\n const error = deserializeError(validatedParams.error);\n\n response.result = trackError(error);\n } catch (error) {\n return end(error);\n }\n\n return end();\n}\n\n/**\n * Validate the parameters for the `snap_trackError` 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): TrackErrorParameters {\n try {\n return create(params, TrackErrorParametersStruct);\n } catch (error) {\n if (error instanceof StructError) {\n throw rpcErrors.invalidParams({\n message: `Invalid params: ${error.message}.`,\n });\n }\n\n /* istanbul ignore next */\n throw rpcErrors.internal();\n }\n}\n\n/**\n * Deserialize a {@link TrackableError} into a standard {@link Error} object.\n *\n * @param error - The error to deserialize.\n * @returns A standard {@link Error} object with the same properties as the\n * original {@link TrackableError}.\n */\nfunction deserializeError(error: TrackableError): Error {\n const deserializedError = new Error(error.message);\n deserializedError.name = error.name;\n deserializedError.stack = error.stack ?? undefined;\n deserializedError.cause = error.cause\n ? deserializeError(error.cause)\n : undefined;\n\n return deserializedError;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask/snaps-rpc-methods",
3
- "version": "13.3.0",
3
+ "version": "13.5.0",
4
4
  "description": "MetaMask Snaps JSON-RPC method implementations",
5
5
  "keywords": [
6
6
  "MetaMask",
@@ -57,11 +57,11 @@
57
57
  "dependencies": {
58
58
  "@metamask/key-tree": "^10.1.1",
59
59
  "@metamask/permission-controller": "^11.0.6",
60
- "@metamask/rpc-errors": "^7.0.2",
61
- "@metamask/snaps-sdk": "^9.1.0",
62
- "@metamask/snaps-utils": "^11.0.0",
60
+ "@metamask/rpc-errors": "^7.0.3",
61
+ "@metamask/snaps-sdk": "^9.3.0",
62
+ "@metamask/snaps-utils": "^11.3.0",
63
63
  "@metamask/superstruct": "^3.2.1",
64
- "@metamask/utils": "^11.4.1",
64
+ "@metamask/utils": "^11.4.2",
65
65
  "@noble/hashes": "^1.7.1"
66
66
  },
67
67
  "devDependencies": {