@talismn/balances 0.0.0-pr2067-20250630033435 → 0.0.0-pr2075-20250703111149

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 (46) hide show
  1. package/dist/declarations/src/BalanceModule.d.ts +23 -12
  2. package/dist/declarations/src/getMiniMetadata/getMetadataRpc.d.ts +3 -0
  3. package/dist/declarations/src/getMiniMetadata/getMiniMetadatas.d.ts +4 -0
  4. package/dist/declarations/src/getMiniMetadata/getSpecVersion.d.ts +6 -0
  5. package/dist/declarations/src/getMiniMetadata/getUpdatedMiniMetadatas.d.ts +4 -0
  6. package/dist/declarations/src/getMiniMetadata/index.d.ts +5 -0
  7. package/dist/declarations/src/index.d.ts +0 -3
  8. package/dist/declarations/src/libVersion.d.ts +1 -0
  9. package/dist/declarations/src/modules/EvmErc20Module.d.ts +20 -23
  10. package/dist/declarations/src/modules/EvmNativeModule.d.ts +19 -18
  11. package/dist/declarations/src/modules/EvmUniswapV2Module.d.ts +28 -30
  12. package/dist/declarations/src/modules/SubstrateAssetsModule.d.ts +20 -18
  13. package/dist/declarations/src/modules/SubstrateForeignAssetsModule.d.ts +20 -18
  14. package/dist/declarations/src/modules/SubstrateNativeModule/index.d.ts +17 -4
  15. package/dist/declarations/src/modules/SubstrateNativeModule/subscribeNompoolStaking.d.ts +3 -3
  16. package/dist/declarations/src/modules/SubstrateNativeModule/subscribeSubtensorStaking.d.ts +3 -3
  17. package/dist/declarations/src/modules/SubstrateNativeModule/types.d.ts +6 -23
  18. package/dist/declarations/src/modules/SubstrateNativeModule/util/QueryCache.d.ts +6 -6
  19. package/dist/declarations/src/modules/SubstrateNativeModule/util/buildQueries.d.ts +5 -4
  20. package/dist/declarations/src/modules/SubstrateNativeModule/util/sortChains.d.ts +1 -1
  21. package/dist/declarations/src/modules/SubstrateNativeModule/util/systemProperties.d.ts +5 -0
  22. package/dist/declarations/src/modules/SubstratePsp22Module.d.ts +20 -19
  23. package/dist/declarations/src/modules/SubstrateTokensModule.d.ts +22 -22
  24. package/dist/declarations/src/modules/index.d.ts +213 -38
  25. package/dist/declarations/src/modules/util/InferBalanceModuleTypes.d.ts +5 -3
  26. package/dist/declarations/src/modules/util/buildStorageCoders.d.ts +16 -7
  27. package/dist/declarations/src/modules/util/getAddresssesByTokenByNetwork.d.ts +3 -0
  28. package/dist/declarations/src/modules/util/getUniqueChainIds.d.ts +2 -2
  29. package/dist/declarations/src/modules/util/index.d.ts +0 -1
  30. package/dist/declarations/src/types/balances.d.ts +220 -72
  31. package/dist/declarations/src/types/balancetypes.d.ts +8 -18
  32. package/dist/declarations/src/types/minimetadatas.d.ts +6 -24
  33. package/dist/declarations/src/types/tokens.d.ts +11 -0
  34. package/dist/talismn-balances.cjs.dev.js +1415 -2090
  35. package/dist/talismn-balances.cjs.prod.js +1415 -2090
  36. package/dist/talismn-balances.esm.js +1417 -2086
  37. package/package.json +9 -8
  38. package/dist/declarations/src/EvmTokenFetcher.d.ts +0 -11
  39. package/dist/declarations/src/MiniMetadataUpdater.d.ts +0 -43
  40. package/dist/declarations/src/modules/SubstrateEquilibriumModule.d.ts +0 -39
  41. package/dist/declarations/src/modules/SubstrateNativeModule/subscribeCrowdloans.d.ts +0 -5
  42. package/dist/declarations/src/modules/SubstrateNativeModule/util/crowdloanFundContributionsChildKey.d.ts +0 -4
  43. package/dist/declarations/src/modules/SubstrateNativeModule/util/detectMiniMetadataChanges.d.ts +0 -2
  44. package/dist/declarations/src/modules/util/findChainMeta.d.ts +0 -8
  45. package/dist/declarations/src/util/hydrateChaindata.d.ts +0 -8
  46. package/dist/declarations/src/util/index.d.ts +0 -1
@@ -1,16 +1,27 @@
1
1
  import { ChainConnector } from "@talismn/chain-connector";
2
2
  import { ChainConnectorEvm } from "@talismn/chain-connector-evm";
3
- import { ChaindataProvider, ChainId, Token } from "@talismn/chaindata-provider";
3
+ import { ChaindataProvider, DotNetworkId, EthNetworkId, Token } from "@talismn/chaindata-provider";
4
4
  import { AddressesByToken, BalanceJson, Balances, SubscriptionCallback, UnsubscribeFn } from "./types";
5
+ export type ChainMeta<Extra extends Record<string, unknown> | null> = {
6
+ miniMetadata: `0x${string}` | null;
7
+ extra: Extra;
8
+ };
9
+ export type TokenConfig = object;
10
+ export type BalancesConfig<ModConfig extends object | undefined, TokenConfig extends object | undefined> = {
11
+ config?: ModConfig;
12
+ tokens?: TokenConfig[];
13
+ };
5
14
  export type BalancesCommonTransferMethods = "transfer_keep_alive" | "transfer_all";
6
15
  export type BalancesTransferMethods = "transfer_allow_death" | BalancesCommonTransferMethods;
7
16
  export type BalancesLegacyTransferMethods = "transfer" | BalancesCommonTransferMethods;
8
17
  export type BalancesAllTransferMethods = BalancesLegacyTransferMethods | BalancesTransferMethods;
9
18
  export type SelectableTokenType = Token;
10
- export type ExtendableChainMeta = Record<string, unknown> | undefined;
11
- export type DefaultChainMeta = undefined;
19
+ export type ExtendableChainMeta = ChainMeta<Record<string, unknown> | null>;
20
+ export type DefaultChainMeta = ChainMeta<null>;
12
21
  export type ExtendableModuleConfig = Record<string, unknown> | undefined;
22
+ export type ExtendableTokenConfig = Record<string, unknown> | undefined;
13
23
  export type DefaultModuleConfig = undefined;
24
+ export type DefaultTokenConfig = undefined;
14
25
  export type BaseTransferParams = {
15
26
  tokenId: string;
16
27
  from: string;
@@ -34,21 +45,21 @@ export type Hydrate = {
34
45
  chainConnectors: ChainConnectors;
35
46
  chaindataProvider: ChaindataProvider;
36
47
  };
37
- export type NewBalanceModule<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> = (hydrate: Hydrate) => BalanceModule<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTransferParams>;
38
- export interface BalanceModule<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> extends BalanceModuleSubstrate<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTransferParams>, BalanceModuleEvm<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTransferParams> {
48
+ export type NewBalanceModule<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTokenConfig extends ExtendableTokenConfig = DefaultTokenConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> = (hydrate: Hydrate) => BalanceModule<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTokenConfig, TTransferParams>;
49
+ export interface BalanceModule<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTokenConfig extends ExtendableTokenConfig = DefaultTokenConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> extends BalanceModuleSubstrate<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTokenConfig, TTransferParams>, BalanceModuleEvm<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTokenConfig, TTransferParams> {
39
50
  }
40
- export declare const DefaultBalanceModule: <TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams>(type: TModuleType) => BalanceModule<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTransferParams>;
41
- interface BalanceModuleSubstrate<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> extends BalanceModuleCommon<TModuleType, TTokenType, TTransferParams> {
51
+ export declare const DefaultBalanceModule: <TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTokenConfig extends ExtendableTokenConfig = DefaultTokenConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams>(type: TModuleType) => BalanceModule<TModuleType, TTokenType, TChainMeta, TModuleConfig, TTokenConfig, TTransferParams>;
52
+ interface BalanceModuleSubstrate<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta, TModuleConfig extends ExtendableModuleConfig, TTokenConfig extends ExtendableTokenConfig, TTransferParams extends ExtendableTransferParams> extends BalanceModuleCommon<TModuleType, TTokenType, TTransferParams> {
42
53
  /** Pre-processes any substrate chain metadata required by this module ahead of time */
43
- fetchSubstrateChainMeta(chainId: ChainId, moduleConfig?: TModuleConfig, metadataRpc?: `0x${string}`, systemProperties?: Record<string, any>): Promise<TChainMeta | null>;
54
+ fetchSubstrateChainMeta(chainId: DotNetworkId, moduleConfig?: TModuleConfig, metadataRpc?: `0x${string}`): Promise<TChainMeta | null>;
44
55
  /** Detects which tokens are available on a given substrate chain */
45
- fetchSubstrateChainTokens(chainId: ChainId, chainMeta: TChainMeta, moduleConfig?: TModuleConfig): Promise<Record<TTokenType["id"], TTokenType>>;
56
+ fetchSubstrateChainTokens(chainId: DotNetworkId, chainMeta: TChainMeta, moduleConfig?: TModuleConfig, tokens?: TTokenConfig[]): Promise<Record<TTokenType["id"], TTokenType>>;
46
57
  }
47
- interface BalanceModuleEvm<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> extends BalanceModuleCommon<TModuleType, TTokenType, TTransferParams> {
58
+ interface BalanceModuleEvm<TModuleType extends string, TTokenType extends SelectableTokenType, TChainMeta extends ExtendableChainMeta = DefaultChainMeta, TModuleConfig extends ExtendableModuleConfig = DefaultModuleConfig, TTokenConfig extends ExtendableTokenConfig = DefaultTokenConfig, TTransferParams extends ExtendableTransferParams = DefaultTransferParams> extends BalanceModuleCommon<TModuleType, TTokenType, TTransferParams> {
48
59
  /** Pre-processes any evm chain metadata required by this module ahead of time */
49
- fetchEvmChainMeta(chainId: ChainId, moduleConfig?: TModuleConfig): Promise<TChainMeta | null>;
60
+ fetchEvmChainMeta(chainId: EthNetworkId, moduleConfig?: TModuleConfig): Promise<TChainMeta | null>;
50
61
  /** Detects which tokens are available on a given evm chain */
51
- fetchEvmChainTokens(chainId: ChainId, chainMeta: TChainMeta, moduleConfig?: TModuleConfig): Promise<Record<TTokenType["id"], TTokenType>>;
62
+ fetchEvmChainTokens(chainId: EthNetworkId, chainMeta: TChainMeta, moduleConfig?: TModuleConfig, tokens?: TTokenConfig[]): Promise<Record<TTokenType["id"], TTokenType>>;
52
63
  }
53
64
  export type SubscriptionResultWithStatus = {
54
65
  status: "initialising" | "live";
@@ -0,0 +1,3 @@
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ import { DotNetworkId } from "@talismn/chaindata-provider";
3
+ export declare const getMetadataRpc: (chainConnector: ChainConnector, networkId: DotNetworkId) => Promise<`0x${string}`>;
@@ -0,0 +1,4 @@
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ import { ChaindataProvider, DotNetworkId } from "@talismn/chaindata-provider";
3
+ import { MiniMetadata } from "../types";
4
+ export declare const getMiniMetadatas: (chainConnector: ChainConnector, chaindataProvider: ChaindataProvider, networkId: DotNetworkId, specVersion: number, signal?: AbortSignal) => Promise<MiniMetadata[]>;
@@ -0,0 +1,6 @@
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ import { DotNetworkId } from "@talismn/chaindata-provider";
3
+ /**
4
+ * fetches the spec version of a network. current request is cached in case of multiple calls (all balance modules will kick in at once)
5
+ */
6
+ export declare const getSpecVersion: (chainConnector: ChainConnector, networkId: DotNetworkId) => Promise<number>;
@@ -0,0 +1,4 @@
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ import { ChaindataProvider, DotNetworkId } from "@talismn/chaindata-provider";
3
+ import { MiniMetadata } from "../types";
4
+ export declare const getUpdatedMiniMetadatas: (chainConnector: ChainConnector, chaindataProvider: ChaindataProvider, chainId: DotNetworkId, specVersion: number, signal?: AbortSignal) => Promise<MiniMetadata[]>;
@@ -0,0 +1,5 @@
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ import { ChaindataProvider, NetworkId as DotNetworkId } from "@talismn/chaindata-provider";
3
+ import { AnyNewBalanceModule } from "../modules";
4
+ import { MiniMetadata } from "../types";
5
+ export declare const getMiniMetadata: <T extends AnyNewBalanceModule>(chaindataProvider: ChaindataProvider, chainConnector: ChainConnector, chainId: DotNetworkId, source: string, signal?: AbortSignal) => Promise<MiniMetadata<T>>;
@@ -1,7 +1,4 @@
1
1
  export * from "./BalanceModule";
2
- export * from "./EvmTokenFetcher";
3
- export * from "./MiniMetadataUpdater";
4
2
  export * from "./TalismanBalancesDatabase";
5
3
  export * from "./modules";
6
4
  export * from "./types";
7
- export * from "./util";
@@ -0,0 +1 @@
1
+ export declare const libVersion: string;
@@ -1,33 +1,30 @@
1
- import { BalancesConfigTokenParams, EvmNetworkId, Token } from "@talismn/chaindata-provider";
2
- import { NewBalanceModule } from "../BalanceModule";
1
+ import { EvmErc20Token } from "@talismn/chaindata-provider";
2
+ import z from "zod/v4";
3
+ import { DefaultChainMeta, DefaultModuleConfig, NewBalanceModule } from "../BalanceModule";
3
4
  import { NewBalanceType } from "../types";
4
5
  import { erc20Abi } from "./abis/erc20";
5
6
  import { erc20BalancesAggregatorAbi } from "./abis/erc20BalancesAggregator";
6
7
  export { erc20Abi, erc20BalancesAggregatorAbi };
7
8
  type ModuleType = "evm-erc20";
8
- export type EvmErc20Token = Extract<Token, {
9
- type: ModuleType;
10
- isCustom?: true;
11
- }>;
12
- export type CustomEvmErc20Token = Extract<Token, {
13
- type: ModuleType;
14
- isCustom: true;
15
- }>;
16
- export declare const evmErc20TokenId: (chainId: EvmNetworkId, tokenContractAddress: EvmErc20Token["contractAddress"]) => string;
17
- export type EvmErc20ChainMeta = {
18
- isTestnet: boolean;
19
- };
20
- export type EvmErc20ModuleConfig = {
21
- tokens?: Array<{
22
- symbol?: string;
23
- decimals?: number;
24
- contractAddress?: string;
25
- } & BalancesConfigTokenParams>;
26
- };
27
- export type EvmErc20Balance = NewBalanceType<ModuleType, "simple", "ethereum">;
9
+ export type EvmErc20ChainMeta = DefaultChainMeta;
10
+ export type EvmErc20ModuleConfig = DefaultModuleConfig;
11
+ export declare const EvmErc20TokenConfigSchema: z.ZodObject<{
12
+ symbol: z.ZodOptional<z.ZodString>;
13
+ networkId: z.ZodOptional<z.ZodString>;
14
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
15
+ decimals: z.ZodOptional<z.ZodInt>;
16
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
18
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
20
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
21
+ contractAddress: z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>;
22
+ }, z.core.$strict>;
23
+ export type EvmErc20TokenConfig = z.infer<typeof EvmErc20TokenConfigSchema>;
24
+ export type EvmErc20Balance = NewBalanceType<ModuleType, "simple">;
28
25
  declare module "@talismn/balances/plugins" {
29
26
  interface PluginBalanceTypes {
30
27
  "evm-erc20": EvmErc20Balance;
31
28
  }
32
29
  }
33
- export declare const EvmErc20Module: NewBalanceModule<ModuleType, EvmErc20Token | CustomEvmErc20Token, EvmErc20ChainMeta, EvmErc20ModuleConfig>;
30
+ export declare const EvmErc20Module: NewBalanceModule<ModuleType, EvmErc20Token, EvmErc20ChainMeta, EvmErc20ModuleConfig, EvmErc20TokenConfig>;
@@ -1,26 +1,27 @@
1
- import { BalancesConfigTokenParams, EvmNetworkId, Token } from "@talismn/chaindata-provider";
2
- import { NewBalanceModule } from "../BalanceModule";
1
+ import { EvmNativeToken } from "@talismn/chaindata-provider";
2
+ import z from "zod/v4";
3
+ import { DefaultChainMeta, DefaultModuleConfig, NewBalanceModule } from "../BalanceModule";
3
4
  import { NewBalanceType } from "../types";
4
5
  type ModuleType = "evm-native";
5
- export type EvmNativeToken = Extract<Token, {
6
- type: ModuleType;
7
- }>;
8
- export type CustomEvmNativeToken = Extract<Token, {
9
- type: ModuleType;
10
- }>;
11
- export declare const evmNativeTokenId: (chainId: EvmNetworkId) => string;
12
- export type EvmNativeChainMeta = {
13
- isTestnet: boolean;
14
- };
15
- export type EvmNativeModuleConfig = {
16
- symbol?: string;
17
- decimals?: number;
18
- } & BalancesConfigTokenParams;
19
- export type EvmNativeBalance = NewBalanceType<ModuleType, "simple", "ethereum">;
6
+ export type EvmNativeChainMeta = DefaultChainMeta;
7
+ export type EvmNativeModuleConfig = DefaultModuleConfig;
8
+ export type EvmNativeBalance = NewBalanceType<ModuleType, "simple">;
9
+ export declare const EvmNativeTokenConfigSchema: z.ZodObject<{
10
+ symbol: z.ZodOptional<z.ZodString>;
11
+ networkId: z.ZodOptional<z.ZodString>;
12
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
13
+ decimals: z.ZodOptional<z.ZodInt>;
14
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
15
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
16
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
18
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
+ }, z.core.$strict>;
20
+ export type EvmNativeTokenConfig = z.infer<typeof EvmNativeTokenConfigSchema>;
20
21
  declare module "@talismn/balances/plugins" {
21
22
  interface PluginBalanceTypes {
22
23
  "evm-native": EvmNativeBalance;
23
24
  }
24
25
  }
25
- export declare const EvmNativeModule: NewBalanceModule<ModuleType, EvmNativeToken | CustomEvmNativeToken, EvmNativeChainMeta, EvmNativeModuleConfig>;
26
+ export declare const EvmNativeModule: NewBalanceModule<ModuleType, EvmNativeToken, EvmNativeChainMeta, EvmNativeModuleConfig, EvmNativeTokenConfig>;
26
27
  export {};
@@ -1,39 +1,37 @@
1
- import { BalancesConfigTokenParams, EvmNetworkId, Token } from "@talismn/chaindata-provider";
2
- import { NewBalanceModule } from "../BalanceModule";
1
+ import { EvmUniswapV2Token } from "@talismn/chaindata-provider";
2
+ import z from "zod/v4";
3
+ import { DefaultChainMeta, DefaultModuleConfig, NewBalanceModule } from "../BalanceModule";
3
4
  import { NewBalanceType } from "../types";
4
5
  import { uniswapV2PairAbi } from "./abis/uniswapV2Pair";
5
6
  export { uniswapV2PairAbi };
6
7
  type ModuleType = "evm-uniswapv2";
7
- export type EvmUniswapV2Token = Extract<Token, {
8
- type: ModuleType;
9
- isCustom?: true;
10
- }>;
11
- export type CustomEvmUniswapV2Token = Extract<Token, {
12
- type: ModuleType;
13
- isCustom: true;
14
- }>;
15
- export declare const evmUniswapV2TokenId: (chainId: EvmNetworkId, contractAddress: EvmUniswapV2Token["contractAddress"]) => string;
16
- export type EvmUniswapV2ChainMeta = {
17
- isTestnet: boolean;
18
- };
19
- export type EvmUniswapV2ModuleConfig = {
20
- pools?: Array<{
21
- contractAddress?: string;
22
- decimals?: number;
23
- symbol0?: string;
24
- symbol1?: string;
25
- decimals0?: number;
26
- decimals1?: number;
27
- tokenAddress0?: string;
28
- tokenAddress1?: string;
29
- coingeckoId0?: string;
30
- coingeckoId1?: string;
31
- } & BalancesConfigTokenParams>;
32
- };
33
- export type EvmUniswapV2Balance = NewBalanceType<"evm-uniswapv2", "complex", "ethereum">;
8
+ export type EvmUniswapV2ChainMeta = DefaultChainMeta;
9
+ export declare const EvmUniswapV2TokenConfigSchema: z.ZodObject<{
10
+ symbol0: z.ZodOptional<z.ZodString>;
11
+ symbol1: z.ZodOptional<z.ZodString>;
12
+ decimals0: z.ZodOptional<z.ZodInt>;
13
+ decimals1: z.ZodOptional<z.ZodInt>;
14
+ tokenAddress0: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
15
+ tokenAddress1: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>>;
16
+ coingeckoId0: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ coingeckoId1: z.ZodOptional<z.ZodOptional<z.ZodString>>;
18
+ symbol: z.ZodOptional<z.ZodString>;
19
+ networkId: z.ZodOptional<z.ZodString>;
20
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
21
+ decimals: z.ZodOptional<z.ZodInt>;
22
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
23
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
24
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
25
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
26
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
27
+ contractAddress: z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>;
28
+ }, z.core.$strict>;
29
+ export type EvmUniswapV2TokenConfig = z.infer<typeof EvmUniswapV2TokenConfigSchema>;
30
+ export type EvmUniswapV2ModuleConfig = DefaultModuleConfig;
31
+ export type EvmUniswapV2Balance = NewBalanceType<"evm-uniswapv2", "complex">;
34
32
  declare module "@talismn/balances/plugins" {
35
33
  interface PluginBalanceTypes {
36
34
  "evm-uniswapv2": EvmUniswapV2Balance;
37
35
  }
38
36
  }
39
- export declare const EvmUniswapV2Module: NewBalanceModule<ModuleType, EvmUniswapV2Token | CustomEvmUniswapV2Token, EvmUniswapV2ChainMeta, EvmUniswapV2ModuleConfig>;
37
+ export declare const EvmUniswapV2Module: NewBalanceModule<ModuleType, EvmUniswapV2Token, EvmUniswapV2ChainMeta, EvmUniswapV2ModuleConfig, EvmUniswapV2TokenConfig>;
@@ -1,24 +1,26 @@
1
1
  import { TypeRegistry } from "@polkadot/types";
2
2
  import { ExtDef } from "@polkadot/types/extrinsic/signedExtensions/types";
3
- import { BalancesConfigTokenParams, ChainId, Token } from "@talismn/chaindata-provider";
4
- import { NewBalanceModule, NewTransferParamsType } from "../BalanceModule";
3
+ import { SubAssetsToken } from "@talismn/chaindata-provider";
4
+ import z from "zod/v4";
5
+ import { ChainMeta, DefaultModuleConfig, NewBalanceModule, NewTransferParamsType } from "../BalanceModule";
5
6
  import { NewBalanceType } from "../types";
6
7
  type ModuleType = "substrate-assets";
7
- export type SubAssetsToken = Extract<Token, {
8
- type: ModuleType;
9
- }>;
10
- export declare const subAssetTokenId: (chainId: ChainId, assetId: string, tokenSymbol: string) => string;
11
- export type SubAssetsChainMeta = {
12
- isTestnet: boolean;
13
- miniMetadata?: string;
14
- metadataVersion?: number;
15
- };
16
- export type SubAssetsModuleConfig = {
17
- tokens?: Array<{
18
- assetId: string | number;
19
- } & BalancesConfigTokenParams>;
20
- };
21
- export type SubAssetsBalance = NewBalanceType<ModuleType, "complex", "substrate">;
8
+ export type SubAssetsChainMeta = ChainMeta<null>;
9
+ export declare const SubAssetsTokenConfigSchema: z.ZodObject<{
10
+ symbol: z.ZodOptional<z.ZodString>;
11
+ networkId: z.ZodOptional<z.ZodString>;
12
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
13
+ decimals: z.ZodOptional<z.ZodInt>;
14
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
15
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
16
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
18
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
+ assetId: z.ZodPipe<z.ZodUnion<readonly [z.ZodUInt32, z.ZodString]>, z.ZodTransform<string, string | number>>;
20
+ }, z.core.$strict>;
21
+ export type SubAssetsTokenConfig = z.infer<typeof SubAssetsTokenConfigSchema>;
22
+ export type SubAssetsModuleConfig = DefaultModuleConfig;
23
+ export type SubAssetsBalance = NewBalanceType<ModuleType, "complex">;
22
24
  declare module "@talismn/balances/plugins" {
23
25
  interface PluginBalanceTypes {
24
26
  "substrate-assets": SubAssetsBalance;
@@ -34,5 +36,5 @@ export type SubAssetsTransferParams = NewTransferParamsType<{
34
36
  tip?: string;
35
37
  userExtensions?: ExtDef;
36
38
  }>;
37
- export declare const SubAssetsModule: NewBalanceModule<ModuleType, SubAssetsToken, SubAssetsChainMeta, SubAssetsModuleConfig, SubAssetsTransferParams>;
39
+ export declare const SubAssetsModule: NewBalanceModule<ModuleType, SubAssetsToken, SubAssetsChainMeta, SubAssetsModuleConfig, SubAssetsTokenConfig, SubAssetsTransferParams>;
38
40
  export {};
@@ -1,24 +1,26 @@
1
1
  import { TypeRegistry } from "@polkadot/types";
2
2
  import { ExtDef } from "@polkadot/types/extrinsic/signedExtensions/types";
3
- import { BalancesConfigTokenParams, ChainId, Token } from "@talismn/chaindata-provider";
4
- import { NewBalanceModule, NewTransferParamsType } from "../BalanceModule";
3
+ import { SubForeignAssetsToken } from "@talismn/chaindata-provider";
4
+ import z from "zod/v4";
5
+ import { DefaultChainMeta, DefaultModuleConfig, NewBalanceModule, NewTransferParamsType } from "../BalanceModule";
5
6
  import { NewBalanceType } from "../types";
6
7
  type ModuleType = "substrate-foreignassets";
7
- export type SubForeignAssetsToken = Extract<Token, {
8
- type: ModuleType;
9
- }>;
10
- export declare const subForeignAssetTokenId: (chainId: ChainId, tokenSymbol: string) => string;
11
- export type SubForeignAssetsChainMeta = {
12
- isTestnet: boolean;
13
- miniMetadata?: string;
14
- metadataVersion?: number;
15
- };
16
- export type SubForeignAssetsModuleConfig = {
17
- tokens?: Array<{
18
- onChainId: string;
19
- } & BalancesConfigTokenParams>;
20
- };
21
- export type SubForeignAssetsBalance = NewBalanceType<ModuleType, "complex", "substrate">;
8
+ export type SubForeignAssetsChainMeta = DefaultChainMeta;
9
+ export declare const SubForeignAssetsTokenConfigSchema: z.ZodObject<{
10
+ symbol: z.ZodOptional<z.ZodString>;
11
+ networkId: z.ZodOptional<z.ZodString>;
12
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
13
+ decimals: z.ZodOptional<z.ZodInt>;
14
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
15
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
16
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
18
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
+ onChainId: z.ZodString;
20
+ }, z.core.$strict>;
21
+ export type SubForeignAssetsTokenConfig = z.infer<typeof SubForeignAssetsTokenConfigSchema>;
22
+ export type SubForeignAssetsModuleConfig = DefaultModuleConfig;
23
+ export type SubForeignAssetsBalance = NewBalanceType<ModuleType, "complex">;
22
24
  declare module "@talismn/balances/plugins" {
23
25
  interface PluginBalanceTypes {
24
26
  "substrate-foreignassets": SubForeignAssetsBalance;
@@ -34,5 +36,5 @@ export type SubForeignAssetsTransferParams = NewTransferParamsType<{
34
36
  tip?: string;
35
37
  userExtensions?: ExtDef;
36
38
  }>;
37
- export declare const SubForeignAssetsModule: NewBalanceModule<ModuleType, SubForeignAssetsToken, SubForeignAssetsChainMeta, SubForeignAssetsModuleConfig, SubForeignAssetsTransferParams>;
39
+ export declare const SubForeignAssetsModule: NewBalanceModule<ModuleType, SubForeignAssetsToken, SubForeignAssetsChainMeta, SubForeignAssetsModuleConfig, SubForeignAssetsTokenConfig, SubForeignAssetsTransferParams>;
38
40
  export {};
@@ -1,8 +1,21 @@
1
+ import { SubNativeToken } from "@talismn/chaindata-provider";
2
+ import z from "zod/v4";
1
3
  import { NewBalanceModule } from "../../BalanceModule";
2
- import { CustomSubNativeToken, ModuleType, SubNativeChainMeta, SubNativeModuleConfig, SubNativeToken, SubNativeTransferParams } from "./types";
4
+ import { ModuleType, SubNativeChainMeta, SubNativeModuleConfig, SubNativeTransferParams } from "./types";
3
5
  export { filterBaseLocks, getLockTitle } from "./util/balanceLockTypes";
4
6
  export type { BalanceLockType } from "./util/balanceLockTypes";
5
- export { subNativeTokenId } from "./types";
6
- export type { CustomSubNativeToken, ModuleType, SubNativeBalance, SubNativeChainMeta, SubNativeModuleConfig, SubNativeToken, SubNativeTransferParams, } from "./types";
7
+ export type { ModuleType, SubNativeBalance, SubNativeChainMeta, SubNativeModuleConfig, SubNativeTransferParams, } from "./types";
7
8
  export * from "./util/subtensor";
8
- export declare const SubNativeModule: NewBalanceModule<ModuleType, SubNativeToken | CustomSubNativeToken, SubNativeChainMeta, SubNativeModuleConfig, SubNativeTransferParams>;
9
+ export declare const SubNativeTokenConfigSchema: z.ZodObject<{
10
+ symbol: z.ZodOptional<z.ZodString>;
11
+ networkId: z.ZodOptional<z.ZodString>;
12
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
13
+ decimals: z.ZodOptional<z.ZodInt>;
14
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
15
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
16
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
17
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
18
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
19
+ }, z.core.$strict>;
20
+ export type SubNativeTokenConfig = z.infer<typeof SubNativeTokenConfigSchema>;
21
+ export declare const SubNativeModule: NewBalanceModule<ModuleType, SubNativeToken, SubNativeChainMeta, SubNativeModuleConfig, SubNativeTokenConfig, SubNativeTransferParams>;
@@ -1,5 +1,5 @@
1
1
  import { ChainConnector } from "@talismn/chain-connector";
2
- import { ChaindataProvider } from "@talismn/chaindata-provider";
2
+ import { ChaindataProvider, SubNativeToken } from "@talismn/chaindata-provider";
3
3
  import { AddressesByToken, SubscriptionCallback } from "../../types";
4
- import { SubNativeBalance, SubNativeToken } from "./types";
5
- export declare function subscribeNompoolStaking(chaindataProvider: ChaindataProvider, chainConnector: ChainConnector, addressesByToken: AddressesByToken<SubNativeToken>, callback: SubscriptionCallback<SubNativeBalance[]>): Promise<() => void>;
4
+ import { SubNativeBalance } from "./types";
5
+ export declare function subscribeNompoolStaking(chaindataProvider: ChaindataProvider, chainConnector: ChainConnector, addressesByToken: AddressesByToken<SubNativeToken>, callback: SubscriptionCallback<SubNativeBalance[]>, signal?: AbortSignal): Promise<() => void>;
@@ -1,5 +1,5 @@
1
1
  import { ChainConnector } from "@talismn/chain-connector";
2
- import { ChaindataProvider } from "@talismn/chaindata-provider";
2
+ import { ChaindataProvider, SubNativeToken } from "@talismn/chaindata-provider";
3
3
  import { AddressesByToken, SubscriptionCallback } from "../../types";
4
- import { SubNativeBalance, SubNativeToken } from "./types";
5
- export declare function subscribeSubtensorStaking(chaindataProvider: ChaindataProvider, chainConnector: ChainConnector, addressesByToken: AddressesByToken<SubNativeToken>, callback: SubscriptionCallback<SubNativeBalance[]>): Promise<() => void>;
4
+ import { SubNativeBalance } from "./types";
5
+ export declare function subscribeSubtensorStaking(chaindataProvider: ChaindataProvider, chainConnector: ChainConnector, addressesByToken: AddressesByToken<SubNativeToken>, callback: SubscriptionCallback<SubNativeBalance[]>, signal?: AbortSignal): Promise<() => void>;
@@ -1,37 +1,20 @@
1
1
  import { TypeRegistry } from "@polkadot/types";
2
2
  import { ExtDef } from "@polkadot/types/extrinsic/signedExtensions/types";
3
- import { BalancesConfigTokenParams, ChainId, Token } from "@talismn/chaindata-provider";
4
- import { NewTransferParamsType } from "../../BalanceModule";
3
+ import { SubNativeBalancesConfig } from "@talismn/chaindata-provider";
4
+ import { ChainMeta, NewTransferParamsType } from "../../BalanceModule";
5
5
  import { NewBalanceType } from "../../types";
6
6
  export { filterBaseLocks, getLockTitle } from "./util/balanceLockTypes";
7
7
  export type { BalanceLockType } from "./util/balanceLockTypes";
8
8
  export type ModuleType = "substrate-native";
9
9
  export declare const moduleType: ModuleType;
10
- export type SubNativeToken = Extract<Token, {
11
- type: ModuleType;
12
- isCustom?: true;
13
- }>;
14
- export type CustomSubNativeToken = Extract<Token, {
15
- type: ModuleType;
16
- isCustom: true;
17
- }>;
18
- export declare const subNativeTokenId: (chainId: ChainId) => string;
19
- export type SubNativeChainMeta = {
20
- isTestnet: boolean;
10
+ export type SubNativeChainMeta = ChainMeta<{
21
11
  useLegacyTransferableCalculation?: boolean;
22
- symbol?: string;
23
- decimals?: number;
24
12
  existentialDeposit?: string;
25
13
  nominationPoolsPalletId?: string;
26
- crowdloanPalletId?: string;
27
14
  hasSubtensorPallet?: boolean;
28
- miniMetadata?: string;
29
- metadataVersion?: number;
30
- };
31
- export type SubNativeModuleConfig = {
32
- disable?: boolean;
33
- } & BalancesConfigTokenParams;
34
- export type SubNativeBalance = NewBalanceType<ModuleType, "complex", "substrate">;
15
+ } | null>;
16
+ export type SubNativeModuleConfig = SubNativeBalancesConfig;
17
+ export type SubNativeBalance = NewBalanceType<ModuleType, "complex">;
35
18
  declare module "@talismn/balances/plugins" {
36
19
  interface PluginBalanceTypes {
37
20
  "substrate-native": SubNativeBalance;
@@ -1,13 +1,13 @@
1
- import { ChaindataProvider } from "@talismn/chaindata-provider";
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ import { ChaindataProvider, SubNativeToken } from "@talismn/chaindata-provider";
2
3
  import { AddressesByToken } from "../../../types";
3
4
  import { RpcStateQuery } from "../../util";
4
- import { SubNativeBalance, SubNativeToken } from "../types";
5
+ import { SubNativeBalance } from "../types";
5
6
  export declare class QueryCache {
7
+ #private;
6
8
  private chaindataProvider;
9
+ private miniMetadatas;
7
10
  private balanceQueryCache;
8
- private metadataSub;
9
- constructor(chaindataProvider: ChaindataProvider);
10
- ensureSetup(): void;
11
- destroy(): void;
11
+ constructor(chaindataProvider: ChaindataProvider, chainConnector: ChainConnector);
12
12
  getQueries(addressesByToken: AddressesByToken<SubNativeToken>): Promise<RpcStateQuery<SubNativeBalance>[]>;
13
13
  }
@@ -1,13 +1,14 @@
1
- import { Chain, Token } from "@talismn/chaindata-provider";
1
+ import { DotNetwork, DotNetworkId, SubNativeToken, Token } from "@talismn/chaindata-provider";
2
+ import { SubNativeModule } from "..";
2
3
  import { AddressesByToken, MiniMetadata } from "../../../types";
3
4
  import { RpcStateQuery, StorageCoders } from "../../util";
4
- import { SubNativeBalance, SubNativeToken } from "../types";
5
+ import { SubNativeBalance } from "../types";
5
6
  export type QueryKey = string;
6
- export declare function buildQueries(chains: Record<string, Chain>, tokens: Record<string, Token>, chainStorageCoders: StorageCoders<{
7
+ export declare function buildQueries(chains: Record<string, DotNetwork>, tokens: Record<string, Token>, chainStorageCoders: StorageCoders<{
7
8
  base: ["System", "Account"];
8
9
  stakingLedger: ["Staking", "Ledger"];
9
10
  reserves: ["Balances", "Reserves"];
10
11
  holds: ["Balances", "Holds"];
11
12
  locks: ["Balances", "Locks"];
12
13
  freezes: ["Balances", "Freezes"];
13
- }>, miniMetadatas: Map<string, MiniMetadata>, addressesByToken: AddressesByToken<SubNativeToken>): Promise<Record<QueryKey, Array<RpcStateQuery<SubNativeBalance>>>>;
14
+ }>, miniMetadatas: Map<DotNetworkId, MiniMetadata<typeof SubNativeModule>>, addressesByToken: AddressesByToken<SubNativeToken>): Promise<Record<QueryKey, Array<RpcStateQuery<SubNativeBalance>>>>;
@@ -1 +1 @@
1
- export declare const sortChains: (a: string, b: string) => 0 | 1 | -1;
1
+ export declare const sortChainsNativeTokensByPriority: (a: string, b: string) => 1 | 0 | -1;
@@ -0,0 +1,5 @@
1
+ import { ChainConnector } from "@talismn/chain-connector";
2
+ export declare const getChainProperties: (chainConnector: ChainConnector, networkId: string) => Promise<{
3
+ tokenDecimals: number;
4
+ tokenSymbol: string;
5
+ }>;
@@ -1,25 +1,26 @@
1
1
  import { TypeRegistry } from "@polkadot/types";
2
2
  import { ExtDef } from "@polkadot/types/extrinsic/signedExtensions/types";
3
- import { BalancesConfigTokenParams, ChainId, Token } from "@talismn/chaindata-provider";
4
- import { NewBalanceModule, NewTransferParamsType } from "../BalanceModule";
3
+ import { SubPsp22Token } from "@talismn/chaindata-provider";
4
+ import z from "zod/v4";
5
+ import { DefaultChainMeta, DefaultModuleConfig, NewBalanceModule, NewTransferParamsType } from "../BalanceModule";
5
6
  import { NewBalanceType } from "../types";
6
7
  type ModuleType = "substrate-psp22";
7
- export type SubPsp22Token = Extract<Token, {
8
- type: ModuleType;
9
- }>;
10
- export declare const subPsp22TokenId: (chainId: ChainId, tokenSymbol: string) => string;
11
- export type SubPsp22ChainMeta = {
12
- isTestnet: boolean;
13
- };
14
- export type SubPsp22ModuleConfig = {
15
- tokens?: Array<{
16
- symbol?: string;
17
- decimals?: number;
18
- ed?: string;
19
- contractAddress?: string;
20
- } & BalancesConfigTokenParams>;
21
- };
22
- export type SubPsp22Balance = NewBalanceType<ModuleType, "simple", "substrate">;
8
+ export declare const SubPsp22TokenConfigSchema: z.ZodObject<{
9
+ symbol: z.ZodOptional<z.ZodString>;
10
+ networkId: z.ZodOptional<z.ZodString>;
11
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
12
+ decimals: z.ZodOptional<z.ZodInt>;
13
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
14
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
15
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
16
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
17
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
18
+ contractAddress: z.ZodString;
19
+ }, z.core.$strict>;
20
+ export type SubPsp22TokenConfig = z.infer<typeof SubPsp22TokenConfigSchema>;
21
+ export type SubPsp22ChainMeta = DefaultChainMeta;
22
+ export type SubPsp22ModuleConfig = DefaultModuleConfig;
23
+ export type SubPsp22Balance = NewBalanceType<ModuleType, "simple">;
23
24
  declare module "@talismn/balances/plugins" {
24
25
  interface PluginBalanceTypes {
25
26
  "substrate-psp22": SubPsp22Balance;
@@ -35,5 +36,5 @@ export type SubPsp22TransferParams = NewTransferParamsType<{
35
36
  tip?: string;
36
37
  userExtensions?: ExtDef;
37
38
  }>;
38
- export declare const SubPsp22Module: NewBalanceModule<ModuleType, SubPsp22Token, SubPsp22ChainMeta, SubPsp22ModuleConfig, SubPsp22TransferParams>;
39
+ export declare const SubPsp22Module: NewBalanceModule<ModuleType, SubPsp22Token, SubPsp22ChainMeta, SubPsp22ModuleConfig, SubPsp22TokenConfig, SubPsp22TransferParams>;
39
40
  export {};