@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.
@@ -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({ type, network }: {
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
- is_test_net?: boolean;
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.1",
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.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": "4da373abb1bbcc3be55cba412a3e3f5931f47f06",
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({ type: "rpc", network: newNetwork });
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({ type, network }: { type: string; network: CustomNetworkPayload }): Promise<number> {
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/${type}`;
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
- is_test_net: network.isTestnet || false,
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
- is_test_net: network.isTestnet || false,
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);
@@ -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
- is_test_net?: boolean;
332
+ is_testnet?: boolean;
332
333
  }
333
334
 
334
335
  export interface EthereumUser extends User {