Skip to content

coder-lcn/ethereum-contract-workflow

Repository files navigation

前言

在学习的过程中发现,不少示例代码已经比较陈旧了,现在使用起来会遇到各种问题。在评论区中,也发现有不少小伙伴遇到了类似的问题,于是为了方便自己学习,和帮助其他人;决定写一个基于 ts 的副本,相关依赖都使用最新版本来实现。大家可以根据 commit 记录来阅读,我会严格遵循文章的进度来提交代码。欢迎大家 fork、issues。

使用

# 安装依赖
yarn

# 编译
yarn compile

# 部署合约
yarn deploy

# 测试
yarn test

# 生成测试数据
yarn sample

# 运行本地客户端
yarn dev

部署合约需注意:

新建 scripts/config.ts 文件,写入与自己相关的信息

export const memonic = "你的助记词";
export const rinkebyUrl = "要部署的 rinkeby 网络地址";

研发过程

单元测试

文章中用到的东西,在重制版里基本都是用的最新的。但是研发到后期收尾阶段,将 Mocha 改成了 jest ,因为前者在处理报错的时候,它的提示不够智能。查阅相关材料了解到,可以配合其它包来解决这个问题。但是这方面 jest 的支持就做的比较好。于是采用了 jest 作为单元测试的基础库。

功能完善

原文章中涉及到的功能有很多可以完善的点,直到重制版编写完成,依然有细节可以继续完善,具体的功能完善如下:

  • 钱包在切换账户时,会实时的同步到项目当中,在确保账户正确的情况下,不影响业务逻辑
  • 创建项目、投资和项目支出这三个功能,都是异步的,支持同时创建、投资和支出多个项目
  • 状态通知
    • 项目的创建、投资和支出,都有对应的通知,包括报错处理
  • 角色完善
    • 项目方创建的项目,可以自行投资,但项目支出和资金画展只能由项目方来发起
    • 投资人除了投资项目,项目的投票功能也只对投资人开放

学习总结

具体到更细节的,比如投资时的表单限制、资金支出的表单限制也有。但直到最后依然还是有细节工作可以完善的,但是我没再进行下去了,因为这已经完全是前端的范畴了。这个过程最重要的是了解合约开发、了解区块链。这个过程中我发现,写智能合约的 Solidity 语言并不那么智能,很多时候在做很简单的处理时,它经常让我很难受。但我了解到了这个流程,并且对我目前的工作有了一定的帮助,那就值得了。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published