import { Ripemd160, Secp256k1, Sha1, Sha256 } from '../../../crypto/crypto'; import { InstructionSet } from '../../virtual-machine'; import { AuthenticationInstruction } from '../instruction-sets-types'; import { OpcodesBCH } from './bch-opcodes'; import { AuthenticationProgramBCH, AuthenticationProgramStateBCH } from './bch-types'; export { OpcodesBCH }; export declare const isPayToScriptHash: (verificationInstructions: readonly AuthenticationInstruction[]) => boolean; /** * Test a stack item for the SegWit Recovery Rules activated in `BCH_2019_05`. * * @param bytecode - the stack item to test */ export declare const isWitnessProgram: (bytecode: Uint8Array) => boolean; /** * This library's supported versions of the BCH virtual machine. "Strict" * versions (A.K.A. `isStandard` from the C++ implementations) enable additional * validation which is commonly used on the P2P network before relaying * transactions. Transactions which fail these rules are often called * "non-standard" – the transactions can technically be included by miners in * valid blocks, but most network nodes will refuse to relay them. */ export declare enum InstructionSetBCH { BCH_2019_05 = "BCH_2019_05", BCH_2019_05_STRICT = "BCH_2019_05_STRICT", BCH_2019_11_SPEC = "BCH_2019_11", BCH_2019_11_STRICT_SPEC = "BCH_2019_11_STRICT" } export declare const instructionSetBCHCurrentStrict = InstructionSetBCH.BCH_2019_05_STRICT; export declare const getFlagsForInstructionSetBCH: (instructionSet: InstructionSetBCH) => { disallowUpgradableNops: boolean; requireBugValueZero: boolean; requireMinimalEncoding: boolean; requireNullSignatureFailures: boolean; }; /** * Initialize a new instruction set for the BCH virtual machine. * * @param flags - an object configuring the flags for this vm (see * `getFlagsForInstructionSetBCH`) * @param sha1 - a Sha1 implementation * @param sha256 - a Sha256 implementation * @param ripemd160 - a Ripemd160 implementation * @param secp256k1 - a Secp256k1 implementation */ export declare const createInstructionSetBCH: ({ flags, ripemd160, secp256k1, sha1, sha256, }: { flags: { readonly disallowUpgradableNops: boolean; readonly requireBugValueZero: boolean; readonly requireMinimalEncoding: boolean; readonly requireNullSignatureFailures: boolean; }; sha1: { hash: Sha1['hash']; }; sha256: { hash: Sha256['hash']; }; ripemd160: { hash: Ripemd160['hash']; }; secp256k1: { verifySignatureSchnorr: Secp256k1['verifySignatureSchnorr']; verifySignatureDERLowS: Secp256k1['verifySignatureDERLowS']; }; }) => InstructionSet; //# sourceMappingURL=bch-instruction-sets.d.ts.map