视频| 本体技术视点 | Python智能合约教程之原生合约调用

01导语

上一期我们介绍了本体Python智能合约的合约执行API,本期我们将讨论如何通过NativeAPI来进行本体原生合约调用。原生合约调用最典型的功能就是合约转账,这也是整个智能合约最核心的部分。NativeAPI只有1个API。用法如下:

同时,使用Invoke函数需要内建的state函数辅助来封装参数,用法如下:

下面我们具体讲述一下这两个API的使用方法。在这之前,小伙伴们可以在本体智能合约开发工具SmartX中新建一个合约,跟着我们进行操作。跟以前的API讲解一样,在文章最后我们将给出这次讲解的所有源代码以及视频讲解。

天风证券:科技巨头布局元宇宙 视频技术是未来核心创新:12月19日消息,天风证券副总裁、研究所所长赵晓光在12月16日第十届银华基金资产管理论坛上,对于最近大热话题元宇宙发表了最新观点。 赵晓光认为,元宇宙是通过硬件技术让整个科技的发展进入一个新的阶段、新的周期,正确认识元宇宙,我们需要从哲学角度、科技巨头角度、历史角度、音频视频角度以及中国发展角度五大角度综合看待。 未来,无论是Facebook(Meta)、苹果、微软,谷歌、亚马逊,还是华为、字节跳动等都会在这方面做积极的布局,这将会是巨头们必争的一个赛道。[2021/12/19 7:48:37]

02NativeAPI使用方法

动态 | 信息窃取木马Qulab通过YouTube比特币视频传播:据cointelegraph援引BleepingComputer的报道,信息窃取和剪贴板劫持木马Qulab正在通过YouTube上所谓的免费比特币欺诈视频传播。据报道,这些视频描述了一种工具,可让用户通过视频说明中的链接获得免费比特币。链接将指向下载所谓的工具,却实际上是Qulab木马。下载后,该木马实际上需要安装才能部署。除了试图窃取用户信息之外,Qulab还会试图通过扫描复制到Windows剪贴板的字符串,识别出加密地址并替换为攻击者的地址以偷偷窃取加密货币。[2019/5/30]

同样,使用这两个函数前需要引入。下面两条语句分别引入了这两个函数。

动态 | AMD视频卡巨头蓝宝科技推出区块链图形卡:据cdrinfo消息,AMD视频卡巨头蓝宝科技(SAPPHIRE Technology)推出SAPPHIRE RX 570 16GB HDMI区块链图形卡,这是GPU区块链产品系列中的第一款产品,用于支持最近推出的Grin和其他加密货币的采矿。[2019/1/22]

2.1本体原生合约列表

目前,本体可供使用的原生合约有六个。以下就是可以使用NativeAPI调用的原生合约列表:

在合约中,将合约地址转成bytearray形式传入Invoke即可。例如,需要调用ONTToken合约时,可以先将ONTToken合约对应的地址转成相应的bytearray形式,再进行相应的Invoke函数调用。在进行Invoke函数调用时,传入的参数分别为版本号,合约地址,调用的合约方法以及state函数封装的转账相关参数。这里特别要注意的一点是,在进行ONG的合约转账时,所填数量是实际数量的10^9倍。即,如果需要转10个ONG,那么数量需要填为10^10。而在采用ONTO或者Cyano等钱包转账时,所填数量即为转账数量。

2.2转账合约代码

下面我们给出一个完整的示例,演示如何使用Python语言来实现ONT以及ONG的转账功能。下述代码以传入的转出账户和转入地址参数类型为string为例实现该合约。另外,也可以以address为类型的账户参数进行传递,从而达到节省调用Gas费用的目的。该合约代码流程如下:

定义合约地址变量contract_address_ONT,contract_address_ONG;

将转出地址和转入地址从base58格式转成bytearray格式;

验签,确认转出地址与合约调用地址为同一地址;

state函数封装转账相关参数;

Invoke函数调用ONTToken和ONGToken原生合约转账;

通过返回res判断转账是否成功。返回值b''为成功,成功则推送事件“transfersucceed”。

03SmartX实践

接下来,小伙伴们可以在SmartX上进行操作,动手编译和运行上述提供的合约示例代码。具体步骤如下:1.编译合约。首先在SmartX中新建一个合约项目,并将代码放入该项目中进行编译。

2.部署合约。部署过程中如需申请测试币,申请地址为https://developer.ont.io/applyOng。部署结果示意如下:

3.执行转账。执行transfer函数进行转账前需要进行相关参数设置。在该示例中,需要填入发送地址、接收地址、代转账的ONT数量以及ONG数量:

4.转账成功。当转帐参数设置正确时,执行transfer函数将转账成功。上面所填的接收地址中将显示出收到的代币:

04总结

本次技术视点中我们介绍了本体区块链的NativeAPI,开发者可以使用NativeAPI来进行本体原生合约调用。原生合约调用最典型的功能就是合约转账,这也是整个智能合约最核心的部分。在下一期技术视点中,我们将介绍UpgradeAPI,探讨如何在本体智能合约中进行合约升级。本期讲述的所有语法部分我们提供了中文视频,小伙伴们可以观看学习。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

酷币下载美联储降息了 比特币怎么没涨?

昨晚美联储又降息了,上一次降息是十一年来首次,所以这次降息是十一年来,第二次。不过也只是符合预期的降息幅度而已,消息一出,美股跌了,黄金跌了,比特币其实也稍微地跌了.

[0:15ms0-1:273ms