在项目设计之初,就要思考每个合约每个方法的权限,权限总结下面几条:
如果合约设计允许接收ETH,那么一定要加上receive或者fallback方法:
receive() payable external {} fallback() payable external {}
声明合约变量或者结构体变量的时候,要注意类型的顺序,EVM每个卡槽是256位,如果不足256位,会自动填充,这个过程是需要手续费的。让两个128类型的变量挨着,比隔开会更省gas费用。