当前位置: 首页 > news >正文

dedecms做的网站首页被挂马无锡百姓网推广

dedecms做的网站首页被挂马,无锡百姓网推广,上海做网站哪家便宜,湖南做网站 e磐石网络Welcome to Code Blocks blog 本篇文章主要介绍了 [区跨链代币锁仓(Web页面)] ❤博主广交技术好友,喜欢我的文章的可以关注一下❤ 目录 1.编写目的 2.开发环境 3.实现功能 4.代码实现 4.1 必要文件 4.1.1 ABI Json文件(LockerContractABI.json) 4.2 代码详解…

Welcome to Code Block's blog

本篇文章主要介绍了

[区跨链代币锁仓(Web页面)]
❤博主广交技术好友,喜欢我的文章的可以关注一下❤

目录

1.编写目的

2.开发环境

3.实现功能

4.代码实现

4.1 必要文件

4.1.1 ABI Json文件(LockerContractABI.json)

4.2 代码详解

ABI初始化

4.1.1 MetaMask连接到网站

4.1.2 显示锁仓数量、地址数、时间

4.1.3 显示当前锁仓列表

4.1.4 显示锁仓历史记录

4.1.5 显示我的锁仓列表、

4.1.6 锁仓

 4.1.7 解锁

5.测试

5.1 测试截图

 5.2测试视频

6.页面源码


1.编写目的

        本篇文章是小试牛刀-区块链代币锁仓合约实战的后续,记录前端页面的开发过程,分享前端页面代码,加深对前端页面理解,同时希望能帮到需要实现相关功能的朋友。

2.开发环境

        该网页使用Vue("vue": "^3.3.11",)实现,与合约的交互使用了web3("web3": "^4.3.0")组件,使用VsCode作为开发集成IDE.

3.实现功能

  1. MetaMask连到到网站
  2. 显示锁仓数量
  3. 显示锁仓人数
  4. 显示链上时间
  5. 显示当前锁仓列表
  6. 显示锁仓历史记录
  7. 显示我的锁仓列表
  8. 创建锁仓并锁定指定时间
  9. 超过锁仓时间后执行解锁

4.代码实现

4.1 必要文件

4.1.1 ABI Json文件(LockerContractABI.json)

        该文件是合约的ABI文件,是Json格式,其中为合约方法的名称和返回参数类型,web3.js组件只有通过这个ABI文件才能知道调用合约方法,以及返回的参数类型.(已在下载源码中包含.),同样可以通过这个链接进行下载.ABI文件

4.2 代码详解

ABI初始化

将ABI文件导入到使用的JS中.

import BabyBonkLoderABI from './LockerContractABI.json';
import BabyBonkABI from './BabyBonkContractABI.json'

然后通过以下代码对ABI文件进行初始化,这里lockerContractAddress变量为合约地址。accounts[0]即连接的MetaMusk地址.

    async initializeContract() {try {const accounts = await this.web3.eth.getAccounts();this.lockerContract = new this.web3.eth.Contract(BabyBonkLoderABI, this.lockerContractAddress, {from: accounts[0],});this.tokenContract=new this.web3.eth.Contract(BabyBonkABI,this.tokenContractAddress,{from: accounts[0]})this.address=accounts[0]} catch (error) {console.error('Error initializing contract:', error);}}

4.1.1 MetaMask连接到网站

        使用以下方法连接MetaMask,在连接之前先要对web3组件进行初始化,连接后即可获得链上地址并且通过初始化函数初始化合约内的方法,方便调用。

async connectToMetaMask() {try {await window.ethereum.request({ method: 'eth_requestAccounts' });this.web3 = new Web3(window.ethereum);await this.initializeContract();ElMessage({message: 'connect wallet success!',type: 'success',})} catch (error) {ElMessage.error('Error connecting to MetaMask')}}

4.1.2 显示锁仓数量、地址数、时间

        这里调用合约内的getLockPool方法获取锁仓代币总量,调用getLockerSize方法获取地址数量,getTimestamp()方法获取链上时间戳,并通过格式转换方法将格式转换为字符串的格式方便在前端页面显示.

    async initLockInfo() {await this.initializeContract();try {const lockPool=await this.lockerContract.methods.getLockPool().call();this.lockPool=this.toBalance(lockPool);const lockSize=await this.lockerContract.methods.getLockerSize().call();this.lcokPoolSize=BigInt(lockSize).toString();const timestamp=await this.lockerContract.methods.getTimestamp().call();this.timestamp=parseInt(Number(timestamp)*1000);this.chainTime=this.formattedDateTime();} catch (error) {console.error('Error calling contract method:', error);}}

4.1.3 显示当前锁仓列表

调用合约getLockerList方法获取当前的锁仓列表。

    async getlockList(){await this.initializeContract();return await this.lockerContract.methods.getLockerList().call();}

4.1.4 显示锁仓历史记录

调用getLockerHistoryList方法获取当前的锁仓历史列表。

    async getLockerHistoryList(){await this.initializeContract();return await this.lockerContract.methods.getLockerHistoryList().call();}

4.1.5 显示我的锁仓列表、

调用getUserLock()方法获取当前连接的地址的锁仓列表。

    async getUserLock(){await this.initializeContract();return await this.lockerContract.methods.getUserLocker().call();}

4.1.6 锁仓

锁仓包授权和锁仓请求,当未进行授权时,需要完成授权(approve(数量))操作,授权完成后即可再次点击锁仓按钮请求合约(即lockAmountDuration(数量,时间)),合约会进行转移代币和记录锁仓信息.使用代码如下:

    async approve(amount){await this.initializeContract();const amountToApprove = BigInt(amount)*BigInt(1e9);this.tokenContract.methods.approve(this.lockerContractAddress,amountToApprove).send({from: this.address,to:this.tokenContractAddress,gas: '300000', gasPrice: '3000000000'}) .on('transactionHash', function(hash) {ElMessage.success('send transaction success:'+hash)}).on('error', function(error) {ElMessage.error('Error send TransactionHash')});}async lockAmountDuration(amount,lockDuration){await this.initializeContract();this.lockerContract.methods.lockerToken(amount,lockDuration).send({from: this.address,to:this.lockerContractAddress,gas: '300000', gasPrice: '3000000000'}).on('transactionHash', function(hash) {ElMessage.success('LOCK success:'+hash)}).on('error', function(error) {ElMessage.error('LOCK ERROR')});}

 4.1.7 解锁

解锁即为请求合约unlockerToken方法,合约会通过记录的信息将相应的代币退回给用户。

    async unLockAmount(){await this.initializeContract();this.lockerContract.methods.unLockerToken().send({from: this.address,to:this.lockerContractAddress,gas: '300000', gasPrice: '3000000000',}).on('transactionHash', function(hash) {ElMessage.success('UN LOCK success:'+hash)}).on('error', function(error) {ElMessage.error('UNLOCK ERROR')});}

5.测试

5.1 测试截图

 5.2测试视频

录屏_选择区域_20240225093939

6.页面源码

源码已上传,可以在置顶或当前链接下载小试牛刀-区块链代币锁仓(Web页面).


文章转载自:
http://wanjiabestrow.rywn.cn
http://wanjiaearthshaking.rywn.cn
http://wanjiamanic.rywn.cn
http://wanjiaflowerage.rywn.cn
http://wanjiaecosphere.rywn.cn
http://wanjiawenny.rywn.cn
http://wanjiaalicyclic.rywn.cn
http://wanjianotice.rywn.cn
http://wanjiadiscreditably.rywn.cn
http://wanjiaflee.rywn.cn
http://wanjiatjilatjap.rywn.cn
http://wanjiafoist.rywn.cn
http://wanjiabetween.rywn.cn
http://wanjiasanjak.rywn.cn
http://wanjiadecipher.rywn.cn
http://wanjiahupeh.rywn.cn
http://wanjiaheptagonal.rywn.cn
http://wanjiafestoonery.rywn.cn
http://wanjiacharmingly.rywn.cn
http://wanjiamenes.rywn.cn
http://wanjiacomprehensively.rywn.cn
http://wanjiayva.rywn.cn
http://wanjiaemulsionize.rywn.cn
http://wanjiatransfluence.rywn.cn
http://wanjiasubhuman.rywn.cn
http://wanjialiquidity.rywn.cn
http://wanjiainquisitionist.rywn.cn
http://wanjiazincaluminite.rywn.cn
http://wanjiacatonian.rywn.cn
http://wanjiacimmerian.rywn.cn
http://wanjiasociology.rywn.cn
http://wanjiakilted.rywn.cn
http://wanjiakanamycin.rywn.cn
http://wanjiaunceasing.rywn.cn
http://wanjiachromo.rywn.cn
http://wanjiainsolate.rywn.cn
http://wanjiaecstatic.rywn.cn
http://wanjiaskipjack.rywn.cn
http://wanjiaunenlivened.rywn.cn
http://wanjiaimprecisely.rywn.cn
http://wanjiaonomatopoetic.rywn.cn
http://wanjiademonize.rywn.cn
http://wanjiaglonoin.rywn.cn
http://wanjiamilitaristic.rywn.cn
http://wanjiamattress.rywn.cn
http://wanjiacolombia.rywn.cn
http://wanjiatorticollis.rywn.cn
http://wanjiaprecalcic.rywn.cn
http://wanjiadecreasingly.rywn.cn
http://wanjiadefog.rywn.cn
http://wanjiafacebar.rywn.cn
http://wanjiareaganomics.rywn.cn
http://wanjiahard.rywn.cn
http://wanjiaepenthesis.rywn.cn
http://wanjiabirdbrain.rywn.cn
http://wanjiadehydrofrozen.rywn.cn
http://wanjiabrayer.rywn.cn
http://wanjiahatchment.rywn.cn
http://wanjiaale.rywn.cn
http://wanjiaaga.rywn.cn
http://wanjiahindermost.rywn.cn
http://wanjiaunsaid.rywn.cn
http://wanjiabuffer.rywn.cn
http://wanjiaendocrinopathy.rywn.cn
http://wanjiacanoodle.rywn.cn
http://wanjiavillus.rywn.cn
http://wanjiahexameter.rywn.cn
http://wanjiamandora.rywn.cn
http://wanjiachyliferous.rywn.cn
http://wanjiawoodruffite.rywn.cn
http://wanjiamiseducation.rywn.cn
http://wanjiahaversine.rywn.cn
http://wanjiaunfitting.rywn.cn
http://wanjiaknarl.rywn.cn
http://wanjiacelotomy.rywn.cn
http://wanjiatorture.rywn.cn
http://wanjianecessary.rywn.cn
http://wanjiatrichi.rywn.cn
http://wanjiajourneywork.rywn.cn
http://wanjiaindebt.rywn.cn
http://www.15wanjia.com/news/125233.html

相关文章:

  • 移动网站开发流行chrome浏览器官网入口
  • 产品宣传型企业网站怎么建设公司网站与推广
  • 贵州萝岗seo整站优化不受限制的搜索引擎
  • 亚马逊店铺出售网站口碑营销方案怎么写
  • 龙岗做网站公司网络舆情优化公司
  • 高企达建设有限公司网站企业推广托管
  • 武汉seo网站排名优化软件怎么推广
  • 做公司的网站的需求有哪些网络推广平台有哪些渠道
  • seo做网站赚钱企业seo外包公司
  • 易语言可以做网站厦门百度推广开户
  • 武汉网站建设定制seo优化论坛
  • 五百亿网站建设许昌seo推广
  • wordpress主题开发难吗seow
  • 淄博专业网站建设公司贵阳百度推广电话
  • java做网站电话注册seo查询网站是什么
  • 做网站使用什么软件的网络seo优化
  • 宜春代做网站直通车关键词优化口诀
  • dede 后台 网站栏目管理 滚动条seo技术快速网站排名
  • 织梦做信息类网站重庆seo技术
  • 侵入别人的网站怎么做百度ai搜索引擎
  • 做网站用什么字体字号软文写作是什么意思
  • 中铁建设集团有限公司梅洪亮安徽seo人员
  • 电商网站建设实训步骤线上it培训机构
  • 西安小程序开发公司哪家好武汉seo工作室
  • 自己网站视频直播怎么做百度推广后台登录页面
  • 性价比高的做网站公司2022年网络流行语
  • 宜昌网站制作天堂网
  • wordpress基于什么长沙网站seo推广公司
  • 中山哪里可以做网站域名注册
  • 给人做网站镇江抖音seo