Skip to content

Latest commit

 

History

History
 
 

cardano-submit-api

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Testing cardano-submit-api

Setting this up for testing and for actual use on a real network.

Pre-requisites

You will need some a cardano network with payment address and keys. This may be on mainnet, official testnet or a testnet that you've set up yourself. We will assume these files are in a directory called playground:

  • user-1-payment.addr - User 1 payment address. This address must have sufficient funds.
  • user-1-payment.vkey - User 1 verification key.
  • user-2-payment.addr - User 2 payment address.
  • magic.flag - The network magic flag. This will be --testnet-magic <magic> or --mainnet depending on the network you are using.
  • node.socket - The socket file for your network, or a symlink to that socket file. If you have a node running (for example, mainnet or testnet Daedalus), you can find the socket file by running the command ps aux | grep cardano-node and looking for the --node-socket option.

You will also need to have yj installed. This can be done via brew, apt-get or snap.

Install and run the cardano-submit-api

Install the cardano-submit-api:

cardano-node $ cabal install cardano-submit-api --overwrite-policy=always

Install the cardano-cli:

cardano-node $ cabal install cardano-cli --overwrite-policy=always

Copy the configuration yaml to your playground and tweak it:

playground $ cat <configuration-yaml-file> | yj -jy > submit-api-config.yaml
playground $ cat >> submit-api-config.yaml <<EOF
EnableLogMetrics: False
EnableLogging: True
EOF

Then run the cardano-submit-api against your network:

playground $ cardano-submit-api --config submit-api-config.yaml --socket-path node.socket --port 8090 $(cat magic.flag)

Build and submit a transaction

In another terminal, find out how much ADA is in your user 1 payment address:

playground $ CARDANO_NODE_SOCKET_PATH=node.socket cardano-cli query utxo --address $(cat user-1-payment.addr)  --testnet-magic $(cat magic.flag)
                           TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
8a3d63d4d95f669ef62570f2936ad50d2cfad399e04808ca21474e70b11987ee     0        97640000 lovelace

Save that date into environment variables for future use. For example:

playground $ txhash=8a3d63d4d95f669ef62570f2936ad50d2cfad399e04808ca21474e70b11987ee
playground $ balance=97640000

Find out much much will remain after paying 1000000 lovelace to the target account:

playground $ remaining=$(echo "$balance - 1000000 - 180000" | bc)

Build a raw transaction:

playground $ cardano-cli transaction build-raw \
  --alonzo-era \
  --tx-in "$txhash#0" \
  --tx-out "$(cat testnet-user-1-payment.addr)+$remaining" \
  --tx-out "$(cat testnet-user-2-payment.addr)+1000000" \
  --invalid-hereafter "21168607" \
  --fee 180000 \
  --out-file tx.raw

Sign the transaction:

playground $ cardano-cli transaction sign \
  --tx-body-file tx.raw \
  --signing-key-file testnet-user-1-payment.skey \
  $(cat magic.flag) \
  --out-file tx.signed

Extract the CBOR binary from the signed transaction:

playground $ xxd -r -p <<< $(jq .cborHex tx.signed) > tx.signed.cbor

Submit the signed transaction using curl:

playground $ curl --header "Content-Type: application/cbor" -X POST http://localhost:8090/api/submit/tx --data-binary @tx.signed.cbor
"8a3d63d4d95f669ef62570f2936ad50d2cfad399e04808ca21474e70b11987ee"%

The string returned is the new transaction hash.

You can check your user 2 payment address has received the funds by querying the following:

CARDANO_NODE_SOCKET_PATH=node.socket cardano-cli query utxo --address $(cat testnet-user-2-payment.addr)  --testnet-magic $(cat magic.flag)
                           TxHash                                 TxIx        Amount
--------------------------------------------------------------------------------------
24e12cf8937db7fc95a39ca7780a5a1cb425ee53321d730254d661cc96be572f     1        1000000 lovelace
8a3d63d4d95f669ef62570f2936ad50d2cfad399e04808ca21474e70b11987ee     1        1000000 lovelace

Additionally, the cardano-submit-api will print out a record of the transaction in its stdout:

[cardano-tx-submit:Info:26] [2021-03-11 03:32:35.13 UTC] txSubmitPost: successfully submitted transaction 8a3d63d4d95f669e
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy