solidity
白速龙王的回眸
一命二运三风水
四积功德五读书
六名七相八敬神
九交贵人十养生
展开
-
Metamask + remix:在ropsten测试链上取出已经部署的合约并进行一些操作
本地再次编译已部署合约这里我们部署的还是之前说到的这个librarytest查找已部署合约在ropsten上的地址:这是本人的最近三个交易,看看合约创建的交易:很好,看到我的地址了:0xcc67ff70259fa82d4bd29e9075268816af9df9b8回到remix使用ataddress功能点击at address 把合约搞出来:你看,确实搞出来了,然后我们把11 replace 成22,来:来确认一下交易:确实,这个记录上链了:最后看看ethersca原创 2021-10-12 15:03:00 · 1623 阅读 · 0 评论 -
solidity:库函数编写与调用
举一个栗子:pragma solidity ^0.4.16;library Search { function indexOf(uint[] storage self, uint value) public view returns (uint) { for (uint i = 0; i < self.length; i++) if (self[i] == value) return i;原创 2021-10-12 14:19:30 · 1457 阅读 · 0 评论 -
智能合约solidity:创建子合约,同时给子合约一些启动资金
话不多说,直接上源码:pragma solidity ^0.4.0;contract D{ uint public x; uint public myMoney; function D(uint a) public payable{ x = a; } function checkMoney() public{ myMoney = this.balance; }}contract C{ D public d;原创 2021-09-28 15:03:56 · 530 阅读 · 0 评论 -
solidity智能合约:delegate调用的参数映射问题,以及suicide函数
背景:在过去版本的evm中,mark通过delegatecall会调用steal.innocence(),从而将mark销毁掉,并将mark中的钱送往owner中注意:这里的owner就是steal的创建者这样往mark存钱的人就很冤枉delegate的参数映射优化:应该是由于evm升级的缘由,通过delegatecall调用的函数如果涉及到原合约的storage变量,会按顺序映射回本合约的storage变量中这样下来,通过delegatecall的可控性就增强了。。。测试代码:prag原创 2021-09-26 16:33:34 · 269 阅读 · 0 评论 -
智能合约solidity:委托调用实例
背景:1.往一个合约存钱2.通过delegatecall另一个合约得到本合约的balance3.必须采用storage区域变量存储,否则单纯的return会无感知,因为call只会返回bool4.两个合约的参数名字可以不相同,返回的值根据参数的顺序srccontract testBalance{ uint public money1; uint public money2; function balanceOf() public constant returns(uint原创 2021-09-26 15:59:16 · 369 阅读 · 0 评论 -
solidity:简单众筹合约及其调用流程
函数解释:newCampaign:创建公司受益人以及筹款目标contribute:进行捐赠,并将捐赠名单计入结构体CheckGoalReached:若达到众筹目标,清空amout,并将goal转给受益者调用次序说明:合约代码:pragma solidity ^0.4.11;contract CrowdFunding{ struct Funder{ address addr; uint amout; } struct原创 2021-09-26 11:27:00 · 357 阅读 · 0 评论 -
solidity:合约之间的转账和函数调用
背景:两个合约间完成转账,并且在一个合约中调用另一个合约的函数通过call()分别进行有函数名的含参调用或者callback匿名函数的回调源代码:pragma solidity ^0.4.0;contract AddrTest{ event logdata(bytes data); //callback func function() payable{ logdata(msg.data); } function getB原创 2021-09-26 10:03:13 · 1517 阅读 · 0 评论 -
solidity:外部合约调用实例
背景:在Oracle合约中完成存取操作在OracleUser中调用Oracle进行存储操作后面调用Oracle中的reply实现对OracleUser的回调调用关系图:源代码:pragma solidity ^0.4.11;contract Oracle{ struct Request{ string data; function(string memory) external callback; } Request[] reques原创 2021-09-25 13:46:24 · 675 阅读 · 0 评论 -
remix_solidity:library + contract在一个合约中分开部署
前言:通过将一系列有特定功能的函数放入library中,并将其设置为internal这就可以提供给下面的contract一些接口举栗子:library放的是对数组的操作map实现对数组中每一个函数进行某个函数操作reduce实现对数组进行相邻元素累积函数操作range生成一个从0到n - 1的数组然后在contract中一次调用range,map,reduce实现:0的平方到n - 1的平方之和的计算pragma solidity ^0.4.16;library ArrayUtils原创 2021-09-24 23:21:49 · 381 阅读 · 0 评论