import MoneroBlock from "../../daemon/model/MoneroBlock";
import MoneroOutput from "../../daemon/model/MoneroOutput";
import MoneroIncomingTransfer from "./MoneroIncomingTransfer";
import MoneroOutgoingTransfer from "./MoneroOutgoingTransfer";
import MoneroOutputQuery from "./MoneroOutputQuery";
import MoneroTransferQuery from "./MoneroTransferQuery";
import MoneroTxSet from "./MoneroTxSet";
import MoneroTxWallet from "./MoneroTxWallet";
/**
*
Configuration to query transactions.
*/
export default class MoneroTxQuery extends MoneroTxWallet {
hash: string;
hashes: string[];
height: number;
minHeight: number;
maxHeight: number;
includeOutputs: boolean;
isConfirmed: boolean;
inTxPool: boolean;
relay: boolean;
isRelayed: boolean;
isFailed: boolean;
isMinerTx: boolean;
isLocked: boolean;
isIncoming: boolean;
isOutgoing: boolean;
paymentId: string;
paymentIds: string[];
hasPaymentId: boolean;
transferQuery: Partial;
inputQuery: Partial;
outputQuery: Partial;
/**
* Construct the transaction query.
*
* Example:
*
*
* // get transactions with unlocked incoming transfers to account 0
* let txs = await wallet.getTxs({
* isLocked: false,
* transferQuery: {
* isIncoming: true,
* accountIndex: 0
* }
* });
*
*
* All configuration is optional. All transactions are returned except those that don't meet criteria defined in this query.
*
* @param {MoneroTxQuery} [query] - tx query configuration
* @param {string} [query.hash] - get a tx with this hash
* @param {string[]} [query.txHashes] - get txs with these hashes
* @param {number} [query.height] - get txs with this height
* @param {number} [query.minHeight] - get txs with height greater than or equal to this height
* @param {number} [query.maxHeight] - get txs with height less than or equal to this height
* @param {boolean} [query.isConfirmed] - get confirmed or unconfirmed txs
* @param {boolean} [query.inTxPool] - get txs in or out of the tx pool
* @param {boolean} [query.relay] - get txs with the same relay status
* @param {boolean} [query.isRelayed] - get relayed or non-relayed txs
* @param {boolean} [query.isFailed] - get failed or non-failed txs
* @param {boolean} [query.isMinerTx] - get miner or non-miner txs
* @param {boolean} [query.isLocked] - get locked or unlocked txs
* @param {boolean} [query.isIncoming] - get txs with or without incoming transfers
* @param {boolean} [query.isOutgoing] - get txs with or without outgoing transfers
* @param {string} [query.paymentId] - get txs with this payment ID
* @param {string} [query.paymentIds] - get txs with a payment ID among these payment IDs
* @param {boolean} [query.hasPaymentId] - get txs with or without payment IDs
* @param {Partial} [query.transferQuery] - get txs with transfers matching this transfer query
* @param {Partial} [query.inputQuery] - get txs with inputs matching this input query
* @param {Partial} [query.outputQuery] - get txs with outputs matching this output query
*/
constructor(query?: Partial);
copy(): MoneroTxQuery;
toJson(): any;
getIsIncoming(): boolean;
setIsIncoming(isIncoming: boolean): MoneroTxQuery;
getIsOutgoing(): boolean;
setIsOutgoing(isOutgoing: boolean): MoneroTxQuery;
getHashes(): string[];
setHashes(hashes: string[]): MoneroTxQuery;
setHash(hash: string): MoneroTxQuery;
getHasPaymentId(): boolean;
setHasPaymentId(hasPaymentId: boolean): MoneroTxQuery;
getPaymentIds(): string[];
setPaymentIds(paymentIds: string[]): MoneroTxQuery;
setPaymentId(paymentId: string): MoneroTxQuery;
getHeight(): number;
setHeight(height: number): MoneroTxQuery;
getMinHeight(): number;
setMinHeight(minHeight: number): MoneroTxQuery;
getMaxHeight(): number;
setMaxHeight(maxHeight: number): MoneroTxQuery;
getIncludeOutputs(): boolean;
setIncludeOutputs(includeOutputs: boolean): MoneroTxQuery;
getTransferQuery(): MoneroTransferQuery;
setTransferQuery(transferQuery: MoneroTransferQuery): MoneroTxQuery;
getInputQuery(): MoneroOutputQuery;
setInputQuery(inputQuery: MoneroOutputQuery): MoneroTxQuery;
getOutputQuery(): MoneroOutputQuery;
setOutputQuery(outputQuery: MoneroOutputQuery): MoneroTxQuery;
meetsCriteria(tx: MoneroTxWallet, queryChildren?: boolean): boolean;
setIncomingTransfers(incomingTransfers: MoneroIncomingTransfer[]): MoneroTxQuery;
setOutgoingTransfer(outgoingTransfer: MoneroOutgoingTransfer): MoneroTxQuery;
setOutputs(outputs: MoneroOutput[]): MoneroTxQuery;
setNote(note: string): MoneroTxQuery;
setIsLocked(isLocked: boolean): MoneroTxQuery;
setBlock(block: MoneroBlock): MoneroTxQuery;
setVersion(version: number): MoneroTxQuery;
setIsMinerTx(isMinerTx: boolean): MoneroTxQuery;
setFee(fee: bigint): MoneroTxQuery;
setRingSize(ringSize: number): MoneroTxQuery;
setRelay(relay: boolean): MoneroTxQuery;
setIsRelayed(isRelayed: boolean): MoneroTxQuery;
setIsConfirmed(isConfirmed: boolean): MoneroTxQuery;
setInTxPool(inTxPool: boolean): MoneroTxQuery;
setNumConfirmations(numConfirmations: number): MoneroTxQuery;
setUnlockTime(unlockTime: bigint): MoneroTxQuery;
setLastRelayedTimestamp(lastRelayedTimestamp: number): MoneroTxQuery;
setReceivedTimestamp(receivedTimestamp: number): MoneroTxQuery;
setIsDoubleSpendSeen(isDoubleSpendSeen: boolean): MoneroTxQuery;
setKey(key: string): MoneroTxQuery;
setFullHex(hex: string): MoneroTxQuery;
setPrunedHex(prunedHex: string): MoneroTxQuery;
setPrunableHex(prunableHex: string): MoneroTxQuery;
setPrunableHash(prunableHash: string): MoneroTxQuery;
setSize(size: number): MoneroTxQuery;
setWeight(weight: number): MoneroTxQuery;
setInputs(inputs: MoneroOutput[]): MoneroTxQuery;
setOutputIndices(outputIndices: number[]): MoneroTxQuery;
setMetadata(metadata: string): MoneroTxQuery;
setTxSet(txSet: MoneroTxSet): MoneroTxQuery;
setExtra(extra: Uint8Array): MoneroTxQuery;
setRctSignatures(rctSignatures: any): MoneroTxQuery;
setRctSigPrunable(rctSigPrunable: any): MoneroTxQuery;
setIsKeptByBlock(isKeptByBlock: boolean): MoneroTxQuery;
setIsFailed(isFailed: boolean): MoneroTxQuery;
setLastFailedHeight(lastFailedHeight: number): MoneroTxQuery;
setLastFailedHash(lastFailedId: string): MoneroTxQuery;
setMaxUsedBlockHeight(maxUsedBlockHeight: number): MoneroTxQuery;
setMaxUsedBlockHash(maxUsedBlockId: string): MoneroTxQuery;
setSignatures(signatures: string[]): MoneroTxQuery;
}