#near #cargo #build #contract #abi #cargo-toml #smart-contracts

bin+lib cargo-near

Cargo 扩展,用于在 NEAR 上构建 Rust 智能合约

18 个版本 (7 个破坏性更改)

0.8.2 2024 年 8 月 16 日
0.7.0 2024 年 8 月 6 日
0.6.4 2024 年 7 月 22 日
0.6.1 2024 年 2 月 23 日
0.1.0 2022 年 6 月 1 日

#891 in 魔法豆

Download history 651/week @ 2024-05-03 582/week @ 2024-05-10 617/week @ 2024-05-17 824/week @ 2024-05-24 738/week @ 2024-05-31 601/week @ 2024-06-07 718/week @ 2024-06-14 677/week @ 2024-06-21 657/week @ 2024-06-28 709/week @ 2024-07-05 539/week @ 2024-07-12 772/week @ 2024-07-19 1226/week @ 2024-07-26 1439/week @ 2024-08-02 1572/week @ 2024-08-09 1147/week @ 2024-08-16

每月下载量 5,463 次
5 个包中使用 (通过 near-workspaces)

MIT/Apache 和可能 GPL-3.0-or-later

155KB
3.5K SLoC

cargo-near

Cargo 扩展,用于构建 near-sdk-rs 智能合约和 ABI 架构 在 NEAR 上

Github CI Build Crates.io version Download

发布说明

发布说明和未发布更改可在 CHANGELOG 中找到

安装

通过 shell 脚本安装预构建的二进制文件(Linux,macOS)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.sh | sh
通过 powershell 脚本安装预构建的二进制文件(Windows)
irm https://github.com/near/cargo-near/releases/latest/download/cargo-near-installer.ps1 | iex
将预构建的二进制文件安装到您的 Node.js 应用程序中
npm install cargo-near
从源代码编译和安装(Cargo)
cargo install --locked cargo-near

或,从 Git 仓库安装最新版本

$ git clone https://github.com/near/cargo-near
$ cargo install --locked --path cargo-near

使用方法

查看 cargo near --help 以获取所有可用命令的完整列表,或者运行 cargo near 进入交互模式。使用 --help 标志,每个单独的命令也有帮助,例如 cargo near build --help

cargo near

启动交互模式,允许探索所有可用命令。


除了 cargo 之外,还需要安装 Git 二进制文件。

cargo near new

初始化一个新的项目骨架,从模板创建合约。


cargo near build

构建 NEAR 智能合约及其 ABI(在包含合约 Cargo.toml 的目录中)。

默认情况下,这将在一个 Docker 容器中运行可重复构建。

  1. 与源代码版本运行,提交到 Git,忽略任何未提交的更改。
  2. 需要创建项目 Cargo.lock(例如,通过 cargo update)并将其添加到 Git 中。
    • 这使下游 cargo 命令能够使用 --locked 构建功能。
  3. 将使用合约 Cargo.toml[package.metadata.near.reproducible_build] 部分
    • 此部分默认值也可以在由 cargo near new 生成的模板项目的 Cargo.toml 中找到。

重要标志

  1. --no-docker

    • 标志可用于使用安装在主机上的 rust 工具链执行常规构建,并运行 cargo-near 命令行工具。
    • -Docker 构建针对文件系统中的实际代码状态运行,而不是针对源控制中提交的版本。
  2. --no-locked

    • 标志允许在 -Docker 构建中使用,例如生成 Cargo.lock 同时构建合约。
    • 标志允许在 Docker 构建中使用,但
      • 由于依赖项的可能更新和编译 wasm 不匹配,这些构建不可重复。

cargo near abi

在合约的 Cargo.toml 目录中生成 NEAR 智能合约的 ABI

合约部署后,这将允许您通过调用视图函数 __contract_abi 来检索一个 ZST 压缩的 ABI。


cargo near create-dev-account

指导您在 testnet 上创建新的 NEAR 账户。


cargo near deploy

构建智能合约(相当于 cargo near build)并指导您将其部署到区块链。

默认情况下,这将在一个 Docker 容器中运行可重复构建。

deploy 命令从 Docker 构建中需要合约的源代码

  1. 没有任何修改后的跟踪文件,任何已暂存更改或任何未跟踪内容。
  2. 已推送到远程仓库,由 package.repository 识别。

重要标志

  1. --no-docker

    • 标志可用于执行常规的 NO-Docker 构建 部署。
      • 类似于 build 命令,在这种情况下,不适用任何与 git 相关的担忧和限制。
  2. --no-locked

    • 标志因对 build 结果的影响而被拒绝用于部署

贡献

除非你明确说明,否则根据 Apache-2.0 许可证定义的,你提交的任何有意提交以包含在作品中的贡献,都将按照以下方式双重许可,没有任何附加条款或条件。

许可协议

根据以下任一项许可

由你选择。

依赖关系

~60–85MB
~1.5M SLoC