@metamask/snaps-rpc-methods 11.13.1 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/dist/endowments/index.cjs +1 -0
  3. package/dist/endowments/index.cjs.map +1 -1
  4. package/dist/endowments/index.d.cts.map +1 -1
  5. package/dist/endowments/index.d.mts.map +1 -1
  6. package/dist/endowments/index.mjs +1 -0
  7. package/dist/endowments/index.mjs.map +1 -1
  8. package/dist/permitted/createInterface.d.cts +44 -44
  9. package/dist/permitted/createInterface.d.mts +44 -44
  10. package/dist/permitted/experimentalProviderRequest.d.cts +3 -3
  11. package/dist/permitted/experimentalProviderRequest.d.mts +3 -3
  12. package/dist/permitted/getFile.d.cts +2 -2
  13. package/dist/permitted/getFile.d.mts +2 -2
  14. package/dist/permitted/getState.d.cts +1 -1
  15. package/dist/permitted/getState.d.mts +1 -1
  16. package/dist/permitted/handlers.d.cts +16 -0
  17. package/dist/permitted/handlers.d.cts.map +1 -1
  18. package/dist/permitted/handlers.d.mts +16 -0
  19. package/dist/permitted/handlers.d.mts.map +1 -1
  20. package/dist/permitted/scheduleBackgroundEvent.cjs +2 -19
  21. package/dist/permitted/scheduleBackgroundEvent.cjs.map +1 -1
  22. package/dist/permitted/scheduleBackgroundEvent.d.cts +4 -4
  23. package/dist/permitted/scheduleBackgroundEvent.d.cts.map +1 -1
  24. package/dist/permitted/scheduleBackgroundEvent.d.mts +4 -4
  25. package/dist/permitted/scheduleBackgroundEvent.d.mts.map +1 -1
  26. package/dist/permitted/scheduleBackgroundEvent.mjs +4 -21
  27. package/dist/permitted/scheduleBackgroundEvent.mjs.map +1 -1
  28. package/dist/permitted/setState.d.cts +1 -1
  29. package/dist/permitted/setState.d.mts +1 -1
  30. package/dist/permitted/updateInterface.d.cts +44 -44
  31. package/dist/permitted/updateInterface.d.mts +44 -44
  32. package/dist/restricted/dialog.d.cts +91 -147
  33. package/dist/restricted/dialog.d.cts.map +1 -1
  34. package/dist/restricted/dialog.d.mts +91 -147
  35. package/dist/restricted/dialog.d.mts.map +1 -1
  36. package/dist/restricted/getBip32Entropy.cjs +16 -3
  37. package/dist/restricted/getBip32Entropy.cjs.map +1 -1
  38. package/dist/restricted/getBip32Entropy.d.cts +11 -1
  39. package/dist/restricted/getBip32Entropy.d.cts.map +1 -1
  40. package/dist/restricted/getBip32Entropy.d.mts +11 -1
  41. package/dist/restricted/getBip32Entropy.d.mts.map +1 -1
  42. package/dist/restricted/getBip32Entropy.mjs +17 -4
  43. package/dist/restricted/getBip32Entropy.mjs.map +1 -1
  44. package/dist/restricted/getBip32PublicKey.cjs +19 -3
  45. package/dist/restricted/getBip32PublicKey.cjs.map +1 -1
  46. package/dist/restricted/getBip32PublicKey.d.cts +13 -3
  47. package/dist/restricted/getBip32PublicKey.d.cts.map +1 -1
  48. package/dist/restricted/getBip32PublicKey.d.mts +13 -3
  49. package/dist/restricted/getBip32PublicKey.d.mts.map +1 -1
  50. package/dist/restricted/getBip32PublicKey.mjs +20 -4
  51. package/dist/restricted/getBip32PublicKey.mjs.map +1 -1
  52. package/dist/restricted/getBip44Entropy.cjs +8 -5
  53. package/dist/restricted/getBip44Entropy.cjs.map +1 -1
  54. package/dist/restricted/getBip44Entropy.d.cts +6 -6
  55. package/dist/restricted/getBip44Entropy.d.cts.map +1 -1
  56. package/dist/restricted/getBip44Entropy.d.mts +6 -6
  57. package/dist/restricted/getBip44Entropy.d.mts.map +1 -1
  58. package/dist/restricted/getBip44Entropy.mjs +9 -6
  59. package/dist/restricted/getBip44Entropy.mjs.map +1 -1
  60. package/dist/restricted/getEntropy.cjs +7 -7
  61. package/dist/restricted/getEntropy.cjs.map +1 -1
  62. package/dist/restricted/getEntropy.d.cts +8 -8
  63. package/dist/restricted/getEntropy.d.cts.map +1 -1
  64. package/dist/restricted/getEntropy.d.mts +8 -8
  65. package/dist/restricted/getEntropy.d.mts.map +1 -1
  66. package/dist/restricted/getEntropy.mjs +8 -8
  67. package/dist/restricted/getEntropy.mjs.map +1 -1
  68. package/dist/restricted/manageAccounts.d.cts +1 -1
  69. package/dist/restricted/manageAccounts.d.mts +1 -1
  70. package/dist/restricted/manageState.cjs +4 -4
  71. package/dist/restricted/manageState.cjs.map +1 -1
  72. package/dist/restricted/manageState.d.cts +3 -3
  73. package/dist/restricted/manageState.d.cts.map +1 -1
  74. package/dist/restricted/manageState.d.mts +3 -3
  75. package/dist/restricted/manageState.d.mts.map +1 -1
  76. package/dist/restricted/manageState.mjs +5 -5
  77. package/dist/restricted/manageState.mjs.map +1 -1
  78. package/dist/restricted/notify.d.cts +74 -74
  79. package/dist/restricted/notify.d.mts +74 -74
  80. package/dist/utils.cjs +68 -23
  81. package/dist/utils.cjs.map +1 -1
  82. package/dist/utils.d.cts +40 -16
  83. package/dist/utils.d.cts.map +1 -1
  84. package/dist/utils.d.mts +40 -16
  85. package/dist/utils.d.mts.map +1 -1
  86. package/dist/utils.mjs +63 -19
  87. package/dist/utils.mjs.map +1 -1
  88. package/package.json +7 -7
@@ -71,90 +71,76 @@ export declare const dialogBuilder: Readonly<{
71
71
  readonly methodHooks: MethodHooksObject<DialogMethodHooks>;
72
72
  }>;
73
73
  declare const DialogParametersStruct: import("@metamask/superstruct").Struct<{
74
- type: "alert";
75
74
  id: string;
75
+ type: "alert";
76
76
  } | {
77
77
  type: "alert";
78
- content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
79
- type: import("@metamask/snaps-sdk").NodeType.Copyable;
78
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
80
79
  value: string;
80
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
81
81
  sensitive?: boolean | undefined;
82
82
  } | {
83
83
  type: import("@metamask/snaps-sdk").NodeType.Divider;
84
84
  } | {
85
- type: import("@metamask/snaps-sdk").NodeType.Heading;
86
85
  value: string;
86
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
87
87
  } | {
88
- type: import("@metamask/snaps-sdk").NodeType.Image;
89
88
  value: string;
89
+ type: import("@metamask/snaps-sdk").NodeType.Image;
90
90
  } | {
91
91
  type: import("@metamask/snaps-sdk").NodeType.Spinner;
92
92
  } | {
93
- type: import("@metamask/snaps-sdk").NodeType.Text;
94
93
  value: string;
94
+ type: import("@metamask/snaps-sdk").NodeType.Text;
95
95
  markdown?: boolean | undefined;
96
96
  } | {
97
- type: import("@metamask/snaps-sdk").NodeType.Address;
98
97
  value: `0x${string}`;
98
+ type: import("@metamask/snaps-sdk").NodeType.Address;
99
99
  } | {
100
- type: import("@metamask/snaps-sdk").NodeType.Row;
101
100
  value: {
102
- type: import("@metamask/snaps-sdk").NodeType.Image;
103
101
  value: string;
102
+ type: import("@metamask/snaps-sdk").NodeType.Image;
104
103
  } | {
105
- type: import("@metamask/snaps-sdk").NodeType.Text;
106
104
  value: string;
105
+ type: import("@metamask/snaps-sdk").NodeType.Text;
107
106
  markdown?: boolean | undefined;
108
107
  } | {
109
- type: import("@metamask/snaps-sdk").NodeType.Address;
110
108
  value: `0x${string}`;
109
+ type: import("@metamask/snaps-sdk").NodeType.Address;
111
110
  };
111
+ type: import("@metamask/snaps-sdk").NodeType.Row;
112
112
  label: string;
113
- variant?: "default" | "warning" | "critical" | undefined;
113
+ variant?: "default" | "critical" | "warning" | undefined;
114
114
  } | {
115
- type: import("@metamask/snaps-sdk").NodeType.Input;
116
115
  name: string;
117
- error?: string | undefined;
118
- inputType?: "number" | "text" | "password" | undefined;
116
+ type: import("@metamask/snaps-sdk").NodeType.Input;
119
117
  value?: string | undefined;
120
118
  label?: string | undefined;
119
+ inputType?: "number" | "text" | "password" | undefined;
121
120
  placeholder?: string | undefined;
121
+ error?: string | undefined;
122
122
  } | {
123
- type: import("@metamask/snaps-sdk").NodeType.Button;
124
123
  value: string;
125
- variant?: "primary" | "secondary" | undefined;
124
+ type: import("@metamask/snaps-sdk").NodeType.Button;
126
125
  name?: string | undefined;
126
+ variant?: "primary" | "secondary" | undefined;
127
127
  buttonType?: "button" | "submit" | undefined;
128
128
  } | {
129
- type: import("@metamask/snaps-sdk").NodeType.Form;
130
129
  name: string;
130
+ type: import("@metamask/snaps-sdk").NodeType.Form;
131
131
  children: ({
132
- type: import("@metamask/snaps-sdk").NodeType.Input;
133
132
  name: string;
134
- /**
135
- * The specification builder for the `snap_dialog` permission. `snap_dialog`
136
- * lets the Snap display one of the following dialogs to the user:
137
- * - An alert, for displaying information.
138
- * - A confirmation, for accepting or rejecting some action.
139
- * - A prompt, for inputting some information.
140
- *
141
- * @param options - The specification builder options.
142
- * @param options.allowedCaveats - The optional allowed caveats for the
143
- * permission.
144
- * @param options.methodHooks - The RPC method hooks needed by the method
145
- * implementation.
146
- * @returns The specification for the `snap_dialog` permission.
147
- */
148
- error?: string | undefined;
149
- inputType?: "number" | "text" | "password" | undefined;
133
+ type: import("@metamask/snaps-sdk").NodeType.Input;
150
134
  value?: string | undefined;
151
135
  label?: string | undefined;
136
+ inputType?: "number" | "text" | "password" | undefined;
152
137
  placeholder?: string | undefined;
138
+ error?: string | undefined;
153
139
  } | {
154
- type: import("@metamask/snaps-sdk").NodeType.Button;
155
140
  value: string;
156
- variant?: "primary" | "secondary" | undefined;
141
+ type: import("@metamask/snaps-sdk").NodeType.Button;
157
142
  name?: string | undefined;
143
+ variant?: "primary" | "secondary" | undefined;
158
144
  buttonType?: "button" | "submit" | undefined;
159
145
  })[];
160
146
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -175,90 +161,76 @@ declare const DialogParametersStruct: import("@metamask/superstruct").Struct<{
175
161
  size?: "sm" | "md" | "lg" | undefined;
176
162
  }, "Heading">;
177
163
  } | {
178
- type: "confirmation";
179
164
  id: string;
165
+ type: "confirmation";
180
166
  } | {
181
167
  type: "confirmation";
182
- content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
183
- type: import("@metamask/snaps-sdk").NodeType.Copyable;
168
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
184
169
  value: string;
170
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
185
171
  sensitive?: boolean | undefined;
186
172
  } | {
187
173
  type: import("@metamask/snaps-sdk").NodeType.Divider;
188
174
  } | {
189
- type: import("@metamask/snaps-sdk").NodeType.Heading;
190
175
  value: string;
176
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
191
177
  } | {
192
- type: import("@metamask/snaps-sdk").NodeType.Image;
193
178
  value: string;
179
+ type: import("@metamask/snaps-sdk").NodeType.Image;
194
180
  } | {
195
181
  type: import("@metamask/snaps-sdk").NodeType.Spinner;
196
182
  } | {
197
- type: import("@metamask/snaps-sdk").NodeType.Text;
198
183
  value: string;
184
+ type: import("@metamask/snaps-sdk").NodeType.Text;
199
185
  markdown?: boolean | undefined;
200
186
  } | {
201
- type: import("@metamask/snaps-sdk").NodeType.Address;
202
187
  value: `0x${string}`;
188
+ type: import("@metamask/snaps-sdk").NodeType.Address;
203
189
  } | {
204
- type: import("@metamask/snaps-sdk").NodeType.Row;
205
190
  value: {
206
- type: import("@metamask/snaps-sdk").NodeType.Image;
207
191
  value: string;
192
+ type: import("@metamask/snaps-sdk").NodeType.Image;
208
193
  } | {
209
- type: import("@metamask/snaps-sdk").NodeType.Text;
210
194
  value: string;
195
+ type: import("@metamask/snaps-sdk").NodeType.Text;
211
196
  markdown?: boolean | undefined;
212
197
  } | {
213
- type: import("@metamask/snaps-sdk").NodeType.Address;
214
198
  value: `0x${string}`;
199
+ type: import("@metamask/snaps-sdk").NodeType.Address;
215
200
  };
201
+ type: import("@metamask/snaps-sdk").NodeType.Row;
216
202
  label: string;
217
- variant?: "default" | "warning" | "critical" | undefined;
203
+ variant?: "default" | "critical" | "warning" | undefined;
218
204
  } | {
219
- type: import("@metamask/snaps-sdk").NodeType.Input;
220
205
  name: string;
221
- error?: string | undefined;
222
- inputType?: "number" | "text" | "password" | undefined;
206
+ type: import("@metamask/snaps-sdk").NodeType.Input;
223
207
  value?: string | undefined;
224
208
  label?: string | undefined;
209
+ inputType?: "number" | "text" | "password" | undefined;
225
210
  placeholder?: string | undefined;
211
+ error?: string | undefined;
226
212
  } | {
227
- type: import("@metamask/snaps-sdk").NodeType.Button;
228
213
  value: string;
229
- variant?: "primary" | "secondary" | undefined;
214
+ type: import("@metamask/snaps-sdk").NodeType.Button;
230
215
  name?: string | undefined;
216
+ variant?: "primary" | "secondary" | undefined;
231
217
  buttonType?: "button" | "submit" | undefined;
232
218
  } | {
233
- type: import("@metamask/snaps-sdk").NodeType.Form;
234
219
  name: string;
220
+ type: import("@metamask/snaps-sdk").NodeType.Form;
235
221
  children: ({
236
- type: import("@metamask/snaps-sdk").NodeType.Input;
237
222
  name: string;
238
- /**
239
- * The specification builder for the `snap_dialog` permission. `snap_dialog`
240
- * lets the Snap display one of the following dialogs to the user:
241
- * - An alert, for displaying information.
242
- * - A confirmation, for accepting or rejecting some action.
243
- * - A prompt, for inputting some information.
244
- *
245
- * @param options - The specification builder options.
246
- * @param options.allowedCaveats - The optional allowed caveats for the
247
- * permission.
248
- * @param options.methodHooks - The RPC method hooks needed by the method
249
- * implementation.
250
- * @returns The specification for the `snap_dialog` permission.
251
- */
252
- error?: string | undefined;
253
- inputType?: "number" | "text" | "password" | undefined;
223
+ type: import("@metamask/snaps-sdk").NodeType.Input;
254
224
  value?: string | undefined;
255
225
  label?: string | undefined;
226
+ inputType?: "number" | "text" | "password" | undefined;
256
227
  placeholder?: string | undefined;
228
+ error?: string | undefined;
257
229
  } | {
258
- type: import("@metamask/snaps-sdk").NodeType.Button;
259
230
  value: string;
260
- variant?: "primary" | "secondary" | undefined;
231
+ type: import("@metamask/snaps-sdk").NodeType.Button;
261
232
  name?: string | undefined;
233
+ variant?: "primary" | "secondary" | undefined;
262
234
  buttonType?: "button" | "submit" | undefined;
263
235
  })[];
264
236
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -279,91 +251,77 @@ declare const DialogParametersStruct: import("@metamask/superstruct").Struct<{
279
251
  size?: "sm" | "md" | "lg" | undefined;
280
252
  }, "Heading">;
281
253
  } | {
282
- type: "prompt";
283
254
  id: string;
255
+ type: "prompt";
284
256
  placeholder?: string | undefined;
285
257
  } | {
286
258
  type: "prompt";
287
- content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
288
- type: import("@metamask/snaps-sdk").NodeType.Copyable;
259
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
289
260
  value: string;
261
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
290
262
  sensitive?: boolean | undefined;
291
263
  } | {
292
264
  type: import("@metamask/snaps-sdk").NodeType.Divider;
293
265
  } | {
294
- type: import("@metamask/snaps-sdk").NodeType.Heading;
295
266
  value: string;
267
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
296
268
  } | {
297
- type: import("@metamask/snaps-sdk").NodeType.Image;
298
269
  value: string;
270
+ type: import("@metamask/snaps-sdk").NodeType.Image;
299
271
  } | {
300
272
  type: import("@metamask/snaps-sdk").NodeType.Spinner;
301
273
  } | {
302
- type: import("@metamask/snaps-sdk").NodeType.Text;
303
274
  value: string;
275
+ type: import("@metamask/snaps-sdk").NodeType.Text;
304
276
  markdown?: boolean | undefined;
305
277
  } | {
306
- type: import("@metamask/snaps-sdk").NodeType.Address;
307
278
  value: `0x${string}`;
279
+ type: import("@metamask/snaps-sdk").NodeType.Address;
308
280
  } | {
309
- type: import("@metamask/snaps-sdk").NodeType.Row;
310
281
  value: {
311
- type: import("@metamask/snaps-sdk").NodeType.Image;
312
282
  value: string;
283
+ type: import("@metamask/snaps-sdk").NodeType.Image;
313
284
  } | {
314
- type: import("@metamask/snaps-sdk").NodeType.Text;
315
285
  value: string;
286
+ type: import("@metamask/snaps-sdk").NodeType.Text;
316
287
  markdown?: boolean | undefined;
317
288
  } | {
318
- type: import("@metamask/snaps-sdk").NodeType.Address;
319
289
  value: `0x${string}`;
290
+ type: import("@metamask/snaps-sdk").NodeType.Address;
320
291
  };
292
+ type: import("@metamask/snaps-sdk").NodeType.Row;
321
293
  label: string;
322
- variant?: "default" | "warning" | "critical" | undefined;
294
+ variant?: "default" | "critical" | "warning" | undefined;
323
295
  } | {
324
- type: import("@metamask/snaps-sdk").NodeType.Input;
325
296
  name: string;
326
- error?: string | undefined;
327
- inputType?: "number" | "text" | "password" | undefined;
297
+ type: import("@metamask/snaps-sdk").NodeType.Input;
328
298
  value?: string | undefined;
329
299
  label?: string | undefined;
300
+ inputType?: "number" | "text" | "password" | undefined;
330
301
  placeholder?: string | undefined;
302
+ error?: string | undefined;
331
303
  } | {
332
- type: import("@metamask/snaps-sdk").NodeType.Button;
333
304
  value: string;
334
- variant?: "primary" | "secondary" | undefined;
305
+ type: import("@metamask/snaps-sdk").NodeType.Button;
335
306
  name?: string | undefined;
307
+ variant?: "primary" | "secondary" | undefined;
336
308
  buttonType?: "button" | "submit" | undefined;
337
309
  } | {
338
- type: import("@metamask/snaps-sdk").NodeType.Form;
339
310
  name: string;
311
+ type: import("@metamask/snaps-sdk").NodeType.Form;
340
312
  children: ({
341
- type: import("@metamask/snaps-sdk").NodeType.Input;
342
313
  name: string;
343
- /**
344
- * The specification builder for the `snap_dialog` permission. `snap_dialog`
345
- * lets the Snap display one of the following dialogs to the user:
346
- * - An alert, for displaying information.
347
- * - A confirmation, for accepting or rejecting some action.
348
- * - A prompt, for inputting some information.
349
- *
350
- * @param options - The specification builder options.
351
- * @param options.allowedCaveats - The optional allowed caveats for the
352
- * permission.
353
- * @param options.methodHooks - The RPC method hooks needed by the method
354
- * implementation.
355
- * @returns The specification for the `snap_dialog` permission.
356
- */
357
- error?: string | undefined;
358
- inputType?: "number" | "text" | "password" | undefined;
314
+ type: import("@metamask/snaps-sdk").NodeType.Input;
359
315
  value?: string | undefined;
360
316
  label?: string | undefined;
317
+ inputType?: "number" | "text" | "password" | undefined;
361
318
  placeholder?: string | undefined;
319
+ error?: string | undefined;
362
320
  } | {
363
- type: import("@metamask/snaps-sdk").NodeType.Button;
364
321
  value: string;
365
- variant?: "primary" | "secondary" | undefined;
322
+ type: import("@metamask/snaps-sdk").NodeType.Button;
366
323
  name?: string | undefined;
324
+ variant?: "primary" | "secondary" | undefined;
367
325
  buttonType?: "button" | "submit" | undefined;
368
326
  })[];
369
327
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -387,86 +345,72 @@ declare const DialogParametersStruct: import("@metamask/superstruct").Struct<{
387
345
  } | {
388
346
  id: string;
389
347
  } | {
390
- content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
391
- type: import("@metamask/snaps-sdk").NodeType.Copyable;
348
+ content: import("@metamask/snaps-sdk").Panel | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AssetSelectorProps, "AssetSelector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressInputProps, "AddressInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ButtonProps, "Button"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CheckboxProps, "Checkbox"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FormProps, "Form"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FieldProps, "Field"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").FileInputProps, "FileInput"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").InputProps, "Input"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").DropdownProps, "Dropdown"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SelectorProps, "Selector"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoldProps, "Bold"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ItalicProps, "Italic"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AvatarProps, "Avatar"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").AddressProps, "Address"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BoxProps, "Box"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CardProps, "Card"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").ContainerProps, "Container"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").CopyableProps, "Copyable"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Divider"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").IconProps, "Icon"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").LinkProps, "Link"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").RowProps, "Row"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SectionProps, "Section"> | import("@metamask/snaps-sdk/jsx").SnapElement<Record<string, never>, "Spinner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TextProps, "Text"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").TooltipProps, "Tooltip"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").BannerProps, "Banner"> | import("@metamask/snaps-sdk/jsx").SnapElement<import("@metamask/snaps-sdk/jsx").SkeletonProps, "Skeleton"> | {
392
349
  value: string;
350
+ type: import("@metamask/snaps-sdk").NodeType.Copyable;
393
351
  sensitive?: boolean | undefined;
394
352
  } | {
395
353
  type: import("@metamask/snaps-sdk").NodeType.Divider;
396
354
  } | {
397
- type: import("@metamask/snaps-sdk").NodeType.Heading;
398
355
  value: string;
356
+ type: import("@metamask/snaps-sdk").NodeType.Heading;
399
357
  } | {
400
- type: import("@metamask/snaps-sdk").NodeType.Image;
401
358
  value: string;
359
+ type: import("@metamask/snaps-sdk").NodeType.Image;
402
360
  } | {
403
361
  type: import("@metamask/snaps-sdk").NodeType.Spinner;
404
362
  } | {
405
- type: import("@metamask/snaps-sdk").NodeType.Text;
406
363
  value: string;
364
+ type: import("@metamask/snaps-sdk").NodeType.Text;
407
365
  markdown?: boolean | undefined;
408
366
  } | {
409
- type: import("@metamask/snaps-sdk").NodeType.Address;
410
367
  value: `0x${string}`;
368
+ type: import("@metamask/snaps-sdk").NodeType.Address;
411
369
  } | {
412
- type: import("@metamask/snaps-sdk").NodeType.Row;
413
370
  value: {
414
- type: import("@metamask/snaps-sdk").NodeType.Image;
415
371
  value: string;
372
+ type: import("@metamask/snaps-sdk").NodeType.Image;
416
373
  } | {
417
- type: import("@metamask/snaps-sdk").NodeType.Text;
418
374
  value: string;
375
+ type: import("@metamask/snaps-sdk").NodeType.Text;
419
376
  markdown?: boolean | undefined;
420
377
  } | {
421
- type: import("@metamask/snaps-sdk").NodeType.Address;
422
378
  value: `0x${string}`;
379
+ type: import("@metamask/snaps-sdk").NodeType.Address;
423
380
  };
381
+ type: import("@metamask/snaps-sdk").NodeType.Row;
424
382
  label: string;
425
- variant?: "default" | "warning" | "critical" | undefined;
383
+ variant?: "default" | "critical" | "warning" | undefined;
426
384
  } | {
427
- type: import("@metamask/snaps-sdk").NodeType.Input;
428
385
  name: string;
429
- error?: string | undefined;
430
- inputType?: "number" | "text" | "password" | undefined;
386
+ type: import("@metamask/snaps-sdk").NodeType.Input;
431
387
  value?: string | undefined;
432
388
  label?: string | undefined;
389
+ inputType?: "number" | "text" | "password" | undefined;
433
390
  placeholder?: string | undefined;
391
+ error?: string | undefined;
434
392
  } | {
435
- type: import("@metamask/snaps-sdk").NodeType.Button;
436
393
  value: string;
437
- variant?: "primary" | "secondary" | undefined;
394
+ type: import("@metamask/snaps-sdk").NodeType.Button;
438
395
  name?: string | undefined;
396
+ variant?: "primary" | "secondary" | undefined;
439
397
  buttonType?: "button" | "submit" | undefined;
440
398
  } | {
441
- type: import("@metamask/snaps-sdk").NodeType.Form;
442
399
  name: string;
400
+ type: import("@metamask/snaps-sdk").NodeType.Form;
443
401
  children: ({
444
- type: import("@metamask/snaps-sdk").NodeType.Input;
445
402
  name: string;
446
- /**
447
- * The specification builder for the `snap_dialog` permission. `snap_dialog`
448
- * lets the Snap display one of the following dialogs to the user:
449
- * - An alert, for displaying information.
450
- * - A confirmation, for accepting or rejecting some action.
451
- * - A prompt, for inputting some information.
452
- *
453
- * @param options - The specification builder options.
454
- * @param options.allowedCaveats - The optional allowed caveats for the
455
- * permission.
456
- * @param options.methodHooks - The RPC method hooks needed by the method
457
- * implementation.
458
- * @returns The specification for the `snap_dialog` permission.
459
- */
460
- error?: string | undefined;
461
- inputType?: "number" | "text" | "password" | undefined;
403
+ type: import("@metamask/snaps-sdk").NodeType.Input;
462
404
  value?: string | undefined;
463
405
  label?: string | undefined;
406
+ inputType?: "number" | "text" | "password" | undefined;
464
407
  placeholder?: string | undefined;
408
+ error?: string | undefined;
465
409
  } | {
466
- type: import("@metamask/snaps-sdk").NodeType.Button;
467
410
  value: string;
468
- variant?: "primary" | "secondary" | undefined;
411
+ type: import("@metamask/snaps-sdk").NodeType.Button;
469
412
  name?: string | undefined;
413
+ variant?: "primary" | "secondary" | undefined;
470
414
  buttonType?: "button" | "submit" | undefined;
471
415
  })[];
472
416
  } | import("@metamask/snaps-sdk/jsx").SnapElement<{
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.mts","sourceRoot":"","sources":["../../src/restricted/dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.d.mts","sourceRoot":"","sources":["../../src/restricted/dialog.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,7 @@ const specificationBuilder = ({ methodHooks }) => {
35
35
  };
36
36
  const methodHooks = {
37
37
  getMnemonic: true,
38
+ getMnemonicSeed: true,
38
39
  getUnlockPromise: true,
39
40
  getClientCryptography: true,
40
41
  };
@@ -48,6 +49,7 @@ exports.getBip32EntropyBuilder = Object.freeze({
48
49
  *
49
50
  * @param hooks - The RPC method hooks.
50
51
  * @param hooks.getMnemonic - A function to retrieve the Secret Recovery Phrase of the user.
52
+ * @param hooks.getMnemonicSeed - A function to retrieve the BIP-39 seed of the user.
51
53
  * @param hooks.getUnlockPromise - A function that resolves once the MetaMask extension is unlocked
52
54
  * and prompts the user to unlock their MetaMask if it is locked.
53
55
  * @param hooks.getClientCryptography - A function to retrieve the cryptographic
@@ -55,13 +57,24 @@ exports.getBip32EntropyBuilder = Object.freeze({
55
57
  * @returns The method implementation which returns a `JsonSLIP10Node`.
56
58
  * @throws If the params are invalid.
57
59
  */
58
- function getBip32EntropyImplementation({ getMnemonic, getUnlockPromise, getClientCryptography, }) {
60
+ function getBip32EntropyImplementation({ getMnemonic, getMnemonicSeed, getUnlockPromise, getClientCryptography, }) {
59
61
  return async function getBip32Entropy(args) {
60
62
  await getUnlockPromise(true);
61
63
  const { params } = args;
62
64
  (0, utils_1.assert)(params);
63
- const secretRecoveryPhrase = await (0, utils_2.getSecretRecoveryPhrase)(getMnemonic, params.source);
64
- const node = await (0, utils_2.getNode)({
65
+ // Using the seed is much faster, but we can only do it for these specific curves.
66
+ if (params.curve === 'secp256k1' || params.curve === 'ed25519') {
67
+ const seed = await (0, utils_2.getValueFromEntropySource)(getMnemonicSeed, params.source);
68
+ const node = await (0, utils_2.getNodeFromSeed)({
69
+ curve: params.curve,
70
+ path: params.path,
71
+ seed,
72
+ cryptographicFunctions: getClientCryptography(),
73
+ });
74
+ return node.toJSON();
75
+ }
76
+ const secretRecoveryPhrase = await (0, utils_2.getValueFromEntropySource)(getMnemonic, params.source);
77
+ const node = await (0, utils_2.getNodeFromMnemonic)({
65
78
  curve: params.curve,
66
79
  path: params.path,
67
80
  secretRecoveryPhrase,
@@ -1 +1 @@
1
- {"version":3,"file":"getBip32Entropy.cjs","sourceRoot":"","sources":["../../src/restricted/getBip32Entropy.ts"],"names":[],"mappings":";;;AAOA,2EAA8E;AAC9E,qDAAiD;AAKjD,uDAAuD;AAEvD,2CAAyC;AAGzC,wCAA4D;AAE5D,MAAM,UAAU,GAAG,sBAAsB,CAAC;AA0C1C;;;;;;;;GAQG;AACH,MAAM,oBAAoB,GAItB,CAAC,EAAE,WAAW,EAA8C,EAAE,EAAE;IAClE,OAAO;QACL,cAAc,EAAE,sCAAc,CAAC,gBAAgB;QAC/C,UAAU;QACV,cAAc,EAAE,CAAC,4BAAc,CAAC,wBAAwB,CAAC;QACzD,oBAAoB,EAAE,6BAA6B,CAAC,WAAW,CAAC;QAChE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACzB,IACE,OAAO,EAAE,MAAM,KAAK,CAAC;gBACrB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,4BAAc,CAAC,wBAAwB,EAC3D,CAAC;gBACD,MAAM,sBAAS,CAAC,aAAa,CAAC;oBAC5B,OAAO,EAAE,sBAAsB,4BAAc,CAAC,wBAAwB,WAAW;iBAClF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,YAAY,EAAE,CAAC,mCAAW,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAkD;IACjE,WAAW,EAAE,IAAI;IACjB,gBAAgB,EAAE,IAAI;IACtB,qBAAqB,EAAE,IAAI;CAC5B,CAAC;AAEW,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,UAAU;IACV,oBAAoB;IACpB,WAAW;CACH,CAAC,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,SAAgB,6BAA6B,CAAC,EAC5C,WAAW,EACX,gBAAgB,EAChB,qBAAqB,GACM;IAC3B,OAAO,KAAK,UAAU,eAAe,CACnC,IAAoD;QAEpD,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAA,cAAM,EAAC,MAAM,CAAC,CAAC;QAEf,MAAM,oBAAoB,GAAG,MAAM,IAAA,+BAAuB,EACxD,WAAW,EACX,MAAM,CAAC,MAAM,CACd,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAA,eAAO,EAAC;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,oBAAoB;YACpB,sBAAsB,EAAE,qBAAqB,EAAE;SAChD,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AA3BD,sEA2BC","sourcesContent":["import type { CryptographicFunctions } from '@metamask/key-tree';\nimport type {\n PermissionSpecificationBuilder,\n PermissionValidatorConstraint,\n RestrictedMethodOptions,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n GetBip32EntropyParams,\n GetBip32EntropyResult,\n} from '@metamask/snaps-sdk';\nimport { SnapCaveatType } from '@metamask/snaps-utils';\nimport type { NonEmptyArray } from '@metamask/utils';\nimport { assert } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\nimport { getSecretRecoveryPhrase, getNode } from '../utils';\n\nconst targetName = 'snap_getBip32Entropy';\n\nexport type GetBip32EntropyMethodHooks = {\n /**\n * Get the mnemonic of the provided source. If no source is provided, the\n * mnemonic of the primary keyring will be returned.\n *\n * @param source - The optional ID of the source to get the mnemonic of.\n * @returns The mnemonic of the provided source, or the default source if no\n * source is provided.\n */\n getMnemonic: (source?: string | undefined) => Promise<Uint8Array>;\n\n /**\n * Waits for the extension to be unlocked.\n *\n * @returns A promise that resolves once the extension is unlocked.\n */\n getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;\n\n /**\n * Get the cryptographic functions to use for the client. This may return an\n * empty object or `undefined` to fall back to the default cryptographic\n * functions.\n *\n * @returns The cryptographic functions to use for the client.\n */\n getClientCryptography: () => CryptographicFunctions | undefined;\n};\n\ntype GetBip32EntropySpecificationBuilderOptions = {\n methodHooks: GetBip32EntropyMethodHooks;\n};\n\ntype GetBip32EntropySpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.RestrictedMethod;\n targetName: typeof targetName;\n methodImplementation: ReturnType<typeof getBip32EntropyImplementation>;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n}>;\n\n/**\n * The specification builder for the `snap_getBip32Entropy` permission.\n * `snap_getBip32Entropy` lets the Snap control private keys for a particular\n * BIP-32 node.\n *\n * @param options - The specification builder options.\n * @param options.methodHooks - The RPC method hooks needed by the method implementation.\n * @returns The specification for the `snap_getBip32Entropy` permission.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.RestrictedMethod,\n GetBip32EntropySpecificationBuilderOptions,\n GetBip32EntropySpecification\n> = ({ methodHooks }: GetBip32EntropySpecificationBuilderOptions) => {\n return {\n permissionType: PermissionType.RestrictedMethod,\n targetName,\n allowedCaveats: [SnapCaveatType.PermittedDerivationPaths],\n methodImplementation: getBip32EntropyImplementation(methodHooks),\n validator: ({ caveats }) => {\n if (\n caveats?.length !== 1 ||\n caveats[0].type !== SnapCaveatType.PermittedDerivationPaths\n ) {\n throw rpcErrors.invalidParams({\n message: `Expected a single \"${SnapCaveatType.PermittedDerivationPaths}\" caveat.`,\n });\n }\n },\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nconst methodHooks: MethodHooksObject<GetBip32EntropyMethodHooks> = {\n getMnemonic: true,\n getUnlockPromise: true,\n getClientCryptography: true,\n};\n\nexport const getBip32EntropyBuilder = Object.freeze({\n targetName,\n specificationBuilder,\n methodHooks,\n} as const);\n\n/**\n * Builds the method implementation for `snap_getBip32Entropy`.\n *\n * @param hooks - The RPC method hooks.\n * @param hooks.getMnemonic - A function to retrieve the Secret Recovery Phrase of the user.\n * @param hooks.getUnlockPromise - A function that resolves once the MetaMask extension is unlocked\n * and prompts the user to unlock their MetaMask if it is locked.\n * @param hooks.getClientCryptography - A function to retrieve the cryptographic\n * functions to use for the client.\n * @returns The method implementation which returns a `JsonSLIP10Node`.\n * @throws If the params are invalid.\n */\nexport function getBip32EntropyImplementation({\n getMnemonic,\n getUnlockPromise,\n getClientCryptography,\n}: GetBip32EntropyMethodHooks) {\n return async function getBip32Entropy(\n args: RestrictedMethodOptions<GetBip32EntropyParams>,\n ): Promise<GetBip32EntropyResult> {\n await getUnlockPromise(true);\n\n const { params } = args;\n assert(params);\n\n const secretRecoveryPhrase = await getSecretRecoveryPhrase(\n getMnemonic,\n params.source,\n );\n\n const node = await getNode({\n curve: params.curve,\n path: params.path,\n secretRecoveryPhrase,\n cryptographicFunctions: getClientCryptography(),\n });\n\n return node.toJSON();\n };\n}\n"]}
1
+ {"version":3,"file":"getBip32Entropy.cjs","sourceRoot":"","sources":["../../src/restricted/getBip32Entropy.ts"],"names":[],"mappings":";;;AAOA,2EAA8E;AAC9E,qDAAiD;AAKjD,uDAAuD;AAEvD,2CAAyC;AAGzC,wCAIkB;AAElB,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAoD1C;;;;;;;;GAQG;AACH,MAAM,oBAAoB,GAItB,CAAC,EAAE,WAAW,EAA8C,EAAE,EAAE;IAClE,OAAO;QACL,cAAc,EAAE,sCAAc,CAAC,gBAAgB;QAC/C,UAAU;QACV,cAAc,EAAE,CAAC,4BAAc,CAAC,wBAAwB,CAAC;QACzD,oBAAoB,EAAE,6BAA6B,CAAC,WAAW,CAAC;QAChE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;YACzB,IACE,OAAO,EAAE,MAAM,KAAK,CAAC;gBACrB,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,4BAAc,CAAC,wBAAwB,EAC3D,CAAC;gBACD,MAAM,sBAAS,CAAC,aAAa,CAAC;oBAC5B,OAAO,EAAE,sBAAsB,4BAAc,CAAC,wBAAwB,WAAW;iBAClF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,YAAY,EAAE,CAAC,mCAAW,CAAC,IAAI,CAAC;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAkD;IACjE,WAAW,EAAE,IAAI;IACjB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;IACtB,qBAAqB,EAAE,IAAI;CAC5B,CAAC;AAEW,QAAA,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC;IAClD,UAAU;IACV,oBAAoB;IACpB,WAAW;CACH,CAAC,CAAC;AAEZ;;;;;;;;;;;;GAYG;AACH,SAAgB,6BAA6B,CAAC,EAC5C,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACM;IAC3B,OAAO,KAAK,UAAU,eAAe,CACnC,IAAoD;QAEpD,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAA,cAAM,EAAC,MAAM,CAAC,CAAC;QAEf,kFAAkF;QAClF,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAyB,EAC1C,eAAe,EACf,MAAM,CAAC,MAAM,CACd,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAe,EAAC;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI;gBACJ,sBAAsB,EAAE,qBAAqB,EAAE;aAChD,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAA,iCAAyB,EAC1D,WAAW,EACX,MAAM,CAAC,MAAM,CACd,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAA,2BAAmB,EAAC;YACrC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,oBAAoB;YACpB,sBAAsB,EAAE,qBAAqB,EAAE;SAChD,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC;AA7CD,sEA6CC","sourcesContent":["import type { CryptographicFunctions } from '@metamask/key-tree';\nimport type {\n PermissionSpecificationBuilder,\n PermissionValidatorConstraint,\n RestrictedMethodOptions,\n ValidPermissionSpecification,\n} from '@metamask/permission-controller';\nimport { PermissionType, SubjectType } from '@metamask/permission-controller';\nimport { rpcErrors } from '@metamask/rpc-errors';\nimport type {\n GetBip32EntropyParams,\n GetBip32EntropyResult,\n} from '@metamask/snaps-sdk';\nimport { SnapCaveatType } from '@metamask/snaps-utils';\nimport type { NonEmptyArray } from '@metamask/utils';\nimport { assert } from '@metamask/utils';\n\nimport type { MethodHooksObject } from '../utils';\nimport {\n getNodeFromMnemonic,\n getNodeFromSeed,\n getValueFromEntropySource,\n} from '../utils';\n\nconst targetName = 'snap_getBip32Entropy';\n\nexport type GetBip32EntropyMethodHooks = {\n /**\n * Get the mnemonic of the provided source. If no source is provided, the\n * mnemonic of the primary keyring will be returned.\n *\n * @param source - The optional ID of the source to get the mnemonic of.\n * @returns The mnemonic of the provided source, or the default source if no\n * source is provided.\n */\n getMnemonic: (source?: string | undefined) => Promise<Uint8Array>;\n\n /**\n * Get the mnemonic seed of the provided source. If no source is provided, the\n * mnemonic seed of the primary keyring will be returned.\n *\n * @param source - The optional ID of the source to get the mnemonic of.\n * @returns The mnemonic seed of the provided source, or the default source if no\n * source is provided.\n */\n getMnemonicSeed: (source?: string | undefined) => Promise<Uint8Array>;\n\n /**\n * Waits for the extension to be unlocked.\n *\n * @returns A promise that resolves once the extension is unlocked.\n */\n getUnlockPromise: (shouldShowUnlockRequest: boolean) => Promise<void>;\n\n /**\n * Get the cryptographic functions to use for the client. This may return an\n * empty object or `undefined` to fall back to the default cryptographic\n * functions.\n *\n * @returns The cryptographic functions to use for the client.\n */\n getClientCryptography: () => CryptographicFunctions | undefined;\n};\n\ntype GetBip32EntropySpecificationBuilderOptions = {\n methodHooks: GetBip32EntropyMethodHooks;\n};\n\ntype GetBip32EntropySpecification = ValidPermissionSpecification<{\n permissionType: PermissionType.RestrictedMethod;\n targetName: typeof targetName;\n methodImplementation: ReturnType<typeof getBip32EntropyImplementation>;\n allowedCaveats: Readonly<NonEmptyArray<string>> | null;\n validator: PermissionValidatorConstraint;\n}>;\n\n/**\n * The specification builder for the `snap_getBip32Entropy` permission.\n * `snap_getBip32Entropy` lets the Snap control private keys for a particular\n * BIP-32 node.\n *\n * @param options - The specification builder options.\n * @param options.methodHooks - The RPC method hooks needed by the method implementation.\n * @returns The specification for the `snap_getBip32Entropy` permission.\n */\nconst specificationBuilder: PermissionSpecificationBuilder<\n PermissionType.RestrictedMethod,\n GetBip32EntropySpecificationBuilderOptions,\n GetBip32EntropySpecification\n> = ({ methodHooks }: GetBip32EntropySpecificationBuilderOptions) => {\n return {\n permissionType: PermissionType.RestrictedMethod,\n targetName,\n allowedCaveats: [SnapCaveatType.PermittedDerivationPaths],\n methodImplementation: getBip32EntropyImplementation(methodHooks),\n validator: ({ caveats }) => {\n if (\n caveats?.length !== 1 ||\n caveats[0].type !== SnapCaveatType.PermittedDerivationPaths\n ) {\n throw rpcErrors.invalidParams({\n message: `Expected a single \"${SnapCaveatType.PermittedDerivationPaths}\" caveat.`,\n });\n }\n },\n subjectTypes: [SubjectType.Snap],\n };\n};\n\nconst methodHooks: MethodHooksObject<GetBip32EntropyMethodHooks> = {\n getMnemonic: true,\n getMnemonicSeed: true,\n getUnlockPromise: true,\n getClientCryptography: true,\n};\n\nexport const getBip32EntropyBuilder = Object.freeze({\n targetName,\n specificationBuilder,\n methodHooks,\n} as const);\n\n/**\n * Builds the method implementation for `snap_getBip32Entropy`.\n *\n * @param hooks - The RPC method hooks.\n * @param hooks.getMnemonic - A function to retrieve the Secret Recovery Phrase of the user.\n * @param hooks.getMnemonicSeed - A function to retrieve the BIP-39 seed of the user.\n * @param hooks.getUnlockPromise - A function that resolves once the MetaMask extension is unlocked\n * and prompts the user to unlock their MetaMask if it is locked.\n * @param hooks.getClientCryptography - A function to retrieve the cryptographic\n * functions to use for the client.\n * @returns The method implementation which returns a `JsonSLIP10Node`.\n * @throws If the params are invalid.\n */\nexport function getBip32EntropyImplementation({\n getMnemonic,\n getMnemonicSeed,\n getUnlockPromise,\n getClientCryptography,\n}: GetBip32EntropyMethodHooks) {\n return async function getBip32Entropy(\n args: RestrictedMethodOptions<GetBip32EntropyParams>,\n ): Promise<GetBip32EntropyResult> {\n await getUnlockPromise(true);\n\n const { params } = args;\n assert(params);\n\n // Using the seed is much faster, but we can only do it for these specific curves.\n if (params.curve === 'secp256k1' || params.curve === 'ed25519') {\n const seed = await getValueFromEntropySource(\n getMnemonicSeed,\n params.source,\n );\n\n const node = await getNodeFromSeed({\n curve: params.curve,\n path: params.path,\n seed,\n cryptographicFunctions: getClientCryptography(),\n });\n\n return node.toJSON();\n }\n\n const secretRecoveryPhrase = await getValueFromEntropySource(\n getMnemonic,\n params.source,\n );\n\n const node = await getNodeFromMnemonic({\n curve: params.curve,\n path: params.path,\n secretRecoveryPhrase,\n cryptographicFunctions: getClientCryptography(),\n });\n\n return node.toJSON();\n };\n}\n"]}