返回顶部
s

setup-stellar-contracts配置恒星合约

Set up a Stellar/Soroban smart contract project with OpenZeppelin Contracts for Stellar. Use when users need to: (1) install Stellar CLI and Rust toolchain for Soroban, (2) create a new Soroban project, (3) add OpenZeppelin Stellar dependencies to Cargo.toml, or (4) understand Soroban import conventions and contract patterns for OpenZeppelin.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.1
安全检测
已通过
203
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

setup-stellar-contracts

Stellar 设置

Soroban/Stellar 开发环境配置

安装 Rust 工具链(v1.84.0+)和 Soroban WASM 目标:

bash
curl --proto =https --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32v1-none

安装 Stellar CLI:

bash
curl -fsSL https://github.com/stellar/stellar-cli/raw/main/install.sh | sh

创建新的 Soroban 项目:

bash
stellar contract init my_project

这将创建一个 Cargo 工作区,合约位于 contracts/*/ 目录下。

OpenZeppelin 依赖

在添加依赖前,请查阅 stellar-contracts 仓库 获取当前版本。由于该库处于活跃开发阶段,请使用 = 固定精确版本。

根目录的 Cargo.toml 的 [workspace.dependencies] 下添加 OpenZeppelin crate:

toml
[workspace.dependencies]
stellar-tokens = =
stellar-access = =
stellar-contract-utils = =
stellar-macros = =

然后在每个合约的 contracts/*/Cargo.toml 中引用它们:

toml
[dependencies]
soroban-sdk = { workspace = true }
stellar-tokens = { workspace = true }
stellar-access = { workspace = true }
stellar-contract-utils = { workspace = true }
stellar-macros = { workspace = true }

可用的 crate:stellar-access、stellar-accounts、stellar-contract-utils、stellar-fee-abstraction、stellar-governance、stellar-macros、stellar-tokens。

仅添加合约实际使用的 crate。stellar-macros 提供过程宏属性(例如 #[whennotpaused]、#[only_owner]、#[derive(Upgradeable)]),大多数合约都需要它。

代码模式

导入时使用下划线作为 crate 根(Rust 惯例):

rust
use stellar_tokens::fungible::{Base, FungibleToken};
use stellar_tokens::fungible::burnable::FungibleBurnable;
use stellar_access::ownable::Ownable;
use stellarcontractutils::pausable::Pausable;
use stellarmacros::whennot_paused;

合约在结构体上使用 #[contract],在 impl 块上使用 #[contractimpl](来自 soroban_sdk):

rust
use soroban_sdk::{contract, contractimpl, Env};

#[contract]
pub struct MyToken;

#[contractimpl]
impl MyToken {
// 在此实现 trait 方法
}

trait 实现按每个 trait 使用单独的 impl 块(例如 FungibleToken、Pausable)。像 #[whennotpaused] 和 #[only_owner] 这样的守卫宏用于装饰单个函数。

平台说明

  • - Stellar 上的读取操作是免费的。 优化以减少写入操作;读取和计算成本低廉。优先选择清晰可读的代码,而非微优化。
  • 实例存储 TTL 扩展是开发者的责任。 OpenZeppelin 库会处理其他存储条目的 TTL 扩展,但合约必须自行扩展其 instance 存储条目以防止过期。

构建与测试

将合约构建为 WASM:

bash
stellar contract build

这是 cargo build --target wasm32v1-none --release 的快捷方式。输出文件位于 target/wasm32v1-none/release/ 目录下。

运行测试:

bash
cargo test

soroban-sdk 的测试工具会自动为 crate 内的单元测试启用。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 setup-stellar-contracts-1776078142 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 setup-stellar-contracts-1776078142 技能

通过命令行安装

skillhub install setup-stellar-contracts-1776078142

下载

⬇ 下载 setup-stellar-contracts v1.0.1(免费)

文件大小: 2.19 KB | 发布时间: 2026-4-15 14:20

v1.0.1 最新 2026-4-15 14:20
Fix display name from probe to proper title

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部