mirror of
https://github.com/bigchaindb/bigchaindb.git
synced 2024-10-13 13:34:05 +00:00
327 lines
5.3 KiB
ReStructuredText
327 lines
5.3 KiB
ReStructuredText
.. This file was auto generated by generate_schema_documentation.py
|
|
|
|
==================
|
|
Transaction Schema
|
|
==================
|
|
|
|
* `Transaction`_
|
|
|
|
* `Transaction Body`_
|
|
|
|
* Condition_
|
|
|
|
* Fulfillment_
|
|
|
|
* Asset_
|
|
|
|
* Metadata_
|
|
|
|
.. raw:: html
|
|
|
|
<style>
|
|
#transaction-schema h2 {
|
|
border-top: solid 3px #6ab0de;
|
|
background-color: #e7f2fa;
|
|
padding: 5px;
|
|
}
|
|
#transaction-schema h3 {
|
|
background: #f0f0f0;
|
|
border-left: solid 3px #ccc;
|
|
font-weight: bold;
|
|
padding: 6px;
|
|
font-size: 100%;
|
|
font-family: monospace;
|
|
}
|
|
</style>
|
|
|
|
Transaction
|
|
-----------
|
|
|
|
This is the outer transaction wrapper. It contains the ID, version and the body of the transaction, which is also called ``transaction``.
|
|
|
|
|
|
Transaction.id
|
|
^^^^^^^^^^^^^^
|
|
|
|
**type:** string
|
|
|
|
A sha3 digest of the transaction. The ID is calculated by removing all
|
|
derived hashes and signatures from the transaction, serializing it to
|
|
JSON with keys in sorted order and then hashing the resulting string
|
|
with sha3.
|
|
|
|
|
|
|
|
Transaction.transaction
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** object
|
|
|
|
See: `Transaction Body`_.
|
|
|
|
|
|
|
|
Transaction.version
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** integer
|
|
|
|
BigchainDB transaction schema version.
|
|
|
|
|
|
|
|
|
|
|
|
Transaction Body
|
|
----------------
|
|
|
|
See: `Transaction Body`_.
|
|
|
|
|
|
Transaction.operation
|
|
^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** string
|
|
|
|
Type of the transaction:
|
|
|
|
A ``CREATE`` transaction creates an asset in BigchainDB. This
|
|
transaction has outputs (conditions) but no inputs (fulfillments),
|
|
so a dummy fulfillment is used.
|
|
|
|
A ``TRANSFER`` transaction transfers ownership of an asset, by providing
|
|
fulfillments to conditions of earlier transactions.
|
|
|
|
A ``GENESIS`` transaction is a special case transaction used as the
|
|
sole member of the first block in a BigchainDB ledger.
|
|
|
|
|
|
|
|
Transaction.asset
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** object
|
|
|
|
Description of the asset being transacted.
|
|
|
|
See: `Asset`_.
|
|
|
|
|
|
|
|
Transaction.fulfillments
|
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** array (object)
|
|
|
|
Array of the fulfillments (inputs) of a transaction.
|
|
|
|
See: Fulfillment_.
|
|
|
|
|
|
|
|
Transaction.conditions
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** array (object)
|
|
|
|
Array of conditions (outputs) provided by this transaction.
|
|
|
|
See: Condition_.
|
|
|
|
|
|
|
|
Transaction.metadata
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** object or null
|
|
|
|
User provided transaction metadata. This field may be ``null`` or may
|
|
contain an id and an object with freeform metadata.
|
|
|
|
See: `Metadata`_.
|
|
|
|
|
|
|
|
|
|
|
|
Condition
|
|
----------
|
|
|
|
An output of a transaction. A condition describes a quantity of an asset
|
|
and what conditions must be met in order for it to be fulfilled. See also:
|
|
fulfillment_.
|
|
|
|
|
|
Condition.cid
|
|
^^^^^^^^^^^^^
|
|
|
|
**type:** integer
|
|
|
|
Index of this condition's appearance in the `Transaction.conditions`_
|
|
array. In a transaction with 2 conditions, the ``cid``s will be 0 and 1.
|
|
|
|
|
|
|
|
Condition.condition
|
|
^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** object
|
|
|
|
Body of the condition. Has the properties:
|
|
|
|
- **details**: Details of the condition.
|
|
- **uri**: Condition encoded as an ASCII string.
|
|
|
|
|
|
|
|
Condition.owners_after
|
|
^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** array (string) or null
|
|
|
|
List of public keys associated with asset ownership at the time
|
|
of the transaction.
|
|
|
|
|
|
|
|
Condition.amount
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
**type:** integer
|
|
|
|
Integral amount of the asset represented by this condition.
|
|
In the case of a non divisible asset, this will always be 1.
|
|
|
|
|
|
|
|
|
|
|
|
Fulfillment
|
|
-----------
|
|
|
|
A fulfillment is an input to a transaction, named as such because it fulfills a condition of a previous transaction. In the case of a ``CREATE`` transaction, a fulfillment may provide no ``input``.
|
|
|
|
Fulfillment.fid
|
|
^^^^^^^^^^^^^^^
|
|
|
|
**type:** integer
|
|
|
|
The offset of the fulfillment within the fulfillents array.
|
|
|
|
|
|
|
|
Fulfillment.owners_before
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** array (string) or null
|
|
|
|
List of public keys of the previous owners of the asset.
|
|
|
|
|
|
|
|
Fulfillment.fulfillment
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** object or string
|
|
|
|
Fulfillment of a condition_, or put a different way, this is a
|
|
payload that satisfies a condition in order to spend the associated
|
|
asset.
|
|
|
|
|
|
|
|
Fulfillment.input
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
**type:** object or null
|
|
|
|
Reference to a condition of a previous transaction
|
|
|
|
|
|
|
|
|
|
|
|
Asset
|
|
-----
|
|
|
|
Description of the asset being transacted. In the case of a ``TRANSFER``
|
|
transaction, this field contains only the ID of asset. In the case
|
|
of a ``CREATE`` transaction, this field may contain properties:
|
|
|
|
|
|
Asset.id
|
|
^^^^^^^^
|
|
|
|
**type:** string
|
|
|
|
A `UUID <https://tools.ietf.org/html/rfc4122.html>`_
|
|
of type 4 (random).
|
|
|
|
|
|
|
|
Asset.divisible
|
|
^^^^^^^^^^^^^^^
|
|
|
|
**type:** boolean
|
|
|
|
Whether or not the asset has a quantity that may be partially spent.
|
|
|
|
|
|
|
|
Asset.updatable
|
|
^^^^^^^^^^^^^^^
|
|
|
|
**type:** boolean
|
|
|
|
Whether or not the description of the asset may be updated. Defaults to false.
|
|
|
|
|
|
|
|
Asset.refillable
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
**type:** boolean
|
|
|
|
Whether the amount of the asset can change after its creation. Defaults to false.
|
|
|
|
|
|
|
|
Asset.data
|
|
^^^^^^^^^^
|
|
|
|
**type:** object or null
|
|
|
|
User provided metadata associated with the asset. May also be ``null``.
|
|
|
|
|
|
|
|
|
|
|
|
Metadata
|
|
--------
|
|
|
|
User provided transaction metadata. This field may be ``null`` or may
|
|
contain an id and an object with freeform metadata.
|
|
|
|
|
|
Metadata.id
|
|
^^^^^^^^^^^
|
|
|
|
**type:** string
|
|
|
|
A `UUID <https://tools.ietf.org/html/rfc4122.html>`_
|
|
of type 4 (random).
|
|
|
|
|
|
|
|
Metadata.data
|
|
^^^^^^^^^^^^^
|
|
|
|
**type:** object
|
|
|
|
User provided transaction metadata.
|
|
|
|
|
|
|
|
|