@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.
- package/dist/ethereumControllers.cjs.js +8 -6
- package/dist/ethereumControllers.cjs.js.map +1 -1
- package/dist/ethereumControllers.esm.js +8 -6
- 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/Nfts/NftHandler.d.ts +4 -5
- 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/Nfts/NftHandler.ts +4 -4
- package/src/Preferences/PreferencesController.ts +12 -8
- package/src/utils/interfaces.ts +4 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
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:
|
|
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:
|
|
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({
|
|
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.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.
|
|
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": "
|
|
67
|
+
"gitHead": "24441ea01583581f50efa700853068d52be98aa0",
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@nomicfoundation/hardhat-toolbox": "^4.0.0",
|
|
70
70
|
"hardhat": "^2.19.3"
|
package/src/Nfts/NftHandler.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { get } from "@toruslabs/http-helpers";
|
|
2
|
-
import {
|
|
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:
|
|
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:
|
|
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({
|
|
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({
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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);
|
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 {
|