layer-3 / smart

1 stars 3 forks source link

Improve structure of dev env #20

Closed nksazonov closed 2 years ago

nksazonov commented 2 years ago

Closes #13. Part of #11.

nksazonov commented 2 years ago
  • Remove ./addresses/hardhat-accounts.json (folder too), since this is not used anymore on both our repo and dependent repositories

We need this file as it stores addresses and private keys generated from a mnemonic (specified at hardhat.config.ts) to be able to interact with local hardhat network. We don't use default hardhat accounts (whose private keys are specified on generation) to mitigate damage made by accidental crypto transfer to those accounts as there are bots listening to their balance updates. Thus, in case of their top up, any crypto would be momentarily drained (because private keys are publicly known). So if we accidentally transfer crypto on accounts we generated ourselves, we can securely return it.

Also it is worth noting that these accounts are used by back-end team when testing State Channels SDK.

Thus, whether to remove this folder and file or not depends on whether we will use our customised hardhat accounts or a default ones.

nksazonov commented 2 years ago
  • Remove /.openzepplin/

This folder stores files with addresses of proxies and implementations of openzeppelin/contract-upgradeable deployments. Without this file it is impossible to interact or upgrade the contract.

Docs about .openzeppelin folder: https://docs.openzeppelin.com/upgrades-plugins/1.x/#how-plugins-work

The plugins will keep track of all the implementation contracts you have deployed in an .openzeppelin folder in the project root, as well as the proxy admin. You will find one file per network there. It is advised that you commit to source control the files for all networks except the development ones (you may see them as .openzeppelin/unknown-*.json).

So whether to keep this folder or not depends on our usage of openzeppelin-upgrades, like Yellow token.