WoopChain Node Installation
WoopChain Configuration.
WoopChain Query JSON RPC endpoints
WoopChain Query data and start the chain with a premined account.
The JSON-RPC layer of the WoopChain provides developers with the functionality of easily interacting with the blockchain, through HTTP requests.
This example covers using tools like curl to query information, as well as starting the chain with a premined account, and sending a transaction.
Step 1: Create a genesis file with a premined account
To generate a genesis file, run the following command:
woop genesis --premine 0x1010101010101010101010101010101010101010
The premine flag sets the address that should be included with a starting balance in the genesis file. In this case, the address 0x1010101010101010101010101010101010101010 will have a starting default balance of 0xD3C21BCECCEDA1000000 (1 million native currency tokens).
If we wanted to specify a balance, we can separate out the balance and address with a : like :
woop genesis --premine 0x1010101010101010101010101010101010101010:0x123123
The balance can be either a hex or uint256 value. Only premine accounts for which you have a private key!
If you premine accounts and do not have a private key to access them, you premined balance will not be usable.
Step 2: Start the WoopChain in dev mode
To start the WoopChain in development mode, run the following:
woop server --chain genesis.json --dev --log-level debug
Step 3: Query the account balance
Now that the client is up and running in dev mode, using the genesis file generated in step 1, you can use a tool like curl to query the account balance:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x1010101010101010101010101010101010101010", "latest"],"id":1}' localhost:8545
The command should return the following output:
{
"id":1,
"result":"0x100000000000000000000000000"
}
Step 4: Send a transfer transaction
Now that we've confirmed the account we set up as premined has the correct balance, we can transfer some ether:
var Web3 = require("web3");
const web3 = new Web3
; //example: ws://localhost: 10002/ws
web3. eth. accounts
.signTransaction(
{
to: "< recipient address>",
value: web3.utils.toWei("< value in ETH>"),
gas: 21000,
},
""
)
.then( ( signedTxData) => {
web3.eth
.sendSignedTransaction( signedTxData.rawTransaction)
.on(" receipt", console.log);
});