javascript - 通过 web3.js 调用智能合约函数没有响应
问题描述
我正在观看 Youtube 上的教程并按照说明操作: https ://www.youtube.com/watch?time_continue=1350&v=msT3tpwnyv8
当我尝试使用下面的 js 文件调用该函数时,它在控制台上没有返回任何内容。有谁知道发生了什么?
我正在使用 web3.js 1.0.0 beta。52 infura 连接
var Tx = require('ethereumjs-tx')
const Web3 = require('web3');
const web3 = new Web3('https://ropsten.infura.io/v3/project_id')
const contractAddress = '0xd03696B53924972b9903eB17Ac5033928Be7D3Bc'
const contractABI = [{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
var contract = new web3.eth.Contract(contractABI, contractAddress)
contract.methods.totalSupply().call((err, result)=> {
console.log(result)
})
解决方案
尝试:
contract.methods.totalSupply().call().then((result) => {console.log(result) });
它应该返回一个 BigNumber。
推荐阅读
- django - 从 rest-auth social Login 获取用户 ID
- c# - 每当我通过 SSH-ing 执行我的 git 命令时,我在 c# 代码输出中遇到错误
- python - 如何将数据框导出到单元格列表而不是行列表?
- next.js - 如何使用 NextJS 和 TailwindCSS 更改悬停图像?
- powerbi - 显示列是否包含切片器值的计算列
- fortran - 在 Fortran 中,write 函数中的单位是字符。这个怎么理解?
- javascript - 为什么从 request.params.id 表达式返回 jquery-3.5.1.min.js
- debugging - 使用 WSL 在 VSCODE 上安装和运行 GDB
- java - FirebaseMessagingService:手机睡眠时没有通知
- godot - 在 Godot VR 中开发时有没有办法调出键盘?