This box comes with everything you need to start using Truffle on RSK Blockchain. It includes network configurations for Mainnet, Testnet and the SimpleStorage contract as an example to deploy.
RSK is an open source platform for Ethereum compatible smart contracts based on the Bitcoin network.
Go to Node.js if you need to install it.
Install Truffle globally
npm install -g truffle
rsk-starter
.
Navigate to the folder in the terminal.mkdir rsk-starter
cd rsk-starter
truffle unbox rsksmart/rsk-starter-box
Truffle has an interactive console that also spawns a development blockchain. This is very useful for compiling, deploying and testing locally.
truffle develop
SimpleStorage.sol
. You can check it out in folder contracts
.This smart contract has:
storedData
to store a numberget()
to return the number stored at variable storedData
set()
to change the number stored at variable storedData
compile
migrate
Our box also comes with the file TestSimpleStorage.js
for testing the smart contract. You can check it out in the test
folder.
test
NOTE: This box is the starting point for the RSK tutorial Using rsk-starter-box.
Truffle makes developing on RSK easier because we can configure custom networks for RSK. The networks are already configured in the truffle-config.js
file.
Gas is the internal pricing for running a transaction or contract. When you send tokens, interact with a contract, send RBTC, or do anything else on the blockchain, you must pay for that computation. That payment is calculated as gas. In RSK, this is paid in RBTC. The minimumGasPrice is written in the block header by miners and establishes the minimum gas price that a transaction should have in order to be included in that block.
To get the minimumGasPrice do the following steps:
Run this query using cURL:
Mainnet
curl https://public-node.rsk.co/ \
-X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'
Testnet
curl https://public-node.testnet.rsk.co/ \
-X POST -H "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'
Find in the result the field minimumGasPrice
For more information about the Gas and minimumGasPrice please go here.
Copy your mnemonic to truffle-config.js
// truffle-config.json
const HDWalletProvider = require('@truffle/hdwallet-provider');
//Put your mnemonic here, be careful not to deploy your mnemonic into production!
const mnemonic = 'A_MNEMONIC';
Please be aware that we are using HDWalletProvider
with RSK Networks derivations path:
m/44’/137’/0’/0
m/44’/37310’/0’/0
For more information check RSKIP57.
Check the gas price of the network, and update truffle-config.js
if necessary.
Run the truffle console for any RSK network.
# Console for Mainnet
truffle console --network mainnet
# Console forn Testnet
truffle console --network testnet
Compile and migrate the smart contracts. Note that inside the development console, we don’t preface commands with truffle.
compile
migrate
Another option is to run the below commands directly in the terminal, out of the truffle console.
truffle compile
truffle migrate
Go to the tutorial Using rsk-starter-box to learn how to interact with SimpleStorage.sol
. Also, we covered all the steps with more details, explanations, and images.
Check out the RSK developers portal.
Ask in the RSK community Slack.
Go to top