使用 python和 solidity语言,drf框架开发智能合约的一些踩坑记录。
-
compile_source和compile_standard方法都无法import 文件进行编译,提示找不到文件,使用compile_files方法吧。
-
compile_files 方法里面合约路径不能有冒号,使用相对路径即可。
-
安装windows版本合约编译器solc.exe
-
solidity合约默认给public变量添加了getter函数,可以直接使用contract.functions.变量名()获取变量的值。只是不支持数组类型。比如:
Fundraise[] public fundraises;
只能通过一个个索引调用,如
```python
# 每次获取一个数组元素
contract_instance.functions.fundraises(0).call()
```
- 使用serializers.PrimaryKeyRelatedField 序列化一个含有外键的model时,出现如下问题:
google了一大把答案无果,最后使用User.id 解决。这个主键直接接受一个int类型的id是否是众所周知的?不解为什么官方文档不给出在View里面构造对应序列化器的例子,网上也没有一个文章提及。估计还是自己代码打得太少吧。
- postman 参考文档
- 以太坊开发参考
- 参考教程