Crate contract_build

source ·
Expand description

§contract-build

A crate for building ink! smart contracts. Used by cargo-contract.

§Usage

use contract_build::{
    ManifestPath,
    Verbosity,
    BuildArtifacts,
    BuildMode,
    Features,
    Network,
    OptimizationPasses,
    OutputType,
    UnstableFlags,
    Target,
    ImageVariant,
};

let manifest_path = ManifestPath::new("my-contract/Cargo.toml").unwrap();

let args = contract_build::ExecuteArgs {
    manifest_path,
    verbosity: Verbosity::Default,
    build_mode: BuildMode::Release,
    features: Features::default(),
    network: Network::Online,
    build_artifact: BuildArtifacts::All,
    unstable_flags: UnstableFlags::default(),
    optimization_passes: Some(OptimizationPasses::default()),
    keep_debug_symbols: false,
    extra_lints: false,
    output_type: OutputType::Json,
    skip_wasm_validation: false,
    target: Target::Wasm,
    max_memory_pages: 16,
    image: ImageVariant::Default,
};

contract_build::execute(args);

Re-exports§

Modules§

Macros§

  • Pretty print name value, name right aligned with colour.
  • Prints to stderr if verbosity.is_verbose() is true. Like cargo, we use stderr for verbose output.

Structs§

  • Result of the build process.
  • Relevant metadata obtained from Cargo.toml.
  • Arguments to use when executing build or check commands.
  • Define the standard cargo features args to be passed through.
  • Create, amend and save a copy of the specified Cargo.toml.
  • Path to a Cargo.toml file
  • Result of the optimization process.
  • Subset of cargo profile settings to configure defaults for building contracts.
  • Make a copy of a contract project manifest, allow modifications to be made to it, rewrite the paths to point to the original project files, then write to a temporary directory.

Enums§

Constants§

Functions§

  • Checks whether the supplied ink_version already contains the debug feature.
  • Returns the blake2 hash of the code slice.
  • Launches the docker container to execute verifiable build.
  • Executes build of the smart contract which produces a Wasm binary that is ready for deploying.
  • Creates a new contract project from the template.