Writing the Hello World Contract
Project Setup
Step 1: Create a New Project
Create a new project using cargo-stylus and navigate into the project directory:
cargo stylus new hello_world
cd hello_worldStep 2: Edit Cargo.toml
Cargo.tomlOpen the Cargo.toml file and add the necessary dependencies and features:
[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"
[dependencies]
stylus-sdk = { version = "0.5.2", features = ["debug"] }
wee_alloc = "0.4.5"
[features]
export-abi = ["stylus-sdk/export-abi"]
[profile.release]
codegen-units = 1
strip = true
lto = true
panic = "abort"
opt-level = "s"
[workspace]Step 3: Edit Contract Code
Open the src/lib.rs file and replace the content with the following code:
Explanation
No Standard Library:
#![no_main]and#![no_std]are used to disable the Rust standard library, which keeps the contract's WASM size small.Allocator:
wee_allocis a small allocator designed for WASM environments, reducing the contract's footprint.Imports:
allocprovides heap-allocated types likeStringandVec.stylus_sdkincludes necessary macros and functions for Stylus development.Entry Point:
#[entrypoint]defines the starting point of the contract.console!macro prints "Hello, world!" to the console for debugging purposes.
Last updated