pub fn call_function(
        &mut self,
        caller_address: H160,
        contract_address: H160,
        eth_amount: U256,
        method_sig: &str,
        method_args: &[u8],
    ) -> (ExitReason, Vec<u8>) {
        self.transact(|exec| {
            let mut data = vec![];
            data.extend(derive_method_selector(method_sig));
            data.extend(method_args);

            let (exit_reason, buffer) = exec.transact_call(
                caller_address,
                contract_address,
                eth_amount,
                data,
                u64::MAX,
                vec![],
            );

            (exit_reason, buffer)
        })
    }
/// Call a contract method with the given signature.
/// The signature is represented by a string consisting of the name of the method and
/// a list of parameter types (e.g. `foo(uint256,uint256)`).
Call a contract method with the given signature.
The signature is represented by a string consisting of the name of the method and
a list of parameter types `).
Call a contract method with the given signature . The signature is represented by a string consisting of the name of the method and a list of parameter types ` ) .
pub fn call_function(
        &mut self,
        caller_address: H160,
        contract_address: H160,
        eth_amount: U256,
        method_sig: &str,
        method_args: &[u8],
    ) -> (ExitReason, Vec<u8>) {
        self.transact(|exec| {
            let mut data = vec![];
            data.extend(derive_method_selector(method_sig));
            data.extend(method_args);
            let (exit_reason, buffer) = exec.transact_call(
                caller_address,
                contract_address,
                eth_amount,
                data,
                u64::MAX,
                vec![],
            );
            (exit_reason, buffer)
        })
    }
pub fn call_function ( & mut self , caller_address : H160 , contract_address : H160 , eth_amount : U256 , method_sig : & str , method_args : & [ u8 ] , ) -> ( ExitReason , Vec < u8 > ) { self . transact ( | exec | { let mut data = vec ! [ ] ; data . extend ( derive_method_selector ( method_sig ) ) ; data . extend ( method_args ) ; let ( exit_reason , buffer ) = exec . transact_call ( caller_address , contract_address , eth_amount , data , u64 :: MAX , vec ! [ ] , ) ; ( exit_reason , buffer ) } ) }
Call a contract method with the given signature.
Call a contract method with the given signature .
&mut self
caller_address
H160
contract_address
H160
eth_amount
U256
method_sig
&str
method_args
&[u8]