1 stable release
1.0.0 | Feb 7, 2023 |
---|
#15 in #fvm
23 downloads per month
160KB
3K
SLoC
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.
Dependencies
~7.5MB
~130K SLoC