import { Address, Call } from '../../../interfaces/runtime'; import { ExtrinsicPayloadValue, IExtrinsicImpl, IKeyringPair, SignatureOptions } from '../../../types'; import { ExtrinsicOptions } from '../types'; import Struct from '../../../codec/Struct'; import ExtrinsicSignatureV3 from './ExtrinsicSignature'; export interface ExtrinsicValueV3 { method?: Call; signature?: ExtrinsicSignatureV3; } /** * @name ExtrinsicV3 * @description * The third generation of compact extrinsics */ export default class ExtrinsicV3 extends Struct implements IExtrinsicImpl { constructor(value?: Uint8Array | ExtrinsicValueV3 | Call, { isSigned }?: Partial); static decodeExtrinsic(value?: Call | Uint8Array | ExtrinsicValueV3, isSigned?: boolean): ExtrinsicValueV3; /** * @description The length of the value when encoded as a Uint8Array */ readonly encodedLength: number; /** * @description The [[Call]] this extrinsic wraps */ readonly method: Call; /** * @description The [[ExtrinsicSignatureV3]] */ readonly signature: ExtrinsicSignatureV3; /** * @description The version for the signature */ readonly version: number; /** * @description Add an [[ExtrinsicSignatureV3]] to the extrinsic (already generated) */ addSignature(signer: Address | Uint8Array | string, signature: Uint8Array | string, payload: ExtrinsicPayloadValue | Uint8Array | string): ExtrinsicV3; /** * @description Sign the extrinsic with a specific keypair */ sign(account: IKeyringPair, options: SignatureOptions): ExtrinsicV3; }