以太坊智能合约
文章平均质量分 82
Revelation_of_Turing
想搞金融IT的区块链码手。
展开
-
Michael.W基于Foundry精读Openzeppelin第8期——Context.sol
Context库是合约开发中最常见的库,同时也是最让人迷惑的库。合约代码里面只将msg.sender和msg.data封装成了函数,感觉多此一举。实际上,本库不提供任何context环境切换的细节功能,而是需要目标合约中重写这两个函数起到了可编辑msg.sender和msg.data的目的。原创 2023-07-15 14:22:04 · 300 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第7期——Timers.sol
Timers库是一个专门用于控制和管理有时间有效期窗口的工具库。时间有效期可以从区块链时间戳和区块高度两个维度进行管理。原创 2023-07-10 14:53:29 · 271 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第6期——Strings.sol
从foundry工程化的角度详细解读Openzeppelin中的Strings库及对应测试。原创 2023-07-09 23:25:53 · 118 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第5期——Counters.sol
将uint256封装了成一个计数器,可做自增1,自减1或重置操作。一般用该库可以追踪一个mapping中元素个数,ERC721的token id和统计请求次数等。原创 2023-07-07 23:45:16 · 119 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第4期——Base64.sol
Base64库是一个专门用于Base64编码的工具库。原创 2023-07-06 23:55:39 · 223 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第3期——Arrays.sol
Arrays库是一个专门作用于uint256[] storage / address[] storage / bytes32[] storage的工具库。原创 2023-07-04 20:45:09 · 342 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第2期——StorageSlot.sol
StorageSlot库是用于向storage slots中读和写基本类型数据。使用可升级合约时往往会使用该库用于避免storage slot冲突。原创 2023-07-03 16:49:06 · 292 阅读 · 0 评论 -
Michael.W基于Foundry精读Openzeppelin第1期——Address.sol
如果call调用的方法中产生revert,本函数将解析出该revert的信息并在本层以相同的内容引发revert(正常solidity的external调用就是这样的行为)。注意:但是有个特例:由于一个合约地址的code会在该合约的constructor函数执行完才被存储,所以如果另外一个合约在它的constructor函数中对该函数进行调用,那么返回值将是false。该方法是通过查看一个地址下code的长度来判断该地址是否是合约地址。如果单纯通过该方法的返回值来判断一个地址是否为合约地址其实是不安全的。原创 2023-07-03 00:45:43 · 451 阅读 · 0 评论 -
如何利用truffle向OKExChain部署合约
如何利用truffle部署合约1 初始化truffle工程2 添加合约代码3 修改truffle配置文件4 安装hdwallet-provider5 修改 1_initial_migration.js文件6 部署合约1 初始化truffle工程首先创建一个truffle工程:$ truffle init2 添加合约代码在工程内contracts路径下添加合约代码TokenERC20.sol:pragma solidity ^0.4.25;interface tokenRecipient原创 2021-04-07 16:07:05 · 355 阅读 · 0 评论 -
如何用remix编译solidity工程中深度依赖的合约文件
如何用remix编译solidity工程中深度依赖的合约文件现在的一些defi项目的源代码中,各个sol文件之间都存在深度依赖的现象:如何将其快捷地放到remix中进行编译和部署呢?这里需要借用一个小工具:truffle-flattener,并且本机已经安装了truffle环境。该合约项目也得是truffle工程。安装truffle-flattener:npm install -g truffle-flattener将项目中的某个合约文件及其依赖都合并写入一个文件里: truffle-fl原创 2021-04-01 14:41:32 · 755 阅读 · 0 评论 -
基于以太坊的次高价盲拍solidity智能合约(三)
基于以太坊的次高价盲拍solidity智能合约(三)6.用于进行投票和支付的内部合约Arbitration7.尾语6.用于进行投票和支付的内部合约Arbitration该内部合约用于卖家、买家、仲裁人对每一笔竞拍成功的交易进行投票,进行最后的支付操作。合约结构如下: contract Arbitration{ //仲裁人地址 address payable arbitrato...原创 2019-03-01 10:27:00 · 392 阅读 · 0 评论 -
基于以太坊的次高价盲拍solidity智能合约(二)
4.揭标揭标的过程应该是本智能合约中最复杂且具有灵魂的关键步骤。当每个发起过竞标的用户,利用该标的隐式价格和密码进行揭标时。合约会对每一个标的信息(显式价格、隐式价格)同该商品实例中的最高竞价和次高竞价进行比较,以此来更新商品中的最高价、次高价以及最高价标的发起者。同时进行相关的返款操作。伪代码如下:if(标内的显式价格>标内的隐式价格){ //退款}else...原创 2019-02-28 23:40:57 · 395 阅读 · 0 评论 -
基于以太坊的次高价盲拍solidity智能合约(一)
基于以太坊的次高价盲拍solidity智能合约(一)1.功能描述竞标原则揭标原则仲裁原则仲裁投票原则代码实现1.定义竞标商品结构2.卖家添加竞拍商品至商城3.竞标1.功能描述该合约主要功能描述如下:用户A发起盲拍项目,即提出拍卖申请。竞标原则1.所有人都可以对任何一个盲拍项目发出拍卖申请。2.竞拍用户每次出价都需要给出一个对外可见的价格(显式价格),同时给出一个自己心里认为可以接受的价...原创 2019-02-28 21:52:30 · 688 阅读 · 0 评论