@toruslabs/ethereum-controllers 5.0.0 → 5.0.2

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.
@@ -1,6 +1,6 @@
1
- import { BrowserProvider } from "ethers";
1
+ import { Provider } from "ethers";
2
2
  import { CustomNftInfo, CustomNftItemInfo } from "../utils/interfaces";
3
- interface INftOptions {
3
+ export interface INftOptions {
4
4
  contractAddress: string;
5
5
  contractName?: string;
6
6
  contractSymbol?: string;
@@ -10,7 +10,7 @@ interface INftOptions {
10
10
  nftStandard?: "erc721" | "erc1155";
11
11
  contractDescription?: string;
12
12
  chainId: string;
13
- provider: BrowserProvider;
13
+ provider: Provider;
14
14
  }
15
15
  export declare class NftHandler {
16
16
  contractAddress: string;
@@ -22,7 +22,7 @@ export declare class NftHandler {
22
22
  nftStandard: "erc721" | "erc1155";
23
23
  contractDescription?: string;
24
24
  chainId: string;
25
- provider: BrowserProvider;
25
+ provider: Provider;
26
26
  isSpecial?: boolean;
27
27
  constructor({ chainId, contractAddress, contractImage, contractName, contractSymbol, nftStandard, provider, contractDescription, contractFallbackLogo, contractSupply, }: INftOptions);
28
28
  getNftMetadata(userAddress: string, tokenInfo: Partial<CustomNftItemInfo>): Promise<CustomNftItemInfo>;
@@ -32,4 +32,3 @@ export declare class NftHandler {
32
32
  private contractSupportsInterface;
33
33
  private getCollectibleTokenURI;
34
34
  }
35
- export {};
@@ -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.0",
3
+ "version": "5.0.2",
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.2",
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": "f63427503cff9c9a08240da584ebee008f1d7527",
67
+ "gitHead": "24441ea01583581f50efa700853068d52be98aa0",
68
68
  "devDependencies": {
69
69
  "@nomicfoundation/hardhat-toolbox": "^4.0.0",
70
70
  "hardhat": "^2.19.3"
@@ -1,5 +1,5 @@
1
1
  import { get } from "@toruslabs/http-helpers";
2
- import { BrowserProvider, Contract } from "ethers";
2
+ import { Contract, Provider } from "ethers";
3
3
  import log from "loglevel";
4
4
 
5
5
  import { erc721Abi, erc1155Abi } from "../utils/abis";
@@ -7,7 +7,7 @@ import { CONTRACT_TYPE_ERC721, CONTRACT_TYPE_ERC1155, ERC721_INTERFACE_ID, ERC11
7
7
  import { sanitizeNftMetdataUrl } from "../utils/helpers";
8
8
  import { CustomNftInfo, CustomNftItemInfo, NftStandardType } from "../utils/interfaces";
9
9
 
10
- interface INftOptions {
10
+ export interface INftOptions {
11
11
  contractAddress: string;
12
12
  contractName?: string;
13
13
  contractSymbol?: string;
@@ -17,7 +17,7 @@ interface INftOptions {
17
17
  nftStandard?: "erc721" | "erc1155";
18
18
  contractDescription?: string;
19
19
  chainId: string;
20
- provider: BrowserProvider;
20
+ provider: Provider;
21
21
  }
22
22
 
23
23
  export class NftHandler {
@@ -39,7 +39,7 @@ export class NftHandler {
39
39
 
40
40
  public chainId: string;
41
41
 
42
- public provider: BrowserProvider;
42
+ public provider: Provider;
43
43
 
44
44
  public isSpecial?: boolean;
45
45
 
@@ -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;
@@ -270,9 +270,11 @@ export default class PreferencesController
270
270
  ticker: network.nativeCurrency.symbol,
271
271
  chainId: network.chainId,
272
272
  blockExplorerUrl: network.blockExplorerUrls[0],
273
+ tickerName: network.nativeCurrency.name,
274
+ logo: network.nativeCurrency.symbol,
273
275
  };
274
276
 
275
- const isSuccess = await this.addCustomNetwork({ type: "rpc", network: newNetwork });
277
+ const isSuccess = await this.addCustomNetwork({ network: newNetwork });
276
278
  if (!isSuccess) throw new Error("unable to add custom network");
277
279
  }
278
280
 
@@ -287,18 +289,20 @@ export default class PreferencesController
287
289
  }
288
290
 
289
291
  // Custom Network methods
290
- public async addCustomNetwork({ type, network }: { type: string; network: CustomNetworkPayload }): Promise<number> {
292
+ public async addCustomNetwork({ network }: { network: CustomNetworkPayload }): Promise<number> {
291
293
  try {
292
294
  const apiUrl = new URL(this.config.api);
293
- apiUrl.pathname = `/customnetwork/${type}`;
295
+ apiUrl.pathname = `/customnetwork`;
294
296
  const { selectedAddress } = this.state;
295
- const payload = {
297
+ const payload: Partial<CustomNetworks> = {
296
298
  network_name: network.displayName,
297
299
  rpc_url: network.rpcTarget,
298
300
  chain_id: network.chainId,
299
301
  symbol: network.ticker,
300
302
  block_explorer_url: network.blockExplorerUrl || undefined,
301
- is_test_net: network.isTestnet || false,
303
+ is_testnet: network.isTestnet || false,
304
+ logo: network.logo,
305
+ symbol_name: network.tickerName,
302
306
  };
303
307
  const res = await post<{ data: CustomNetworks }>(apiUrl.href, payload, this.headers(selectedAddress), { useAPIKey: true });
304
308
  await this.sync(selectedAddress);
@@ -330,13 +334,13 @@ export default class PreferencesController
330
334
  const apiUrl = new URL(this.config.api);
331
335
  apiUrl.pathname = `/customnetwork/${id}`;
332
336
 
333
- const payload = {
337
+ const payload: Partial<CustomNetworks> = {
334
338
  network_name: network.displayName,
335
339
  rpc_url: network.rpcTarget,
336
340
  chain_id: network.chainId,
337
341
  symbol: network.ticker || undefined,
338
342
  block_explorer_url: network.blockExplorerUrl || undefined,
339
- is_test_net: network.isTestnet || false,
343
+ is_testnet: network.isTestnet || false,
340
344
  };
341
345
  await patch(apiUrl.href, payload, this.headers(selectedAddress), { useAPIKey: true });
342
346
  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 {