Skip to content

Instantly share code, notes, and snippets.

@firedfox
Last active October 8, 2021 11:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save firedfox/a4904adf538be5268a870aa5549eb2cc to your computer and use it in GitHub Desktop.
Save firedfox/a4904adf538be5268a870aa5549eb2cc to your computer and use it in GitHub Desktop.
web3 test
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