Merge pull request #1115 from tendermint/docs-tx-format

document tx formats
This commit is contained in:
Ethan Buchman 2018-01-18 18:57:23 -05:00 committed by GitHub
commit ba0cb4f10e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 55 additions and 1 deletions

View File

@ -68,7 +68,7 @@ Transactions
------------ ------------
To send a transaction, use ``curl`` to make requests to the Tendermint To send a transaction, use ``curl`` to make requests to the Tendermint
RPC server: RPC server, for example:
:: ::
@ -93,6 +93,57 @@ Visit http://localhost:46657 in your browser to see the list of other
endpoints. Some take no arguments (like ``/status``), while others endpoints. Some take no arguments (like ``/status``), while others
specify the argument name and use ``_`` as a placeholder. specify the argument name and use ``_`` as a placeholder.
Formatting
~~~~~~~~~~
The following nuances when sending/formatting transactions should
be taken into account:
With ``GET``:
To send a UTF8 string byte array, quote the value of the tx pramater:
::
curl 'http://localhost:46657/broadcast_tx_commit?tx="hello"'
which sends a 5 byte transaction: "h e l l o" [68 65 6c 6c 6f].
Note the URL must be wrapped with single quoes, else bash will ignore the double quotes.
To avoid the single quotes, escape the double quotes:
::
curl http://localhost:46657/broadcast_tx_commit?tx=\"hello\"
Using a special character:
::
curl 'http://localhost:46657/broadcast_tx_commit?tx="€5"'
sends a 4 byte transaction: "€5" (UTF8) [e2 82 ac 35].
To send as raw hex, omit quotes AND prefix the hex string with ``0x``:
::
curl http://localhost:46657/broadcast_tx_commit?tx=0x01020304
which sends a 4 byte transaction: [01 02 03 04].
With ``POST`` (using ``json``), the raw hex must be ``base64`` encoded:
::
curl --data-binary '{"jsonrpc":"2.0","id":"anything","method":"broadcast_tx_commit","params": {"tx": "AQIDBA=="}}' -H 'content-type:text/plain;' http://localhost:46657
which sends the same 4 byte transaction: [01 02 03 04].
Note that raw hex cannot be used in ``POST`` transactions.
Reset Reset
----- -----
@ -196,6 +247,9 @@ can take on the order of a second. For a quick result, use
``broadcast_tx_sync``, but the transaction will not be committed until ``broadcast_tx_sync``, but the transaction will not be committed until
later, and by that point its effect on the state may change. later, and by that point its effect on the state may change.
Note: see the Transactions => Formatting section for details about
transaction formating.
Tendermint Networks Tendermint Networks
------------------- -------------------