[−][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. |