Identity.com Smart Contracts
Summary
The smart contracts of the Identity.com marketplace.
Identity.com grants users, requesters, and validators around the world entry to accessible, reusable identity verification powered by CVC tokens.
Contracts
Functional Contracts
CvcOntology:
Holds the list of all recognized Credential Items available for sale in the ecosystem.
CvcPricing:
Stores actual prices for Credential Items available for sale. It allows registered Identity Validators to set or delete prices for specific Credential Items.
CvcEscrow:
Provides an escrow service for the Identity.com marketplace. It controls an escrow placement's lifecycle which involves transferring a pre-approved amount funds
CvcValidatorRegistry:
A registry for Identity Validators (IDV). It is part of the marketplace access control mechanism.
Support Contracts
- CvcMigrator
- CvcProxy
- EternalStorage
- ImplementationStorage
- Initializable
- Ownable
- Pausable
- Migrations
For details on the migration and proxy patterns used in Identity.com, see migrations/README.md
Project structure
The project follows the Truffle framework basic structure:
migrations
folder for the migration filescontracts
folder for smart contract source code filestest
for smart contracts unit teststruffle.js
file at the top level for network management.
Testing
All tests are running against Truffle's Ganache.
We have the docker-compose.yml
file with default setup for ganache to speed up environment setup.
See package.json
for available testing commands.
Running migrations
Setup connection to your ethereum node (ganache/privatenet/testnet/mainnet).
Run deploy-contracts
npm command.
Resulting JSON artifacts with ABIs and network addresses will be in artifacts/deployed
folder.