Renamed txid to transaction_id in data models

- Updated schema validation
- Updated database schema
- Updated database queries
- Fixed tests
This commit is contained in:
Rodolphe Marques 2017-06-13 11:36:58 +02:00
parent 32fc9244e6
commit 3ecb05a62d
7 changed files with 20 additions and 18 deletions

View File

@ -157,7 +157,7 @@ def get_spent(conn, transaction_id, output):
{'$match': {
'block.transactions.inputs': {
'$elemMatch': {
'fulfills.txid': transaction_id,
'fulfills.transaction_id': transaction_id,
'fulfills.output': output,
},
},
@ -166,7 +166,7 @@ def get_spent(conn, transaction_id, output):
{'$match': {
'block.transactions.inputs': {
'$elemMatch': {
'fulfills.txid': transaction_id,
'fulfills.transaction_id': transaction_id,
'fulfills.output': output,
},
},

View File

@ -68,10 +68,10 @@ def create_bigchain_secondary_index(conn, dbname):
.create_index('block.transactions.outputs.public_keys',
name='outputs')
# secondary index on inputs/transaction links (txid, output)
# secondary index on inputs/transaction links (transaction_id, output)
conn.conn[dbname]['bigchain']\
.create_index([
('block.transactions.inputs.fulfills.txid', ASCENDING),
('block.transactions.inputs.fulfills.transaction_id', ASCENDING),
('block.transactions.inputs.fulfills.output', ASCENDING),
], name='inputs')

View File

@ -122,7 +122,8 @@ def get_spent(connection, transaction_id, output):
.get_all([transaction_id, output], index='inputs')
.concat_map(lambda doc: doc['block']['transactions'])
.filter(lambda transaction: transaction['inputs'].contains(
lambda input_: input_['fulfills'] == {'txid': transaction_id, 'output': output})))
lambda input_: input_['fulfills'] == {
'transaction_id': transaction_id, 'output': output})))
@register_query(RethinkDBConnection)
@ -286,7 +287,8 @@ def unwind_block_transactions(block):
def get_spending_transactions(connection, links):
query = (
r.table('bigchain')
.get_all(*[(l['txid'], l['output']) for l in links], index='inputs')
.get_all(*[(l['transaction_id'], l['output']) for l in links],
index='inputs')
.concat_map(unwind_block_transactions)
# filter transactions spending output
.filter(lambda doc: r.expr(links).set_intersection(

View File

@ -79,15 +79,15 @@ def create_bigchain_secondary_index(connection, dbname):
.concat_map(lambda tx: tx['outputs']['public_keys'])
.reduce(lambda l, r: l + r), multi=True))
# secondary index on inputs/transaction links (txid, output)
# secondary index on inputs/transaction links (transaction_id, output)
connection.run(
r.db(dbname)
.table('bigchain')
.index_create('inputs',
r.row['block']['transactions']
.concat_map(lambda tx: tx['inputs']['fulfills'])
.with_fields('txid', 'output')
.map(lambda fulfills: [fulfills['txid'],
.with_fields('transaction_id', 'output')
.map(lambda fulfills: [fulfills['transaction_id'],
fulfills['output']]),
multi=True))

View File

@ -204,13 +204,13 @@ definitions:
additionalProperties: false
required:
- output
- txid
- transaction_id
properties:
output:
"$ref": "#/definitions/offset"
description: |
Index of the output containing the condition being fulfilled
txid:
transaction_id:
"$ref": "#/definitions/sha3_hexdigest"
description: |
Transaction ID containing the output to spend

View File

@ -175,7 +175,7 @@ class TransactionLink(object):
:class:`~bigchaindb.common.transaction.TransactionLink`
"""
try:
return cls(link['txid'], link['output'])
return cls(link['transaction_id'], link['output'])
except TypeError:
return cls()
@ -189,7 +189,7 @@ class TransactionLink(object):
return None
else:
return {
'txid': self.txid,
'transaction_id': self.txid,
'output': self.output,
}

View File

@ -363,7 +363,7 @@ def test_transaction_link_serialization():
tx_id = 'a transaction id'
expected = {
'txid': tx_id,
'transaction_id': tx_id,
'output': 0,
}
tx_link = TransactionLink(tx_id, 0)
@ -386,7 +386,7 @@ def test_transaction_link_deserialization():
tx_id = 'a transaction id'
expected = TransactionLink(tx_id, 0)
tx_link = {
'txid': tx_id,
'transaction_id': tx_id,
'output': 0,
}
tx_link = TransactionLink.from_dict(tx_link)
@ -845,7 +845,7 @@ def test_create_transfer_transaction_single_io(tx, user_pub, user2_pub,
],
'fulfillment': None,
'fulfills': {
'txid': tx.id,
'transaction_id': tx.id,
'output': 0
}
}
@ -894,7 +894,7 @@ def test_create_transfer_transaction_multiple_io(user_pub, user_priv,
],
'fulfillment': None,
'fulfills': {
'txid': tx.id,
'transaction_id': tx.id,
'output': 0
}
}, {
@ -903,7 +903,7 @@ def test_create_transfer_transaction_multiple_io(user_pub, user_priv,
],
'fulfillment': None,
'fulfills': {
'txid': tx.id,
'transaction_id': tx.id,
'output': 1
}
}