Last active
October 8, 2021 11:32
-
-
Save firedfox/a4904adf538be5268a870aa5549eb2cc to your computer and use it in GitHub Desktop.
web3 test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment