Contracts overview

Contract architecture

( Updated 2021/ 3 / 1 )

  • Diagram is based on live deployed

  • Belt.fi have two contract group ( Vaults and AMM with Yield )

Contract list

  • BELT Token

    • Description

      • BEP-20 BELT token contract

    • Interface

      • Read

        • initialSupply

        • initialSupplyRemaining

        • startBlockMining

        • BELTPerBlock

        • getCirculatingSupply()

        • ADDRESS burnAddress

        • ADDRESS initialSupplyClaimer => TEAM EOA wallet

        • ADDRESS owner => MasterBelt contract

      • Write

        • [ONLY CLAIMER] claimInitialSupply(uint _amount)

        • [ONLY OWNER] mint(address _to, uint256 _amount)

  • MasterBelt

    • Description

      • Mint and burn BELT token

      • Manage VaultBPool and Distribute BELT token to VaultBPool

      • Calculating pendingBELT for claim

    • Interface

      • Read

        • ADDRESS BELT

        • ADDRESS burnAddress

        • ADDRESS owner => TEAM EOA wallet

        • ownerBELTReward

        • BELTPerBlock

        • startBlock

        • poolInfo[]

        • userInfo[][]

        • totalAllocPoint

        • stakedWantTokens(uint256 _pid, address _user)

        • pendingBELT(uint256 _pid, address _user)

      • Write

        • [ONLY OWNER] add(uint256 _allocPoint,IERC20 _want,bool _withUpdate,address _strat)

        • [ONLY OWNER] set(uint256 _pid,uint256 _allocPoint,bool _withUpdate)

        • [ONLY OWNER] inCaseTokensGetStuck(address _token, uint256 _amount)

        • massUpdatePools()

        • updatePool(uint256 _pid)

        • deposit(uint256 _pid, uint256 _wantAmt)

        • withdraw(uint256 _pid, uint256 _wantAmt)

        • withdrawAll(uint256 _pid)

        • emergencyWithdraw(uint256 _pid)

  • BeltStrategy

    • Description

      • Manage assets with best yield strategy

    • Interface

      • Read

        • ADDRESS govAddress => TEAM EOA Wallet

        • ADDRESS owner .=> bToken Contract

        • ADDRESS BELTAddress

        • ADDRESS wantAddress

        • ADDRESS vTokenAddress

        • wantLockedTotal()

        • wantLockedInHere()

      • Write

        • [ONLY OWNER][PAUSABLE] deposit(address _userAddress, uint256 _wantAmt)

        • [ONLY OWNER] withdraw(address _userAddress, uint256 _wantAmt)

        • farm(bool _withLev)

        • deleverageOnce()

        • deleverageUntilNotOverLevered()

        • [PAUSABLE] earn()

        • updateBalance()

        • wrapBNB()

        • [ONLY GOV] rebalance(uint256 _borrowRate, uint256 _borrowDepth)

        • [DISABLED] pause()

        • [DISABLED] unpause()

        • [DISABLED] setEntranceFeeFactor(uint256 _entranceFeeFactor)

        • [DISABLED] setControllerFee(uint256 _controllerFee)

        • [DISABLED] setbuyBackRate(uint256 _buyBackRate)

        • [DISABLED] setGov(address _govAddress)

        • [DISABLED] inCaseTokensGetStuck(address _token,uint256 _amount,address _to)

  • StrategyGovernance

  • bToken

  • BeltLPToken

  • StableSwapB

    • Description

      • Swap between pool member token

    • Interface

      • Read

        • admin_actions_delay

        • coins

        • underlying_coins

        • balances

        • A

        • fee

        • buyback_fee

        • max_buyback_fee

        • ADDRESS owner => TEAM EOA Wallet

        • ADDRESS buyback_addr => TEAM EOA Wallet

        • token

        • admin_actions_deadline

        • transfer_ownership_deadline

        • kill_deadline

        • kill_deadline_dt

        • is_killed

        • pool_token()

        • get_virtual_price()

        • calc_token_amount(amounts: uint256[N_COINS], deposit: bool)

        • get_dy(i: int128, j: int128, dx: uint256)

        • get_dx(i: int128, j: int128, dy: uint256)

        • get_dy_underlying(i: int128, j: int128, dx: uint256)

        • get_dx_underlying(i: int128, j: int128, dy: uint256)

      • Write

        • [KILLABLE] add_liquidity(amounts: uint256[N_COINS], min_mint_amount: uint256)

        • [KILLABLE] exchange(i: int128, j: int128, dx: uint256, min_dy: uint256)

        • [KILLABLE] exchange_underlying(i: int128, j: int128, dx: uint256, min_dy: uint256)

        • remove_liquidity(_amount: uint256, min_amounts: uint256[N_COINS])

        • [KILLABLE] remove_liquidity_imbalance(amounts: uint256[N_COINS], max_burn_amount: uint256)

        • [ONLY OWNER] commit_new_parameters(amplification: uint256,new_fee: uint256,new_buyback_fee: uint256,new_buyback_addr: address)

        • [ONLY OWNER] apply_new_parameters()

        • [ONLY OWNER] revert_new_parameters()

        • [ONLY OWNER] commit_transfer_ownership(_owner: address)

        • [ONLY OWNER] apply_transfer_ownership()

        • [ONLY OWNER] revert_transfer_ownership()

        • [ONLY OWNER] kill_me()

        • [ONLY OWNER] unkill_me()

        • withdraw_buyback_fees()

  • DepositB

    • Description

      • Depositor for belt pools

    • Interface

      • Read

      • Write

        • add_liquidity(uamounts: uint256[N_COINS], min_mint_amount: uint256)

        • remove_liquidity(_amount: uint256, min_uamounts: uint256[N_COINS])

        • remove_liquidity_imbalance(uamounts: uint256[N_COINS], max_burn_amount: uint256)

        • calc_withdraw_one_coin(_token_amount: uint256, i: int128)

        • remove_liquidity_one_coin(_token_amount: uint256, i: int128, min_uamount: uint256, donate_dust: bool = False)

        • [ONLY LP OWNER] withdraw_donated_dust()

  • VaultBPool

  • Belt View