def test_create_create_transaction_multiple_io(user_output, user2_output, user_pub, user2_pub, asset_definition): from bigchaindb.common.transaction import Transaction, Input # a fulfillment for a create transaction with multiple `owners_before` # is a fulfillment for an implicit threshold condition with # weight = len(owners_before) input = Input.generate([user_pub, user2_pub]).to_dict() expected = { 'outputs': [user_output.to_dict(), user2_output.to_dict()], 'metadata': { 'message': 'hello' }, 'inputs': [input], 'operation': 'CREATE', 'version': Transaction.VERSION } tx = Transaction.create([user_pub, user2_pub], [([user_pub], 1), ([user2_pub], 1)], metadata={ 'message': 'hello' }).to_dict() tx.pop('id') tx.pop('asset') assert tx == expected
def create(owner_before, outputs, metadata, asset_data): """ Generate a CREATE transaction. The CREATE transaction creates a new asset. """ input_ = Input.generate([owner_before]) outputs = [Output.from_dict(c) for c in listify(outputs)] tx = Transaction(Transaction.CREATE, {'data': asset_data}, [input_], outputs, metadata) tx = Transaction._to_str(tx.to_dict()) click.echo(tx)