tasks.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:ethwallet 作者: absortium 项目源码 文件源码
def send(self, user_pk, from_address, to_address, value):
    try:

        User = get_user_model()
        user = User.objects.get(pk=user_pk)

        password = get_wallet_password(user.wallet_secret_key)

        client = get_rpc_client(host=settings.ETHNODE_URL)
        client.personal_unlockAccount(address=from_address, passphrase=password)

        balance = client.eth_getBalance(from_address)
        value = eth2wei(value)
        fee = eth2wei(constants.TX_FEE)

        if balance >= value:
            if value > fee:
                client.eth_sendTransaction(from_address=from_address,
                                           to_address=to_address,
                                           value=value - fee)
            else:
                raise ValidationError("Fee higher than 'value' itself")
        else:
            raise ValidationError("Not enough money")

    except (ConnectionError, ConnectTimeout) as e:
        raise self.retry(countdown=constants.SEND_RETRY_COUNTDOWN)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号