⚙️Security
Your funds are SAFU
Last updated
Your funds are SAFU
Last updated
Our security audit competition is live on Cantina:
There are 8 contract files in the "Contracts" folder
Controller.sol (important): contains most of the core logic; allows admin to set/modify protocol parameters; is approved by users to withdraw unlocked funds from Locker contracts.
DCT.sol: the $GOAT token contract.
GlobalAccessControl.sol: when called by an address, other contracts will call this contract to check whether the calling address has access (is admin) or not.
PoolFactory.sol: creates a "Trust Pool" for each user, so that other users can stake ETH in that pool.
PrivateVester.sol: allows setting/modifying vesting schedule for $GOAT token.
Profile.sol: stores on-chain information and parameters of users.
Voting.sol: allows users to create reputation Challenges and allows them to Vote on these Challenges; much like voting on proposals.
EthSharing.sol: allow users to edit their pool's configuration, such as pool reward rate and staker reward rate.
There are 10 contract files in the "Modules" folder, which are repeatedly used code (to prevent code duplication)
AccessControl.sol: a module used by GlobalAccessControl.sol.
Cashier.sol (important): facilitates users' depositing & withdrawing funds to/from other contracts.
DToken.sol: dividend token that stands for a share in reward distribution.
Distribution.sol (important): distributes rewards to dividend token holders.
Earning.sol: stores user earning and calculates different kinds of earnings.
Initializable.sol
Locker.sol (important): stores locked ETH and $GOAT; only Controller contract is approved (once by each user) to with unlocked funds from Locker contracts.
PERC20.sol: private, non-transferrable ERC20.
UserAccessControl.sol
Vester.sol: stores and unlocks token according to vesting schedule set by PrivateVester contract.
From 18 contract files above, 21 contracts have been successfully deployed on Sepolia Arbitrum testnet. The Dapp is live on https://Arb.Goat.Tech Some of these contracts use the same code, for example DCT_earning and ETH_earning use earning.sol, the xxx_dtoken contracts use dtoken.sol, and the xxx_distributor contracts use distributor.sol.