Grinnode-live / 2020-grin-bug-bash-challenge

Finding bugs in Grin-Wallet & Grin-nodes for a bounty prior to Grin fork v5.
3 stars 1 forks source link

[GRIN-Wallet] test the unpack command #47

Closed marekyggdrasil closed 3 years ago

marekyggdrasil commented 3 years ago

Description The objective of this test is to test the unpack command which decrypts the slatepack

Prerequisites:

  1. Setup two GRIN-Wallets (1) + (2)
  2. send funds from wallet (1) to wallet (2) via manual Slatepacks do not specify any extra flags
  3. in wallet (2) run the unpack command and provide the slatepack received from the wallet (1)
  4. in wallet (1) cancel the transaction

Expected result: Expect the wallet (2) to decrypt and format the received slatepack in JSON format. Document your findings.

Other info: For both wallets include the output of command

grin-wallet -V

and your environment

uname -a
mojitoo commented 3 years ago

Prerequisites:

Step 1 : send funds from wallet (1) to wallet (2)

grin-wallet -r "https://grinnode.live:3413"  send -d grin1jdj2w0fh8haq9pfuvjmjrev5f4gs34n4n7fnsfmuwf7j09x4v9ws79nq8d 0.1
20201223 09:41:55.070 ERROR grin_wallet_impls::node_clients::http - Error calling get_version: ResponseError error: Cannot parse response
20201223 09:41:55.070 ERROR grin_wallet_impls::node_clients::http - Unable to contact Node to get version info: Client Callback Error: Error calling get_version: ResponseError error: Cannot parse response
Password: 
20201223 09:42:00.573 WARN grin_wallet_api::owner - Attempting to send transaction via TOR
20201223 09:42:09.663 WARN grin_wallet_api::owner - Unable to send transaction via TOR
/Users/workstation/.grin/main/slatepack/71db28af-b64a-48aa-ac41-94ca10e36922.S1.slatepack

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

--- CUT BELOW THIS LINE ---

BEGINSLATEPACK. 5hk8Bj4bH1DKDwC kERce3EojgEmSzQ 193a3Eq5tT8AjYz t9yeE3ssZGi2Nmj uUXkAVBXaTNseET U5FPF58gQU93iT5 QcddvS7G2X2GcQ3 7Z9SeNQiJNugEBh 9vLg61BdsQoxMzc 7YBNRePiXk21tdr AcEwRCzibm1StFA jTyqukG1qXnKbEt teRTQ5NCkSomQuv 1zHX81BzwrJQeDP yUkEiXsFSd13nk8 MN23S3Zru7rNr2z hgVFY6ssoqRWXXJ vLUpFfHUFaPHsKR FUUaqezbfnh3V1n 65i1Y3Gocu4x3Ry xb7VJCr2fT1AVru VEjVejgVwHshwck SR78kzbG2rVbzG3 bLpEdVK2CQbt6kH ZanX39Hn1KYbo6n iKa4CjNpMYWPbxA AjnvusZKDSKmzZJ z9QoGYan468Gchd V4agbvx431HCq2S YyJB7hs5ybMxvBD mUfL91gWUaLFw5D 7ZsJPgvDrgA1vRN eyvbPPyQY6GeRbM hYr8GNzDHps8HyJ qGn4tRujSGq4GcN 7QnEA11GufYo1Yn qELYXRBFf2nRFb5 A4sCjo7qhTTP3MV Q3YBbSwg9tnaqEP mJRFeekxDiAgPyc ZC7VSmegrLgcokm XJQhjH25ci6StMm xUqD3oojXrfsRw3 Md6rpTetHdVAY6S Yf5KLR7wLpNjeDS kpYi4YqAb67DGzZ WaMowsro93PBeCW kMTZKbZmA1LoQzp Z44vfSXoypoZcnB rb8SLdP8F8fQUPb kw6uvXt57mhJtNm t5GPPYyXXTBRWpX ARQa7F7. ENDSLATEPACK.

--- CUT ABOVE THIS LINE ---

Slatepack data was also output to

/Users/workstation/.grin/main/slatepack/71db28af-b64a-48aa-ac41-94ca10e36922.S1.slatepack

The slatepack data is encrypted for the recipient only

Command 'send' completed successfully

Command 'send' completed successfully

Step 2 : in wallet (2) run the unpack command

grin-wallet -r "https://grinnode.live:3413"  -a newaccount unpack 
20201223 09:43:19.242 ERROR grin_wallet_impls::node_clients::http - Error calling get_version: ResponseError error: Cannot parse response
20201223 09:43:19.242 ERROR grin_wallet_impls::node_clients::http - Unable to contact Node to get version info: Client Callback Error: Error calling get_version: ResponseError error: Cannot parse response
Password: 
Please paste your encoded slatepack message:
BEGINSLATEPACK. 5hk8Bj4bH1DKDwC kERce3EojgEmSzQ 193a3Eq5tT8AjYz t9yeE3ssZGi2Nmj uUXkAVBXaTNseET U5FPF58gQU93iT5 QcddvS7G2X2GcQ3 7Z9SeNQiJNugEBh 9vLg61BdsQoxMzc 7YBNRePiXk21tdr AcEwRCzibm1StFA jTyqukG1qXnKbEt teRTQ5NCkSomQuv 1zHX81BzwrJQeDP yUkEiXsFSd13nk8 MN23S3Zru7rNr2z hgVFY6ssoqRWXXJ vLUpFfHUFaPHsKR FUUaqezbfnh3V1n 65i1Y3Gocu4x3Ry xb7VJCr2fT1AVru VEjVejgVwHshwck SR78kzbG2rVbzG3 bLpEdVK2CQbt6kH ZanX39Hn1KYbo6n iKa4CjNpMYWPbxA AjnvusZKDSKmzZJ z9QoGYan468Gchd V4agbvx431HCq2S YyJB7hs5ybMxvBD mUfL91gWUaLFw5D 7ZsJPgvDrgA1vRN eyvbPPyQY6GeRbM hYr8GNzDHps8HyJ qGn4tRujSGq4GcN 7QnEA11GufYo1Yn qELYXRBFf2nRFb5 A4sCjo7qhTTP3MV Q3YBbSwg9tnaqEP mJRFeekxDiAgPyc ZC7VSmegrLgcokm XJQhjH25ci6StMm xUqD3oojXrfsRw3 Md6rpTetHdVAY6S Yf5KLR7wLpNjeDS kpYi4YqAb67DGzZ WaMowsro93PBeCW kMTZKbZmA1LoQzp Z44vfSXoypoZcnB rb8SLdP8F8fQUPb kw6uvXt57mhJtNm t5GPPYyXXTBRWpX ARQa7F7. ENDSLATEPACK.

SLATEPACK CONTENTS
------------------
{
  "slatepack": "1.0",
  "mode": 1,
  "payload": "YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4YzFiako1ZHlreGwyY3M5K25TTjREY0NVQ3dMcHZUUUNQVk1KOG1sbFd3CkRMV0N2ZzVCUXFnMzdWWFdNeExEU1l6R0RtUVFoMDE3M0JEWHdXY25POGcKLT4gam9pbnQtb2lsLT0gRkt+ViBtCjk0SjJHOUFwUzRXVmU3WWYxTzkwYzFpU1did1VaTlhUNTVEUkQ2TFg4M0tEbSttRnBOY3dlOXZLN0EKLS0tIGVvbUZReXBVRTdnKzVPOFpRSmg4SGxqMTdMWVM4eVc1cjZDM2hPMGlybGcK8X6Wh+9d6AFeoNurScLnzxdzDrWjVe8di4kFLX/djBXm9UYRsqpdg2KA3iLyIkKbMc/WzMLBzwo1ysA0a6gXzEaboQo2uSHV3fVKLu8Yf5XMgGoFSgb3a5V+c2ZZ71Sm6LpZRQjj1Mfp4zWppkmxFO19DvYj6mv1GeAtM/8XGn+wpwI0pA2iPxeG0P04DqAg/LSkvTenvlI2f2WHDAAfO8ef/NIc74QgoirTGjmb2apl+RXIP9shlXY3RxP+ifofWhqilgWIm8uucHVXYDLeslv54GDvSTTOdhTdI+knAv2UaIDjcXDwnsVPkvtTZmzODy+n06C9UiQkvW5hRb5Qx0INcd1eUOjv4AxyD1slb6PbeY4N+m2zmoO/EMJ9lVaGH9vwZgQCjQWaCl57nP7xAaji"
}
------------------
Slatepack is encrypted for this wallet

DECRYPTED SLATEPACK
-------------------
{
  "slatepack": "1.0",
  "mode": 0,
  "sender": "grin12wktxlyfx62wx48ldn55katd8zm5d6qfa6mupt9r4uul8eqxagsqct3je5",
  "payload": "AAQAA3HbKK+2SkiqrEGUyhDjaSIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAX14QAAAAAAAW42AAEAAj6XX9ijF+gMRyfy7aZElNWGxMRR7xvVHbf56e+6Xv01A97f2WW9eN2OHC6+Thv1HTXaGzCVqaQAHUGKjP5T5t7YAlOss3yJNpTjVP9s6Ut1bTi3RugJ7rfArKOvOfPkBuogk2SnPTc9+gKFPGS3IeWUTVEI1nWfkzgnfHJ9J5TVYV0A"
}

DECRYPTED SLATE
---------------
{
  "ver": "4:3",
  "id": "71db28af-b64a-48aa-ac41-94ca10e36922",
  "sta": "S1",
  "amt": "100000000",
  "fee": "24000000",
  "sigs": [
    {
      "xs": "023e975fd8a317e80c4727f2eda64494d586c4c451ef1bd51db7f9e9efba5efd35",
      "nonce": "03dedfd965bd78dd8e1c2ebe4e1bf51d35da1b3095a9a4001d418a8cfe53e6ded8"
    }
  ],
  "proof": {
    "saddr": "53acb37c893694e354ff6ce94b756d38b746e809eeb7c0aca3af39f3e406ea20",
    "raddr": "9364a73d373dfa02853c64b721e5944d5108d6759f9338277c727d2794d5615d"
  }
}
Command 'unpack' completed successfully

Command 'unpack' completed successfully

Step 3 : in wallet (1) cancel the transaction

grin-wallet -r "https://grinnode.live:3413"  cancel -i 40
20201223 09:45:35.337 ERROR grin_wallet_impls::node_clients::http - Error calling get_version: ResponseError error: Cannot parse response
20201223 09:45:35.337 ERROR grin_wallet_impls::node_clients::http - Unable to contact Node to get version info: Client Callback Error: Error calling get_version: ResponseError error: Cannot parse response
Password: 
20201223 09:45:41.616 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning - 0% complete
20201223 09:45:43.932 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning - 99% complete
20201223 09:45:43.943 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning - 99% complete
20201223 09:45:43.944 WARN grin_wallet_libwallet::api_impl::owner_updater - Scanning Complete
Command 'cancel' completed successfully

Command 'cancel' completed successfully

marekyggdrasil commented 3 years ago

Looking good! Thanks!