马蹄链(matic)智能合约系统开发

Ethers.js与Web3.js一样,都是以太坊标准JavaScript API库,Ethers.js最初是为了ethers.io设计,系统开发对接详情+牛客号V后来拓展为一个开放的JS API库,与Web3.js相同的是,Ethers.js同样可以与Moonbeam进行正常交互,这得益于Moonbeam是一个完全兼容以太坊EVM的智能合约平台;而与Web3.js不同的是,Ethers.js在使用时不需要过多的回调函数,而且可以搭配Hardhat工具是的语法得到进一步的优化

Ethers.js(Hardhat)的安装与常用API介绍

Ethers.js(Hardhat)的安装

Ethers.js的安装分为两种,一种为直接使用命令行安装,另一种为通过Hardhat间接安装(配合Hardhat使用),推荐第二种通过Hardhat的方式使用Ethers.js(安装Hardhat时通过hardhat-ethers插件安装经过包装后的Ethers.js)

安装步骤如下:

// command line

npm install --save ethers

// install Hardhat

npm init

npm install --save-dev hardhat

npx hardhat

常用API介绍

Ethers.js库中的API主要由4大部分组成:Providers,Signers,Contract Interaction,Utilities

1. Provider

Provider是以太坊网络连接的抽象,其为标准以太坊节点功能提供简洁、一致的接口

在Provider中比较常用的方法为JsonRpcProvider,该方法允许通过JSON-RPC的方式连接某一个节点网络

// new ethers.providers.JsonRpcProvider([urlOrConnectionInfo[, networkish]])

const provider = new ethers.providers.JsonRpcProvider(

'https://rpc.api.moonbase.moonbeam.network',

{

chainId: 1287,

name: 'moonbase-alpha'

}

);

在上面的代码示例中,通过JsonRpcProvider的方式,连接到了Moonbase Alpha测试网中,在其中不止可以定义url参数,还可以定义该网络的chainId与name等信息

2. Signers

Signer是以太坊账户的抽象,可用于对消息和交易进行签名,并将签名过的交易发送到以太坊网络以执行状态更改操作

在Signer中比较常用的方法为Wallet,只有Wallet可以使用私钥对交易和信息进行签名

// new ethers.Wallet(privateKey[, provider])

const alice = new ethers.Wallet(privateKeyAlice, provider);

const bob = new ethers.Wallet(privateKeyBob, provider);

const txReceipt = await alice.sendTransaction({

to: bob.address,

value: ethers.utils.parseEther('1.0')

});

await txReceipt.wait();

全部评论

相关推荐

海螺很能干:每次看到这种简历都没工作我就觉得离谱
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务