区块见闻 区块见闻
Ctrl+D收藏区块见闻

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

作者:

时间:

01导语

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

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

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

视频流媒体平台Livepeer公布NFTBerlin 2022黑客松Livepeer奖池获奖项目:6月10日消息,视频流媒体平台Livepeer公布NFTBerlin 2022黑客松中Livepeer奖池的获奖项目,第一名为Learn 2 earn平台BSquare,该平台旨在帮助Web2建设者进入Web3世界;第二名为双向Livepeer支持的流媒体平台Metastream,该平台支持在元宇宙内外共享内容;第三名为验证协议Videoracle,该平台使用户能够因帮助改进产品、服务和社区而获得奖励。[2022/6/10 4:16:51]

02NativeAPI使用方法

社交媒体平台TikTok正在审查加密相关视频:金色财经报道,社交媒体平台 Tik Tok 似乎已经改变规则和规定。许多与加密和区块链相关的视频被撤下,尽管用户说自己没有犯任何错。Tik Tok表示禁止任何宣传非法活动或受管制商品的视频。Lucas Dimos 在过去几个月里已经删除了几个视频。他怀疑,如果这种情况再次发生,他很可能会永远不再使用 Tik Tok。(livebitcoinnews)[2021/8/30 22:45:31]

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

2.1本体原生合约列表

美国饶舌巨星Snoop Dogg为马斯克发布420狗狗币视频:美国饶舌巨星Snoop Dogg艾特了DOGE的最大推手马斯克,祝贺他参加4月20日“Doge Day ”。这位说唱歌手与Shiba-Inu(原始Doge表情中的那只狗)在YouTube上发布了一个名为“ Snoop Dogg 420 DogeCoin Video”的音乐视频。(U.today)[2021/4/21 20:43:47]

目前,本体可供使用的原生合约有六个。以下就是可以使用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,探讨如何在本体智能合约中进行合约升级。本期讲述的所有语法部分我们提供了中文视频,小伙伴们可以观看学习。

标签:APIEAPNATHAIAQUAPIGEAP币wANATHA币Chain Wars Essence

中币交易所热门资讯
TPS:BKEX Global 关于上线MSN并开通充提功能的公告_CHTT币

亲爱的BKEXer: BKEXGlobal将于新加坡时间2019年9月25日15:00上线MSN?.

ELLA:Stellar本周涨近50% “山寨季”为何迟迟不来?_flare币在哪卖

据比推数据,市值排名第10的加密货币Stellar在过去两天内迎来连续大幅上涨,本周涨幅已经接近50%。本周的加密货币市场,除了比特币之外的主要加密货币都有不俗表现.

AIN:游戏开发商Golden Compass与Baer Chain达成战略合作_RChain

近日,北美知名的游戏开发机构GoldenCompass与BaerChain签署战略合作协议,双方将在IP游戏、游戏研发及渠道运营等领域开展全方位的全球化业务合作.

HTT:关于WBFex平台上线DCS的公告_TPS

尊敬的WBFex用户: WBFex即将在开放区上线DCS/USDT交易对,具体时间安排如下:充值时间:2019年9月23日11:00交易时间:2019年9月23日18:00提币时间:2019年9.

ING:风险提示书Risk Disclosure_REN

InvestmentinBitcoins(oranyothercryptocurrency)involvesgreaterrisksthanassociatedwithinvestmentint.

比特币:万历十五年到咸丰十年的密码学:维吉尼亚加密法_HBCH价格

作者:村头二旧 今天的内容是密码学步入近代化的前奏,虽然还没有到比特币区块链的加密算法,但是,今天出现了一个真正意义上的东西:钥匙.