casper-contract
A library for developing Casper network smart contracts.
no_std
The crate is no_std
, but uses the core
and alloc
crates. It is recommended to build Wasm smart contracts in a
no_std
environment as this generally yields smaller, and hence cheaper, binaries.
Compile-time features
no-std-helpers
Enabled by default.
Given that the library is intended to be consumed by smart-contract binaries, and that in a no_std
environment these
will all require to provide an alloc error handler and an
eh_personality,
then this crate provides these when no-std-helpers
is enabled. This unfortunately requires the use of nightly Rust.
For further convenience, enabling this feature also provides a global allocator suitable for use in a no_std
environment.
If you wish to use a different global allocator, or provide different panic/out-of-memory handlers, then add the following to your Cargo.toml:
= { = "1", = false }
test-support
Disabled by default.
To help support smart contract debugging, enabling the test-support
feature makes the function
contract_api::runtime::print(text: &str)
available. If the contract is being tested offchain using the
casper-engine-test-support
crate, then the contract can output text to the console for debugging.
= { = "1", = ["test-support"] }
License
Licensed under the Apache License Version 2.0.