solidity-note icon indicating copy to clipboard operation
solidity-note copied to clipboard

solidity 学习笔记, truffle框架创建智能合约

1 Solidity

1.1 Knowledge

1.2 Personal Summary

  • solidity函数和变量
  • 修饰符 public 和 external 的区别
  • 修饰符 prue 和 view 的区别
  • Different between require and assert
  • send ether from contract to another contract
  • modifer function with parameters

2 开发环境及框架

  • 以太坊私链POW或POA部署

2.1 Reminx

网页版开发工具

  • 在线地址:http://remix.ethereum.org
  • Github: https://github.com/ethereum/remixd

优点:简单直接<BR> 缺点:工程化程度不足, 如:不能编写测试用例

2.1.1 summary

  • 环境安装
  • 使用说明
  • Reminx + MetaMask 部署智能合约

2.2 Truffle + VScode

本地项目开发框架 https://github.com/trufflesuite/truffle

优点:功能丰富, 支持Reminx的所有功能;<BR> 缺点:命令行操作, 略复杂;

2.2.1 Sumary

  • 环境安装

  • 获取部署的智能合约地址、abi和code

  • 测试用例智能合约调用另外一个智能合约

  • 使用truffle框架管理编写一个ERC20 token、并编写测试用例和部署

3 智能合约调用

3.1 Golang Api

  • 智能合约API生成
  • 部署
  • 交易
  • Event监听

3.2 Python Api

3.3 Nodejs Api

4 智能合约安全

4.1 漏洞

  • 可重入攻击
  • 短地址攻击
  • 整数溢出

4.2 安全工具

4.3 推荐实践

5 Resources