def __init__(self, web3: Web3, address: Address): assert isinstance(web3, Web3) assert isinstance(address, Address) self.web3 = web3 self.address = address self._contract = self._get_contract(web3, self.abi, address) vat_address = Address(self._contract.functions.vat().call()) self.vat = Vat(web3, vat_address) if vat_address != Address.zero() else None vow_address = Address(self._contract.functions.vow().call()) self.vow = Vow(web3, vow_address) if vow_address != Address.zero() else None
def active_auctions(self) -> list: active_auctions = [] for index in range(1, self.kicks()+1): sale = self.sales(index) if sale.usr != Address.zero(): active_auctions.append(sale) index += 1 return active_auctions
def test_getters(self, mcd, clipper): assert clipper.ilk_name() == "ETH-B" collateral = mcd.collaterals[clipper.ilk_name()] assert clipper.kicks() == 0 assert clipper.buf() == Ray.from_number(1.50) assert clipper.tail() == 10800 assert clipper.cusp() == Ray.from_number(0.3333) assert clipper.chip() == Wad.from_number(0.02) assert clipper.tip() == Rad.from_number(100) assert clipper.chost() == collateral.ilk.dust * Rad(mcd.dog.chop(collateral.ilk)) assert isinstance(clipper.calc, Address) assert clipper.calc != Address.zero() assert clipper.dog.address == mcd.dog.address assert clipper.vat.address == mcd.vat.address assert clipper.active_auctions() == []
run_transactions = True elif len(sys.argv) > 2: our_address = Address(sys.argv[2]) run_transactions = False else: our_address = None run_transactions = False gas_strategy = DefaultGasPrice() if len(sys.argv) <= 4 else \ GeometricGasPrice(web3=web3, initial_price=None, initial_tip=int(float(sys.argv[4]) * GeometricGasPrice.GWEI), every_secs=5, max_price=50 * GeometricGasPrice.GWEI) eth = EthToken(web3, Address.zero()) class TestApp: def main(self): with Lifecycle(web3) as lifecycle: lifecycle.on_block(self.on_block) def on_block(self): block = web3.eth.blockNumber logging.info(f"Found block; web3.eth.blockNumber={block}") if run_transactions and block % 3 == 0: # dummy transaction: send 0 ETH to ourself eth_transfer(web3=web3, to=our_address, amount=Wad(0)).transact( from_address=our_address, gas=21000, gas_strategy=gas_strategy)