pub trait TransactionBuilder: Default + Sized {
type MetadataParams: Serialize + Clone;
type Metadata: DeserializeOwned + Sized + Send + Sync + 'static;
// Required methods
fn transfer(
&self,
address: &Address,
amount: u128
) -> Result<Self::MetadataParams>;
fn method_call(
&self,
contract: &str,
method: &str,
values: &[String],
amount: u128
) -> Result<Self::MetadataParams>;
fn deploy_contract(
&self,
contract_binary: Vec<u8>
) -> Result<Self::MetadataParams>;
fn create_and_sign(
&self,
config: &BlockchainConfig,
metadata_params: &Self::MetadataParams,
metdata: &Self::Metadata,
secret_key: &SecretKey
) -> Vec<u8>;
}