@metamask-previews/controller-utils 4.3.2-preview.f71e42f → 5.0.2-preview.ce06456
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -1
- package/dist/constants.d.ts +2 -17
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -140
- package/dist/constants.js.map +1 -1
- package/dist/util.d.ts +0 -15
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +1 -34
- package/dist/util.js.map +1 -1
- package/package.json +6 -7
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [5.0.2]
|
|
10
|
+
### Changed
|
|
11
|
+
- Bump dependency on `@metamask/utils` to ^8.1.0 ([#1639](https://github.com/MetaMask/core/pull/1639))
|
|
12
|
+
- Move `eth-rpc-errors@^4.0.2` dependency to `@metamask/rpc-errors@^6.0.2` ([#1743](https://github.com/MetaMask/core/pull/1743))
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Update linea goerli explorer url ([#1666](https://github.com/MetaMask/core/pull/1666))
|
|
16
|
+
|
|
17
|
+
## [5.0.1]
|
|
18
|
+
### Changed
|
|
19
|
+
- Update TypeScript to v4.8.x ([#1718](https://github.com/MetaMask/core/pull/1718))
|
|
20
|
+
|
|
21
|
+
## [5.0.0]
|
|
22
|
+
### Changed
|
|
23
|
+
- **BREAKING**: Rename `NETWORK_ID_TO_ETHERS_NETWORK_NAME_MAP` to `CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP` ([#1633](https://github.com/MetaMask/core/pull/1633))
|
|
24
|
+
- Change it to a map of `Hex` chain ID to `BuiltInNetworkName`
|
|
25
|
+
|
|
26
|
+
### Removed
|
|
27
|
+
- **BREAKING**: Remove `NetworkId` constant and type ([#1633](https://github.com/MetaMask/core/pull/1633))
|
|
28
|
+
|
|
9
29
|
## [4.3.2]
|
|
10
30
|
### Changed
|
|
11
31
|
- There are no consumer-facing changes to this package. This version is a part of a synchronized release across all packages in our monorepo.
|
|
@@ -147,7 +167,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
147
167
|
|
|
148
168
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
149
169
|
|
|
150
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@
|
|
170
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@5.0.2...HEAD
|
|
171
|
+
[5.0.2]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@5.0.1...@metamask/controller-utils@5.0.2
|
|
172
|
+
[5.0.1]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@5.0.0...@metamask/controller-utils@5.0.1
|
|
173
|
+
[5.0.0]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@4.3.2...@metamask/controller-utils@5.0.0
|
|
151
174
|
[4.3.2]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@4.3.1...@metamask/controller-utils@4.3.2
|
|
152
175
|
[4.3.1]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@4.3.0...@metamask/controller-utils@4.3.1
|
|
153
176
|
[4.3.0]: https://github.com/MetaMask/core/compare/@metamask/controller-utils@4.2.0...@metamask/controller-utils@4.3.0
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Hex } from '@metamask/utils';
|
|
2
1
|
import { NetworksTicker, ChainId, BuiltInNetworkName } from './types';
|
|
3
2
|
export declare const RPC = "rpc";
|
|
4
3
|
export declare const FALL_BACK_VS_CURRENCY = "ETH";
|
|
@@ -57,9 +56,9 @@ export declare const BUILT_IN_NETWORKS: {
|
|
|
57
56
|
};
|
|
58
57
|
readonly "linea-goerli": {
|
|
59
58
|
readonly chainId: "0xe704";
|
|
60
|
-
readonly ticker: typeof NetworksTicker["linea-goerli"];
|
|
59
|
+
readonly ticker: (typeof NetworksTicker)["linea-goerli"];
|
|
61
60
|
readonly rpcPrefs: {
|
|
62
|
-
readonly blockExplorerUrl: "https://
|
|
61
|
+
readonly blockExplorerUrl: "https://goerli.lineascan.build";
|
|
63
62
|
};
|
|
64
63
|
};
|
|
65
64
|
readonly "linea-mainnet": {
|
|
@@ -105,18 +104,4 @@ export declare enum ApprovalType {
|
|
|
105
104
|
WatchAsset = "wallet_watchAsset"
|
|
106
105
|
}
|
|
107
106
|
export declare const CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP: Record<ChainId, BuiltInNetworkName>;
|
|
108
|
-
/**
|
|
109
|
-
* Compiled from https://chainid.network/chains.json
|
|
110
|
-
* A mapping of network ID to chain IDs for all chains
|
|
111
|
-
* that have mismatched network ID and chain ID. Most
|
|
112
|
-
* notably ETC has a network ID of 1 but chain ID of 61.
|
|
113
|
-
*/
|
|
114
|
-
export declare const NON_MATCHING_NETWORK_ID_TO_CHAIN_IDS: Record<string, Hex[]>;
|
|
115
|
-
/**
|
|
116
|
-
* Compiled from https://chainid.network/chains.json
|
|
117
|
-
* A mapping of chain ID to network ID for all chains
|
|
118
|
-
* that have mismatched network ID and chain ID. Most
|
|
119
|
-
* notably ETC has a network ID of 1 but chain ID of 61.
|
|
120
|
-
*/
|
|
121
|
-
export declare const NON_MATCHING_CHAIN_ID_TO_NETWORK_ID: Record<Hex, string>;
|
|
122
107
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,OAAO,EACP,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,GAAG,QAAQ,CAAC;AACzB,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,wBAAwB,sCAAsC,CAAC;AAI5E,eAAO,MAAM,gBAAgB,UAAU,CAAC;AACxC;;;GAGG;AACH,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAGlD,eAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,KAAK,UAAU,CAAC;AAG7B,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,4BAA4B,eAAe,CAAC;AACzD,eAAO,MAAM,8BAA8B,eAAe,CAAC;AAC3D,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,iCAAiC,eAAe,CAAC;AAC9D,eAAO,MAAM,mCAAmC,eAAe,CAAC;AAGhE,eAAO,MAAM,IAAI,SAAS,CAAC;AAG3B,eAAO,MAAM,WAAW;;;;;CAKvB,CAAC;AAGF,eAAO,MAAM,sBAAsB;;;;CAIlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB,CAAC;AAGX,eAAO,MAAM,iBAAiB,0DAC2B,CAAC;AAC1D,eAAO,MAAM,eAAe,kCAAkC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,2CAA2C,CAAC;AAG7E,eAAO,MAAM,eAAe,aAAa,CAAC;AAE1C;;;;GAIG;AACH,oBAAY,YAAY;IACtB,gBAAgB,4BAA4B;IAC5C,eAAe,qBAAqB;IACpC,UAAU,gBAAgB;IAC1B,yBAAyB,+BAA+B;IACxD,OAAO,aAAa;IACpB,gBAAgB,sBAAsB;IACtC,YAAY,kBAAkB;IAC9B,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,eAAe,sBAAsB;IACrC,sBAAsB,6BAA6B;IACnD,gBAAgB,uBAAuB;IACvC,mBAAmB,+BAA+B;IAClD,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,aAAa,mBAAmB;IAChC,wBAAwB,8BAA8B;IACtD,UAAU,sBAAsB;CACjC;AAED,eAAO,MAAM,mCAAmC,EAAE,MAAM,CACtD,OAAO,EACP,kBAAkB,CAQnB,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP = exports.ApprovalType = exports.ORIGIN_METAMASK = exports.OPENSEA_TEST_API_URL = exports.OPENSEA_API_URL = exports.OPENSEA_PROXY_URL = exports.BUILT_IN_NETWORKS = exports.TESTNET_TICKER_SYMBOLS = exports.ASSET_TYPES = exports.GWEI = exports.ERC1155_TOKEN_RECEIVER_INTERFACE_ID = exports.ERC1155_METADATA_URI_INTERFACE_ID = exports.ERC1155_INTERFACE_ID = exports.ERC721_ENUMERABLE_INTERFACE_ID = exports.ERC721_METADATA_INTERFACE_ID = exports.ERC721_INTERFACE_ID = exports.ERC20 = exports.ERC1155 = exports.ERC721 = exports.MAX_SAFE_CHAIN_ID = exports.GANACHE_CHAIN_ID = exports.IPFS_DEFAULT_GATEWAY_URL = exports.FALL_BACK_VS_CURRENCY = exports.RPC = void 0;
|
|
4
4
|
const types_1 = require("./types");
|
|
5
5
|
exports.RPC = 'rpc';
|
|
6
6
|
exports.FALL_BACK_VS_CURRENCY = 'ETH';
|
|
@@ -68,7 +68,7 @@ exports.BUILT_IN_NETWORKS = {
|
|
|
68
68
|
chainId: types_1.ChainId['linea-goerli'],
|
|
69
69
|
ticker: types_1.NetworksTicker['linea-goerli'],
|
|
70
70
|
rpcPrefs: {
|
|
71
|
-
blockExplorerUrl: 'https://
|
|
71
|
+
blockExplorerUrl: 'https://goerli.lineascan.build',
|
|
72
72
|
},
|
|
73
73
|
},
|
|
74
74
|
[types_1.NetworkType['linea-mainnet']]: {
|
|
@@ -124,142 +124,4 @@ exports.CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP = {
|
|
|
124
124
|
[types_1.ChainId['linea-mainnet']]: types_1.BuiltInNetworkName.LineaMainnet,
|
|
125
125
|
[types_1.ChainId.aurora]: types_1.BuiltInNetworkName.Aurora,
|
|
126
126
|
};
|
|
127
|
-
/**
|
|
128
|
-
* Compiled from https://chainid.network/chains.json
|
|
129
|
-
* A mapping of network ID to chain IDs for all chains
|
|
130
|
-
* that have mismatched network ID and chain ID. Most
|
|
131
|
-
* notably ETC has a network ID of 1 but chain ID of 61.
|
|
132
|
-
*/
|
|
133
|
-
exports.NON_MATCHING_NETWORK_ID_TO_CHAIN_IDS = {
|
|
134
|
-
'0': [
|
|
135
|
-
'0x18',
|
|
136
|
-
'0xd3',
|
|
137
|
-
'0x3d4',
|
|
138
|
-
'0x3dd', // toHex(989)
|
|
139
|
-
],
|
|
140
|
-
'1': [
|
|
141
|
-
'0x2',
|
|
142
|
-
'0x3d',
|
|
143
|
-
'0x65',
|
|
144
|
-
'0x8a',
|
|
145
|
-
'0x106',
|
|
146
|
-
'0x334',
|
|
147
|
-
'0x740',
|
|
148
|
-
'0x76a',
|
|
149
|
-
'0x797e',
|
|
150
|
-
'0xa869',
|
|
151
|
-
'0x116e1',
|
|
152
|
-
'0x192b2',
|
|
153
|
-
'0x3113a',
|
|
154
|
-
'0x31146',
|
|
155
|
-
'0x335f9',
|
|
156
|
-
'0x66b3a',
|
|
157
|
-
'0x219e2d',
|
|
158
|
-
'0x21a9b4',
|
|
159
|
-
'0x133edce', // toHex(20180430)
|
|
160
|
-
],
|
|
161
|
-
'2': [
|
|
162
|
-
'0x9',
|
|
163
|
-
'0x3e',
|
|
164
|
-
'0x335', // toHex(821)
|
|
165
|
-
],
|
|
166
|
-
'7': [
|
|
167
|
-
'0x3f', // toHex(63)
|
|
168
|
-
],
|
|
169
|
-
'10': [
|
|
170
|
-
'0x96f', // toHex(2415)
|
|
171
|
-
],
|
|
172
|
-
'21': [
|
|
173
|
-
'0x85a', // toHex(2138)
|
|
174
|
-
],
|
|
175
|
-
'79': [
|
|
176
|
-
'0x50f9', // toHex(20729)
|
|
177
|
-
],
|
|
178
|
-
'1000': [
|
|
179
|
-
'0x1f4', // toHex(500)
|
|
180
|
-
],
|
|
181
|
-
'1001': [
|
|
182
|
-
'0x1f5', // toHex(501)
|
|
183
|
-
],
|
|
184
|
-
'1024': [
|
|
185
|
-
'0x208', // toHex(520)
|
|
186
|
-
],
|
|
187
|
-
'1230': [
|
|
188
|
-
'0x3012', // toHex(12306)
|
|
189
|
-
],
|
|
190
|
-
'2048': [
|
|
191
|
-
'0x4b2', // toHex(1202)
|
|
192
|
-
],
|
|
193
|
-
'2221': [
|
|
194
|
-
'0xde', // toHex(222)
|
|
195
|
-
],
|
|
196
|
-
'3344': [
|
|
197
|
-
'0x10804', // toHex(67588)
|
|
198
|
-
],
|
|
199
|
-
'37129': [
|
|
200
|
-
'0x5fa4', // toHex(24484)
|
|
201
|
-
],
|
|
202
|
-
'37480': [
|
|
203
|
-
'0x609e', // toHex(24734)
|
|
204
|
-
],
|
|
205
|
-
'48501': [
|
|
206
|
-
'0x14dc9', // toHex(85449)
|
|
207
|
-
],
|
|
208
|
-
'103090': [
|
|
209
|
-
'0x66a44', // toHex(420420)
|
|
210
|
-
],
|
|
211
|
-
'11235813': [
|
|
212
|
-
'0x654', // toHex(1620)
|
|
213
|
-
],
|
|
214
|
-
};
|
|
215
|
-
/**
|
|
216
|
-
* Compiled from https://chainid.network/chains.json
|
|
217
|
-
* A mapping of chain ID to network ID for all chains
|
|
218
|
-
* that have mismatched network ID and chain ID. Most
|
|
219
|
-
* notably ETC has a network ID of 1 but chain ID of 61.
|
|
220
|
-
*/
|
|
221
|
-
exports.NON_MATCHING_CHAIN_ID_TO_NETWORK_ID = {
|
|
222
|
-
'0x2': '1',
|
|
223
|
-
'0x9': '2',
|
|
224
|
-
'0x18': '0',
|
|
225
|
-
'0x3d': '1',
|
|
226
|
-
'0x3e': '2',
|
|
227
|
-
'0x3f': '7',
|
|
228
|
-
'0x65': '1',
|
|
229
|
-
'0x8a': '1',
|
|
230
|
-
'0xd3': '0',
|
|
231
|
-
'0xde': '2221',
|
|
232
|
-
'0x106': '1',
|
|
233
|
-
'0x1f4': '1000',
|
|
234
|
-
'0x1f5': '1001',
|
|
235
|
-
'0x208': '1024',
|
|
236
|
-
'0x334': '1',
|
|
237
|
-
'0x335': '2',
|
|
238
|
-
'0x3d4': '0',
|
|
239
|
-
'0x3dd': '0',
|
|
240
|
-
'0x4b2': '2048',
|
|
241
|
-
'0x654': '11235813',
|
|
242
|
-
'0x740': '1',
|
|
243
|
-
'0x76a': '1',
|
|
244
|
-
'0x85a': '21',
|
|
245
|
-
'0x96f': '10',
|
|
246
|
-
'0x3012': '1230',
|
|
247
|
-
'0x50f9': '79',
|
|
248
|
-
'0x5fa4': '37129',
|
|
249
|
-
'0x609e': '37480',
|
|
250
|
-
'0x797e': '1',
|
|
251
|
-
'0xa869': '1',
|
|
252
|
-
'0x10804': '3344',
|
|
253
|
-
'0x116e1': '1',
|
|
254
|
-
'0x14dc9': '48501',
|
|
255
|
-
'0x192b2': '1',
|
|
256
|
-
'0x3113a': '1',
|
|
257
|
-
'0x31146': '1',
|
|
258
|
-
'0x335f9': '1',
|
|
259
|
-
'0x66a44': '103090',
|
|
260
|
-
'0x66b3a': '1',
|
|
261
|
-
'0x219e2d': '1',
|
|
262
|
-
'0x21a9b4': '1',
|
|
263
|
-
'0x133edce': '1',
|
|
264
|
-
};
|
|
265
127
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Hex } from '@metamask/utils';\n\nimport {\n NetworkType,\n NetworksTicker,\n ChainId,\n BuiltInNetworkName,\n} from './types';\n\nexport const RPC = 'rpc';\nexport const FALL_BACK_VS_CURRENCY = 'ETH';\nexport const IPFS_DEFAULT_GATEWAY_URL = 'https://cloudflare-ipfs.com/ipfs/';\n\n// NETWORKS ID\n// `toHex` not invoked to avoid cyclic dependency\nexport const GANACHE_CHAIN_ID = '0x539'; // toHex(1337)\n/**\n * The largest possible chain ID we can handle.\n * Explanation: https://gist.github.com/rekmarks/a47bd5f2525936c4b8eee31a16345553\n */\nexport const MAX_SAFE_CHAIN_ID = 4503599627370476;\n\n// TOKEN STANDARDS\nexport const ERC721 = 'ERC721';\nexport const ERC1155 = 'ERC1155';\nexport const ERC20 = 'ERC20';\n\n// TOKEN INTERFACE IDS\nexport const ERC721_INTERFACE_ID = '0x80ac58cd';\nexport const ERC721_METADATA_INTERFACE_ID = '0x5b5e139f';\nexport const ERC721_ENUMERABLE_INTERFACE_ID = '0x780e9d63';\nexport const ERC1155_INTERFACE_ID = '0xd9b67a26';\nexport const ERC1155_METADATA_URI_INTERFACE_ID = '0x0e89341c';\nexport const ERC1155_TOKEN_RECEIVER_INTERFACE_ID = '0x4e2312e0';\n\n// UNITS\nexport const GWEI = 'gwei';\n\n// ASSET TYPES\nexport const ASSET_TYPES = {\n NATIVE: 'NATIVE',\n TOKEN: 'TOKEN',\n NFT: 'NFT',\n UNKNOWN: 'UNKNOWN',\n};\n\n// TICKER SYMBOLS\nexport const TESTNET_TICKER_SYMBOLS = {\n GOERLI: 'GoerliETH',\n SEPOLIA: 'SepoliaETH',\n LINEA_GOERLI: 'LineaETH',\n};\n\n/**\n * Map of all build-in Infura networks to their network, ticker and chain IDs.\n */\nexport const BUILT_IN_NETWORKS = {\n [NetworkType.goerli]: {\n chainId: ChainId.goerli,\n ticker: NetworksTicker.goerli,\n rpcPrefs: {\n blockExplorerUrl: `https://${NetworkType.goerli}.etherscan.io`,\n },\n },\n [NetworkType.sepolia]: {\n chainId: ChainId.sepolia,\n ticker: NetworksTicker.sepolia,\n rpcPrefs: {\n blockExplorerUrl: `https://${NetworkType.sepolia}.etherscan.io`,\n },\n },\n [NetworkType.mainnet]: {\n chainId: ChainId.mainnet,\n ticker: NetworksTicker.mainnet,\n rpcPrefs: {\n blockExplorerUrl: 'https://etherscan.io',\n },\n },\n [NetworkType['linea-goerli']]: {\n chainId: ChainId['linea-goerli'],\n ticker: NetworksTicker['linea-goerli'],\n rpcPrefs: {\n blockExplorerUrl: 'https://explorer.goerli.linea.build',\n },\n },\n [NetworkType['linea-mainnet']]: {\n chainId: ChainId['linea-mainnet'],\n ticker: NetworksTicker['linea-mainnet'],\n rpcPrefs: {\n blockExplorerUrl: 'https://lineascan.build',\n },\n },\n [NetworkType.rpc]: {\n chainId: undefined,\n blockExplorerUrl: undefined,\n rpcPrefs: undefined,\n },\n} as const;\n\n// APIs\nexport const OPENSEA_PROXY_URL =\n 'https://proxy.metafi.codefi.network/opensea/v1/api/v1';\nexport const OPENSEA_API_URL = 'https://api.opensea.io/api/v1';\nexport const OPENSEA_TEST_API_URL = 'https://testnets-api.opensea.io/api/v1';\n\n// Default origin for controllers\nexport const ORIGIN_METAMASK = 'metamask';\n\n/**\n * Approval request types for various operations.\n * These types are used by different controllers to create and manage\n * approval requests consistently.\n */\nexport enum ApprovalType {\n AddEthereumChain = 'wallet_addEthereumChain',\n ConnectAccounts = 'connect_accounts',\n EthDecrypt = 'eth_decrypt',\n EthGetEncryptionPublicKey = 'eth_getEncryptionPublicKey',\n EthSign = 'eth_sign',\n EthSignTypedData = 'eth_signTypedData',\n PersonalSign = 'personal_sign',\n ResultError = 'result_error',\n ResultSuccess = 'result_success',\n SnapDialogAlert = 'snap_dialog:alert',\n SnapDialogConfirmation = 'snap_dialog:confirmation',\n SnapDialogPrompt = 'snap_dialog:prompt',\n SwitchEthereumChain = 'wallet_switchEthereumChain',\n Transaction = 'transaction',\n Unlock = 'unlock',\n WalletConnect = 'wallet_connect',\n WalletRequestPermissions = 'wallet_requestPermissions',\n WatchAsset = 'wallet_watchAsset',\n}\n\nexport const CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP: Record<\n ChainId,\n BuiltInNetworkName\n> = {\n [ChainId.goerli]: BuiltInNetworkName.Goerli,\n [ChainId.sepolia]: BuiltInNetworkName.Sepolia,\n [ChainId.mainnet]: BuiltInNetworkName.Mainnet,\n [ChainId['linea-goerli']]: BuiltInNetworkName.LineaGoerli,\n [ChainId['linea-mainnet']]: BuiltInNetworkName.LineaMainnet,\n [ChainId.aurora]: BuiltInNetworkName.Aurora,\n};\n\n/**\n * Compiled from https://chainid.network/chains.json\n * A mapping of network ID to chain IDs for all chains\n * that have mismatched network ID and chain ID. Most\n * notably ETC has a network ID of 1 but chain ID of 61.\n */\nexport const NON_MATCHING_NETWORK_ID_TO_CHAIN_IDS: Record<string, Hex[]> = {\n '0': [\n '0x18', // toHex(24)\n '0xd3', // toHex(211)\n '0x3d4', // toHex(980)\n '0x3dd', // toHex(989)\n ],\n '1': [\n '0x2', // toHex(2)\n '0x3d', // toHex(61)\n '0x65', // toHex(101)\n '0x8a', // toHex(138)\n '0x106', // toHex(262)\n '0x334', // toHex(820)\n '0x740', // toHex(1856)\n '0x76a', // toHex(1898)\n '0x797e', // toHex(31102)\n '0xa869', // toHex(43113)\n '0x116e1', // toHex(71393)\n '0x192b2', // toHex(103090)\n '0x3113a', // toHex(201018)\n '0x31146', // toHex(201030)\n '0x335f9', // toHex(210425)\n '0x66b3a', // toHex(420666)\n '0x219e2d', // toHex(2203181)\n '0x21a9b4', // toHex(2206132)\n '0x133edce', // toHex(20180430)\n ],\n '2': [\n '0x9', // toHex(9)\n '0x3e', // toHex(62)\n '0x335', // toHex(821)\n ],\n '7': [\n '0x3f', // toHex(63)\n ],\n '10': [\n '0x96f', // toHex(2415)\n ],\n '21': [\n '0x85a', // toHex(2138)\n ],\n '79': [\n '0x50f9', // toHex(20729)\n ],\n '1000': [\n '0x1f4', // toHex(500)\n ],\n '1001': [\n '0x1f5', // toHex(501)\n ],\n '1024': [\n '0x208', // toHex(520)\n ],\n '1230': [\n '0x3012', // toHex(12306)\n ],\n '2048': [\n '0x4b2', // toHex(1202)\n ],\n '2221': [\n '0xde', // toHex(222)\n ],\n '3344': [\n '0x10804', // toHex(67588)\n ],\n '37129': [\n '0x5fa4', // toHex(24484)\n ],\n '37480': [\n '0x609e', // toHex(24734)\n ],\n '48501': [\n '0x14dc9', // toHex(85449)\n ],\n '103090': [\n '0x66a44', // toHex(420420)\n ],\n '11235813': [\n '0x654', // toHex(1620)\n ],\n};\n\n/**\n * Compiled from https://chainid.network/chains.json\n * A mapping of chain ID to network ID for all chains\n * that have mismatched network ID and chain ID. Most\n * notably ETC has a network ID of 1 but chain ID of 61.\n */\nexport const NON_MATCHING_CHAIN_ID_TO_NETWORK_ID: Record<Hex, string> = {\n '0x2': '1',\n '0x9': '2',\n '0x18': '0',\n '0x3d': '1',\n '0x3e': '2',\n '0x3f': '7',\n '0x65': '1',\n '0x8a': '1',\n '0xd3': '0',\n '0xde': '2221',\n '0x106': '1',\n '0x1f4': '1000',\n '0x1f5': '1001',\n '0x208': '1024',\n '0x334': '1',\n '0x335': '2',\n '0x3d4': '0',\n '0x3dd': '0',\n '0x4b2': '2048',\n '0x654': '11235813',\n '0x740': '1',\n '0x76a': '1',\n '0x85a': '21',\n '0x96f': '10',\n '0x3012': '1230',\n '0x50f9': '79',\n '0x5fa4': '37129',\n '0x609e': '37480',\n '0x797e': '1',\n '0xa869': '1',\n '0x10804': '3344',\n '0x116e1': '1',\n '0x14dc9': '48501',\n '0x192b2': '1',\n '0x3113a': '1',\n '0x31146': '1',\n '0x335f9': '1',\n '0x66a44': '103090',\n '0x66b3a': '1',\n '0x219e2d': '1',\n '0x21a9b4': '1',\n '0x133edce': '1',\n};\n"]}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n NetworkType,\n NetworksTicker,\n ChainId,\n BuiltInNetworkName,\n} from './types';\n\nexport const RPC = 'rpc';\nexport const FALL_BACK_VS_CURRENCY = 'ETH';\nexport const IPFS_DEFAULT_GATEWAY_URL = 'https://cloudflare-ipfs.com/ipfs/';\n\n// NETWORKS ID\n// `toHex` not invoked to avoid cyclic dependency\nexport const GANACHE_CHAIN_ID = '0x539'; // toHex(1337)\n/**\n * The largest possible chain ID we can handle.\n * Explanation: https://gist.github.com/rekmarks/a47bd5f2525936c4b8eee31a16345553\n */\nexport const MAX_SAFE_CHAIN_ID = 4503599627370476;\n\n// TOKEN STANDARDS\nexport const ERC721 = 'ERC721';\nexport const ERC1155 = 'ERC1155';\nexport const ERC20 = 'ERC20';\n\n// TOKEN INTERFACE IDS\nexport const ERC721_INTERFACE_ID = '0x80ac58cd';\nexport const ERC721_METADATA_INTERFACE_ID = '0x5b5e139f';\nexport const ERC721_ENUMERABLE_INTERFACE_ID = '0x780e9d63';\nexport const ERC1155_INTERFACE_ID = '0xd9b67a26';\nexport const ERC1155_METADATA_URI_INTERFACE_ID = '0x0e89341c';\nexport const ERC1155_TOKEN_RECEIVER_INTERFACE_ID = '0x4e2312e0';\n\n// UNITS\nexport const GWEI = 'gwei';\n\n// ASSET TYPES\nexport const ASSET_TYPES = {\n NATIVE: 'NATIVE',\n TOKEN: 'TOKEN',\n NFT: 'NFT',\n UNKNOWN: 'UNKNOWN',\n};\n\n// TICKER SYMBOLS\nexport const TESTNET_TICKER_SYMBOLS = {\n GOERLI: 'GoerliETH',\n SEPOLIA: 'SepoliaETH',\n LINEA_GOERLI: 'LineaETH',\n};\n\n/**\n * Map of all build-in Infura networks to their network, ticker and chain IDs.\n */\nexport const BUILT_IN_NETWORKS = {\n [NetworkType.goerli]: {\n chainId: ChainId.goerli,\n ticker: NetworksTicker.goerli,\n rpcPrefs: {\n blockExplorerUrl: `https://${NetworkType.goerli}.etherscan.io`,\n },\n },\n [NetworkType.sepolia]: {\n chainId: ChainId.sepolia,\n ticker: NetworksTicker.sepolia,\n rpcPrefs: {\n blockExplorerUrl: `https://${NetworkType.sepolia}.etherscan.io`,\n },\n },\n [NetworkType.mainnet]: {\n chainId: ChainId.mainnet,\n ticker: NetworksTicker.mainnet,\n rpcPrefs: {\n blockExplorerUrl: 'https://etherscan.io',\n },\n },\n [NetworkType['linea-goerli']]: {\n chainId: ChainId['linea-goerli'],\n ticker: NetworksTicker['linea-goerli'],\n rpcPrefs: {\n blockExplorerUrl: 'https://goerli.lineascan.build',\n },\n },\n [NetworkType['linea-mainnet']]: {\n chainId: ChainId['linea-mainnet'],\n ticker: NetworksTicker['linea-mainnet'],\n rpcPrefs: {\n blockExplorerUrl: 'https://lineascan.build',\n },\n },\n [NetworkType.rpc]: {\n chainId: undefined,\n blockExplorerUrl: undefined,\n rpcPrefs: undefined,\n },\n} as const;\n\n// APIs\nexport const OPENSEA_PROXY_URL =\n 'https://proxy.metafi.codefi.network/opensea/v1/api/v1';\nexport const OPENSEA_API_URL = 'https://api.opensea.io/api/v1';\nexport const OPENSEA_TEST_API_URL = 'https://testnets-api.opensea.io/api/v1';\n\n// Default origin for controllers\nexport const ORIGIN_METAMASK = 'metamask';\n\n/**\n * Approval request types for various operations.\n * These types are used by different controllers to create and manage\n * approval requests consistently.\n */\nexport enum ApprovalType {\n AddEthereumChain = 'wallet_addEthereumChain',\n ConnectAccounts = 'connect_accounts',\n EthDecrypt = 'eth_decrypt',\n EthGetEncryptionPublicKey = 'eth_getEncryptionPublicKey',\n EthSign = 'eth_sign',\n EthSignTypedData = 'eth_signTypedData',\n PersonalSign = 'personal_sign',\n ResultError = 'result_error',\n ResultSuccess = 'result_success',\n SnapDialogAlert = 'snap_dialog:alert',\n SnapDialogConfirmation = 'snap_dialog:confirmation',\n SnapDialogPrompt = 'snap_dialog:prompt',\n SwitchEthereumChain = 'wallet_switchEthereumChain',\n Transaction = 'transaction',\n Unlock = 'unlock',\n WalletConnect = 'wallet_connect',\n WalletRequestPermissions = 'wallet_requestPermissions',\n WatchAsset = 'wallet_watchAsset',\n}\n\nexport const CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP: Record<\n ChainId,\n BuiltInNetworkName\n> = {\n [ChainId.goerli]: BuiltInNetworkName.Goerli,\n [ChainId.sepolia]: BuiltInNetworkName.Sepolia,\n [ChainId.mainnet]: BuiltInNetworkName.Mainnet,\n [ChainId['linea-goerli']]: BuiltInNetworkName.LineaGoerli,\n [ChainId['linea-mainnet']]: BuiltInNetworkName.LineaMainnet,\n [ChainId.aurora]: BuiltInNetworkName.Aurora,\n};\n"]}
|
package/dist/util.d.ts
CHANGED
|
@@ -217,20 +217,5 @@ export declare function isNonEmptyArray<T>(value: T[]): value is NonEmptyArray<T
|
|
|
217
217
|
* @returns Whether the value is valid JSON.
|
|
218
218
|
*/
|
|
219
219
|
export declare function isValidJson(value: unknown): value is Json;
|
|
220
|
-
/**
|
|
221
|
-
* Checks if a networkId matches a chainId
|
|
222
|
-
*
|
|
223
|
-
* @param networkId - Network ID for the chain.
|
|
224
|
-
* @param chainId - Chain ID for the chain.
|
|
225
|
-
* @returns Whether the network ID matches the chain ID
|
|
226
|
-
*/
|
|
227
|
-
export declare function deprecatedNetworkIdMatchesChainId(networkId: string, chainId: Hex): boolean;
|
|
228
|
-
/**
|
|
229
|
-
* Converts a chainId to networkId
|
|
230
|
-
*
|
|
231
|
-
* @param chainId - Chain ID for the chain.
|
|
232
|
-
* @returns The network ID
|
|
233
|
-
*/
|
|
234
|
-
export declare function deprecatedConvertChainIdToNetworkId(chainId: Hex): string;
|
|
235
220
|
export {};
|
|
236
221
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAIL,EAAE,EAGH,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
|
package/dist/util.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.isValidJson = exports.isNonEmptyArray = exports.isPlainObject = exports.convertHexToDecimal = exports.query = exports.normalizeEnsName = exports.timeoutFetch = exports.fetchWithErrorHandling = exports.handleFetch = exports.successfulFetch = exports.isSmartContractCode = exports.isValidHexAddress = exports.toChecksumHexAddress = exports.safelyExecuteWithTimeout = exports.safelyExecute = exports.toHex = exports.fromHex = exports.hexToText = exports.hexToBN = exports.getBuyURL = exports.weiHexToGweiDec = exports.gweiDecToWEIBN = exports.fractionBN = exports.BNToHex = exports.isSafeChainId = void 0;
|
|
16
16
|
const utils_1 = require("@metamask/utils");
|
|
17
17
|
const eth_ens_namehash_1 = __importDefault(require("eth-ens-namehash"));
|
|
18
18
|
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
@@ -470,39 +470,6 @@ function isValidJson(value) {
|
|
|
470
470
|
}
|
|
471
471
|
}
|
|
472
472
|
exports.isValidJson = isValidJson;
|
|
473
|
-
/**
|
|
474
|
-
* Checks if a networkId matches a chainId
|
|
475
|
-
*
|
|
476
|
-
* @param networkId - Network ID for the chain.
|
|
477
|
-
* @param chainId - Chain ID for the chain.
|
|
478
|
-
* @returns Whether the network ID matches the chain ID
|
|
479
|
-
*/
|
|
480
|
-
function deprecatedNetworkIdMatchesChainId(networkId, chainId) {
|
|
481
|
-
let networkIdHex;
|
|
482
|
-
try {
|
|
483
|
-
networkIdHex = toHex(networkId);
|
|
484
|
-
}
|
|
485
|
-
catch (err) {
|
|
486
|
-
return false;
|
|
487
|
-
}
|
|
488
|
-
if (networkIdHex === chainId) {
|
|
489
|
-
return true;
|
|
490
|
-
}
|
|
491
|
-
const chainIds = constants_1.NON_MATCHING_NETWORK_ID_TO_CHAIN_IDS[networkId];
|
|
492
|
-
return Boolean(chainIds && chainIds.includes(chainId));
|
|
493
|
-
}
|
|
494
|
-
exports.deprecatedNetworkIdMatchesChainId = deprecatedNetworkIdMatchesChainId;
|
|
495
|
-
/**
|
|
496
|
-
* Converts a chainId to networkId
|
|
497
|
-
*
|
|
498
|
-
* @param chainId - Chain ID for the chain.
|
|
499
|
-
* @returns The network ID
|
|
500
|
-
*/
|
|
501
|
-
function deprecatedConvertChainIdToNetworkId(chainId) {
|
|
502
|
-
const networkId = constants_1.NON_MATCHING_CHAIN_ID_TO_NETWORK_ID[chainId];
|
|
503
|
-
return networkId !== undefined ? networkId : parseInt(chainId, 16).toString();
|
|
504
|
-
}
|
|
505
|
-
exports.deprecatedConvertChainIdToNetworkId = deprecatedConvertChainIdToNetworkId;
|
|
506
473
|
/**
|
|
507
474
|
* Utility method to log if error is a common fetch error and otherwise rethrow it.
|
|
508
475
|
*
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import type EthQuery from '@metamask/eth-query';\nimport type { Hex, Json } from '@metamask/utils';\nimport { isStrictHexString } from '@metamask/utils';\nimport ensNamehash from 'eth-ens-namehash';\nimport {\n addHexPrefix,\n isValidAddress,\n isHexString,\n BN,\n toChecksumAddress,\n stripHexPrefix,\n} from 'ethereumjs-util';\nimport { fromWei, toWei } from 'ethjs-unit';\nimport deepEqual from 'fast-deep-equal';\n\nimport {\n MAX_SAFE_CHAIN_ID,\n NON_MATCHING_CHAIN_ID_TO_NETWORK_ID,\n NON_MATCHING_NETWORK_ID_TO_CHAIN_IDS,\n} from './constants';\n\nconst TIMEOUT_ERROR = new Error('timeout');\n\n/**\n * Checks whether the given number primitive chain ID is safe.\n * Because some cryptographic libraries we use expect the chain ID to be a\n * number primitive, it must not exceed a certain size.\n *\n * @param chainId - The chain ID to check for safety.\n * @returns Whether the given chain ID is safe.\n */\nexport function isSafeChainId(chainId: Hex): boolean {\n if (!isHexString(chainId)) {\n return false;\n }\n const decimalChainId = Number.parseInt(chainId);\n return (\n Number.isSafeInteger(decimalChainId) &&\n decimalChainId > 0 &&\n decimalChainId <= MAX_SAFE_CHAIN_ID\n );\n}\n/**\n * Converts a BN object to a hex string with a '0x' prefix.\n *\n * @param inputBn - BN instance to convert to a hex string.\n * @returns A '0x'-prefixed hex string.\n */\nexport function BNToHex(inputBn: any) {\n return addHexPrefix(inputBn.toString(16));\n}\n\n/**\n * Used to multiply a BN by a fraction.\n *\n * @param targetBN - Number to multiply by a fraction.\n * @param numerator - Numerator of the fraction multiplier.\n * @param denominator - Denominator of the fraction multiplier.\n * @returns Product of the multiplication.\n */\nexport function fractionBN(\n targetBN: any,\n numerator: number | string,\n denominator: number | string,\n) {\n const numBN = new BN(numerator);\n const denomBN = new BN(denominator);\n return targetBN.mul(numBN).div(denomBN);\n}\n\n/**\n * Used to convert a base-10 number from GWEI to WEI. Can handle numbers with decimal parts.\n *\n * @param n - The base 10 number to convert to WEI.\n * @returns The number in WEI, as a BN.\n */\nexport function gweiDecToWEIBN(n: number | string) {\n if (Number.isNaN(n)) {\n return new BN(0);\n }\n\n const parts = n.toString().split('.');\n const wholePart = parts[0] || '0';\n let decimalPart = parts[1] || '';\n\n if (!decimalPart) {\n return toWei(wholePart, 'gwei');\n }\n\n if (decimalPart.length <= 9) {\n return toWei(`${wholePart}.${decimalPart}`, 'gwei');\n }\n\n const decimalPartToRemove = decimalPart.slice(9);\n const decimalRoundingDigit = decimalPartToRemove[0];\n\n decimalPart = decimalPart.slice(0, 9);\n let wei = toWei(`${wholePart}.${decimalPart}`, 'gwei');\n\n if (Number(decimalRoundingDigit) >= 5) {\n wei = wei.add(new BN(1));\n }\n\n return wei;\n}\n\n/**\n * Used to convert values from wei hex format to dec gwei format.\n *\n * @param hex - The value in hex wei.\n * @returns The value in dec gwei as string.\n */\nexport function weiHexToGweiDec(hex: string) {\n const hexWei = new BN(stripHexPrefix(hex), 16);\n return fromWei(hexWei, 'gwei').toString(10);\n}\n\n/**\n * Return a URL that can be used to obtain ETH for a given network.\n *\n * @param networkCode - Network code of desired network.\n * @param address - Address to deposit obtained ETH.\n * @param amount - How much ETH is desired.\n * @returns URL to buy ETH based on network.\n */\nexport function getBuyURL(\n networkCode = '1',\n address?: string,\n amount = 5,\n): string | undefined {\n switch (networkCode) {\n case '1':\n return `https://buy.coinbase.com/?code=9ec56d01-7e81-5017-930c-513daa27bb6a&amount=${amount}&address=${address}&crypto_currency=ETH`;\n case '5':\n return 'https://goerli-faucet.slock.it/';\n case '11155111':\n return 'https://sepoliafaucet.net/';\n default:\n return undefined;\n }\n}\n\n/**\n * Converts a hex string to a BN object.\n *\n * @param inputHex - Number represented as a hex string.\n * @returns A BN instance.\n */\nexport function hexToBN(inputHex: string) {\n return inputHex ? new BN(stripHexPrefix(inputHex), 16) : new BN(0);\n}\n\n/**\n * A helper function that converts hex data to human readable string.\n *\n * @param hex - The hex string to convert to string.\n * @returns A human readable string conversion.\n */\nexport function hexToText(hex: string) {\n try {\n const stripped = stripHexPrefix(hex);\n const buff = Buffer.from(stripped, 'hex');\n return buff.toString('utf8');\n } catch (e) {\n /* istanbul ignore next */\n return hex;\n }\n}\n\n/**\n * Parses a hex string and converts it into a number that can be operated on in a bignum-safe,\n * base-10 way.\n *\n * @param value - A base-16 number encoded as a string.\n * @returns The number as a BN object in base-16 mode.\n */\nexport function fromHex(value: string | BN): BN {\n if (BN.isBN(value)) {\n return value;\n }\n return new BN(hexToBN(value).toString(10));\n}\n\n/**\n * Converts an integer to a hexadecimal representation.\n *\n * @param value - An integer, an integer encoded as a base-10 string, or a BN.\n * @returns The integer encoded as a hex string.\n */\nexport function toHex(value: number | string | BN): Hex {\n if (typeof value === 'string' && isStrictHexString(value)) {\n return value;\n }\n const hexString = BN.isBN(value)\n ? value.toString(16)\n : new BN(value.toString(), 10).toString(16);\n return `0x${hexString}`;\n}\n\n/**\n * Execute and return an asynchronous operation without throwing errors.\n *\n * @param operation - Function returning a Promise.\n * @param logError - Determines if the error should be logged.\n * @returns Promise resolving to the result of the async operation.\n */\nexport async function safelyExecute(\n operation: () => Promise<any>,\n logError = false,\n) {\n try {\n return await operation();\n } catch (error: any) {\n /* istanbul ignore next */\n if (logError) {\n console.error(error);\n }\n return undefined;\n }\n}\n\n/**\n * Execute and return an asynchronous operation with a timeout.\n *\n * @param operation - Function returning a Promise.\n * @param logError - Determines if the error should be logged.\n * @param timeout - Timeout to fail the operation.\n * @returns Promise resolving to the result of the async operation.\n */\nexport async function safelyExecuteWithTimeout(\n operation: () => Promise<any>,\n logError = false,\n timeout = 500,\n) {\n try {\n return await Promise.race([\n operation(),\n new Promise<void>((_, reject) =>\n setTimeout(() => {\n reject(TIMEOUT_ERROR);\n }, timeout),\n ),\n ]);\n } catch (error) {\n /* istanbul ignore next */\n if (logError) {\n console.error(error);\n }\n return undefined;\n }\n}\n\n/**\n * Convert an address to a checksummed hexidecimal address.\n *\n * @param address - The address to convert.\n * @returns A 0x-prefixed hexidecimal checksummed address.\n */\nexport function toChecksumHexAddress(address: string) {\n const hexPrefixed = addHexPrefix(address);\n if (!isHexString(hexPrefixed)) {\n // Version 5.1 of ethereumjs-utils would have returned '0xY' for input 'y'\n // but we shouldn't waste effort trying to change case on a clearly invalid\n // string. Instead just return the hex prefixed original string which most\n // closely mimics the original behavior.\n return hexPrefixed;\n }\n return toChecksumAddress(hexPrefixed);\n}\n\n/**\n * Validates that the input is a hex address. This utility method is a thin\n * wrapper around ethereumjs-util.isValidAddress, with the exception that it\n * by default will return true for hex strings that meet the length requirement\n * of a hex address, but are not prefixed with `0x`.\n *\n * @param possibleAddress - Input parameter to check against.\n * @param options - The validation options.\n * @param options.allowNonPrefixed - If true will allow addresses without `0x` prefix.`\n * @returns Whether or not the input is a valid hex address.\n */\nexport function isValidHexAddress(\n possibleAddress: string,\n { allowNonPrefixed = true } = {},\n) {\n const addressToCheck = allowNonPrefixed\n ? addHexPrefix(possibleAddress)\n : possibleAddress;\n if (!isHexString(addressToCheck)) {\n return false;\n }\n\n return isValidAddress(addressToCheck);\n}\n\n/**\n * Returns whether the given code corresponds to a smart contract.\n *\n * @param code - The potential smart contract code.\n * @returns Whether the code was smart contract code or not.\n */\nexport function isSmartContractCode(code: string) {\n /* istanbul ignore if */\n if (!code) {\n return false;\n }\n // Geth will return '0x', and ganache-core v2.2.1 will return '0x0'\n const smartContractCode = code !== '0x' && code !== '0x0';\n return smartContractCode;\n}\n\n/**\n * Execute fetch and verify that the response was successful.\n *\n * @param request - Request information.\n * @param options - Fetch options.\n * @returns The fetch response.\n */\nexport async function successfulFetch(request: string, options?: RequestInit) {\n const response = await fetch(request, options);\n if (!response.ok) {\n throw new Error(\n `Fetch failed with status '${response.status}' for request '${request}'`,\n );\n }\n return response;\n}\n\n/**\n * Execute fetch and return object response.\n *\n * @param request - The request information.\n * @param options - The fetch options.\n * @returns The fetch response JSON data.\n */\nexport async function handleFetch(request: string, options?: RequestInit) {\n const response = await successfulFetch(request, options);\n const object = await response.json();\n return object;\n}\n\n/**\n * Execute fetch and return object response, log if known error thrown, otherwise rethrow error.\n *\n * @param request - the request options object\n * @param request.url - The request url to query.\n * @param request.options - The fetch options.\n * @param request.timeout - Timeout to fail request\n * @param request.errorCodesToCatch - array of error codes for errors we want to catch in a particular context\n * @returns The fetch response JSON data or undefined (if error occurs).\n */\nexport async function fetchWithErrorHandling({\n url,\n options,\n timeout,\n errorCodesToCatch,\n}: {\n url: string;\n options?: RequestInit;\n timeout?: number;\n errorCodesToCatch?: number[];\n}) {\n let result;\n try {\n if (timeout) {\n result = Promise.race([\n await handleFetch(url, options),\n new Promise<Response>((_, reject) =>\n setTimeout(() => {\n reject(TIMEOUT_ERROR);\n }, timeout),\n ),\n ]);\n } else {\n result = await handleFetch(url, options);\n }\n } catch (e) {\n logOrRethrowError(e, errorCodesToCatch);\n }\n return result;\n}\n\n/**\n * Fetch that fails after timeout.\n *\n * @param url - Url to fetch.\n * @param options - Options to send with the request.\n * @param timeout - Timeout to fail request.\n * @returns Promise resolving the request.\n */\nexport async function timeoutFetch(\n url: string,\n options?: RequestInit,\n timeout = 500,\n): Promise<Response> {\n return Promise.race([\n successfulFetch(url, options),\n new Promise<Response>((_, reject) =>\n setTimeout(() => {\n reject(TIMEOUT_ERROR);\n }, timeout),\n ),\n ]);\n}\n\n/**\n * Normalizes the given ENS name.\n *\n * @param ensName - The ENS name.\n * @returns The normalized ENS name string.\n */\nexport function normalizeEnsName(ensName: string): string | null {\n if (ensName && typeof ensName === 'string') {\n try {\n const normalized = ensNamehash.normalize(ensName.trim());\n // this regex is only sufficient with the above call to ensNamehash.normalize\n // TODO: change 7 in regex to 3 when shorter ENS domains are live\n if (normalized.match(/^(([\\w\\d-]+)\\.)*[\\w\\d-]{7,}\\.(eth|test)$/u)) {\n return normalized;\n }\n } catch (_) {\n // do nothing\n }\n }\n return null;\n}\n\n/**\n * Wrapper method to handle EthQuery requests.\n *\n * @param ethQuery - EthQuery object initialized with a provider.\n * @param method - Method to request.\n * @param args - Arguments to send.\n * @returns Promise resolving the request.\n */\nexport function query(\n ethQuery: EthQuery,\n method: string,\n args: any[] = [],\n): Promise<any> {\n return new Promise((resolve, reject) => {\n const cb = (error: unknown, result: unknown) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(result);\n };\n\n // Using `in` rather than `hasProperty` so that we look up the prototype\n // chain for the method.\n if (method in ethQuery && typeof ethQuery[method] === 'function') {\n ethQuery[method](...args, cb);\n } else {\n ethQuery.sendAsync({ method, params: args }, cb);\n }\n });\n}\n\n/**\n * Converts valid hex strings to decimal numbers, and handles unexpected arg types.\n *\n * @param value - a string that is either a hexadecimal with `0x` prefix or a decimal string.\n * @returns a decimal number.\n */\nexport const convertHexToDecimal = (\n value: string | undefined = '0x0',\n): number => {\n if (isHexString(value)) {\n return parseInt(value, 16);\n }\n\n return Number(value) ? Number(value) : 0;\n};\n\ntype PlainObject = Record<number | string | symbol, unknown>;\n\n/**\n * Determines whether a value is a \"plain\" object.\n *\n * @param value - A value to check\n * @returns True if the passed value is a plain object\n */\nexport function isPlainObject(value: unknown): value is PlainObject {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Like {@link Array}, but always non-empty.\n *\n * @template T - The non-empty array member type.\n */\nexport type NonEmptyArray<T> = [T, ...T[]];\n\n/**\n * Type guard for {@link NonEmptyArray}.\n *\n * @template T - The non-empty array member type.\n * @param value - The value to check.\n * @returns Whether the value is a non-empty array.\n */\nexport function isNonEmptyArray<T>(value: T[]): value is NonEmptyArray<T> {\n return Array.isArray(value) && value.length > 0;\n}\n\n/**\n * Type guard for {@link Json}.\n *\n * @param value - The value to check.\n * @returns Whether the value is valid JSON.\n */\nexport function isValidJson(value: unknown): value is Json {\n try {\n return deepEqual(value, JSON.parse(JSON.stringify(value)));\n } catch (_) {\n return false;\n }\n}\n\n/**\n * Checks if a networkId matches a chainId\n *\n * @param networkId - Network ID for the chain.\n * @param chainId - Chain ID for the chain.\n * @returns Whether the network ID matches the chain ID\n */\nexport function deprecatedNetworkIdMatchesChainId(\n networkId: string,\n chainId: Hex,\n): boolean {\n let networkIdHex;\n try {\n networkIdHex = toHex(networkId);\n } catch (err) {\n return false;\n }\n if (networkIdHex === chainId) {\n return true;\n }\n const chainIds = NON_MATCHING_NETWORK_ID_TO_CHAIN_IDS[networkId];\n return Boolean(chainIds && chainIds.includes(chainId));\n}\n\n/**\n * Converts a chainId to networkId\n *\n * @param chainId - Chain ID for the chain.\n * @returns The network ID\n */\nexport function deprecatedConvertChainIdToNetworkId(chainId: Hex): string {\n const networkId = NON_MATCHING_CHAIN_ID_TO_NETWORK_ID[chainId];\n return networkId !== undefined ? networkId : parseInt(chainId, 16).toString();\n}\n\n/**\n * Utility method to log if error is a common fetch error and otherwise rethrow it.\n *\n * @param error - Caught error that we should either rethrow or log to console\n * @param codesToCatch - array of error codes for errors we want to catch and log in a particular context\n */\nfunction logOrRethrowError(error: any, codesToCatch: number[] = []) {\n if (!error) {\n return;\n }\n\n const includesErrorCodeToCatch = codesToCatch.some((code) =>\n error.message?.includes(`Fetch failed with status '${code}'`),\n );\n\n if (\n error instanceof Error &&\n (includesErrorCodeToCatch ||\n error.message?.includes('Failed to fetch') ||\n error === TIMEOUT_ERROR)\n ) {\n console.error(error);\n } else {\n throw error;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import type EthQuery from '@metamask/eth-query';\nimport type { Hex, Json } from '@metamask/utils';\nimport { isStrictHexString } from '@metamask/utils';\nimport ensNamehash from 'eth-ens-namehash';\nimport {\n addHexPrefix,\n isValidAddress,\n isHexString,\n BN,\n toChecksumAddress,\n stripHexPrefix,\n} from 'ethereumjs-util';\nimport { fromWei, toWei } from 'ethjs-unit';\nimport deepEqual from 'fast-deep-equal';\n\nimport { MAX_SAFE_CHAIN_ID } from './constants';\n\nconst TIMEOUT_ERROR = new Error('timeout');\n\n/**\n * Checks whether the given number primitive chain ID is safe.\n * Because some cryptographic libraries we use expect the chain ID to be a\n * number primitive, it must not exceed a certain size.\n *\n * @param chainId - The chain ID to check for safety.\n * @returns Whether the given chain ID is safe.\n */\nexport function isSafeChainId(chainId: Hex): boolean {\n if (!isHexString(chainId)) {\n return false;\n }\n const decimalChainId = Number.parseInt(chainId);\n return (\n Number.isSafeInteger(decimalChainId) &&\n decimalChainId > 0 &&\n decimalChainId <= MAX_SAFE_CHAIN_ID\n );\n}\n/**\n * Converts a BN object to a hex string with a '0x' prefix.\n *\n * @param inputBn - BN instance to convert to a hex string.\n * @returns A '0x'-prefixed hex string.\n */\nexport function BNToHex(inputBn: any) {\n return addHexPrefix(inputBn.toString(16));\n}\n\n/**\n * Used to multiply a BN by a fraction.\n *\n * @param targetBN - Number to multiply by a fraction.\n * @param numerator - Numerator of the fraction multiplier.\n * @param denominator - Denominator of the fraction multiplier.\n * @returns Product of the multiplication.\n */\nexport function fractionBN(\n targetBN: any,\n numerator: number | string,\n denominator: number | string,\n) {\n const numBN = new BN(numerator);\n const denomBN = new BN(denominator);\n return targetBN.mul(numBN).div(denomBN);\n}\n\n/**\n * Used to convert a base-10 number from GWEI to WEI. Can handle numbers with decimal parts.\n *\n * @param n - The base 10 number to convert to WEI.\n * @returns The number in WEI, as a BN.\n */\nexport function gweiDecToWEIBN(n: number | string) {\n if (Number.isNaN(n)) {\n return new BN(0);\n }\n\n const parts = n.toString().split('.');\n const wholePart = parts[0] || '0';\n let decimalPart = parts[1] || '';\n\n if (!decimalPart) {\n return toWei(wholePart, 'gwei');\n }\n\n if (decimalPart.length <= 9) {\n return toWei(`${wholePart}.${decimalPart}`, 'gwei');\n }\n\n const decimalPartToRemove = decimalPart.slice(9);\n const decimalRoundingDigit = decimalPartToRemove[0];\n\n decimalPart = decimalPart.slice(0, 9);\n let wei = toWei(`${wholePart}.${decimalPart}`, 'gwei');\n\n if (Number(decimalRoundingDigit) >= 5) {\n wei = wei.add(new BN(1));\n }\n\n return wei;\n}\n\n/**\n * Used to convert values from wei hex format to dec gwei format.\n *\n * @param hex - The value in hex wei.\n * @returns The value in dec gwei as string.\n */\nexport function weiHexToGweiDec(hex: string) {\n const hexWei = new BN(stripHexPrefix(hex), 16);\n return fromWei(hexWei, 'gwei').toString(10);\n}\n\n/**\n * Return a URL that can be used to obtain ETH for a given network.\n *\n * @param networkCode - Network code of desired network.\n * @param address - Address to deposit obtained ETH.\n * @param amount - How much ETH is desired.\n * @returns URL to buy ETH based on network.\n */\nexport function getBuyURL(\n networkCode = '1',\n address?: string,\n amount = 5,\n): string | undefined {\n switch (networkCode) {\n case '1':\n return `https://buy.coinbase.com/?code=9ec56d01-7e81-5017-930c-513daa27bb6a&amount=${amount}&address=${address}&crypto_currency=ETH`;\n case '5':\n return 'https://goerli-faucet.slock.it/';\n case '11155111':\n return 'https://sepoliafaucet.net/';\n default:\n return undefined;\n }\n}\n\n/**\n * Converts a hex string to a BN object.\n *\n * @param inputHex - Number represented as a hex string.\n * @returns A BN instance.\n */\nexport function hexToBN(inputHex: string) {\n return inputHex ? new BN(stripHexPrefix(inputHex), 16) : new BN(0);\n}\n\n/**\n * A helper function that converts hex data to human readable string.\n *\n * @param hex - The hex string to convert to string.\n * @returns A human readable string conversion.\n */\nexport function hexToText(hex: string) {\n try {\n const stripped = stripHexPrefix(hex);\n const buff = Buffer.from(stripped, 'hex');\n return buff.toString('utf8');\n } catch (e) {\n /* istanbul ignore next */\n return hex;\n }\n}\n\n/**\n * Parses a hex string and converts it into a number that can be operated on in a bignum-safe,\n * base-10 way.\n *\n * @param value - A base-16 number encoded as a string.\n * @returns The number as a BN object in base-16 mode.\n */\nexport function fromHex(value: string | BN): BN {\n if (BN.isBN(value)) {\n return value;\n }\n return new BN(hexToBN(value).toString(10));\n}\n\n/**\n * Converts an integer to a hexadecimal representation.\n *\n * @param value - An integer, an integer encoded as a base-10 string, or a BN.\n * @returns The integer encoded as a hex string.\n */\nexport function toHex(value: number | string | BN): Hex {\n if (typeof value === 'string' && isStrictHexString(value)) {\n return value;\n }\n const hexString = BN.isBN(value)\n ? value.toString(16)\n : new BN(value.toString(), 10).toString(16);\n return `0x${hexString}`;\n}\n\n/**\n * Execute and return an asynchronous operation without throwing errors.\n *\n * @param operation - Function returning a Promise.\n * @param logError - Determines if the error should be logged.\n * @returns Promise resolving to the result of the async operation.\n */\nexport async function safelyExecute(\n operation: () => Promise<any>,\n logError = false,\n) {\n try {\n return await operation();\n } catch (error: any) {\n /* istanbul ignore next */\n if (logError) {\n console.error(error);\n }\n return undefined;\n }\n}\n\n/**\n * Execute and return an asynchronous operation with a timeout.\n *\n * @param operation - Function returning a Promise.\n * @param logError - Determines if the error should be logged.\n * @param timeout - Timeout to fail the operation.\n * @returns Promise resolving to the result of the async operation.\n */\nexport async function safelyExecuteWithTimeout(\n operation: () => Promise<any>,\n logError = false,\n timeout = 500,\n) {\n try {\n return await Promise.race([\n operation(),\n new Promise<void>((_, reject) =>\n setTimeout(() => {\n reject(TIMEOUT_ERROR);\n }, timeout),\n ),\n ]);\n } catch (error) {\n /* istanbul ignore next */\n if (logError) {\n console.error(error);\n }\n return undefined;\n }\n}\n\n/**\n * Convert an address to a checksummed hexidecimal address.\n *\n * @param address - The address to convert.\n * @returns A 0x-prefixed hexidecimal checksummed address.\n */\nexport function toChecksumHexAddress(address: string) {\n const hexPrefixed = addHexPrefix(address);\n if (!isHexString(hexPrefixed)) {\n // Version 5.1 of ethereumjs-utils would have returned '0xY' for input 'y'\n // but we shouldn't waste effort trying to change case on a clearly invalid\n // string. Instead just return the hex prefixed original string which most\n // closely mimics the original behavior.\n return hexPrefixed;\n }\n return toChecksumAddress(hexPrefixed);\n}\n\n/**\n * Validates that the input is a hex address. This utility method is a thin\n * wrapper around ethereumjs-util.isValidAddress, with the exception that it\n * by default will return true for hex strings that meet the length requirement\n * of a hex address, but are not prefixed with `0x`.\n *\n * @param possibleAddress - Input parameter to check against.\n * @param options - The validation options.\n * @param options.allowNonPrefixed - If true will allow addresses without `0x` prefix.`\n * @returns Whether or not the input is a valid hex address.\n */\nexport function isValidHexAddress(\n possibleAddress: string,\n { allowNonPrefixed = true } = {},\n) {\n const addressToCheck = allowNonPrefixed\n ? addHexPrefix(possibleAddress)\n : possibleAddress;\n if (!isHexString(addressToCheck)) {\n return false;\n }\n\n return isValidAddress(addressToCheck);\n}\n\n/**\n * Returns whether the given code corresponds to a smart contract.\n *\n * @param code - The potential smart contract code.\n * @returns Whether the code was smart contract code or not.\n */\nexport function isSmartContractCode(code: string) {\n /* istanbul ignore if */\n if (!code) {\n return false;\n }\n // Geth will return '0x', and ganache-core v2.2.1 will return '0x0'\n const smartContractCode = code !== '0x' && code !== '0x0';\n return smartContractCode;\n}\n\n/**\n * Execute fetch and verify that the response was successful.\n *\n * @param request - Request information.\n * @param options - Fetch options.\n * @returns The fetch response.\n */\nexport async function successfulFetch(request: string, options?: RequestInit) {\n const response = await fetch(request, options);\n if (!response.ok) {\n throw new Error(\n `Fetch failed with status '${response.status}' for request '${request}'`,\n );\n }\n return response;\n}\n\n/**\n * Execute fetch and return object response.\n *\n * @param request - The request information.\n * @param options - The fetch options.\n * @returns The fetch response JSON data.\n */\nexport async function handleFetch(request: string, options?: RequestInit) {\n const response = await successfulFetch(request, options);\n const object = await response.json();\n return object;\n}\n\n/**\n * Execute fetch and return object response, log if known error thrown, otherwise rethrow error.\n *\n * @param request - the request options object\n * @param request.url - The request url to query.\n * @param request.options - The fetch options.\n * @param request.timeout - Timeout to fail request\n * @param request.errorCodesToCatch - array of error codes for errors we want to catch in a particular context\n * @returns The fetch response JSON data or undefined (if error occurs).\n */\nexport async function fetchWithErrorHandling({\n url,\n options,\n timeout,\n errorCodesToCatch,\n}: {\n url: string;\n options?: RequestInit;\n timeout?: number;\n errorCodesToCatch?: number[];\n}) {\n let result;\n try {\n if (timeout) {\n result = Promise.race([\n await handleFetch(url, options),\n new Promise<Response>((_, reject) =>\n setTimeout(() => {\n reject(TIMEOUT_ERROR);\n }, timeout),\n ),\n ]);\n } else {\n result = await handleFetch(url, options);\n }\n } catch (e) {\n logOrRethrowError(e, errorCodesToCatch);\n }\n return result;\n}\n\n/**\n * Fetch that fails after timeout.\n *\n * @param url - Url to fetch.\n * @param options - Options to send with the request.\n * @param timeout - Timeout to fail request.\n * @returns Promise resolving the request.\n */\nexport async function timeoutFetch(\n url: string,\n options?: RequestInit,\n timeout = 500,\n): Promise<Response> {\n return Promise.race([\n successfulFetch(url, options),\n new Promise<Response>((_, reject) =>\n setTimeout(() => {\n reject(TIMEOUT_ERROR);\n }, timeout),\n ),\n ]);\n}\n\n/**\n * Normalizes the given ENS name.\n *\n * @param ensName - The ENS name.\n * @returns The normalized ENS name string.\n */\nexport function normalizeEnsName(ensName: string): string | null {\n if (ensName && typeof ensName === 'string') {\n try {\n const normalized = ensNamehash.normalize(ensName.trim());\n // this regex is only sufficient with the above call to ensNamehash.normalize\n // TODO: change 7 in regex to 3 when shorter ENS domains are live\n if (normalized.match(/^(([\\w\\d-]+)\\.)*[\\w\\d-]{7,}\\.(eth|test)$/u)) {\n return normalized;\n }\n } catch (_) {\n // do nothing\n }\n }\n return null;\n}\n\n/**\n * Wrapper method to handle EthQuery requests.\n *\n * @param ethQuery - EthQuery object initialized with a provider.\n * @param method - Method to request.\n * @param args - Arguments to send.\n * @returns Promise resolving the request.\n */\nexport function query(\n ethQuery: EthQuery,\n method: string,\n args: any[] = [],\n): Promise<any> {\n return new Promise((resolve, reject) => {\n const cb = (error: unknown, result: unknown) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(result);\n };\n\n // Using `in` rather than `hasProperty` so that we look up the prototype\n // chain for the method.\n if (method in ethQuery && typeof ethQuery[method] === 'function') {\n ethQuery[method](...args, cb);\n } else {\n ethQuery.sendAsync({ method, params: args }, cb);\n }\n });\n}\n\n/**\n * Converts valid hex strings to decimal numbers, and handles unexpected arg types.\n *\n * @param value - a string that is either a hexadecimal with `0x` prefix or a decimal string.\n * @returns a decimal number.\n */\nexport const convertHexToDecimal = (\n value: string | undefined = '0x0',\n): number => {\n if (isHexString(value)) {\n return parseInt(value, 16);\n }\n\n return Number(value) ? Number(value) : 0;\n};\n\ntype PlainObject = Record<number | string | symbol, unknown>;\n\n/**\n * Determines whether a value is a \"plain\" object.\n *\n * @param value - A value to check\n * @returns True if the passed value is a plain object\n */\nexport function isPlainObject(value: unknown): value is PlainObject {\n return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\n/**\n * Like {@link Array}, but always non-empty.\n *\n * @template T - The non-empty array member type.\n */\nexport type NonEmptyArray<T> = [T, ...T[]];\n\n/**\n * Type guard for {@link NonEmptyArray}.\n *\n * @template T - The non-empty array member type.\n * @param value - The value to check.\n * @returns Whether the value is a non-empty array.\n */\nexport function isNonEmptyArray<T>(value: T[]): value is NonEmptyArray<T> {\n return Array.isArray(value) && value.length > 0;\n}\n\n/**\n * Type guard for {@link Json}.\n *\n * @param value - The value to check.\n * @returns Whether the value is valid JSON.\n */\nexport function isValidJson(value: unknown): value is Json {\n try {\n return deepEqual(value, JSON.parse(JSON.stringify(value)));\n } catch (_) {\n return false;\n }\n}\n\n/**\n * Utility method to log if error is a common fetch error and otherwise rethrow it.\n *\n * @param error - Caught error that we should either rethrow or log to console\n * @param codesToCatch - array of error codes for errors we want to catch and log in a particular context\n */\nfunction logOrRethrowError(error: any, codesToCatch: number[] = []) {\n if (!error) {\n return;\n }\n\n const includesErrorCodeToCatch = codesToCatch.some((code) =>\n error.message?.includes(`Fetch failed with status '${code}'`),\n );\n\n if (\n error instanceof Error &&\n (includesErrorCodeToCatch ||\n error.message?.includes('Failed to fetch') ||\n error === TIMEOUT_ERROR)\n ) {\n console.error(error);\n } else {\n throw error;\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@metamask-previews/controller-utils",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.2-preview.ce06456",
|
|
4
4
|
"description": "Data and convenience functions shared by multiple packages",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"MetaMask",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/controller-utils",
|
|
26
26
|
"publish:preview": "yarn npm publish --tag preview",
|
|
27
27
|
"test": "jest",
|
|
28
|
+
"test:clean": "jest --clearCache",
|
|
28
29
|
"test:watch": "jest --watch"
|
|
29
30
|
},
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"@metamask/eth-query": "^3.0.1",
|
|
32
|
-
"@metamask/utils": "^
|
|
33
|
+
"@metamask/utils": "^8.1.0",
|
|
33
34
|
"@spruceid/siwe-parser": "1.1.3",
|
|
34
35
|
"eth-ens-namehash": "^2.0.8",
|
|
35
|
-
"eth-rpc-errors": "^4.0.2",
|
|
36
36
|
"ethereumjs-util": "^7.0.10",
|
|
37
37
|
"ethjs-unit": "^0.1.6",
|
|
38
38
|
"fast-deep-equal": "^3.1.3"
|
|
@@ -40,14 +40,13 @@
|
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@metamask/auto-changelog": "^3.1.0",
|
|
42
42
|
"@types/jest": "^27.4.1",
|
|
43
|
-
"abort-controller": "^3.0.0",
|
|
44
43
|
"deepmerge": "^4.2.2",
|
|
45
44
|
"jest": "^27.5.1",
|
|
46
45
|
"nock": "^13.3.1",
|
|
47
46
|
"ts-jest": "^27.1.4",
|
|
48
|
-
"typedoc": "^0.
|
|
49
|
-
"typedoc-plugin-missing-exports": "^0.
|
|
50
|
-
"typescript": "~4.
|
|
47
|
+
"typedoc": "^0.24.8",
|
|
48
|
+
"typedoc-plugin-missing-exports": "^2.0.0",
|
|
49
|
+
"typescript": "~4.8.4"
|
|
51
50
|
},
|
|
52
51
|
"engines": {
|
|
53
52
|
"node": ">=16.0.0"
|