Governance & Crosschain
InterestRate Ballot
InterestRateBallot.cast(uint256 weight)
InterestRateBallot.cast(uint256 weight)
Cast vote for the numerical value of the relative income percentage in Bishop NAV. weight
is a number that should not exceed 1e18, representing 100%. To calculate the voting power the user, the function will synchronize its lock position with VotingEscrow
contract.
Controller Ballot
ControllerBallot.cast(uint256[] weights)
ControllerBallot.cast(uint256[] weights)
Cast a distribution of the user’s current voting power across all valid Tranchess funds, liquidity pools. and other eligible reward receivers. weights
is an array of numbers that should sum up to 1e18, representing 100%. To calculate the voting power the user, the function will synchronize its lock position with VotingEscrow
contract.
VotingEscrow
This contract handles the main logic for creation, redemption and balance calculation of the vote-lock CHESS token veCHESS
. vecCHESS
is the governance token in Tranchess ecosystem. Users should lock up their CHESS token for a specified period of time in exchange for veCHESS
. The balance of veCHESS
diminishes linearly with respect to time for all users alike.
Depositing/withdrawing veCHESS
VotingEscrow.createLock(uint256 amount, uint256 unlockTime)
VotingEscrow.createLock(uint256 amount, uint256 unlockTime)
Create a vote-lock position of amount
CHESS expired at unlockTime
. Note that the unlockTime
must be at the end of a future week but cannot exceed the maximal allowed lock time maxTimeAllowed
.
VotingEscrow.increaseAmount(address account, uint256 amount)
VotingEscrow.increaseAmount(address account, uint256 amount)
Increase the number of CHESS of an existing vote-lock position. Note that you cannot call increaseAmount
upon an expired position; you will have to withdraw
the previous position and use createLock
to create a new position.
VotingEscrow.increaseUnlockTime(uint256 unlockTime)
VotingEscrow.increaseUnlockTime(uint256 unlockTime)
Extend the expiration date of an existing vote-lock position. Note that you cannot call increaseAmount
upon an expired position; you will have to withdraw
the previous position and use createLock
to create a new position.
VotingEscrow.withdraw()
VotingEscrow.withdraw()
Withdraw CHESS locked in expired positions.
veCHESS Crosschain
VotingEscrow.veChessCrossChain(uint256 amount, uint256 toChainID)
VotingEscrow.veChessCrossChain(uint256 amount, uint256 toChainID)
Transfer veCHESS
to the VotingEscrow
on another chain specified by toChainID
using Multichain’s AnyCall infrastructure. User should pay cross-chain fee in native currency (e.g. ETH on Ethereum) when calling this function. Exact fee amount can be queried from the AnyCall proxy contract, i.e. IAnyCallV6Proxy(thisContract.anyCallProxy()).calcSrcFees(thisContract, toChainID, 96)
.
Last updated