@talismn/chaindata-provider 0.7.0 → 0.8.1

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.
Files changed (77) hide show
  1. package/dist/declarations/src/ChaindataProvider.d.ts +90 -17
  2. package/dist/declarations/src/TalismanChaindataDatabase.d.ts +9 -0
  3. package/dist/declarations/src/constants.d.ts +26 -0
  4. package/dist/declarations/src/index.d.ts +5 -2
  5. package/dist/declarations/src/init/chains.d.ts +243 -0
  6. package/dist/declarations/src/init/evm-networks.d.ts +61 -0
  7. package/dist/declarations/src/init/index.d.ts +5 -0
  8. package/dist/declarations/src/init/mini-metadatas.d.ts +21 -0
  9. package/dist/declarations/src/init/tokens.d.ts +103 -0
  10. package/dist/declarations/src/log.d.ts +2 -0
  11. package/dist/declarations/src/net.d.ts +8 -0
  12. package/dist/declarations/src/types/Chain.d.ts +42 -5
  13. package/dist/declarations/src/types/ChaindataProviderInterface.d.ts +42 -0
  14. package/dist/declarations/src/types/EvmNetwork.d.ts +17 -4
  15. package/dist/declarations/src/types/Token/EvmErc20Token.d.ts +15 -0
  16. package/dist/declarations/src/types/Token/EvmNativeToken.d.ts +10 -0
  17. package/dist/declarations/src/types/Token/EvmUniswapV2Token.d.ts +22 -0
  18. package/dist/declarations/src/types/Token/SubstrateAssetsToken.d.ts +12 -0
  19. package/dist/declarations/src/types/Token/SubstrateEquilibriumToken.d.ts +11 -0
  20. package/dist/declarations/src/types/Token/SubstrateForeignAssetsToken.d.ts +12 -0
  21. package/dist/declarations/src/types/Token/SubstrateNativeToken.d.ts +13 -0
  22. package/dist/declarations/src/types/Token/SubstratePsp22Token.d.ts +11 -0
  23. package/dist/declarations/src/types/Token/SubstrateTokensToken.d.ts +11 -0
  24. package/dist/declarations/src/types/Token/index.d.ts +26 -0
  25. package/dist/declarations/src/types/Token/types.d.ts +27 -0
  26. package/dist/declarations/src/types/index.d.ts +1 -0
  27. package/dist/declarations/src/upgrades/2024-01-25-upgradeAddIsDefaultToExistingChains.d.ts +2 -0
  28. package/dist/declarations/src/upgrades/2024-01-25-upgradeRemoveSymbolFromNativeTokenId.d.ts +2 -0
  29. package/dist/declarations/src/upgrades/index.d.ts +1 -0
  30. package/dist/declarations/src/util.d.ts +27 -0
  31. package/dist/net-BE0MfrDv.cjs.dev.js +89 -0
  32. package/dist/net-BE0MfrDv.cjs.prod.js +89 -0
  33. package/dist/net-il4EYhJN.esm.js +55 -0
  34. package/dist/talismn-chaindata-provider.cjs.dev.js +912 -23
  35. package/dist/talismn-chaindata-provider.cjs.prod.js +912 -23
  36. package/dist/talismn-chaindata-provider.esm.js +858 -12
  37. package/init/chains/dist/talismn-chaindata-provider-init-chains.cjs.d.ts +1 -0
  38. package/init/chains/dist/talismn-chaindata-provider-init-chains.cjs.dev.js +934 -0
  39. package/init/chains/dist/talismn-chaindata-provider-init-chains.cjs.js +7 -0
  40. package/init/chains/dist/talismn-chaindata-provider-init-chains.cjs.prod.js +934 -0
  41. package/init/chains/dist/talismn-chaindata-provider-init-chains.esm.js +932 -0
  42. package/init/chains/package.json +4 -0
  43. package/init/evm-networks/dist/talismn-chaindata-provider-init-evm-networks.cjs.d.ts +1 -0
  44. package/init/evm-networks/dist/talismn-chaindata-provider-init-evm-networks.cjs.dev.js +69 -0
  45. package/init/evm-networks/dist/talismn-chaindata-provider-init-evm-networks.cjs.js +7 -0
  46. package/init/evm-networks/dist/talismn-chaindata-provider-init-evm-networks.cjs.prod.js +69 -0
  47. package/init/evm-networks/dist/talismn-chaindata-provider-init-evm-networks.esm.js +67 -0
  48. package/init/evm-networks/package.json +4 -0
  49. package/init/mini-metadatas/dist/talismn-chaindata-provider-init-mini-metadatas.cjs.d.ts +1 -0
  50. package/init/mini-metadatas/dist/talismn-chaindata-provider-init-mini-metadatas.cjs.dev.js +311 -0
  51. package/init/mini-metadatas/dist/talismn-chaindata-provider-init-mini-metadatas.cjs.js +7 -0
  52. package/init/mini-metadatas/dist/talismn-chaindata-provider-init-mini-metadatas.cjs.prod.js +311 -0
  53. package/init/mini-metadatas/dist/talismn-chaindata-provider-init-mini-metadatas.esm.js +309 -0
  54. package/init/mini-metadatas/package.json +4 -0
  55. package/init/tokens/dist/talismn-chaindata-provider-init-tokens.cjs.d.ts +1 -0
  56. package/init/tokens/dist/talismn-chaindata-provider-init-tokens.cjs.dev.js +406 -0
  57. package/init/tokens/dist/talismn-chaindata-provider-init-tokens.cjs.js +7 -0
  58. package/init/tokens/dist/talismn-chaindata-provider-init-tokens.cjs.prod.js +406 -0
  59. package/init/tokens/dist/talismn-chaindata-provider-init-tokens.esm.js +404 -0
  60. package/init/tokens/package.json +4 -0
  61. package/net/dist/talismn-chaindata-provider-net.cjs.d.ts +1 -0
  62. package/net/dist/talismn-chaindata-provider-net.cjs.dev.js +14 -0
  63. package/net/dist/talismn-chaindata-provider-net.cjs.js +7 -0
  64. package/net/dist/talismn-chaindata-provider-net.cjs.prod.js +14 -0
  65. package/net/dist/talismn-chaindata-provider-net.esm.js +1 -0
  66. package/net/package.json +4 -0
  67. package/package.json +27 -14
  68. package/CHANGELOG.md +0 -104
  69. package/dist/declarations/src/github.d.ts +0 -11
  70. package/dist/declarations/src/plugins.d.ts +0 -17
  71. package/dist/declarations/src/types/Token.d.ts +0 -48
  72. package/plugins/dist/talismn-chaindata-provider-plugins.cjs.d.ts +0 -1
  73. package/plugins/dist/talismn-chaindata-provider-plugins.cjs.dev.js +0 -2
  74. package/plugins/dist/talismn-chaindata-provider-plugins.cjs.js +0 -7
  75. package/plugins/dist/talismn-chaindata-provider-plugins.cjs.prod.js +0 -2
  76. package/plugins/dist/talismn-chaindata-provider-plugins.esm.js +0 -1
  77. package/plugins/package.json +0 -4
@@ -1,18 +1,91 @@
1
- import { Chain, ChainId, ChainList, CustomChain, CustomEvmNetwork, EvmNetwork, EvmNetworkId, EvmNetworkList, Token, TokenId, TokenList } from "./types";
2
- export interface ChaindataChainProvider {
3
- chainIds(): Promise<ChainId[]>;
4
- chains(): Promise<ChainList>;
5
- getChain(chainIdOrQuery: ChainId | Partial<Chain>): Promise<Chain | CustomChain | null>;
6
- }
7
- export interface ChaindataEvmNetworkProvider {
8
- evmNetworkIds(): Promise<EvmNetworkId[]>;
9
- evmNetworks(): Promise<EvmNetworkList>;
10
- getEvmNetwork(evmNetworkIdOrQuery: EvmNetworkId | Partial<EvmNetwork>): Promise<EvmNetwork | CustomEvmNetwork | null>;
11
- }
12
- export interface ChaindataTokenProvider {
13
- tokenIds(): Promise<TokenId[]>;
14
- tokens(): Promise<TokenList>;
15
- getToken(tokenIdOrQuery: TokenId | Partial<Token>): Promise<Token | null>;
16
- }
17
- export interface ChaindataProvider extends ChaindataChainProvider, ChaindataEvmNetworkProvider, ChaindataTokenProvider {
1
+ import { Transaction, TransactionMode } from "dexie";
2
+ import { ReplaySubject } from "rxjs";
3
+ import { Chain, ChainId, CustomChain, CustomEvmNetwork, EvmNetwork, EvmNetworkId, IChaindataProvider, Token, TokenId } from "./types";
4
+ export type ChaindataProviderOptions = {
5
+ onfinalityApiKey?: string;
6
+ };
7
+ export declare class ChaindataProvider implements IChaindataProvider {
8
+ #private;
9
+ constructor(options?: ChaindataProviderOptions);
10
+ destroy(): void;
11
+ setOnfinalityApiKey(apiKey: string | undefined): void;
12
+ chainsObservable: ReplaySubject<(Chain | CustomChain)[]>;
13
+ chains(): Promise<(Chain | CustomChain)[]>;
14
+ evmNetworksObservable: ReplaySubject<(EvmNetwork | CustomEvmNetwork)[]>;
15
+ evmNetworks(): Promise<(EvmNetwork | CustomEvmNetwork)[]>;
16
+ tokensObservable: ReplaySubject<Token[]>;
17
+ tokens(): Promise<Token[]>;
18
+ get customChainsObservable(): import("rxjs").Observable<CustomChain[]>;
19
+ customChains(): Promise<CustomChain[]>;
20
+ get customEvmNetworksObservable(): import("rxjs").Observable<CustomEvmNetwork[]>;
21
+ customEvmNetworks(): Promise<CustomEvmNetwork[]>;
22
+ get customTokensObservable(): import("rxjs").Observable<Token[]>;
23
+ customTokens(): Promise<Token[]>;
24
+ get chainIdsObservable(): import("rxjs").Observable<string[]>;
25
+ chainIds(): Promise<string[]>;
26
+ get evmNetworkIdsObservable(): import("rxjs").Observable<string[]>;
27
+ evmNetworkIds(): Promise<string[]>;
28
+ get tokenIdsObservable(): import("rxjs").Observable<string[]>;
29
+ tokenIds(): Promise<string[]>;
30
+ get chainsByIdObservable(): import("rxjs").Observable<Record<string, Chain | CustomChain>>;
31
+ chainsById(): Promise<Record<string, Chain | CustomChain>>;
32
+ get evmNetworksByIdObservable(): import("rxjs").Observable<Record<string, EvmNetwork | CustomEvmNetwork>>;
33
+ evmNetworksById(): Promise<Record<string, EvmNetwork | CustomEvmNetwork>>;
34
+ get tokensByIdObservable(): import("rxjs").Observable<Record<string, Token>>;
35
+ tokensById(): Promise<Record<string, Token>>;
36
+ tokensByIdForType<TokenType extends Token["type"]>(type: TokenType): Promise<Record<string, Token>>;
37
+ get chainsByGenesisHashObservable(): import("rxjs").Observable<Record<string, Chain | CustomChain>>;
38
+ chainsByGenesisHash(): Promise<Record<string, Chain | CustomChain>>;
39
+ chainById(chainId: ChainId): Promise<Chain | null>;
40
+ chainByGenesisHash(genesisHash: `0x${string}`): Promise<Chain | null>;
41
+ evmNetworkById(evmNetworkId: EvmNetworkId): Promise<EvmNetwork | null>;
42
+ tokenById(tokenId: TokenId): Promise<Token | null>;
43
+ addCustomChain(customChain: CustomChain): Promise<string | undefined>;
44
+ removeCustomChain(chainId: ChainId): Promise<number>;
45
+ setCustomChains(chains: CustomChain[]): Promise<void>;
46
+ resetChain(chainId: ChainId): Promise<void>;
47
+ addCustomEvmNetwork(customEvmNetwork: CustomEvmNetwork): Promise<string | void>;
48
+ removeCustomEvmNetwork(evmNetworkId: EvmNetworkId): Promise<void>;
49
+ setCustomEvmNetworks(networks: CustomEvmNetwork[]): Promise<void>;
50
+ resetEvmNetwork(evmNetworkId: EvmNetworkId): Promise<void>;
51
+ addCustomToken(customToken: Token): Promise<string | void>;
52
+ removeCustomToken(tokenId: TokenId): Promise<number>;
53
+ setCustomTokens(tokens: Token[]): Promise<void>;
54
+ removeToken(tokenId: TokenId): Promise<void>;
55
+ /**
56
+ * Hydrate the db with the latest chaindata from subsquid.
57
+ *
58
+ * @returns A promise which resolves to true if any db table has been hydrated, or false if all hydration has been skipped.
59
+ */
60
+ hydrate({ tokensArgs, }?: {
61
+ chainsArgs?: Parameters<ChaindataProvider["hydrateChains"]>;
62
+ evmNetworksArgs?: Parameters<ChaindataProvider["hydrateEvmNetworks"]>;
63
+ tokensArgs?: Parameters<ChaindataProvider["hydrateSubstrateTokens"]>;
64
+ }): Promise<boolean>;
65
+ /**
66
+ * Hydrate the db with the latest chains from subsquid.
67
+ * Hydration is skipped when the last successful hydration was less than minimumHydrationInterval ms ago.
68
+ *
69
+ * @returns A promise which resolves to true if the db has been hydrated, or false if the hydration was skipped.
70
+ */
71
+ hydrateChains(): Promise<boolean>;
72
+ /**
73
+ * Hydrate the db with the latest evmNetworks from subsquid.
74
+ * Hydration is skipped when the last successful hydration was less than minimumHydrationInterval ms ago.
75
+ *
76
+ * @returns A promise which resolves to true if the db has been hydrated, or false if the hydration was skipped.
77
+ */
78
+ hydrateEvmNetworks(): Promise<boolean>;
79
+ updateChainTokens(chainId: ChainId, source: string, newTokens: Token[], availableTokenLogoFilenames: string[]): Promise<void>;
80
+ updateEvmNetworkTokens(newTokens: Token[]): Promise<void>;
81
+ /**
82
+ * Hydrate the db with the latest tokens from subsquid.
83
+ * Hydration is skipped when the last successful hydration was less than minimumHydrationInterval ms ago.
84
+ *
85
+ * @returns A promise which resolves to true if the db has been hydrated, or false if the hydration was skipped.
86
+ */
87
+ hydrateSubstrateTokens(chainIdFilter?: ChainId[]): Promise<boolean>;
88
+ getIsBuiltInChain(chainId: ChainId): Promise<boolean>;
89
+ getIsBuiltInEvmNetwork(evmNetworkId: EvmNetworkId): Promise<boolean>;
90
+ transaction<U>(mode: TransactionMode, tables: string[], scope: (trans: Transaction) => PromiseLike<U> | U): Promise<U>;
18
91
  }
@@ -0,0 +1,9 @@
1
+ import { Dexie } from "dexie";
2
+ import { Chain, ChainId, CustomChain, CustomEvmNetwork, EvmNetwork, EvmNetworkId, Token, TokenId } from "./types";
3
+ export declare class TalismanChaindataDatabase extends Dexie {
4
+ chains: Dexie.Table<Chain | CustomChain, ChainId>;
5
+ evmNetworks: Dexie.Table<EvmNetwork | CustomEvmNetwork, EvmNetworkId>;
6
+ tokens: Dexie.Table<Token, TokenId>;
7
+ constructor();
8
+ }
9
+ export declare const db: TalismanChaindataDatabase;
@@ -0,0 +1,26 @@
1
+ import { ChainId, EvmNetworkId, TokenId } from "./types";
2
+ export declare const githubApi = "https://api.github.com";
3
+ export declare const githubCdn = "https://raw.githubusercontent.com";
4
+ export declare const githubChaindataOrg = "TalismanSociety";
5
+ export declare const githubChaindataRepo = "chaindata";
6
+ export declare const githubChaindataBranch = "main";
7
+ export declare const githubChaindataDistDir = "pub/v2";
8
+ export declare const githubChaindataBaseUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main";
9
+ export declare const githubChaindataDistUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2";
10
+ export declare const githubChaindataChainsAssetsDir = "assets/chains";
11
+ export declare const githubChaindataTokensAssetsDir = "assets/tokens";
12
+ export declare const githubChainLogoUrl: (chainId: ChainId) => string;
13
+ export declare const githubEvmNetworkLogoUrl: (networkId: EvmNetworkId) => string;
14
+ export declare const githubTokenLogoUrl: (tokenId: TokenId) => string;
15
+ export declare const githubUnknownChainLogoUrl: string;
16
+ export declare const githubUnknownTokenLogoUrl: string;
17
+ export declare const chaindataChainsAllUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2/chains/all.json";
18
+ export declare const chaindataChainsSummaryUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2/chains/summary.json";
19
+ export declare const chaindataChainByIdUrl: (chainId: string) => string;
20
+ export declare const chaindataChainByGenesisHashUrl: (genesisHash: string) => string;
21
+ export declare const chaindataEvmNetworksAllUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2/evmNetworks/all.json";
22
+ export declare const chaindataEvmNetworksSummaryUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2/evmNetworks/summary.json";
23
+ export declare const chaindataEvmNetworkByIdUrl: (evmNetworkId: string) => string;
24
+ export declare const chaindataTokensAllUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2/tokens/all.json";
25
+ export declare const chaindataTokenByIdUrl: (tokenId: string) => string;
26
+ export declare const chaindataMiniMetadatasAllUrl = "https://raw.githubusercontent.com/TalismanSociety/chaindata/main/pub/v2/miniMetadatas/all.json";
@@ -1,3 +1,6 @@
1
- export * from "./ChaindataProvider";
1
+ export * from "./constants";
2
+ export * from "./init";
3
+ export * from "./net";
2
4
  export * from "./types";
3
- export * from "./github";
5
+ export * from "./util";
6
+ export * from "./ChaindataProvider";
@@ -0,0 +1,243 @@
1
+ export declare const chains: ({
2
+ id: string;
3
+ isTestnet: boolean;
4
+ isDefault: boolean;
5
+ sortIndex: number;
6
+ genesisHash: string;
7
+ prefix: number;
8
+ name: string;
9
+ themeColor: string;
10
+ logo: string;
11
+ chainName: string;
12
+ chainType: string;
13
+ implName: string;
14
+ specName: string;
15
+ specVersion: string;
16
+ nativeToken: {
17
+ id: string;
18
+ };
19
+ tokens: {
20
+ id: string;
21
+ }[];
22
+ account: string;
23
+ subscanUrl: string;
24
+ chainspecQrUrl: string;
25
+ latestMetadataQrUrl: string;
26
+ isUnknownFeeToken: boolean;
27
+ feeToken: null;
28
+ rpcs: {
29
+ url: string;
30
+ }[];
31
+ evmNetworks: never[];
32
+ parathreads: {
33
+ id: string;
34
+ paraId: number;
35
+ name: string;
36
+ }[];
37
+ paraId: null;
38
+ relay: null;
39
+ balancesConfig: {
40
+ moduleType: string;
41
+ moduleConfig: {
42
+ coingeckoId: string;
43
+ dcentName: string;
44
+ logo: string;
45
+ };
46
+ }[];
47
+ balancesMetadata: never[];
48
+ hasCheckMetadataHash: boolean;
49
+ oldPrefix?: undefined;
50
+ } | {
51
+ id: string;
52
+ isTestnet: boolean;
53
+ isDefault: boolean;
54
+ sortIndex: number;
55
+ genesisHash: string;
56
+ prefix: number;
57
+ name: string;
58
+ themeColor: string;
59
+ logo: string;
60
+ chainName: string;
61
+ chainType: string;
62
+ implName: string;
63
+ specName: string;
64
+ specVersion: string;
65
+ nativeToken: {
66
+ id: string;
67
+ };
68
+ tokens: {
69
+ id: string;
70
+ }[];
71
+ account: string;
72
+ subscanUrl: string;
73
+ chainspecQrUrl: string;
74
+ latestMetadataQrUrl: string;
75
+ isUnknownFeeToken: boolean;
76
+ feeToken: null;
77
+ rpcs: {
78
+ url: string;
79
+ }[];
80
+ evmNetworks: never[];
81
+ parathreads: {
82
+ id: string;
83
+ paraId: number;
84
+ name: string;
85
+ }[];
86
+ paraId: null;
87
+ relay: null;
88
+ balancesConfig: {
89
+ moduleType: string;
90
+ moduleConfig: {
91
+ coingeckoId: string;
92
+ logo: string;
93
+ };
94
+ }[];
95
+ balancesMetadata: never[];
96
+ hasCheckMetadataHash: boolean;
97
+ oldPrefix?: undefined;
98
+ } | {
99
+ id: string;
100
+ isTestnet: boolean;
101
+ isDefault: boolean;
102
+ sortIndex: number;
103
+ genesisHash: string;
104
+ prefix: number;
105
+ name: string;
106
+ themeColor: string;
107
+ logo: string;
108
+ chainName: string;
109
+ chainType: string;
110
+ implName: string;
111
+ specName: string;
112
+ specVersion: string;
113
+ nativeToken: {
114
+ id: string;
115
+ };
116
+ tokens: {
117
+ id: string;
118
+ }[];
119
+ account: string;
120
+ subscanUrl: string;
121
+ chainspecQrUrl: string;
122
+ latestMetadataQrUrl: string;
123
+ isUnknownFeeToken: boolean;
124
+ feeToken: null;
125
+ rpcs: {
126
+ url: string;
127
+ }[];
128
+ evmNetworks: never[];
129
+ parathreads: null;
130
+ paraId: number;
131
+ relay: {
132
+ id: string;
133
+ };
134
+ balancesConfig: ({
135
+ moduleType: string;
136
+ moduleConfig: {
137
+ coingeckoId: string;
138
+ logo: string;
139
+ tokens?: undefined;
140
+ };
141
+ } | {
142
+ moduleType: string;
143
+ moduleConfig: {
144
+ tokens: ({
145
+ assetId: number;
146
+ symbol: string;
147
+ coingeckoId: string;
148
+ logo: string;
149
+ } | {
150
+ assetId: number;
151
+ symbol: string;
152
+ logo: string;
153
+ coingeckoId?: undefined;
154
+ })[];
155
+ coingeckoId?: undefined;
156
+ logo?: undefined;
157
+ };
158
+ })[];
159
+ balancesMetadata: never[];
160
+ hasCheckMetadataHash: boolean;
161
+ oldPrefix?: undefined;
162
+ } | {
163
+ id: string;
164
+ isTestnet: boolean;
165
+ isDefault: boolean;
166
+ sortIndex: number;
167
+ genesisHash: string;
168
+ prefix: number;
169
+ oldPrefix: number;
170
+ name: string;
171
+ themeColor: string;
172
+ logo: string;
173
+ chainName: string;
174
+ chainType: string;
175
+ implName: string;
176
+ specName: string;
177
+ specVersion: string;
178
+ nativeToken: {
179
+ id: string;
180
+ };
181
+ tokens: {
182
+ id: string;
183
+ }[];
184
+ account: string;
185
+ subscanUrl: string;
186
+ chainspecQrUrl: string;
187
+ latestMetadataQrUrl: string;
188
+ isUnknownFeeToken: boolean;
189
+ feeToken: null;
190
+ rpcs: {
191
+ url: string;
192
+ }[];
193
+ evmNetworks: never[];
194
+ parathreads: null;
195
+ paraId: number;
196
+ relay: {
197
+ id: string;
198
+ };
199
+ balancesConfig: ({
200
+ moduleType: string;
201
+ moduleConfig: {
202
+ coingeckoId: string;
203
+ logo: string;
204
+ tokens?: undefined;
205
+ };
206
+ } | {
207
+ moduleType: string;
208
+ moduleConfig: {
209
+ tokens: ({
210
+ assetId: number;
211
+ symbol: string;
212
+ coingeckoId: string;
213
+ logo: string;
214
+ } | {
215
+ assetId: number;
216
+ symbol: string;
217
+ logo: string;
218
+ coingeckoId?: undefined;
219
+ })[];
220
+ coingeckoId?: undefined;
221
+ logo?: undefined;
222
+ };
223
+ } | {
224
+ moduleType: string;
225
+ moduleConfig: {
226
+ tokens: ({
227
+ onChainId: string;
228
+ symbol: string;
229
+ coingeckoId: string;
230
+ logo: string;
231
+ } | {
232
+ onChainId: string;
233
+ symbol: string;
234
+ logo: string;
235
+ coingeckoId?: undefined;
236
+ })[];
237
+ coingeckoId?: undefined;
238
+ logo?: undefined;
239
+ };
240
+ })[];
241
+ balancesMetadata: never[];
242
+ hasCheckMetadataHash: boolean;
243
+ })[];
@@ -0,0 +1,61 @@
1
+ export declare const evmNetworks: {
2
+ id: string;
3
+ isTestnet: boolean;
4
+ sortIndex: number;
5
+ name: string;
6
+ themeColor: string;
7
+ logo: string;
8
+ nativeToken: null;
9
+ tokens: never[];
10
+ explorerUrl: string;
11
+ rpcs: {
12
+ url: string;
13
+ }[];
14
+ substrateChain: null;
15
+ feeType: string;
16
+ erc20aggregator: string;
17
+ balancesConfig: ({
18
+ moduleType: string;
19
+ moduleConfig: {
20
+ coingeckoId: string;
21
+ dcentName: string;
22
+ symbol: string;
23
+ decimals: number;
24
+ logo: string;
25
+ tokens?: undefined;
26
+ pools?: undefined;
27
+ };
28
+ } | {
29
+ moduleType: string;
30
+ moduleConfig: {
31
+ tokens: {
32
+ symbol: string;
33
+ contractAddress: string;
34
+ coingeckoId: string;
35
+ isDefault: boolean;
36
+ decimals: number;
37
+ logo: string;
38
+ }[];
39
+ coingeckoId?: undefined;
40
+ dcentName?: undefined;
41
+ symbol?: undefined;
42
+ decimals?: undefined;
43
+ logo?: undefined;
44
+ pools?: undefined;
45
+ };
46
+ } | {
47
+ moduleType: string;
48
+ moduleConfig: {
49
+ pools: never[];
50
+ logo: string;
51
+ coingeckoId?: undefined;
52
+ dcentName?: undefined;
53
+ symbol?: undefined;
54
+ decimals?: undefined;
55
+ tokens?: undefined;
56
+ };
57
+ })[];
58
+ balancesMetadata: never[];
59
+ isDefault: boolean;
60
+ forceScan: boolean;
61
+ }[];
@@ -0,0 +1,5 @@
1
+ import type { Chain, EvmNetwork, Token } from "../types";
2
+ export declare const fetchInitChains: () => Promise<Chain[]>;
3
+ export declare const fetchInitEvmNetworks: () => Promise<EvmNetwork[]>;
4
+ export declare const fetchInitSubstrateTokens: () => Promise<Token[]>;
5
+ export declare const fetchInitMiniMetadatas: () => Promise<any[]>;
@@ -0,0 +1,21 @@
1
+ export declare const miniMetadatas: ({
2
+ id: string;
3
+ source: string;
4
+ chainId: string;
5
+ specName: string;
6
+ specVersion: string;
7
+ balancesConfig: string;
8
+ extra: string;
9
+ version?: undefined;
10
+ data?: undefined;
11
+ } | {
12
+ id: string;
13
+ source: string;
14
+ chainId: string;
15
+ specName: string;
16
+ specVersion: string;
17
+ balancesConfig: string;
18
+ version: number;
19
+ data: string;
20
+ extra: string;
21
+ })[];
@@ -0,0 +1,103 @@
1
+ export declare const tokens: ({
2
+ id: string;
3
+ type: string;
4
+ isTestnet: boolean;
5
+ isDefault: boolean;
6
+ symbol: string;
7
+ decimals: number;
8
+ logo: string;
9
+ existentialDeposit: string;
10
+ assetId: string;
11
+ isFrozen: boolean;
12
+ chain: {
13
+ id: string;
14
+ };
15
+ coingeckoId?: undefined;
16
+ onChainId?: undefined;
17
+ dcentName?: undefined;
18
+ } | {
19
+ id: string;
20
+ type: string;
21
+ isTestnet: boolean;
22
+ isDefault: boolean;
23
+ symbol: string;
24
+ decimals: number;
25
+ logo: string;
26
+ existentialDeposit: string;
27
+ assetId: string;
28
+ isFrozen: boolean;
29
+ chain: {
30
+ id: string;
31
+ };
32
+ coingeckoId: string;
33
+ onChainId?: undefined;
34
+ dcentName?: undefined;
35
+ } | {
36
+ id: string;
37
+ type: string;
38
+ isTestnet: boolean;
39
+ isDefault: boolean;
40
+ symbol: string;
41
+ decimals: number;
42
+ logo: string;
43
+ existentialDeposit: string;
44
+ chain: {
45
+ id: string;
46
+ };
47
+ coingeckoId: string;
48
+ assetId?: undefined;
49
+ isFrozen?: undefined;
50
+ onChainId?: undefined;
51
+ dcentName?: undefined;
52
+ } | {
53
+ id: string;
54
+ type: string;
55
+ isTestnet: boolean;
56
+ isDefault: boolean;
57
+ symbol: string;
58
+ decimals: number;
59
+ logo: string;
60
+ existentialDeposit: string;
61
+ onChainId: string;
62
+ isFrozen: boolean;
63
+ chain: {
64
+ id: string;
65
+ };
66
+ coingeckoId: string;
67
+ assetId?: undefined;
68
+ dcentName?: undefined;
69
+ } | {
70
+ id: string;
71
+ type: string;
72
+ isTestnet: boolean;
73
+ isDefault: boolean;
74
+ symbol: string;
75
+ decimals: number;
76
+ logo: string;
77
+ existentialDeposit: string;
78
+ onChainId: string;
79
+ isFrozen: boolean;
80
+ chain: {
81
+ id: string;
82
+ };
83
+ assetId?: undefined;
84
+ coingeckoId?: undefined;
85
+ dcentName?: undefined;
86
+ } | {
87
+ id: string;
88
+ type: string;
89
+ isTestnet: boolean;
90
+ isDefault: boolean;
91
+ symbol: string;
92
+ decimals: number;
93
+ logo: string;
94
+ existentialDeposit: string;
95
+ chain: {
96
+ id: string;
97
+ };
98
+ coingeckoId: string;
99
+ dcentName: string;
100
+ assetId?: undefined;
101
+ isFrozen?: undefined;
102
+ onChainId?: undefined;
103
+ })[];
@@ -0,0 +1,2 @@
1
+ declare const _default: import("anylogger").Logger<import("anylogger").BaseLevels>;
2
+ export default _default;
@@ -0,0 +1,8 @@
1
+ export declare const fetchChains: () => Promise<any>;
2
+ export declare const fetchChain: (chainId: string) => Promise<any>;
3
+ export declare const fetchEvmNetworks: () => Promise<any>;
4
+ export declare const fetchEvmNetwork: (evmNetworkId: string) => Promise<any>;
5
+ export declare const fetchSubstrateTokens: () => Promise<any>;
6
+ export declare const fetchSubstrateToken: (tokenId: string) => Promise<any>;
7
+ export declare const fetchMiniMetadatas: () => Promise<any>;
8
+ export declare const availableTokenLogoFilenames: () => Promise<string[]>;
@@ -1,17 +1,22 @@
1
1
  import { EvmNetworkId } from "./EvmNetwork";
2
2
  import { TokenId } from "./Token";
3
- export type ChainList = Record<ChainId, Chain | CustomChain>;
3
+ export type ChainList = Record<ChainId, Chain>;
4
4
  export type ChainId = string;
5
5
  export type Chain = {
6
6
  id: ChainId;
7
7
  isTestnet: boolean;
8
+ isDefault: boolean;
8
9
  sortIndex: number | null;
9
10
  genesisHash: `0x${string}` | null;
10
11
  prefix: number | null;
12
+ oldPrefix?: number;
11
13
  name: string | null;
12
14
  themeColor: string | null;
13
15
  logo: string | null;
14
16
  chainName: string | null;
17
+ chainType: "Development" | "Local" | "Live" | {
18
+ Custom: string;
19
+ } | string | null;
15
20
  implName: string | null;
16
21
  specName: string | null;
17
22
  specVersion: string | null;
@@ -26,24 +31,56 @@ export type Chain = {
26
31
  chainspecQrUrl: string | null;
27
32
  latestMetadataQrUrl: string | null;
28
33
  isUnknownFeeToken: boolean;
34
+ feeToken: string | null;
29
35
  rpcs: Array<SubstrateRpc> | null;
30
- isHealthy: boolean;
31
36
  evmNetworks: Array<{
32
37
  id: EvmNetworkId;
33
38
  }>;
34
39
  parathreads: Array<Pick<Chain, "id" | "paraId" | "name">> | null;
35
40
  paraId: number | null;
36
41
  relay: Pick<Chain, "id"> | null;
37
- balanceMetadata: Array<BalanceMetadata>;
42
+ balancesConfig: Array<BalancesConfig>;
43
+ /** @deprecated has its own store now */
44
+ balancesMetadata: Array<BalancesMetadata>;
45
+ /** Indicates if the chain has the `CheckMetadataHash` extension, enabling signing with the ledger generic app */
46
+ hasCheckMetadataHash?: boolean;
47
+ /**
48
+ * Some chains require a 1-byte prefix on transaction signatures to indicate the signing algo used:
49
+ *
50
+ * - Ed25519: `0x00`
51
+ * - Sr25519: `0x01`
52
+ * - Ecdsa: `0x02`
53
+ * - Ethereum: `0x03`
54
+ *
55
+ * Polkadot.js tries to auto-detect whether to add this prefix or not,
56
+ * as part of the `GenericExtrinsicPayload.sign` method:
57
+ * - https://github.com/polkadot-js/api/blob/778d79a/packages/types/src/extrinsic/v4/ExtrinsicPayload.ts#L37-L39
58
+ * - https://github.com/polkadot-js/api/blob/778d79a/packages/types/src/extrinsic/v4/ExtrinsicPayload.ts#L122-L129
59
+ *
60
+ * However, on some chains this auto-detection results in either a false-positive or false-negative.
61
+ *
62
+ * By leveraging the generic extrinsic sign function from `@polkadot/types/extrinsic/util`:
63
+ * - https://github.com/polkadot-js/api/blob/778d79a/packages/types/src/extrinsic/util.ts#L9-L15
64
+ *
65
+ * We can specify whether or not to include the signature prefix, based on the value of this `hasExtrinsicSignatureTypePrefix` property.
66
+ */
67
+ hasExtrinsicSignatureTypePrefix?: boolean;
68
+ /** Custom types to be registered in the TypeRegistry */
69
+ signedExtensions?: any;
70
+ /** Custom signed extensions to be registered in the Metadata object */
71
+ registryTypes?: any;
38
72
  };
39
73
  export type CustomChain = Chain & {
40
74
  isCustom: true;
41
75
  };
42
76
  export type SubstrateRpc = {
43
77
  url: string;
44
- isHealthy: boolean;
45
78
  };
46
- export type BalanceMetadata = {
79
+ export type BalancesConfig = {
80
+ moduleType: string;
81
+ moduleConfig: unknown;
82
+ };
83
+ export type BalancesMetadata = {
47
84
  moduleType: string;
48
85
  metadata: unknown;
49
86
  };