mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
Merge pull request #373 from bigchaindb/bug/#/fix-cc-integration
Update cc API usage
This commit is contained in:
commit
a3b37f0984
@ -275,7 +275,7 @@ def create_tx(current_owners, new_owners, inputs, operation, payload=None):
|
||||
conditions.append({
|
||||
'new_owners': new_owners,
|
||||
'condition': {
|
||||
'details': rapidjson.loads(condition.serialize_json()),
|
||||
'details': condition.to_dict(),
|
||||
'uri': condition.condition_uri
|
||||
},
|
||||
'cid': fulfillment['fid']
|
||||
@ -333,7 +333,7 @@ def sign_tx(transaction, signing_keys):
|
||||
# TODO: avoid instantiation, pass as argument!
|
||||
bigchain = bigchaindb.Bigchain()
|
||||
input_condition = get_input_condition(bigchain, fulfillment)
|
||||
parsed_fulfillment = cc.Fulfillment.from_json(input_condition['condition']['details'])
|
||||
parsed_fulfillment = cc.Fulfillment.from_dict(input_condition['condition']['details'])
|
||||
# for the case in which the type of fulfillment is not covered by this method
|
||||
parsed_fulfillment_signed = parsed_fulfillment
|
||||
|
||||
@ -520,7 +520,7 @@ def get_input_condition(bigchain, fulfillment):
|
||||
|
||||
return {
|
||||
'condition': {
|
||||
'details': rapidjson.loads(condition.serialize_json()),
|
||||
'details': condition.to_dict(),
|
||||
'uri': condition.condition_uri
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
This section gives an example of using the Python Server API to interact _directly_ with a BigchainDB node running BigchainDB Server. That is, in this example, the Python code and BigchainDB Server run on the same machine.
|
||||
|
||||
(One can also interact with a BigchainDB node via other APIs, including the HTTP Client-Server API.)
|
||||
(One can also interact with a BigchainDB node via other APIs, including the HTTP Client-Server API.)
|
||||
|
||||
We create a digital asset, sign it, write it to a BigchainDB Server instance, read it, transfer it to a different user, and then attempt to transfer it to another user, resulting in a double-spend error.
|
||||
|
||||
@ -535,7 +535,6 @@ We'll illustrate this by a threshold condition where 2 out of 3 `new_owners` nee
|
||||
|
||||
```python
|
||||
import copy
|
||||
import json
|
||||
|
||||
import cryptoconditions as cc
|
||||
from bigchaindb import util, crypto
|
||||
@ -559,7 +558,7 @@ threshold_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=threshol
|
||||
|
||||
# Update the condition in the newly created transaction
|
||||
threshold_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(threshold_condition.serialize_json()),
|
||||
'details': threshold_condition.to_dict(),
|
||||
'uri': threshold_condition.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -667,7 +666,7 @@ tx_retrieved_id = b.get_owned_ids(thresholduser1_pub).pop()
|
||||
threshold_tx_transfer = b.create_transaction([thresholduser1_pub, thresholduser2_pub, thresholduser3_pub], thresholduser4_pub, tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
threshold_fulfillment = cc.Fulfillment.from_json(threshold_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
threshold_fulfillment = cc.Fulfillment.from_dict(threshold_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment1 = threshold_fulfillment.get_subcondition_from_vk(thresholduser1_pub)[0]
|
||||
subfulfillment2 = threshold_fulfillment.get_subcondition_from_vk(thresholduser2_pub)[0]
|
||||
@ -911,7 +910,7 @@ condition_timeout = cc.TimeoutFulfillment(expire_time=time_expire)
|
||||
# The conditions list is empty, so we need to append a new condition
|
||||
tx_timeout['transaction']['conditions'].append({
|
||||
'condition': {
|
||||
'details': json.loads(condition_timeout.serialize_json()),
|
||||
'details': condition_timeout.to_dict(),
|
||||
'uri': condition_timeout.condition.serialize_uri()
|
||||
},
|
||||
'cid': 0,
|
||||
@ -977,7 +976,7 @@ from time import sleep
|
||||
tx_timeout_transfer = b.create_transaction(None, testuser1_pub, {'txid': tx_timeout['id'], 'cid': 0}, 'TRANSFER')
|
||||
|
||||
# Parse the timeout condition and create the corresponding fulfillment
|
||||
timeout_fulfillment = cc.Fulfillment.from_json(
|
||||
timeout_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_timeout['transaction']['conditions'][0]['condition']['details'])
|
||||
tx_timeout_transfer['transaction']['fulfillments'][0]['fulfillment'] = timeout_fulfillment.serialize_uri()
|
||||
|
||||
@ -1054,7 +1053,7 @@ tx_retrieved_id = b.get_owned_ids(testuser2_pub).pop()
|
||||
# Create a base template with the execute and abort address
|
||||
tx_escrow = b.create_transaction(testuser2_pub, [testuser2_pub, testuser1_pub], tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# Set expiry time - the execute address needs to fulfill before expiration
|
||||
# Set expiry time - the execute address needs to fulfill before expiration
|
||||
time_sleep = 12
|
||||
time_expire = str(float(util.timestamp()) + time_sleep) # 12 secs from now
|
||||
|
||||
@ -1073,12 +1072,12 @@ condition_escrow.add_subfulfillment(condition_execute)
|
||||
# Create the abort branch
|
||||
condition_abort = cc.ThresholdSha256Fulfillment(threshold=2) # AND gate
|
||||
condition_abort.add_subfulfillment(cc.Ed25519Fulfillment(public_key=testuser2_pub)) # abort address
|
||||
condition_abort.add_subfulfillment(condition_timeout_inverted)
|
||||
condition_abort.add_subfulfillment(condition_timeout_inverted)
|
||||
condition_escrow.add_subfulfillment(condition_abort)
|
||||
|
||||
# Update the condition in the newly created transaction
|
||||
tx_escrow['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(condition_escrow.serialize_json()),
|
||||
'details': condition_escrow.to_dict(),
|
||||
'uri': condition_escrow.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -1209,7 +1208,7 @@ In the case of `testuser1`, we create the `execute` fulfillment:
|
||||
tx_escrow_execute = b.create_transaction([testuser2_pub, testuser1_pub], testuser1_pub, {'txid': tx_escrow_signed['id'], 'cid': 0}, 'TRANSFER')
|
||||
|
||||
# Parse the Escrow cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_escrow['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_testuser1 = escrow_fulfillment.get_subcondition_from_vk(testuser1_pub)[0]
|
||||
@ -1250,7 +1249,7 @@ In the case of `testuser2`, we create the `abort` fulfillment:
|
||||
tx_escrow_abort = b.create_transaction([testuser2_pub, testuser1_pub], testuser2_pub, {'txid': tx_escrow_signed['id'], 'cid': 0}, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_escrow['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_testuser1 = escrow_fulfillment.get_subcondition_from_vk(testuser1_pub)[0]
|
||||
|
6
setup.py
6
setup.py
@ -95,7 +95,7 @@ setup(
|
||||
'rethinkdb==2.3.0',
|
||||
'pysha3==0.3',
|
||||
'pytz==2015.7',
|
||||
'cryptoconditions==0.3.1',
|
||||
'cryptoconditions==0.4.1',
|
||||
'statsd==3.2.1',
|
||||
'python-rapidjson==0.0.6',
|
||||
'logstats==0.2.1',
|
||||
@ -108,7 +108,7 @@ setup(
|
||||
tests_require=tests_require,
|
||||
extras_require={
|
||||
'test': tests_require,
|
||||
'dev': dev_require + tests_require + docs_require + benchmarks_require,
|
||||
'docs': docs_require,
|
||||
'dev': dev_require + tests_require + docs_require + benchmarks_require,
|
||||
'docs': docs_require,
|
||||
},
|
||||
)
|
||||
|
@ -2,7 +2,6 @@ import copy
|
||||
import multiprocessing as mp
|
||||
import random
|
||||
import time
|
||||
import json
|
||||
|
||||
import pytest
|
||||
import rethinkdb as r
|
||||
@ -1504,9 +1503,9 @@ class TestCryptoconditions(object):
|
||||
tx = b.create_transaction(b.me, user_vk, None, 'CREATE')
|
||||
condition = tx['transaction']['conditions'][0]['condition']
|
||||
condition_from_uri = cc.Condition.from_uri(condition['uri'])
|
||||
condition_from_json = cc.Fulfillment.from_json(condition['details']).condition
|
||||
condition_from_dict = cc.Fulfillment.from_dict(condition['details']).condition
|
||||
|
||||
assert condition_from_uri.serialize_uri() == condition_from_json.serialize_uri()
|
||||
assert condition_from_uri.serialize_uri() == condition_from_dict.serialize_uri()
|
||||
assert condition['details']['public_key'] == user_vk
|
||||
|
||||
tx_signed = b.sign_transaction(tx, b.me_private)
|
||||
@ -1528,16 +1527,16 @@ class TestCryptoconditions(object):
|
||||
prev_tx = b.get_transaction(prev_tx_id['txid'])
|
||||
prev_condition = prev_tx['transaction']['conditions'][0]['condition']
|
||||
prev_condition_from_uri = cc.Condition.from_uri(prev_condition['uri'])
|
||||
prev_condition_from_json = cc.Fulfillment.from_json(prev_condition['details']).condition
|
||||
prev_condition_from_dict = cc.Fulfillment.from_dict(prev_condition['details']).condition
|
||||
|
||||
assert prev_condition_from_uri.serialize_uri() == prev_condition_from_json.serialize_uri()
|
||||
assert prev_condition_from_uri.serialize_uri() == prev_condition_from_dict.serialize_uri()
|
||||
assert prev_condition['details']['public_key'] == user_vk
|
||||
|
||||
condition = tx['transaction']['conditions'][0]['condition']
|
||||
condition_from_uri = cc.Condition.from_uri(condition['uri'])
|
||||
condition_from_json = cc.Fulfillment.from_json(condition['details']).condition
|
||||
condition_from_dict = cc.Fulfillment.from_dict(condition['details']).condition
|
||||
|
||||
assert condition_from_uri.serialize_uri() == condition_from_json.serialize_uri()
|
||||
assert condition_from_uri.serialize_uri() == condition_from_dict.serialize_uri()
|
||||
assert condition['details']['public_key'] == other_vk
|
||||
|
||||
tx_signed = b.sign_transaction(tx, user_sk)
|
||||
@ -1554,7 +1553,7 @@ class TestCryptoconditions(object):
|
||||
tx = b.create_transaction(b.me, user_vk, None, 'CREATE')
|
||||
fulfillment = cc.Ed25519Fulfillment(public_key=user_vk)
|
||||
tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(fulfillment.serialize_json()),
|
||||
'details': fulfillment.to_dict(),
|
||||
'uri': fulfillment.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -1577,7 +1576,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
fulfillment = cc.Ed25519Fulfillment(public_key=other_vk)
|
||||
tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(fulfillment.serialize_json()),
|
||||
'details': fulfillment.to_dict(),
|
||||
'uri': fulfillment.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -1627,7 +1626,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
first_tx_condition = cc.Ed25519Fulfillment(public_key=other_vk)
|
||||
first_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -1674,7 +1673,7 @@ class TestCryptoconditions(object):
|
||||
first_tx_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=other3_vk))
|
||||
|
||||
first_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
}
|
||||
# conditions have been updated, so hash needs updating
|
||||
@ -1713,7 +1712,7 @@ class TestCryptoconditions(object):
|
||||
assert b.is_valid_transaction(next_tx) == next_tx
|
||||
|
||||
@pytest.mark.usefixtures('inputs')
|
||||
def test_override_condition_and_fulfillment_transfer_threshold_from_json(self, b, user_vk, user_sk):
|
||||
def test_override_condition_and_fulfillment_transfer_threshold_from_dict(self, b, user_vk, user_sk):
|
||||
other1_sk, other1_vk = crypto.generate_key_pair()
|
||||
other2_sk, other2_vk = crypto.generate_key_pair()
|
||||
other3_sk, other3_vk = crypto.generate_key_pair()
|
||||
@ -1727,7 +1726,7 @@ class TestCryptoconditions(object):
|
||||
first_tx_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=other3_vk))
|
||||
|
||||
first_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
}
|
||||
# conditions have been updated, so hash needs updating
|
||||
@ -1752,7 +1751,7 @@ class TestCryptoconditions(object):
|
||||
next_tx_fulfillment_message = util.get_fulfillment_message(next_tx, next_tx_fulfillment, serialized=True)
|
||||
|
||||
# parse the threshold cryptocondition
|
||||
next_tx_fulfillment = cc.Fulfillment.from_json(first_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
next_tx_fulfillment = cc.Fulfillment.from_dict(first_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment1 = next_tx_fulfillment.get_subcondition_from_vk(other1_vk)[0]
|
||||
subfulfillment2 = next_tx_fulfillment.get_subcondition_from_vk(other2_vk)[0]
|
||||
@ -1783,7 +1782,7 @@ class TestCryptoconditions(object):
|
||||
first_tx_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=other2_vk))
|
||||
|
||||
first_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
}
|
||||
# conditions have been updated, so hash needs updating
|
||||
@ -1835,7 +1834,7 @@ class TestCryptoconditions(object):
|
||||
expected_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=user_vk))
|
||||
expected_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=user2_vk))
|
||||
tx_expected_condition = {
|
||||
'details': json.loads(expected_condition.serialize_json()),
|
||||
'details': expected_condition.to_dict(),
|
||||
'uri': expected_condition.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -1857,7 +1856,7 @@ class TestCryptoconditions(object):
|
||||
tx_transfer_signed = b.sign_transaction(tx_transfer, [user_sk, user2_sk])
|
||||
|
||||
# expected fulfillment
|
||||
expected_fulfillment = cc.Fulfillment.from_json(
|
||||
expected_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_create['transaction']['conditions'][0]['condition']['details'])
|
||||
subfulfillment1 = expected_fulfillment.subconditions[0]['body']
|
||||
subfulfillment2 = expected_fulfillment.subconditions[1]['body']
|
||||
@ -1881,7 +1880,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
hashlock_tx['transaction']['conditions'].append({
|
||||
'condition': {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
},
|
||||
'cid': 0,
|
||||
@ -1912,7 +1911,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
hashlock_tx['transaction']['conditions'].append({
|
||||
'condition': {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
},
|
||||
'cid': 0,
|
||||
@ -1943,7 +1942,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
hashlock_tx['transaction']['conditions'].append({
|
||||
'condition': {
|
||||
'details': json.loads(first_tx_condition.serialize_json()),
|
||||
'details': first_tx_condition.to_dict(),
|
||||
'uri': first_tx_condition.condition.serialize_uri()
|
||||
},
|
||||
'cid': 0,
|
||||
@ -2013,7 +2012,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
# create a transaction with multiple new_owners
|
||||
tx = b.create_transaction(b.me, new_owners, None, 'CREATE')
|
||||
condition = cc.Fulfillment.from_json(tx['transaction']['conditions'][0]['condition']['details'])
|
||||
condition = cc.Fulfillment.from_dict(tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
for new_owner in new_owners:
|
||||
subcondition = condition.get_subcondition_from_vk(new_owner)[0]
|
||||
@ -2051,7 +2050,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
# Update the condition in the newly created transaction
|
||||
escrow_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(condition_escrow.serialize_json()),
|
||||
'details': condition_escrow.to_dict(),
|
||||
'uri': condition_escrow.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -2077,7 +2076,7 @@ class TestCryptoconditions(object):
|
||||
escrow_tx_transfer = b.create_transaction([user_vk, user2_vk], user2_vk, tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
escrow_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_user = escrow_fulfillment.get_subcondition_from_vk(user_vk)[0]
|
||||
@ -2118,7 +2117,7 @@ class TestCryptoconditions(object):
|
||||
escrow_tx_abort = b.create_transaction([user_vk, user2_vk], user_vk, tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
escrow_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_user = escrow_fulfillment.get_subcondition_from_vk(user_vk)[0]
|
||||
@ -2180,7 +2179,7 @@ class TestCryptoconditions(object):
|
||||
|
||||
# Update the condition in the newly created transaction
|
||||
escrow_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(condition_escrow.serialize_json()),
|
||||
'details': condition_escrow.to_dict(),
|
||||
'uri': condition_escrow.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -2206,7 +2205,7 @@ class TestCryptoconditions(object):
|
||||
escrow_tx_transfer = b.create_transaction([user_vk, user2_vk], user2_vk, tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
escrow_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_user = escrow_fulfillment.get_subcondition_from_vk(user_vk)[0]
|
||||
@ -2253,7 +2252,7 @@ class TestCryptoconditions(object):
|
||||
escrow_tx_abort = b.create_transaction([user_vk, user2_vk], user_vk, tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
escrow_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_user = escrow_fulfillment.get_subcondition_from_vk(user_vk)[0]
|
||||
|
@ -182,7 +182,7 @@ threshold_condition.add_subfulfillment(cc.Ed25519Fulfillment(public_key=threshol
|
||||
|
||||
# update the condition in the newly created transaction
|
||||
threshold_tx['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(threshold_condition.serialize_json()),
|
||||
'details': threshold_condition.to_dict(),
|
||||
'uri': threshold_condition.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -212,7 +212,7 @@ threshold_tx_transfer = b.create_transaction([thresholduser1_pub, thresholduser2
|
||||
thresholduser4_pub, tx_retrieved_id, 'TRANSFER')
|
||||
|
||||
# parse the threshold cryptocondition
|
||||
threshold_fulfillment = cc.Fulfillment.from_json(threshold_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
threshold_fulfillment = cc.Fulfillment.from_dict(threshold_tx['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment1 = threshold_fulfillment.get_subcondition_from_vk(thresholduser1_pub)[0]
|
||||
subfulfillment2 = threshold_fulfillment.get_subcondition_from_vk(thresholduser2_pub)[0]
|
||||
@ -323,7 +323,7 @@ condition_timeout = cc.TimeoutFulfillment(expire_time=time_expire)
|
||||
# The conditions list is empty, so we need to append a new condition
|
||||
tx_timeout['transaction']['conditions'].append({
|
||||
'condition': {
|
||||
'details': json.loads(condition_timeout.serialize_json()),
|
||||
'details': condition_timeout.to_dict(),
|
||||
'uri': condition_timeout.condition.serialize_uri()
|
||||
},
|
||||
'cid': 0,
|
||||
@ -347,7 +347,7 @@ tx_timeout_id = {'txid': tx_timeout['id'], 'cid': 0}
|
||||
tx_timeout_transfer = b.create_transaction(None, testuser1_pub, tx_timeout_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
timeout_fulfillment = cc.Fulfillment.from_json(
|
||||
timeout_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_timeout['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
tx_timeout_transfer['transaction']['fulfillments'][0]['fulfillment'] = timeout_fulfillment.serialize_uri()
|
||||
@ -392,7 +392,7 @@ condition_escrow.add_subfulfillment(condition_abort)
|
||||
|
||||
# Update the condition in the newly created transaction
|
||||
tx_escrow['transaction']['conditions'][0]['condition'] = {
|
||||
'details': json.loads(condition_escrow.serialize_json()),
|
||||
'details': condition_escrow.to_dict(),
|
||||
'uri': condition_escrow.condition.serialize_uri()
|
||||
}
|
||||
|
||||
@ -417,7 +417,7 @@ tx_escrow_id = {'txid': tx_escrow_signed['id'], 'cid': 0}
|
||||
tx_escrow_execute = b.create_transaction([testuser2_pub, testuser1_pub], testuser1_pub, tx_escrow_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_escrow['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_testuser1 = escrow_fulfillment.get_subcondition_from_vk(testuser1_pub)[0]
|
||||
@ -453,7 +453,7 @@ tx_escrow_execute['transaction']['fulfillments'][0]['fulfillment'] = escrow_fulf
|
||||
tx_escrow_abort = b.create_transaction([testuser2_pub, testuser1_pub], testuser2_pub, tx_escrow_id, 'TRANSFER')
|
||||
|
||||
# Parse the threshold cryptocondition
|
||||
escrow_fulfillment = cc.Fulfillment.from_json(
|
||||
escrow_fulfillment = cc.Fulfillment.from_dict(
|
||||
tx_escrow['transaction']['conditions'][0]['condition']['details'])
|
||||
|
||||
subfulfillment_testuser1 = escrow_fulfillment.get_subcondition_from_vk(testuser1_pub)[0]
|
||||
|
Loading…
x
Reference in New Issue
Block a user