ceres-runtime

Crates.ioceres-runtime
lib.rsceres-runtime
version0.2.0
sourcesrc
created_at2021-06-14 07:49:42.145456
updated_at2021-08-02 09:49:06.221231
descriptionRuntime ink! contract anywhere!
homepage
repositoryhttps://github.com/patractlabs/ceres
max_upload_size
id409842
size25,558
(clearloop)

documentation

README

Ceres Runtime

crate doc downloads LICENSE

The wasm executor of ink! contract

This repo provides:

  • Parsing *.contract to ABI and wasm source
  • A wasm runtime for executing ink! contract
    • Few interfaces

Design


- - - - - - - - -      - - - - -      - - - - - - -
| ink! contract | ---> | ceres | ---> |  anywhere |
- - - - - - - - -      - - - - -      - - - - - - -

Example

use ceres_runtime::Runtime;

#[test]
fn test_flipper() {
    let mut rt = Runtime::from_contract(include_bytes!("../flipper.contract"))
        .expect("Create runtime failed");

    rt.deploy("default", &[]).expect("Deploy failed");
    assert_eq!(&rt.call("get", &[]).expect("Call contract failed"), &[0]);

    rt.deploy("new", &["true"]).expect("Deploy failed");
    assert_eq!(&rt.call("get", &[]).expect("Call contract failed"), &[1]);

    rt.call("flip", &[]).expect("Call contract failed");
    assert_eq!(&rt.call("get", &[]).expect("Call contract failed"), &[0]);
}

LICENSE

MIT

Commit count: 86

cargo fmt