How do I use openzeppelin CLI with a Kaleido network?
OpenZeppelin is a very powerful and popular smart contract library, with high quality and secure Solidity code for implementing many types of Ethereum smart contracts like tokens, and role-based permissioning.
OpenZeppelin CLI is a useful tool to manage smart contracts life cycles. It integrates with the upgradable contracts library which makes it even more interesting to Solidity developers.
Due to the security protection on Kaleido blockchain nodes, all connections require authentication with the app credentials. This requires some custom coding to replace the simple
protocol, host, portbased settings in the CLI's network definition.
Use the following technique in
network.jsto create provider instances for the openzeppelin CLI to use:
The environment variable
ETH_URLmust be set to the full URL pointing to a Kaleido node, in the format
https://username:password@hostname, that can be obtained from theConnectmenu of the target Kaleido node.
To try this out in a sample project, checkout this sample repository.