2021-12-13 12:08 回答问题
这样看看
//return(Position[] memory)会报错
function(positon[] memory postions, uint start, uint end) external returns(Position[] memory){
return postions[start:end];
}
2021-12-03 16:08 回答问题
官方文档里有https://docs.openzeppelin.com/upgrades-plugins/1.x/
2021-11-18 16:22 发起提问
2021-11-07 11:57 回答问题
原实现合约名称xxx, 目前尝试的结果是 1 将升级后的实现合约名称重新命名为xxxV2, 2 或是删除原合约文件,升级合约也可命名为xxx 这两种方法都可以使用hardhat的upgrade升级成功
2021-11-06 19:19 发起提问
2021-10-26 23:27 发起提问
2021-10-26 16:00 发起提问
2021-10-16 14:52 发起提问
2021-10-14 11:39 发起提问
2021-10-14 11:31 回答问题
LP Token挖矿步骤,以sushi为例 1 存入LP token,过一段时间后 2 取挖矿利息时, 2.1 挖矿合约挖出前一段时间所有奖励suishi 2.2 挖矿合约根据你的LP 池子的占比,分配前一段时间所有奖励占比 = reward 2.3 你的挖矿利息 = reward 你存入的LP数量 / 该池存入的所有LP(代码实现为分润算法
3 单币挖矿和LP挖矿基本相同,只有一点需要注意 4 但是其中一个单币如果和奖励代币一样,比如都是sushi,那么获取这个单币池的存入Token
2021-10-01 12:39 发起提问
2021-08-23 14:46 发起提问
2021-08-23 00:16 回答问题
地址只是一个标识,你调用的时候指定好就可以了吧
2021-08-18 17:39 回答问题
就是1楼的方法,在你的合约X的方法里写入调用ERC20合约的授权转账transferFrom接口,你得先在ERC20合约里给你的合约X的地址授权一定额度,再去调用包含transferFrom接口的方法就可以任意转账了
2021-08-18 17:20 发起提问
2021-07-22 11:20 发起提问
2021-07-04 16:36 发起提问
2021-06-16 19:22 回答问题
我定位到了错误代码 //涉及到的存储变量 mapping(address => uint256) public userIndex; //以下代码测试通过 require(userIndex[msg.sender] == 0,'Crowdfund: cannot invest when user already existed'); //msg.sender替换为_msgSender()后,以下代码测试报错 require(userIndex[_msgSender()] == 0,'Crowdfu
2021-06-16 11:41 发起提问
2021-05-31 00:07 回答问题
标准,该标准可以取消 approve + transferFrom,同时还允许无 gas 通证转账,按这个标准实现就可以进行签名交易,无须提前授权,直接线下签名+线上确认再转账