#![doc(
html_logo_url = "https://use.ink/img/crate-docs/logo.png",
html_favicon_url = "https://use.ink/crate-docs/favicon.png"
)]
mod backend;
mod builders;
mod client_utils;
mod contract_build;
mod contract_results;
#[cfg(feature = "drink")]
mod drink_client;
mod error;
pub mod events;
mod node_proc;
mod subxt_client;
mod xts;
pub use crate::contract_build::{
build_root_and_additional_contracts,
build_root_and_contract_dependencies,
};
pub use backend::{
ChainBackend,
ContractsBackend,
E2EBackend,
};
pub use contract_results::{
CallDryRunResult,
CallResult,
InstantiationResult,
UploadResult,
};
pub use ink_e2e_macro::test;
pub use node_proc::{
TestNodeProcess,
TestNodeProcessBuilder,
};
pub use sp_core::H256;
pub use sp_keyring::AccountKeyring;
pub use subxt;
pub use subxt_client::{
CallBuilderFinal,
Client,
Error,
};
pub use subxt_signer::sr25519::{
self,
dev::*,
Keypair,
};
pub use tokio;
pub use tracing_subscriber;
#[cfg(feature = "drink")]
pub use {
drink::runtime::MinimalRuntime,
drink_client::Client as DrinkClient,
};
use pallet_contracts_primitives::{
ContractExecResult,
ContractInstantiateResult,
};
use std::{
cell::RefCell,
sync::Once,
};
use xts::ContractsApi;
pub use subxt::PolkadotConfig;
pub static INIT: Once = Once::new();
thread_local! {
pub static LOG_PREFIX: RefCell<String> = RefCell::new(String::from("no prefix set"));
}
pub fn log_prefix() -> String {
LOG_PREFIX.with(|log_prefix| log_prefix.borrow().clone())
}
pub fn log_info(msg: &str) {
tracing::info!("[{}] {}", log_prefix(), msg);
}
pub fn log_error(msg: &str) {
tracing::error!("[{}] {}", log_prefix(), msg);
}
pub fn account_id(account: AccountKeyring) -> ink_primitives::AccountId {
ink_primitives::AccountId::try_from(account.to_account_id().as_ref())
.expect("account keyring has a valid account id")
}
#[macro_export]
macro_rules! build {
($($arg:tt)*) => (
ink_e2e::smart_bench_macro::contract!($($arg)*)
);
}