///
import type Api from "./lib/api.js";
import type { SignatureOptions } from "./lib/crypto/crypto-interface.js";
import type CryptoInterface from "./lib/crypto/crypto-interface.js";
import Transaction from "./lib/transaction.js";
import type { JWKInterface } from "./lib/wallet.js";
import type { SerializedUploader } from "./lib/transaction-uploader.js";
import { TransactionUploader } from "./lib/transaction-uploader.js";
import type Chunks from "./chunks.js";
import type FallbackApi from "./lib/fallbackApi.js";
import type Merkle from "./lib/merkle.js";
import type { DeepHash } from "./lib/deepHash.js";
export type TransactionConfirmedData = {
block_indep_hash: string;
block_height: number;
number_of_confirmations: number;
};
export type TransactionStatusResponse = {
status: number;
confirmed: TransactionConfirmedData | null;
};
export default class Transactions {
private api;
private crypto;
private chunks;
protected merkle: Merkle;
protected deepHash: DeepHash;
constructor({ deps }: {
deps: {
crypto: CryptoInterface;
api: Api | FallbackApi;
chunks: Chunks;
merkle: Merkle;
deepHash: DeepHash;
};
});
getTransactionAnchor(): Promise;
getPrice(byteSize: number, targetAddress?: string): Promise;
get(id: string): Promise;
fromRaw(attributes: object): Transaction;
getStatus(id: string): Promise;
getData(id: string): Promise;
getDataStream(id: string): Promise>;
sign(transaction: Transaction, jwk?: JWKInterface | "use_wallet", // "use_wallet" for backwards compatibility only
options?: SignatureOptions): Promise;
verify(transaction: Transaction): Promise;
post(transaction: Transaction | Buffer | string | object): Promise<{
status: number;
statusText: string;
data: any;
}>;
/**
* Gets an uploader than can be used to upload a transaction chunk by chunk, giving progress
* and the ability to resume.
*
* Usage example:
*
* ```
* const uploader = arweave.transactions.getUploader(transaction);
* while (!uploader.isComplete) {
* await uploader.uploadChunk();
* console.log(`${uploader.pctComplete}%`);
* }
* ```
*
* @param upload a Transaction object, a previously save progress object, or a transaction id.
* @param data the data of the transaction. Required when resuming an upload.
*/
getUploader(upload: Transaction | SerializedUploader | string, data?: Uint8Array | ArrayBuffer): Promise;
/**
* Async generator version of uploader
*
* Usage example:
*
* ```
* for await (const uploader of arweave.transactions.upload(tx)) {
* console.log(`${uploader.pctComplete}%`);
* }
* ```
*
* @param upload a Transaction object, a previously save uploader, or a transaction id.
* @param data the data of the transaction. Required when resuming an upload.
*/
upload(upload: Transaction | SerializedUploader | string, data: Uint8Array): AsyncGenerator;
}