Exemplo n.º 1
0
    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)

        move_contract = Contract._get_contract(web3=token.web3,
                                               abi=move_abi,
                                               address=token.address)
        if move_contract.functions.safeRights(
                address_to_check.address,
                spender_address.address).call() is False:
            logger = logging.getLogger()
            logger.info(
                f"Approving {spender_name} ({spender_address}) to move our {token.address} directly"
            )

            approve_safe_modification = Transact(
                move_contract, move_contract.web3, move_contract.abi,
                Address(move_contract.address), move_contract,
                'approveSAFEModification', [spender_address.address])

            if not approve_safe_modification.transact(**kwargs):
                raise RuntimeError("Approval failed!")
Exemplo n.º 2
0
 def test_empty_tx(self):
     empty_tx = Transact(self, self.web3, None, self.keeper_address, None,
                         None,
                         [self.keeper_address, Wad(0)])
     empty_tx.transact()