LK3R governance by design has a low overhead, it is not meant to be protocol intensive. The focus is simply on reviewing and approving jobs, and if absolutely required mitigate disputes or blacklist lockers.
Only bonded Lockers may participate in governance. To participate in governance a locker must first
bond LK3R, once bonded they can
delegate voting rights to either themselves or another party.
The core function of governance is to approve and include jobs, when liquidity is provided for a job, a proposal is automatically created to include them for review. Bonded lockers will review the contracts and decide if they should be included. It is important that jobs code defensively, assume lockers will only include your job to maximize their returns, as such maximum payment thresholds have been implemented.
/** * @notice Allows governance to add new job systems * @param job address of the contract for which work should be performed */function addJob(address job) external
/** * @notice Allows governance to remove a job from the systems * @param job address of the contract for which work should be performed */function removeJob(address job) external
As a last resort, governance has certain rights over managing Lockers, these include lodging disputes, slashing, revoking access, and resolving disputes.
/** * @notice allows governance to create a dispute for a given locker * @param locker the address in dispute */function dispute(address locker) external
/** * @notice allows governance to resolve a dispute on a locker * @param locker the address cleared */function resolve(address locker) external
/** * @notice allows governance to slash a locker based on a dispute * @param bonded the asset being slashed * @param locker the address being slashed * @param amount the amount being slashed */function slash(address bonded, address locker, uint amount) public
/** * @notice blacklists a locker from participating in the network * @param locker the address being slashed */function revoke(address locker) external