setup-stylus-contracts

安装量: 53
排名: #14076

安装

npx skills add https://github.com/openzeppelin/openzeppelin-skills --skill setup-stylus-contracts

Stylus Setup Rust & Cargo Stylus Setup Install the Rust toolchain and WASM target: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rustup target add wasm32-unknown-unknown Install the Cargo Stylus CLI: cargo install --force cargo-stylus Create a new Stylus project: cargo stylus new my_project A Rust nightly toolchain is required. The project should include a rust-toolchain.toml specifying the nightly channel, rust-src component, and wasm32-unknown-unknown target. Check the rust-contracts-stylus repo for the current recommended nightly date. Adding OpenZeppelin Dependencies Look up the current version from crates.io/crates/openzeppelin-stylus before adding. Add to Cargo.toml : [ dependencies ] openzeppelin-stylus = "=" Enable the export-abi feature flag for ABI generation: [ features ] export-abi = [ "openzeppelin-stylus/export-abi" ] The crate must be compiled as both a library and a cdylib: [ lib ] crate-type = [ "lib" , "cdylib" ] Import Conventions Imports use openzeppelin_stylus (underscores) as the crate root: use openzeppelin_stylus :: token :: erc20 :: { Erc20 , IErc20 } ; use openzeppelin_stylus :: access :: ownable :: { Ownable , IOwnable } ; use openzeppelin_stylus :: utils :: pausable :: { Pausable , IPausable } ; use openzeppelin_stylus :: utils :: introspection :: erc165 :: IErc165 ; Contracts use

[storage]

and

[entrypoint]

on the main struct, embedding OpenZeppelin components as fields:

[entrypoint]

[storage]

struct MyToken { erc20 : Erc20 , ownable : Ownable , } Public methods are exposed with

[public]

and

[implements(...)]

. The canonical pattern uses an empty impl block for dispatch registration, plus separate trait impl blocks:

[public]

[implements(IErc20, IOwnable)]

impl MyToken { }

[public]

impl IErc20 for MyToken { type Error = erc20 :: Error ; // delegate to self.erc20 ... } Top-level modules: access , finance , proxy , token , utils . Build & Deploy Basics Validate the contract compiles to valid Stylus WASM: cargo stylus check Export the Solidity ABI: cargo stylus export-abi Deploy to an Arbitrum Stylus endpoint: cargo stylus deploy --endpoint = "" --private-key-path = ""

返回排行榜