火星链 火星链
Ctrl+D收藏火星链
首页 > Polygon > 正文

ACT:本体技术视点 | Python智能合约开发学起来

作者:

时间:1900/1/1 0:00:00

01前言

在之前的技术视点文章中,我们介绍了目前本体主网支持的智能合约体系以及相应的智能合约开发工具SmartX。很多小伙伴都想上手练一练。在本期的本体技术视点中,我们将正式开始讲述智能合约语法部分。本体的智能合约API分为7个模块,分别是Blockchain&BlockAPI、RuntimeAPI、StorageAPI、NativeAPI、UpgradeAPI、ExecutionEngineAPI以及Static&DynamicCallAPI。本期我们将介绍?Blockchain&BlockAPI,这是本体智能合约体系中最基础的部分。其中,BlockchainAPI支持基本的区块链查询操作,如获取当前块高等;BlockAPI支持基本的区块查询操作,如查询指定区块交易数等。同时,文末将提供视频讲解。

本体将构建波卡平行链将DeID解决方案集成至波卡网络:11月11日,本体Ontology宣布与Polkadot合作,将其分布式ID解决方案DeID集成到Polkadot上,以加强两个生态系统之间的协作。至此,本体将构建一个Polkadot平行链,并提供与DeID和跨链协作相关的一组信用基础架构服务。[2020/11/11 12:18:51]

在这之前,小伙伴们可以在本体智能合约开发工具SmartX中新建一个合约,跟着我们进行操作。

02?BlockchainAPI使用方法

智能合约函数的引用与Python的引用如出一辙。开发者可以根据需要引入相应的函数。例如,下面语句引入了获取当前最新块高函数GetHeight和获取区块头函数GetHeader。

本体将gas费从500上调至2500:本体(ONT)在电报群表示,根据最新发布经济模型,从7月7日(UTC)起,本体链上gas费将从500调整为2500,gaslimit保持不变。所有本体Triones节点将在此时间之前进行此项调整。如果上述调整未能及时进行,则链上用户可能无法正常进行ONT或ONG交易。节点申请的500ONG质押合约费用保持不变。[2020/7/3]

2.1?GetHeight

开发者可以使用GetHeight来获取当前最新块高,具体例子如下。在后面的例子中,为了节省空间,我们将省略Main函数,小伙伴在练习的时候可以根据需要加入。

2.2?GetHeader

OKEx支持本体主网映射及代币兑换:根据ONT官方消息,本体(ONT)主网将于2018年6月30日上线,并将于7月正式开启ONT主网换币工作。OKEx发布公告称会为用户完成映射,自动兑换为ONT新币。[2018/6/8]

开发者可以使用GetHeader来获取区块头,参数是某个块的块高。具体例子如下:

2.3GetTransactionByHash

开发者可以使用GetTransactionByHash函数通过交易哈希获取交易。交易哈希以bytearray的格式,作为参数传入GetTransactionByHash。这个函数的关键在于如何转换将十六进制格式的交易哈希转变为bytearray格式的交易哈希。我们以16进制格式的交易哈希为例,实现将十六进制格式的交易哈希转变为bytearray格式的交易哈希。示例哈希如下:

本体将于3月底上线测试网络及路线图:据本体(ONT)官方社区,ONT将在3月底上线测试网络和路线图。据早先报道,本体项目曾入选中国工信部开源计划。目前ONT全球均价2.06美元,涨幅32.02%。[2018/3/28]

首先,将该交易哈希反序得到:

开发者可以通过SmartX提供的转换工具HexNumber(littleendian)<-->Number实现这一步。然后,将其转成bytearray格式:

开发者可以通过SmartX提供的转换工具String<-->ByteArray实现这一步。最后,将得到的bytearray转换成相应的字符串:

GetTransactionByHash函数通过交易哈希获取交易的例子如下:

2.4?GetTransactionHeight

开发者可以使用GetTransactionHeight函数通过交易哈希获取交易高度。我们还是以上个例子中的哈希为例:

2.5?GetContract

开发者可以使用GetContract函数通过合约哈希获取合约。其中,合约哈希的转换过程与上面讲到的交易哈希转换过程一致。

2.6?GetBlock

开发者可以使用GetBlock函数获取区块。有两种方法可以获取指定区块:1.通过块高获取区块:

2.通过区块哈希获取区块:

03?BlockAPI使用方法

BlockAPI中可供引用的函数有三个,它们分别是GetTransactions、GetTransactionCount和GetTransactionByIndex。我们依次介绍下这三个函数。

3.1?GetTransactionCount

开发者可以使用GetTransactionCount函数获取指定区块的交易数量。

3.2?GetTransactions

开发者可以使用GetTransactions函数获取获取指定区块的所有交易。

3.3GetTransactionByIndex

开发者可以使用GetTransactionByIndex函数获取指定区块的指定交易。

04?后记

Blockchain&BlockAPI在智能合约中起到查询区块链数据和区块数据的作用,是智能合约最不可缺少的一部分。在后面的技术视点中,我们将讨论如何使用其它API,探讨它们和本体区块链的交互。本期讲述的所有语法部分我们提供了中文视频,小伙伴们可以观看和学习。

视频观看链接:https://v.qq.com/x/page/x0822d6u8xl.html

*详细代码信息可能显示不全,可参考:https://mp.weixin.qq.com/s/t1sX3aDi5WVTthnc4sMHkQ

标签:GETACTTRAIONGETCTractonSights DeFi Traderprivacyandprotection

Polygon热门资讯
数字金融:浙江现代数字金融科技研究院理事长长周子衡:数字法币开启了资产数字化的革命

浙江现代数字金融科技研究院理事长周子衡近期刊文《数字法币的创新性冲击》,文章表示,数字法币是对整个银行货币体系的创新,数字法币创新有四:一是全覆盖,实现普惠金融;二是消除流通中的利息压力.

1900/1/1 0:00:00
ECH:8月全球披露区块链应用项目52个 政府部门成为主导力量

2019年8月,全球新增区块链应用项目再次进入低谷。根据互链脉搏研究院不完全统计,2019年8月,全球共披露区块链应用项目52个,环比7月份下滑了23.5%.

1900/1/1 0:00:00
FER:“有趣且具长期潜力” 苹果高管首谈加密货币

金色财经比特币9月5日讯自2014年推出ApplePay之后,苹果公司便一直是移动支付行业里的重要参与者,上个月他们还与高盛合作推出了AppleCard.

1900/1/1 0:00:00
SEC:Veritaseum支持者发布在线公开请愿书要求美国SEC解释其行为

据ICOExaminer报道,最近Veritaseum的支持者发布一份在线公开请愿书,要求美国SEC解释其行为。Veritaseum是一个P2P资本市场平台,已被美国SEC执行的法院命令叫停.

1900/1/1 0:00:00
区块链:汇丰银行行长廖宜建:汇丰应用区块链技术推动贸易数字化

汇丰银行行长廖宜建在9月6日召开的“中国发展高层论坛”上表示,近年来,科技创新正主导着金融服务业的发展和演变.

1900/1/1 0:00:00
BiKi平台关于DFP五折抢购将于今日13:00重新开启的公告

尊敬的用户:由于平台参数设置故障,导致DFP今日10:00开启的首轮五折抢购页面出现参数错误,应项目方要求,平台将于今日13:00—14:00重新开放DFP的5折抢购.

1900/1/1 0:00:00