摘要: 在Solidity中恢复消息签名者地址: 一般来说,ECDSA签名由r和s两个参数组成。以太坊中的签名包括名为v的第三个参数,可以使用它来验证哪个帐户的私钥用于对消息进行签名,以及交易的发送者。Solidity提供了一个内置函数ecrecover,它接受消息message以及r、s和v参数,并返回用 阅读全文
posted @ 2022-04-09 11:40 豆豆是只乖狗狗 阅读(697) 评论(0) 推荐(0) 编辑
摘要: 远程购买商品需买家和卖家相互信任,在下面的例子中,买家和卖家必须将商品价值(1*value)的两倍(2*value作为定金)放入合约中作为代管。由于没有办法确定货物是否到达买方,一旦发生这种情况,这笔钱就会被锁在合同中,直到买家确认收到了物品。交易成功后,买家得到的是价值(1*value)和物品,而 阅读全文
posted @ 2022-04-07 10:58 豆豆是只乖狗狗 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 盲拍: 盲拍分为竞价阶段和最终竞价比较阶段,在竞价期间,竞价者并不发送他们的真实竞价,而是一个哈希数据(bytes32 blindedBid)。 竞价期结束后,竞价者必须出示他们的竞价,即多个真假竞价信息数组组合,哈希数据用于帮助合约检查哈希值是否与竞价期提供的哈希值相同。 此外,为防止竞价者在赢得 阅读全文
posted @ 2022-03-30 09:40 豆豆是只乖狗狗 阅读(226) 评论(0) 推荐(0) 编辑
摘要: solidity中数据位置分为:memory,storage,calldata 目前,引用类型包括struct(结构体)、array(数组)和mapping(映射),使用引用类型必须明确地提供存储该类型的数据位置(memory、storage或calldata): memory(生存期存在于func 阅读全文
posted @ 2022-03-29 19:53 豆豆是只乖狗狗 阅读(666) 评论(0) 推荐(0) 编辑
摘要: 简单公开拍卖基本思想:在竞价期间每个节点都可以调用function bid()参与竞价,若最高出价被抬高,之前的最高出价节点可以调用function withdraw()拿回竞价金额,最终调用function auctionEnd()获取竞价结果。 pragma solidity ^0.8.4; / 阅读全文
posted @ 2022-03-28 20:34 豆豆是只乖狗狗 阅读(307) 评论(0) 推荐(0) 编辑
摘要: Solidity中的error用于解释操作失败的原因,可以继承,参数列表可以只定义数据类型或为空,不能重载,不能作为控制流的一种手段,合约内部和外部均可定义。 调用时必须用revert修饰,revert用于回退error中数据给调用者并回退当前调用中所有更改。 pragma ^0.8.4; erro 阅读全文
posted @ 2022-03-28 19:40 豆豆是只乖狗狗 阅读(580) 评论(0) 推荐(0) 编辑
摘要: pragma solidity >=0.7.0 <0.9.0; //投票实验 contract Ballot{ struct Voter{ uint weight;//投票(单票)权重 bool voted;//是否投过票,true为投过票,bool类型默认值为false address deleg 阅读全文
posted @ 2022-03-28 10:58 豆豆是只乖狗狗 阅读(442) 评论(0) 推荐(0) 编辑