• 北方也有龙舟赛!秦皇岛45支龙舟队共角逐(图) 2019-07-13
  • 点亮文化自信之灯,塑造大国气质 2019-07-06
  • 台生为何青睐大陆高校(两岸聚焦) 2019-07-04
  • 交大昂立:2017年年度股东大会决议公告 2019-06-30
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-06-29
  • 以产业金融促广州实体经济发展 2019-06-29
  • 警方揭秘世界杯赌球庄家:不怕你赢钱,就怕你不玩 2019-06-29
  • 一语惊坛(5月9日):推动中朝友谊,造福两国人民。 2019-06-19
  • 马克思报刊批判的理性光辉 2019-06-19
  • 工信部:我国4G用户达10.6亿户 宽带提速效果显著 2019-06-18
  • “一带一路”机遇下本土设计师“走出去”才是硬道理 2019-06-12
  • 把课堂上的重点难点录下来 教学类短视频平台前景几何 2019-06-06
  • 公有制结束、高效益之下、就会大量的国有企事业单位的冗员进入社会生产一线。社会运作进入正轨。 2019-06-06
  • 在媒体融合中彰显地市级报纸副刊的特色 2019-06-02
  • 既然主贴跟帖都不给发 那我就让管理彻底一边倒去吧,我也彻底休息了。 2019-05-25
  • 文章阅读页通栏

    安徽福利彩票开奖查询:基于solidity智能合约在tron网络中进行异步调用

    来源: 区块链研究实验室 作者:链三丰
    目前以太坊的编程语言Solidity还是非?;?。Tron也使用Solidity,因此具有相同的限制。 目前,Solidity将智能合约简化为仅存储数值并进行一些基本的数学......
    目前以太坊的编程语言Solidity还是非?;?。Tron也使用Solidity,因此具有相同的限制。

    目前,Solidity将智能合约简化为仅存储数值并进行一些基本的数学运算。 并且大多数智能逻辑都写在智能合约之外:在DAPP或服务器中。

    #TRON中异步调用的两种情况是什么?

    · 外部调用...到数据库,Web服务,(分布式)文件系统,邮件服务,到NodeJS oracle以克服Solidity的限制等。
    · 自动回调...到合约本身调用代码(例如股息支付)。

    为了实现这两个场景,我们需要进行TRON扩展。这是如何做到的:

    步骤1:下载客户端库

    输入下面链接,进行客户端库下载,
    https://github.com/CaptainJavaScript/Tron

    步骤2:创建智能合约

    您可以复用位于客户端库中的HelloSeaman_v1.sol示例。只需从usingCaptainJSAtTron_v2扩展你的合同,整个魔法就会开始发生:

    pragma solidity ^0.4.25;

    import "./usingCaptainJSAtTron_v2.sol";

    contract HelloSeaman_v1 is usingCaptainJSAtTron_v2 {

        constructor () public { }

        ...
    }

    要在TRON中实现异步调用,只需使用Run-method执行NodeJS代码,或调用Callback方法进行简单回调。

    ...
    uint constant EXAMPLE1 = 1;
    uint constant EXAMPLE2 = 2;

    function Demo() public payable 
    {
      Run(EXAMPLE1, "json:https://api.kraken.com/0/public/Ticker?
    pair=ETHUSD", 
    "result.XETHZUSD.a[0]", "-", 2, 5000);    
      Callback(EXAMPLE2, 20, 100000);
    }

    function CaptainsResult(uint UniqueIdentifier, 
    string  Result, bool IsError) external onlyCaptainsOrdersAllowed {
      emit LogEvent(
        concat("CaptainsResult received with UID = ", 
    uintToString(UniqueIdentifier), " and a result of ", Result)
      );
    }

    function CaptainsCallback(uint UniqueIdentifier) external 
    onlyCaptainsOrdersAllowed {
      emit LogEvent(
        concat("Callback received with UID = ", uintToString(
    UniqueIdentifier))
      );
    }

    步骤3:调用TronWeb的智能合约

    将合同部署到SHASTA后,从GitHub存储库编辑Test-Shasta-public.js文件,

    1. 添加您的私钥(第6行)
    2. 更改合同的地址(第11行) - 否则你将调用我的演示合同地址
    3. 在第一次运行中调用SetCaptainsAddress()

    const TronWeb = require('tronweb');
    const SHASTA = 'https://api.shasta.trongrid.io';

    const tronWeb = new TronWeb(
        SHASTA, SHASTA, SHASTA,
        '<your private key goes here'
    );

    const OwnersWalletAtSHASTA = "<your shasta wallet address>";
    ...
    const HelloSeaman_v1AtSHASTA = "TB4TEvEnbjM66ici2QjP92rpYkJWJPJajS";

    ...

    function RunTest() {
        var Budget = ToTRX(0.01);
        var Transfer = ToTRX(0.5);
        console.log("RunTest / Budget = " + Budget + ", Transfer Value = 
    " + Transfer);
        SeamansContract.Run(1, "math:log2(16)", "", "mathjs", 1, Budget).
    send({shouldPollResponse: true, callValue: Transfer}).catch(function(
    err) { console.log(err); }).then( console.log("RUN EXECUTED") );
    }

    function SetCaptainsAddress() {
        console.log("SetCaptainsAddress to " + CaptainsAddressAtSHASTAhex
    );
        SeamansContract.SetCaptainsAddress(CaptainsAddressAtSHASTAhex).
    send({shouldPollResponse: true, callValue: 0}).catch(function(err) 
    { console.log(err); }).then( console.log("SETCAPTAINSADDRESS EXECUTED"
    ) );
    }

    function Demo() {
        console.log("Demo run...");
        SeamansContract.Demo().send({shouldPollResponse: true, callValue: 
    ToTRX(1)}).catch(function(err) { console.log(err); }).then
    ( console.log("DEMO EXECUTED") );
    }

    async function Go() {
        ...
      SeamansContract = await tronWeb.contract().at(HelloSeaman_v1AtSHASTA
    );

        SetCaptainsAddress();
        // RunTest();
        // Demo();
    }

    Go();

    调用完成。SHASTA还是值得我们去关注的。
    关键词: solidity  智能合约  
    0/300
    ?
  • 北方也有龙舟赛!秦皇岛45支龙舟队共角逐(图) 2019-07-13
  • 点亮文化自信之灯,塑造大国气质 2019-07-06
  • 台生为何青睐大陆高校(两岸聚焦) 2019-07-04
  • 交大昂立:2017年年度股东大会决议公告 2019-06-30
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-06-29
  • 以产业金融促广州实体经济发展 2019-06-29
  • 警方揭秘世界杯赌球庄家:不怕你赢钱,就怕你不玩 2019-06-29
  • 一语惊坛(5月9日):推动中朝友谊,造福两国人民。 2019-06-19
  • 马克思报刊批判的理性光辉 2019-06-19
  • 工信部:我国4G用户达10.6亿户 宽带提速效果显著 2019-06-18
  • “一带一路”机遇下本土设计师“走出去”才是硬道理 2019-06-12
  • 把课堂上的重点难点录下来 教学类短视频平台前景几何 2019-06-06
  • 公有制结束、高效益之下、就会大量的国有企事业单位的冗员进入社会生产一线。社会运作进入正轨。 2019-06-06
  • 在媒体融合中彰显地市级报纸副刊的特色 2019-06-02
  • 既然主贴跟帖都不给发 那我就让管理彻底一边倒去吧,我也彻底休息了。 2019-05-25
  • 香港赛马会特码资料 八口麻将机厂家批发 快乐12有没有算法技巧 三分彩稳赚技巧 河北十一选五前三直测算 双色球走势图浙江风采 山西快乐十分开走势 浙江20选5开奖结 福彩3d出号走势图彩吧 福彩934的组选关 陕西十一选五开奖直播 快乐12开奖号码 六场半全场怎么买 黑白小姐 华东15选5走势图彩经网