@toruslabs/ethereum-controllers 5.0.1 → 5.0.3
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/ethereumControllers.cjs.js +8 -7
- package/dist/ethereumControllers.cjs.js.map +1 -1
- package/dist/ethereumControllers.esm.js +8 -7
- package/dist/ethereumControllers.esm.js.map +1 -1
- package/dist/ethereumControllers.umd.min.js +1 -1
- package/dist/ethereumControllers.umd.min.js.map +1 -1
- package/dist/types/Preferences/PreferencesController.d.ts +2 -4
- package/dist/types/utils/interfaces.d.ts +4 -3
- package/package.json +3 -3
- package/src/Preferences/PreferencesController.ts +12 -9
- package/src/utils/interfaces.ts +4 -3
|
@@ -3,7 +3,7 @@ import { SafeEventEmitterProvider } from "@toruslabs/openlogin-jrpc";
|
|
|
3
3
|
import KeyringController from "../Keyring/KeyringController";
|
|
4
4
|
import NetworkController from "../Network/NetworkController";
|
|
5
5
|
import type { AddChainMessageParams, CustomNetworkPayload, CustomNftInfo, CustomTokenInfo, ExtendedAddressPreferences, TransactionPayload } from "../utils/interfaces";
|
|
6
|
-
interface IPreferencesControllerOptions {
|
|
6
|
+
export interface IPreferencesControllerOptions {
|
|
7
7
|
config?: Partial<PreferencesConfig> & Pick<PreferencesConfig, "api" | "commonApiHost" | "signInPrefix">;
|
|
8
8
|
state?: Partial<PreferencesState<ExtendedAddressPreferences>>;
|
|
9
9
|
provider: SafeEventEmitterProvider;
|
|
@@ -38,8 +38,7 @@ export default class PreferencesController extends BasePreferencesController<Ext
|
|
|
38
38
|
switchChain(data: {
|
|
39
39
|
chainId: string;
|
|
40
40
|
}): void;
|
|
41
|
-
addCustomNetwork({
|
|
42
|
-
type: string;
|
|
41
|
+
addCustomNetwork({ network }: {
|
|
43
42
|
network: CustomNetworkPayload;
|
|
44
43
|
}): Promise<number>;
|
|
45
44
|
deleteCustomNetwork(id: number): Promise<boolean>;
|
|
@@ -51,4 +50,3 @@ export default class PreferencesController extends BasePreferencesController<Ext
|
|
|
51
50
|
private calculatePastTx;
|
|
52
51
|
private cancelTxCalculate;
|
|
53
52
|
}
|
|
54
|
-
export {};
|
|
@@ -265,12 +265,13 @@ export interface CustomNetworks {
|
|
|
265
265
|
network_name: string;
|
|
266
266
|
public_address: string;
|
|
267
267
|
chain_id: string;
|
|
268
|
-
type: string;
|
|
269
268
|
rpc_url: string;
|
|
270
|
-
deleted: boolean;
|
|
271
269
|
symbol?: string;
|
|
270
|
+
symbol_name?: string;
|
|
271
|
+
decimals?: string;
|
|
272
|
+
logo?: string;
|
|
272
273
|
block_explorer_url?: string;
|
|
273
|
-
|
|
274
|
+
is_testnet?: boolean;
|
|
274
275
|
}
|
|
275
276
|
export interface EthereumUser extends User {
|
|
276
277
|
customNetworks: CustomNetworks[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toruslabs/ethereum-controllers",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.3",
|
|
4
4
|
"homepage": "https://github.com/torusresearch/controllers#readme",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"main": "dist/ethereumControllers.cjs.js",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"@ethereumjs/util": "^9.0.1",
|
|
25
25
|
"@metamask/eth-sig-util": "^7.0.1",
|
|
26
26
|
"@metamask/rpc-errors": "^6.1.0",
|
|
27
|
-
"@toruslabs/base-controllers": "^5.0.
|
|
27
|
+
"@toruslabs/base-controllers": "^5.0.3",
|
|
28
28
|
"@toruslabs/http-helpers": "^6.0.0",
|
|
29
29
|
"@toruslabs/openlogin-jrpc": "^6.1.0",
|
|
30
30
|
"async-mutex": "^0.4.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"publishConfig": {
|
|
65
65
|
"access": "public"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "106d19ac996998cf3199edca74f7afb907a0b6ae",
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@nomicfoundation/hardhat-toolbox": "^4.0.0",
|
|
70
70
|
"hardhat": "^2.19.3"
|
|
@@ -33,7 +33,7 @@ import type {
|
|
|
33
33
|
TransactionPayload,
|
|
34
34
|
} from "../utils/interfaces";
|
|
35
35
|
|
|
36
|
-
interface IPreferencesControllerOptions {
|
|
36
|
+
export interface IPreferencesControllerOptions {
|
|
37
37
|
config?: Partial<PreferencesConfig> & Pick<PreferencesConfig, "api" | "commonApiHost" | "signInPrefix">;
|
|
38
38
|
state?: Partial<PreferencesState<ExtendedAddressPreferences>>;
|
|
39
39
|
provider: SafeEventEmitterProvider;
|
|
@@ -211,7 +211,6 @@ export default class PreferencesController
|
|
|
211
211
|
|
|
212
212
|
async fetchEtherscanTx<T>(parameters: { selectedAddress: string; chainId: string }): Promise<T[]> {
|
|
213
213
|
try {
|
|
214
|
-
// TODO: rewrite this api to use chainId
|
|
215
214
|
const url = new URL(`${this.config.api}/etherscan`);
|
|
216
215
|
Object.keys(parameters).forEach((key) => url.searchParams.append(key, parameters[key as keyof typeof parameters]));
|
|
217
216
|
const response = await get<{ success: boolean; data: T[] }>(url.href, this.headers(parameters.selectedAddress));
|
|
@@ -270,9 +269,11 @@ export default class PreferencesController
|
|
|
270
269
|
ticker: network.nativeCurrency.symbol,
|
|
271
270
|
chainId: network.chainId,
|
|
272
271
|
blockExplorerUrl: network.blockExplorerUrls[0],
|
|
272
|
+
tickerName: network.nativeCurrency.name,
|
|
273
|
+
logo: network.nativeCurrency.symbol,
|
|
273
274
|
};
|
|
274
275
|
|
|
275
|
-
const isSuccess = await this.addCustomNetwork({
|
|
276
|
+
const isSuccess = await this.addCustomNetwork({ network: newNetwork });
|
|
276
277
|
if (!isSuccess) throw new Error("unable to add custom network");
|
|
277
278
|
}
|
|
278
279
|
|
|
@@ -287,18 +288,20 @@ export default class PreferencesController
|
|
|
287
288
|
}
|
|
288
289
|
|
|
289
290
|
// Custom Network methods
|
|
290
|
-
public async addCustomNetwork({
|
|
291
|
+
public async addCustomNetwork({ network }: { network: CustomNetworkPayload }): Promise<number> {
|
|
291
292
|
try {
|
|
292
293
|
const apiUrl = new URL(this.config.api);
|
|
293
|
-
apiUrl.pathname = `/customnetwork
|
|
294
|
+
apiUrl.pathname = `/customnetwork`;
|
|
294
295
|
const { selectedAddress } = this.state;
|
|
295
|
-
const payload = {
|
|
296
|
+
const payload: Partial<CustomNetworks> = {
|
|
296
297
|
network_name: network.displayName,
|
|
297
298
|
rpc_url: network.rpcTarget,
|
|
298
299
|
chain_id: network.chainId,
|
|
299
300
|
symbol: network.ticker,
|
|
300
301
|
block_explorer_url: network.blockExplorerUrl || undefined,
|
|
301
|
-
|
|
302
|
+
is_testnet: network.isTestnet || false,
|
|
303
|
+
logo: network.logo,
|
|
304
|
+
symbol_name: network.tickerName,
|
|
302
305
|
};
|
|
303
306
|
const res = await post<{ data: CustomNetworks }>(apiUrl.href, payload, this.headers(selectedAddress), { useAPIKey: true });
|
|
304
307
|
await this.sync(selectedAddress);
|
|
@@ -330,13 +333,13 @@ export default class PreferencesController
|
|
|
330
333
|
const apiUrl = new URL(this.config.api);
|
|
331
334
|
apiUrl.pathname = `/customnetwork/${id}`;
|
|
332
335
|
|
|
333
|
-
const payload = {
|
|
336
|
+
const payload: Partial<CustomNetworks> = {
|
|
334
337
|
network_name: network.displayName,
|
|
335
338
|
rpc_url: network.rpcTarget,
|
|
336
339
|
chain_id: network.chainId,
|
|
337
340
|
symbol: network.ticker || undefined,
|
|
338
341
|
block_explorer_url: network.blockExplorerUrl || undefined,
|
|
339
|
-
|
|
342
|
+
is_testnet: network.isTestnet || false,
|
|
340
343
|
};
|
|
341
344
|
await patch(apiUrl.href, payload, this.headers(selectedAddress), { useAPIKey: true });
|
|
342
345
|
await this.sync(selectedAddress);
|
package/src/utils/interfaces.ts
CHANGED
|
@@ -323,12 +323,13 @@ export interface CustomNetworks {
|
|
|
323
323
|
network_name: string;
|
|
324
324
|
public_address: string;
|
|
325
325
|
chain_id: string;
|
|
326
|
-
type: string;
|
|
327
326
|
rpc_url: string;
|
|
328
|
-
deleted: boolean;
|
|
329
327
|
symbol?: string;
|
|
328
|
+
symbol_name?: string;
|
|
329
|
+
decimals?: string;
|
|
330
|
+
logo?: string;
|
|
330
331
|
block_explorer_url?: string;
|
|
331
|
-
|
|
332
|
+
is_testnet?: boolean;
|
|
332
333
|
}
|
|
333
334
|
|
|
334
335
|
export interface EthereumUser extends User {
|