[][src]Crate contract_metadata

Type definitions for creating and serializing metadata for smart contracts targeting Substrate's contracts pallet.

Example


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 source = Source::new([0u8; 32], language, compiler);
let contract = Contract::builder()
    .name("incrementer".to_string())
    .version(Version::new(2, 1, 0))
    .authors(vec!["Parity Technologies <admin@parity.io>".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();

let metadata = ContractMetadata::new(source, contract, Some(user), abi_json);

// serialize to json
let json = serde_json::to_value(&metadata).unwrap();

Structs

Contract

Metadata about a smart contract.

ContractBuilder

Builder for contract metadata

ContractMetadata

Smart contract metadata.

Source
SourceCompiler

A compiler used to compile a smart contract.

SourceLanguage

The language and version in which a smart contract is written.

User

Additional user defined metadata, can be any valid json.

Enums

Compiler

Compilers used to compile a smart contract.

Language

The language in which the smart contract is written.