您的位置:主页 > 联系我们 > 综合新闻

学习solidity的一个简单智能合约(2)——对冲 - qq_39733285的博客

发布时间:2019-05-13 00:07  浏览:

版权申报:冠词是视频博客作者的独创的文字。,几乎不博主答应,不得相信转载。。

白皮书,以太网上有三个用功。。率先是筑堤适合。,为用户弥补更可怕的的方法来实行和厕。包含子钱币,筑堤衍生品,对冲合约,储蓄金库,圣约书,甚至相当片面的雇用和约。。其次类是半筑堤适合。,在这一点上有钱币,但也有大方的非钱币在实地工作的。,一点钟完满的例是处置计算成绩的纯净的奖品。。充分地,静静地一点钟完全的非财务适合,如在线开票和。

随即土地白皮书上的一点钟例——对冲合约,就是说,筑堤衍生品是书面形式的(唯一的仿照的),我不察觉方式就任坚定地链。,写智能和约的认为是它特殊要紧。

这是白皮书的一点钟例。:

当自己的事物这些核心元素都可用时。,对冲合约寻找会是上面的透气:

等候A进入1000枚乙醚金币。。.

等候B 输出1000枚乙醚金币。。

经过查询datum的复数弥补和约,1000美钞乙醚金币的代价。,像,X元,记得记载。

30天后,容许A或B“重行促进感受性“合约以发送代价X元的以太币重行查询datum的复数供给和约,获取新的价钱并将其计算为A并发送下剩的以太网C。

pragma solidity ^0.4.0;

//使完美筑堤衍生品对冲合约

/*等候A进入1000枚乙醚金币。。.
等候B 输出1000枚乙醚金币。。
经过查询datum的复数弥补和约,1000美钞乙醚金币的代价。,像,X元,记得记载。
30天后,容许A或B“重行促进感受性“合约以发送代价X元的以太币
重行查询datum的复数供给和约,获取新的价钱并将其计算为A并发送下剩的以太网C。*/

正文中智能和约的含糊限度局限表现;

contract hedge{
    
    struct giver{
        address Gaddr;[党的演说]
        bool YN;/或即使开票
        uint 薪水;/薪水
    }
    
    struct reciever{
        address 地址/地址
        bool YN;/或即使开票        
        uint 薪水;/薪水
    }
    
    address p1;
    address p2;
    映照(地址) => 贺礼者) givers;
    映照(地址) => 接受者) 累犯
     
    
function initializeA(address giverA){
        // 设定初值
        授予者[量子] = 1000 ether;
        授予者[吉维拉] = true;
        p1 = giverA;
        授予者[量子] = 0 ether;
    }
    
    function initializeB(address recieverB){
        // B设定初值
       薪水[薪水] = 1000 ether;
       食盐[食盐] = true;
       p2 = recieverB;
       薪水[薪水] = 0 ether;
    }
uint  hedgevalue;
    
    function hedging1(uint 好转物) returns (UIN)
        hedgevalue = 1000 ether /exchangerate ;
        return  hedgevalue;
    }

bool success; function hedging2(uint exchangerate , uint 时期) 退货(BOOL) 成) 万一(时期) != 30) return false ; 万一授予者[P1] == 假) return false; 万一([P2])yn == 假) return false; 授予者[P1] = hedgevalue * exchangerate; 薪水[P2] = 2000 ether - hedgevalue * exchangerate; return true ; } function checkA(address giverA)returns(UIN) 万一(成) 授予者[量子] = 授予者[P1] ; else 授予者[量子] = 1000 ether; return 授予者[量子]; } function checkB(address recieverB)returns(UIN) 万一(成) 薪水[薪水] = 薪水[P2]; else 薪水[薪水] = 1000 ether; return 薪水[P2]; }}

以上所述是整个编码。,接下来将渐渐辨析。;

struct giver{
        address Gaddr;[党的演说]
        bool YN;/或即使开票
        uint 薪水;/薪水
    }
    
    struct reciever{
        address 地址/地址
        bool YN;/或即使开票
        uint 薪水;/薪水
    }

率先是决定市单方党。,即使开票(默许缺陷),薪水)

function initializeA(address giverA){
        // 设定初值
        授予者[量子] = 1000 ether;
        授予者[吉维拉] = true;
        p1 = giverA;
        授予者[量子] = 0 ether;
    }
    
    function initializeB(address recieverB){
        // B设定初值
       薪水[薪水] = 1000 ether;
       食盐[食盐] = true;
       p2 = recieverB;
       薪水[薪水] = 0 ether;
    }

此后对两边停止设定初值。,每个理由进入1000以太。;此后致谢市。,乔治英国数学家和逻辑学家变为真;第三分离是用记忆力方法同意地址,附近的后续处置。,万一无量子,运用均衡。,结果却运用四分之一转会(为下一点钟变卖完成预备),眼前正是将amount变为0来表现将1000ether转变成对冲基金(在实际生活中则有很高的风险,显然是不受欢迎的的。。

uint  hedgevalue;
    
    function hedging1(uint 好转物) returns (UIN)
        hedgevalue = 1000 ether /exchangerate ;
        return  hedgevalue;
    }

这长是对冲的第影片,本汇率将1000醚替换成等等钱币;

 bool success;
    function hedging2(uint exchangerate , uint 时期) 退货(BOOL) 成)
        万一(时期) != 30) return false ;
        万一授予者[P1] == 假) return false;
        万一([P2])yn == 假) return false;
        授予者[P1] = hedgevalue * exchangerate;
        薪水[P2] = 2000 ether - hedgevalue * exchangerate;
        return true ;
    }

继续进行便是对冲的其次部,30 几天后皈依乙醚金币。;值当在意的是,BOOL是用来避免事务舍弃的。;

充分地两分离是决定市后的薪水。;

值当提示朕,在汇率替换时,我运用的必须的,这在实体中同样不能相信的的。

顺序可以在ReMobe上调试。。

本文地址:http://www.aepconference.com/lxwm/6023.html
上一篇:上一篇:玻璃锅好吗 优缺点必知
下一篇:下一篇:没有了

无相关信息
Copyright © 2016-2017 大发dafa888 - dafa888 - dafa888下载 版权所有  地址: