use miden_client::Client;
use miden_client::keystore::FilesystemKeyStore;
mod account;
mod builder;
mod client;
mod error;
mod execution;
mod export;
mod guardian_endpoint;
mod keystore;
mod payload;
mod procedures;
mod proposal;
mod transaction;
mod utils;
pub(crate) type MidenSdkClient = Client<FilesystemKeyStore>;
pub use builder::MultisigClientBuilder;
pub use client::{
ConsumableNote, MultisigClient, NoteFilter, ProposalResult, StateVerificationResult,
};
pub use procedures::{ProcedureName, ProcedureThreshold};
pub use account::MultisigAccount;
pub use keystore::{
EcdsaGuardianKeyStore,
FalconKeyStore,
GuardianKeyStore,
KeyManager,
commitment_from_hex,
ensure_hex_prefix,
proposal_public_key_hex,
strip_hex_prefix,
validate_commitment_hex,
word_from_hex,
};
pub use payload::{ProposalMetadataPayload, ProposalPayload};
pub use proposal::{Proposal, ProposalMetadata, ProposalStatus, TransactionType};
pub use transaction::ProposalBuilder;
pub use export::{EXPORT_VERSION, ExportedMetadata, ExportedProposal, ExportedSignature};
pub use error::{MultisigError, Result};
pub use guardian_shared::SignatureScheme;
pub use miden_client::rpc::Endpoint;
pub use miden_protocol::Word;
pub use miden_protocol::account::AccountId;
pub use miden_protocol::asset::Asset;
pub use miden_protocol::crypto::dsa::ecdsa_k256_keccak::SecretKey as EcdsaSecretKey;
pub use miden_protocol::crypto::dsa::falcon512_poseidon2::SecretKey;
pub use miden_protocol::note::NoteId;