fvm-macros 1.0.0

provide the macros for user to write contract more convenient
Documentation

Provides the macros needed to write fvm contracts

Basic Usage

Macros can be used in contract for simplify contract preparation process, like this:

use fvm_macros::contract;
use fvm_macros::storage;
use fvm_std::collections::hyper_map::HyperMap;

#[storage]
pub struct SetHash {
    map: HyperMap<String, String>,
}

#[contract]
impl SetHash {
    fn new() -> Self {
        Self { map: HyperMap::new() }
    }

    pub fn set_hash(&mut self, key: String, value: String) {
        self.map.insert(key, value);
    }

    pub fn get_hash(&mut self, key: String) -> &String {
        self.map.get(&key).unwrap()
    }
}

Contract Mode

Now write contract have two mode:

  • normal mode

Contract with normal mode limited data storage format, and user can write contract more convenient. User can use all macros except advance_contract.

  • advance mode

Contract with advance mode not limited data storage format, and it must open advance feature with fvm-std and 'fvm-macros' lib to use this mode. The execute speed of contract in this mode would be fast then the contract in normal mode.