call_contract

Macro call_contract 

Source
macro_rules! call_contract {
    ($interface:ident ( $contract_id:expr ) :: $func_name:ident ( $($func_args:expr),* ) $(:: payments ( $($payment_args:expr),+ ))?) => { ... };
    ( ($contract_id:expr) :: call ($func_name:expr, $params:expr ) $(:: payments ( $($payment_args:expr),+ ))?) => { ... };
}
Expand description

Call contract

ยงUsage

use we_cdk::*;

#[interface]
trait i_contract {
    fn method(integer: Integer, boolean: Boolean, binary: Binary, string: String);
}

#[action]
fn _constructor() {
    let contract: Binary = base58!("4WVhw3QdiinpE5QXDG7QfqLiLanM7ewBw4ChX4qyGjs2");
    let asset: Binary = base58!("DnK5Xfi2wXUJx9BjK9X6ZpFdTLdq2GtWH9pWrcxcmrhB");

    let integer: Integer = 42;
    let boolean: Boolean = true;
    let binary: Binary = &[0, 1];
    let string: String = "test";

    call_contract! {
        i_contract(contract)::method(integer, boolean, binary, string)
    };
}

The contract can also be called with raw data of type Binary

use we_cdk::*;

#[action]
fn call_with_binary_params(func_name: String, params: Binary) {
    let contract: Binary = base58!("4WVhw3QdiinpE5QXDG7QfqLiLanM7ewBw4ChX4qyGjs2");

    call_contract! {
        (contract)::call(func_name, params)
    };
}