ink! 开源项目教程

ink! 开源项目教程

inkparitytech/ink 是一个用于构建以太坊智能合约的开发框架。适合在以太坊智能合约开发中使用,提供了丰富的合约开发工具、易于使用的 API 和多种合约开发模板的支持。项目地址:https://gitcode.com/gh_mirrors/ink3/ink

1. 项目的目录结构及介绍

ink! 是一个用于在 Substrate 区块链上编写智能合约的 Rust 编译器插件。项目的目录结构如下:

ink/
├── Cargo.toml
├── README.md
├── contracts/
│   ├── flipper/
│   ├── erc20/
│   └── ...
├── docker/
├── docs/
├── examples/
├── ffi/
├── integration-tests/
├── lib/
├── primitives/
├── rust-toolchain
├── scripts/
├── test-utils/
└── tools/
  • Cargo.toml: 项目的依赖和元数据文件。
  • README.md: 项目介绍和使用说明。
  • contracts/: 包含多个示例智能合约,如 flippererc20
  • docker/: 包含用于构建和测试的 Docker 文件。
  • docs/: 项目文档。
  • examples/: 更多示例代码。
  • ffi/: 用于与其他语言交互的接口。
  • integration-tests/: 集成测试代码。
  • lib/: 核心库文件。
  • primitives/: 基础类型和工具。
  • rust-toolchain: 指定 Rust 工具链版本。
  • scripts/: 辅助脚本。
  • test-utils/: 测试工具。
  • tools/: 辅助工具。

2. 项目的启动文件介绍

ink! 项目的启动文件主要是 Cargo.toml 和各个智能合约的 lib.rs 文件。

  • Cargo.toml: 定义了项目的依赖、构建脚本和其他元数据。例如:
[package]
name = "flipper"
version = "0.1.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"

[dependencies]
ink_core = "0.1.0"
ink_lang = "0.1.0"
  • lib.rs: 每个智能合约的核心逻辑文件。例如 flipper 合约的 lib.rs 文件:
#![cfg_attr(not(feature = "std"), no_std)]

use ink_lang as ink;

#[ink::contract]
mod flipper {
    #[ink(storage)]
    pub struct Flipper {
        value: bool,
    }

    impl Flipper {
        #[ink(constructor)]
        pub fn new(init_value: bool) -> Self {
            Self { value: init_value }
        }

        #[ink(message)]
        pub fn flip(&mut self) {
            self.value = !self.value;
        }

        #[ink(message)]
        pub fn get(&self) -> bool {
            self.value
        }
    }
}

3. 项目的配置文件介绍

ink! 项目的配置文件主要是 Cargo.tomlrust-toolchain

  • Cargo.toml: 定义了项目的依赖、构建脚本和其他元数据。例如:
[package]
name = "flipper"
version = "0.1.0"
authors = ["Parity Technologies <admin@parity.io>"]
edition = "2018"

[dependencies]
ink_core = "0.1.0"
ink_lang = "0.1.0"
  • rust-toolchain: 指定 Rust 工具链版本,确保项目在特定的 Rust 版本下编译。例如:
nightly-2021-01-01

这些配置文件确保项目在正确的环境和依赖下编译和运行。

inkparitytech/ink 是一个用于构建以太坊智能合约的开发框架。适合在以太坊智能合约开发中使用,提供了丰富的合约开发工具、易于使用的 API 和多种合约开发模板的支持。项目地址:https://gitcode.com/gh_mirrors/ink3/ink

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马冶娆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值