import BigNumber from 'bignumber.js'; import { ApiClient } from '..'; /** * PoolPair RPCs for DeFi Blockchain */ export declare class PoolPair { private readonly client; constructor(client: ApiClient); /** * Create a poolpair with given metadata * * @param {CreatePoolPairMetadata} metadata a data providing information for pool pair creation * @param {string} metadata.tokenA uses to trade to obtain tokenB * @param {string} metadata.tokenB * @param {number} metadata.commission * @param {boolean} metadata.status * @param {string} metadata.ownerAddress * @param {string} [metadata.customRewards] * @param {string} [metadata.pairSymbol] * @param {UTXO[]} utxos is an array of specific UTXOs to spend * @param {string} utxos.txid * @param {number} utxos.vout * @return {Promise} */ createPoolPair(metadata: CreatePoolPairMetadata, utxos?: UTXO[]): Promise; /** * Update a poolpair with given metadata * * @param {UpdatePoolPairMetadata} metadata A data providing information for pool pair update * @param {string} metadata.pool The pool's symbol, id or creation tx * @param {boolean} metadata.status Pool Status new property (bool) * @param {number} metadata.commission Pool commission, up to 10^-8 * @param {string} metadata.ownerAddress Address of the pool owner. * @param {string} [metadata.customRewards] Token reward to be paid on each block, multiple can be specified. * @param {UTXO[]} utxos is an array of specific UTXOs to spend * @param {string} utxos.txid * @param {number} utxos.vout * @return {Promise} */ updatePoolPair(metadata: UpdatePoolPairMetadata, utxos?: UTXO[]): Promise; /** * Returns information about pools * * @param {PoolPairPagination} pagination * @param {number} pagination.start default is 0 * @param {boolean} pagination.including_start default = true * @param {number} pagination.limit to limit number of records * @param {boolean} verbose default = true, otherwise only symbol, name, status, idTokenA, idTokenB * @return {Promise} */ listPoolPairs(pagination?: PoolPairPagination, verbose?: boolean): Promise; /** * Returns information about pool * * @param {string} symbol token's symbol * @param {boolean} verbose default = true, otherwise only symbol, name, status, idTokenA, idTokenB * @return {Promise} */ getPoolPair(symbol: string, verbose?: boolean): Promise; /** * Add pool liquidity transaction * * @param {AddPoolLiquiditySource} from pool liquidity sources * @param {string | string[]} from[address] provides at least two types of token with format 'amoun@token' * @param {string} shareAddress defi address for crediting tokens * @param {PoolLiquidityOptions} [options] * @param {UTXO[]} [options.utxos] utxos array of specific UTXOs to spend * @param {string} [options.utxos.txid] * @param {number} [options.utxos.vout] * @return {Promise} */ addPoolLiquidity(from: AddPoolLiquiditySource, shareAddress: string, options?: PoolLiquidityOptions): Promise; /** * Returns information about pool shares * * @param {PoolPairPagination} pagination * @param {number} pagination.start default is 0 * @param {boolean} pagination.including_start default = true * @param {number} pagination.limit to limit number of records * @param {boolean} verbose default = true, otherwise only poolID, owner and % * @param {PoolShareOptions} [options] * @param {boolean} [options.isMineOnly=true] * @return {Promise} */ listPoolShares(pagination?: PoolPairPagination, verbose?: boolean, options?: PoolShareOptions): Promise; /** * Creates a pool swap transaction with given metadata * * @param {PoolSwapMetadata} metadata a provided information to create pool swap transaction * @param {string} metadata.from address of the owner of tokenFrom * @param {string} metadata.tokenFrom swap from token {symbol/id} * @param {number} metadata.amountFrom amount from tokenA * @param {string} metadata.to address of the owner of tokenTo * @param {string} metadata.tokenTo swap to token {symbol/id} * @param {number} [metadata.maxPrice] acceptable max price * @param {UTXO[]} [utxos = []] array for utxos to spend from. * @param {string} [utxos.txid] the transaction id. * @param {number} [utxos.vout] the output number. * @return {Promise} hex of performed transaction */ poolSwap(metadata: PoolSwapMetadata, utxos?: UTXO[]): Promise; /** * Creates a composite swap (swap between multiple poolpairs) transaction with given metadata. * * @param {PoolSwapMetadata} metadata a provided information to create pool swap transaction * @param {string} metadata.from address of the owner of tokenFrom * @param {string} metadata.tokenFrom swap from token {symbol/id} * @param {number} metadata.amountFrom amount from tokenFrom * @param {string} metadata.to address of the owner of tokenTo * @param {string} metadata.tokenTo swap to token {symbol/id} * @param {number} [metadata.maxPrice] acceptable max price * @param {UTXO[]} [utxos = []] array for utxos to spend from. * @param {string} utxos.txid the transaction id. * @param {number} utxos.vout the output number. * @return {Promise} hex of performed transaction */ compositeSwap(metadata: PoolSwapMetadata, utxos?: UTXO[]): Promise; /** * Create a test pool swap transaction to check pool swap's return result * * @param {PoolSwapMetadata} metadata a provided information to create test pool swap transaction * @param {string} metadata.from address of the owner of tokenFrom * @param {string} metadata.tokenFrom swap from token {symbol/id} * @param {number} metadata.amountFrom amount from tokenA * @param {string} metadata.to address of the owner of tokenTo * @param {string} metadata.tokenTo swap to token {symbol/id} * @param {number} [metadata.maxPrice] acceptable max price * @param {'auto' | 'direct' | 'composite' | Array} [path] swap path to use, defaults to auto. Provide array of poolpair IDs to set path manually. * @param {boolean} [verbose=false] return pool path used, defaults to false * @return {Promise} formatted as 'amount@token' swapped */ testPoolSwap(metadata: PoolSwapMetadata, path?: 'auto' | 'direct' | 'composite' | string[], verbose?: false): Promise; /** * Create a test pool swap transaction to check pool swap's return result * * @param {PoolSwapMetadata} metadata a provided information to create test pool swap transaction * @param {string} metadata.from address of the owner of tokenFrom * @param {string} metadata.tokenFrom swap from token {symbol/id} * @param {number} metadata.amountFrom amount from tokenA * @param {string} metadata.to address of the owner of tokenTo * @param {string} metadata.tokenTo swap to token {symbol/id} * @param {number} [metadata.maxPrice] acceptable max price * @param {'auto' | 'direct' | 'composite' | Array} [path] swap path to use, defaults to auto. Provide array of poolpair IDs to set path manually. * @param {boolean} [verbose=true] return pool path used, defaults to false * @return {Promise} formatted as 'amount@token' swapped */ testPoolSwap(metadata: PoolSwapMetadata, path?: 'auto' | 'direct' | 'composite' | string[], verbose?: true): Promise; /** * Remove pool liquidity transaction * * @param {string} address defi address for crediting tokens * @param {string} poolAccount pool liquidity account of owner * @param {PoolLiquidityOptions} [options] * @param {UTXO[]} [options.utxos] utxos array of specific UTXOs to spend * @param {string} [options.utxos.txid] * @param {number} [options.utxos.vout] * @return {Promise} */ removePoolLiquidity(address: string, poolAccount: string, options?: PoolLiquidityOptions): Promise; } export interface CreatePoolPairMetadata { tokenA: string; tokenB: string; commission: number; status: boolean; ownerAddress: string; customRewards?: string[]; pairSymbol?: string; } export interface UpdatePoolPairMetadata { pool: string; status: boolean; commission: number; ownerAddress: string; customRewards?: string[]; } export interface UTXO { txid: string; vout: number; } export interface PoolPairsResult { [id: string]: PoolPairInfo; } export interface PoolPairInfo { symbol: string; name: string; status: boolean; idTokenA: string; idTokenB: string; dexFeePctTokenA?: BigNumber; dexFeeInPctTokenA?: BigNumber; dexFeeOutPctTokenA?: BigNumber; dexFeePctTokenB?: BigNumber; dexFeeInPctTokenB?: BigNumber; dexFeeOutPctTokenB?: BigNumber; reserveA: BigNumber; reserveB: BigNumber; commission: BigNumber; totalLiquidity: BigNumber; 'reserveA/reserveB': BigNumber | string; 'reserveB/reserveA': BigNumber | string; tradeEnabled: boolean; ownerAddress: string; blockCommissionA: BigNumber; blockCommissionB: BigNumber; rewardPct: BigNumber; rewardLoanPct: BigNumber; customRewards?: string[]; creationTx: string; creationHeight: BigNumber; } export interface PoolSharesResult { [id: string]: PoolShareInfo; } export interface PoolShareInfo { poolID: string; owner: string; '%': BigNumber; amount: BigNumber; totalLiquidity: BigNumber; } export interface PoolPairPagination { start: number; including_start: boolean; limit: number; } export interface AddPoolLiquiditySource { [address: string]: string | string[]; } export interface PoolLiquidityOptions { utxos?: UTXO[]; } export interface PoolShareOptions { isMineOnly?: boolean; } export interface PoolSwapMetadata { from: string; tokenFrom: string; amountFrom: number; to: string; tokenTo: string; maxPrice?: number; } export interface TestPoolSwapVerboseResult { path: string; pools: string[]; amount: string; } //# sourceMappingURL=poolpair.d.ts.map