Hardhat

The easiest way to get started with writing smart contracts on COTI is to clone the COTI Hardhat Template. This template is a simple Hardhat project that includes all the configurations and packages needed to connect to the Testnet and integrate COTI's privacy features into your own smart contracts.

Since the local Hardhat network does not include the precompiled contracts needed for computations on private data types, the only way to test contracts that use these features is by running your test scripts on the COTI Testnet.

Let's start by cloning the repository:

git clone https://github.com/coti-io/coti-hardhat-template

Before we can continue with exploring the repository, we have to install the dependencies:

npm install

The repository includes a simple privacy-enabled smart contract (PrivateStorage.sol) which, as the name suggests, accepts encrypted inputs and stores them on-chain using the user's AES encryption key. There is also a short test suite included in the template.

To run the test suite, execute the following command in your terminal:

npx hardhat test

On your first time running the test suite, you will see the following message printed to the console:

1) PrivateStorage
       Deployment
         Should set the value of the encrypted number:
     Error: Created new random accounts <ACCCOUNT_ADDRESS>. Please use faucet to fund it.

To fund the newly created account, head over to the faucet and send a message to the both in the following format:

testnet <ACCCOUNT_ADDRESS>

Now that you have funded your account, you can run the test suite again:

npx hardhat test

Last updated