您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

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

2022/11/24 5:59:20发布110次查看
上一期我们介绍了本体 p 智能合约的合约执行 api,本期我们将讨论如何通过 n api 来进行本体原生合约调用。原生合约调用最典型的功能就是合约转......除了先天优势,阿蒂斯atis本身的产品属性也极为高端,在市场竞争中才能保持不败。
上一期我们介绍了本体 p 智能合约的合约执行 api,本期我们将讨论如何通过 n api 来进行本体原生合约调用。原生合约调用最典型的功能就是合约转账,这也是整个智能合约最核心的部分。n api 只有个 api。用法如下:
同时,使用 i 函数需要内建的函数辅助来封装参数,用法如下:
下面我们具体讲述一下这两个 api 的使用方法。在这之前,小伙伴们可以在本体智能合约开发工具 sx 中新建一个合约,跟着我们进行操作。跟以前的api讲解一样,在文章最后我们将给出这次讲解的所有源代码以及视频讲解。
n api 使用方法
同样,使用这两个函数前需要引入。下面两条语句分别引入了这两个函数。
..o.ni
.
. 本体原生合约列表
目前,本体可供使用的原生合约有六个。以下就是可以使用 n api 调用的原生合约列表:
在合约中,将合约地址转成形式传入 i 即可。例如,需要调用 ont t 合约时,可以先将 ont t 合约对应的地址转成相应的形式,再进行相应的 i 函数调用。在进行 i 函数调用时,传入的参数分别为版本号,合约地址,调用的合约方法以及函数封装的转账相关参数。
这里特别要注意的一点是,在进行 ong 的合约转账时,所填数量是实际数量的^倍。 即,如果需要转个 ong,那么数量需要填为^。而在采用 onto 或者 c 等钱包转账时,所填数量即为转账数量。
__ont = ('\\\\\\\\\\\\\\\\\\\\')
= (_, _, _) # 参数为转出地址,转入地址, 转账金额
= i(, __ont, '', [])
. 转账合约代码
下面我们给出一个完整的示例,演示如何使用 p 语言来实现 ont 以及 ong 的转账功能。下述代码以传入的转出账户和转入地址参数类型为为例实现该合约。另外,也可以以为类型的账户参数进行传递,从而达到节省调用g费用的目的。该合约代码流程如下:
. 定义合约地址变量 __ont,__ong;
. 将转出地址和转入地址从格式转成格式;
. 验签,确认转出地址与合约调用地址为同一地址;
.函数封装转账相关参数;
. i 函数调用 ont t 和 ong t 原生合约转账;
. 通过返回判断转账是否成功。返回值 '\' 为成功,成功则推送事件“ ”。
..s.rn, cw
..o.rbta
..o.ni
.
#
__ont = ('\\\\\\\\\\\\\\\\\\\\')
__ong = ('\\\\\\\\\\\\\\\\\\\\')
m(, ):
== '':
_ = []
_ = []
_ = []
_ = []
(_,_,_,_)
f
(_, _, _, _):
# 将地址转换成 格式地址
_=bta(_)
_=bta(_)
# 验签,调用方必须与转出地址为同一地址
cw(_):
# ont转账
_ &; :
= (_, _, _) # 函数用于封装转账相关参数
= i(, __ont, '', []) # 调用ont 原生合约转账
== '\':
n(' ')
:
n(' ')
# ong转账,流程同上
_ &; :
= (_, _, _)
= i(, __ong, '', [])
== '\':
n(' ')
:
n(' ')
:
n('cw ')
sx 实践
接下来,小伙伴们可以在 sx 上进行操作,动手编译和运行上述提供的合约示例代码。具体步骤如下:
. 编译合约。首先在 sx 中新建一个合约项目,并将代码放入该项目中进行编译。
. 部署合约。部署过程中如需申请测试币,申请地址为://.o。部署结果示意如下:
. 执行转账。执行函数进行转账前需要进行相关参数设置。在该示例中,需要填入发送地址、接收地址、代转账的 ont 数量以及 ong 数量:
. 转账成功。当转帐参数设置正确时,执行函数将转账成功。上面所填的接收地址中将显示出收到的代币:
总结
本次技术视点中我们介绍了本体区块链的 n api,开发者可以使用 n api 来进行本体原生合约调用。原生合约调用最典型的功能就是合约转账,这也是整个智能合约最核心的部分。在下一期技术视点中,我们将介绍 u api,探讨如何在本体智能合约中进行合约升级。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product