import type { Commitment } from '@solana/web3.js'; import type { Signer, Provider } from 'ethers'; export type IAddress = `0x${string}`; /** * Address type for vault contracts across all supported chains. * EVM vaults use `0x`-prefixed hex addresses, Solana vaults use base58, * and Stellar vaults use 56-character base32 addresses (G/C prefix). * * Use this instead of `IAddress` when the address may belong to any chain. */ export type VaultAddress = string; export type IChainId = number; export type ChainType = 'evm' | 'solana' | 'sui' | 'stellar'; /** Runtime type guard for ChainType values (e.g. at API deserialization boundaries). */ export declare function isChainType(value: unknown): value is ChainType; export type IChainObj = { chainId: number; name: string; explorer: string; }; export type INormalizedNumber = { normalized: string; raw: string; }; export type IExplorerType = 'tx' | 'address' | 'token'; export type IContractRunner = Signer | Provider; export type IProvidersConfig = Partial>; export type IInfuraOptions = { chainId: IChainId; apiKey: string; }; export type ISolanaNetwork = 'devnet' | 'mainnet-beta' | 'testnet' | 'localnet'; export type IStellarNetwork = 'mainnet' | 'testnet'; export interface ISolanaConfig { rpcUrl: string; network: ISolanaNetwork; /** * Commitment for every Solana read *and* for the confirmation of every * Solana write, so the two always describe the same chain state. * * Defaults to `'finalized'` — unchanged from the commitment the SDK has * always inherited from the RPC. Pass `'confirmed'` for a markedly faster * round trip (seconds rather than tens of seconds), accepting that the state * you act on can still, in principle, be rolled back. * * Only read from this object. Configuring Solana through the legacy * `providers` map instead leaves the commitment at its default, since this * type requires `rpcUrl` and `network` alongside it. */ commitment?: Commitment; } /** * Stellar-specific configuration for `new AugustSDK({ stellar })`. All * fields are optional — omit it entirely to target Stellar mainnet through the * SDK's built-in public Soroban RPC endpoints. */ export interface IStellarConfig { /** * Override Soroban RPC endpoint (e.g. a consumer's keyed Alchemy URL). When * set it becomes the primary, with the SDK's built-in public endpoints kept * behind it as failover. Optional — omit to use the public endpoints. */ rpcUrl?: string; /** Stellar network; defaults to mainnet when omitted. */ network?: IStellarNetwork; }