import { TransactionType, TransactionExplanation as BaseTransactionExplanation } from '@bitgo-beta/sdk-core'; import { PolkadotSpecNameType } from '@bitgo-beta/statics'; import { BaseTxInfo, TypeRegistry, DecodedUnsignedTx } from '@substrate/txwrapper-core/lib/types'; export { HexString } from '@polkadot/util/types'; /** * Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction */ export declare enum MethodNames { AddProxy = "addProxy", Proxy = "proxy", Bond = "bond", TransferAll = "transferAll", TransferKeepAlive = "transferKeepAlive", Unbond = "unbond", Anonymous = "anonymous", Batch = "batch", Chill = "chill", WithdrawUnbonded = "withdrawUnbonded", PayoutStakers = "payoutStakers" } /** * The transaction data returned from the toJson() function of a transaction */ export interface TxData { id: string; sender: string; referenceBlock: string; blockNumber: number; genesisHash: string; nonce: number; specVersion: number; transactionVersion: number; chainName: string; method?: string; specName?: string; amount?: string; to?: string; tip?: number; eraPeriod?: number; controller?: string; payee?: string; owner?: string; proxyType?: string; delay?: string; forceProxyType?: ProxyType; index?: string; batchCalls?: BatchCallObject[]; numSlashingSpans?: number; validatorStash?: string; claimEra?: string; } /** * Transaction method specific args */ export interface TransferArgs { dest: { id: string; }; value: string; } /** * Transaction method specific args */ export interface TransferAllArgs { dest: { id: string; }; keepAlive: boolean; } /** * Transaction method specific args */ export declare type StakeArgsPayee = 'Staked' | 'Stash' | 'Controller' | { Account: string; }; /** * Transaction method specific args */ export declare type StakeArgsPayeeRaw = { controller?: null; stash?: null; staked?: null; account?: string; }; /** * Transaction method specific args */ export interface StakeArgs { value: string; controller: { id: string; }; payee: StakeArgsPayee; } export interface UnstakeArgs { value: string; } export interface WithdrawUnstakedArgs { numSlashingSpans: number; } export interface ClaimArgs { validatorStash: string; era: string; } /** * The types of proxies that can be setup and used * https://wiki.polkadot.network/docs/learn-proxies#proxy-types */ export declare enum ProxyType { ANY = "Any", NON_TRANSFER = "NonTransfer", STAKING = "Staking", IDENTTITY_JUDGEMENT = "IdentityJudgement", CANCEL_PROXY = "CancelProxy" } /** * Transaction method specific args */ export interface AddProxyArgs { delegate: string; delay: string; proxyType: ProxyType; } /** * Transaction method specific args */ export interface AddAnonymousProxyArgs { proxyType: ProxyType; index: string; delay: string; } /** * Transaction method specific args */ export declare type BatchCallObject = { callIndex: string; args: Record; }; export interface BatchArgs { calls: BatchCallObject[]; } /** * Transaction method specific args */ export declare type ProxyCallArgs = { callIndex: string; args: TransferArgs; }; /** * Transaction method specific args */ export interface ProxyArgs { real: string; forceProxyType: ProxyType; } /** * Decoded TxMethod from a transaction hex */ export interface TxMethod { args: TransferArgs | TransferAllArgs | StakeArgs | AddProxyArgs | ProxyArgs | UnstakeArgs | AddAnonymousProxyArgs | BatchArgs | WithdrawUnstakedArgs | ClaimArgs; name: MethodNames; pallet: string; } /** * Modified unsigned transaction with a decoded method instead of a method hex */ export interface DecodedTx extends Omit { method: TxMethod; } /** * Base transaction info shared across all types of transactions */ export interface CreateBaseTxInfo { baseTxInfo: BaseTxInfo; options: { metadataRpc: `0x${string}`; registry: TypeRegistry; isImmortalEra?: boolean; }; } export interface TransactionExplanation extends BaseTransactionExplanation { type: TransactionType; forceProxyType?: ProxyType; controller?: string; payee?: string; owner?: string; proxyType?: string; delay?: string; } export declare enum TransactionTypes { TRANSFER = "transfer", STAKING = "staking", ADDR_INIT = "addressInitialization", UNSTAKING = "unstaking" } export interface Material { genesisHash: string; chainName: string; specName: PolkadotSpecNameType; specVersion: number; txVersion: number; metadata: `0x${string}`; } //# sourceMappingURL=iface.d.ts.map