In the following example we will show how to invoke redeemAllDoc using Money on Chain contract. As a condition to do this the MoC contract must be paused(). Check the DOC redeemption section for more details.
We will use truffle and testnet network. You can find code examples into /examples dir.
First we create a new node project.
mkdir example-redeem-all-doc
cd example-redeem-all-doc
npm init
Let's add the necessary dependencies to run the project.
npm install --save web3
Example
constWeb3=require('web3');//You must compile the smart contracts or use the official ABIs of the repositoryconstMoC=require('../../build/contracts/MoC.json');consttruffleConfig=require('../../truffle');/** * Get a provider from truffle.js file * @param{String} network */constgetDefaultProvider= network =>truffleConfig.networks[network].provider ||truffleConfig.networks[network].endpoint;/** * Get a gasPrice from truffle.js file * @param{String} network */constgetGasPrice= network =>truffleConfig.networks[network].gasPrice ||60000000;/** * Get a new web3 instance from truffle.js file */constgetWeb3= network => {constprovider=getDefaultProvider(network);returnnewWeb3(provider,null, { transactionConfirmationBlocks:1 });};constweb3=getWeb3('rskTestnet');constgasPrice=getGasPrice('rskTestnet');// Loading MoC address on testnetconstmocAddress='<contract-address>';constexecute=async () => {web3.eth.defaultGas =2000000;/** * Loads an specified contract * @param{ContractABI} abi * @param{String} contractAddress */constgetContract=async (abi, contractAddress) =>newweb3.eth.Contract(abi, contractAddress);// Loading MoC contractconstmoc=awaitgetContract(MoC.abi, mocAddress);if (!moc) {throwError('Can not find MoC contract.'); }constredeemAllDoc=async () => {const [from] =awaitweb3.eth.getAccounts();console.log(`Calling redeem all Doc.`);moc.methods.redeemAllDoc().send({ from, gasPrice },function(error, transactionHash) {if (error) console.log(error);if (transactionHash) console.log('txHash: '.concat(transactionHash)); }).on('transactionHash',function(hash) {console.log('TxHash: '.concat(hash)); }).on('receipt',function(receipt) {console.log(receipt); }).on('error',console.error); };// Call redeemawaitredeemAllDoc();};execute().then(() =>console.log('Completed')).catch(err => {console.log('Error', err); });