本教程从Alaya JS SDK的安装开始,分别讲述了连接Alaya网络并执行基本查询、转账及签名操作及智能合约交互的相关内容。本教程力求翔实地展现了Alaya JS SDK的使用方法,让开发者能够快速入门Alaya JS SDK。

转账交易

连接到Alaya网络并获取到Alaya网络的相关信息您已经成功了一半,但实际上如果要进行相关开发的话,账号相关的操作是非常必要的。毕竟如果没有账号,那么只能是Alaya旁观者,如果真要成为Alaya的参与者,账号是必不可少的。下面我们就从创建账号开始说明账号的使用及相关信息的获取。

账号

在开始之前,先大致介绍一下账号(Account)的概念:

Alaya使用了与以太坊相类似的账号体系,具体可以参照Alaya总体方案:

https://alaya.network/alaya-devdocs/zh-CN/Architecture#账户模型

账户:就像你的一个保险箱。在Alaya中会存储每个账户的状态。

私钥:私钥可以完全控制账户,所以私钥要妥善保存。私钥有两种表现形式:助记词(Mnemonic)和主密钥(Master Key)。助记词是12个单词,主要作用是帮助你记住密钥。请注意,如果你的助记词泄露,那么你的密钥就已经泄露。主密钥是一个64位16进制数。这个密钥一般在程序中使用,人为使用或记忆比较难。

公钥:可以看成你的账号地址或者银行卡号之类的。公钥进行一次hash操作之后生成地址。别人可以用地址(或者公钥)给你转账,当然也可以查看你的操作流水。

转账操作

无论是转账,还是后面其他的操作,一次交易的一般流程如下:

转账操作和下一节所述的签名操作是账户最常用的操作。但实际上在转账操作中也涉及了对数据的签名,但关于签名的更多细节不会在此节中展开。

注:!!!!将主网的私钥写到代码上并分享给别人是非常危险的操作!!!!

下面我们看一下转账的具体代码:

var Web3a = require("web3");

var AlayaAccounts = require("web3/packages/web3-eth-accounts");

async function main() {

    let web3a = new Web3a('http://47.241.91.2:6789');

    // !!!!将主网的私钥写到代码上并分享给别人是非常危险的操作!!!!

    // address for the privatekey below: atp1sznvsju6gjy3kmgnfgm526jf6e8x83twuctefh

    var privateKey="0x5ae02064df442340f861136acbfc4bd62b3d48393903bd6aac77ce0e7aaa9e5e";

    var chainId = 201030; //201018 for mainnet

    // // privatekey for the address below: 0x0727b77a246f2c01c1b7b068c26bd71b81700f7ea003dd1ba68a38885a69a1a5

    var toAddress = "atp1jqtmpjme9gvg6wnuyphzqzgphslfmjtxcy8mt2";

    var act = new AlayaAccounts(web3a.currentProvider, "atp");

    act = act.privateKeyToAccount(privateKey);

    let from = act.address;

    let nonce = web3a.utils.numberToHex(await web3a.platon.getTransactionCount(from));

    let gasPrice = await web3a.platon.getGasPrice();

    let tx = {

        from: from,

        to: toAddress,

        value: "1000000000000000000",

        chainId: chainId,

        gasPrice: gasPrice, 

        gas: "21000", 

        nonce: nonce,

    };

    // 签名交易

    let signTx = await act.signTransaction(tx);

    // 发送交易

    let receipt = await web3a.platon.sendSignedTransaction(signTx.rawTransaction);

    console.log("The receipt of the transaction is: " + JSON.stringify(receipt));

    console.log("sign tx data:\n", signTx.rawTransaction)

}

main();

请注意账号act的生成过程,由于Alaya网络的hrp为atp,所以设置过程需要两步:

指定hrp;

设置PrivateKey。

分别对应上述代码中的第14、15行。

这里有必要对如何创建并填充交易信息来进行一点说明。在JavaScript中,交易可以直接用字典类型,其中有很多字段需要从Alaya网络中查询,如nonce,gasPrice可以从网络中查找到推荐值,也可以自行设置。

后面的签名也是一个异步操作,但其所有签名操作都是在本地执行的,是离线签名。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月30日

热门专题

易捷尔高职单招|易捷尔高职单招,易捷尔高职单招培训,单招分数线,单招录取分数线,高职单招学校分数线
易捷尔高职单招
中源管业|中源管业,中源管业公司,中源管业有限公司,中源管业电话,中源管业地址,中源管业电力管,中源管业mpp电力管,中源管业cpvc电力管,中源管业pe穿线管
中源管业
安徽中源管业有限公司|安徽中源管业有限公司,安徽中源管业有限公司介绍,安徽中源管业有限公司电话,安徽中源管业有限公司地址,安徽中源管业有限公司厂家,安徽中源管业有限公司电力管,安徽中源管业有限公司管材
安徽中源管业有限公司
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司
天麻的功效与作用吃法|天麻的功效与作用,天麻的功效与作用吃法,天麻炖什么治头痛最好,天麻的功效与作用禁忌,天麻多少钱一斤,天麻的功效与作用吃法及禁忌,天麻怎么吃效果最好,天麻粉的功效与作用,天麻怎么吃
天麻的功效与作用吃法
大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部