@talismn/balances 1.0.1 → 1.0.3

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 (38) hide show
  1. package/dist/declarations/src/BalancesProvider.d.ts +2 -0
  2. package/dist/declarations/src/getMiniMetadatas/getMetadataRpc.d.ts +2 -2
  3. package/dist/declarations/src/getMiniMetadatas/getSpecVersion.d.ts +2 -2
  4. package/dist/declarations/src/getMiniMetadatas/index.d.ts +2 -2
  5. package/dist/declarations/src/modules/index.d.ts +23 -0
  6. package/dist/declarations/src/modules/shared/detectedTokens.d.ts +3 -0
  7. package/dist/declarations/src/modules/shared/errors.d.ts +1 -1
  8. package/dist/declarations/src/modules/shared/fetchRuntimeCallResult.d.ts +2 -2
  9. package/dist/declarations/src/modules/shared/rpcQueryPack.d.ts +3 -3
  10. package/dist/declarations/src/modules/sol-native/config.d.ts +3 -0
  11. package/dist/declarations/src/modules/sol-native/fetchBalances.d.ts +3 -0
  12. package/dist/declarations/src/modules/sol-native/fetchTokens.d.ts +3 -0
  13. package/dist/declarations/src/modules/sol-native/getMiniMetadata.d.ts +3 -0
  14. package/dist/declarations/src/modules/sol-native/getTransferCallData.d.ts +3 -0
  15. package/dist/declarations/src/modules/sol-native/index.d.ts +2 -0
  16. package/dist/declarations/src/modules/sol-native/module.d.ts +3 -0
  17. package/dist/declarations/src/modules/sol-native/subscribeBalances.d.ts +3 -0
  18. package/dist/declarations/src/modules/sol-native/types.d.ts +13 -0
  19. package/dist/declarations/src/modules/sol-spl/config.d.ts +3 -0
  20. package/dist/declarations/src/modules/sol-spl/fetchBalances.d.ts +3 -0
  21. package/dist/declarations/src/modules/sol-spl/fetchTokens.d.ts +3 -0
  22. package/dist/declarations/src/modules/sol-spl/getMiniMetadata.d.ts +3 -0
  23. package/dist/declarations/src/modules/sol-spl/getTransferCallData.d.ts +3 -0
  24. package/dist/declarations/src/modules/sol-spl/index.d.ts +2 -0
  25. package/dist/declarations/src/modules/sol-spl/module.d.ts +3 -0
  26. package/dist/declarations/src/modules/sol-spl/subscribeBalances.d.ts +3 -0
  27. package/dist/declarations/src/modules/sol-spl/types.d.ts +14 -0
  28. package/dist/declarations/src/modules/substrate-native/bittensor/getSubtensorStakingBalances.d.ts +2 -2
  29. package/dist/declarations/src/modules/substrate-native/fetchTokens.d.ts +2 -2
  30. package/dist/declarations/src/modules/substrate-psp22/util.d.ts +2 -2
  31. package/dist/declarations/src/types/IBalanceModule.d.ts +26 -19
  32. package/dist/declarations/src/types/balances.d.ts +56 -5
  33. package/dist/declarations/src/types/balancetypes.d.ts +0 -4
  34. package/dist/declarations/src/types/chainConnectors.d.ts +4 -4
  35. package/dist/talismn-balances.cjs.dev.js +770 -248
  36. package/dist/talismn-balances.cjs.prod.js +770 -248
  37. package/dist/talismn-balances.esm.js +761 -243
  38. package/package.json +16 -11
@@ -18,9 +18,11 @@ export declare class BalancesProvider {
18
18
  private get storedMiniMetadataMapById$();
19
19
  getBalances$(addressesByTokenId: Record<TokenId, Address[]>): Observable<BalancesResult>;
20
20
  fetchBalances(addressesByTokenId: Record<TokenId, Address[]>): Promise<IBalance[]>;
21
+ getDetectedTokensId$(address: string): Observable<TokenId[]>;
21
22
  private getNetworkBalances$;
22
23
  private getPolkadotNetworkModuleBalances$;
23
24
  private getEthereumNetworkModuleBalances$;
25
+ private getSolanaNetworkModuleBalances$;
24
26
  private updateStorage$;
25
27
  private getNetworkMiniMetadatas$;
26
28
  private getNetworkSpecVersion$;
@@ -1,3 +1,3 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
2
  import { DotNetworkId } from "@talismn/chaindata-provider";
3
- export declare const getMetadataRpc: (chainConnector: ChainConnector, networkId: DotNetworkId) => Promise<`0x${string}`>;
3
+ export declare const getMetadataRpc: (chainConnector: IChainConnectorDot, networkId: DotNetworkId) => Promise<`0x${string}`>;
@@ -1,6 +1,6 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
2
  import { DotNetworkId } from "@talismn/chaindata-provider";
3
3
  /**
4
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
5
  */
6
- export declare const getSpecVersion: (chainConnector: ChainConnector, networkId: DotNetworkId) => Promise<number>;
6
+ export declare const getSpecVersion: (chainConnector: IChainConnectorDot, networkId: DotNetworkId) => Promise<number>;
@@ -1,5 +1,5 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
2
  import { ChaindataProvider, DotNetworkId } from "@talismn/chaindata-provider";
3
3
  import { MiniMetadata } from "../types";
4
4
  export { getSpecVersion } from "./getSpecVersion";
5
- export declare const getMiniMetadatas: (chainConnector: ChainConnector, chaindataProvider: ChaindataProvider, networkId: DotNetworkId, specVersion?: number) => Promise<MiniMetadata[]>;
5
+ export declare const getMiniMetadatas: (chainConnector: IChainConnectorDot, chaindataProvider: ChaindataProvider, networkId: DotNetworkId, specVersion?: number) => Promise<MiniMetadata[]>;
@@ -108,6 +108,27 @@ export declare const BALANCE_MODULES: (import("../types/IBalanceModule").IBalanc
108
108
  coingeckoId?: string | undefined;
109
109
  noDiscovery?: boolean | undefined;
110
110
  mirrorOf?: string | undefined;
111
+ }, unknown, unknown> | import("../types/IBalanceModule").IBalanceModule<"sol-native", {
112
+ symbol?: string | undefined;
113
+ networkId?: string | undefined;
114
+ isDefault?: boolean | undefined;
115
+ decimals?: number | undefined;
116
+ name?: string | undefined;
117
+ logo?: string | undefined;
118
+ coingeckoId?: string | undefined;
119
+ noDiscovery?: boolean | undefined;
120
+ mirrorOf?: string | undefined;
121
+ }, unknown, unknown> | import("../types/IBalanceModule").IBalanceModule<"sol-spl", {
122
+ mintAddress: string;
123
+ symbol?: string | undefined;
124
+ networkId?: string | undefined;
125
+ isDefault?: boolean | undefined;
126
+ decimals?: number | undefined;
127
+ name?: string | undefined;
128
+ logo?: string | undefined;
129
+ coingeckoId?: string | undefined;
130
+ noDiscovery?: boolean | undefined;
131
+ mirrorOf?: string | undefined;
111
132
  }, unknown, unknown>)[];
112
133
  export type AnyBalanceModule = (typeof BALANCE_MODULES)[number];
113
134
  export * from "./evm-native";
@@ -119,5 +140,7 @@ export * from "./substrate-foreignassets";
119
140
  export * from "./substrate-hydration";
120
141
  export * from "./substrate-psp22";
121
142
  export * from "./substrate-tokens";
143
+ export * from "./sol-native";
144
+ export * from "./sol-spl";
122
145
  export * from "./abis";
123
146
  export * from "../types/IBalanceModule";
@@ -0,0 +1,3 @@
1
+ import { TokenId, TokenType } from "@talismn/chaindata-provider";
2
+ export declare const setDetectedTokenIds: (address: string, type: TokenType, tokenIds: TokenId[]) => void;
3
+ export declare const getDetectedTokensIds$: (address: string) => import("rxjs").Observable<string[]>;
@@ -1,5 +1,5 @@
1
1
  import { TokenId } from "@talismn/chaindata-provider";
2
- import { Address } from "viem";
2
+ import { Address } from "../../types";
3
3
  export declare class BalanceFetchError extends Error {
4
4
  tokenId: TokenId;
5
5
  address: Address;
@@ -1,2 +1,2 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
2
- export declare const fetchRuntimeCallResult: <T>(connector: ChainConnector, networkId: string, metadataRpc: `0x${string}`, apiName: string, method: string, args: unknown[]) => Promise<T>;
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
+ export declare const fetchRuntimeCallResult: <T>(connector: IChainConnectorDot, networkId: string, metadataRpc: `0x${string}`, apiName: string, method: string, args: unknown[]) => Promise<T>;
@@ -1,4 +1,4 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
2
  import { DotNetworkId } from "@talismn/chaindata-provider";
3
3
  import { Observable } from "rxjs";
4
4
  export type MaybeStateKey = `0x${string}` | null;
@@ -6,5 +6,5 @@ export type RpcQueryPack<T> = {
6
6
  stateKeys: MaybeStateKey[];
7
7
  decodeResult: (changes: MaybeStateKey[]) => T;
8
8
  };
9
- export declare const fetchRpcQueryPack: <T>(connector: ChainConnector, networkId: DotNetworkId, queries: RpcQueryPack<T>[]) => Promise<T[]>;
10
- export declare const getRpcQueryPack$: <T>(connector: ChainConnector, networkId: DotNetworkId, queries: RpcQueryPack<T>[], timeout?: number | false) => Observable<T[]>;
9
+ export declare const fetchRpcQueryPack: <T>(connector: IChainConnectorDot, networkId: DotNetworkId, queries: RpcQueryPack<T>[]) => Promise<T[]>;
10
+ export declare const getRpcQueryPack$: <T>(connector: IChainConnectorDot, networkId: DotNetworkId, queries: RpcQueryPack<T>[], timeout?: number | false) => Observable<T[]>;
@@ -0,0 +1,3 @@
1
+ export { type SolNativeTokenConfig as TokenConfig } from "./types";
2
+ export declare const MODULE_TYPE: "sol-native";
3
+ export declare const PLATFORM: "solana";
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const fetchBalances: IBalanceModule<typeof MODULE_TYPE>["fetchBalances"];
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE, TokenConfig } from "./config";
3
+ export declare const fetchTokens: IBalanceModule<typeof MODULE_TYPE, TokenConfig>["fetchTokens"];
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const getMiniMetadata: IBalanceModule<typeof MODULE_TYPE>["getMiniMetadata"];
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const getTransferCallData: IBalanceModule<typeof MODULE_TYPE>["getTransferCallData"];
@@ -0,0 +1,2 @@
1
+ export * from "./module";
2
+ export * from "./types";
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE, TokenConfig } from "./config";
3
+ export declare const SolNativeBalanceModule: IBalanceModule<typeof MODULE_TYPE, TokenConfig>;
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const subscribeBalances: IBalanceModule<typeof MODULE_TYPE>["subscribeBalances"];
@@ -0,0 +1,13 @@
1
+ import z from "zod/v4";
2
+ export declare const SolNativeTokenConfigSchema: z.ZodObject<{
3
+ symbol: z.ZodOptional<z.ZodString>;
4
+ networkId: z.ZodOptional<z.ZodString>;
5
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
6
+ decimals: z.ZodOptional<z.ZodInt>;
7
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
9
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
10
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
11
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
12
+ }, z.core.$strict>;
13
+ export type SolNativeTokenConfig = z.infer<typeof SolNativeTokenConfigSchema>;
@@ -0,0 +1,3 @@
1
+ export declare const MODULE_TYPE: "sol-spl";
2
+ export declare const PLATFORM: "solana";
3
+ export { type SolSplTokenConfig as TokenConfig } from "./types";
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const fetchBalances: IBalanceModule<typeof MODULE_TYPE>["fetchBalances"];
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE, TokenConfig } from "./config";
3
+ export declare const fetchTokens: IBalanceModule<typeof MODULE_TYPE, TokenConfig>["fetchTokens"];
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const getMiniMetadata: IBalanceModule<typeof MODULE_TYPE>["getMiniMetadata"];
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const getTransferCallData: IBalanceModule<typeof MODULE_TYPE>["getTransferCallData"];
@@ -0,0 +1,2 @@
1
+ export * from "./module";
2
+ export * from "./types";
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE, TokenConfig } from "./config";
3
+ export declare const SolSplBalanceModule: IBalanceModule<typeof MODULE_TYPE, TokenConfig>;
@@ -0,0 +1,3 @@
1
+ import { IBalanceModule } from "../../types/IBalanceModule";
2
+ import { MODULE_TYPE } from "./config";
3
+ export declare const subscribeBalances: IBalanceModule<typeof MODULE_TYPE>["subscribeBalances"];
@@ -0,0 +1,14 @@
1
+ import z from "zod/v4";
2
+ export declare const SolSplTokenConfigSchema: z.ZodObject<{
3
+ symbol: z.ZodOptional<z.ZodString>;
4
+ networkId: z.ZodOptional<z.ZodString>;
5
+ isDefault: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
6
+ decimals: z.ZodOptional<z.ZodInt>;
7
+ name: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8
+ logo: z.ZodOptional<z.ZodOptional<z.ZodString>>;
9
+ coingeckoId: z.ZodOptional<z.ZodOptional<z.ZodString>>;
10
+ noDiscovery: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
11
+ mirrorOf: z.ZodOptional<z.ZodOptional<z.ZodString>>;
12
+ mintAddress: z.ZodString;
13
+ }, z.core.$strict>;
14
+ export type SolSplTokenConfig = z.infer<typeof SolSplTokenConfigSchema>;
@@ -1,9 +1,9 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
2
  import { DotNetworkId } from "@talismn/chaindata-provider";
3
3
  import { Observable } from "rxjs";
4
4
  import { AmountWithLabel, MiniMetadata } from "../../../types";
5
5
  import { BalanceDef } from "../../shared";
6
6
  import { MiniMetadataExtra } from "../config";
7
7
  type StakingValuesByAddress = Record<string, Array<AmountWithLabel<string>>>;
8
- export declare const getSubtensorStakingBalances$: (connector: ChainConnector, networkId: DotNetworkId, balanceDefs: BalanceDef<"substrate-native">[], miniMetadata: MiniMetadata<MiniMetadataExtra>) => Observable<StakingValuesByAddress>;
8
+ export declare const getSubtensorStakingBalances$: (connector: IChainConnectorDot, networkId: DotNetworkId, balanceDefs: BalanceDef<"substrate-native">[], miniMetadata: MiniMetadata<MiniMetadataExtra>) => Observable<StakingValuesByAddress>;
9
9
  export {};
@@ -1,8 +1,8 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
1
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
2
2
  import { IBalanceModule } from "../../types/IBalanceModule";
3
3
  import { MiniMetadataExtra, MODULE_TYPE, ModuleConfig, TokenConfig } from "./config";
4
4
  export declare const fetchTokens: IBalanceModule<typeof MODULE_TYPE, TokenConfig, ModuleConfig, MiniMetadataExtra>["fetchTokens"];
5
- export declare const getChainProperties: (connector: ChainConnector, networkId: string) => Promise<{
5
+ export declare const getChainProperties: (connector: IChainConnectorDot, networkId: string) => Promise<{
6
6
  tokenDecimals: number;
7
7
  tokenSymbol: string;
8
8
  }>;
@@ -1,8 +1,8 @@
1
1
  import { TypeRegistry } from "@polkadot/types";
2
2
  import { ContractExecResult } from "@polkadot/types/interfaces";
3
- import { ChainConnector } from "@talismn/chain-connector";
3
+ import { IChainConnectorDot } from "@talismn/chain-connectors";
4
4
  export declare const makeContractCaller: ({ chainConnector, chainId, registry, }: {
5
- chainConnector: ChainConnector;
5
+ chainConnector: IChainConnectorDot;
6
6
  chainId: string;
7
7
  registry: TypeRegistry;
8
8
  }) => <T extends Uint8Array | {
@@ -1,10 +1,10 @@
1
- import type { ChainConnector } from "@talismn/chain-connector";
2
- import type { ChainConnectorEvm } from "@talismn/chain-connector-evm";
3
- import { DotNetworkId, EthNetworkId, Token, TokenId, TokenOfType, TokenType } from "@talismn/chaindata-provider";
1
+ import type { IChainConnectorDot, IChainConnectorEth, IChainConnectorSol } from "@talismn/chain-connectors";
2
+ import { TransactionInstruction } from "@solana/web3.js";
3
+ import { DotNetworkId, EthNetworkId, SolNetworkId, Token, TokenId, TokenOfType, TokenType } from "@talismn/chaindata-provider";
4
4
  import { Observable } from "rxjs";
5
5
  import type { Address, IBalance, MiniMetadata } from ".";
6
6
  export type TokenPlatform<T extends TokenType> = TokenOfType<T>["platform"];
7
- export type PlatformConnector<P extends TokenPlatform<TokenType>> = P extends "ethereum" ? ChainConnectorEvm : P extends "polkadot" ? ChainConnector : never;
7
+ export type PlatformConnector<P extends TokenPlatform<TokenType>> = P extends "ethereum" ? IChainConnectorEth : P extends "polkadot" ? IChainConnectorDot : P extends "solana" ? IChainConnectorSol : never;
8
8
  type DotTransferCallData = {
9
9
  address: string;
10
10
  method: `0x${string}`;
@@ -15,8 +15,9 @@ type EthTransferCallData = {
15
15
  data: `0x${string}`;
16
16
  value?: string;
17
17
  };
18
+ type SolTransferCallData = TransactionInstruction[];
18
19
  export type BalanceTransferType = "keep-alive" | "all" | "allow-death";
19
- type CallDataOf<P extends TokenPlatform<TokenType>> = P extends "ethereum" ? EthTransferCallData : P extends "polkadot" ? DotTransferCallData : never;
20
+ type CallDataOf<P extends TokenPlatform<TokenType>> = P extends "ethereum" ? EthTransferCallData : P extends "polkadot" ? DotTransferCallData : P extends "solana" ? SolTransferCallData : never;
20
21
  export type TokensWithAddresses = Array<[Token, Address[]]>;
21
22
  export type FetchBalanceErrors = Array<{
22
23
  tokenId: TokenId;
@@ -39,35 +40,35 @@ export interface IBalanceModule<Type extends TokenType, TokenConfig = unknown, M
39
40
  fetchTokens: (arg: TokenPlatform<Type> extends "polkadot" ? {
40
41
  networkId: DotNetworkId;
41
42
  tokens: TokenConfig[];
42
- connector: ChainConnector;
43
+ connector: PlatformConnector<TokenPlatform<Type>>;
43
44
  miniMetadata: MiniMetadata<MiniMetadataExtra>;
44
45
  cache: Record<TokenId, unknown>;
45
- } : TokenPlatform<Type> extends "ethereum" ? {
46
- networkId: EthNetworkId;
46
+ } : {
47
+ networkId: SolNetworkId;
47
48
  tokens: TokenConfig[];
48
- connector: ChainConnectorEvm;
49
+ connector: PlatformConnector<TokenPlatform<Type>>;
49
50
  cache: Record<TokenId, unknown>;
50
- } : never) => Promise<TokenOfType<Type>[]>;
51
+ }) => Promise<TokenOfType<Type>[]>;
51
52
  fetchBalances: (arg: TokenPlatform<Type> extends "polkadot" ? {
52
53
  networkId: DotNetworkId;
53
54
  tokensWithAddresses: TokensWithAddresses;
54
- connector: ChainConnector;
55
+ connector: PlatformConnector<TokenPlatform<Type>>;
55
56
  miniMetadata: MiniMetadata<MiniMetadataExtra>;
56
- } : TokenPlatform<Type> extends "ethereum" ? {
57
+ } : {
57
58
  networkId: EthNetworkId;
58
59
  tokensWithAddresses: TokensWithAddresses;
59
- connector: ChainConnectorEvm;
60
- } : never) => Promise<FetchBalanceResults>;
60
+ connector: PlatformConnector<TokenPlatform<Type>>;
61
+ }) => Promise<FetchBalanceResults>;
61
62
  subscribeBalances: (arg: TokenPlatform<Type> extends "polkadot" ? {
62
63
  networkId: DotNetworkId;
63
64
  tokensWithAddresses: TokensWithAddresses;
64
- connector: ChainConnector;
65
+ connector: PlatformConnector<TokenPlatform<Type>>;
65
66
  miniMetadata: MiniMetadata<MiniMetadataExtra>;
66
- } : TokenPlatform<Type> extends "ethereum" ? {
67
+ } : {
67
68
  networkId: EthNetworkId;
68
69
  tokensWithAddresses: TokensWithAddresses;
69
- connector: ChainConnectorEvm;
70
- } : never) => Observable<FetchBalanceResults>;
70
+ connector: PlatformConnector<TokenPlatform<Type>>;
71
+ }) => Observable<FetchBalanceResults>;
71
72
  getTransferCallData: (arg: TokenPlatform<Type> extends "polkadot" ? {
72
73
  from: string;
73
74
  to: string;
@@ -75,13 +76,19 @@ export interface IBalanceModule<Type extends TokenType, TokenConfig = unknown, M
75
76
  token: Token;
76
77
  metadataRpc: `0x${string}`;
77
78
  type: BalanceTransferType;
78
- connector: ChainConnector;
79
+ connector: PlatformConnector<TokenPlatform<Type>>;
79
80
  config?: ModuleConfig;
80
81
  } : TokenPlatform<Type> extends "ethereum" ? {
81
82
  from: string;
82
83
  to: string;
83
84
  value: string;
84
85
  token: Token;
86
+ } : TokenPlatform<Type> extends "solana" ? {
87
+ from: string;
88
+ to: string;
89
+ value: string;
90
+ token: Token;
91
+ connector: PlatformConnector<TokenPlatform<Type>>;
85
92
  } : never) => CallDataOf<TokenPlatform<Type>> | Promise<CallDataOf<TokenPlatform<Type>>>;
86
93
  }
87
94
  export {};
@@ -8,10 +8,6 @@ type FormattedAmount<GenericAmount extends AmountWithLabel<TLabel>, TLabel exten
8
8
  export declare function excludeFromTransferableAmount(locks: Amount | FormattedAmount<LockedAmount<string>, string> | Array<FormattedAmount<LockedAmount<string>, string>>): bigint;
9
9
  export declare function excludeFromFeePayableLocks(locks: Amount | LockedAmount<string> | Array<LockedAmount<string>>): Array<LockedAmount<string>>;
10
10
  export declare function includeInTotalExtraAmount(extra?: FormattedAmount<ExtraAmount<string>, string> | Array<FormattedAmount<ExtraAmount<string>, string>>): bigint;
11
- /**
12
- * Have the importing library define its Token and BalanceJson enums (as a sum type of all plugins) and pass them into some
13
- * internal global typescript context, which is then picked up on by this module.
14
- */
15
11
  /** A utility type used to extract the underlying `BalanceType` of a specific source from a generalised `BalanceJson` */
16
12
  export type NarrowBalanceType<S extends IBalance, P> = S extends {
17
13
  source: P;
@@ -212,12 +208,40 @@ export declare class Balance {
212
208
  type: "scroll";
213
209
  l1GasPriceOracle: `0x${string}`;
214
210
  } | undefined;
215
- contracts?: Partial<Record<"Erc20Aggregator" | "Multicall3", `0x${string}`>> | undefined;
211
+ contracts?: {
212
+ Erc20Aggregator?: `0x${string}` | undefined;
213
+ Multicall3?: `0x${string}` | undefined;
214
+ } | undefined;
216
215
  balancesConfig?: {
217
216
  "evm-native"?: undefined;
218
217
  "evm-erc20"?: undefined;
219
218
  "evm-uniswapv2"?: undefined;
220
219
  } | undefined;
220
+ } | {
221
+ id: string;
222
+ name: string;
223
+ nativeTokenId: string;
224
+ nativeCurrency: {
225
+ decimals: number;
226
+ symbol: string;
227
+ name: string;
228
+ coingeckoId?: string | undefined;
229
+ mirrorOf?: string | undefined;
230
+ logo?: string | undefined;
231
+ };
232
+ blockExplorerUrls: string[];
233
+ platform: "solana";
234
+ genesisHash: string;
235
+ rpcs: string[];
236
+ isTestnet?: boolean | undefined;
237
+ isDefault?: boolean | undefined;
238
+ forceScan?: boolean | undefined;
239
+ logo?: string | undefined;
240
+ themeColor?: string | undefined;
241
+ balancesConfig?: {
242
+ "sol-native"?: undefined;
243
+ "sol-spl"?: undefined;
244
+ } | undefined;
221
245
  } | null;
222
246
  get tokenId(): string;
223
247
  get token(): {
@@ -364,6 +388,33 @@ export declare class Balance {
364
388
  coingeckoId?: string | undefined;
365
389
  noDiscovery?: boolean | undefined;
366
390
  mirrorOf?: string | undefined;
391
+ } | {
392
+ id: string;
393
+ networkId: string;
394
+ decimals: number;
395
+ symbol: string;
396
+ type: "sol-native";
397
+ platform: "solana";
398
+ isDefault?: boolean | undefined;
399
+ name?: string | undefined;
400
+ logo?: string | undefined;
401
+ coingeckoId?: string | undefined;
402
+ noDiscovery?: boolean | undefined;
403
+ mirrorOf?: string | undefined;
404
+ } | {
405
+ id: string;
406
+ networkId: string;
407
+ decimals: number;
408
+ symbol: string;
409
+ type: "sol-spl";
410
+ platform: "solana";
411
+ mintAddress: string;
412
+ isDefault?: boolean | undefined;
413
+ name?: string | undefined;
414
+ logo?: string | undefined;
415
+ coingeckoId?: string | undefined;
416
+ noDiscovery?: boolean | undefined;
417
+ mirrorOf?: string | undefined;
367
418
  } | null;
368
419
  get decimals(): number | null;
369
420
  get rates(): TokenRates | null;
@@ -68,8 +68,4 @@ export type ExtraAmount<TLabel extends string> = BaseAmountWithLabel<TLabel> & {
68
68
  /** If set to true, this extra amount will be included in the calculation of the total amount of this balance. */
69
69
  includeInTotal?: boolean;
70
70
  };
71
- /** Used by plugins to help define their custom `BalanceType` */
72
- export type NewBalanceType<TModuleType extends string, TBalanceValueType extends "simple" | "complex"> = IBalanceBase & (TBalanceValueType extends "simple" ? IBalanceSimpleValues : IBalanceComplexValues) & {
73
- source: TModuleType;
74
- };
75
71
  export {};
@@ -1,6 +1,6 @@
1
- import { ChainConnector } from "@talismn/chain-connector";
2
- import { ChainConnectorEvm } from "@talismn/chain-connector-evm";
1
+ import { IChainConnectorDot, IChainConnectorEth, IChainConnectorSol } from "@talismn/chain-connectors";
3
2
  export type ChainConnectors = {
4
- substrate?: ChainConnector;
5
- evm?: ChainConnectorEvm;
3
+ substrate?: IChainConnectorDot;
4
+ evm?: IChainConnectorEth;
5
+ solana?: IChainConnectorSol;
6
6
  };