def approval_function(token: ERC20Token, spender_address: Address, spender_name: str): if token.allowance_of(tx_manager.address, spender_address) < Wad(2 ** 128 - 1): logger = logging.getLogger() logger.info(f"Approving {spender_name} ({spender_address}) to access our {token.address}" f" via TxManager {tx_manager.address}") if not tx_manager.execute([], [(token.approve(spender_address).invocation())]).transact(**kwargs): raise RuntimeError("Approval failed!")
def approval_function(token: ERC20Token, spender_address: Address, spender_name: str): address_to_check = kwargs['from_address'] if 'from_address' in kwargs else Address(token.web3.eth.defaultAccount) if token.allowance_of(address_to_check, spender_address) < Wad(2 ** 128 - 1): logger = logging.getLogger() logger.info(f"Approving {spender_name} ({spender_address}) to access our {token.address} directly") if not token.approve(spender_address).transact(**kwargs): raise RuntimeError("Approval failed!")