const Web3 = require('web3'); const web3 = new Web3('https://mainnet.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161'); const myWalletAddress = '0x8bD4DD33e7a479409d8bb8c1eA33BCf6f5625391'; const artBlocksBroker = { address: '0xE52A2A7B8dACe2ff8cdC64EabB605821A393474D', abi: [{"inputs":[{"internalType":"address","name":"_profitReceiver","type":"address"},{"internalType":"uint256","name":"_artBlocksBrokerFeeBips","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_user","type":"address"},{"indexed":true,"internalType":"uint256","name":"_artBlocksProjectId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_priceInWeiEach","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_quantity","type":"uint256"},{"indexed":false,"internalType":"string","name":"_action","type":"string"},{"indexed":false,"internalType":"uint256","name":"_optionalTokenId","type":"uint256"}],"name":"Action","type":"event"},{"inputs":[],"name":"ARTBLOCKS_FACTORY","outputs":[{"internalType":"contract IArtBlocksFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"artBlocksBrokerFeeBips","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_artBlocksProjectId","type":"uint256"}],"name":"cancelOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newArtBlocksBrokerFeeBips","type":"uint256"}],"name":"changeArtBlocksBrokerFeeBips","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newCoordinator","type":"address"}],"name":"changeCoordinator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newProfitReceiver","type":"address"}],"name":"changeProfitReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coordinator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_user","type":"address[]"},{"internalType":"uint256[]","name":"_artBlocksProjectId","type":"uint256[]"},{"internalType":"uint256[]","name":"_tokenId","type":"uint256[]"},{"internalType":"uint256[]","name":"_expectedPriceInWeiEach","type":"uint256[]"},{"internalType":"address[]","name":"_profitTo","type":"address[]"},{"internalType":"bool[]","name":"_sendNow","type":"bool[]"}],"name":"fulfillMultipleOrders","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_artBlocksProjectId","type":"uint256"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_expectedPriceInWeiEach","type":"uint256"},{"internalType":"address","name":"_profitTo","type":"address"},{"internalType":"bool","name":"_sendNow","type":"bool"}],"name":"fulfillOrder","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"orders","outputs":[{"internalType":"uint128","name":"priceInWeiEach","type":"uint128"},{"internalType":"uint128","name":"quantity","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_artBlocksProjectId","type":"uint256"},{"internalType":"uint128","name":"_quantity","type":"uint128"}],"name":"placeOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"profitReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_artBlocksProjectId","type":"uint256"}],"name":"viewOrder","outputs":[{"components":[{"internalType":"uint128","name":"priceInWeiEach","type":"uint128"},{"internalType":"uint128","name":"quantity","type":"uint128"}],"internalType":"struct ArtBlocksBroker.Order","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"},{"internalType":"uint256[]","name":"_artBlocksProjectIds","type":"uint256[]"}],"name":"viewOrders","outputs":[{"components":[{"internalType":"uint128","name":"priceInWeiEach","type":"uint128"},{"internalType":"uint128","name":"quantity","type":"uint128"}],"internalType":"struct ArtBlocksBroker.Order[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}], }; const contract = new web3.eth.Contract(artBlocksBroker.abi, artBlocksBroker.address); const callback = title => (err, res) => { console.log(title + ':', err || res); }; const balanceCallback = title => (err, balance) => { console.log(title + ':', err || web3.utils.fromWei(balance)); }; const batch = new web3.BatchRequest(); batch.add(web3.eth.getBlockNumber.request(callback('eth total block number'))); batch.add(web3.eth.getProtocolVersion.request(callback('eth protocol version'))); batch.add(web3.eth.getGasPrice.request(callback('gas price'))); batch.add(web3.eth.getBalance.request(artBlocksBroker.address, 'latest', balanceCallback('contract balance'))); batch.add(contract.methods.balances(myWalletAddress).call.request(balanceCallback('my balance'))); batch.execute(); (async () => { const coordinator = await contract.methods.coordinator().call(); const balance = await web3.eth.getBalance(coordinator, 'latest'); console.log('creator balance:', web3.utils.fromWei(balance)); })();