@rsksmart/rsk-contract-parser
Version:
A tool to parse/interact with contracts and decode events from the Rootstock blockchain.
63 lines (52 loc) • 1.8 kB
JavaScript
;var _ContractParser = _interopRequireDefault(require("../lib/ContractParser"));
var _nod3Connect = require("../lib/nod3Connect");function _interopRequireDefault(e) {return e && e.__esModule ? e : { default: e };}
async function main() {
const contractAddress = process.argv[2];
const network = process.argv[3];
let blockNumber = process.argv[4];
let nod3Url = '';
if (!contractAddress || !network || !blockNumber) {
console.error('Usage: node getDefaultTokenData.js <contractAddress: address> <network: testnet|mainnet> <blockNumber: number|blockTag>');
process.exit(1);
}
if (network !== 'testnet' && network !== 'mainnet') {
console.error(`Invalid network: ${network}. Must be 'testnet' or 'mainnet'.`);
process.exit(1);
}
if (network === 'testnet') {
nod3Url = 'https://public-node.testnet.rsk.co';
} else {
nod3Url = 'https://public-node.rsk.co';
}
const nod3 = (0, _nod3Connect.nod3Connect)(nod3Url);
const parser = new _ContractParser.default({ nod3 });
const contract = parser.makeContract(contractAddress);
// In case its not latest, ensure it's a valid block number
if (blockNumber !== 'latest') {
blockNumber = parseInt(blockNumber);
if (isNaN(blockNumber)) {
console.error(`Invalid block number: ${blockNumber}. Must be a number or 'latest'.`);
process.exit(1);
}
}
const tokenData = await parser.getDefaultTokenData(contract, blockNumber);
console.log(tokenData);
}
main();
/*
curl -X POST \
-H "Content-Type: application/json" \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "eth_call",
"params": [
{
"to": "0x74C9F2B00581F1b11Aa7Ff05aa9f608B7389de67",
"data": "0x06fdde03"
},
"0x6b0909"
]
}' \
http://localhost:4446
*/