CESC: sCalability for Ethereum Smart Contracts
EthereumClient
EthereumClient Require Example
var Action ContractModule EthereumClient = 'amqp://localhost''localhost''ethereum-client-test';
Modules
This project contents different modules in one. Let's check it ou the different ones:
Action Module
This module, allows to create actions and their associated transactions.
New action
let actionClient = await "action-buy-car" userId collectionName: "cars" collectionObjectId: "5c9b60a39d3e152f1891b921";
New Transaction
var result = actionClient;
Contract Module
This module allows to create and store into the mongo database the contracts you need on your project and for each one their own abi.
let saveContract = await ContractModule;
Once you stored your contracts in the database, you can retrieve the contract information with their name, when you create a transaction.
actionClient;
Event Module
This modules allows to capture or emit new events with the EventEmitter. Also this model capture 3 predefined events:
-
on('hash'): When we gets the hash for a transaction that we send to the blockchain.
-
on('error'): When the transaction fails. Also this event emits another one, that can be treated externally with the action name:
transactionEvents;
- on('validated'): When the transaction achieve the number of confirmations you set in the configuration file. Also this event emits "actionName.on-completed" event if necessary. This only happens when all the transactions for a specific action have been finished successfully:
transactionEvents;
Error Module
This Module allows to create a new Error, with a custom message and code.
Requiere
const ErrorWeb3 = ;
Utilitzation
if!trx throw "Transaction doesn't exist in the blockchain" ErrorWeb3TRANSACTION_NOT_EXIST;