Overview

The project has two roles:

  • Admin: contract owner of contracts. An admin can control platform fee and its recipient, update preMint Digital Asset status and contract addresses. They can pause auction contract, change min bid increment.

  • User: can mint, burn, transfer, sell, buy, auction, and bid their Digital Assets.

This project has been developed with Solidity language, using Hardhat as a development environment. Javascript is the selected language for testing and scripting. In addition, OpenZeppelin’s libraries are used in the project. In the project folder, the following structure is found:

β”œβ”€β”€ contracts
β”‚ β”œβ”€β”€ interfaces
β”‚ β”‚ └── IBouncerKYC.sol
| | └── IFantomAddressRegistry.sol
| | └── IFantomArtion.sol
| | └── IFantomAuction.sol
| | └── IFantomBundleMarketplace.sol
| | └── IFantomMarketplace.sol
| | └── IFantomPriceFeed.sol
| | └── IFantomTokenRegistry.sol
β”‚ β”œβ”€β”€ mocks
β”‚ └── FantomAddressRegistry.sol
| └── FantomArtion.sol
| └── FantomAuction.sol
| └── FantomBundleMarketplace.sol
| └── FantomMarketplace.sol
| └── FantomPriceFeed.sol
| └── FantomTokenRegistry.sol
| └── KYC.sol
| └── Verifiable.sol
β”œβ”€β”€ scripts
β”œβ”€β”€ tasks
β”œβ”€β”€ test
β”œβ”€β”€ hardhat.config.ts
β”œβ”€β”€ package.json
β”œβ”€β”€ package-lock.json
└──  README.md

Start with README.md to find all basic information about project structure.

Inside the ./contracts folder,

  • FantomArtion: mint/ burn Digital Assets.

  • FantomMarketplace: sell/ buy Digital Assets.

  • FantomAuction: auctioning Digital Assets.

  • FantomBundleMarketplace: sell/ buy bundle Digital Assets.

  • FantomAddressRegistry: update project's contracts.

  • FantomPriceFeed: add/ update ERC20 price.

  • FantomTokenRegistry: add/ remove tokens used in the project.

  • Verifiable: the library contains a modifier which checks KYC status. the ./interfaces folder provide all contracts interfaces. the ./mock folder provide contracts which is used for testing.

In the ./tests folder, each file provide the tests of the different methods of the all project contracts, in Javascript.

The project contracts deployment can be found in ./scripts.

The project configuration is found in hardhat.config.ts, where dependencies are indicated. Mind the relationship of this file with .env. More information about this file’s configuration can be found in the Hardhat Documentation.

Last updated