⬅️ Contracts

TribalChief

The idea for this TribalChief contract is to be the owner of tribe token that is deposited into this contract.This contract was forked from sushiswap and has been modified to distribute staking rewards in tribe. All legacy code that relied on MasterChef V1 has been removed so that this contract will pay out staking rewards in tribe. The assumption this code makes is that this MasterChief contract will be funded before going live and offering staking rewards. This contract will not have the ability to mint tribe.

Mainnet implementations

Name Address
tribalChief 0x9e1076cC0d19F9B0b8019F384B0a29E48Ee46f7f
tribalChiefImpl 0x2d91362e8bcAA8826b482B531dcb170FC9d17777

Core, AutoRewardsDistributor, TribalChiefSyncV2, OptimisticTimelock, ERC20Dripper, StakingTokenWrapper, TribalChief, ProxyAdmin, AutoRewardsDistributorV2

Events

ContractAdminRoleUpdate

event ContractAdminRoleUpdate(bytes32,bytes32)
Params
Param Type Notes
oldContractAdminRole bytes32 indexed
newContractAdminRole bytes32 indexed

CoreUpdate

event CoreUpdate(address,address)
Params
Param Type Notes
oldCore address indexed
newCore address indexed

Deposit

event Deposit(address,uint256,uint256,uint256)
Params
Param Type Notes
user address indexed
pid uint256 indexed
amount uint256
depositID uint256 indexed

EmergencyWithdraw

event EmergencyWithdraw(address,uint256,uint256,address)
Params
Param Type Notes
user address indexed
pid uint256 indexed
amount uint256
to address indexed

Harvest

event Harvest(address,uint256,uint256)
Params
Param Type Notes
user address indexed
pid uint256 indexed
amount uint256

LogPoolAddition

event LogPoolAddition(uint256,uint256,address,address)
Params
Param Type Notes
pid uint256 indexed
allocPoint uint256
stakedToken address indexed
rewarder address indexed

LogPoolMultiplier

event LogPoolMultiplier(uint256,uint128,uint256)
Params
Param Type Notes
pid uint256 indexed
lockLength uint128 indexed
multiplier uint256 indexed

LogSetPool

event LogSetPool(uint256,uint256,address,bool)
Params
Param Type Notes
pid uint256 indexed
allocPoint uint256
rewarder address indexed
overwrite bool

LogUpdatePool

event LogUpdatePool(uint256,uint128,uint256,uint256)
Params
Param Type Notes
pid uint256 indexed
lastRewardBlock uint128 indexed
lpSupply uint256
accTribePerShare uint256

NewTribePerBlock

event NewTribePerBlock(uint256)
Params
Param Type Notes
amount uint256 indexed

Paused

event Paused(address)
Params
Param Type Notes
account address

PoolLocked

event PoolLocked(bool,uint256)
Params
Param Type Notes
locked bool indexed
pid uint256 indexed

TribeWithdraw

event TribeWithdraw(uint256)
Params
Param Type Notes
amount uint256

Unpaused

event Unpaused(address)
Params
Param Type Notes
account address

Withdraw

event Withdraw(address,uint256,uint256,address)
Params
Param Type Notes
user address indexed
pid uint256 indexed
amount uint256
to address indexed

Methods

CONTRACT_ADMIN_ROLE

function CONTRACT_ADMIN_ROLE() view returns(bytes32)

a role used with a subset of governor permissions for this contract only

Returns
Param Type Notes
bytes32

SCALE_FACTOR

function SCALE_FACTOR() view returns(uint256)

decimals for rewards multiplier

Returns
Param Type Notes
uint256

TRIBE

function TRIBE() view returns(address)

Address of Tribe contract. Cannot be immutable due to limitations of proxies

Returns
Param Type Notes
address

add

function add(uint120,address,address,(uint128,uint128)[]) nonpayable

Add a new pool. Can only be called by the governor.

Params
Param Type Notes
allocPoint uint120 AP of the new pool.
_stakedToken address Address of the ERC-20 token to stake.
_rewarder address Address of the rewarder delegate.
rewardData tuple[] Reward Multiplier data

core

function core() view returns(address)

address of the Core contract referenced

Returns
Param Type Notes
address ICore implementation address

deposit

function deposit(uint256,uint256,uint64) nonpayable

Deposit tokens to earn TRIBE allocation.

Params
Param Type Notes
pid uint256 The index of the pool. See poolInfo.
amount uint256 The token amount to deposit.
lockLength uint64 The length of time you would like to lock tokens

depositInfo

function depositInfo(uint256,address,uint256) view returns(uint256,uint128,uint128)

Info of each user that stakes tokens.

Params
Param Type Notes
uint256
address
uint256
Returns
Param Type Notes
amount uint256
unlockBlock uint128
multiplier uint128

emergencyWithdraw

function emergencyWithdraw(uint256,address) nonpayable

Withdraw without caring about rewards. EMERGENCY ONLY.

Params
Param Type Notes
pid uint256 The index of the pool. See poolInfo.
to address Receiver of the deposited tokens.

fei

function fei() view returns(address)

address of the Fei contract referenced by Core

Returns
Param Type Notes
address IFei implementation address

feiBalance

function feiBalance() view returns(uint256)

fei balance of contract

Returns
Param Type Notes
uint256 fei amount held

getTotalStakedInPool

function getTotalStakedInPool(uint256,address) view returns(uint256)

Returns the amount a user deposited in a single pool.

Params
Param Type Notes
pid uint256
user address
Returns
Param Type Notes
uint256

governorAddPoolMultiplier

function governorAddPoolMultiplier(uint256,uint64,uint64) nonpayable

Allows governor to change the pool multiplier Unlocks the pool if the new multiplier is greater than the old one

Params
Param Type Notes
_pid uint256 pool ID
lockLength uint64 lock length to change
newRewardsMultiplier uint64 updated rewards multiplier

governorWithdrawTribe

function governorWithdrawTribe(uint256) nonpayable

sends tokens back to governance treasury. Only callable by governance

Params
Param Type Notes
amount uint256 the amount of tokens to send back to treasury

harvest

function harvest(uint256,address) nonpayable

Harvest proceeds for transaction sender to to.

Params
Param Type Notes
pid uint256 The index of the pool. See poolInfo.
to address Receiver of TRIBE rewards.

initialize

function initialize(address,address) nonpayable
Params
Param Type Notes
_core address The Core contract address.
_tribe address The TRIBE token contract address.

isContractAdmin

function isContractAdmin(address) view returns(bool)

returns whether a given address has the admin role for this contract

Params
Param Type Notes
_admin address
Returns
Param Type Notes
bool

lockPool

function lockPool(uint256) nonpayable

Allows governor to lock the pool so the users cannot withdraw until their lockup period is over

Params
Param Type Notes
_pid uint256 pool ID

massUpdatePools

function massUpdatePools(uint256[]) nonpayable

Update reward variables for all pools. Be careful of gas spending!

Params
Param Type Notes
pids uint256[] Pool IDs of all to be updated. Make sure to update all active pools.

numPools

function numPools() view returns(uint256)

Returns the number of pools.

Returns
Param Type Notes
uint256

openUserDeposits

function openUserDeposits(uint256,address) view returns(uint256)

Returns the number of user deposits in a single pool.

Params
Param Type Notes
pid uint256
user address
Returns
Param Type Notes
uint256

pause

function pause() nonpayable

set pausable methods to paused

paused

function paused() view returns(bool)

Returns true if the contract is paused, and false otherwise.

Returns
Param Type Notes
bool

pendingRewards

function pendingRewards(uint256,address) view returns(uint256)

View function to see all pending TRIBE on frontend.

Params
Param Type Notes
_pid uint256 The index of the pool. See poolInfo.
_user address Address of user.
Returns
Param Type Notes
uint256 pending TRIBE reward for a given user.

poolInfo

function poolInfo(uint256) view returns(uint256,uint256,uint128,uint120,bool)

Info of each pool.

Params
Param Type Notes
uint256
Returns
Param Type Notes
virtualTotalSupply uint256
accTribePerShare uint256
lastRewardBlock uint128
allocPoint uint120
unlocked bool

resetRewards

function resetRewards(uint256) nonpayable

Reset the given pool's TRIBE allocation to 0 and unlock the pool. Can only be called by the governor or guardian.

Params
Param Type Notes
_pid uint256 The index of the pool. See poolInfo.

rewardMultipliers

function rewardMultipliers(uint256,uint128) view returns(uint128)

Info of each pool rewards multipliers available. map a pool id to a block lock time to a rewards multiplier

Params
Param Type Notes
uint256
uint128
Returns
Param Type Notes
uint128

rewarder

function rewarder(uint256) view returns(address)

Address of each IRewarder contract.

Params
Param Type Notes
uint256
Returns
Param Type Notes
address

set

function set(uint256,uint120,address,bool) nonpayable

Update the given pool's TRIBE allocation point and IRewarder contract. Can only be called by the governor.

Params
Param Type Notes
_pid uint256 The index of the pool. See poolInfo.
_allocPoint uint120 New AP of the pool.
_rewarder address Address of the rewarder delegate.
overwrite bool True if _rewarder should be set. Otherwise _rewarder is ignored.

setContractAdminRole

function setContractAdminRole(bytes32) nonpayable

sets a new admin role for this contract

Params
Param Type Notes
newContractAdminRole bytes32

setCore

function setCore(address) nonpayable

set new Core reference address

Params
Param Type Notes
newCore address the new core address

stakedToken

function stakedToken(uint256) view returns(address)

Address of the token you can stake in each pool.

Params
Param Type Notes
uint256
Returns
Param Type Notes
address

tribe

function tribe() view returns(address)

address of the Tribe contract referenced by Core

Returns
Param Type Notes
address IERC20 implementation address

tribeBalance

function tribeBalance() view returns(uint256)

tribe balance of contract

Returns
Param Type Notes
uint256 tribe amount held

tribePerBlock

function tribePerBlock() view returns(uint256)

Calculates and returns the amount of TRIBE per block.

Returns
Param Type Notes
uint256

unlockPool

function unlockPool(uint256) nonpayable

Allows governor to unlock the pool so that users can withdraw before their tokens have been locked for the entire lockup period

Params
Param Type Notes
_pid uint256 pool ID

unpause

function unpause() nonpayable

set pausable methods to unpaused

updateBlockReward

function updateBlockReward(uint256) nonpayable

Allows governor to change the amount of tribe per block make sure to call the update pool function before hitting this function this will ensure that all of the rewards a user earned previously get paid out

Params
Param Type Notes
newBlockReward uint256 The new amount of tribe per block to distribute

updatePool

function updatePool(uint256) nonpayable

Update reward variables of the given pool.

Params
Param Type Notes
pid uint256 The index of the pool. See poolInfo.

userInfo

function userInfo(uint256,address) view returns(int256,uint256)

Info of each users reward debt and virtual amount. One object is instantiated per user per pool

Params
Param Type Notes
uint256
address
Returns
Param Type Notes
rewardDebt int256
virtualAmount uint256

withdrawAllAndHarvest

function withdrawAllAndHarvest(uint256,address) nonpayable

Withdraw staked tokens from pool.

Params
Param Type Notes
pid uint256 The index of the pool. See poolInfo.
to address Receiver of the tokens.

withdrawFromDeposit

function withdrawFromDeposit(uint256,uint256,address,uint256) nonpayable

Withdraw tokens from pool.

Params
Param Type Notes
pid uint256 The index of the pool. See poolInfo.
amount uint256 Token amount to withdraw.
to address Receiver of the tokens.
index uint256

⬅️ Contracts