{"content":{"title":"波场DAPP对接tronWeb对接tronlink钱包","body":"​\r\n## 注：谷歌浏览器需要安装tronlink https://www.tronlink.org/\r\n\r\n​\r\n\r\n```\r\n<template>\r\n  <div class=\"hello\">\r\n    <h1>{{ msg }}</h1>\r\n\r\n    <button @click=\"linkWallet\">\r\n      连接钱包\r\n    </button>\r\n    <button @click=\"getBalance\">\r\n      获取钱包余额\r\n    </button>\r\n    <button @click=\"transaction\">\r\n      TRX转账交易\r\n    </button>\r\n    <button @click=\"transactionToken\">\r\n      TRX-ERC20转账交易\r\n    </button>\r\n    <button @click=\"transactionContract\">\r\n      合约方法调用\r\n    </button>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: 'HelloWorld',\r\n  data () {\r\n    return {\r\n      msg: 'tron-web-dapp',\r\n      tronWeb:null,\r\n      walletAddress:null\r\n    }\r\n\r\n  },\r\n  mounted () {\r\n      if(window.tronWeb){\r\n        this.tronWeb =  window.tronWeb;\r\n        console.log(this.tronWeb)\r\n        this.walletAddress = this.tronWeb.defaultAddress.base58;\r\n      }\r\n  },\r\n  methods: {\r\n    linkWallet(){\r\n      if(window.tronWeb){\r\n        this.tronWeb =  window.tronWeb;\r\n        console.log(window.tronWeb)\r\n        this.walletAddress = this.tronWeb.defaultAddress.base58;\r\n        console.log(this.tronWeb.defaultAddress.base58)\r\n      }\r\n    },\r\n    //查询钱包余额\r\n    async getBalance()  {\r\n        //当前连接的钱包地址获取 window.tronWeb.defaultAddress.base58\r\n        var balance = await this.tronWeb.trx.getBalance(this.walletAddress);\r\n        console.log(\"balance=\",balance)\r\n    },\r\n    //trx转账交易\r\n    async transaction() {\r\n      var tx = await this.tronWeb.transactionBuilder.sendTrx(\r\n        \"TN9RRaXkCFtTXRso2GdTZxSxxwufzxLQPP\",10 * Math.pow(10,6),this.walletAddress\r\n      );\r\n      var signedTx = await this.tronWeb.trx.sign(tx);\r\n      var broastTx = await this.tronWeb.trx.sendRawTransaction(signedTx);\r\n      console.log(broastTx)\r\n    },\r\n    //trx-token转账交易\r\n    async transactionToken() {\r\n\r\n      //转账方式1\r\n\r\n     let contract = await this.tronWeb.contract().at(\"TURwoLuFy7maq1Vea7wVwRNz3HgmcAsJzb\");\r\n     let result = await contract.transfer(\r\n        \"TN9RRaXkCFtTXRso2GdTZxSxxwufzxLQPP\",\r\n        this.tronWeb.toHex(55 * Math.pow(10,18))\r\n      ).send({\r\n        feeLimit: 10000000\r\n      }).then(output => {console.log('- Output:', output, '\\n');});\r\n      console.log('result: ', result);\r\n\r\n      //转账方式2\r\n      /*const parameter = [{type:'address',value:'TN9RRaXkCFtTXRso2GdTZxSxxwufzxLQPP'},{type:'uint256',value:this.tronWeb.toHex(25 * Math.pow(10,18))}]\r\n      var tx  = await this.tronWeb.transactionBuilder.triggerSmartContract(\"TURwoLuFy7maq1Vea7wVwRNz3HgmcAsJzb\", \"transfer(address,uint256)\", {},parameter,this.walletAddress);\r\n      var signedTx = await this.tronWeb.trx.sign(tx.transaction);\r\n      var broastTx = await this.tronWeb.trx.sendRawTransaction(signedTx);\r\n      console.log(broastTx)*/\r\n\r\n      /*let contract = await this.tronWeb.contract().at(\"TURwoLuFy7maq1Vea7wVwRNz3HgmcAsJzb\");\r\n     let result1 = await contract.decimals().call();\r\n     console.log('result: ', result1);*/\r\n    },\r\n    //调用合约中的方法\r\n    async transactionContract(){\r\n\r\n      //调用方式1\r\n      /*let contract = await this.tronWeb.contract().at(\"TSbJGFA8UyYGTuXBRbYB2GJeh2CY1X5F4d\");\r\n      console.log(\"contract=\",contract)\r\n      let result = await contract.registrationExt(\r\n        \"TN9RRaXkCFtTXRso2GdTZxSxxwufzxLQPP\"\r\n      ).send({\r\n        callValue: this.tronWeb.toHex(25 * Math.pow(10,6)),//发送TRX余额\r\n        feeLimit: 10000000\r\n      }).then(output => {console.log('- Output:', output, '\\n');});\r\n      console.log('result: ', result)*/\r\n\r\n      //调用方式2\r\n      const parameter = [{type:'address',value:'TN9RRaXkCFtTXRso2GdTZxSxxwufzxLQPP'}];\r\n      var tx  = await this.tronWeb.transactionBuilder.triggerSmartContract(\r\n        \"TSbJGFA8UyYGTuXBRbYB2GJeh2CY1X5F4d\",\r\n        \"registrationExt(address)\",\r\n        {},\r\n        parameter,\r\n        this.walletAddress\r\n      );\r\n      var signedTx = await this.tronWeb.trx.sign(tx.transaction);\r\n      var broastTx = await this.tronWeb.trx.sendRawTransaction(signedTx);\r\n      console.log(broastTx)\r\n    }\r\n  }\r\n}\r\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style scoped>\r\nh1, h2 {\r\n  font-weight: normal;\r\n}\r\nul {\r\n  list-style-type: none;\r\n  padding: 0;\r\n}\r\nli {\r\n  display: inline-block;\r\n  margin: 0 10px;\r\n}\r\na {\r\n  color: #42b983;\r\n}\r\n</style>\r\n\r\n```\r\n\r\n\r\n![image.png](https://img.learnblockchain.cn/attachments/2022/11/nAxk0JMW637f2e2eaced7.png)\r\n\r\n学如逆水行舟，不进则退。心似平原跑马，易放难收。全栈工程师是指掌握多种技能，并能利用多种技能独立完成产品的人。 也叫全端工程师(同时具备前端和后台能力)，英文Full Stack engineer。【人工智能】【区块链】【系统/网络/运维】【云计算/大数据】【数据库】【移动开发】【后端开发】【游戏开发】【UI设计】【微服务】【爬虫】【Java】【Go】【C++】【PHP】【Python】【Android/IOS】【HTML/CSS】【JavaScript】【Node】。。。\r\n\r\n欢迎各位大神萌新一起专研分享各行各业技术!\r\n\r\nChain区块链开发社区：593674370"},"author":{"user":"https://learnblockchain.cn/people/12241","address":null},"history":"QmbdFXi9MJR5vmcUfYApCAm7VzegHtDGKRHshaSnREpgTT","timestamp":1669281362,"version":1}