日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導讀] 目前以太坊的編程語言Solidity還是非常基礎(chǔ)。Tron也使用Solidity,因此具有相同的限制。 目前,Solidity將智能合約簡化為僅存儲數(shù)值并進行一些基本的數(shù)學運算。 并且大

目前以太坊的編程語言Solidity還是非?;A(chǔ)。Tron也使用Solidity,因此具有相同的限制。

目前,Solidity將智能合約簡化為僅存儲數(shù)值并進行一些基本的數(shù)學運算。 并且大多數(shù)智能邏輯都寫在智能合約之外:在DAPP或服務器中。

#TRON中異步調(diào)用的兩種情況是什么?

· 外部調(diào)用。..到數(shù)據(jù)庫,Web服務,(分布式)文件系統(tǒng),郵件服務,到NodeJS oracle以克服Solidity的限制等。

· 自動回調(diào)。..到合約本身調(diào)用代碼(例如股息支付)。

為了實現(xiàn)這兩個場景,我們需要進行TRON擴展。這是如何做到的:

步驟1:下載客戶端庫

輸入下面鏈接,進行客戶端庫下載,

https://github.com/CaptainJavaScript/Tron

步驟2:創(chuàng)建智能合約

您可以復用位于客戶端庫中的HelloSeaman_v1.sol示例。只需從usingCaptainJSAtTron_v2擴展你的合同,整個魔法就會開始發(fā)生:

pragma solidity ^0.4.25;

import “。/usingCaptainJSAtTron_v2.sol”;

contract HelloSeaman_v1 is usingCaptainJSAtTron_v2 {

constructor () public { }

。..

}

要在TRON中實現(xiàn)異步調(diào)用,只需使用Run-method執(zhí)行NodeJS代碼,或調(diào)用Callback方法進行簡單回調(diào)。

。..

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:調(diào)用TronWeb的智能合約

將合同部署到SHASTA后,從GitHub存儲庫編輯Test-Shasta-public.js文件,

1. 添加您的私鑰(第6行)

2. 更改合同的地址(第11行) - 否則你將調(diào)用我的演示合同地址

3. 在第一次運行中調(diào)用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();

調(diào)用完成。SHASTA還是值得我們?nèi)リP(guān)注的。

來源: 區(qū)塊鏈研究實驗室

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉