#run-time #substrate #smart-contracts #wasm

无 std inkpad-runtime

运行时 ink! 合同在任意地方!

显示软件包…

1 个不稳定版本

0.1.0 2022 年 1 月 29 日

#114#runtime


用于 3 软件包

MIT 许可证

74KB
1.5K SLoC

Inkpad 运行时

crate doc downloads LICENSE

ink! 合同的 wasm 执行器

本仓库提供

  • 将 *.contract 解析为 ABI 和 wasm 源代码
  • ink! 合同的 wasm 运行时
    • 少量接口

设计


- - - - - - - - -      - - - - -      - - - - - - -
| ink! contract | ---> | inkpad | ---> |  anywhere |
- - - - - - - - -      - - - - -      - - - - - - -

示例

use inkpad_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]);
}

许可证

MIT

依赖项

~6–10MB
~207K SLoC