深入浅出区块链
Truffle 中文文档
v5.0.0
  • 快速入门 Truffle
    • 创建项目工程
    • 项目结构
    • 使用测试
    • 编译合约
    • 使用 Truffle Develop 部署合约
    • 可选: 通过 Ganache 部署
    • 合约交互
    • 进一步学习

基本功能

  • 安装 Truffle
    • 环境依赖
    • Windows 用户需了解
  • 创建 Truffle 项目工程
  • 编译合约
    • 合约文件目录
    • 编译命令
    • 构建工件 Artifacts
    • 引入合约依赖文件
      • 通过文件名导入依赖文件
      • 从外部包导入合约
  • 合约部署(Migrations)
    • 部署命令
    • 脚本文件
      • artifacts.require()
      • module.exports
    • 初始化迁移功能
    • 部署程序 Deployer
    • 考虑网络
    • 可用账号
    • 部署程序接口 Deployer API
      • deployer.deploy(contract, args…, options)
      • deployer.link(library, destinations)
      • deployer.then(function() {…})
  • 与合约进行交互
    • 介绍
    • 数据的读和写
      • 交易 Transactions
      • 调用 Calls
    • 什么是合约抽象
    • 执行合约函数
      • 执行交易Transactions
      • 执行调用 call
      • 处理交易结果
      • 捕获事件 events
      • 部署新合约
      • 指定合约地址
      • 给合约发送以太
    • 延伸阅读
  • Truffle 和 MetaMask 配合
    • MetaMask 是什么?
    • 安装 MetaMask
    • MetaMask 和 Ganache 搭配使用
      • 探测 MetaMask 注入的 web3
      • MetaMask 设置
    • 搭配 Truffle Develop 使用 MetaMask
    • 搭配 Ganache CLI 使用 MetaMask
  • 用 EthPM 进行包管理
    • 安装软件包
    • 安装依赖
    • 使用安装的合约
    • 发布自己的软件包
      • Ropsten, Ropsten, Ropsten
      • 包配置
      • 命令
      • 在发布之前
  • 用 NPM 进行包管理
    • 包文件布局
    • 使用包
      • 安装
      • 在合约代码中使用包
      • 在JavaScript中使用包
      • 包的部署地址
      • 发布之前
  • 调试合约
    • 概述
    • 调试命令
    • 调试器界面
      • (o) 跳过(step over)
      • (i) 进入(step into)
      • (u) 跳出(step out)
      • (n) 下一步(step next)
      • (;) 单步指令(step instruction)
      • (p) 打印指令(print instruction)
      • (h) print this help
      • (q) 退出
      • (r) 重置(reset)
      • (b) 设置断点(set a breakpoint)
      • (B) 移除断点(大写的B)
      • (c) 跳到下一个断点
      • (+) 添加一个监视表达式
      • (-) 移除监视表达式
      • (?) 列出所有的监视表达式及断点
      • (v) 显示变量
      • (T) 卸载交易
      • (t) 加载交易
    • 添加和移除断点
  • 使用控制台
    • 为什么有两个控制台?
    • 命令
      • 登录控制台
      • 登录Develop控制台
        • 配置 Truffle Develop
    • 功能
      • 可用命令
  • 编写外部脚本
    • 命令
    • 文件结构
  • 第三方插件命令
    • Plugin installation / usage
    • Creating a custom command plugin
  • 支持 Quorum 开发
    • 已知问题
    • 配置
    • Using Privacy Features

编写测试用例

  • 测试合约
    • 测试框架
    • 测试用例目录
    • 测试合约命令
    • ”干净的“ 测试环境
    • 速度和可靠性考虑
  • 用 JavaScript 写测试用例
    • Use contract() instead of describe()
    • Use contract abstractions within your tests
    • Using artifacts.require()
    • Using web3
    • Examples
      • Using .then
      • Using async/await
    • Specifying tests
    • Advanced
    • TypeScript File Support
  • 用 Solidity 写测试用例
    • Example
    • Test structure
      • Assertions
      • Deployed addresses
      • Test contract names
      • Test function names
      • before / after hooks
    • Advanced features
      • Testing for exceptions
      • Testing ether transactions

高级用法

  • 选择网络及部署
    • 配置
    • 指定网络
    • Build artifacts
    • 应用部署
  • 构建过程
    • 运行外部命令
    • Providing a custom function
    • Creating a custom module
    • Bootstrapping your application
  • 创建 Truffle Box
    • 创建 box
    • 配置文件
      • ignore (array)
      • commands (object)
      • hooks (object)
    • 图片
    • Truffle site listing

参考引用

  • 选择以太坊客户端
    • 开发过程中
      • Ganache
      • Truffle Develop
      • Ganache CLI
    • 部署到线上网络
    • 部署到私有网络
  • Truffle 配置
    • 配置文件位置
      • 解决 Windows 命令名冲突
    • 常用配置选项
      • 网络 networks
        • 提供者 Providers
      • 指定合约目录
      • 指定合约构建生成目录
      • 迁移文件目录
      • mocha
    • 指定编译器
      • solc
      • 使用外部编译器
    • 插件 plugins
    • EthPM 配置
      • 包名:package_name
      • 版本:version
      • 描述:description
      • 作者 authors
      • 关键字 keywords
      • 依赖 dependencies
      • 许可协议 license
  • 合约抽象封装
    • 使用方法
  • API
    • Contract Abstraction API
      • MyContract.new([arg1, arg2, ...], [tx params])
      • MyContract.at(address)
      • MyContract.deployed()
      • MyContract.link(instance)
      • MyContract.link(name, address)
      • MyContract.link(object)
      • MyContract.networks()
      • MyContract.setProvider(provider)
      • MyContract.setNetwork(network_id)
      • MyContract.hasNetwork(network_id)
      • MyContract.defaults([new_defaults])
      • MyContract.clone(network_id)
      • MyContract.numberFormat = number_type
      • MyContract.timeout(block_timeout)
      • MyContract.autoGas = <boolean>
      • MyContract.gasMultiplier(gas_multiplier)
    • Contract Instance API
      • Making a transaction via a contract function
      • Explicitly making a call instead of a transaction
      • Calling getters
      • Processing transaction results
      • Sending Ether / Triggering the fallback function
      • Estimating gas usage
  • Truffle 命令手册
    • 使用方法
    • 命令列表
      • 构建 build
      • 编译合约 compile
      • config
      • 启动控制台 console
      • 创建 create
      • 调试 debug
      • 部署 deploy
      • 控制台 develop
      • exec
      • 帮助 help
      • 初始化工程 init
      • 安装 install
      • migrate
      • 网络 networks
      • 操作码 opcode
      • 发布 publish
      • 运行 run
      • 测试 test
      • 解包 unbox
      • 查看版本 version
      • 监视变化 watch
  • 联系开发者
    • Gitter
    • Issue Tracker
    • Twitter

相关文档

  • Solidity 中文文档
  • Web3.js 中文文档
  • Truffle 中文文档
    • Docs »
    • 搜索
    • Edit on GitHub


    © Copyright 2019, 深入浅出区块链 最后更新于 2019/05/21.

    Built with Sphinx using a theme provided by Read the Docs.