ethers发送交易-nodejs

这篇具有很好参考价值的文章主要介绍了ethers发送交易-nodejs。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原生资产,转账、获取余额

var customHttpProvider = new ethers.providers.JsonRpcProvider('https://bsc-dataseed.binance.org/');
  var privateKey = "私钥";
  var wallet = new ethers.Wallet(privateKey, customHttpProvider);
  const balance = await wallet.getBalance()
  console.log(balance)
  
  let tx = await wallet.sendTransaction({
        gasLimit: gasLimit,
        gasPrice: gasPrice,
        to: newAddress,
        value: value
    });

发送token文章来源地址https://www.toymoban.com/news/detail-530386.html

function send_token(
  contract_address,
  send_token_amount,
  to_address,
  send_account,
  private_key
) {
  let wallet = new ethers.Wallet(private_key)
  let walletSigner = wallet.connect(window.ethersProvider)

  window.ethersProvider.getGasPrice().then((currentGasPrice) => {
    let gas_price = ethers.utils.hexlify(parseInt(currentGasPrice))
    console.log(`gas_price: ${gas_price}`)

    if (contract_address) {
      // general token send
      let contract = new ethers.Contract(
        contract_address,
        send_abi,
        walletSigner
      )

      // How many tokens?
      let numberOfTokens = ethers.utils.parseUnits(send_token_amount, 18)
      console.log(`numberOfTokens: ${numberOfTokens}`)

      // Send tokens
      contract.transfer(to_address, numberOfTokens).then((transferResult) => {
        console.dir(transferResult)
        alert("sent token")
      })
    } // ether send
    else {
      const tx = {
        from: send_account,
        to: to_address,
        value: ethers.utils.parseEther(send_token_amount),
        nonce: window.ethersProvider.getTransactionCount(
          send_account,
          "latest"
        ),
        gasLimit: ethers.utils.hexlify(gas_limit), // 100000
        gasPrice: gas_price,
      }
      console.dir(tx)
      try {
        walletSigner.sendTransaction(tx).then((transaction) => {
          console.dir(transaction)
          alert("Send finished!")
        })
      } catch (error) {
        alert("failed to send!!")
      }
    }
  })
}

发送合约交易

const customHttpProvider = new ethers.providers.JsonRpcProvider('https://bsc-dataseed.binance.org/');

 const walletSigner = new ethers.Wallet(私钥, customHttpProvider);
  const gasPrice = await customHttpProvider.getGasPrice()
  let contract = new ethers.Contract(
    address,
    abi,
    walletSigner
  )
  
    const tx = await contract[方法](
	参数...
    {
      gasPrice,
      gasLimit: 300000,
      value: ethers.utils.parseEther(String(buyValue))
    })
	// 交易信息
	const transData = await tx.wait()
	

到了这里,关于ethers发送交易-nodejs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 发布以太坊测试网络中的第一笔交易

    要想发送发布以太坊测试网络中的第一笔交易,首先需要创建一个管理账户的钱包,这个钱包可以理解为管理私钥的容器,具体按照步骤为:打开Chrome浏览器应用商店搜索MetaMask,选择对应的钱包添加至Chrome,作为其扩展程序之一。按照完成后,你可以在扩展程序总查看是否

    2024年02月08日
    浏览(40)
  • eth以太坊数据块-交易收据树和日志

    交易收据包含交易的产出(状态和日志)。收据数据存储在状态数据库,根哈希值存储在block的header中。 区块中智能合约的信息存储有2种方式,账户存储和日志存储。 账户存储(Account Storage) 定义了智能合约状态以及可访问的合约。在下图所示的state Trie里 日志存储(Log

    2024年02月01日
    浏览(44)
  • 以太坊EVM智能合约交易信息中Input和Logs解码

    以太坊交易获取一般通过两种方式:getTransaction、getTransactionReceipt web3.eth.getTransaction: web3.eth.getTransactionReceipt: abi-parser 是一个用于解析ethereum/web3 日志、事件和方法的 NodeJS/JS 库。

    2024年02月15日
    浏览(43)
  • 《区块链原理与技术》学习笔记(五) ——以太坊的交易、共识机制和数据结构

    《区块链原理与技术》学习笔记 第五部分 5. 以太坊交易 5.1 交易内容 5.2 交易费用 5.3 交易的周期 5.4 交易的执行类型 6. 以太坊的共识机制 6.1 解决以太坊分叉:Ghost协议 6.2 新的共识机制:PoS 7. 以太坊挖矿难度调整 7.1 自适应难度调整 7.2 难度炸弹 8. 数据结构与存储 8.1 区块和

    2024年02月12日
    浏览(43)
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记:以太坊原理(一):以太坊概述、账户、状态树、交易树和收据树

    1、ETH-以太坊概述 比特币和以太坊是两种最主要的加密货币,比特币被称为区块链1.0,以太坊被称为区块链2.0 以太坊在系统设计上针对比特币运行过程中出现的问题进行了改进,比如: 出块时间 ,比特币的区块时间是10分钟,以太坊的出块时间大幅度降低到了十几秒,而且

    2024年01月18日
    浏览(57)
  • 谁在以太坊区块链上循环交易?TuGraph+Kafka的0元流图解决方案

    都在说数据已经成为新时代的生产资料。 但随着大数据和人工智能等技术的发展,即便人们都知道数据的价值日益凸显,却无法凭借一己之力获取和分析如此大规模的数据。 要想富,先修路。要想利用新时代的数据致富,也必须要有趁手的工具。只有合适的工具才能完成大

    2024年02月11日
    浏览(41)
  • 关于web3.js中与交易发送、交易签名、智能合约函数调用相关api的理解

    web3.js中有一些与交易发送、签名、合约函数调用相关的api,初学者(如me)常常搞不清什么情况下应该调用哪个,以及它们之间的区别。现将个人浅见记录如下,备忘。 sendTransaction web3.eth.sendTransaction(transactionObject [, callback]) transactionObject对象设置交易的各种参数(不包括签名r,

    2023年04月09日
    浏览(126)
  • 北大肖臻老师《区块链技术与应用》系列课程学习笔记[15]以太坊-交易树和收据树

     目录 一、以太坊中的三种树 二、状态树、交易树和收据树的区别 三、交易树和收据树的用途         1.交易树和收据树的用途         2.如何实现复杂的查询操作         3.以太坊中Bloom Filter的用途 四、以太坊的运行过程        在以太坊中,存在三种基于树的

    2024年02月05日
    浏览(54)
  • 区块链学习5-长安链并发测试(3)_发送并发交易请求

    区块链学习4-长安链并发测试(2)_部署链_fvafuc的博客-CSDN博客 参考官方文档: https://docs.chainmaker.org.cn/quickstart/通过命令行体验链.html#cmc 修改cmc的sdk_config.yml,使其连接到指定的一个或多个节点: 参考官方文档: https://docs.chainmaker.org.cn/quickstart/通过命令行体验链.html#id14 ​ ​

    2024年02月02日
    浏览(41)
  • STM32的以太网外设+PHY(LAN8720)使用详解(6):以太网数据接收及发送

    1.1.1 检查是否接收到一帧完整报文 使用轮询的方式接收以太网数据是一种简单但是效率低下的方法,为了保证及时处理以太网数据我们需要在主循环内高频轮询是否接收到了以太网数据。轮询的函数为ETH_CheckFrameReceived,内容如下: 当以太网帧大于我们设置的DMA描述符buffer大

    2024年01月23日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包