需要获取到智能合约地址+智能合约ABI
1.打开https://etherscan.io/搜索cmt,跳转到该页面,点击红色区域,跳转到智能合约地址
2.address是智能合约地址,点击Contract Source 获取ABI
3.code:调用cmt智能合约的方法balanceOf()
const Web3 = require("web3");const BigNumber = require('bignumber.js');const Ether = new BigNumber(10e+17);let web3 = new Web3(new Web3.providers.HttpProvider('/eth'));let abi = [{"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": "", "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": "", "type": "bool"}],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"constant": true,"inputs": [],"name": "INITIAL_SUPPLY","outputs": [{"name": "", "type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"}, {"constant": true,"inputs": [],"name": "decimals","outputs": [{"name": "", "type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"}, {"constant": false,"inputs": [],"name": "unpause","outputs": [],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"constant": true,"inputs": [],"name": "paused","outputs": [{"name": "", "type": "bool"}],"payable": false,"stateMutability": "view","type": "function"}, {"constant": false,"inputs": [{"name": "_spender", "type": "address"}, {"name": "_subtractedValue", "type": "uint256"}],"name": "decreaseApproval","outputs": [{"name": "success", "type": "bool"}],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"constant": true,"inputs": [{"name": "_owner", "type": "address"}],"name": "balanceOf","outputs": [{"name": "balance", "type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"}, {"constant": false,"inputs": [],"name": "pause","outputs": [],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"constant": true,"inputs": [],"name": "owner","outputs": [{"name": "", "type": "address"}],"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": "", "type": "bool"}],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"constant": false,"inputs": [{"name": "_spender", "type": "address"}, {"name": "_addedValue", "type": "uint256"}],"name": "increaseApproval","outputs": [{"name": "success", "type": "bool"}],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"constant": true,"inputs": [{"name": "_owner", "type": "address"}, {"name": "_spender", "type": "address"}],"name": "allowance","outputs": [{"name": "", "type": "uint256"}],"payable": false,"stateMutability": "view","type": "function"}, {"constant": false,"inputs": [{"name": "newOwner", "type": "address"}],"name": "transferOwnership","outputs": [],"payable": false,"stateMutability": "nonpayable","type": "function"}, {"inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor"}, {"anonymous": false,"inputs": [],"name": "Pause","type": "event"}, {"anonymous": false, "inputs": [], "name": "Unpause", "type": "event"}, {"anonymous": false,"inputs": [{"indexed": true, "name": "previousOwner", "type": "address"}, {"indexed": true,"name": "newOwner","type": "address"}],"name": "OwnershipTransferred","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"}, {"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"}]let addr = '0xf85fEea2FdD81d51177F6b8F35F0e6734Ce45F5F'let metacoin = new web3.eth.Contract(abi, addr);metacoin.methods.balanceOf('0x3f5CE5FBFe3E9af3971dD833D26bA9b5C936f0bE').call().then(v => {let ret = new BigNumber(v);return parseFloat(ret.dividedBy(Ether)).toFixed(2);}).then(sum => {console.log(sum);})