mod error;
mod op_codes;
mod script;
mod script_context;
mod serde;
mod stack;
pub use error::ScriptError;
pub use op_codes::{
HashValue,
Message,
Opcode,
OpcodeVersion,
ScalarValue,
slice_to_boxed_hash,
slice_to_boxed_message,
slice_to_hash,
};
pub use script::{ScriptOpcodes, TariScript};
pub use script_context::ScriptContext;
pub use stack::{ExecutionStack, StackItem};
use tari_crypto::{
compressed_key::CompressedKey,
hash_domain,
ristretto::{RistrettoPublicKey, RistrettoSecretKey},
signatures::{CompressedSchnorrSignature, SchnorrSignature},
};
hash_domain!(CheckSigHashDomain, "com.tari.script.check_sig", 1);
pub type CheckSigSchnorrSignature = SchnorrSignature<RistrettoPublicKey, RistrettoSecretKey, CheckSigHashDomain>;
pub type CompressedCheckSigSchnorrSignature =
CompressedSchnorrSignature<RistrettoPublicKey, RistrettoSecretKey, CheckSigHashDomain>;
pub fn push_pubkey_script(destination_public_key: &CompressedKey<RistrettoPublicKey>) -> TariScript {
script!(PushPubKey(Box::new(destination_public_key.clone()))).expect("single opcode will not fail")
}