Skip to content

Commit

Permalink
Merge pull request #13 from gosuto-inzasheru/feat/brembadger
Browse files Browse the repository at this point in the history
feat: include brembadger
  • Loading branch information
gosuto-inzasheru authored Jun 26, 2024
2 parents 13b1a94 + 4861e8e commit a4d79f9
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 15 deletions.
32 changes: 17 additions & 15 deletions contracts/BadgerVotingShare.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import "./interfaces/ICurvePool.sol";
import "./interfaces/ICurveToken.sol";
import "./interfaces/IVault.sol";
import "./interfaces/IBalancerPoolToken.sol";
import "./interfaces/IBremBadger.sol";

contract BadgerVotingShare {
IERC20 constant badger = IERC20(0x3472A5A71965499acd81997a54BBA8D852C6E53d);
Expand All @@ -20,6 +21,8 @@ contract BadgerVotingShare {
IGeyser(0xa9429271a28F8543eFFfa136994c0839E7d7bF77);
ISett constant rem_badger =
ISett(0x6aF7377b5009d7d154F36FE9e235aE1DA27Aea22);
IBremBadger constant bremBadger =
IBremBadger(0x170D9fA0Cb0226f0d87952905228e5AA7323DdA6);

//Badger is token1
IUniswapV2Pair constant badger_wBTC_UniV2 =
Expand All @@ -37,10 +40,6 @@ contract BadgerVotingShare {
IGeyser constant geyser_badger_wBTC_SLP =
IGeyser(0xB5b654efBA23596Ed49FAdE44F7e67E23D6712e7);

// Rari pool - fBADGER-22
ICToken constant fBADGER =
ICToken(0x6780B4681aa8efE530d075897B3a4ff6cA5ed807);

IBridgePool constant aBADGER =
IBridgePool(0x43298F9f91a4545dF64748e78a2c777c580573d6);

Expand Down Expand Up @@ -101,16 +100,18 @@ contract BadgerVotingShare {
return _badgerBalanceOf(_voter);
}

function rariBalanceOf(address _voter) external view returns (uint256) {
return _rariBalanceOf(_voter);
}

function remBadgerBalanceOf(
address _voter
) external view returns (uint256) {
return _remBadgerBalanceOf(_voter);
}

function bremBadgerBalanceOf(
address _voter
) external view returns (uint256) {
return _bremBadgerBalanceOf(_voter);
}

function acrossBalanceOf(address _voter) external view returns (uint256) {
return _acrossBalanceOf(_voter);
}
Expand Down Expand Up @@ -226,13 +227,14 @@ contract BadgerVotingShare {
}

/*
The voter may have deposited BADGER into the rari pool:
* check current rate
* balanceOf fBadger
The voter can also have bremBADGER
*/
function _rariBalanceOf(address _voter) internal view returns (uint256) {
uint256 rate = fBADGER.exchangeRateStored();
return (fBADGER.balanceOf(_voter) * rate) / 1e18;
function _bremBadgerBalanceOf(
address _voter
) internal view returns (uint256) {
uint256 remBadgerBalance = bremBadger.totalDeposited(_voter) -
bremBadger.totalClaimed(_voter);
return (remBadgerBalance * rem_badger.getPricePerFullShare()) / 1e18;
}

/*
Expand Down Expand Up @@ -336,8 +338,8 @@ contract BadgerVotingShare {
_badgerBalanceOf(_voter) +
_uniswapBalanceOf(_voter) +
_sushiswapBalanceOf(_voter) +
_rariBalanceOf(_voter) +
_remBadgerBalanceOf(_voter) +
_bremBadgerBalanceOf(_voter) +
_acrossBalanceOf(_voter) +
_curveBalanceOf(_voter) +
_balancerBadgerWbtcBalanceOf(_voter) +
Expand Down
48 changes: 48 additions & 0 deletions contracts/interfaces/IBremBadger.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;

interface IBremBadger {
error AddressEmptyCode(address target);
error AddressInsufficientBalance(address account);
error ERC1967InvalidImplementation(address implementation);
error ERC1967NonPayable();
error FailedInnerCall();
error InvalidInitialization();
error NotInitializing();
error ReentrancyGuardReentrantCall();
error SafeERC20FailedOperation(address token);
error UUPSUnauthorizedCallContext();
error UUPSUnsupportedProxiableUUID(bytes32 slot);

event DepositsDisabled();
event DepositsEnabled(uint256 start, uint256 end);
event Initialized(uint64 version);
event Terminated();
event Upgraded(address indexed implementation);

function ADMIN() external view returns (address);
function DEPOSIT_PERIOD_IN_SECONDS() external view returns (uint256);
function ONE_WEEK_IN_SECONDS() external view returns (uint256);
function OWNER() external view returns (address);
function REM_BADGER_TOKEN() external view returns (address);
function UNLOCK_TIMESTAMP() external view returns (uint256);
function UPGRADE_INTERFACE_VERSION() external view returns (string memory);
function VESTING_WEEKS() external view returns (uint256);
function deposit(uint256 _amount) external;
function depositEnd() external view returns (uint256);
function depositStart() external view returns (uint256);
function disableDeposits() external;
function enableDeposits() external;
function initialize() external;
function proxiableUUID() external view returns (bytes32);
function terminate() external;
function terminated() external view returns (bool);
function totalClaimed(address) external view returns (uint256);
function totalDeposited(address) external view returns (uint256);
function upgradeToAndCall(
address newImplementation,
bytes memory data
) external payable;
function vestedAmount(address _depositor) external view returns (uint256);
function withdrawAll() external;
}

0 comments on commit a4d79f9

Please sign in to comment.