@metamask-previews/controller-utils 8.0.4-preview.d78968a2 → 8.0.4-preview.eb2135e
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/dist/chunk-47C6DTJM.mjs +141 -0
- package/dist/chunk-47C6DTJM.mjs.map +1 -0
- package/dist/chunk-7IUO3U3H.mjs +67 -0
- package/dist/chunk-7IUO3U3H.mjs.map +1 -0
- package/dist/chunk-AEMFFAHN.js +141 -0
- package/dist/chunk-AEMFFAHN.js.map +1 -0
- package/dist/chunk-CV6ML7X7.mjs +293 -0
- package/dist/chunk-CV6ML7X7.mjs.map +1 -0
- package/dist/chunk-DBJSLKNR.js +9 -0
- package/dist/chunk-DBJSLKNR.js.map +1 -0
- package/dist/chunk-LGGBBU6G.js +67 -0
- package/dist/chunk-LGGBBU6G.js.map +1 -0
- package/dist/chunk-M6G3ISXG.js +86 -0
- package/dist/chunk-M6G3ISXG.js.map +1 -0
- package/dist/chunk-RMQ2AQG4.js +293 -0
- package/dist/chunk-RMQ2AQG4.js.map +1 -0
- package/dist/chunk-RZFCNKW4.mjs +9 -0
- package/dist/chunk-RZFCNKW4.mjs.map +1 -0
- package/dist/chunk-VDEIYYE4.mjs +86 -0
- package/dist/chunk-VDEIYYE4.mjs.map +1 -0
- package/dist/constants.js +49 -125
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs +50 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/index.js +125 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +126 -0
- package/dist/index.mjs.map +1 -0
- package/dist/logger.js +8 -6
- package/dist/logger.js.map +1 -1
- package/dist/logger.mjs +9 -0
- package/dist/logger.mjs.map +1 -0
- package/dist/siwe.js +11 -128
- package/dist/siwe.js.map +1 -1
- package/dist/siwe.mjs +12 -0
- package/dist/siwe.mjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/{constants.d.ts → types/constants.d.ts} +8 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/siwe.d.ts.map +1 -0
- package/dist/{types.d.ts → types/types.d.ts} +5 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/util.d.ts.map +1 -0
- package/dist/types.js +18 -75
- package/dist/types.js.map +1 -1
- package/dist/types.mjs +19 -0
- package/dist/types.mjs.map +1 -0
- package/dist/util.js +56 -508
- package/dist/util.js.map +1 -1
- package/dist/util.mjs +57 -0
- package/dist/util.mjs.map +1 -0
- package/package.json +11 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/siwe.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/util.d.ts.map +0 -1
- /package/dist/{index.d.ts → types/index.d.ts} +0 -0
- /package/dist/{logger.d.ts → types/logger.d.ts} +0 -0
- /package/dist/{siwe.d.ts → types/siwe.d.ts} +0 -0
- /package/dist/{util.d.ts → types/util.d.ts} +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChainId,
|
|
3
|
+
NetworkType
|
|
4
|
+
} from "./chunk-7IUO3U3H.mjs";
|
|
5
|
+
|
|
6
|
+
// src/constants.ts
|
|
7
|
+
var RPC = "rpc";
|
|
8
|
+
var FALL_BACK_VS_CURRENCY = "ETH";
|
|
9
|
+
var IPFS_DEFAULT_GATEWAY_URL = "https://cloudflare-ipfs.com/ipfs/";
|
|
10
|
+
var GANACHE_CHAIN_ID = "0x539";
|
|
11
|
+
var MAX_SAFE_CHAIN_ID = 4503599627370476;
|
|
12
|
+
var ERC721 = "ERC721";
|
|
13
|
+
var ERC1155 = "ERC1155";
|
|
14
|
+
var ERC20 = "ERC20";
|
|
15
|
+
var ERC721_INTERFACE_ID = "0x80ac58cd";
|
|
16
|
+
var ERC721_METADATA_INTERFACE_ID = "0x5b5e139f";
|
|
17
|
+
var ERC721_ENUMERABLE_INTERFACE_ID = "0x780e9d63";
|
|
18
|
+
var ERC1155_INTERFACE_ID = "0xd9b67a26";
|
|
19
|
+
var ERC1155_METADATA_URI_INTERFACE_ID = "0x0e89341c";
|
|
20
|
+
var ERC1155_TOKEN_RECEIVER_INTERFACE_ID = "0x4e2312e0";
|
|
21
|
+
var GWEI = "gwei";
|
|
22
|
+
var ASSET_TYPES = {
|
|
23
|
+
NATIVE: "NATIVE",
|
|
24
|
+
TOKEN: "TOKEN",
|
|
25
|
+
NFT: "NFT",
|
|
26
|
+
UNKNOWN: "UNKNOWN"
|
|
27
|
+
};
|
|
28
|
+
var TESTNET_TICKER_SYMBOLS = {
|
|
29
|
+
GOERLI: "GoerliETH",
|
|
30
|
+
SEPOLIA: "SepoliaETH",
|
|
31
|
+
LINEA_GOERLI: "LineaETH",
|
|
32
|
+
LINEA_SEPOLIA: "LineaETH"
|
|
33
|
+
};
|
|
34
|
+
var BUILT_IN_NETWORKS = {
|
|
35
|
+
[NetworkType.goerli]: {
|
|
36
|
+
chainId: ChainId.goerli,
|
|
37
|
+
ticker: "GoerliETH" /* goerli */,
|
|
38
|
+
rpcPrefs: {
|
|
39
|
+
blockExplorerUrl: `https://${NetworkType.goerli}.etherscan.io`
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
[NetworkType.sepolia]: {
|
|
43
|
+
chainId: ChainId.sepolia,
|
|
44
|
+
ticker: "SepoliaETH" /* sepolia */,
|
|
45
|
+
rpcPrefs: {
|
|
46
|
+
blockExplorerUrl: `https://${NetworkType.sepolia}.etherscan.io`
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
[NetworkType.mainnet]: {
|
|
50
|
+
chainId: ChainId.mainnet,
|
|
51
|
+
ticker: "ETH" /* mainnet */,
|
|
52
|
+
rpcPrefs: {
|
|
53
|
+
blockExplorerUrl: "https://etherscan.io"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
[NetworkType["linea-goerli"]]: {
|
|
57
|
+
chainId: ChainId["linea-goerli"],
|
|
58
|
+
ticker: "LineaETH" /* linea-goerli */,
|
|
59
|
+
rpcPrefs: {
|
|
60
|
+
blockExplorerUrl: "https://goerli.lineascan.build"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
[NetworkType["linea-sepolia"]]: {
|
|
64
|
+
chainId: ChainId["linea-sepolia"],
|
|
65
|
+
ticker: "LineaETH" /* linea-sepolia */,
|
|
66
|
+
rpcPrefs: {
|
|
67
|
+
blockExplorerUrl: "https://sepolia.lineascan.build"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[NetworkType["linea-mainnet"]]: {
|
|
71
|
+
chainId: ChainId["linea-mainnet"],
|
|
72
|
+
ticker: "ETH" /* linea-mainnet */,
|
|
73
|
+
rpcPrefs: {
|
|
74
|
+
blockExplorerUrl: "https://lineascan.build"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
[NetworkType.rpc]: {
|
|
78
|
+
chainId: void 0,
|
|
79
|
+
blockExplorerUrl: void 0,
|
|
80
|
+
ticker: void 0,
|
|
81
|
+
rpcPrefs: void 0
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var OPENSEA_PROXY_URL = "https://proxy.metafi.codefi.network/opensea/v1/api/v2";
|
|
85
|
+
var ORIGIN_METAMASK = "metamask";
|
|
86
|
+
var ApprovalType = /* @__PURE__ */ ((ApprovalType2) => {
|
|
87
|
+
ApprovalType2["AddEthereumChain"] = "wallet_addEthereumChain";
|
|
88
|
+
ApprovalType2["ConnectAccounts"] = "connect_accounts";
|
|
89
|
+
ApprovalType2["EthDecrypt"] = "eth_decrypt";
|
|
90
|
+
ApprovalType2["EthGetEncryptionPublicKey"] = "eth_getEncryptionPublicKey";
|
|
91
|
+
ApprovalType2["EthSign"] = "eth_sign";
|
|
92
|
+
ApprovalType2["EthSignTypedData"] = "eth_signTypedData";
|
|
93
|
+
ApprovalType2["PersonalSign"] = "personal_sign";
|
|
94
|
+
ApprovalType2["ResultError"] = "result_error";
|
|
95
|
+
ApprovalType2["ResultSuccess"] = "result_success";
|
|
96
|
+
ApprovalType2["SnapDialogAlert"] = "snap_dialog:alert";
|
|
97
|
+
ApprovalType2["SnapDialogConfirmation"] = "snap_dialog:confirmation";
|
|
98
|
+
ApprovalType2["SnapDialogPrompt"] = "snap_dialog:prompt";
|
|
99
|
+
ApprovalType2["SwitchEthereumChain"] = "wallet_switchEthereumChain";
|
|
100
|
+
ApprovalType2["Transaction"] = "transaction";
|
|
101
|
+
ApprovalType2["Unlock"] = "unlock";
|
|
102
|
+
ApprovalType2["WalletConnect"] = "wallet_connect";
|
|
103
|
+
ApprovalType2["WalletRequestPermissions"] = "wallet_requestPermissions";
|
|
104
|
+
ApprovalType2["WatchAsset"] = "wallet_watchAsset";
|
|
105
|
+
return ApprovalType2;
|
|
106
|
+
})(ApprovalType || {});
|
|
107
|
+
var CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP = {
|
|
108
|
+
[ChainId.goerli]: "goerli" /* Goerli */,
|
|
109
|
+
[ChainId.sepolia]: "sepolia" /* Sepolia */,
|
|
110
|
+
[ChainId.mainnet]: "mainnet" /* Mainnet */,
|
|
111
|
+
[ChainId["linea-goerli"]]: "linea-goerli" /* LineaGoerli */,
|
|
112
|
+
[ChainId["linea-sepolia"]]: "linea-sepolia" /* LineaSepolia */,
|
|
113
|
+
[ChainId["linea-mainnet"]]: "linea-mainnet" /* LineaMainnet */,
|
|
114
|
+
[ChainId.aurora]: "aurora" /* Aurora */
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export {
|
|
118
|
+
RPC,
|
|
119
|
+
FALL_BACK_VS_CURRENCY,
|
|
120
|
+
IPFS_DEFAULT_GATEWAY_URL,
|
|
121
|
+
GANACHE_CHAIN_ID,
|
|
122
|
+
MAX_SAFE_CHAIN_ID,
|
|
123
|
+
ERC721,
|
|
124
|
+
ERC1155,
|
|
125
|
+
ERC20,
|
|
126
|
+
ERC721_INTERFACE_ID,
|
|
127
|
+
ERC721_METADATA_INTERFACE_ID,
|
|
128
|
+
ERC721_ENUMERABLE_INTERFACE_ID,
|
|
129
|
+
ERC1155_INTERFACE_ID,
|
|
130
|
+
ERC1155_METADATA_URI_INTERFACE_ID,
|
|
131
|
+
ERC1155_TOKEN_RECEIVER_INTERFACE_ID,
|
|
132
|
+
GWEI,
|
|
133
|
+
ASSET_TYPES,
|
|
134
|
+
TESTNET_TICKER_SYMBOLS,
|
|
135
|
+
BUILT_IN_NETWORKS,
|
|
136
|
+
OPENSEA_PROXY_URL,
|
|
137
|
+
ORIGIN_METAMASK,
|
|
138
|
+
ApprovalType,
|
|
139
|
+
CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP
|
|
140
|
+
};
|
|
141
|
+
//# sourceMappingURL=chunk-47C6DTJM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"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 LINEA_SEPOLIA: '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-sepolia']]: {\n chainId: ChainId['linea-sepolia'],\n ticker: NetworksTicker['linea-sepolia'],\n rpcPrefs: {\n blockExplorerUrl: 'https://sepolia.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 ticker: 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/v2';\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-sepolia']]: BuiltInNetworkName.LineaSepolia,\n [ChainId['linea-mainnet']]: BuiltInNetworkName.LineaMainnet,\n [ChainId.aurora]: BuiltInNetworkName.Aurora,\n};\n"],"mappings":"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","names":["ApprovalType"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// src/types.ts
|
|
2
|
+
var InfuraNetworkType = {
|
|
3
|
+
mainnet: "mainnet",
|
|
4
|
+
goerli: "goerli",
|
|
5
|
+
sepolia: "sepolia",
|
|
6
|
+
"linea-goerli": "linea-goerli",
|
|
7
|
+
"linea-sepolia": "linea-sepolia",
|
|
8
|
+
"linea-mainnet": "linea-mainnet"
|
|
9
|
+
};
|
|
10
|
+
var NetworkType = {
|
|
11
|
+
...InfuraNetworkType,
|
|
12
|
+
rpc: "rpc"
|
|
13
|
+
};
|
|
14
|
+
function isNetworkType(val) {
|
|
15
|
+
return Object.values(NetworkType).includes(val);
|
|
16
|
+
}
|
|
17
|
+
function isInfuraNetworkType(value) {
|
|
18
|
+
const infuraNetworkTypes = Object.keys(InfuraNetworkType);
|
|
19
|
+
return infuraNetworkTypes.includes(value);
|
|
20
|
+
}
|
|
21
|
+
var BuiltInNetworkName = /* @__PURE__ */ ((BuiltInNetworkName2) => {
|
|
22
|
+
BuiltInNetworkName2["Mainnet"] = "mainnet";
|
|
23
|
+
BuiltInNetworkName2["Goerli"] = "goerli";
|
|
24
|
+
BuiltInNetworkName2["Sepolia"] = "sepolia";
|
|
25
|
+
BuiltInNetworkName2["LineaGoerli"] = "linea-goerli";
|
|
26
|
+
BuiltInNetworkName2["LineaSepolia"] = "linea-sepolia";
|
|
27
|
+
BuiltInNetworkName2["LineaMainnet"] = "linea-mainnet";
|
|
28
|
+
BuiltInNetworkName2["Aurora"] = "aurora";
|
|
29
|
+
return BuiltInNetworkName2;
|
|
30
|
+
})(BuiltInNetworkName || {});
|
|
31
|
+
var ChainId = {
|
|
32
|
+
["mainnet" /* Mainnet */]: "0x1",
|
|
33
|
+
// toHex(1)
|
|
34
|
+
["goerli" /* Goerli */]: "0x5",
|
|
35
|
+
// toHex(5)
|
|
36
|
+
["sepolia" /* Sepolia */]: "0xaa36a7",
|
|
37
|
+
// toHex(11155111)
|
|
38
|
+
["aurora" /* Aurora */]: "0x4e454152",
|
|
39
|
+
// toHex(1313161554)
|
|
40
|
+
["linea-goerli" /* LineaGoerli */]: "0xe704",
|
|
41
|
+
// toHex(59140)
|
|
42
|
+
["linea-sepolia" /* LineaSepolia */]: "0xe705",
|
|
43
|
+
// toHex(59141)
|
|
44
|
+
["linea-mainnet" /* LineaMainnet */]: "0xe708"
|
|
45
|
+
// toHex(59144)
|
|
46
|
+
};
|
|
47
|
+
var NetworksTicker = /* @__PURE__ */ ((NetworksTicker2) => {
|
|
48
|
+
NetworksTicker2["mainnet"] = "ETH";
|
|
49
|
+
NetworksTicker2["goerli"] = "GoerliETH";
|
|
50
|
+
NetworksTicker2["sepolia"] = "SepoliaETH";
|
|
51
|
+
NetworksTicker2["linea-goerli"] = "LineaETH";
|
|
52
|
+
NetworksTicker2["linea-sepolia"] = "LineaETH";
|
|
53
|
+
NetworksTicker2["linea-mainnet"] = "ETH";
|
|
54
|
+
NetworksTicker2["rpc"] = "";
|
|
55
|
+
return NetworksTicker2;
|
|
56
|
+
})(NetworksTicker || {});
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
InfuraNetworkType,
|
|
60
|
+
NetworkType,
|
|
61
|
+
isNetworkType,
|
|
62
|
+
isInfuraNetworkType,
|
|
63
|
+
BuiltInNetworkName,
|
|
64
|
+
ChainId,
|
|
65
|
+
NetworksTicker
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=chunk-7IUO3U3H.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["/**\n * The names of built-in Infura networks\n */\nexport const InfuraNetworkType = {\n mainnet: 'mainnet',\n goerli: 'goerli',\n sepolia: 'sepolia',\n 'linea-goerli': 'linea-goerli',\n 'linea-sepolia': 'linea-sepolia',\n 'linea-mainnet': 'linea-mainnet',\n} as const;\n\nexport type InfuraNetworkType =\n (typeof InfuraNetworkType)[keyof typeof InfuraNetworkType];\n\n/**\n * The \"network type\"; either the name of a built-in network, or \"rpc\" for custom networks.\n */\nexport const NetworkType = {\n ...InfuraNetworkType,\n rpc: 'rpc',\n} as const;\n\nexport type NetworkType = (typeof NetworkType)[keyof typeof NetworkType];\n\n/**\n * A helper to determine whether a given input is NetworkType.\n *\n * @param val - the value to check whether it is NetworkType or not.\n * @returns boolean indicating whether or not the argument is NetworkType.\n */\nexport function isNetworkType(val: string): val is NetworkType {\n return Object.values(NetworkType).includes(val as NetworkType);\n}\n\n/**\n * A type guard to determine whether the input is an InfuraNetworkType.\n *\n * @param value - The value to check.\n * @returns True if the given value is within the InfuraNetworkType enum,\n * false otherwise.\n */\nexport function isInfuraNetworkType(\n value: unknown,\n): value is InfuraNetworkType {\n const infuraNetworkTypes: unknown[] = Object.keys(InfuraNetworkType);\n return infuraNetworkTypes.includes(value);\n}\n\n/**\n * Names of networks built into the wallet.\n *\n * This includes both Infura and non-Infura networks.\n */\nexport enum BuiltInNetworkName {\n Mainnet = 'mainnet',\n Goerli = 'goerli',\n Sepolia = 'sepolia',\n LineaGoerli = 'linea-goerli',\n LineaSepolia = 'linea-sepolia',\n LineaMainnet = 'linea-mainnet',\n Aurora = 'aurora',\n}\n\n/**\n * Decimal string chain IDs of built-in networks, by name.\n *\n * `toHex` not invoked to avoid cyclic dependency\n */\nexport const ChainId = {\n [BuiltInNetworkName.Mainnet]: '0x1', // toHex(1)\n [BuiltInNetworkName.Goerli]: '0x5', // toHex(5)\n [BuiltInNetworkName.Sepolia]: '0xaa36a7', // toHex(11155111)\n [BuiltInNetworkName.Aurora]: '0x4e454152', // toHex(1313161554)\n [BuiltInNetworkName.LineaGoerli]: '0xe704', // toHex(59140)\n [BuiltInNetworkName.LineaSepolia]: '0xe705', // toHex(59141)\n [BuiltInNetworkName.LineaMainnet]: '0xe708', // toHex(59144)\n} as const;\nexport type ChainId = (typeof ChainId)[keyof typeof ChainId];\n\nexport enum NetworksTicker {\n mainnet = 'ETH',\n goerli = 'GoerliETH',\n sepolia = 'SepoliaETH',\n 'linea-goerli' = 'LineaETH',\n 'linea-sepolia' = 'LineaETH',\n 'linea-mainnet' = 'ETH',\n rpc = '',\n}\n"],"mappings":";AAGO,IAAM,oBAAoB;AAAA,EAC/B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AACnB;AAQO,IAAM,cAAc;AAAA,EACzB,GAAG;AAAA,EACH,KAAK;AACP;AAUO,SAAS,cAAc,KAAiC;AAC7D,SAAO,OAAO,OAAO,WAAW,EAAE,SAAS,GAAkB;AAC/D;AASO,SAAS,oBACd,OAC4B;AAC5B,QAAM,qBAAgC,OAAO,KAAK,iBAAiB;AACnE,SAAO,mBAAmB,SAAS,KAAK;AAC1C;AAOO,IAAK,qBAAL,kBAAKA,wBAAL;AACL,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,YAAS;AACT,EAAAA,oBAAA,aAAU;AACV,EAAAA,oBAAA,iBAAc;AACd,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,kBAAe;AACf,EAAAA,oBAAA,YAAS;AAPC,SAAAA;AAAA,GAAA;AAeL,IAAM,UAAU;AAAA,EACrB,CAAC,uBAA0B,GAAG;AAAA;AAAA,EAC9B,CAAC,qBAAyB,GAAG;AAAA;AAAA,EAC7B,CAAC,uBAA0B,GAAG;AAAA;AAAA,EAC9B,CAAC,qBAAyB,GAAG;AAAA;AAAA,EAC7B,CAAC,gCAA8B,GAAG;AAAA;AAAA,EAClC,CAAC,kCAA+B,GAAG;AAAA;AAAA,EACnC,CAAC,kCAA+B,GAAG;AAAA;AACrC;AAGO,IAAK,iBAAL,kBAAKC,oBAAL;AACL,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,kBAAiB;AACjB,EAAAA,gBAAA,mBAAkB;AAClB,EAAAA,gBAAA,mBAAkB;AAClB,EAAAA,gBAAA,SAAM;AAPI,SAAAA;AAAA,GAAA;","names":["BuiltInNetworkName","NetworksTicker"]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkLGGBBU6Gjs = require('./chunk-LGGBBU6G.js');
|
|
5
|
+
|
|
6
|
+
// src/constants.ts
|
|
7
|
+
var RPC = "rpc";
|
|
8
|
+
var FALL_BACK_VS_CURRENCY = "ETH";
|
|
9
|
+
var IPFS_DEFAULT_GATEWAY_URL = "https://cloudflare-ipfs.com/ipfs/";
|
|
10
|
+
var GANACHE_CHAIN_ID = "0x539";
|
|
11
|
+
var MAX_SAFE_CHAIN_ID = 4503599627370476;
|
|
12
|
+
var ERC721 = "ERC721";
|
|
13
|
+
var ERC1155 = "ERC1155";
|
|
14
|
+
var ERC20 = "ERC20";
|
|
15
|
+
var ERC721_INTERFACE_ID = "0x80ac58cd";
|
|
16
|
+
var ERC721_METADATA_INTERFACE_ID = "0x5b5e139f";
|
|
17
|
+
var ERC721_ENUMERABLE_INTERFACE_ID = "0x780e9d63";
|
|
18
|
+
var ERC1155_INTERFACE_ID = "0xd9b67a26";
|
|
19
|
+
var ERC1155_METADATA_URI_INTERFACE_ID = "0x0e89341c";
|
|
20
|
+
var ERC1155_TOKEN_RECEIVER_INTERFACE_ID = "0x4e2312e0";
|
|
21
|
+
var GWEI = "gwei";
|
|
22
|
+
var ASSET_TYPES = {
|
|
23
|
+
NATIVE: "NATIVE",
|
|
24
|
+
TOKEN: "TOKEN",
|
|
25
|
+
NFT: "NFT",
|
|
26
|
+
UNKNOWN: "UNKNOWN"
|
|
27
|
+
};
|
|
28
|
+
var TESTNET_TICKER_SYMBOLS = {
|
|
29
|
+
GOERLI: "GoerliETH",
|
|
30
|
+
SEPOLIA: "SepoliaETH",
|
|
31
|
+
LINEA_GOERLI: "LineaETH",
|
|
32
|
+
LINEA_SEPOLIA: "LineaETH"
|
|
33
|
+
};
|
|
34
|
+
var BUILT_IN_NETWORKS = {
|
|
35
|
+
[_chunkLGGBBU6Gjs.NetworkType.goerli]: {
|
|
36
|
+
chainId: _chunkLGGBBU6Gjs.ChainId.goerli,
|
|
37
|
+
ticker: "GoerliETH" /* goerli */,
|
|
38
|
+
rpcPrefs: {
|
|
39
|
+
blockExplorerUrl: `https://${_chunkLGGBBU6Gjs.NetworkType.goerli}.etherscan.io`
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
[_chunkLGGBBU6Gjs.NetworkType.sepolia]: {
|
|
43
|
+
chainId: _chunkLGGBBU6Gjs.ChainId.sepolia,
|
|
44
|
+
ticker: "SepoliaETH" /* sepolia */,
|
|
45
|
+
rpcPrefs: {
|
|
46
|
+
blockExplorerUrl: `https://${_chunkLGGBBU6Gjs.NetworkType.sepolia}.etherscan.io`
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
[_chunkLGGBBU6Gjs.NetworkType.mainnet]: {
|
|
50
|
+
chainId: _chunkLGGBBU6Gjs.ChainId.mainnet,
|
|
51
|
+
ticker: "ETH" /* mainnet */,
|
|
52
|
+
rpcPrefs: {
|
|
53
|
+
blockExplorerUrl: "https://etherscan.io"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
[_chunkLGGBBU6Gjs.NetworkType["linea-goerli"]]: {
|
|
57
|
+
chainId: _chunkLGGBBU6Gjs.ChainId["linea-goerli"],
|
|
58
|
+
ticker: "LineaETH" /* linea-goerli */,
|
|
59
|
+
rpcPrefs: {
|
|
60
|
+
blockExplorerUrl: "https://goerli.lineascan.build"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
[_chunkLGGBBU6Gjs.NetworkType["linea-sepolia"]]: {
|
|
64
|
+
chainId: _chunkLGGBBU6Gjs.ChainId["linea-sepolia"],
|
|
65
|
+
ticker: "LineaETH" /* linea-sepolia */,
|
|
66
|
+
rpcPrefs: {
|
|
67
|
+
blockExplorerUrl: "https://sepolia.lineascan.build"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[_chunkLGGBBU6Gjs.NetworkType["linea-mainnet"]]: {
|
|
71
|
+
chainId: _chunkLGGBBU6Gjs.ChainId["linea-mainnet"],
|
|
72
|
+
ticker: "ETH" /* linea-mainnet */,
|
|
73
|
+
rpcPrefs: {
|
|
74
|
+
blockExplorerUrl: "https://lineascan.build"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
[_chunkLGGBBU6Gjs.NetworkType.rpc]: {
|
|
78
|
+
chainId: void 0,
|
|
79
|
+
blockExplorerUrl: void 0,
|
|
80
|
+
ticker: void 0,
|
|
81
|
+
rpcPrefs: void 0
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var OPENSEA_PROXY_URL = "https://proxy.metafi.codefi.network/opensea/v1/api/v2";
|
|
85
|
+
var ORIGIN_METAMASK = "metamask";
|
|
86
|
+
var ApprovalType = /* @__PURE__ */ ((ApprovalType2) => {
|
|
87
|
+
ApprovalType2["AddEthereumChain"] = "wallet_addEthereumChain";
|
|
88
|
+
ApprovalType2["ConnectAccounts"] = "connect_accounts";
|
|
89
|
+
ApprovalType2["EthDecrypt"] = "eth_decrypt";
|
|
90
|
+
ApprovalType2["EthGetEncryptionPublicKey"] = "eth_getEncryptionPublicKey";
|
|
91
|
+
ApprovalType2["EthSign"] = "eth_sign";
|
|
92
|
+
ApprovalType2["EthSignTypedData"] = "eth_signTypedData";
|
|
93
|
+
ApprovalType2["PersonalSign"] = "personal_sign";
|
|
94
|
+
ApprovalType2["ResultError"] = "result_error";
|
|
95
|
+
ApprovalType2["ResultSuccess"] = "result_success";
|
|
96
|
+
ApprovalType2["SnapDialogAlert"] = "snap_dialog:alert";
|
|
97
|
+
ApprovalType2["SnapDialogConfirmation"] = "snap_dialog:confirmation";
|
|
98
|
+
ApprovalType2["SnapDialogPrompt"] = "snap_dialog:prompt";
|
|
99
|
+
ApprovalType2["SwitchEthereumChain"] = "wallet_switchEthereumChain";
|
|
100
|
+
ApprovalType2["Transaction"] = "transaction";
|
|
101
|
+
ApprovalType2["Unlock"] = "unlock";
|
|
102
|
+
ApprovalType2["WalletConnect"] = "wallet_connect";
|
|
103
|
+
ApprovalType2["WalletRequestPermissions"] = "wallet_requestPermissions";
|
|
104
|
+
ApprovalType2["WatchAsset"] = "wallet_watchAsset";
|
|
105
|
+
return ApprovalType2;
|
|
106
|
+
})(ApprovalType || {});
|
|
107
|
+
var CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP = {
|
|
108
|
+
[_chunkLGGBBU6Gjs.ChainId.goerli]: "goerli" /* Goerli */,
|
|
109
|
+
[_chunkLGGBBU6Gjs.ChainId.sepolia]: "sepolia" /* Sepolia */,
|
|
110
|
+
[_chunkLGGBBU6Gjs.ChainId.mainnet]: "mainnet" /* Mainnet */,
|
|
111
|
+
[_chunkLGGBBU6Gjs.ChainId["linea-goerli"]]: "linea-goerli" /* LineaGoerli */,
|
|
112
|
+
[_chunkLGGBBU6Gjs.ChainId["linea-sepolia"]]: "linea-sepolia" /* LineaSepolia */,
|
|
113
|
+
[_chunkLGGBBU6Gjs.ChainId["linea-mainnet"]]: "linea-mainnet" /* LineaMainnet */,
|
|
114
|
+
[_chunkLGGBBU6Gjs.ChainId.aurora]: "aurora" /* Aurora */
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
exports.RPC = RPC; exports.FALL_BACK_VS_CURRENCY = FALL_BACK_VS_CURRENCY; exports.IPFS_DEFAULT_GATEWAY_URL = IPFS_DEFAULT_GATEWAY_URL; exports.GANACHE_CHAIN_ID = GANACHE_CHAIN_ID; exports.MAX_SAFE_CHAIN_ID = MAX_SAFE_CHAIN_ID; exports.ERC721 = ERC721; exports.ERC1155 = ERC1155; exports.ERC20 = ERC20; exports.ERC721_INTERFACE_ID = ERC721_INTERFACE_ID; exports.ERC721_METADATA_INTERFACE_ID = ERC721_METADATA_INTERFACE_ID; exports.ERC721_ENUMERABLE_INTERFACE_ID = ERC721_ENUMERABLE_INTERFACE_ID; exports.ERC1155_INTERFACE_ID = ERC1155_INTERFACE_ID; exports.ERC1155_METADATA_URI_INTERFACE_ID = ERC1155_METADATA_URI_INTERFACE_ID; exports.ERC1155_TOKEN_RECEIVER_INTERFACE_ID = ERC1155_TOKEN_RECEIVER_INTERFACE_ID; exports.GWEI = GWEI; exports.ASSET_TYPES = ASSET_TYPES; exports.TESTNET_TICKER_SYMBOLS = TESTNET_TICKER_SYMBOLS; exports.BUILT_IN_NETWORKS = BUILT_IN_NETWORKS; exports.OPENSEA_PROXY_URL = OPENSEA_PROXY_URL; exports.ORIGIN_METAMASK = ORIGIN_METAMASK; exports.ApprovalType = ApprovalType; exports.CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP = CHAIN_ID_TO_ETHERS_NETWORK_NAME_MAP;
|
|
141
|
+
//# sourceMappingURL=chunk-AEMFFAHN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts"],"names":["ApprovalType"],"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 LINEA_SEPOLIA: '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-sepolia']]: {\n chainId: ChainId['linea-sepolia'],\n ticker: NetworksTicker['linea-sepolia'],\n rpcPrefs: {\n blockExplorerUrl: 'https://sepolia.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 ticker: 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/v2';\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-sepolia']]: BuiltInNetworkName.LineaSepolia,\n [ChainId['linea-mainnet']]: BuiltInNetworkName.LineaMainnet,\n [ChainId.aurora]: BuiltInNetworkName.Aurora,\n};\n"]}
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MAX_SAFE_CHAIN_ID
|
|
3
|
+
} from "./chunk-47C6DTJM.mjs";
|
|
4
|
+
|
|
5
|
+
// src/util.ts
|
|
6
|
+
import { isValidAddress, toChecksumAddress } from "@ethereumjs/util";
|
|
7
|
+
import { fromWei, toWei } from "@metamask/ethjs-unit";
|
|
8
|
+
import {
|
|
9
|
+
isStrictHexString,
|
|
10
|
+
add0x,
|
|
11
|
+
isHexString,
|
|
12
|
+
remove0x
|
|
13
|
+
} from "@metamask/utils";
|
|
14
|
+
import BN from "bn.js";
|
|
15
|
+
import ensNamehash from "eth-ens-namehash";
|
|
16
|
+
import deepEqual from "fast-deep-equal";
|
|
17
|
+
var TIMEOUT_ERROR = new Error("timeout");
|
|
18
|
+
function isSafeChainId(chainId) {
|
|
19
|
+
if (!isHexString(chainId)) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const decimalChainId = Number.parseInt(
|
|
23
|
+
chainId,
|
|
24
|
+
isStrictHexString(chainId) ? 16 : 10
|
|
25
|
+
);
|
|
26
|
+
return Number.isSafeInteger(decimalChainId) && decimalChainId > 0 && decimalChainId <= MAX_SAFE_CHAIN_ID;
|
|
27
|
+
}
|
|
28
|
+
function BNToHex(inputBn) {
|
|
29
|
+
return add0x(inputBn.toString(16));
|
|
30
|
+
}
|
|
31
|
+
function fractionBN(targetBN, numerator, denominator) {
|
|
32
|
+
const numBN = new BN(numerator);
|
|
33
|
+
const denomBN = new BN(denominator);
|
|
34
|
+
return targetBN.mul(numBN).div(denomBN);
|
|
35
|
+
}
|
|
36
|
+
function gweiDecToWEIBN(n) {
|
|
37
|
+
if (Number.isNaN(n)) {
|
|
38
|
+
return new BN(0);
|
|
39
|
+
}
|
|
40
|
+
const parts = n.toString().split(".");
|
|
41
|
+
const wholePart = parts[0] || "0";
|
|
42
|
+
let decimalPart = parts[1] || "";
|
|
43
|
+
if (!decimalPart) {
|
|
44
|
+
return toWei(wholePart, "gwei");
|
|
45
|
+
}
|
|
46
|
+
if (decimalPart.length <= 9) {
|
|
47
|
+
return toWei(`${wholePart}.${decimalPart}`, "gwei");
|
|
48
|
+
}
|
|
49
|
+
const decimalPartToRemove = decimalPart.slice(9);
|
|
50
|
+
const decimalRoundingDigit = decimalPartToRemove[0];
|
|
51
|
+
decimalPart = decimalPart.slice(0, 9);
|
|
52
|
+
let wei = toWei(`${wholePart}.${decimalPart}`, "gwei");
|
|
53
|
+
if (Number(decimalRoundingDigit) >= 5) {
|
|
54
|
+
wei = wei.add(new BN(1));
|
|
55
|
+
}
|
|
56
|
+
return wei;
|
|
57
|
+
}
|
|
58
|
+
function weiHexToGweiDec(hex) {
|
|
59
|
+
const hexWei = new BN(remove0x(hex), 16);
|
|
60
|
+
return fromWei(hexWei, "gwei");
|
|
61
|
+
}
|
|
62
|
+
function getBuyURL(networkCode = "1", address, amount = 5) {
|
|
63
|
+
switch (networkCode) {
|
|
64
|
+
case "1":
|
|
65
|
+
return `https://buy.coinbase.com/?code=9ec56d01-7e81-5017-930c-513daa27bb6a&amount=${amount}&address=${address}&crypto_currency=ETH`;
|
|
66
|
+
case "5":
|
|
67
|
+
return "https://goerli-faucet.slock.it/";
|
|
68
|
+
case "11155111":
|
|
69
|
+
return "https://sepoliafaucet.net/";
|
|
70
|
+
default:
|
|
71
|
+
return void 0;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function hexToBN(inputHex) {
|
|
75
|
+
return inputHex ? new BN(remove0x(inputHex), 16) : new BN(0);
|
|
76
|
+
}
|
|
77
|
+
function hexToText(hex) {
|
|
78
|
+
try {
|
|
79
|
+
const stripped = remove0x(hex);
|
|
80
|
+
const buff = Buffer.from(stripped, "hex");
|
|
81
|
+
return buff.toString("utf8");
|
|
82
|
+
} catch (e) {
|
|
83
|
+
return hex;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function fromHex(value) {
|
|
87
|
+
if (BN.isBN(value)) {
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
return new BN(hexToBN(value).toString(10));
|
|
91
|
+
}
|
|
92
|
+
function toHex(value) {
|
|
93
|
+
if (typeof value === "string" && isStrictHexString(value)) {
|
|
94
|
+
return value;
|
|
95
|
+
}
|
|
96
|
+
const hexString = BN.isBN(value) ? value.toString(16) : new BN(value.toString(), 10).toString(16);
|
|
97
|
+
return `0x${hexString}`;
|
|
98
|
+
}
|
|
99
|
+
async function safelyExecute(operation, logError = false) {
|
|
100
|
+
try {
|
|
101
|
+
return await operation();
|
|
102
|
+
} catch (error) {
|
|
103
|
+
if (logError) {
|
|
104
|
+
console.error(error);
|
|
105
|
+
}
|
|
106
|
+
return void 0;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async function safelyExecuteWithTimeout(operation, logError = false, timeout = 500) {
|
|
110
|
+
try {
|
|
111
|
+
return await Promise.race([
|
|
112
|
+
operation(),
|
|
113
|
+
new Promise(
|
|
114
|
+
(_, reject) => setTimeout(() => {
|
|
115
|
+
reject(TIMEOUT_ERROR);
|
|
116
|
+
}, timeout)
|
|
117
|
+
)
|
|
118
|
+
]);
|
|
119
|
+
} catch (error) {
|
|
120
|
+
if (logError) {
|
|
121
|
+
console.error(error);
|
|
122
|
+
}
|
|
123
|
+
return void 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function toChecksumHexAddress(address) {
|
|
127
|
+
const hexPrefixed = add0x(address);
|
|
128
|
+
if (!isHexString(hexPrefixed)) {
|
|
129
|
+
return hexPrefixed;
|
|
130
|
+
}
|
|
131
|
+
return toChecksumAddress(hexPrefixed);
|
|
132
|
+
}
|
|
133
|
+
function isValidHexAddress(possibleAddress, { allowNonPrefixed = true } = {}) {
|
|
134
|
+
const addressToCheck = allowNonPrefixed ? add0x(possibleAddress) : possibleAddress;
|
|
135
|
+
if (!isStrictHexString(addressToCheck)) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
return isValidAddress(addressToCheck);
|
|
139
|
+
}
|
|
140
|
+
function isSmartContractCode(code) {
|
|
141
|
+
if (!code) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
const smartContractCode = code !== "0x" && code !== "0x0";
|
|
145
|
+
return smartContractCode;
|
|
146
|
+
}
|
|
147
|
+
async function successfulFetch(request, options) {
|
|
148
|
+
const response = await fetch(request, options);
|
|
149
|
+
if (!response.ok) {
|
|
150
|
+
throw new Error(
|
|
151
|
+
`Fetch failed with status '${response.status}' for request '${String(
|
|
152
|
+
request
|
|
153
|
+
)}'`
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
return response;
|
|
157
|
+
}
|
|
158
|
+
async function handleFetch(request, options) {
|
|
159
|
+
const response = await successfulFetch(request, options);
|
|
160
|
+
const object = await response.json();
|
|
161
|
+
return object;
|
|
162
|
+
}
|
|
163
|
+
async function fetchWithErrorHandling({
|
|
164
|
+
url,
|
|
165
|
+
options,
|
|
166
|
+
timeout,
|
|
167
|
+
errorCodesToCatch
|
|
168
|
+
}) {
|
|
169
|
+
let result;
|
|
170
|
+
try {
|
|
171
|
+
if (timeout) {
|
|
172
|
+
result = Promise.race([
|
|
173
|
+
await handleFetch(url, options),
|
|
174
|
+
new Promise(
|
|
175
|
+
(_, reject) => setTimeout(() => {
|
|
176
|
+
reject(TIMEOUT_ERROR);
|
|
177
|
+
}, timeout)
|
|
178
|
+
)
|
|
179
|
+
]);
|
|
180
|
+
} else {
|
|
181
|
+
result = await handleFetch(url, options);
|
|
182
|
+
}
|
|
183
|
+
} catch (e) {
|
|
184
|
+
logOrRethrowError(e, errorCodesToCatch);
|
|
185
|
+
}
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
async function timeoutFetch(url, options, timeout = 500) {
|
|
189
|
+
return Promise.race([
|
|
190
|
+
successfulFetch(url, options),
|
|
191
|
+
new Promise(
|
|
192
|
+
(_, reject) => setTimeout(() => {
|
|
193
|
+
reject(TIMEOUT_ERROR);
|
|
194
|
+
}, timeout)
|
|
195
|
+
)
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
198
|
+
function normalizeEnsName(ensName) {
|
|
199
|
+
if (ensName === ".") {
|
|
200
|
+
return ensName;
|
|
201
|
+
}
|
|
202
|
+
if (ensName && typeof ensName === "string") {
|
|
203
|
+
try {
|
|
204
|
+
const normalized = ensNamehash.normalize(ensName.trim());
|
|
205
|
+
if (normalized.match(/^(([\w\d-]+)\.)*[\w\d-]{7,}\.(eth|test)$/u)) {
|
|
206
|
+
return normalized;
|
|
207
|
+
}
|
|
208
|
+
} catch (_) {
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return null;
|
|
212
|
+
}
|
|
213
|
+
function query(ethQuery, method, args = []) {
|
|
214
|
+
return new Promise((resolve, reject) => {
|
|
215
|
+
const cb = (error, result) => {
|
|
216
|
+
if (error) {
|
|
217
|
+
reject(error);
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
resolve(result);
|
|
221
|
+
};
|
|
222
|
+
if (method in ethQuery && typeof ethQuery[method] === "function") {
|
|
223
|
+
ethQuery[method](...args, cb);
|
|
224
|
+
} else {
|
|
225
|
+
ethQuery.sendAsync({ method, params: args }, cb);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
var convertHexToDecimal = (value = "0x0") => {
|
|
230
|
+
if (isStrictHexString(value)) {
|
|
231
|
+
return parseInt(value, 16);
|
|
232
|
+
}
|
|
233
|
+
return Number(value) ? Number(value) : 0;
|
|
234
|
+
};
|
|
235
|
+
function isPlainObject(value) {
|
|
236
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
237
|
+
}
|
|
238
|
+
function isNonEmptyArray(value) {
|
|
239
|
+
return Array.isArray(value) && value.length > 0;
|
|
240
|
+
}
|
|
241
|
+
function isValidJson(value) {
|
|
242
|
+
try {
|
|
243
|
+
return deepEqual(value, JSON.parse(JSON.stringify(value)));
|
|
244
|
+
} catch (_) {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
function logOrRethrowError(error, codesToCatch = []) {
|
|
249
|
+
if (!error) {
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
if (error instanceof Error) {
|
|
253
|
+
const includesErrorCodeToCatch = codesToCatch.some(
|
|
254
|
+
(code) => error.message.includes(`Fetch failed with status '${code}'`)
|
|
255
|
+
);
|
|
256
|
+
if (includesErrorCodeToCatch || error.message.includes("Failed to fetch") || error === TIMEOUT_ERROR) {
|
|
257
|
+
console.error(error);
|
|
258
|
+
} else {
|
|
259
|
+
throw error;
|
|
260
|
+
}
|
|
261
|
+
} else {
|
|
262
|
+
throw error;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export {
|
|
267
|
+
isSafeChainId,
|
|
268
|
+
BNToHex,
|
|
269
|
+
fractionBN,
|
|
270
|
+
gweiDecToWEIBN,
|
|
271
|
+
weiHexToGweiDec,
|
|
272
|
+
getBuyURL,
|
|
273
|
+
hexToBN,
|
|
274
|
+
hexToText,
|
|
275
|
+
fromHex,
|
|
276
|
+
toHex,
|
|
277
|
+
safelyExecute,
|
|
278
|
+
safelyExecuteWithTimeout,
|
|
279
|
+
toChecksumHexAddress,
|
|
280
|
+
isValidHexAddress,
|
|
281
|
+
isSmartContractCode,
|
|
282
|
+
successfulFetch,
|
|
283
|
+
handleFetch,
|
|
284
|
+
fetchWithErrorHandling,
|
|
285
|
+
timeoutFetch,
|
|
286
|
+
normalizeEnsName,
|
|
287
|
+
query,
|
|
288
|
+
convertHexToDecimal,
|
|
289
|
+
isPlainObject,
|
|
290
|
+
isNonEmptyArray,
|
|
291
|
+
isValidJson
|
|
292
|
+
};
|
|
293
|
+
//# sourceMappingURL=chunk-CV6ML7X7.mjs.map
|