ether.js 基础用法

整理一下使用ehter.js与合约交互的常用方法等。

链接网站

async md1() {
				let provider = new ethers.providers.Web3Provider(window.ethereum)
				let signer = provider.getSigner();
				let accounts = await provider.send("eth_requestAccounts", []);
				console.log(accounts[0])
			}

rpc节点

async md2() {
			let provider = new ethers.providers.JsonRpcProvider('rpc节点地址');
			let Wallet = new ethers.Wallet('你的私钥');
			let  signer = Wallet.connect(provider)
			console.log(provider ,Wallet,signer  )
			}

调用合约方法


实际开发中signer已经为全局对象,这里不再重复设置

async md3() {
		//greet为生成的合约对象,需要注意的是signer参数,如果传进去就可以直接调用合约的修改方法
		let greet = new ethers.Contract('0x2c4eb3c76D7115E210Fadf3cBFe8E0a3d5b8448F', erc20abi, signer);
		//调用合约的相关方法
		let data = await greet.transfer("0x173f8ce8356dd214813f4874c316739f560d8022", ethers.utils.parseEther(
			"1")).catch(function(err) {
			console.log(err)
		})
		//这里的data为请求的区块的相关数据,如区块高度,交易hash等等,并不是合约的返回值。
		console.log(data)
		//根据业务情况,判断是否需要监听返回值,如果需要则加上如下监听代码
		let data2=await	provider.waitForTransaction(data.hash);
		console.log(data)
		}

进行转账

async md4(){
	//这里只传了两个关键性参数,其他参数可以不传,自动获取的
	let data = await signer.sendTransaction({
			to: '0x6c3392AE6037F09AF9D98eaEBd43B00bA5BE6684',
			value: ethers.utils.parseEther('1'),
		})
	console.log(data)
}

调用合约的同时转账主代币


有的时候我们在调用合约的同时也需要打固定数量的主代币

async md5() {
			let greet = new ethers.Contract('0x2c4eb3c76D7115E210Fadf3cBFe8E0a3d5b8448F', erc20abi, signer);
			let overrides = {
				value: ethers.utils.parseEther('1'),
				gasLimit: 3000000
			}
			let data = await greet.transfer("0x173f8ce8356dd214813f4874c316739f560d8022", ethers.utils.parseEther(
				"1"), overrides).catch(function(err) {
				console.log(err)
			})
			console.log(data)
		}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值