use odra::types::{Address, Balance, CallArgs};
use odra::{call_contract, prelude::string::String, OdraType};
#[derive(OdraType)]
pub struct ContractCall {
pub address: Address,
pub entry_point: String,
pub call_args: CallArgs,
pub amount: Option<Balance>,
}
impl ContractCall {
pub fn address(&self) -> &Address {
&self.address
}
pub fn entry_point(&self) -> &str {
self.entry_point.as_str()
}
pub fn call_args(&self) -> &CallArgs {
&self.call_args
}
pub fn amount(&self) -> Option<Balance> {
self.amount
}
pub fn call(&self) {
call_contract(
*self.address(),
self.entry_point(),
self.call_args(),
self.amount(),
)
}
}