当前位置:首页 > 物联网 > 区块链
[导读] 目前以太坊的编程语言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还是值得我们去关注的。

来源: 区块链研究实验室

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

深圳2024年4月17日 /美通社/ -- 今日,华为举办全球分析师大会,在"加速迈向网络智能化"主题论坛中,华为数据通信产品线副总裁赵志鹏发表了主题演讲,阐述了华为全面引入AI技术,从组件级、任务级...

关键字: NET 华为 智能化 网络

郑州2024年4月22日 /美通社/ -- 为助力国家乡村振兴战略,日前,中国平安组织开展"走进佛坪,网络兴农——乡村振兴佛坪行"公益活动。为助力解决农产品滞销问题,中国平安承诺2024年将消费帮扶采购佛坪县特色农产品金...

关键字: 网络 直播带货 硬件

随着科技的飞速发展,5G技术已经逐渐普及,越来越多的消费者选择使用5G手机。然而,在使用5G手机的过程中,不少用户反映网速较慢,甚至有时还不如4G网络。那么,5G手机网速慢究竟是怎么回事呢?本文将从多个方面进行分析,帮助...

关键字: 5G技术 手机 网络

随着信息技术的飞速发展,网络已成为现代社会不可或缺的基础设施。从家庭娱乐、企业运营到国家安全,网络的应用日益广泛且深入。然而,网络的复杂性和日益增长的安全风险,使得网络管理成为一项至关重要且充满挑战的任务。本文将详细探讨...

关键字: 网络 信息技术 安全风险

数字化和技术已经彻底改变了我们的世界,也改变了地球上几乎每个人的生活。随着无线数据需求的持续增长,移动连接和云技术在日益移动化的演进过程中发挥了重要作用。爱立信近期发布的移动报告预测,到2029年,数据流量将增长三倍,达...

关键字: 数字化 网络 云原生 机器人

计算机网络在人们的日常生活和工作中的作用越来越大,与此同时网络的安全性也受到了冲击。

关键字: 通信协议 通信 网络

在现代科技中,网络连接已经成为了我们日常生活中不可或缺的一部分。无论是家庭、办公室还是公共场所,我们都需要一个稳定可靠的网络连接来满足我们的各种需求。而在这个网络连接的背后,有一个非常重要的组成部分,那就是RJ45接口。...

关键字: rj45接口 物联网 网络

爱立信发布全球首个为开发者与企业提供通信和网络API的商业化运营商合作 API平台将为运营商开辟网络投资变现新途径,并驱动移动基础设施投资 北京2023年9月22日 /美通社/ -- 近日,爱立信利用网络...

关键字: API 爱立信 网络 德国电信

丹麦哥本哈根2023年9月21日  /美通社/ -- 作为客户体验、数据变现和云通信解决方案领域的全球领导者,Comviva 今日宣布与英国电信服务提供商 Leba...

关键字: COM 网络 VI BSP

北京2023年9月19日 /美通社/ -- 随着教育部和科技部公布了2023年度"高等学校学科创新引智计划"(简称"111 计划")名单,湘潭大学申报的"数学学科创新引智...

关键字: 智能计算 并行计算 子系统 网络
关闭
关闭