Developers Forum for XinFin XDC Network

Anton Grigorev
Anton Grigorev

Posted on

New tool for complex smart contract projects developing with XDC networks support

Securrency, a leading blockchain-based financial markets infrastructure and products company, has released a tool called CoralX for Solidity smart contracts development, testing, and deployment.

CoralX is designed to be lightweight, fast, and reliable. It now has basic features:

  • Built-in smart contract compilation (Module from the Truffle.
  • Automated contract testing with Mocha and Chai.
  • Scriptable framework for the deployment and configuration of the smart contract.
  • Network management for deploying to many public & private networks.

What makes CoralX very important for the XDC community is the fact that CoralX can work with any address prefixes and fully supports XDC MainNet and Apothem test networks.

CoralX has great performance for smart contracts testing and deployment.
It was used in some big projects of Securrency (still not open-sourced) with more than 400+ smart contracts.
For example, while complete testing using Truffle took more than 2.5 hours locally, CoralX made everything in 30 minutes.

CoralX is also reliable.
It can store the transactions' execution progress.
If some transaction fails during deployment and/or the process will crash, it is possible to run the deployment process not from the beginning but only for transactions that have failed or haven't been executed.

Fathom, a company that develops lending protocol with real assets, first adopts CoralX for its product development.

CoralX is fully open-sourced and welcomes everyone to contribute.

Discussion (3)

Collapse
l2dy profile image
Zero King

CoralX doesn't seem to work with xdc address prefixes in JSON-RPC responses. I have modified coralX.build.js to expose this stack trace.

Error: invalid address (argument="address", value="xdc0000000000000000000000000000000000000000", code=INVALID_ARGUMENT, version=address/5.5.0)
    at Logger.makeError (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:11034:23)
    at Logger.throwError (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:11043:20)
    at Logger.throwArgumentError (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:11046:21)
    at getAddress (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:6520:16)
    at Formatter.address (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:69581:54)
    at Function.check (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:69765:42)
    at Formatter._block (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:69641:34)
    at Formatter.block (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:69646:21)
    at JsonRpcProvider.<anonymous> (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:71226:39)
    at Generator.next (<anonymous>)
    at fulfilled (~/.nvm/versions/node/v18.9.0/lib/node_modules/coral-x-fe/dist/coralX.build.js:69842:58)
    at processTicksAndRejections (node:internal/process/task_queues:95:5) {
  reason: 'invalid address',
  code: 'INVALID_ARGUMENT',
  argument: 'address',
  value: 'xdc0000000000000000000000000000000000000000',
  checkKey: 'miner',
  checkValue: 'xdc0000000000000000000000000000000000000000'
}
Enter fullscreen mode Exit fullscreen mode
Collapse
baldyash profile image
Anton Grigorev Author

Hello, that fixed. Please install version 0.2.0

Collapse
walterblueu profile image
Jon McBee

XDC Community has opened a bounty for a how-to article covering smart contract creation, testing, and deployment using CoralX: gitcoin.co/issue/29333