@talismn/balances 0.0.0-pr2068-20250630052217 → 0.0.0-pr2075-20250707031602

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 (140) hide show
  1. package/dist/declarations/src/BalanceModule.d.ts +23 -12
  2. package/dist/declarations/src/NewBalanceModules.d.ts +99 -0
  3. package/dist/declarations/src/getMiniMetadata/getMetadataRpc.d.ts +3 -0
  4. package/dist/declarations/src/getMiniMetadata/getMiniMetadatas.d.ts +4 -0
  5. package/dist/declarations/src/getMiniMetadata/getSpecVersion.d.ts +6 -0
  6. package/dist/declarations/src/getMiniMetadata/getUpdatedMiniMetadatas.d.ts +4 -0
  7. package/dist/declarations/src/getMiniMetadata/index.d.ts +5 -0
  8. package/dist/declarations/src/index.d.ts +2 -3
  9. package/dist/declarations/src/modules/EvmErc20Module.d.ts +21 -24
  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/IBalanceModule.d.ts +100 -0
  13. package/dist/declarations/src/modules/SubstrateAssetsModule.d.ts +20 -18
  14. package/dist/declarations/src/modules/SubstrateForeignAssetsModule.d.ts +20 -18
  15. package/dist/declarations/src/modules/SubstrateNativeModule/index.d.ts +17 -4
  16. package/dist/declarations/src/modules/SubstrateNativeModule/subscribeNompoolStaking.d.ts +3 -3
  17. package/dist/declarations/src/modules/SubstrateNativeModule/subscribeSubtensorStaking.d.ts +3 -3
  18. package/dist/declarations/src/modules/SubstrateNativeModule/types.d.ts +6 -23
  19. package/dist/declarations/src/modules/SubstrateNativeModule/util/QueryCache.d.ts +6 -6
  20. package/dist/declarations/src/modules/SubstrateNativeModule/util/buildQueries.d.ts +5 -4
  21. package/dist/declarations/src/modules/SubstrateNativeModule/util/sortChains.d.ts +1 -1
  22. package/dist/declarations/src/modules/SubstrateNativeModule/util/systemProperties.d.ts +5 -0
  23. package/dist/declarations/src/modules/SubstratePsp22Module.d.ts +20 -19
  24. package/dist/declarations/src/modules/SubstrateTokensModule.d.ts +22 -22
  25. package/dist/declarations/src/modules/abis/index.d.ts +2 -0
  26. package/dist/declarations/src/modules/evm-erc20/config.d.ts +16 -0
  27. package/dist/declarations/src/modules/evm-erc20/fetchBalances.d.ts +3 -0
  28. package/dist/declarations/src/modules/evm-erc20/fetchTokens.d.ts +3 -0
  29. package/dist/declarations/src/modules/evm-erc20/getMiniMetadata.d.ts +3 -0
  30. package/dist/declarations/src/modules/evm-erc20/getTransferCallData.d.ts +3 -0
  31. package/dist/declarations/src/modules/evm-erc20/index.d.ts +1 -0
  32. package/dist/declarations/src/modules/evm-erc20/module.d.ts +3 -0
  33. package/dist/declarations/src/modules/evm-erc20/subscribeBalances.d.ts +3 -0
  34. package/dist/declarations/src/modules/evm-erc20/utils.d.ts +6 -0
  35. package/dist/declarations/src/modules/evm-native/config.d.ts +15 -0
  36. package/dist/declarations/src/modules/evm-native/fetchBalances.d.ts +3 -0
  37. package/dist/declarations/src/modules/evm-native/fetchTokens.d.ts +3 -0
  38. package/dist/declarations/src/modules/evm-native/getMiniMetadata.d.ts +3 -0
  39. package/dist/declarations/src/modules/evm-native/getTransferCallData.d.ts +3 -0
  40. package/dist/declarations/src/modules/evm-native/index.d.ts +1 -0
  41. package/dist/declarations/src/modules/evm-native/module.d.ts +3 -0
  42. package/dist/declarations/src/modules/evm-native/subscribeBalances.d.ts +3 -0
  43. package/dist/declarations/src/modules/evm-uniswapv2/config.d.ts +16 -0
  44. package/dist/declarations/src/modules/evm-uniswapv2/fetchBalances.d.ts +3 -0
  45. package/dist/declarations/src/modules/evm-uniswapv2/fetchTokens.d.ts +3 -0
  46. package/dist/declarations/src/modules/evm-uniswapv2/getMiniMetadata.d.ts +3 -0
  47. package/dist/declarations/src/modules/evm-uniswapv2/getTransferCallData.d.ts +3 -0
  48. package/dist/declarations/src/modules/evm-uniswapv2/index.d.ts +1 -0
  49. package/dist/declarations/src/modules/evm-uniswapv2/module.d.ts +3 -0
  50. package/dist/declarations/src/modules/evm-uniswapv2/subscribeBalances.d.ts +3 -0
  51. package/dist/declarations/src/modules/evm-uniswapv2/utils.d.ts +12 -0
  52. package/dist/declarations/src/modules/index.d.ts +214 -38
  53. package/dist/declarations/src/modules/shared/errors.d.ts +11 -0
  54. package/dist/declarations/src/modules/shared/fetchRuntimeCallResult.d.ts +2 -0
  55. package/dist/declarations/src/modules/shared/getContantValue.d.ts +1 -0
  56. package/dist/declarations/src/modules/shared/hasConstantValue.d.ts +427 -0
  57. package/dist/declarations/src/modules/shared/index.d.ts +7 -0
  58. package/dist/declarations/src/modules/shared/tryGetConstantValue.d.ts +1 -0
  59. package/dist/declarations/src/modules/shared/types.d.ts +10 -0
  60. package/dist/declarations/src/modules/shared/utils.d.ts +4 -0
  61. package/dist/declarations/src/modules/substrate-assets/config.d.ts +16 -0
  62. package/dist/declarations/src/modules/substrate-assets/fetchBalances.d.ts +3 -0
  63. package/dist/declarations/src/modules/substrate-assets/fetchTokens.d.ts +3 -0
  64. package/dist/declarations/src/modules/substrate-assets/getMiniMetadata.d.ts +3 -0
  65. package/dist/declarations/src/modules/substrate-assets/getTransferCallData.d.ts +3 -0
  66. package/dist/declarations/src/modules/substrate-assets/index.d.ts +1 -0
  67. package/dist/declarations/src/modules/substrate-assets/module.d.ts +3 -0
  68. package/dist/declarations/src/modules/substrate-assets/subscribeBalances.d.ts +3 -0
  69. package/dist/declarations/src/modules/substrate-foreignassets/config.d.ts +16 -0
  70. package/dist/declarations/src/modules/substrate-foreignassets/fetchBalances.d.ts +3 -0
  71. package/dist/declarations/src/modules/substrate-foreignassets/fetchTokens.d.ts +3 -0
  72. package/dist/declarations/src/modules/substrate-foreignassets/getMiniMetadata.d.ts +3 -0
  73. package/dist/declarations/src/modules/substrate-foreignassets/getTransferCallData.d.ts +3 -0
  74. package/dist/declarations/src/modules/substrate-foreignassets/index.d.ts +1 -0
  75. package/dist/declarations/src/modules/substrate-foreignassets/module.d.ts +3 -0
  76. package/dist/declarations/src/modules/substrate-foreignassets/subscribeBalances.d.ts +3 -0
  77. package/dist/declarations/src/modules/substrate-hydration/config.d.ts +2 -0
  78. package/dist/declarations/src/modules/substrate-hydration/fetchBalances.d.ts +3 -0
  79. package/dist/declarations/src/modules/substrate-hydration/fetchTokens.d.ts +4 -0
  80. package/dist/declarations/src/modules/substrate-hydration/getMiniMetadata.d.ts +3 -0
  81. package/dist/declarations/src/modules/substrate-hydration/getTransferCallData.d.ts +3 -0
  82. package/dist/declarations/src/modules/substrate-hydration/index.d.ts +2 -0
  83. package/dist/declarations/src/modules/substrate-hydration/module.d.ts +4 -0
  84. package/dist/declarations/src/modules/substrate-hydration/subscribeBalances.d.ts +3 -0
  85. package/dist/declarations/src/modules/substrate-hydration/types.d.ts +14 -0
  86. package/dist/declarations/src/modules/substrate-native/bittensor/getSubtensorStakingBalances.d.ts +9 -0
  87. package/dist/declarations/src/modules/substrate-native/bittensor/subtensor.d.ts +20 -0
  88. package/dist/declarations/src/modules/substrate-native/config.d.ts +25 -0
  89. package/dist/declarations/src/modules/substrate-native/fetchBalances.d.ts +3 -0
  90. package/dist/declarations/src/modules/substrate-native/fetchTokens.d.ts +8 -0
  91. package/dist/declarations/src/modules/substrate-native/getMiniMetadata.d.ts +3 -0
  92. package/dist/declarations/src/modules/substrate-native/getTransferCallData.d.ts +3 -0
  93. package/dist/declarations/src/modules/substrate-native/index.d.ts +1 -0
  94. package/dist/declarations/src/modules/substrate-native/module.d.ts +3 -0
  95. package/dist/declarations/src/modules/substrate-native/queries/buildBaseQueries.d.ts +20 -0
  96. package/dist/declarations/src/modules/substrate-native/queries/buildNomPoolQueries.d.ts +8 -0
  97. package/dist/declarations/src/modules/substrate-native/subscribeBalances.d.ts +3 -0
  98. package/dist/declarations/src/modules/substrate-native/util/lockTypes.d.ts +15 -0
  99. package/dist/declarations/src/modules/substrate-native/util/nompoolAccountId.d.ts +5 -0
  100. package/dist/declarations/src/modules/substrate-psp22/config.d.ts +16 -0
  101. package/dist/declarations/src/modules/substrate-psp22/fetchBalances.d.ts +3 -0
  102. package/dist/declarations/src/modules/substrate-psp22/fetchTokens.d.ts +3 -0
  103. package/dist/declarations/src/modules/substrate-psp22/getMiniMetadata.d.ts +3 -0
  104. package/dist/declarations/src/modules/substrate-psp22/getTransferCallData.d.ts +3 -0
  105. package/dist/declarations/src/modules/substrate-psp22/index.d.ts +1 -0
  106. package/dist/declarations/src/modules/substrate-psp22/module.d.ts +3 -0
  107. package/dist/declarations/src/modules/substrate-psp22/subscribeBalances.d.ts +3 -0
  108. package/dist/declarations/src/modules/substrate-tokens/config.d.ts +23 -0
  109. package/dist/declarations/src/modules/substrate-tokens/fetchBalances.d.ts +3 -0
  110. package/dist/declarations/src/modules/substrate-tokens/fetchTokens.d.ts +3 -0
  111. package/dist/declarations/src/modules/substrate-tokens/getMiniMetadata.d.ts +3 -0
  112. package/dist/declarations/src/modules/substrate-tokens/getTransferCallData.d.ts +3 -0
  113. package/dist/declarations/src/modules/substrate-tokens/index.d.ts +1 -0
  114. package/dist/declarations/src/modules/substrate-tokens/module.d.ts +3 -0
  115. package/dist/declarations/src/modules/substrate-tokens/subscribeBalances.d.ts +3 -0
  116. package/dist/declarations/src/modules/util/InferBalanceModuleTypes.d.ts +5 -3
  117. package/dist/declarations/src/modules/util/RpcStateQueriesHelper.d.ts +12 -0
  118. package/dist/declarations/src/modules/util/buildStorageCoders.d.ts +17 -8
  119. package/dist/declarations/src/modules/util/getAddresssesByTokenByNetwork.d.ts +3 -0
  120. package/dist/declarations/src/modules/util/getUniqueChainIds.d.ts +2 -2
  121. package/dist/declarations/src/modules/util/index.d.ts +0 -1
  122. package/dist/declarations/src/types/balances.d.ts +221 -72
  123. package/dist/declarations/src/types/balancetypes.d.ts +8 -18
  124. package/dist/declarations/src/types/minimetadatas.d.ts +6 -24
  125. package/dist/declarations/src/types/tokens.d.ts +11 -0
  126. package/dist/declarations/src/version.d.ts +1 -0
  127. package/dist/talismn-balances.cjs.dev.js +5321 -2426
  128. package/dist/talismn-balances.cjs.prod.js +5321 -2426
  129. package/dist/talismn-balances.esm.js +5302 -2407
  130. package/package.json +12 -11
  131. package/dist/declarations/src/EvmTokenFetcher.d.ts +0 -11
  132. package/dist/declarations/src/MiniMetadataUpdater.d.ts +0 -43
  133. package/dist/declarations/src/modules/SubstrateEquilibriumModule.d.ts +0 -39
  134. package/dist/declarations/src/modules/SubstrateNativeModule/subscribeCrowdloans.d.ts +0 -5
  135. package/dist/declarations/src/modules/SubstrateNativeModule/util/crowdloanFundContributionsChildKey.d.ts +0 -4
  136. package/dist/declarations/src/modules/SubstrateNativeModule/util/detectMiniMetadataChanges.d.ts +0 -2
  137. package/dist/declarations/src/modules/abis/erc20.d.ts +0 -227
  138. package/dist/declarations/src/modules/util/findChainMeta.d.ts +0 -8
  139. package/dist/declarations/src/util/hydrateChaindata.d.ts +0 -8
  140. 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,99 @@
1
+ export declare const NEW_BALANCE_MODULES: (import("./modules/IBalanceModule").IBalanceModule<"substrate-native", {
2
+ symbol?: string | undefined;
3
+ networkId?: string | undefined;
4
+ isDefault?: boolean | undefined;
5
+ decimals?: number | undefined;
6
+ name?: string | undefined;
7
+ logo?: string | undefined;
8
+ coingeckoId?: string | undefined;
9
+ noDiscovery?: boolean | undefined;
10
+ mirrorOf?: string | undefined;
11
+ }, import("./modules/substrate-native/config").ModuleConfig, import("./modules/substrate-native/config").MiniMetadataExtra> | import("./modules/IBalanceModule").IBalanceModule<"substrate-assets", {
12
+ assetId: string;
13
+ symbol?: string | undefined;
14
+ networkId?: string | undefined;
15
+ isDefault?: boolean | undefined;
16
+ decimals?: number | undefined;
17
+ name?: string | undefined;
18
+ logo?: string | undefined;
19
+ coingeckoId?: string | undefined;
20
+ noDiscovery?: boolean | undefined;
21
+ mirrorOf?: string | undefined;
22
+ }, unknown, unknown> | import("./modules/IBalanceModule").IBalanceModule<"substrate-hydration", {
23
+ onChainId: number;
24
+ symbol?: string | undefined;
25
+ networkId?: string | undefined;
26
+ isDefault?: boolean | undefined;
27
+ decimals?: number | undefined;
28
+ name?: string | undefined;
29
+ logo?: string | undefined;
30
+ coingeckoId?: string | undefined;
31
+ noDiscovery?: boolean | undefined;
32
+ mirrorOf?: string | undefined;
33
+ }, unknown, unknown> | import("./modules/IBalanceModule").IBalanceModule<"substrate-foreignassets", {
34
+ onChainId: string;
35
+ symbol?: string | undefined;
36
+ networkId?: string | undefined;
37
+ isDefault?: boolean | undefined;
38
+ decimals?: number | undefined;
39
+ name?: string | undefined;
40
+ logo?: string | undefined;
41
+ coingeckoId?: string | undefined;
42
+ noDiscovery?: boolean | undefined;
43
+ mirrorOf?: string | undefined;
44
+ }, unknown, unknown> | import("./modules/IBalanceModule").IBalanceModule<"substrate-psp22", {
45
+ contractAddress: string;
46
+ symbol?: string | undefined;
47
+ networkId?: string | undefined;
48
+ isDefault?: boolean | undefined;
49
+ decimals?: number | undefined;
50
+ name?: string | undefined;
51
+ logo?: string | undefined;
52
+ coingeckoId?: string | undefined;
53
+ noDiscovery?: boolean | undefined;
54
+ mirrorOf?: string | undefined;
55
+ }, unknown, unknown> | import("./modules/IBalanceModule").IBalanceModule<"substrate-tokens", {
56
+ symbol: string;
57
+ decimals: number;
58
+ existentialDeposit: string;
59
+ onChainId: string | number;
60
+ networkId?: string | undefined;
61
+ isDefault?: boolean | undefined;
62
+ name?: string | undefined;
63
+ logo?: string | undefined;
64
+ coingeckoId?: string | undefined;
65
+ noDiscovery?: boolean | undefined;
66
+ mirrorOf?: string | undefined;
67
+ }, import("./modules/substrate-tokens/config").ModuleConfig, import("./modules/substrate-tokens/config").MiniMetadataExtra> | import("./modules/IBalanceModule").IBalanceModule<"evm-erc20", {
68
+ contractAddress: `0x${string}`;
69
+ symbol?: string | undefined;
70
+ networkId?: string | undefined;
71
+ isDefault?: boolean | undefined;
72
+ decimals?: number | undefined;
73
+ name?: string | undefined;
74
+ logo?: string | undefined;
75
+ coingeckoId?: string | undefined;
76
+ noDiscovery?: boolean | undefined;
77
+ mirrorOf?: string | undefined;
78
+ }, unknown, unknown> | import("./modules/IBalanceModule").IBalanceModule<"evm-uniswapv2", {
79
+ contractAddress: `0x${string}`;
80
+ symbol?: string | undefined;
81
+ networkId?: string | undefined;
82
+ isDefault?: boolean | undefined;
83
+ decimals?: number | undefined;
84
+ name?: string | undefined;
85
+ logo?: string | undefined;
86
+ coingeckoId?: string | undefined;
87
+ noDiscovery?: boolean | undefined;
88
+ mirrorOf?: string | undefined;
89
+ }, unknown, unknown> | import("./modules/IBalanceModule").IBalanceModule<"evm-native", {
90
+ symbol?: string | undefined;
91
+ networkId?: string | undefined;
92
+ isDefault?: boolean | undefined;
93
+ decimals?: number | undefined;
94
+ name?: string | undefined;
95
+ logo?: string | undefined;
96
+ coingeckoId?: string | undefined;
97
+ noDiscovery?: boolean | undefined;
98
+ mirrorOf?: string | undefined;
99
+ }, unknown, unknown>)[];
@@ -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,6 @@
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";
5
+ export * from "./NewBalanceModules";
6
+ export * from "./version";
@@ -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 { erc20Abi } from "viem";
3
+ import z from "zod/v4";
4
+ import { DefaultChainMeta, DefaultModuleConfig, NewBalanceModule } from "../BalanceModule";
3
5
  import { NewBalanceType } from "../types";
4
- 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>;
@@ -0,0 +1,100 @@
1
+ import type { Address, IBalance } from "@talismn/balances";
2
+ import type { ChainConnector } from "@talismn/chain-connector";
3
+ import type { ChainConnectorEvm } from "@talismn/chain-connector-evm";
4
+ import { AnyMiniMetadata, DotNetworkId, EthNetworkId, Token, TokenId, TokenOfType, TokenType } from "@talismn/chaindata-provider";
5
+ import { Observable } from "rxjs";
6
+ /**
7
+ * Changes:
8
+ * - each method is standalone
9
+ * - decoupled from chaindataProvider (which uses indexedDB so cant be used in node)
10
+ * - all methods are network specific: this way they can return without waiting on other networks, while still being able to group multiple fetchs in one query
11
+ * - connector is passed as a parameter on every method that needs one, so that an evm module doesnt need a substrate connector, and also to allow using a module without connector
12
+ * - miniMetadatas are be fully typed
13
+ * - TokenConfig would be made much simpler
14
+ * - the logic about what data to fetch and cache (ex: erc20 symbols/decimals) would be here, where it belongs
15
+ */
16
+ export type PlatformOf<T extends TokenType> = TokenOfType<T>["platform"];
17
+ export type ConnectorOf<P extends PlatformOf<TokenType>> = P extends "ethereum" ? ChainConnectorEvm : P extends "polkadot" ? ChainConnector : never;
18
+ type DotTransferCallData = {
19
+ address: string;
20
+ method: `0x${string}`;
21
+ };
22
+ type EthTransferCallData = {
23
+ from: string;
24
+ to: string;
25
+ data: `0x${string}`;
26
+ value?: string;
27
+ };
28
+ export type BalanceTransferType = "keep-alive" | "all" | "allow-death";
29
+ type CallDataOf<P extends PlatformOf<TokenType>> = P extends "ethereum" ? EthTransferCallData : P extends "polkadot" ? DotTransferCallData : never;
30
+ export type TokensWithAddresses = Array<[Token, Address[]]>;
31
+ export type FetchBalanceErrors = Array<{
32
+ tokenId: TokenId;
33
+ address: Address;
34
+ error: Error;
35
+ }>;
36
+ export type FetchBalanceResults = {
37
+ success: IBalance[];
38
+ errors: FetchBalanceErrors;
39
+ };
40
+ type MiniMetadata<Extra = null> = Omit<AnyMiniMetadata, "extra"> & {
41
+ extra: Extra;
42
+ };
43
+ export interface IBalanceModule<Type extends TokenType, TokenConfig = unknown, ModuleConfig = unknown, MiniMetadataExtra = unknown> {
44
+ type: Type;
45
+ platform: PlatformOf<Type>;
46
+ getMiniMetadata: (arg: PlatformOf<Type> extends "polkadot" ? {
47
+ networkId: string;
48
+ specVersion: number;
49
+ metadataRpc: `0x${string}`;
50
+ config?: ModuleConfig;
51
+ } : never) => PlatformOf<Type> extends "polkadot" ? MiniMetadata<MiniMetadataExtra> : never;
52
+ fetchTokens: (arg: PlatformOf<Type> extends "polkadot" ? {
53
+ networkId: DotNetworkId;
54
+ tokens: TokenConfig[];
55
+ connector: ChainConnector;
56
+ miniMetadata: MiniMetadata<MiniMetadataExtra>;
57
+ cache: Record<TokenId, unknown>;
58
+ } : PlatformOf<Type> extends "ethereum" ? {
59
+ networkId: EthNetworkId;
60
+ tokens: TokenConfig[];
61
+ connector: ChainConnectorEvm;
62
+ cache: Record<TokenId, unknown>;
63
+ } : never) => Promise<TokenOfType<Type>[]>;
64
+ fetchBalances: (arg: PlatformOf<Type> extends "polkadot" ? {
65
+ networkId: DotNetworkId;
66
+ addressesByToken: TokensWithAddresses;
67
+ connector: ChainConnector;
68
+ miniMetadata: MiniMetadata<MiniMetadataExtra>;
69
+ } : PlatformOf<Type> extends "ethereum" ? {
70
+ networkId: EthNetworkId;
71
+ addressesByToken: TokensWithAddresses;
72
+ connector: ChainConnectorEvm;
73
+ } : never) => Promise<FetchBalanceResults>;
74
+ subscribeBalances: (arg: PlatformOf<Type> extends "polkadot" ? {
75
+ networkId: DotNetworkId;
76
+ addressesByToken: TokensWithAddresses;
77
+ connector: ChainConnector;
78
+ miniMetadata: MiniMetadata<MiniMetadataExtra>;
79
+ } : PlatformOf<Type> extends "ethereum" ? {
80
+ networkId: EthNetworkId;
81
+ addressesByToken: TokensWithAddresses;
82
+ connector: ChainConnectorEvm;
83
+ } : never) => Observable<FetchBalanceResults>;
84
+ getTransferCallData: (arg: PlatformOf<Type> extends "polkadot" ? {
85
+ from: string;
86
+ to: string;
87
+ value: string;
88
+ token: Token;
89
+ metadataRpc: `0x${string}`;
90
+ type: BalanceTransferType;
91
+ connector: ChainConnector;
92
+ config?: ModuleConfig;
93
+ } : PlatformOf<Type> extends "ethereum" ? {
94
+ from: string;
95
+ to: string;
96
+ value: string;
97
+ token: Token;
98
+ } : never) => CallDataOf<PlatformOf<Type>> | Promise<CallDataOf<PlatformOf<Type>>>;
99
+ }
100
+ 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 { 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>;