41个版本 (18个稳定版)
4.1.1 | 2024年4月17日 |
---|---|
4.0.2 | 2024年3月14日 |
4.0.0-rc.1 | 2023年12月1日 |
4.0.0-rc | 2023年11月30日 |
0.1.0 | 2020年10月13日 |
#4 in #parity-wasm
4,372 每月下载量
在 26 个crate中使用 (11个直接使用)
41KB
925 代码行
合约元数据
定义了针对 substrate 的智能合约扩展元数据的类型。
目前是 cargo-contract
的一部分,这是用于编写 ink! 智能合约的构建工具。
lib.rs
:
为Substrate的合约组件创建和序列化元数据的类型定义。
示例
let language = SourceLanguage::new(Language::Ink, Version::new(2, 1, 0));
let compiler =
SourceCompiler::new(Compiler::RustC, Version::parse("1.46.0-nightly").unwrap());
let wasm = SourceWasm::new(vec![0u8]);
// Optional information about how the contract was build
let build_info: Map<String, Value> = Map::new();
let source = Source::new(
Some(wasm),
CodeHash([0u8; 32]),
language,
compiler,
Some(build_info),
);
let contract = Contract::builder()
.name("incrementer".to_string())
.version(Version::new(2, 1, 0))
.authors(vec!["Parity Technologies <[email protected]>".to_string()])
.description("increment a value".to_string())
.documentation(Url::parse("http://docs.rs/").unwrap())
.repository(Url::parse("http://github.com/paritytech/ink/").unwrap())
.homepage(Url::parse("http://example.com/").unwrap())
.license("Apache-2.0".to_string())
.build()
.unwrap();
// user defined raw json
let user_json: Map<String, Value> = Map::new();
let user = User::new(user_json);
// contract abi raw json generated by contract compilation
let abi_json: Map<String, Value> = Map::new();
// image name and tag used for the verifiable build.
let image = String::from("paritytech/contracts-verifiable:3.0.1");
let metadata =
ContractMetadata::new(source, contract, Some(image), Some(user), abi_json);
// serialize to json
let json = serde_json::to_value(&metadata).unwrap();
依赖关系
~2–3MB
~86K SLoC