区块链智能合约开发小记

使用 python和 solidity语言,drf框架开发智能合约的一些踩坑记录。

  • solidity0.5.0和py-solc3.2.0不兼容,可下载此修复版本替换。

  • compile_source和compile_standard方法都无法import 文件进行编译,提示找不到文件,使用compile_files方法吧。

  • compile_files 方法里面合约路径不能有冒号,使用相对路径即可。

  • 安装windows版本合约编译器solc.exe

  • solidity合约默认给public变量添加了getter函数,可以直接使用contract.functions.变量名()获取变量的值。只是不支持数组类型。比如:

Fundraise[] public fundraises;

区块链智能合约开发小记_第1张图片
报错
只能通过一个个索引调用,如

```python
# 每次获取一个数组元素
contract_instance.functions.fundraises(0).call()
```
  • 使用serializers.PrimaryKeyRelatedField 序列化一个含有外键的model时,出现如下问题:
    区块链智能合约开发小记_第2张图片
    google了一大把答案无果,最后使用User.id 解决。这个主键直接接受一个int类型的id是否是众所周知的?不解为什么官方文档不给出在View里面构造对应序列化器的例子,网上也没有一个文章提及。估计还是自己代码打得太少吧。
    竟然只是个int class
  • postman 参考文档
  • 以太坊开发参考
  • 参考教程

你可能感兴趣的:(区块链智能合约开发小记)