def rule_receive_erc20( self, st_contract: Contract, st_token: int, st_amount: int, ): if st_contract.balanceOf(self.alice) >= st_amount: st_contract.approve(self.xhibit, 2**256 - 1, {"from": self.alice}) self.xhibit.getERC20(self.alice, st_token, st_contract, st_amount) self.state.receive_erc20(st_token, str(st_contract), st_amount)
class Ygov: def __init__(self): self.name = "yGov" self.vault = Contract("0xBa37B002AbaFDd8E89a1995dA52740bbC013D992") self.token = Contract("0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e") def total_value_at(self, block=None): yfi_locked = self.token.balanceOf(self.vault, block_identifier=block) / 1e18 yfi_price = magic.get_price(str(self.token), block=block) return yfi_locked * yfi_price