import { BehaviorSubject } from 'rxjs'; import RadixSignatureProvider from '../identity/RadixSignatureProvider'; import RadixAccount from '../account/RadixAccount'; import { RadixTokenClass } from '../atom_model'; export default class RadixTransactionBuilder { private type; private payload; private applicationId; private particles; private action; private operation; private recipients; private encrypted; constructor(); /** * Creates transfer atom * @param from Sender account, needs to have RadixAccountTransferSystem * @param to Receiver account * @param token The TokenClass or an ISO string name * @param decimalQuantity * @param [message] Optional reference message */ static createTransferAtom(from: RadixAccount, to: RadixAccount, token: RadixTokenClass | string, decimalQuantity: number, message?: string): RadixTransactionBuilder; /** * Creates transfer atom * @param from Sender account, needs to have RadixAccountTransferSystem * @param to Receiver account * @param token The TokenClass or an ISO string name * @param decimalQuantity * @param [message] Optional reference message */ createTransferAtom(from: RadixAccount, to: RadixAccount, token: RadixTokenClass | string, decimalQuantity: number, message?: string): this; /** * Creates payload atom * @param from * @param to * @param applicationId * @param payload * @param [encrypted] Sets if the message should be encrypted using ECIES */ static createPayloadAtom(readers: RadixAccount[], applicationId: string, payload: any, encrypted?: boolean): RadixTransactionBuilder; /** * Creates payload atom * @param from * @param to * @param applicationId * @param payload * @param [encrypted] Sets if the message should be encrypted using ECIES */ createPayloadAtom(readers: RadixAccount[], applicationId: string, payload: any, encrypted?: boolean): this; /** * Creates radix messaging application payload atom * @param from * @param to * @param message */ static createRadixMessageAtom(from: RadixAccount, to: RadixAccount, message: string): RadixTransactionBuilder; /** * Creates radix messaging application payload atom * @param from * @param to * @param message */ createRadixMessageAtom(from: RadixAccount, to: RadixAccount, message: string): this; /** * Builds the atom, finds a node to submit to, adds network fee, signs the atom and submits * @param signer * @returns a BehaviourSubject that streams the atom status updates */ signAndSubmit(signer: RadixSignatureProvider): BehaviorSubject; }