Пример #1
0
def test_find_by_address_returns_existin_wallet_from_redis(redis):
    manager = PoolWalletManager()

    existing_wallet = Wallet(
        {"address": "AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof", "username": "******"}
    )
    redis.set(
        "pool_wallet:address:AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof",
        existing_wallet.to_json(),
    )
    wallet = manager.find_by_address("AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof")
    assert len(redis.keys("pool_wallet:address:*")) == 1
    assert wallet.to_json() == existing_wallet.to_json()
Пример #2
0
def test_find_by_address_copies_wallet_from_blockchain_wallet_manager(redis):
    manager = PoolWalletManager()

    chain_wallet = Wallet(
        {"address": "AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof", "username": "******"}
    )
    redis.set(
        "wallets:address:AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof", chain_wallet.to_json()
    )
    wallet = manager.find_by_address("AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof")

    assert redis.exists("pool_wallet:address:AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof")
    assert wallet.to_json() == chain_wallet.to_json()
Пример #3
0
def test_find_by_public_key_returns_existin_wallet_from_redis(redis):
    manager = PoolWalletManager()

    existing_wallet = Wallet(
        {"address": "AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof", "username": "******"}
    )
    redis.set(
        "pool_wallet:address:AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof",
        existing_wallet.to_json(),
    )
    wallet = manager.find_by_public_key(
        "020f5df4d2bc736d12ce43af5b1663885a893fade7ee5e62b3cc59315a63e6a325"
    )
    assert len(redis.keys("pool_wallet:address:*")) == 1
    assert wallet.to_json() == existing_wallet.to_json()
Пример #4
0
def test_find_by_public_key_copies_wallet_from_blockchain_wallet_manager(redis):
    manager = PoolWalletManager()

    chain_wallet = Wallet(
        {"address": "AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof", "username": "******"}
    )
    redis.set(
        "wallets:address:AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof", chain_wallet.to_json()
    )
    wallet = manager.find_by_public_key(
        "020f5df4d2bc736d12ce43af5b1663885a893fade7ee5e62b3cc59315a63e6a325"
    )

    assert redis.exists("pool_wallet:address:AThM5PNSKdU9pu1ydqQnzRWVeNCGr8HKof")
    assert wallet.to_json() == chain_wallet.to_json()
Пример #5
0
def test_can_apply_to_sender_returns_true_if_everything_ok(redis, crypto_transaction):
    manager = PoolWalletManager()
    chain_wallet = Wallet(
        {"address": "AS2YSSDbbXBAehfbm1KAEvJMJFdPPT2aRT", "balance": 133700000}
    )
    redis.set(
        "wallets:address:AS2YSSDbbXBAehfbm1KAEvJMJFdPPT2aRT", chain_wallet.to_json()
    )
    crypto_transaction.second_signature = None
    crypto_transaction.sign_signature = None
    can_apply = manager.can_apply_to_sender(crypto_transaction, 2243161)
    assert can_apply is True
Пример #6
0
def test_can_apply_to_sender_returns_false_if_balance_is_zero(
    redis, crypto_transaction
):
    manager = PoolWalletManager()

    chain_wallet = Wallet(
        {"address": "AMm7u2Kpaf3gY2Y96MovudH2q65WHi8Sqd", "balance": 0}
    )
    redis.set(
        "wallets:address:AMm7u2Kpaf3gY2Y96MovudH2q65WHi8Sqd", chain_wallet.to_json()
    )

    can_apply = manager.can_apply_to_sender(crypto_transaction, 2243161)
    assert can_apply is False
Пример #7
0
    def __init__(self, redis, **kwargs):

        if "address" not in kwargs and "public_key" not in kwargs:
            raise ValueError("address or public_key are required")

        address = kwargs.get("address")
        if not address:
            address = address_from_public_key(kwargs["public_key"])
            kwargs["address"] = address

        self.key = "wallets:address:{}".format(address)
        self.redis = redis

        wallet = Wallet(kwargs)
        redis.set(self.key, wallet.to_json())
        self._set_attributes(wallet)
Пример #8
0
def test_can_apply_to_sender_returns_true_if_transaction_is_exception(
    redis, crypto_transaction, mocker
):
    manager = PoolWalletManager()

    exception_mock = mocker.patch(
        "chain.plugins.transaction_pool.pool_wallet_manager.is_transaction_exception",
        return_value=True,
    )
    chain_wallet = Wallet(
        {"address": "AMm7u2Kpaf3gY2Y96MovudH2q65WHi8Sqd", "balance": 133700000}
    )
    redis.set(
        "wallets:address:AMm7u2Kpaf3gY2Y96MovudH2q65WHi8Sqd", chain_wallet.to_json()
    )

    can_apply = manager.can_apply_to_sender(crypto_transaction, 2243161)
    assert can_apply is True
    exception_mock.assert_called_once_with(crypto_transaction.id)