Crate contract_build

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,
    MetadataSpec,
    Network,
    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(),
    keep_debug_symbols: false,
    extra_lints: false,
    output_type: OutputType::Json,
    image: ImageVariant::Default,
    metadata_spec: Some(MetadataSpec::Ink),
    target_dir: None,
};

contract_build::execute(args);

Re-exports§

pub use self::metadata::InkMetadataArtifacts as MetadataResult;
pub use self::metadata::BuildInfo;
pub use self::metadata::InkMetadataArtifacts;
pub use self::metadata::MetadataArtifacts;
pub use self::util::DEFAULT_KEY_COL_WIDTH;

Modules§

metadata
util

Macros§

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

Structs§

BuildResult
Result of the build process.
CrateMetadata
Relevant metadata obtained from Cargo.toml.
ExecuteArgs
Arguments to use when executing build or check commands.
Features
Define the standard cargo features args to be passed through.
LinkerSizeResult
Result of linking an ELF with PolkaVM.
Manifest
Create, amend and save a copy of the specified Cargo.toml.
ManifestPath
Path to a Cargo.toml file
Profile
Subset of cargo profile settings to configure defaults for building contracts.
SolidityMetadataArtifacts
Artifacts resulting from Solidity compatible metadata generation.
Target
UnstableFlags
UnstableOptions
VerbosityFlags
Workspace
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§

Abi
ABI spec for the ink! project.
BuildArtifacts
Describes which artifacts to generate
BuildMode
The mode to build the contract in.
ImageVariant
The image to be used.
Lto
The link-time-optimization setting.
MetadataSpec
Specification to use for contract metadata.
Network
Use network connection to build contracts and generate metadata or use cached dependencies only.
OptLevel
The opt-level setting
OutputType
The type of output to display at the end of a build.
PanicStrategy
The panic setting.
Verbosity
Denotes if output should be printed to stdout.

Functions§

assert_debug_mode_supported
Checks whether the supplied ink_version already contains the debug feature.
code_hash
Returns the H256 hash of the code slice.
docker_build
Launches the docker container to execute verifiable build.
execute
Executes build of the smart contract which produces a PolkaVM binary that is ready for deploying.
lint
Run linting that involves two steps: clippy and dylint. Both are mandatory as they’re part of the compilation process and implement security-critical features.
new_contract_project
Creates a new contract project from the template.
project_path
todo