pub use piecrust_uplink::*;
#[cfg(feature = "abi")]
pub fn hash(bytes: alloc::vec::Vec<u8>) -> dusk_bls12_381::BlsScalar {
use crate::Query;
host_query(Query::HASH, bytes)
}
#[cfg(feature = "abi")]
pub fn poseidon_hash(
scalars: alloc::vec::Vec<dusk_bls12_381::BlsScalar>,
) -> dusk_bls12_381::BlsScalar {
use crate::Query;
host_query(Query::POSEIDON_HASH, scalars)
}
#[cfg(feature = "abi")]
pub fn verify_proof(
verifier_data: alloc::vec::Vec<u8>,
proof: alloc::vec::Vec<u8>,
public_inputs: alloc::vec::Vec<crate::PublicInput>,
) -> bool {
use crate::Query;
host_query(Query::VERIFY_PROOF, (verifier_data, proof, public_inputs))
}
#[cfg(feature = "abi")]
pub fn verify_schnorr(
msg: dusk_bls12_381::BlsScalar,
pk: dusk_pki::PublicKey,
sig: dusk_schnorr::Signature,
) -> bool {
use crate::Query;
host_query(Query::VERIFY_SCHNORR, (msg, pk, sig))
}
#[cfg(feature = "abi")]
pub fn verify_bls(
msg: alloc::vec::Vec<u8>,
pk: dusk_bls12_381_sign::PublicKey,
sig: dusk_bls12_381_sign::Signature,
) -> bool {
use crate::Query;
host_query(Query::VERIFY_BLS, (msg, pk, sig))
}
#[cfg(feature = "abi")]
pub fn block_height() -> u64 {
use crate::Metadata;
meta_data(Metadata::BLOCK_HEIGHT).unwrap()
}
#[cfg(feature = "abi")]
pub fn payment_info(
contract: ContractId,
) -> Result<crate::PaymentInfo, ContractError> {
call(contract, "payment_info", &())
}