Skip to content

Instantly share code, notes, and snippets.

@mojitoo
Last active December 30, 2020 09:23
Show Gist options
  • Save mojitoo/12ed69e6deda9240a101a78264ba23d1 to your computer and use it in GitHub Desktop.
Save mojitoo/12ed69e6deda9240a101a78264ba23d1 to your computer and use it in GitHub Desktop.

Prerequisites:

  • Wallet 1 (sender) : grin12wktxlyfx62wx48ldn55katd8zm5d6qfa6mupt9r4uul8eqxagsqct3je5 grin-wallet 4.0.0
  • Wallet 2 (receiver) : grin1jdj2w0fh8haq9pfuvjmjrev5f4gs34n4n7fnsfmuwf7j09x4v9ws79nq8d grin-wallet 4.0.0

Step 1 (receiver side)

The invoice command sends an invoice transaction, in which the initiator requests an amount for payment and sends that request to another party. This command will create an encypted (since -d is provided) invoice, requesting a payment of 0.1 grin. The resulting slatepack can then be sent to the other party for them to pay.

grin-wallet invoice -d grin12wktxlyfx62wx48ldn55katd8zm5d6qfa6mupt9r4uul8eqxagsqct3je5 0.1

Following this command the user needs to enter his password wallet to get the slatepack message displayed on screen and also an output to a .slatepack file. he either have the choice to copy the slatepack message and send it to the receiver or provide him with the slatepack file.

Password: 

/Users/workstation/.grin/main/slatepack/f69e1faa-e7f4-4088-83e1-0275d17d0cf0.I1.slatepack

Slatepack data follows. Please provide this output to the other party

--- CUT BELOW THIS LINE ---

BEGINSLATEPACK. SpFgjTxhkEuc7hK 6thHTSDAGP7erTn rkTT5oE7q9oh8Br iLGUth1BPrDUnx3 BcMjk4uhjeWV7hN bmEZJfYcp6gENVh xn7JD6MEvKxHFPk 1qyC3CpA6RKrDW3 7EcRgJL3AdSKrQe RzumhTS4hWXnDwX uJCRRSgHSeXDZRp XSq8qYjYvwUJ7YX 3FYyqHUcqNFujBJ 2jRfL7Xq7YcCff4 X9ikbcocTTkQkEN B2KCYzxZqb2FkkT cUgQobFLcpnmGi8 yJ5RT8nXfVPd493 fZsGHf4ZGBMMVS8 oGBvE4g76oYeAfm VVGMfMoidMs6Jhy yMGxjgxq683iZMj 98GJkDYVndKdMYu gSNSdhmnjSeGgsW 9D5h244bVnnpxZ1 AYkHV7u4yQ4HmGe RZkUDwrLLdyxxyK AWAJzPFPHcCfmzh LA3JtpL2YVBXeRS 6EbhPNjzjMdHEqs oqyZjS8m5sSP1Mx xifiYioUcuk1MB6 vAoH9FU7ef3RgFU 4DHQ9NB67VBqFmx atTegwFkHCc6nYn h61EWJm3qwVHq8C sMWXzooDqyShW22 doSqDo6b22vYgiM k1Cwxoa75ofAm1q mASgQR1VRXEVcrC HZJweQ95Pns3BZR hCZa8ZbzocEQnCJ juMrhNbxRdmsZic 7KjZgp4QYDcq15d Ms3zsAgqEKyYPAU Mxy4pgP6t3ucbwb g78KvxHggijdMNP tmk9fPjtfGxfYd5 yiPnHFRTC9dKR22 BtQjzVFiXHEuc1y uQeTMKcfqWz2YEP jsEPZmCTi26asKP wFgZ. ENDSLATEPACK.

--- CUT ABOVE THIS LINE ---

Slatepack data was also output to

/Users/workstation/.grin/main/slatepack/f69e1faa-e7f4-4088-83e1-0275d17d0cf0.I1.slatepack

The slatepack data is encrypted for the recipient only

Command 'invoice' completed successfully

Step 2 (sender side):

After receiving an invoice request, the payer can use the pay command to decode (also decrypt if possible) the slatepack and confirm the amount of coins being requested as payment. To confirm the payment, type the exact amount in decimal, 0.100000000 in this example, into the prompt.

grin-wallet pay
Password: 
Please paste your encoded slatepack message:
BEGINSLATEPACK. SpFgjTxhkEuc7hK 6thHTSDAGP7erTn rkTT5oE7q9oh8Br iLGUth1BPrDUnx3 BcMjk4uhjeWV7hN bmEZJfYcp6gENVh xn7JD6MEvKxHFPk 1qyC3CpA6RKrDW3 7EcRgJL3AdSKrQe RzumhTS4hWXnDwX uJCRRSgHSeXDZRp XSq8qYjYvwUJ7YX 3FYyqHUcqNFujBJ 2jRfL7Xq7YcCff4 X9ikbcocTTkQkEN B2KCYzxZqb2FkkT cUgQobFLcpnmGi8 yJ5RT8nXfVPd493 fZsGHf4ZGBMMVS8 oGBvE4g76oYeAfm VVGMfMoidMs6Jhy yMGxjgxq683iZMj 98GJkDYVndKdMYu gSNSdhmnjSeGgsW 9D5h244bVnnpxZ1 AYkHV7u4yQ4HmGe RZkUDwrLLdyxxyK AWAJzPFPHcCfmzh LA3JtpL2YVBXeRS 6EbhPNjzjMdHEqs oqyZjS8m5sSP1Mx xifiYioUcuk1MB6 vAoH9FU7ef3RgFU 4DHQ9NB67VBqFmx atTegwFkHCc6nYn h61EWJm3qwVHq8C sMWXzooDqyShW22 doSqDo6b22vYgiM k1Cwxoa75ofAm1q mASgQR1VRXEVcrC HZJweQ95Pns3BZR hCZa8ZbzocEQnCJ juMrhNbxRdmsZic 7KjZgp4QYDcq15d Ms3zsAgqEKyYPAU Mxy4pgP6t3ucbwb g78KvxHggijdMNP tmk9fPjtfGxfYd5 yiPnHFRTC9dKR22 BtQjzVFiXHEuc1y uQeTMKcfqWz2YEP jsEPZmCTi26asKP wFgZ. ENDSLATEPACK.

This command will pay the amount specified in the invoice using your wallet's funds.
After you confirm, the following will occur: 

* 0.100000000 of your wallet funds will be added to the transaction to pay this invoice.
* The wallet will IMMEDIATELY attempt to send the resulting transaction to the wallet listening at: 'grin1jdj2w0fh8haq9pfuvjmjrev5f4gs34n4n7fnsfmuwf7j09x4v9ws79nq8d'.
* If other wallet is not listening, the resulting transaction will output as a slatepack which you can manually send back to the invoice creator.

Please review the above information carefully before proceeding

To confirm the payment, type the exact amount in decimal, 0.100000000 in this example, into the prompt.

To proceed, type the exact amount of the invoice as displayed above (or Q/q to quit) > 0.100000000
20201219 09:53:20.522 WARN grin_wallet_api::owner - Attempting to send transaction via TOR
20201219 09:53:37.461 WARN grin_wallet_api::owner - Unable to send transaction via TOR. Attempting alternate methods.
/Users/workstation/.grin/main/slatepack/f69e1faa-e7f4-4088-83e1-0275d17d0cf0.I2.slatepack

Slatepack data follows. Please provide this output to the other party

--- CUT BELOW THIS LINE ---

BEGINSLATEPACK. 8YVwh3nCNZao11A MmTbMcCY7uVRE5a ZXudJ66ENEENnxZ WFRaUQM87MWrABJ reS44rHqUE71oW9 5KLJTp92MAyjnRo b8YALL2dpWDVbnm tb85iKzj2ng7mjJ HsABVAULUdUiPEr rbC1nMSeGCEwpKU z1UqiMKpKwmgND1 tsV1s7r1rEYLbnU fMgwbEoJSL2gL9H nH3gTsa9jxGH4EQ zxQ1huKvenFjCax 5C5vbtSSQM9T9Y4 nCnxMuzYe6rGEtp oandTbvKmEK5DAQ Tmn6ZwYEj65vvbU FMT5garL9p26Edx KE9euSniGRxoD4h XmPh4yTbnyVjVNG 4XFEEu3Vn5hRygZ yTDg7hJ7GnX9ZRk VDYdDF5icjTvnih zgyRhqwm1RbS82J s5dzswAVHMNuxyD SSnK2AAGF3wqWtr 7W8U5mR2WT3g1yG Knd4cwDzQEyLKcQ zcBV4GvU3UvUCoH MXv967asqctDnAy zzDMnMMipggwwCM QrhmW56ahpumKxm 5Jb3NXZ6fC9zLcG gNesNG6VvGMPypW DtTZdbseZA2SN57 QBB1uSDnxF1W4Ki d3SHZBv7g7cWR3E DP788A9VwnBMZMC auTrQeXgBLEHi5i 4RUh6kmKLuAS6Mg aMUa3feNgyQLHg8 5txzbL77mpd5vbM aoB8C18wP7ViYUi wcYWNJDiw7kgP8f fQK5JhD3MgHWT16 3vPaRuG9RigyfWN U1ZAfVBZWvkqPsP ns3bG77XXVfVVtm 5SoBRjfuSE2P2zP w6a6m3uKJaAvTiF M4uUjaS7WgcbZ8c GvzDFAS9PfMXkDQ ZZHbGT3hbKz2s55 pKQ6qE9opuU9Sph Bcac9MbTcFdBuWp ZazP7HkEfphTb3G 37YjGRHYymUiFkf Q4mGCLDuxBNQn1i aP6UdHa6PVH1FA5 BSQxbaoS35KPP4R PWSxdyu3FnTrYA9 WnfLmoek781KmYS CdozmDNNJW2WHPt QCf7rVmwCNJHLDG yPKKimsmogDBNyF h9abhgF3f85itwj ZANUH17MNcs1Xre JvcVWPJmPM4d5MJ oSCWANB31S96qNh haaxYgNihJrxTHy bwx6ntcbuuDWMji vUtBQE5dGiRsx6q CszYxEUrjdDWkPU 4w9qk3tJrK6Npad ynRVuFmFHhUMYQk HwnrLwxyDBcbN8q 1jxEBWfcQiZ4DHF eySq1vEYqijJa3G RguMtRLZApHytXL DVVWFDNZ4C7sdnX doKZtVm77bmqEJJ 7f1BPBH8QyJkP4j QKRzuo9Q8fZwcfQ S8sM7nrFbshiWdv ACvk4GFcUzAJ8SZ 6xqdB4wBWhL1kMT 1j7BXweVGpXv5CE KqScKCWUKwEzcPq c872gtFNUZSEhqy A41krmAYaaT2WQJ a6wt9NLfmNpnDB6 8YigHtLoZTWxgig jxXfNwz2wp8in6M vjFnBNG6qf3iXsb a2yTVLfUk7cwNFf rxkFoP2RkquXxN7 s1PZQUb9V4gxRti h3qp4P7wphDQnHo tUwj5ZJ4EyFKdGa 94VvuEYgdbPDiNU doHJkYBqYSuxi1G jVDWQmvGWARtSh8 EcoViPsh1DbTjYR vDZqtkwA8NWYXVP xVVu4roPxEoXcvq ZZ5oPdDHCUAMjm6 NBqpzqQZ9338efN VgANktsN99ZQmoj nxeiuv7Jj7VoNzS kfuEtCBx28S97FN VAEwFd7i1hDdBwk AjWG3pdjkM7Lrxp CsPyMXaEZMrQTtC FnpQSourNMKgFYz ENZDLJqYCaxXGgV 5gEipbBwXa8zXnp krj3pQWH7k2yzhT DQ59YMLukns8NAS HD9bqLs4PTrweDX BKhb3b3eH1eGyKk zV1gZrBfrD. ENDSLATEPACK.

--- CUT ABOVE THIS LINE ---

Slatepack data was also output to

/Users/workstation/.grin/main/slatepack/f69e1faa-e7f4-4088-83e1-0275d17d0cf0.I2.slatepack

The slatepack data is encrypted for the recipient only

Command 'pay' completed successfully

Step 3 (receiver side) :

The finalize command is the final step to any slatepack transaction. After entering the command, the sender will be prompted to input the slatepack message provided by the receiver to finalize the transaction

grin-wallet  finalize
Password: 
Please paste your encoded slatepack message:
BEGINSLATEPACK. 8YVwh3nCNZao11A MmTbMcCY7uVRE5a ZXudJ66ENEENnxZ WFRaUQM87MWrABJ reS44rHqUE71oW9 5KLJTp92MAyjnRo b8YALL2dpWDVbnm tb85iKzj2ng7mjJ HsABVAULUdUiPEr rbC1nMSeGCEwpKU z1UqiMKpKwmgND1 tsV1s7r1rEYLbnU fMgwbEoJSL2gL9H nH3gTsa9jxGH4EQ zxQ1huKvenFjCax 5C5vbtSSQM9T9Y4 nCnxMuzYe6rGEtp oandTbvKmEK5DAQ Tmn6ZwYEj65vvbU FMT5garL9p26Edx KE9euSniGRxoD4h XmPh4yTbnyVjVNG 4XFEEu3Vn5hRygZ yTDg7hJ7GnX9ZRk VDYdDF5icjTvnih zgyRhqwm1RbS82J s5dzswAVHMNuxyD SSnK2AAGF3wqWtr 7W8U5mR2WT3g1yG Knd4cwDzQEyLKcQ zcBV4GvU3UvUCoH MXv967asqctDnAy zzDMnMMipggwwCM QrhmW56ahpumKxm 5Jb3NXZ6fC9zLcG gNesNG6VvGMPypW DtTZdbseZA2SN57 QBB1uSDnxF1W4Ki d3SHZBv7g7cWR3E DP788A9VwnBMZMC auTrQeXgBLEHi5i 4RUh6kmKLuAS6Mg aMUa3feNgyQLHg8 5txzbL77mpd5vbM aoB8C18wP7ViYUi wcYWNJDiw7kgP8f fQK5JhD3MgHWT16 3vPaRuG9RigyfWN U1ZAfVBZWvkqPsP ns3bG77XXVfVVtm 5SoBRjfuSE2P2zP w6a6m3uKJaAvTiF M4uUjaS7WgcbZ8c GvzDFAS9PfMXkDQ ZZHbGT3hbKz2s55 pKQ6qE9opuU9Sph Bcac9MbTcFdBuWp ZazP7HkEfphTb3G 37YjGRHYymUiFkf Q4mGCLDuxBNQn1i aP6UdHa6PVH1FA5 BSQxbaoS35KPP4R PWSxdyu3FnTrYA9 WnfLmoek781KmYS CdozmDNNJW2WHPt QCf7rVmwCNJHLDG yPKKimsmogDBNyF h9abhgF3f85itwj ZANUH17MNcs1Xre JvcVWPJmPM4d5MJ oSCWANB31S96qNh haaxYgNihJrxTHy bwx6ntcbuuDWMji vUtBQE5dGiRsx6q CszYxEUrjdDWkPU 4w9qk3tJrK6Npad ynRVuFmFHhUMYQk HwnrLwxyDBcbN8q 1jxEBWfcQiZ4DHF eySq1vEYqijJa3G RguMtRLZApHytXL DVVWFDNZ4C7sdnX doKZtVm77bmqEJJ 7f1BPBH8QyJkP4j QKRzuo9Q8fZwcfQ S8sM7nrFbshiWdv ACvk4GFcUzAJ8SZ 6xqdB4wBWhL1kMT 1j7BXweVGpXv5CE KqScKCWUKwEzcPq c872gtFNUZSEhqy A41krmAYaaT2WQJ a6wt9NLfmNpnDB6 8YigHtLoZTWxgig jxXfNwz2wp8in6M vjFnBNG6qf3iXsb a2yTVLfUk7cwNFf rxkFoP2RkquXxN7 s1PZQUb9V4gxRti h3qp4P7wphDQnHo tUwj5ZJ4EyFKdGa 94VvuEYgdbPDiNU doHJkYBqYSuxi1G jVDWQmvGWARtSh8 EcoViPsh1DbTjYR vDZqtkwA8NWYXVP xVVu4roPxEoXcvq ZZ5oPdDHCUAMjm6 NBqpzqQZ9338efN VgANktsN99ZQmoj nxeiuv7Jj7VoNzS kfuEtCBx28S97FN VAEwFd7i1hDdBwk AjWG3pdjkM7Lrxp CsPyMXaEZMrQTtC FnpQSourNMKgFYz ENZDLJqYCaxXGgV 5gEipbBwXa8zXnp krj3pQWH7k2yzhT DQ59YMLukns8NAS HD9bqLs4PTrweDX BKhb3b3eH1eGyKk zV1gZrBfrD. ENDSLATEPACK.
Wallet command failed: LibWallet Error: LibTx Error

Wallet command failed: LibWallet Error: LibTx Error

CASE 2 :

  • Wallet 1 (sender) : grin12wktxlyfx62wx48ldn55katd8zm5d6qfa6mupt9r4uul8eqxagsqct3je5 grin-wallet 5.0.0-beta.3
  • Wallet 2 (receiver) : grin1jdj2w0fh8haq9pfuvjmjrev5f4gs34n4n7fnsfmuwf7j09x4v9ws79nq8d grin-wallet 4.0.0
Wallet command failed: LibWallet Error: Wallet store error: Serialization Error

CASE 3 :

  • Wallet 1 (sender) : grin12wktxlyfx62wx48ldn55katd8zm5d6qfa6mupt9r4uul8eqxagsqct3je5 grin-wallet 4.0.0
  • Wallet 2 (receiver) : grin1jdj2w0fh8haq9pfuvjmjrev5f4gs34n4n7fnsfmuwf7j09x4v9ws79nq8d grin-wallet 5.0.0-beta.3
Wallet command failed: LibWallet Error: LibTx Error

CASE 4 :

  • Wallet 1 (sender) : grin12wktxlyfx62wx48ldn55katd8zm5d6qfa6mupt9r4uul8eqxagsqct3je5 grin-wallet 5.0.0-beta.3
  • Wallet 2 (receiver) : grin1jdj2w0fh8haq9pfuvjmjrev5f4gs34n4n7fnsfmuwf7j09x4v9ws79nq8d grin-wallet 5.0.0-beta.3

Works Fine

OS : MAC OS CATALINA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment