#near #account #user #testing #storage #nft #token

app near-accounts-plugins-wrapper

near 库的包装器

1 个不稳定版本

0.0.1 2022年2月28日

143#nft

MIT 许可证

370KB
485

Near 标准库

库概述

该库由两个库组成,它们相互构建

  • near-account
  • near-internal-balance-plugin

这两个库都处理与智能合约中不同账户相关的信息存储。 near-account 将为用户维护一些结构体的映射。 near-account 将确保用户通过跟踪存储来支付其存储费用。它还跟踪智能合约中存入的总金额,并将维护一个 free Near 字段。

near-internal-balances-plugin 处理所有与代币相关的事务,并基于 near-account 构建。它允许用户将代币转入和转出智能合约。这意味着用户可以将代币“存入”智能合约,然后智能合约拥有这些代币的所有权。但是,智能合约会跟踪余额。这基本上是 Ref Finance 使用代币所做的事情。

目前,该库支持

有关这两个库的更多信息,请参阅 docs.rs

  • near-account 文档 TODO
  • near-internal-balance-plugin 文档 TODO

构建和测试

要构建,请运行

./build.sh

与许多 Rust 库和合约一样,near-accountnear-internal-balance-plugin 中都有单元测试。

此外,该项目在 sim 目录中有 模拟测试。模拟测试允许测试跨合约调用,这对于确保以下功能正常工作至关重要

  • 用户存储存款成功
  • 跟踪用户的 free Near
  • ft_transfer_callmt_transfer_callnft_transfer_call 成功将 ft、mt 和 nft 存入用户的账户余额
  • internal_balance_withdraw_to 成功从用户的账户中提取代币

这些模拟测试是项目具有现有文件结构的原因。请注意,根项目包含一个 Cargo.toml 文件,该文件将其设置为工作空间。ftnftmt(位于核心目录外部)都用于模拟测试目的。dummy 也用于模拟测试。

您可以使用一个命令运行所有测试

cargo test

如果您只想运行模拟测试,可以使用 cargo test simulate,因为所有模拟测试的名称中都包含 "simulate"。

注意事项

  • 最大余额值受限于 U128(2**128 - 1)。
  • JSON 调用应将 U128 作为十进制字符串传递。例如:"100"。
  • 这不包括托管功能,因为 ft_transfer_call 提供了更优的方法。当然,可以将托管系统作为一个独立的合约或在此合约内的附加功能添加。

贡献

在修改文件时,请记住使用 ./build.sh 编译所有合约并将输出复制到 res 文件夹。如果您忘记这样做,模拟测试将不会使用最新版本

请注意,如果此存储库中的 rust-toolchain 文件发生变化,请确保更新 .gitpod.Dockerfile 以明确指定使用它作为默认值。

无运行时依赖