import Api from "./lib/api"; import CryptoInterface, { SignatureOptions } from "./lib/crypto/crypto-interface"; import Transaction from "./lib/transaction"; import { JWKInterface } from "./lib/wallet"; import { TransactionUploader, SerializedUploader } from "./lib/transaction-uploader"; import Chunks from "./chunks"; import "arconnect"; export interface TransactionConfirmedData { block_indep_hash: string; block_height: number; number_of_confirmations: number; } export interface TransactionStatusResponse { status: number; confirmed: TransactionConfirmedData | null; } export default class Transactions { private api; private crypto; private chunks; constructor(api: Api, crypto: CryptoInterface, chunks: Chunks); getTransactionAnchor(): Promise; getPrice(byteSize: number, targetAddress?: string): Promise; get(id: string): Promise; fromRaw(attributes: object): Transaction; /** @deprecated use GQL https://gql-guide.arweave.net */ search(tagName: string, tagValue: string): Promise; getStatus(id: string): Promise; getData(id: string, options?: { decode?: boolean; string?: boolean; }): 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; }