crate::ix!();
pub const BITCOINCONSENSUS_API_VER: usize = 1;
pub enum BitcoinConsensusError
{
Ok = 0,
Txindex,
TxSizeMismatch,
TxDeserialize,
AmountRequired,
InvalidFlags,
}
bitflags! {
pub struct BitcoinConsensusScriptVerificationFlags: u32 {
const None = 0b0000000000000000;
const P2sh = 0b0000000000000001;
const Dersig = 0b0000000000000100;
const Nulldummy = 0b0000000000010000;
const Checklocktimeverify = 0b0000001000000000;
const Checksequenceverify = 0b0000010000000000;
const Witness = 0b0000100000000000;
const ALL =
Self::P2sh.bits
| Self::Dersig.bits
| Self::Nulldummy.bits
| Self::Checklocktimeverify.bits
| Self::Checksequenceverify.bits
| Self::Witness.bits;
}
}
pub struct TxInputStream {
version: i32,
data: *const u8,
remaining: usize,
}
impl<T> Shr<T> for TxInputStream {
type Output = TxInputStream;
#[inline] fn shr(self, rhs: T) -> Self::Output {
todo!();
}
}
impl TxInputStream {
pub fn new(
n_version_in: i32,
tx_to: *const u8,
tx_to_len: usize) -> Self {
todo!();
}
pub fn read(&mut self,
pch: *mut u8,
n_size: usize) {
todo!();
}
pub fn get_version(&self) -> i32 {
todo!();
}
}
#[inline] pub fn set_error(
ret: *mut BitcoinConsensusError,
serror: BitcoinConsensusError) -> i32 {
todo!();
}
pub struct ECCryptoClosure
{
handle: ECCVerifyHandle,
}
lazy_static!{
}
pub fn verify_flags(flags: u32) -> bool {
todo!();
}
pub fn verify_script(
script_pub_key: *const u8,
script_pub_key_len: u32,
amount: Amount,
tx_to: *const u8,
tx_to_len: u32,
n_in: u32,
flags: u32,
err: *mut BitcoinConsensusError) -> i32 {
todo!();
}
pub fn bitcoinconsensus_verify_script_with_amount(
script_pub_key: *const u8,
script_pub_key_len: u32,
amount: i64,
tx_to: *const u8,
tx_to_len: u32,
n_in: u32,
flags: u32,
err: *mut BitcoinConsensusError) -> i32 {
todo!();
}
pub fn bitcoinconsensus_verify_script(
script_pub_key: *const u8,
script_pub_key_len: u32,
tx_to: *const u8,
tx_to_len: u32,
n_in: u32,
flags: u32,
err: *mut BitcoinConsensusError) -> i32 {
todo!();
}
pub fn bitcoinconsensus_version() -> u32 {
todo!();
}