def test_condition_serialization(user_Ed25519, user_pub): from bigchaindb_common.transaction import Condition expected = { 'condition': { 'uri': user_Ed25519.condition_uri, 'details': user_Ed25519.to_dict(), }, 'owners_after': [user_pub], 'amount': 1, } cond = Condition(user_Ed25519, [user_pub], 1) assert cond.to_dict() == expected
def test_condition_hashlock_serialization(): from bigchaindb_common.transaction import Condition from cryptoconditions import PreimageSha256Fulfillment secret = b'wow much secret' hashlock = PreimageSha256Fulfillment(preimage=secret).condition_uri expected = { 'condition': { 'uri': hashlock, }, 'owners_after': None, 'amount': 1, } cond = Condition(hashlock, amount=1) assert cond.to_dict() == expected
def test_create_create_transaction_hashlock(user_pub, data, data_id): from cryptoconditions import PreimageSha256Fulfillment from bigchaindb_common.transaction import Transaction, Condition, Asset secret = b'much secret, wow' hashlock = PreimageSha256Fulfillment(preimage=secret).condition_uri cond = Condition(hashlock) expected = { 'transaction': { 'conditions': [cond.to_dict(0)], 'metadata': { 'data': data, }, 'asset': { 'id': data_id, 'divisible': False, 'updatable': False, 'refillable': False, 'data': data, }, 'fulfillments': [ { 'owners_before': [ user_pub, ], 'fid': 0, 'fulfillment': None, 'input': None }, ], 'operation': 'CREATE', }, 'version': 1 } asset = Asset(data, data_id) tx = Transaction.create([user_pub], [], data, asset, secret).to_dict() tx.pop('id') tx['transaction']['metadata'].pop('id') tx['transaction'].pop('timestamp') tx['transaction']['fulfillments'][0]['fulfillment'] = None assert tx == expected