区块链合约交互 web3

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

遵循ERC20规则,

钱包里可以有很多种类型的token:USDT,DFI,DFA

1.合约交互之前需要先判断是否仍允许purchasePool合约从账户(钱包里的账户) 中提取的ERC20dfaContract 这本合约里(DFA)的金额

await this.contract.ERC20dfaContract.methods.allowance(this.address,this.addressMap.AcceleratePool).call();

ERC20dfaContract:这个是dfa合约地址

ERC20dfaContract:new window.web3.eth.Contract(ERC20Token,address.DFAToken)

purchasePool:这个是池子的合约地址

purchasePool:new window.web3.eth.Contract(DistributionInAbi,address.AcceleratePool),

ERC20Token:是ERC20的abi  ,  address.DFAToken:是创建合约的token地址,

this.address这个是钱包的账户地址

this.addressMap.AcceleratePool:这个是池子的token地址

注:如果返回值是0,可以直接授权,如果不为0,就不可以授权,如果一定要授权需要将返回值置为0,再授权。

2.授权(ERC20dfaContract这个合约允许这个池子(AcceleratePool)从它这里转走这么多钱)

this.contract.ERC20dfaContract.methods.approve(this.addressMap.AcceleratePool,"转多少钱")

.send({ from: this.address, gas: approveGas })

.then((result) => {}).catch(() => {});

3.充值(池子里的合约方法,自己写的合约,根据合约接口操作) 

this.contract.purchasePool.methods.purchase(input).send({from:this.address,gas:getPurchaseGas}).then((result)=>{}).catch(()=>{})

purchase:这个是合约里的充值的方法

4.赎回 (池子里的合约方法,自己写的合约,根据合约接口操作)

this.contract.purchasePool.methods.claim().send({ from: this.address, gas: claimGas }).then((result) => {}).catch(() => {});

注:充值,赎回这些不是查询的,是需要消耗gas的,所以每次转账,赎回时需要查询消耗的gas (上文中的 getPurchaseGas)

async getPurchaseGas(){return await this.contract.purchasePool.methods.purchase(this.input).estimateGas({from:this.address})},

*这个是充值消耗gas例子文章来源地址https://www.toymoban.com/news/detail-470482.html

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

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

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

相关文章

  • Web3.0入口-MPC钱包和智能合约钱包

    Web3.0大规模普及,需要解决一些关键问题,包括钱包私钥带来的一个用户体验问题与两个安全问题。 1. 一个用户体验问题 : 助记词与私钥难记、难保存,导致用户使用门槛过高 2. 两个安全问题 : 助记词和私钥的泄露,导致资产被盗。 助记词和私钥的丢失,导致资产丢失。

    2024年02月02日
    浏览(31)
  • 通过metamask与合约交互(发送ERC20 TOKEN/原生TOKEN/方法调用) javascrpt实现

    1. 首先引入web3.js最新版本 ,再引入 jquery 遇到合约有ABI文件.个人习惯单独保存ABI文件.通过jquery远程读取. 实例化合约后直接在链上与合约交互 通过按钮什么的触发后就可以通过代码转账了.  2. 无ABI与合约交互,因为有的合约闭源了,所以我们直接手工构造data参数内容,免去了实

    2024年02月16日
    浏览(20)
  • web3 solidity 基础 ERC20 大白话搞懂

    ERC20 是 eth 的一个标准,怎么理解标准一词呢? 标准是大家遵循的一个协议,根据这个协议大家都知道该怎么去做,例如去吃饭的时候人多,你就需要排队,然后去窗口跟阿姨说你要吃什么,阿姨就会帮你打;若你不准守这个标准,直接冲进后厨,翻开泔水,大喊着我要吃饭

    2024年01月22日
    浏览(32)
  • 使用Web3.js与OKX Web3钱包进行交互:实现去中心化应用的无缝连接

    随着Web3.0技术的不断发展,越来越多的开发者开始探索如何利用去中心化钱包与区块链网络进行交互。在这篇文章中,我们将深入探讨如何通过Web3.js库来连接和操作OKX Web3钱包,以实现对加密货币、NFT以及链上智能合约的管理和交易。 Web3.js 是一个由以太坊社区开发的核心

    2024年02月19日
    浏览(35)
  • 区块链-java对接web3合约

    本文章讲述了如何在合约已经部署并且能拿到合约abi文件的情况下,用java代码去进行调用合约 已经部署好的合约地址 编译合约后生成的abi文件  通过hardhat-build去编译 通过remix网站去编译获取(教程可自行百度查询) 引入web3的jar包 版本用最新的就行了 引入web3j-maven-plugin 将编

    2024年01月16日
    浏览(39)
  • 6.DApp-用Web3实现前端与智能合约的交互

    题记         用Web3实现前端与智能合约的交互,以下是操作流程和代码。 准备ganache环境         文章地址:4.DApp-MetaMask怎么连接本地Ganache-CSDN博客  准备智能合约          文章地址: 2.DApp-编写和运行solidity智能合约-CSDN博客 编写index.html文件          !DOCTYPE htm

    2024年02月08日
    浏览(29)
  • python 之 web3 与智能合约的交互、编译等使用

    一、背景 web3.py是一个用于与以太坊交互的 Python 库。 它常见于去中心化应用程序 (dapps)中,帮助发送交易、与智能合约交互、读取块数据以及各种其他用例。 最初的 API 源自Web3.js Javascript API,但后来不断发展以满足 Python 开发人员的需求和物质享受。 本人在合约审计于模糊

    2024年02月11日
    浏览(26)
  • Java与智能合约交互(Web3j)- write函数

    说在前头 Web3是一种新兴的网络概念,由于某些原因导致我们能够接触到的相关技术知识实在有限,每当我遇见技术瓶颈总是不能找到充足的资料,这也让我萌生了填补这片空白知识的冲动。 “Hello Web3” 这个专栏会尽力将我掌握的web3 知识分享给大家。如果分享的知识能帮助

    2023年04月08日
    浏览(32)
  • 区块链web3智能合约Solidity学习资源整理

    Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity中文官方文档: https://solidity-cn.readthedocs.io/zh/develop/ https://learnblockchain.cn/docs/solidity/index.html 在线rem

    2024年03月19日
    浏览(49)
  • 赛联区块链培训:Web3的核心要素——区块链、加密资产、智能合约和预言机

    在2008年,中本聪发布了比特币白皮书,彻底颠覆了我们对数字化交易的概念,并首次提出了一种无需可信中间方的安全在线交易模式。中本聪写道:“需要基于加密证明,而非信任,来建立电子支付系统。” 智能合约被发明后,去中心化的互联网模式进入公众视野。如果说

    2024年02月07日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包