@metamask-previews/name-controller 9.1.2-preview-4f4c98e → 9.1.2-preview-eb263b0ee

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 (116) hide show
  1. package/CHANGELOG.md +0 -1
  2. package/dist/NameController-method-action-types.cjs +7 -0
  3. package/dist/NameController-method-action-types.cjs.map +1 -0
  4. package/dist/{NameController-method-action-types.d.ts → NameController-method-action-types.d.cts} +2 -2
  5. package/dist/NameController-method-action-types.d.cts.map +1 -0
  6. package/dist/NameController-method-action-types.d.mts +38 -0
  7. package/dist/NameController-method-action-types.d.mts.map +1 -0
  8. package/dist/{NameController-method-action-types.js → NameController-method-action-types.mjs} +1 -1
  9. package/dist/NameController-method-action-types.mjs.map +1 -0
  10. package/dist/NameController.cjs +420 -0
  11. package/dist/NameController.cjs.map +1 -0
  12. package/dist/{NameController.d.ts → NameController.d.cts} +7 -7
  13. package/dist/NameController.d.cts.map +1 -0
  14. package/dist/NameController.d.mts +108 -0
  15. package/dist/NameController.d.mts.map +1 -0
  16. package/dist/{NameController.js → NameController.mjs} +4 -4
  17. package/dist/NameController.mjs.map +1 -0
  18. package/dist/constants.cjs +111 -0
  19. package/dist/constants.cjs.map +1 -0
  20. package/dist/{constants.d.ts → constants.d.cts} +21 -21
  21. package/dist/constants.d.cts.map +1 -0
  22. package/dist/constants.d.mts +105 -0
  23. package/dist/constants.d.mts.map +1 -0
  24. package/dist/{constants.js → constants.mjs} +1 -1
  25. package/dist/constants.mjs.map +1 -0
  26. package/dist/index.cjs +23 -0
  27. package/dist/index.cjs.map +1 -0
  28. package/dist/index.d.cts +8 -0
  29. package/dist/index.d.cts.map +1 -0
  30. package/dist/index.d.mts +8 -0
  31. package/dist/index.d.mts.map +1 -0
  32. package/dist/index.mjs +7 -0
  33. package/dist/index.mjs.map +1 -0
  34. package/dist/logger.cjs +7 -0
  35. package/dist/logger.cjs.map +1 -0
  36. package/dist/logger.d.cts +5 -0
  37. package/dist/logger.d.cts.map +1 -0
  38. package/dist/logger.d.mts +5 -0
  39. package/dist/logger.d.mts.map +1 -0
  40. package/dist/logger.mjs +4 -0
  41. package/dist/logger.mjs.map +1 -0
  42. package/dist/providers/ens.cjs +65 -0
  43. package/dist/providers/ens.cjs.map +1 -0
  44. package/dist/providers/{ens.d.ts → ens.d.cts} +2 -2
  45. package/dist/providers/ens.d.cts.map +1 -0
  46. package/dist/providers/ens.d.mts +12 -0
  47. package/dist/providers/ens.d.mts.map +1 -0
  48. package/dist/providers/{ens.js → ens.mjs} +3 -3
  49. package/dist/providers/ens.mjs.map +1 -0
  50. package/dist/providers/etherscan.cjs +128 -0
  51. package/dist/providers/etherscan.cjs.map +1 -0
  52. package/dist/providers/{etherscan.d.ts → etherscan.d.cts} +2 -2
  53. package/dist/providers/etherscan.d.cts.map +1 -0
  54. package/dist/providers/etherscan.d.mts +10 -0
  55. package/dist/providers/etherscan.d.mts.map +1 -0
  56. package/dist/providers/{etherscan.js → etherscan.mjs} +6 -6
  57. package/dist/providers/etherscan.mjs.map +1 -0
  58. package/dist/providers/lens.cjs +77 -0
  59. package/dist/providers/lens.cjs.map +1 -0
  60. package/dist/providers/{lens.d.ts → lens.d.cts} +2 -2
  61. package/dist/providers/lens.d.cts.map +1 -0
  62. package/dist/providers/lens.d.mts +10 -0
  63. package/dist/providers/lens.d.mts.map +1 -0
  64. package/dist/providers/{lens.js → lens.mjs} +4 -4
  65. package/dist/providers/lens.mjs.map +1 -0
  66. package/dist/providers/token.cjs +68 -0
  67. package/dist/providers/token.cjs.map +1 -0
  68. package/dist/providers/{token.d.ts → token.d.cts} +2 -2
  69. package/dist/providers/token.d.cts.map +1 -0
  70. package/dist/providers/token.d.mts +10 -0
  71. package/dist/providers/token.d.mts.map +1 -0
  72. package/dist/providers/{token.js → token.mjs} +4 -4
  73. package/dist/providers/token.mjs.map +1 -0
  74. package/dist/types.cjs +10 -0
  75. package/dist/types.cjs.map +1 -0
  76. package/dist/{types.d.ts → types.d.cts} +1 -1
  77. package/dist/types.d.cts.map +1 -0
  78. package/dist/types.d.mts +77 -0
  79. package/dist/types.d.mts.map +1 -0
  80. package/dist/{types.js → types.mjs} +1 -1
  81. package/dist/types.mjs.map +1 -0
  82. package/dist/util.cjs +74 -0
  83. package/dist/util.cjs.map +1 -0
  84. package/dist/{util.d.ts → util.d.cts} +1 -1
  85. package/dist/util.d.cts.map +1 -0
  86. package/dist/util.d.mts +35 -0
  87. package/dist/util.d.mts.map +1 -0
  88. package/dist/{util.js → util.mjs} +1 -1
  89. package/dist/util.mjs.map +1 -0
  90. package/package.json +16 -12
  91. package/dist/NameController-method-action-types.d.ts.map +0 -1
  92. package/dist/NameController-method-action-types.js.map +0 -1
  93. package/dist/NameController.d.ts.map +0 -1
  94. package/dist/NameController.js.map +0 -1
  95. package/dist/constants.d.ts.map +0 -1
  96. package/dist/constants.js.map +0 -1
  97. package/dist/index.d.ts +0 -8
  98. package/dist/index.d.ts.map +0 -1
  99. package/dist/index.js +0 -7
  100. package/dist/index.js.map +0 -1
  101. package/dist/logger.d.ts +0 -4
  102. package/dist/logger.d.ts.map +0 -1
  103. package/dist/logger.js +0 -4
  104. package/dist/logger.js.map +0 -1
  105. package/dist/providers/ens.d.ts.map +0 -1
  106. package/dist/providers/ens.js.map +0 -1
  107. package/dist/providers/etherscan.d.ts.map +0 -1
  108. package/dist/providers/etherscan.js.map +0 -1
  109. package/dist/providers/lens.d.ts.map +0 -1
  110. package/dist/providers/lens.js.map +0 -1
  111. package/dist/providers/token.d.ts.map +0 -1
  112. package/dist/providers/token.js.map +0 -1
  113. package/dist/types.d.ts.map +0 -1
  114. package/dist/types.js.map +0 -1
  115. package/dist/util.d.ts.map +0 -1
  116. package/dist/util.js.map +0 -1
@@ -0,0 +1,108 @@
1
+ import type { ControllerGetStateAction, ControllerStateChangeEvent } from "@metamask/base-controller";
2
+ import { BaseController } from "@metamask/base-controller";
3
+ import type { Messenger } from "@metamask/messenger";
4
+ import type { NameControllerMethodActions } from "./NameController-method-action-types.mjs";
5
+ import type { NameProvider } from "./types.mjs";
6
+ import { NameType } from "./types.mjs";
7
+ export declare const FALLBACK_VARIATION = "*";
8
+ export declare const PROPOSED_NAME_EXPIRE_DURATION: number;
9
+ /**
10
+ * Enumerates the possible origins responsible for setting a petname.
11
+ */
12
+ export declare enum NameOrigin {
13
+ ACCOUNT_IDENTITY = "account-identity",
14
+ ADDRESS_BOOK = "address-book",
15
+ API = "api",
16
+ UI = "ui"
17
+ }
18
+ declare const controllerName = "NameController";
19
+ export type ProposedNamesEntry = {
20
+ proposedNames: string[];
21
+ lastRequestTime: number | null;
22
+ updateDelay: number | null;
23
+ };
24
+ export type NameEntry = {
25
+ name: string | null;
26
+ sourceId: string | null;
27
+ origin: NameOrigin | null;
28
+ proposedNames: Record<string, ProposedNamesEntry>;
29
+ };
30
+ export type SourceEntry = {
31
+ label: string;
32
+ };
33
+ export type NameControllerState = {
34
+ names: Record<NameType, Record<string, Record<string, NameEntry>>>;
35
+ nameSources: Record<string, SourceEntry>;
36
+ };
37
+ export type GetNameState = ControllerGetStateAction<typeof controllerName, NameControllerState>;
38
+ export type NameStateChange = ControllerStateChangeEvent<typeof controllerName, NameControllerState>;
39
+ export type NameControllerActions = GetNameState | NameControllerMethodActions;
40
+ export type NameControllerEvents = NameStateChange;
41
+ export type NameControllerMessenger = Messenger<typeof controllerName, NameControllerActions, NameControllerEvents>;
42
+ export type NameControllerOptions = {
43
+ messenger: NameControllerMessenger;
44
+ providers: NameProvider[];
45
+ state?: Partial<NameControllerState>;
46
+ updateDelay?: number;
47
+ };
48
+ export type UpdateProposedNamesRequest = {
49
+ value: string;
50
+ type: NameType;
51
+ sourceIds?: string[];
52
+ onlyUpdateAfterDelay?: boolean;
53
+ variation?: string;
54
+ };
55
+ export type UpdateProposedNamesResult = {
56
+ results: Record<string, {
57
+ proposedNames?: string[];
58
+ error?: unknown;
59
+ }>;
60
+ };
61
+ export type SetNameRequest = {
62
+ value: string;
63
+ type: NameType;
64
+ name: string | null;
65
+ sourceId?: string;
66
+ variation?: string;
67
+ origin?: NameOrigin;
68
+ };
69
+ /**
70
+ * Controller for storing and deriving names for values such as Ethereum addresses.
71
+ */
72
+ export declare class NameController extends BaseController<typeof controllerName, NameControllerState, NameControllerMessenger> {
73
+ #private;
74
+ /**
75
+ * Construct a Name controller.
76
+ *
77
+ * @param options - Controller options.
78
+ * @param options.messenger - Restricted messenger for the name controller.
79
+ * @param options.providers - Array of name provider instances to propose names.
80
+ * @param options.state - Initial state to set on the controller.
81
+ * @param options.updateDelay - The delay in seconds before a new request to a source should be made.
82
+ */
83
+ constructor({ messenger, providers, state, updateDelay, }: NameControllerOptions);
84
+ /**
85
+ * Set the user specified name for a value.
86
+ *
87
+ * @param request - Request object.
88
+ * @param request.name - Name to set.
89
+ * @param request.sourceId - Optional ID of the source of the proposed name.
90
+ * @param request.type - Type of value to set the name for.
91
+ * @param request.value - Value to set the name for.
92
+ * @param request.variation - Variation of the raw value to set the name for. The chain ID if the type is Ethereum address.
93
+ */
94
+ setName(request: SetNameRequest): void;
95
+ /**
96
+ * Generate the proposed names for a value using the name providers and store them in the state.
97
+ *
98
+ * @param request - Request object.
99
+ * @param request.value - Value to update the proposed names for.
100
+ * @param request.type - Type of value to update the proposed names for.
101
+ * @param request.sourceIds - Optional array of source IDs to limit which sources are used by the providers. If not provided, all sources in all providers will be used.
102
+ * @param request.variation - Variation of the raw value to update proposed names for. The chain ID if the type is Ethereum address.
103
+ * @returns The updated proposed names for the value.
104
+ */
105
+ updateProposedNames(request: UpdateProposedNamesRequest): Promise<UpdateProposedNamesResult>;
106
+ }
107
+ export {};
108
+ //# sourceMappingURL=NameController.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NameController.d.mts","sourceRoot":"","sources":["../src/NameController.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _NameController_instances, _NameController_providers, _NameController_updateDelay, _NameController_updateProposedNameState, _NameController_updateSourceState, _NameController_getUpdateProposedNamesResult, _NameController_getProviderResponse, _NameController_normalizeProviderResult, _NameController_normalizeProviderSourceResult, _NameController_normalizeValue, _NameController_normalizeVariation, _NameController_updateEntry, _NameController_getCurrentTimeSeconds, _NameController_validateSetNameRequest, _NameController_validateUpdateProposedNamesRequest, _NameController_validateValue, _NameController_validateType, _NameController_validateName, _NameController_validateSourceIds, _NameController_validateSourceId, _NameController_validateDuplicateSourceIds, _NameController_validateVariation, _NameController_validateOrigin, _NameController_getAllSourceIds, _NameController_getSourceIds, _NameController_removeDormantProposedNames, _NameController_removeExpiredEntries, _NameController_getEntriesList;
13
- import { BaseController } from '@metamask/base-controller';
14
- import { isSafeDynamicKey } from '@metamask/controller-utils';
15
- import { NameType } from './types.js';
13
+ import { BaseController } from "@metamask/base-controller";
14
+ import { isSafeDynamicKey } from "@metamask/controller-utils";
15
+ import { NameType } from "./types.mjs";
16
16
  export const FALLBACK_VARIATION = '*';
17
17
  export const PROPOSED_NAME_EXPIRE_DURATION = 60 * 60 * 24; // 24 hours
18
18
  /**
@@ -413,4 +413,4 @@ _NameController_providers = new WeakMap(), _NameController_updateDelay = new Wea
413
413
  variation,
414
414
  }))));
415
415
  };
416
- //# sourceMappingURL=NameController.js.map
416
+ //# sourceMappingURL=NameController.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NameController.mjs","sourceRoot":"","sources":["../src/NameController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,OAAO,EAAE,cAAc,EAAE,kCAAkC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,mCAAmC;AAU9D,OAAO,EAAE,QAAQ,EAAE,oBAAmB;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW;AAEtE;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,uCAAuC;IACvC,mDAAqC,CAAA;IACrC,yCAAyC;IACzC,2CAA6B,CAAA;IAC7B,yEAAyE;IACzE,yBAAW,CAAA;IACX,oDAAoD;IACpD,uBAAS,CAAA;AACX,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED,MAAM,oBAAoB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY;AACjD,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAExC,MAAM,yBAAyB,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAU,CAAC;AAE9E,MAAM,aAAa,GAAG;IACpB,KAAK,EAAE;QACL,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI;QACb,sBAAsB,EAAE,KAAK;QAC7B,QAAQ,EAAE,IAAI;KACf;IACD,WAAW,EAAE;QACX,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,IAAI;QACb,sBAAsB,EAAE,KAAK;QAC7B,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7B,KAAK,EAAE;QACL,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,EAAE;KAChC;IACD,WAAW,EAAE,EAAE;CAChB,CAAC,CAAC;AAyEH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,cAInC;IAKC;;;;;;;;OAQG;IACH,YAAY,EACV,SAAS,EACT,SAAS,EACT,KAAK,EACL,WAAW,GACW;QACtB,KAAK,CAAC;YACJ,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,aAAa;YACvB,SAAS;YACT,KAAK,EAAE,EAAE,GAAG,eAAe,EAAE,EAAE,GAAG,KAAK,EAAE;SAC1C,CAAC,CAAC;;QAxBI,4CAA2B;QAE3B,8CAAqB;QAwB5B,IAAI,CAAC,SAAS,CAAC,4BAA4B,CACzC,IAAI,EACJ,yBAAyB,CAC1B,CAAC;QAEF,uBAAA,IAAI,6BAAc,SAAS,MAAA,CAAC;QAC5B,uBAAA,IAAI,+BAAgB,WAAW,IAAI,oBAAoB,MAAA,CAAC;IAC1D,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,OAAuB;QAC7B,uBAAA,IAAI,yEAAwB,MAA5B,IAAI,EAAyB,OAAO,CAAC,CAAC;QAEtC,MAAM,EACJ,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,aAAa,EACrB,SAAS,GACV,GAAG,OAAO,CAAC;QACZ,MAAM,QAAQ,GAAG,eAAe,IAAI,IAAI,CAAC;QACzC,+EAA+E;QAC/E,MAAM,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;QAC7D,MAAM,MAAM,GAAG,aAAa,IAAI,cAAc,CAAC;QAE/C,uBAAA,IAAI,8DAAa,MAAjB,IAAI,EAAc,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,KAAgB,EAAE,EAAE;YAC7D,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;YAClB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC1B,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,mBAAmB,CACvB,OAAmC;QAEnC,uBAAA,IAAI,qFAAoC,MAAxC,IAAI,EAAqC,OAAO,CAAC,CAAC;QAElD,MAAM,iBAAiB,GAAG,CACxB,MAAM,OAAO,CAAC,GAAG,CACf,uBAAA,IAAI,iCAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/B,uBAAA,IAAI,sEAAqB,MAAzB,IAAI,EAAsB,OAAO,EAAE,QAAQ,CAAC,CAC7C,CACF,CACF,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAyB,CAAC;QAElE,uBAAA,IAAI,0EAAyB,MAA7B,IAAI,EAA0B,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC1D,uBAAA,IAAI,oEAAmB,MAAvB,IAAI,EAAoB,uBAAA,IAAI,iCAAW,CAAC,CAAC;QACzC,uBAAA,IAAI,uEAAsB,MAA1B,IAAI,CAAwB,CAAC;QAE7B,OAAO,uBAAA,IAAI,+EAA8B,MAAlC,IAAI,EAA+B,iBAAiB,CAAC,CAAC;IAC/D,CAAC;CAsfF;8NAnfG,OAAmC,EACnC,iBAAuC;IAEvC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,WAAW,GAAG,uBAAA,IAAI,wEAAuB,MAA3B,IAAI,CAAyB,CAAC;IAElD,uBAAA,IAAI,8DAAa,MAAjB,IAAI,EAAc,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,KAAgB,EAAE,EAAE;QAC7D,uBAAA,IAAI,6EAA4B,MAAhC,IAAI,EAA6B,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAE5D,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YACjD,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;YAErC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACjC,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;gBAE9C,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI;oBACzD,aAAa,EAAE,EAAE;oBACjB,eAAe,EAAE,IAAI;oBACrB,WAAW,EAAE,IAAI;iBAClB,CAAC;gBAEF,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC;gBAElD,IAAI,aAAa,EAAE,CAAC;oBAClB,iBAAiB,CAAC,aAAa,GAAG,aAAa,CAAC;gBAClD,CAAC;gBAED,iBAAiB,CAAC,eAAe,GAAG,WAAW,CAAC;gBAChD,iBAAiB,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,iFAEkB,SAAyB;IAC1C,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;IAErD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEhD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACjD,cAAc,CAAC,QAAQ,CAAC,GAAG;gBACzB,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC;aAC9B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,uGAGC,iBAAuC;IAEvC,OAAO,iBAAiB,CAAC,MAAM,CAC7B,CAAC,GAA8B,EAAE,gBAAgB,EAAE,EAAE;QACnD,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;QAErC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEnD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG;gBACtB,aAAa;gBACb,KAAK;aACN,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,OAAO,EAAE,EAAE,EAAE,CAChB,CAAC;AACJ,CAAC,wCAED,KAAK,8CACH,OAAmC,EACnC,QAAsB;IAEtB,MAAM,EACJ,KAAK,EACL,IAAI,EACJ,SAAS,EAAE,kBAAkB,EAC7B,oBAAoB,EACpB,SAAS,GACV,GAAG,OAAO,CAAC;IAEZ,0BAA0B;IAC1B,MAAM,YAAY,GAAG,SAAS,IAAI,iBAAiB,CAAC;IACpD,MAAM,kBAAkB,GAAG,uBAAA,IAAI,+DAAc,MAAlB,IAAI,EAAe,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,uBAAA,IAAI,wEAAuB,MAA3B,IAAI,CAAyB,CAAC;IAClD,MAAM,eAAe,GAAG,uBAAA,IAAI,iEAAgB,MAApB,IAAI,EAAiB,KAAK,EAAE,IAAI,CAAC,CAAC;IAE1D,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC/D,IAAI,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,oBAAoB,EAAE,CAAC;YACzB,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAClE,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACjE,MAAM,eAAe,GAAG,kBAAkB,CAAC,eAAe,IAAI,CAAC,CAAC;YAChE,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,IAAI,uBAAA,IAAI,mCAAa,CAAC;YAExE,IAAI,WAAW,GAAG,eAAe,GAAG,WAAW,EAAE,CAAC;gBAChD,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,eAAe,GAAwB;QAC3C,KAAK,EAAE,uBAAA,IAAI,iEAAgB,MAApB,IAAI,EAAiB,KAAK,EAAE,IAAI,CAAC;QACxC,IAAI;QACJ,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS;QAC7D,SAAS,EAAE,uBAAA,IAAI,qEAAoB,MAAxB,IAAI,EAAqB,YAAY,EAAE,IAAI,CAAC;KACxD,CAAC;IAEF,IAAI,aAAkC,CAAC;IACvC,IAAI,QAAwC,CAAC;IAE7C,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAC5D,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO,uBAAA,IAAI,0EAAyB,MAA7B,IAAI,EACT,QAAQ,EACR,aAAa,EACb,iBAAiB,CAClB,CAAC;AACJ,CAAC,6FAGC,MAAsC,EACtC,aAAsB,EACtB,iBAA2B;IAE3B,MAAM,KAAK,GAAG,aAAa,IAAI,SAAS,CAAC;IAEzC,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;QACzD,MAAM,YAAY,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,sBAAsB,GAAG,uBAAA,IAAI,gFAA+B,MAAnC,IAAI,EACjC,YAAY,EACZ,aAAa,CACd,CAAC;QAEF,OAAO;YACL,GAAG,GAAG;YACN,CAAC,QAAQ,CAAC,EAAE,sBAAsB;SACnC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC,yGAGC,MAA4C,EAC5C,aAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,aAAa,IAAI,SAAS,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,SAAS,CAAC;IACrD,IAAI,aAAa,GAAG,KAAK;QACvB,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,MAAM,EAAE,aAAa,IAAI,SAAS,CAAC,CAAC;IAEzC,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,MAAM,CACvC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa;QACb,KAAK;QACL,WAAW;KACZ,CAAC;AACJ,CAAC,2EAEe,KAAa,EAAE,IAAc;IAC3C,0BAA0B;IAC1B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,gBAAgB;YAC5B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;QAE7B;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,mFAEmB,SAAiB,EAAE,IAAc;IACnD,0BAA0B;IAC1B,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ,CAAC,gBAAgB;YAC5B,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;QAEjC;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC,qEAGC,KAAa,EACb,IAAc,EACd,SAA6B,EAC7B,QAAoC;IAEpC,0BAA0B;IAC1B,MAAM,YAAY,GAAG,SAAS,IAAI,iBAAiB,CAAC;IACpD,MAAM,eAAe,GAAG,uBAAA,IAAI,iEAAgB,MAApB,IAAI,EAAiB,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,MAAM,mBAAmB,GAAG,uBAAA,IAAI,qEAAoB,MAAxB,IAAI,EAAqB,YAAY,EAAE,IAAI,CAAC,CAAC;IAEzE,IACE,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC,IAAI,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAChC,EACD,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QAEhC,MAAM,gBAAgB,GAAG,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC5D,WAAW,CAAC,eAAe,CAAC,GAAG,gBAAgB,CAAC;QAEhD,MAAM,KAAK,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,IAAI;YACrD,aAAa,EAAE,EAAE;YACjB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;SACb,CAAC;QACF,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAC;QAE9C,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;IAGC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC,2FAEuB,OAAuB;IAC7C,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACnE,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,uBAAA,IAAI,gEAAe,MAAnB,IAAI,EAAgB,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1C,uBAAA,IAAI,+DAAc,MAAlB,IAAI,EAAe,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC,uBAAA,IAAI,+DAAc,MAAlB,IAAI,EAAe,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC,uBAAA,IAAI,mEAAkB,MAAtB,IAAI,EAAmB,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAC5D,uBAAA,IAAI,oEAAmB,MAAvB,IAAI,EAAoB,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,uBAAA,IAAI,iEAAgB,MAApB,IAAI,EAAiB,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAElD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,mHAEmC,OAAmC;IACrE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,aAAa,GAAa,EAAE,CAAC;IAEnC,uBAAA,IAAI,gEAAe,MAAnB,IAAI,EAAgB,KAAK,EAAE,aAAa,CAAC,CAAC;IAC1C,uBAAA,IAAI,+DAAc,MAAlB,IAAI,EAAe,IAAI,EAAE,aAAa,CAAC,CAAC;IACxC,uBAAA,IAAI,oEAAmB,MAAvB,IAAI,EAAoB,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IACxD,uBAAA,IAAI,6EAA4B,MAAhC,IAAI,EAA6B,IAAI,EAAE,aAAa,CAAC,CAAC;IACtD,uBAAA,IAAI,oEAAmB,MAAvB,IAAI,EAAoB,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAExD,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC,yEAEc,KAAa,EAAE,aAAuB;IACnD,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IACnE,CAAC;AACH,CAAC,uEAEa,IAAc,EAAE,aAAuB;IACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,aAAa,CAAC,IAAI,CAChB,4CAA4C,MAAM,CAAC,MAAM,CACvD,QAAQ,CACT,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC,uEAEa,IAAmB,EAAE,aAAuB;IACxD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9C,aAAa,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,iFAGC,SAA+B,EAC/B,IAAc,EACd,aAAuB;IAEvB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,uBAAA,IAAI,kEAAiB,MAArB,IAAI,EAAkB,IAAI,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAE5B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,aAAa,CAAC,IAAI,CAChB,gCAAgC,IAAI,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACxE,CAAC;IACJ,CAAC;AACH,CAAC,+EAGC,QAA4B,EAC5B,IAAc,EACd,IAAmB,EACnB,aAAuB;IAEvB,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,CAChB,4DAA4D,QAAQ,EAAE,CACvE,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,uBAAA,IAAI,kEAAiB,MAArB,IAAI,EAAkB,IAAI,CAAC,CAAC;IAEjD,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACrD,aAAa,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,aAAa,CAAC,IAAI,CAAC,+BAA+B,IAAI,MAAM,QAAQ,EAAE,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC,mGAE2B,IAAc,EAAE,aAAuB;IACjE,MAAM,YAAY,GAAG,uBAAA,IAAI,kEAAiB,MAArB,IAAI,EAAkB,IAAI,CAAC,CAAC;IAEjD,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAC5C,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,CAC9D,CAAC;IAEF,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC9B,aAAa,CAAC,IAAI,CAChB,wCAAwC,IAAI,MAAM,kBAAkB,CAAC,IAAI,CACvE,IAAI,CACL,EAAE,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,iFAGC,SAA6B,EAC7B,IAAY,EACZ,aAAuB;IAEvB,IAAI,IAAI,KAAK,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IACE,CAAC,SAAS,EAAE,MAAM;QAClB,OAAO,SAAS,KAAK,QAAQ;QAC7B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,mBAAmB,CAAC;YACpC,SAAS,KAAK,kBAAkB,CAAC,EACnC,CAAC;QACD,aAAa,CAAC,IAAI,CAChB,mEAAmE,kBAAkB,gCAAgC,IAAI,SAAS,CACnI,CAAC;IACJ,CAAC;AACH,CAAC,2EAGC,MAAqC,EACrC,IAAmB,EACnB,aAAuB;IAEvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,aAAa,CAAC,IAAI,CAChB,0DAA0D,MAAM,EAAE,CACnE,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,aAAa,CAAC,IAAI,CAChB,8CAA8C,MAAM,CAAC,MAAM,CACzD,UAAU,CACX,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC,6EAEgB,IAAc;IAC7B,OAAO,CACL,uBAAA,IAAI,iCAAW;QACb,0BAA0B;SACzB,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,uBAAA,IAAI,+DAAc,MAAlB,IAAI,EAAe,QAAQ,EAAE,IAAI,CAAC,CAAC;SACrD,IAAI,EAAE,CACV,CAAC;AACJ,CAAC,uEAEa,QAAsB,EAAE,IAAc;IAClD,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC,mGAGC,aAAiD,EACjD,IAAc;IAEd,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,uBAAA,IAAI,kEAAiB,MAArB,IAAI,EAAkB,IAAI,CAAC,CAAC;IAElD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CACxD,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAChD,CAAC;IAEF,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;QAC/C,OAAO,aAAa,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;IAGC,MAAM,WAAW,GAAG,uBAAA,IAAI,wEAAuB,MAA3B,IAAI,CAAyB,CAAC;IAElD,IAAI,CAAC,MAAM,CAAC,CAAC,KAA0B,EAAE,EAAE;QACzC,MAAM,OAAO,GAAG,uBAAA,IAAI,iEAAgB,MAApB,IAAI,EAAiB,KAAK,CAAC,CAAC;QAC5C,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE,CAAC;YAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACzD,MAAM,uBAAuB,GAAG,aAAa,CAAC,KAAK,CACjD,CAAC,YAAgC,EAAE,EAAE,CACnC,WAAW,GAAG,CAAC,YAAY,CAAC,eAAe,IAAI,CAAC,CAAC;gBACjD,6BAA6B,CAChC,CAAC;YAEF,IAAI,uBAAuB,EAAE,CAAC;gBAC5B,OAAO,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,2EAEe,KAA0B;IAMxC,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CACjE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAChE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,KAAK;QACL,QAAQ,EAAE,IAAgB;QAC1B,KAAK;QACL,SAAS;KACV,CAAC,CAAC,CACJ,CACF,CAAC;AACJ,CAAC","sourcesContent":["import type {\n ControllerGetStateAction,\n ControllerStateChangeEvent,\n} from '@metamask/base-controller';\nimport { BaseController } from '@metamask/base-controller';\nimport { isSafeDynamicKey } from '@metamask/controller-utils';\nimport type { Messenger } from '@metamask/messenger';\n\nimport type { NameControllerMethodActions } from './NameController-method-action-types.js';\nimport type {\n NameProvider,\n NameProviderRequest,\n NameProviderResult,\n NameProviderSourceResult,\n} from './types.js';\nimport { NameType } from './types.js';\n\nexport const FALLBACK_VARIATION = '*';\nexport const PROPOSED_NAME_EXPIRE_DURATION = 60 * 60 * 24; // 24 hours\n\n/**\n * Enumerates the possible origins responsible for setting a petname.\n */\nexport enum NameOrigin {\n // Originated from an account identity.\n ACCOUNT_IDENTITY = 'account-identity',\n // Originated from an address book entry.\n ADDRESS_BOOK = 'address-book',\n // Originated from the API (NameController.setName). This is the default.\n API = 'api',\n // Originated from the user taking action in the UI.\n UI = 'ui',\n}\n\nconst DEFAULT_UPDATE_DELAY = 60 * 2; // 2 Minutes\nconst DEFAULT_VARIATION = '';\n\nconst controllerName = 'NameController';\n\nconst MESSENGER_EXPOSED_METHODS = ['setName', 'updateProposedNames'] as const;\n\nconst stateMetadata = {\n names: {\n includeInStateLogs: true,\n persist: true,\n includeInDebugSnapshot: false,\n usedInUi: true,\n },\n nameSources: {\n includeInStateLogs: true,\n persist: true,\n includeInDebugSnapshot: false,\n usedInUi: true,\n },\n};\n\nconst getDefaultState = () => ({\n names: {\n [NameType.ETHEREUM_ADDRESS]: {},\n },\n nameSources: {},\n});\n\nexport type ProposedNamesEntry = {\n proposedNames: string[];\n lastRequestTime: number | null;\n updateDelay: number | null;\n};\n\nexport type NameEntry = {\n name: string | null;\n sourceId: string | null;\n origin: NameOrigin | null;\n proposedNames: Record<string, ProposedNamesEntry>;\n};\n\nexport type SourceEntry = {\n label: string;\n};\n\nexport type NameControllerState = {\n // Type > Value > Variation > Entry\n names: Record<NameType, Record<string, Record<string, NameEntry>>>;\n nameSources: Record<string, SourceEntry>;\n};\n\nexport type GetNameState = ControllerGetStateAction<\n typeof controllerName,\n NameControllerState\n>;\n\nexport type NameStateChange = ControllerStateChangeEvent<\n typeof controllerName,\n NameControllerState\n>;\n\nexport type NameControllerActions = GetNameState | NameControllerMethodActions;\n\nexport type NameControllerEvents = NameStateChange;\n\nexport type NameControllerMessenger = Messenger<\n typeof controllerName,\n NameControllerActions,\n NameControllerEvents\n>;\n\nexport type NameControllerOptions = {\n messenger: NameControllerMessenger;\n providers: NameProvider[];\n state?: Partial<NameControllerState>;\n updateDelay?: number;\n};\n\nexport type UpdateProposedNamesRequest = {\n value: string;\n type: NameType;\n sourceIds?: string[];\n onlyUpdateAfterDelay?: boolean;\n variation?: string;\n};\n\nexport type UpdateProposedNamesResult = {\n results: Record<string, { proposedNames?: string[]; error?: unknown }>;\n};\n\nexport type SetNameRequest = {\n value: string;\n type: NameType;\n name: string | null;\n sourceId?: string;\n variation?: string;\n origin?: NameOrigin;\n};\n\n/**\n * Controller for storing and deriving names for values such as Ethereum addresses.\n */\nexport class NameController extends BaseController<\n typeof controllerName,\n NameControllerState,\n NameControllerMessenger\n> {\n readonly #providers: NameProvider[];\n\n readonly #updateDelay: number;\n\n /**\n * Construct a Name controller.\n *\n * @param options - Controller options.\n * @param options.messenger - Restricted messenger for the name controller.\n * @param options.providers - Array of name provider instances to propose names.\n * @param options.state - Initial state to set on the controller.\n * @param options.updateDelay - The delay in seconds before a new request to a source should be made.\n */\n constructor({\n messenger,\n providers,\n state,\n updateDelay,\n }: NameControllerOptions) {\n super({\n name: controllerName,\n metadata: stateMetadata,\n messenger,\n state: { ...getDefaultState(), ...state },\n });\n\n this.messenger.registerMethodActionHandlers(\n this,\n MESSENGER_EXPOSED_METHODS,\n );\n\n this.#providers = providers;\n this.#updateDelay = updateDelay ?? DEFAULT_UPDATE_DELAY;\n }\n\n /**\n * Set the user specified name for a value.\n *\n * @param request - Request object.\n * @param request.name - Name to set.\n * @param request.sourceId - Optional ID of the source of the proposed name.\n * @param request.type - Type of value to set the name for.\n * @param request.value - Value to set the name for.\n * @param request.variation - Variation of the raw value to set the name for. The chain ID if the type is Ethereum address.\n */\n setName(request: SetNameRequest) {\n this.#validateSetNameRequest(request);\n\n const {\n value,\n type,\n name,\n sourceId: requestSourceId,\n origin: requestOrigin,\n variation,\n } = request;\n const sourceId = requestSourceId ?? null;\n // If the name is being cleared, the fallback origin should be cleared as well.\n const fallbackOrigin = name === null ? null : NameOrigin.API;\n const origin = requestOrigin ?? fallbackOrigin;\n\n this.#updateEntry(value, type, variation, (entry: NameEntry) => {\n entry.name = name;\n entry.sourceId = sourceId;\n entry.origin = origin;\n });\n }\n\n /**\n * Generate the proposed names for a value using the name providers and store them in the state.\n *\n * @param request - Request object.\n * @param request.value - Value to update the proposed names for.\n * @param request.type - Type of value to update the proposed names for.\n * @param request.sourceIds - Optional array of source IDs to limit which sources are used by the providers. If not provided, all sources in all providers will be used.\n * @param request.variation - Variation of the raw value to update proposed names for. The chain ID if the type is Ethereum address.\n * @returns The updated proposed names for the value.\n */\n async updateProposedNames(\n request: UpdateProposedNamesRequest,\n ): Promise<UpdateProposedNamesResult> {\n this.#validateUpdateProposedNamesRequest(request);\n\n const providerResponses = (\n await Promise.all(\n this.#providers.map((provider) =>\n this.#getProviderResponse(request, provider),\n ),\n )\n ).filter((response) => Boolean(response)) as NameProviderResult[];\n\n this.#updateProposedNameState(request, providerResponses);\n this.#updateSourceState(this.#providers);\n this.#removeExpiredEntries();\n\n return this.#getUpdateProposedNamesResult(providerResponses);\n }\n\n #updateProposedNameState(\n request: UpdateProposedNamesRequest,\n providerResponses: NameProviderResult[],\n ) {\n const { value, type, variation } = request;\n const currentTime = this.#getCurrentTimeSeconds();\n\n this.#updateEntry(value, type, variation, (entry: NameEntry) => {\n this.#removeDormantProposedNames(entry.proposedNames, type);\n\n for (const providerResponse of providerResponses) {\n const { results } = providerResponse;\n\n for (const sourceId of Object.keys(providerResponse.results)) {\n const result = results[sourceId];\n const { proposedNames, updateDelay } = result;\n\n const proposedNameEntry = entry.proposedNames[sourceId] ?? {\n proposedNames: [],\n lastRequestTime: null,\n updateDelay: null,\n };\n\n entry.proposedNames[sourceId] = proposedNameEntry;\n\n if (proposedNames) {\n proposedNameEntry.proposedNames = proposedNames;\n }\n\n proposedNameEntry.lastRequestTime = currentTime;\n proposedNameEntry.updateDelay = updateDelay ?? null;\n }\n }\n });\n }\n\n #updateSourceState(providers: NameProvider[]) {\n const newNameSources = { ...this.state.nameSources };\n\n for (const provider of providers) {\n const { sourceLabels } = provider.getMetadata();\n\n for (const sourceId of Object.keys(sourceLabels)) {\n newNameSources[sourceId] = {\n label: sourceLabels[sourceId],\n };\n }\n }\n\n this.update((state) => {\n state.nameSources = newNameSources;\n });\n }\n\n #getUpdateProposedNamesResult(\n providerResponses: NameProviderResult[],\n ): UpdateProposedNamesResult {\n return providerResponses.reduce(\n (acc: UpdateProposedNamesResult, providerResponse) => {\n const { results } = providerResponse;\n\n for (const sourceId of Object.keys(results)) {\n const { proposedNames, error } = results[sourceId];\n\n acc.results[sourceId] = {\n proposedNames,\n error,\n };\n }\n\n return acc;\n },\n { results: {} },\n );\n }\n\n async #getProviderResponse(\n request: UpdateProposedNamesRequest,\n provider: NameProvider,\n ): Promise<NameProviderResult | undefined> {\n const {\n value,\n type,\n sourceIds: requestedSourceIds,\n onlyUpdateAfterDelay,\n variation,\n } = request;\n\n /* istanbul ignore next */\n const variationKey = variation ?? DEFAULT_VARIATION;\n const supportedSourceIds = this.#getSourceIds(provider, type);\n const currentTime = this.#getCurrentTimeSeconds();\n const normalizedValue = this.#normalizeValue(value, type);\n\n const matchingSourceIds = supportedSourceIds.filter((sourceId) => {\n if (requestedSourceIds && !requestedSourceIds.includes(sourceId)) {\n return false;\n }\n\n if (onlyUpdateAfterDelay) {\n const entry =\n this.state.names[type]?.[normalizedValue]?.[variationKey] ?? {};\n const proposedNamesEntry = entry.proposedNames?.[sourceId] ?? {};\n const lastRequestTime = proposedNamesEntry.lastRequestTime ?? 0;\n const updateDelay = proposedNamesEntry.updateDelay ?? this.#updateDelay;\n\n if (currentTime - lastRequestTime < updateDelay) {\n return false;\n }\n }\n\n return true;\n });\n\n if (!matchingSourceIds.length) {\n return undefined;\n }\n\n const providerRequest: NameProviderRequest = {\n value: this.#normalizeValue(value, type),\n type,\n sourceIds: requestedSourceIds ? matchingSourceIds : undefined,\n variation: this.#normalizeVariation(variationKey, type),\n };\n\n let responseError: unknown | undefined;\n let response: NameProviderResult | undefined;\n\n try {\n response = await provider.getProposedNames(providerRequest);\n responseError = response.error;\n } catch (error) {\n responseError = error;\n }\n\n return this.#normalizeProviderResult(\n response,\n responseError,\n matchingSourceIds,\n );\n }\n\n #normalizeProviderResult(\n result: NameProviderResult | undefined,\n responseError: unknown,\n matchingSourceIds: string[],\n ): NameProviderResult {\n const error = responseError ?? undefined;\n\n const results = matchingSourceIds.reduce((acc, sourceId) => {\n const sourceResult = result?.results?.[sourceId];\n\n const normalizedSourceResult = this.#normalizeProviderSourceResult(\n sourceResult,\n responseError,\n );\n\n return {\n ...acc,\n [sourceId]: normalizedSourceResult,\n };\n }, {});\n\n return { results, error };\n }\n\n #normalizeProviderSourceResult(\n result: NameProviderSourceResult | undefined,\n responseError: unknown,\n ): NameProviderSourceResult | undefined {\n const error = result?.error ?? responseError ?? undefined;\n const updateDelay = result?.updateDelay ?? undefined;\n let proposedNames = error\n ? undefined\n : (result?.proposedNames ?? undefined);\n\n if (proposedNames) {\n proposedNames = proposedNames.filter(\n (proposedName) => proposedName?.length,\n );\n }\n\n return {\n proposedNames,\n error,\n updateDelay,\n };\n }\n\n #normalizeValue(value: string, type: NameType): string {\n /* istanbul ignore next */\n switch (type) {\n case NameType.ETHEREUM_ADDRESS:\n return value.toLowerCase();\n\n default:\n return value;\n }\n }\n\n #normalizeVariation(variation: string, type: NameType): string {\n /* istanbul ignore next */\n switch (type) {\n case NameType.ETHEREUM_ADDRESS:\n return variation.toLowerCase();\n\n default:\n return variation;\n }\n }\n\n #updateEntry(\n value: string,\n type: NameType,\n variation: string | undefined,\n callback: (entry: NameEntry) => void,\n ) {\n /* istanbul ignore next */\n const variationKey = variation ?? DEFAULT_VARIATION;\n const normalizedValue = this.#normalizeValue(value, type);\n const normalizedVariation = this.#normalizeVariation(variationKey, type);\n\n if (\n [normalizedValue, normalizedVariation].some(\n (key) => !isSafeDynamicKey(key),\n )\n ) {\n return;\n }\n\n this.update((state) => {\n const typeEntries = state.names[type] || {};\n state.names[type] = typeEntries;\n\n const variationEntries = typeEntries[normalizedValue] || {};\n typeEntries[normalizedValue] = variationEntries;\n\n const entry = variationEntries[normalizedVariation] ?? {\n proposedNames: {},\n name: null,\n sourceId: null,\n origin: null,\n };\n variationEntries[normalizedVariation] = entry;\n\n callback(entry);\n });\n }\n\n #getCurrentTimeSeconds(): number {\n return Math.round(Date.now() / 1000);\n }\n\n #validateSetNameRequest(request: SetNameRequest) {\n const { name, value, type, sourceId, variation, origin } = request;\n const errorMessages: string[] = [];\n\n this.#validateValue(value, errorMessages);\n this.#validateType(type, errorMessages);\n this.#validateName(name, errorMessages);\n this.#validateSourceId(sourceId, type, name, errorMessages);\n this.#validateVariation(variation, type, errorMessages);\n this.#validateOrigin(origin, name, errorMessages);\n\n if (errorMessages.length) {\n throw new Error(errorMessages.join(' '));\n }\n }\n\n #validateUpdateProposedNamesRequest(request: UpdateProposedNamesRequest) {\n const { value, type, sourceIds, variation } = request;\n const errorMessages: string[] = [];\n\n this.#validateValue(value, errorMessages);\n this.#validateType(type, errorMessages);\n this.#validateSourceIds(sourceIds, type, errorMessages);\n this.#validateDuplicateSourceIds(type, errorMessages);\n this.#validateVariation(variation, type, errorMessages);\n\n if (errorMessages.length) {\n throw new Error(errorMessages.join(' '));\n }\n }\n\n #validateValue(value: string, errorMessages: string[]) {\n if (!value?.length || typeof value !== 'string') {\n errorMessages.push('Must specify a non-empty string for value.');\n }\n }\n\n #validateType(type: NameType, errorMessages: string[]) {\n if (!Object.values(NameType).includes(type)) {\n errorMessages.push(\n `Must specify one of the following types: ${Object.values(\n NameType,\n ).join(', ')}`,\n );\n }\n }\n\n #validateName(name: string | null, errorMessages: string[]) {\n if (name === null) {\n return;\n }\n\n if (!name?.length || typeof name !== 'string') {\n errorMessages.push('Must specify a non-empty string or null for name.');\n }\n }\n\n #validateSourceIds(\n sourceIds: string[] | undefined,\n type: NameType,\n errorMessages: string[],\n ) {\n if (!sourceIds) {\n return;\n }\n\n const allSourceIds = this.#getAllSourceIds(type);\n const missingSourceIds = [];\n\n for (const sourceId of sourceIds) {\n if (!allSourceIds.includes(sourceId)) {\n missingSourceIds.push(sourceId);\n continue;\n }\n }\n\n if (missingSourceIds.length) {\n errorMessages.push(\n `Unknown source IDs for type '${type}': ${missingSourceIds.join(', ')}`,\n );\n }\n }\n\n #validateSourceId(\n sourceId: string | undefined,\n type: NameType,\n name: string | null,\n errorMessages: string[],\n ) {\n if (sourceId === null || sourceId === undefined) {\n return;\n }\n\n if (name === null) {\n errorMessages.push(\n `Cannot specify a source ID when clearing the saved name: ${sourceId}`,\n );\n return;\n }\n\n const allSourceIds = this.#getAllSourceIds(type);\n\n if (!sourceId.length || typeof sourceId !== 'string') {\n errorMessages.push('Must specify a non-empty string for sourceId.');\n return;\n }\n\n if (!allSourceIds.includes(sourceId)) {\n errorMessages.push(`Unknown source ID for type '${type}': ${sourceId}`);\n }\n }\n\n #validateDuplicateSourceIds(type: NameType, errorMessages: string[]) {\n const allSourceIds = this.#getAllSourceIds(type);\n\n const duplicateSourceIds = allSourceIds.filter(\n (sourceId, index) => allSourceIds.indexOf(sourceId) !== index,\n );\n\n if (duplicateSourceIds.length) {\n errorMessages.push(\n `Duplicate source IDs found for type '${type}': ${duplicateSourceIds.join(\n ', ',\n )}`,\n );\n }\n }\n\n #validateVariation(\n variation: string | undefined,\n type: string,\n errorMessages: string[],\n ) {\n if (type !== NameType.ETHEREUM_ADDRESS) {\n return;\n }\n\n if (\n !variation?.length ||\n typeof variation !== 'string' ||\n (!variation.match(/^0x[0-9A-Fa-f]+$/u) &&\n variation !== FALLBACK_VARIATION)\n ) {\n errorMessages.push(\n `Must specify a chain ID in hexadecimal format or the fallback, \"${FALLBACK_VARIATION}\", for variation when using '${type}' type.`,\n );\n }\n }\n\n #validateOrigin(\n origin: NameOrigin | null | undefined,\n name: string | null,\n errorMessages: string[],\n ) {\n if (!origin) {\n return;\n }\n\n if (name === null) {\n errorMessages.push(\n `Cannot specify an origin when clearing the saved name: ${origin}`,\n );\n return;\n }\n\n if (!Object.values(NameOrigin).includes(origin)) {\n errorMessages.push(\n `Must specify one of the following origins: ${Object.values(\n NameOrigin,\n ).join(', ')}`,\n );\n }\n }\n\n #getAllSourceIds(type: NameType): string[] {\n return (\n this.#providers\n /* istanbul ignore next */\n .map((provider) => this.#getSourceIds(provider, type))\n .flat()\n );\n }\n\n #getSourceIds(provider: NameProvider, type: NameType): string[] {\n return provider.getMetadata().sourceIds[type];\n }\n\n #removeDormantProposedNames(\n proposedNames: Record<string, ProposedNamesEntry>,\n type: NameType,\n ) {\n if (Object.keys(proposedNames).length === 0) {\n return;\n }\n\n const typeSourceIds = this.#getAllSourceIds(type);\n\n const dormantSourceIds = Object.keys(proposedNames).filter(\n (sourceId) => !typeSourceIds.includes(sourceId),\n );\n\n for (const dormantSourceId of dormantSourceIds) {\n delete proposedNames[dormantSourceId];\n }\n }\n\n #removeExpiredEntries(): void {\n const currentTime = this.#getCurrentTimeSeconds();\n\n this.update((state: NameControllerState) => {\n const entries = this.#getEntriesList(state);\n for (const { nameType, value, variation, entry } of entries) {\n if (entry.name !== null) {\n continue;\n }\n\n const proposedNames = Object.values(entry.proposedNames);\n const allProposedNamesExpired = proposedNames.every(\n (proposedName: ProposedNamesEntry) =>\n currentTime - (proposedName.lastRequestTime ?? 0) >=\n PROPOSED_NAME_EXPIRE_DURATION,\n );\n\n if (allProposedNamesExpired) {\n delete state.names[nameType][value][variation];\n }\n }\n });\n }\n\n #getEntriesList(state: NameControllerState): {\n nameType: NameType;\n value: string;\n variation: string;\n entry: NameEntry;\n }[] {\n return Object.entries(state.names).flatMap(([type, typeEntries]) =>\n Object.entries(typeEntries).flatMap(([value, variationEntries]) =>\n Object.entries(variationEntries).map(([variation, entry]) => ({\n entry,\n nameType: type as NameType,\n value,\n variation,\n })),\n ),\n );\n }\n}\n"]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ // Below constants are intentionally copied from transaction-controller to avoid package dependency
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ETHERSCAN_SUPPORTED_NETWORKS = exports.CHAIN_IDS = void 0;
5
+ exports.CHAIN_IDS = {
6
+ MAINNET: '0x1',
7
+ GOERLI: '0x5',
8
+ BSC: '0x38',
9
+ BSC_TESTNET: '0x61',
10
+ OPTIMISM: '0xa',
11
+ OPTIMISM_SEPOLIA: '0xaa37dc',
12
+ POLYGON: '0x89',
13
+ POLYGON_TESTNET: '0x13881',
14
+ AVALANCHE: '0xa86a',
15
+ AVALANCHE_TESTNET: '0xa869',
16
+ FANTOM: '0xfa',
17
+ FANTOM_TESTNET: '0xfa2',
18
+ SEPOLIA: '0xaa36a7',
19
+ LINEA_GOERLI: '0xe704',
20
+ LINEA_SEPOLIA: '0xe705',
21
+ LINEA_MAINNET: '0xe708',
22
+ MOONBEAM: '0x504',
23
+ MOONBEAM_TESTNET: '0x507',
24
+ MOONRIVER: '0x505',
25
+ GNOSIS: '0x64',
26
+ };
27
+ const DEFAULT_ETHERSCAN_DOMAIN = 'etherscan.io';
28
+ const DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = 'api';
29
+ exports.ETHERSCAN_SUPPORTED_NETWORKS = {
30
+ [exports.CHAIN_IDS.GOERLI]: {
31
+ domain: DEFAULT_ETHERSCAN_DOMAIN,
32
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,
33
+ },
34
+ [exports.CHAIN_IDS.MAINNET]: {
35
+ domain: DEFAULT_ETHERSCAN_DOMAIN,
36
+ subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
37
+ },
38
+ [exports.CHAIN_IDS.SEPOLIA]: {
39
+ domain: DEFAULT_ETHERSCAN_DOMAIN,
40
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,
41
+ },
42
+ [exports.CHAIN_IDS.LINEA_GOERLI]: {
43
+ domain: 'lineascan.build',
44
+ subdomain: 'goerli',
45
+ },
46
+ [exports.CHAIN_IDS.LINEA_SEPOLIA]: {
47
+ domain: 'lineascan.build',
48
+ subdomain: 'sepolia',
49
+ },
50
+ [exports.CHAIN_IDS.LINEA_MAINNET]: {
51
+ domain: 'lineascan.build',
52
+ subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
53
+ },
54
+ [exports.CHAIN_IDS.BSC]: {
55
+ domain: 'bscscan.com',
56
+ subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
57
+ },
58
+ [exports.CHAIN_IDS.BSC_TESTNET]: {
59
+ domain: 'bscscan.com',
60
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,
61
+ },
62
+ [exports.CHAIN_IDS.OPTIMISM]: {
63
+ domain: DEFAULT_ETHERSCAN_DOMAIN,
64
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-optimistic`,
65
+ },
66
+ [exports.CHAIN_IDS.OPTIMISM_SEPOLIA]: {
67
+ domain: DEFAULT_ETHERSCAN_DOMAIN,
68
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia-optimistic`,
69
+ },
70
+ [exports.CHAIN_IDS.POLYGON]: {
71
+ domain: 'polygonscan.com',
72
+ subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
73
+ },
74
+ [exports.CHAIN_IDS.POLYGON_TESTNET]: {
75
+ domain: 'polygonscan.com',
76
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-mumbai`,
77
+ },
78
+ [exports.CHAIN_IDS.AVALANCHE]: {
79
+ domain: 'snowtrace.io',
80
+ subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
81
+ },
82
+ [exports.CHAIN_IDS.AVALANCHE_TESTNET]: {
83
+ domain: 'snowtrace.io',
84
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,
85
+ },
86
+ [exports.CHAIN_IDS.FANTOM]: {
87
+ domain: 'ftmscan.com',
88
+ subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,
89
+ },
90
+ [exports.CHAIN_IDS.FANTOM_TESTNET]: {
91
+ domain: 'ftmscan.com',
92
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,
93
+ },
94
+ [exports.CHAIN_IDS.MOONBEAM]: {
95
+ domain: 'moonscan.io',
96
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbeam`,
97
+ },
98
+ [exports.CHAIN_IDS.MOONBEAM_TESTNET]: {
99
+ domain: 'moonscan.io',
100
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbase`,
101
+ },
102
+ [exports.CHAIN_IDS.MOONRIVER]: {
103
+ domain: 'moonscan.io',
104
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonriver`,
105
+ },
106
+ [exports.CHAIN_IDS.GNOSIS]: {
107
+ domain: 'gnosisscan.io',
108
+ subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,
109
+ },
110
+ };
111
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.cjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Below constants are intentionally copied from transaction-controller to avoid package dependency\n\nexport const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n SEPOLIA: '0xaa36a7',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n LINEA_MAINNET: '0xe708',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n GNOSIS: '0x64',\n} as const;\n\nconst DEFAULT_ETHERSCAN_DOMAIN = 'etherscan.io';\nconst DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = 'api';\n\nexport const ETHERSCAN_SUPPORTED_NETWORKS = {\n [CHAIN_IDS.GOERLI]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,\n },\n [CHAIN_IDS.MAINNET]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,\n },\n [CHAIN_IDS.LINEA_GOERLI]: {\n domain: 'lineascan.build',\n subdomain: 'goerli',\n },\n [CHAIN_IDS.LINEA_SEPOLIA]: {\n domain: 'lineascan.build',\n subdomain: 'sepolia',\n },\n [CHAIN_IDS.LINEA_MAINNET]: {\n domain: 'lineascan.build',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC]: {\n domain: 'bscscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC_TESTNET]: {\n domain: 'bscscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.OPTIMISM]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-optimistic`,\n },\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia-optimistic`,\n },\n [CHAIN_IDS.POLYGON]: {\n domain: 'polygonscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.POLYGON_TESTNET]: {\n domain: 'polygonscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-mumbai`,\n },\n [CHAIN_IDS.AVALANCHE]: {\n domain: 'snowtrace.io',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.AVALANCHE_TESTNET]: {\n domain: 'snowtrace.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.FANTOM]: {\n domain: 'ftmscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.FANTOM_TESTNET]: {\n domain: 'ftmscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.MOONBEAM]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbeam`,\n },\n [CHAIN_IDS.MOONBEAM_TESTNET]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbase`,\n },\n [CHAIN_IDS.MOONRIVER]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonriver`,\n },\n [CHAIN_IDS.GNOSIS]: {\n domain: 'gnosisscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,\n },\n};\n"]}
@@ -1,24 +1,24 @@
1
1
  export declare const CHAIN_IDS: {
2
- readonly MAINNET: '0x1';
3
- readonly GOERLI: '0x5';
4
- readonly BSC: '0x38';
5
- readonly BSC_TESTNET: '0x61';
6
- readonly OPTIMISM: '0xa';
7
- readonly OPTIMISM_SEPOLIA: '0xaa37dc';
8
- readonly POLYGON: '0x89';
9
- readonly POLYGON_TESTNET: '0x13881';
10
- readonly AVALANCHE: '0xa86a';
11
- readonly AVALANCHE_TESTNET: '0xa869';
12
- readonly FANTOM: '0xfa';
13
- readonly FANTOM_TESTNET: '0xfa2';
14
- readonly SEPOLIA: '0xaa36a7';
15
- readonly LINEA_GOERLI: '0xe704';
16
- readonly LINEA_SEPOLIA: '0xe705';
17
- readonly LINEA_MAINNET: '0xe708';
18
- readonly MOONBEAM: '0x504';
19
- readonly MOONBEAM_TESTNET: '0x507';
20
- readonly MOONRIVER: '0x505';
21
- readonly GNOSIS: '0x64';
2
+ readonly MAINNET: "0x1";
3
+ readonly GOERLI: "0x5";
4
+ readonly BSC: "0x38";
5
+ readonly BSC_TESTNET: "0x61";
6
+ readonly OPTIMISM: "0xa";
7
+ readonly OPTIMISM_SEPOLIA: "0xaa37dc";
8
+ readonly POLYGON: "0x89";
9
+ readonly POLYGON_TESTNET: "0x13881";
10
+ readonly AVALANCHE: "0xa86a";
11
+ readonly AVALANCHE_TESTNET: "0xa869";
12
+ readonly FANTOM: "0xfa";
13
+ readonly FANTOM_TESTNET: "0xfa2";
14
+ readonly SEPOLIA: "0xaa36a7";
15
+ readonly LINEA_GOERLI: "0xe704";
16
+ readonly LINEA_SEPOLIA: "0xe705";
17
+ readonly LINEA_MAINNET: "0xe708";
18
+ readonly MOONBEAM: "0x504";
19
+ readonly MOONBEAM_TESTNET: "0x507";
20
+ readonly MOONRIVER: "0x505";
21
+ readonly GNOSIS: "0x64";
22
22
  };
23
23
  export declare const ETHERSCAN_SUPPORTED_NETWORKS: {
24
24
  "0x5": {
@@ -102,4 +102,4 @@ export declare const ETHERSCAN_SUPPORTED_NETWORKS: {
102
102
  subdomain: string;
103
103
  };
104
104
  };
105
- //# sourceMappingURL=constants.d.ts.map
105
+ //# sourceMappingURL=constants.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.cts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAKX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFxC,CAAC"}
@@ -0,0 +1,105 @@
1
+ export declare const CHAIN_IDS: {
2
+ readonly MAINNET: "0x1";
3
+ readonly GOERLI: "0x5";
4
+ readonly BSC: "0x38";
5
+ readonly BSC_TESTNET: "0x61";
6
+ readonly OPTIMISM: "0xa";
7
+ readonly OPTIMISM_SEPOLIA: "0xaa37dc";
8
+ readonly POLYGON: "0x89";
9
+ readonly POLYGON_TESTNET: "0x13881";
10
+ readonly AVALANCHE: "0xa86a";
11
+ readonly AVALANCHE_TESTNET: "0xa869";
12
+ readonly FANTOM: "0xfa";
13
+ readonly FANTOM_TESTNET: "0xfa2";
14
+ readonly SEPOLIA: "0xaa36a7";
15
+ readonly LINEA_GOERLI: "0xe704";
16
+ readonly LINEA_SEPOLIA: "0xe705";
17
+ readonly LINEA_MAINNET: "0xe708";
18
+ readonly MOONBEAM: "0x504";
19
+ readonly MOONBEAM_TESTNET: "0x507";
20
+ readonly MOONRIVER: "0x505";
21
+ readonly GNOSIS: "0x64";
22
+ };
23
+ export declare const ETHERSCAN_SUPPORTED_NETWORKS: {
24
+ "0x5": {
25
+ domain: string;
26
+ subdomain: string;
27
+ };
28
+ "0x1": {
29
+ domain: string;
30
+ subdomain: string;
31
+ };
32
+ "0xaa36a7": {
33
+ domain: string;
34
+ subdomain: string;
35
+ };
36
+ "0xe704": {
37
+ domain: string;
38
+ subdomain: string;
39
+ };
40
+ "0xe705": {
41
+ domain: string;
42
+ subdomain: string;
43
+ };
44
+ "0xe708": {
45
+ domain: string;
46
+ subdomain: string;
47
+ };
48
+ "0x38": {
49
+ domain: string;
50
+ subdomain: string;
51
+ };
52
+ "0x61": {
53
+ domain: string;
54
+ subdomain: string;
55
+ };
56
+ "0xa": {
57
+ domain: string;
58
+ subdomain: string;
59
+ };
60
+ "0xaa37dc": {
61
+ domain: string;
62
+ subdomain: string;
63
+ };
64
+ "0x89": {
65
+ domain: string;
66
+ subdomain: string;
67
+ };
68
+ "0x13881": {
69
+ domain: string;
70
+ subdomain: string;
71
+ };
72
+ "0xa86a": {
73
+ domain: string;
74
+ subdomain: string;
75
+ };
76
+ "0xa869": {
77
+ domain: string;
78
+ subdomain: string;
79
+ };
80
+ "0xfa": {
81
+ domain: string;
82
+ subdomain: string;
83
+ };
84
+ "0xfa2": {
85
+ domain: string;
86
+ subdomain: string;
87
+ };
88
+ "0x504": {
89
+ domain: string;
90
+ subdomain: string;
91
+ };
92
+ "0x507": {
93
+ domain: string;
94
+ subdomain: string;
95
+ };
96
+ "0x505": {
97
+ domain: string;
98
+ subdomain: string;
99
+ };
100
+ "0x64": {
101
+ domain: string;
102
+ subdomain: string;
103
+ };
104
+ };
105
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;CAqBZ,CAAC;AAKX,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFxC,CAAC"}
@@ -105,4 +105,4 @@ export const ETHERSCAN_SUPPORTED_NETWORKS = {
105
105
  subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,
106
106
  },
107
107
  };
108
- //# sourceMappingURL=constants.js.map
108
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["// Below constants are intentionally copied from transaction-controller to avoid package dependency\n\nexport const CHAIN_IDS = {\n MAINNET: '0x1',\n GOERLI: '0x5',\n BSC: '0x38',\n BSC_TESTNET: '0x61',\n OPTIMISM: '0xa',\n OPTIMISM_SEPOLIA: '0xaa37dc',\n POLYGON: '0x89',\n POLYGON_TESTNET: '0x13881',\n AVALANCHE: '0xa86a',\n AVALANCHE_TESTNET: '0xa869',\n FANTOM: '0xfa',\n FANTOM_TESTNET: '0xfa2',\n SEPOLIA: '0xaa36a7',\n LINEA_GOERLI: '0xe704',\n LINEA_SEPOLIA: '0xe705',\n LINEA_MAINNET: '0xe708',\n MOONBEAM: '0x504',\n MOONBEAM_TESTNET: '0x507',\n MOONRIVER: '0x505',\n GNOSIS: '0x64',\n} as const;\n\nconst DEFAULT_ETHERSCAN_DOMAIN = 'etherscan.io';\nconst DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX = 'api';\n\nexport const ETHERSCAN_SUPPORTED_NETWORKS = {\n [CHAIN_IDS.GOERLI]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-goerli`,\n },\n [CHAIN_IDS.MAINNET]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia`,\n },\n [CHAIN_IDS.LINEA_GOERLI]: {\n domain: 'lineascan.build',\n subdomain: 'goerli',\n },\n [CHAIN_IDS.LINEA_SEPOLIA]: {\n domain: 'lineascan.build',\n subdomain: 'sepolia',\n },\n [CHAIN_IDS.LINEA_MAINNET]: {\n domain: 'lineascan.build',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC]: {\n domain: 'bscscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.BSC_TESTNET]: {\n domain: 'bscscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.OPTIMISM]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-optimistic`,\n },\n [CHAIN_IDS.OPTIMISM_SEPOLIA]: {\n domain: DEFAULT_ETHERSCAN_DOMAIN,\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-sepolia-optimistic`,\n },\n [CHAIN_IDS.POLYGON]: {\n domain: 'polygonscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.POLYGON_TESTNET]: {\n domain: 'polygonscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-mumbai`,\n },\n [CHAIN_IDS.AVALANCHE]: {\n domain: 'snowtrace.io',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.AVALANCHE_TESTNET]: {\n domain: 'snowtrace.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.FANTOM]: {\n domain: 'ftmscan.com',\n subdomain: DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX,\n },\n [CHAIN_IDS.FANTOM_TESTNET]: {\n domain: 'ftmscan.com',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-testnet`,\n },\n [CHAIN_IDS.MOONBEAM]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbeam`,\n },\n [CHAIN_IDS.MOONBEAM_TESTNET]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonbase`,\n },\n [CHAIN_IDS.MOONRIVER]: {\n domain: 'moonscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-moonriver`,\n },\n [CHAIN_IDS.GNOSIS]: {\n domain: 'gnosisscan.io',\n subdomain: `${DEFAULT_ETHERSCAN_SUBDOMAIN_PREFIX}-gnosis`,\n },\n};\n"]}
package/dist/index.cjs ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./NameController.cjs"), exports);
18
+ __exportStar(require("./types.cjs"), exports);
19
+ __exportStar(require("./providers/ens.cjs"), exports);
20
+ __exportStar(require("./providers/etherscan.cjs"), exports);
21
+ __exportStar(require("./providers/token.cjs"), exports);
22
+ __exportStar(require("./providers/lens.cjs"), exports);
23
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AAKpC,8CAA2B;AAC3B,sDAAmC;AACnC,4DAAyC;AACzC,wDAAqC;AACrC,uDAAoC","sourcesContent":["export * from './NameController.js';\nexport type {\n NameControllerSetNameAction,\n NameControllerUpdateProposedNamesAction,\n} from './NameController-method-action-types.js';\nexport * from './types.js';\nexport * from './providers/ens.js';\nexport * from './providers/etherscan.js';\nexport * from './providers/token.js';\nexport * from './providers/lens.js';\n"]}
@@ -0,0 +1,8 @@
1
+ export * from "./NameController.cjs";
2
+ export type { NameControllerSetNameAction, NameControllerUpdateProposedNamesAction, } from "./NameController-method-action-types.cjs";
3
+ export * from "./types.cjs";
4
+ export * from "./providers/ens.cjs";
5
+ export * from "./providers/etherscan.cjs";
6
+ export * from "./providers/token.cjs";
7
+ export * from "./providers/lens.cjs";
8
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAoC;AACpC,YAAY,EACV,2BAA2B,EAC3B,uCAAuC,GACxC,iDAAgD;AACjD,4BAA2B;AAC3B,oCAAmC;AACnC,0CAAyC;AACzC,sCAAqC;AACrC,qCAAoC"}
@@ -0,0 +1,8 @@
1
+ export * from "./NameController.mjs";
2
+ export type { NameControllerSetNameAction, NameControllerUpdateProposedNamesAction, } from "./NameController-method-action-types.mjs";
3
+ export * from "./types.mjs";
4
+ export * from "./providers/ens.mjs";
5
+ export * from "./providers/etherscan.mjs";
6
+ export * from "./providers/token.mjs";
7
+ export * from "./providers/lens.mjs";
8
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAoC;AACpC,YAAY,EACV,2BAA2B,EAC3B,uCAAuC,GACxC,iDAAgD;AACjD,4BAA2B;AAC3B,oCAAmC;AACnC,0CAAyC;AACzC,sCAAqC;AACrC,qCAAoC"}
package/dist/index.mjs ADDED
@@ -0,0 +1,7 @@
1
+ export * from "./NameController.mjs";
2
+ export * from "./types.mjs";
3
+ export * from "./providers/ens.mjs";
4
+ export * from "./providers/etherscan.mjs";
5
+ export * from "./providers/token.mjs";
6
+ export * from "./providers/lens.mjs";
7
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAoC;AAKpC,4BAA2B;AAC3B,oCAAmC;AACnC,0CAAyC;AACzC,sCAAqC;AACrC,qCAAoC","sourcesContent":["export * from './NameController.js';\nexport type {\n NameControllerSetNameAction,\n NameControllerUpdateProposedNamesAction,\n} from './NameController-method-action-types.js';\nexport * from './types.js';\nexport * from './providers/ens.js';\nexport * from './providers/etherscan.js';\nexport * from './providers/token.js';\nexport * from './providers/lens.js';\n"]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createModuleLogger = exports.projectLogger = void 0;
4
+ const utils_1 = require("@metamask/utils");
5
+ Object.defineProperty(exports, "createModuleLogger", { enumerable: true, get: function () { return utils_1.createModuleLogger; } });
6
+ exports.projectLogger = (0, utils_1.createProjectLogger)('name-controller');
7
+ //# sourceMappingURL=logger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.cjs","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";;;AAAA,2CAA0E;AAIjE,mGAJqB,0BAAkB,OAIrB;AAFd,QAAA,aAAa,GAAG,IAAA,2BAAmB,EAAC,iBAAiB,CAAC,CAAC","sourcesContent":["import { createProjectLogger, createModuleLogger } from '@metamask/utils';\n\nexport const projectLogger = createProjectLogger('name-controller');\n\nexport { createModuleLogger };\n"]}
@@ -0,0 +1,5 @@
1
+ /// <reference types="debug" />
2
+ import { createModuleLogger } from "@metamask/utils";
3
+ export declare const projectLogger: import("debug").Debugger;
4
+ export { createModuleLogger };
5
+ //# sourceMappingURL=logger.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.cts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,kBAAkB,EAAE,wBAAwB;AAE1E,eAAO,MAAM,aAAa,0BAAyC,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="debug" />
2
+ import { createModuleLogger } from "@metamask/utils";
3
+ export declare const projectLogger: import("debug").Debugger;
4
+ export { createModuleLogger };
5
+ //# sourceMappingURL=logger.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.mts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA,OAAO,EAAuB,kBAAkB,EAAE,wBAAwB;AAE1E,eAAO,MAAM,aAAa,0BAAyC,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,CAAC"}