/// import BigNumber from 'bignumber.js'; import { IRequestTracer } from '../../api'; import { IEnterprises } from '../enterprise'; import { Keychain, IKeychains } from '../keychain'; import { IMarkets } from '../market'; import { IPendingApprovals } from '../pendingApproval'; import { InitiateRecoveryOptions } from '../recovery'; import { EcdsaUtils } from '../utils/tss/ecdsa'; import EddsaUtils from '../utils/tss/eddsa'; import { IWallet, IWallets, WalletData } from '../wallet'; import { IWebhooks } from '../webhook/iWebhooks'; import { BaseTokenConfig } from '@bitgo-beta/statics'; export interface Output extends ITransactionRecipient { address: string; coinName?: string; isPayGo?: boolean; value?: number; wallet?: string; walletV1?: string; baseAddress?: string; enterprise?: string; valueString: string; data?: string; change?: boolean; } export declare type Input = { derivationIndex?: number; value: number; address?: string; valueString: string; chain?: number; index?: number; }; export declare type UnsignedTransaction = { serializedTxHex: string; signableHex: string; feeInfo?: { fee: number | BigNumber; feeString: string; }; derivationPath: string; coinSpecific?: Record; entryValues: any; parsedTx: UnsignedParsedTransaction; }; export interface ExplanationResult extends ITransactionExplanation { sequenceId: number; type?: string; outputs: Output[]; blockNumber: number | unknown; } export interface ITransactionRecipient { address: string; amount: string | number; tokenName?: string; memo?: string; } export interface ITransactionFee { fee: TAmount; feeRate?: number; size?: number; } export interface ITransactionExplanation { displayOrder: string[]; id: string; outputs: ITransactionRecipient[]; outputAmount: TAmount; changeOutputs: ITransactionRecipient[]; changeAmount: TAmount; fee: TFee; proxy?: string; producers?: string[]; } export interface KeyPair { pub?: string; prv: string; } export interface IBlsKeyPair extends KeyPair { secretShares?: string[]; chaincode: string; seed?: string; } export interface VerifyAddressOptions { address: string; addressType?: string; keychains?: { pub: string; }[]; error?: string; coinSpecific?: AddressCoinSpecific; impliedForwarderVersion?: number; } export interface TransactionParams { recipients?: ITransactionRecipient[]; walletPassphrase?: string; type?: string; } export interface AddressVerificationData { coinSpecific?: AddressCoinSpecific; chain?: number; index?: number; } export interface VerificationOptions { disableNetworking?: boolean; keychains?: { user?: Keychain; backup?: Keychain; bitgo?: Keychain; }; addresses?: { [address: string]: AddressVerificationData; }; allowPaygoOutput?: boolean; considerMigratedFromAddressInternal?: boolean; } export interface VerifyTransactionOptions { txPrebuild: TransactionPrebuild; txParams: TransactionParams; wallet: IWallet; verification?: VerificationOptions; reqId?: IRequestTracer; walletType?: 'onchain' | 'tss'; } export interface SupplementGenerateWalletOptions { label: string; m: number; n: number; enterprise?: string; disableTransactionNotifications?: boolean; gasPrice?: number | string; eip1559?: { maxFeePerGas: number | string; maxPriorityFeePerGas?: number | string; }; walletVersion?: number; keys: string[]; isCold: boolean; keySignatures?: { backup: string; bitgo: string; }; rootPrivateKey?: string; disableKRSEmail?: boolean; multisigType?: 'tss' | 'onchain' | 'blsdkg'; } export interface FeeEstimateOptions { numBlocks?: number; hop?: boolean; recipient?: string; data?: string; amount?: string; } export interface ExtraPrebuildParamsOptions { [index: string]: unknown; } export interface PresignTransactionOptions { txPrebuild?: TransactionPrebuild; walletData: WalletData; tssUtils: EcdsaUtils | EddsaUtils | undefined; [index: string]: unknown; } export interface PrecreateBitGoOptions { [index: string]: unknown; } export interface VerifyRecoveryTransactionOptions { [index: string]: unknown; } export interface ParseTransactionOptions { [index: string]: unknown; } export interface ParsedTransaction { [index: string]: unknown; } export declare type UnsignedParsedTransaction = { inputs: Input[]; minerFee: number | string; outputs: Output[]; spendAmount: number | string; hasUnvalidatedData?: boolean; payGoFee?: number; type?: string; sequenceId: number; id: string; }; export interface SignTransactionOptions { [index: string]: unknown; } export interface KeychainsTriplet { userKeychain: Keychain; backupKeychain: Keychain; bitgoKeychain: Keychain; } interface BaseSignable { wallet?: IWallet; buildParams?: any; consolidateId?: string; txRequestId?: string; } export interface TransactionPrebuild extends BaseSignable { txBase64?: string; txHex?: string; txInfo?: unknown; } export interface MessagePrebuild extends BaseSignable { message: string; } export interface AddressCoinSpecific { outputScript?: string; redeemScript?: string; witnessScript?: string; baseAddress?: string; pendingChainInitialization?: boolean; forwarderVersion?: number; } export interface FullySignedTransaction { txHex: string; } export interface HalfSignedUtxoTransaction { txHex: string; } export interface HalfSignedAccountTransaction { halfSigned?: { txHex?: string; payload?: string; txBase64?: string; }; } export interface HalfSignedTransaction extends HalfSignedAccountTransaction { halfSigned: { recipients: Recipient[]; expireTime: number; contractSequenceId: number; sequenceId: number; txHex?: never; }; } export interface SignedTransactionRequest { txRequestId: string; } export interface DeriveKeyWithSeedOptions { key: string; seed: string; } export interface ValidMofNOptions { m?: number; n?: number; } export declare type SignedTransaction = HalfSignedAccountTransaction | HalfSignedUtxoTransaction | FullySignedTransaction | SignedTransactionRequest; export declare type SignedMessage = SignedTransactionRequest | string; export interface RecoverWalletTokenOptions { tokenContractAddress: string; wallet: IWallet; recipient: string; broadcast?: boolean; walletPassphrase?: string; prv?: string; } export interface Recipient { address: string; amount: string; data?: string; } export interface RecoverTokenTransaction { halfSigned: { recipient: Recipient; expireTime: number; contractSequenceId: number; operationHash: string; signature: string; gasLimit: number; gasPrice: number; tokenContractAddress: string; walletId: string; }; } export interface TokenEnablementConfig { requiresTokenEnablement: boolean; supportsMultipleTokenEnablements: boolean; } export declare type MPCAlgorithm = 'ecdsa' | 'eddsa'; export interface IBaseCoin { type: string; tokenConfig?: BaseTokenConfig; url(suffix: string): string; wallets(): IWallets; enterprises(): IEnterprises; keychains(): IKeychains; webhooks(): IWebhooks; pendingApprovals(): IPendingApprovals; markets(): IMarkets; getChain(): string; getFamily(): string; getFullName(): string; valuelessTransferAllowed(): boolean; sweepWithSendMany(): boolean; transactionDataAllowed(): boolean; allowsAccountConsolidations(): boolean; getTokenEnablementConfig(): TokenEnablementConfig; supportsTss(): boolean; supportsStaking(): boolean; supportsBlsDkg(): boolean; getBaseFactor(): number | string; baseUnitsToBigUnits(baseUnits: string | number): string; bigUnitsToBaseUnits(bigUnits: string | number): string; signMessage(key: { prv: string; }, message: string): Promise; explainTransaction(options: Record): Promise | undefined>; verifyTransaction(params: VerifyTransactionOptions): Promise; verifyAddress(params: VerifyAddressOptions): boolean; isWalletAddress(params: VerifyAddressOptions): boolean; canonicalAddress(address: string, format: unknown): string; supportsBlockTarget(): boolean; supportsLightning(): boolean; supportsMessageSigning(): boolean; supplementGenerateWallet(walletParams: SupplementGenerateWalletOptions, keychains: KeychainsTriplet): Promise; getExtraPrebuildParams(buildParams: ExtraPrebuildParamsOptions): Promise>; postProcessPrebuild(prebuildResponse: TransactionPrebuild): Promise; presignTransaction(params: PresignTransactionOptions): Promise; newWalletObject(walletParams: any): IWallet; feeEstimate(params: FeeEstimateOptions): Promise; deriveKeyWithSeed(params: DeriveKeyWithSeedOptions): { key: string; derivationPath: string; }; keyIdsForSigning(): number[]; preCreateBitGo(params: PrecreateBitGoOptions): void; initiateRecovery(params: InitiateRecoveryOptions): never; parseTransaction(params: ParseTransactionOptions): Promise; generateKeyPair(seed?: Buffer): KeyPair; isValidPub(pub: string): boolean; isValidMofNSetup(params: ValidMofNOptions): boolean; isValidAddress(address: string): boolean; signTransaction(params: SignTransactionOptions): Promise; getSignablePayload(serializedTx: string): Promise; getMPCAlgorithm(): MPCAlgorithm; recoverToken(params: RecoverWalletTokenOptions): Promise; } export {}; //# sourceMappingURL=iBaseCoin.d.ts.map