From 7a2c32e7df803ea692480410744c09cef7efdb0a Mon Sep 17 00:00:00 2001 From: Xavier Chapron Date: Thu, 27 Oct 2022 18:01:57 +0200 Subject: [PATCH 1/5] tests: Add automated functional test based on ragger framework --- .github/workflows/ci-workflow.yml | 106 ++-- fuzz/generate_fuzz_ref_corpus.py | 26 + test/eosBase.py | 487 ------------------ test/generate_corpus.py | 78 --- test/getPublicKey.py | 62 --- test/signTransaction.py | 71 --- test/testDerivationPathGeneration.py | 58 --- tests/.gitignore | 2 + {test => tests/corpus}/transaction.json | 0 .../corpus}/transaction_buyram.json | 0 .../corpus}/transaction_buyrambytes.json | 0 .../corpus}/transaction_deleteauth.json | 0 .../corpus}/transaction_linkauth.json | 0 .../corpus}/transaction_newaccount.json | 0 .../corpus}/transaction_refund.json | 0 .../corpus}/transaction_sellram.json | 0 .../corpus}/transaction_unknown.json | 0 .../corpus}/transaction_unlinkauth.json | 0 .../corpus}/transaction_updateauth.json | 0 {test => tests/corpus}/transaction_vote.json | 0 .../corpus}/transaction_vote_proxy.json | 0 {test => tests}/decodeTransaction.py | 0 tests/functional/apps/__init__.py | 0 tests/functional/apps/eos.py | 216 ++++++++ .../apps/eos_transaction_builder.py | 333 ++++++++++++ tests/functional/conftest.py | 122 +++++ tests/functional/requirements.txt | 5 + .../test_eos_get_public_key_confirm/00000.png | Bin 0 -> 388 bytes .../test_eos_get_public_key_confirm/00001.png | Bin 0 -> 537 bytes .../test_eos_get_public_key_confirm/00002.png | Bin 0 -> 495 bytes .../test_eos_get_public_key_confirm/00003.png | Bin 0 -> 500 bytes .../test_eos_get_public_key_confirm/00004.png | Bin 0 -> 341 bytes .../test_eos_get_public_key_confirm/00005.png | Bin 0 -> 341 bytes .../test_eos_get_public_key_confirm/00006.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 388 bytes .../00001.png | Bin 0 -> 537 bytes .../00002.png | Bin 0 -> 495 bytes .../00003.png | Bin 0 -> 500 bytes .../00004.png | Bin 0 -> 341 bytes .../00005.png | Bin 0 -> 341 bytes .../00006.png | Bin 0 -> 340 bytes .../00007.png | Bin 0 -> 336 bytes .../test_eos_mainmenu_and_setting/00000.png | Bin 0 -> 336 bytes .../test_eos_mainmenu_and_setting/00001.png | Bin 0 -> 336 bytes .../test_eos_mainmenu_and_setting/00002.png | Bin 0 -> 355 bytes .../test_eos_mainmenu_and_setting/00003.png | Bin 0 -> 260 bytes .../test_eos_mainmenu_and_setting/00004.png | Bin 0 -> 355 bytes .../test_eos_mainmenu_and_setting/00005.png | Bin 0 -> 388 bytes .../test_eos_mainmenu_and_setting/00006.png | Bin 0 -> 359 bytes .../test_eos_mainmenu_and_setting/00007.png | Bin 0 -> 281 bytes .../test_eos_mainmenu_and_setting/00008.png | Bin 0 -> 336 bytes .../test_eos_transaction_buyram_ok/00000.png | Bin 0 -> 382 bytes .../test_eos_transaction_buyram_ok/00001.png | Bin 0 -> 331 bytes .../test_eos_transaction_buyram_ok/00002.png | Bin 0 -> 337 bytes .../test_eos_transaction_buyram_ok/00003.png | Bin 0 -> 356 bytes .../test_eos_transaction_buyram_ok/00004.png | Bin 0 -> 360 bytes .../test_eos_transaction_buyram_ok/00005.png | Bin 0 -> 327 bytes .../test_eos_transaction_buyram_ok/00006.png | Bin 0 -> 413 bytes .../test_eos_transaction_buyram_ok/00007.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 383 bytes .../00003.png | Bin 0 -> 356 bytes .../00004.png | Bin 0 -> 360 bytes .../00005.png | Bin 0 -> 313 bytes .../00006.png | Bin 0 -> 413 bytes .../00007.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 356 bytes .../00003.png | Bin 0 -> 345 bytes .../00004.png | Bin 0 -> 317 bytes .../00005.png | Bin 0 -> 413 bytes .../00006.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 345 bytes .../00003.png | Bin 0 -> 345 bytes .../00004.png | Bin 0 -> 317 bytes .../00005.png | Bin 0 -> 321 bytes .../00006.png | Bin 0 -> 317 bytes .../00007.png | Bin 0 -> 413 bytes .../00008.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 325 bytes .../00002.png | Bin 0 -> 390 bytes .../00003.png | Bin 0 -> 384 bytes .../00004.png | Bin 0 -> 331 bytes .../00005.png | Bin 0 -> 346 bytes .../00006.png | Bin 0 -> 354 bytes .../00007.png | Bin 0 -> 330 bytes .../00008.png | Bin 0 -> 512 bytes .../00009.png | Bin 0 -> 523 bytes .../00010.png | Bin 0 -> 454 bytes .../00011.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 396 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 383 bytes .../00003.png | Bin 0 -> 356 bytes .../00004.png | Bin 0 -> 342 bytes .../00005.png | Bin 0 -> 323 bytes .../00006.png | Bin 0 -> 454 bytes .../00007.png | Bin 0 -> 395 bytes .../00008.png | Bin 0 -> 331 bytes .../00009.png | Bin 0 -> 387 bytes .../00010.png | Bin 0 -> 320 bytes .../00011.png | Bin 0 -> 342 bytes .../00012.png | Bin 0 -> 306 bytes .../00013.png | Bin 0 -> 296 bytes .../00014.png | Bin 0 -> 352 bytes .../00015.png | Bin 0 -> 413 bytes .../00016.png | Bin 0 -> 336 bytes .../nanos/test_eos_transaction_ok/00000.png | Bin 0 -> 382 bytes .../nanos/test_eos_transaction_ok/00001.png | Bin 0 -> 381 bytes .../nanos/test_eos_transaction_ok/00002.png | Bin 0 -> 341 bytes .../nanos/test_eos_transaction_ok/00003.png | Bin 0 -> 320 bytes .../nanos/test_eos_transaction_ok/00004.png | Bin 0 -> 303 bytes .../nanos/test_eos_transaction_ok/00005.png | Bin 0 -> 336 bytes .../nanos/test_eos_transaction_ok/00006.png | Bin 0 -> 295 bytes .../nanos/test_eos_transaction_ok/00007.png | Bin 0 -> 413 bytes .../nanos/test_eos_transaction_ok/00008.png | Bin 0 -> 336 bytes .../test_eos_transaction_refund_ok/00000.png | Bin 0 -> 382 bytes .../test_eos_transaction_refund_ok/00001.png | Bin 0 -> 331 bytes .../test_eos_transaction_refund_ok/00002.png | Bin 0 -> 322 bytes .../test_eos_transaction_refund_ok/00003.png | Bin 0 -> 345 bytes .../test_eos_transaction_refund_ok/00004.png | Bin 0 -> 413 bytes .../test_eos_transaction_refund_ok/00005.png | Bin 0 -> 336 bytes .../test_eos_transaction_refused/00000.png | Bin 0 -> 382 bytes .../test_eos_transaction_refused/00001.png | Bin 0 -> 381 bytes .../test_eos_transaction_refused/00002.png | Bin 0 -> 341 bytes .../test_eos_transaction_refused/00003.png | Bin 0 -> 320 bytes .../test_eos_transaction_refused/00004.png | Bin 0 -> 303 bytes .../test_eos_transaction_refused/00005.png | Bin 0 -> 336 bytes .../test_eos_transaction_refused/00006.png | Bin 0 -> 295 bytes .../test_eos_transaction_refused/00007.png | Bin 0 -> 413 bytes .../test_eos_transaction_refused/00008.png | Bin 0 -> 449 bytes .../test_eos_transaction_refused/00009.png | Bin 0 -> 336 bytes .../test_eos_transaction_sellram_ok/00000.png | Bin 0 -> 382 bytes .../test_eos_transaction_sellram_ok/00001.png | Bin 0 -> 331 bytes .../test_eos_transaction_sellram_ok/00002.png | Bin 0 -> 328 bytes .../test_eos_transaction_sellram_ok/00003.png | Bin 0 -> 360 bytes .../test_eos_transaction_sellram_ok/00004.png | Bin 0 -> 320 bytes .../test_eos_transaction_sellram_ok/00005.png | Bin 0 -> 413 bytes .../test_eos_transaction_sellram_ok/00006.png | Bin 0 -> 336 bytes .../test_eos_transaction_unknown_ok/00000.png | Bin 0 -> 382 bytes .../test_eos_transaction_unknown_ok/00001.png | Bin 0 -> 326 bytes .../test_eos_transaction_unknown_ok/00002.png | Bin 0 -> 390 bytes .../test_eos_transaction_unknown_ok/00003.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 349 bytes .../00003.png | Bin 0 -> 345 bytes .../00004.png | Bin 0 -> 317 bytes .../00005.png | Bin 0 -> 321 bytes .../00006.png | Bin 0 -> 413 bytes .../00007.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 359 bytes .../00003.png | Bin 0 -> 345 bytes .../00004.png | Bin 0 -> 317 bytes .../00005.png | Bin 0 -> 286 bytes .../00006.png | Bin 0 -> 263 bytes .../00007.png | Bin 0 -> 509 bytes .../00008.png | Bin 0 -> 344 bytes .../00009.png | Bin 0 -> 354 bytes .../00010.png | Bin 0 -> 350 bytes .../00011.png | Bin 0 -> 458 bytes .../00012.png | Bin 0 -> 350 bytes .../00013.png | Bin 0 -> 374 bytes .../00014.png | Bin 0 -> 355 bytes .../00015.png | Bin 0 -> 317 bytes .../00016.png | Bin 0 -> 355 bytes .../00017.png | Bin 0 -> 321 bytes .../00018.png | Bin 0 -> 363 bytes .../00019.png | Bin 0 -> 413 bytes .../00020.png | Bin 0 -> 336 bytes .../test_eos_transaction_vote_ok/00000.png | Bin 0 -> 382 bytes .../test_eos_transaction_vote_ok/00001.png | Bin 0 -> 331 bytes .../test_eos_transaction_vote_ok/00002.png | Bin 0 -> 366 bytes .../test_eos_transaction_vote_ok/00003.png | Bin 0 -> 345 bytes .../test_eos_transaction_vote_ok/00004.png | Bin 0 -> 380 bytes .../test_eos_transaction_vote_ok/00005.png | Bin 0 -> 396 bytes .../test_eos_transaction_vote_ok/00006.png | Bin 0 -> 384 bytes .../test_eos_transaction_vote_ok/00007.png | Bin 0 -> 388 bytes .../test_eos_transaction_vote_ok/00008.png | Bin 0 -> 381 bytes .../test_eos_transaction_vote_ok/00009.png | Bin 0 -> 371 bytes .../test_eos_transaction_vote_ok/00010.png | Bin 0 -> 377 bytes .../test_eos_transaction_vote_ok/00011.png | Bin 0 -> 402 bytes .../test_eos_transaction_vote_ok/00012.png | Bin 0 -> 376 bytes .../test_eos_transaction_vote_ok/00013.png | Bin 0 -> 380 bytes .../test_eos_transaction_vote_ok/00014.png | Bin 0 -> 367 bytes .../test_eos_transaction_vote_ok/00015.png | Bin 0 -> 368 bytes .../test_eos_transaction_vote_ok/00016.png | Bin 0 -> 387 bytes .../test_eos_transaction_vote_ok/00017.png | Bin 0 -> 391 bytes .../test_eos_transaction_vote_ok/00018.png | Bin 0 -> 404 bytes .../test_eos_transaction_vote_ok/00019.png | Bin 0 -> 406 bytes .../test_eos_transaction_vote_ok/00020.png | Bin 0 -> 383 bytes .../test_eos_transaction_vote_ok/00021.png | Bin 0 -> 407 bytes .../test_eos_transaction_vote_ok/00022.png | Bin 0 -> 369 bytes .../test_eos_transaction_vote_ok/00023.png | Bin 0 -> 390 bytes .../test_eos_transaction_vote_ok/00024.png | Bin 0 -> 410 bytes .../test_eos_transaction_vote_ok/00025.png | Bin 0 -> 386 bytes .../test_eos_transaction_vote_ok/00026.png | Bin 0 -> 420 bytes .../test_eos_transaction_vote_ok/00027.png | Bin 0 -> 398 bytes .../test_eos_transaction_vote_ok/00028.png | Bin 0 -> 384 bytes .../test_eos_transaction_vote_ok/00029.png | Bin 0 -> 362 bytes .../test_eos_transaction_vote_ok/00030.png | Bin 0 -> 395 bytes .../test_eos_transaction_vote_ok/00031.png | Bin 0 -> 406 bytes .../test_eos_transaction_vote_ok/00032.png | Bin 0 -> 425 bytes .../test_eos_transaction_vote_ok/00033.png | Bin 0 -> 413 bytes .../test_eos_transaction_vote_ok/00034.png | Bin 0 -> 336 bytes .../00000.png | Bin 0 -> 382 bytes .../00001.png | Bin 0 -> 331 bytes .../00002.png | Bin 0 -> 366 bytes .../00003.png | Bin 0 -> 345 bytes .../00004.png | Bin 0 -> 361 bytes .../00005.png | Bin 0 -> 413 bytes .../00006.png | Bin 0 -> 336 bytes .../test_eos_get_public_key_confirm/00000.png | Bin 0 -> 430 bytes .../test_eos_get_public_key_confirm/00001.png | Bin 0 -> 988 bytes .../test_eos_get_public_key_confirm/00002.png | Bin 0 -> 411 bytes .../test_eos_get_public_key_confirm/00003.png | Bin 0 -> 364 bytes .../test_eos_get_public_key_confirm/00004.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 430 bytes .../00001.png | Bin 0 -> 988 bytes .../00002.png | Bin 0 -> 411 bytes .../00003.png | Bin 0 -> 364 bytes .../00004.png | Bin 0 -> 365 bytes .../00005.png | Bin 0 -> 368 bytes .../test_eos_mainmenu_and_setting/00000.png | Bin 0 -> 368 bytes .../test_eos_mainmenu_and_setting/00001.png | Bin 0 -> 358 bytes .../test_eos_mainmenu_and_setting/00002.png | Bin 0 -> 379 bytes .../test_eos_mainmenu_and_setting/00003.png | Bin 0 -> 283 bytes .../test_eos_mainmenu_and_setting/00004.png | Bin 0 -> 379 bytes .../test_eos_mainmenu_and_setting/00005.png | Bin 0 -> 704 bytes .../test_eos_mainmenu_and_setting/00006.png | Bin 0 -> 660 bytes .../test_eos_mainmenu_and_setting/00007.png | Bin 0 -> 305 bytes .../test_eos_mainmenu_and_setting/00008.png | Bin 0 -> 368 bytes .../test_eos_transaction_buyram_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_buyram_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_buyram_ok/00002.png | Bin 0 -> 358 bytes .../test_eos_transaction_buyram_ok/00003.png | Bin 0 -> 399 bytes .../test_eos_transaction_buyram_ok/00004.png | Bin 0 -> 418 bytes .../test_eos_transaction_buyram_ok/00005.png | Bin 0 -> 378 bytes .../test_eos_transaction_buyram_ok/00006.png | Bin 0 -> 472 bytes .../test_eos_transaction_buyram_ok/00007.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 407 bytes .../00003.png | Bin 0 -> 399 bytes .../00004.png | Bin 0 -> 418 bytes .../00005.png | Bin 0 -> 341 bytes .../00006.png | Bin 0 -> 472 bytes .../00007.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 378 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 383 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 365 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 381 bytes .../00005.png | Bin 0 -> 380 bytes .../00006.png | Bin 0 -> 383 bytes .../00007.png | Bin 0 -> 472 bytes .../00008.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 345 bytes .../00002.png | Bin 0 -> 451 bytes .../00003.png | Bin 0 -> 431 bytes .../00004.png | Bin 0 -> 356 bytes .../00005.png | Bin 0 -> 370 bytes .../00006.png | Bin 0 -> 400 bytes .../00007.png | Bin 0 -> 377 bytes .../00008.png | Bin 0 -> 913 bytes .../00009.png | Bin 0 -> 916 bytes .../00010.png | Bin 0 -> 520 bytes .../00011.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 438 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 407 bytes .../00003.png | Bin 0 -> 399 bytes .../00004.png | Bin 0 -> 393 bytes .../00005.png | Bin 0 -> 345 bytes .../00006.png | Bin 0 -> 520 bytes .../00007.png | Bin 0 -> 439 bytes .../00008.png | Bin 0 -> 356 bytes .../00009.png | Bin 0 -> 405 bytes .../00010.png | Bin 0 -> 369 bytes .../00011.png | Bin 0 -> 393 bytes .../00012.png | Bin 0 -> 322 bytes .../00013.png | Bin 0 -> 303 bytes .../00014.png | Bin 0 -> 416 bytes .../00015.png | Bin 0 -> 472 bytes .../00016.png | Bin 0 -> 368 bytes .../nanosp/test_eos_transaction_ok/00000.png | Bin 0 -> 426 bytes .../nanosp/test_eos_transaction_ok/00001.png | Bin 0 -> 414 bytes .../nanosp/test_eos_transaction_ok/00002.png | Bin 0 -> 361 bytes .../nanosp/test_eos_transaction_ok/00003.png | Bin 0 -> 369 bytes .../nanosp/test_eos_transaction_ok/00004.png | Bin 0 -> 356 bytes .../nanosp/test_eos_transaction_ok/00005.png | Bin 0 -> 382 bytes .../nanosp/test_eos_transaction_ok/00006.png | Bin 0 -> 375 bytes .../nanosp/test_eos_transaction_ok/00007.png | Bin 0 -> 472 bytes .../nanosp/test_eos_transaction_ok/00008.png | Bin 0 -> 368 bytes .../test_eos_transaction_refund_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_refund_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_refund_ok/00002.png | Bin 0 -> 342 bytes .../test_eos_transaction_refund_ok/00003.png | Bin 0 -> 398 bytes .../test_eos_transaction_refund_ok/00004.png | Bin 0 -> 472 bytes .../test_eos_transaction_refund_ok/00005.png | Bin 0 -> 368 bytes .../test_eos_transaction_refused/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_refused/00001.png | Bin 0 -> 414 bytes .../test_eos_transaction_refused/00002.png | Bin 0 -> 361 bytes .../test_eos_transaction_refused/00003.png | Bin 0 -> 369 bytes .../test_eos_transaction_refused/00004.png | Bin 0 -> 356 bytes .../test_eos_transaction_refused/00005.png | Bin 0 -> 382 bytes .../test_eos_transaction_refused/00006.png | Bin 0 -> 375 bytes .../test_eos_transaction_refused/00007.png | Bin 0 -> 472 bytes .../test_eos_transaction_refused/00008.png | Bin 0 -> 499 bytes .../test_eos_transaction_refused/00009.png | Bin 0 -> 368 bytes .../test_eos_transaction_sellram_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_sellram_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_sellram_ok/00002.png | Bin 0 -> 349 bytes .../test_eos_transaction_sellram_ok/00003.png | Bin 0 -> 418 bytes .../test_eos_transaction_sellram_ok/00004.png | Bin 0 -> 347 bytes .../test_eos_transaction_sellram_ok/00005.png | Bin 0 -> 472 bytes .../test_eos_transaction_sellram_ok/00006.png | Bin 0 -> 368 bytes .../test_eos_transaction_unknown_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_unknown_ok/00001.png | Bin 0 -> 347 bytes .../test_eos_transaction_unknown_ok/00002.png | Bin 0 -> 451 bytes .../test_eos_transaction_unknown_ok/00003.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 370 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 381 bytes .../00005.png | Bin 0 -> 380 bytes .../00006.png | Bin 0 -> 472 bytes .../00007.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 382 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 383 bytes .../00005.png | Bin 0 -> 340 bytes .../00006.png | Bin 0 -> 312 bytes .../00007.png | Bin 0 -> 888 bytes .../00008.png | Bin 0 -> 402 bytes .../00009.png | Bin 0 -> 409 bytes .../00010.png | Bin 0 -> 411 bytes .../00011.png | Bin 0 -> 504 bytes .../00012.png | Bin 0 -> 429 bytes .../00013.png | Bin 0 -> 444 bytes .../00014.png | Bin 0 -> 432 bytes .../00015.png | Bin 0 -> 347 bytes .../00016.png | Bin 0 -> 424 bytes .../00017.png | Bin 0 -> 364 bytes .../00018.png | Bin 0 -> 433 bytes .../00019.png | Bin 0 -> 472 bytes .../00020.png | Bin 0 -> 368 bytes .../test_eos_transaction_vote_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_vote_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_vote_ok/00002.png | Bin 0 -> 387 bytes .../test_eos_transaction_vote_ok/00003.png | Bin 0 -> 398 bytes .../test_eos_transaction_vote_ok/00004.png | Bin 0 -> 438 bytes .../test_eos_transaction_vote_ok/00005.png | Bin 0 -> 457 bytes .../test_eos_transaction_vote_ok/00006.png | Bin 0 -> 458 bytes .../test_eos_transaction_vote_ok/00007.png | Bin 0 -> 453 bytes .../test_eos_transaction_vote_ok/00008.png | Bin 0 -> 451 bytes .../test_eos_transaction_vote_ok/00009.png | Bin 0 -> 444 bytes .../test_eos_transaction_vote_ok/00010.png | Bin 0 -> 450 bytes .../test_eos_transaction_vote_ok/00011.png | Bin 0 -> 479 bytes .../test_eos_transaction_vote_ok/00012.png | Bin 0 -> 447 bytes .../test_eos_transaction_vote_ok/00013.png | Bin 0 -> 452 bytes .../test_eos_transaction_vote_ok/00014.png | Bin 0 -> 431 bytes .../test_eos_transaction_vote_ok/00015.png | Bin 0 -> 431 bytes .../test_eos_transaction_vote_ok/00016.png | Bin 0 -> 453 bytes .../test_eos_transaction_vote_ok/00017.png | Bin 0 -> 449 bytes .../test_eos_transaction_vote_ok/00018.png | Bin 0 -> 457 bytes .../test_eos_transaction_vote_ok/00019.png | Bin 0 -> 476 bytes .../test_eos_transaction_vote_ok/00020.png | Bin 0 -> 440 bytes .../test_eos_transaction_vote_ok/00021.png | Bin 0 -> 489 bytes .../test_eos_transaction_vote_ok/00022.png | Bin 0 -> 450 bytes .../test_eos_transaction_vote_ok/00023.png | Bin 0 -> 453 bytes .../test_eos_transaction_vote_ok/00024.png | Bin 0 -> 482 bytes .../test_eos_transaction_vote_ok/00025.png | Bin 0 -> 452 bytes .../test_eos_transaction_vote_ok/00026.png | Bin 0 -> 490 bytes .../test_eos_transaction_vote_ok/00027.png | Bin 0 -> 477 bytes .../test_eos_transaction_vote_ok/00028.png | Bin 0 -> 443 bytes .../test_eos_transaction_vote_ok/00029.png | Bin 0 -> 451 bytes .../test_eos_transaction_vote_ok/00030.png | Bin 0 -> 457 bytes .../test_eos_transaction_vote_ok/00031.png | Bin 0 -> 468 bytes .../test_eos_transaction_vote_ok/00032.png | Bin 0 -> 488 bytes .../test_eos_transaction_vote_ok/00033.png | Bin 0 -> 472 bytes .../test_eos_transaction_vote_ok/00034.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 387 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 407 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 368 bytes .../test_eos_get_public_key_confirm/00000.png | Bin 0 -> 430 bytes .../test_eos_get_public_key_confirm/00001.png | Bin 0 -> 988 bytes .../test_eos_get_public_key_confirm/00002.png | Bin 0 -> 411 bytes .../test_eos_get_public_key_confirm/00003.png | Bin 0 -> 364 bytes .../test_eos_get_public_key_confirm/00004.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 430 bytes .../00001.png | Bin 0 -> 988 bytes .../00002.png | Bin 0 -> 411 bytes .../00003.png | Bin 0 -> 364 bytes .../00004.png | Bin 0 -> 365 bytes .../00005.png | Bin 0 -> 368 bytes .../test_eos_mainmenu_and_setting/00000.png | Bin 0 -> 368 bytes .../test_eos_mainmenu_and_setting/00001.png | Bin 0 -> 358 bytes .../test_eos_mainmenu_and_setting/00002.png | Bin 0 -> 379 bytes .../test_eos_mainmenu_and_setting/00003.png | Bin 0 -> 283 bytes .../test_eos_mainmenu_and_setting/00004.png | Bin 0 -> 379 bytes .../test_eos_mainmenu_and_setting/00005.png | Bin 0 -> 704 bytes .../test_eos_mainmenu_and_setting/00006.png | Bin 0 -> 660 bytes .../test_eos_mainmenu_and_setting/00007.png | Bin 0 -> 305 bytes .../test_eos_mainmenu_and_setting/00008.png | Bin 0 -> 368 bytes .../test_eos_transaction_buyram_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_buyram_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_buyram_ok/00002.png | Bin 0 -> 358 bytes .../test_eos_transaction_buyram_ok/00003.png | Bin 0 -> 399 bytes .../test_eos_transaction_buyram_ok/00004.png | Bin 0 -> 418 bytes .../test_eos_transaction_buyram_ok/00005.png | Bin 0 -> 378 bytes .../test_eos_transaction_buyram_ok/00006.png | Bin 0 -> 472 bytes .../test_eos_transaction_buyram_ok/00007.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 407 bytes .../00003.png | Bin 0 -> 399 bytes .../00004.png | Bin 0 -> 418 bytes .../00005.png | Bin 0 -> 341 bytes .../00006.png | Bin 0 -> 472 bytes .../00007.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 378 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 383 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 365 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 381 bytes .../00005.png | Bin 0 -> 380 bytes .../00006.png | Bin 0 -> 383 bytes .../00007.png | Bin 0 -> 472 bytes .../00008.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 345 bytes .../00002.png | Bin 0 -> 451 bytes .../00003.png | Bin 0 -> 431 bytes .../00004.png | Bin 0 -> 356 bytes .../00005.png | Bin 0 -> 370 bytes .../00006.png | Bin 0 -> 400 bytes .../00007.png | Bin 0 -> 377 bytes .../00008.png | Bin 0 -> 913 bytes .../00009.png | Bin 0 -> 916 bytes .../00010.png | Bin 0 -> 520 bytes .../00011.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 438 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 407 bytes .../00003.png | Bin 0 -> 399 bytes .../00004.png | Bin 0 -> 393 bytes .../00005.png | Bin 0 -> 345 bytes .../00006.png | Bin 0 -> 520 bytes .../00007.png | Bin 0 -> 439 bytes .../00008.png | Bin 0 -> 356 bytes .../00009.png | Bin 0 -> 405 bytes .../00010.png | Bin 0 -> 369 bytes .../00011.png | Bin 0 -> 393 bytes .../00012.png | Bin 0 -> 322 bytes .../00013.png | Bin 0 -> 303 bytes .../00014.png | Bin 0 -> 416 bytes .../00015.png | Bin 0 -> 472 bytes .../00016.png | Bin 0 -> 368 bytes .../nanox/test_eos_transaction_ok/00000.png | Bin 0 -> 426 bytes .../nanox/test_eos_transaction_ok/00001.png | Bin 0 -> 414 bytes .../nanox/test_eos_transaction_ok/00002.png | Bin 0 -> 361 bytes .../nanox/test_eos_transaction_ok/00003.png | Bin 0 -> 369 bytes .../nanox/test_eos_transaction_ok/00004.png | Bin 0 -> 356 bytes .../nanox/test_eos_transaction_ok/00005.png | Bin 0 -> 382 bytes .../nanox/test_eos_transaction_ok/00006.png | Bin 0 -> 375 bytes .../nanox/test_eos_transaction_ok/00007.png | Bin 0 -> 472 bytes .../nanox/test_eos_transaction_ok/00008.png | Bin 0 -> 368 bytes .../test_eos_transaction_refund_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_refund_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_refund_ok/00002.png | Bin 0 -> 342 bytes .../test_eos_transaction_refund_ok/00003.png | Bin 0 -> 398 bytes .../test_eos_transaction_refund_ok/00004.png | Bin 0 -> 472 bytes .../test_eos_transaction_refund_ok/00005.png | Bin 0 -> 368 bytes .../test_eos_transaction_refused/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_refused/00001.png | Bin 0 -> 414 bytes .../test_eos_transaction_refused/00002.png | Bin 0 -> 361 bytes .../test_eos_transaction_refused/00003.png | Bin 0 -> 369 bytes .../test_eos_transaction_refused/00004.png | Bin 0 -> 356 bytes .../test_eos_transaction_refused/00005.png | Bin 0 -> 382 bytes .../test_eos_transaction_refused/00006.png | Bin 0 -> 375 bytes .../test_eos_transaction_refused/00007.png | Bin 0 -> 472 bytes .../test_eos_transaction_refused/00008.png | Bin 0 -> 499 bytes .../test_eos_transaction_refused/00009.png | Bin 0 -> 368 bytes .../test_eos_transaction_sellram_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_sellram_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_sellram_ok/00002.png | Bin 0 -> 349 bytes .../test_eos_transaction_sellram_ok/00003.png | Bin 0 -> 418 bytes .../test_eos_transaction_sellram_ok/00004.png | Bin 0 -> 347 bytes .../test_eos_transaction_sellram_ok/00005.png | Bin 0 -> 472 bytes .../test_eos_transaction_sellram_ok/00006.png | Bin 0 -> 368 bytes .../test_eos_transaction_unknown_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_unknown_ok/00001.png | Bin 0 -> 347 bytes .../test_eos_transaction_unknown_ok/00002.png | Bin 0 -> 451 bytes .../test_eos_transaction_unknown_ok/00003.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 370 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 381 bytes .../00005.png | Bin 0 -> 380 bytes .../00006.png | Bin 0 -> 472 bytes .../00007.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 382 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 383 bytes .../00005.png | Bin 0 -> 340 bytes .../00006.png | Bin 0 -> 312 bytes .../00007.png | Bin 0 -> 888 bytes .../00008.png | Bin 0 -> 402 bytes .../00009.png | Bin 0 -> 409 bytes .../00010.png | Bin 0 -> 411 bytes .../00011.png | Bin 0 -> 504 bytes .../00012.png | Bin 0 -> 429 bytes .../00013.png | Bin 0 -> 444 bytes .../00014.png | Bin 0 -> 432 bytes .../00015.png | Bin 0 -> 347 bytes .../00016.png | Bin 0 -> 424 bytes .../00017.png | Bin 0 -> 364 bytes .../00018.png | Bin 0 -> 433 bytes .../00019.png | Bin 0 -> 472 bytes .../00020.png | Bin 0 -> 368 bytes .../test_eos_transaction_vote_ok/00000.png | Bin 0 -> 426 bytes .../test_eos_transaction_vote_ok/00001.png | Bin 0 -> 356 bytes .../test_eos_transaction_vote_ok/00002.png | Bin 0 -> 387 bytes .../test_eos_transaction_vote_ok/00003.png | Bin 0 -> 398 bytes .../test_eos_transaction_vote_ok/00004.png | Bin 0 -> 438 bytes .../test_eos_transaction_vote_ok/00005.png | Bin 0 -> 457 bytes .../test_eos_transaction_vote_ok/00006.png | Bin 0 -> 458 bytes .../test_eos_transaction_vote_ok/00007.png | Bin 0 -> 453 bytes .../test_eos_transaction_vote_ok/00008.png | Bin 0 -> 451 bytes .../test_eos_transaction_vote_ok/00009.png | Bin 0 -> 444 bytes .../test_eos_transaction_vote_ok/00010.png | Bin 0 -> 450 bytes .../test_eos_transaction_vote_ok/00011.png | Bin 0 -> 479 bytes .../test_eos_transaction_vote_ok/00012.png | Bin 0 -> 447 bytes .../test_eos_transaction_vote_ok/00013.png | Bin 0 -> 452 bytes .../test_eos_transaction_vote_ok/00014.png | Bin 0 -> 431 bytes .../test_eos_transaction_vote_ok/00015.png | Bin 0 -> 431 bytes .../test_eos_transaction_vote_ok/00016.png | Bin 0 -> 453 bytes .../test_eos_transaction_vote_ok/00017.png | Bin 0 -> 449 bytes .../test_eos_transaction_vote_ok/00018.png | Bin 0 -> 457 bytes .../test_eos_transaction_vote_ok/00019.png | Bin 0 -> 476 bytes .../test_eos_transaction_vote_ok/00020.png | Bin 0 -> 440 bytes .../test_eos_transaction_vote_ok/00021.png | Bin 0 -> 489 bytes .../test_eos_transaction_vote_ok/00022.png | Bin 0 -> 450 bytes .../test_eos_transaction_vote_ok/00023.png | Bin 0 -> 453 bytes .../test_eos_transaction_vote_ok/00024.png | Bin 0 -> 482 bytes .../test_eos_transaction_vote_ok/00025.png | Bin 0 -> 452 bytes .../test_eos_transaction_vote_ok/00026.png | Bin 0 -> 490 bytes .../test_eos_transaction_vote_ok/00027.png | Bin 0 -> 477 bytes .../test_eos_transaction_vote_ok/00028.png | Bin 0 -> 443 bytes .../test_eos_transaction_vote_ok/00029.png | Bin 0 -> 451 bytes .../test_eos_transaction_vote_ok/00030.png | Bin 0 -> 457 bytes .../test_eos_transaction_vote_ok/00031.png | Bin 0 -> 468 bytes .../test_eos_transaction_vote_ok/00032.png | Bin 0 -> 488 bytes .../test_eos_transaction_vote_ok/00033.png | Bin 0 -> 472 bytes .../test_eos_transaction_vote_ok/00034.png | Bin 0 -> 368 bytes .../00000.png | Bin 0 -> 426 bytes .../00001.png | Bin 0 -> 356 bytes .../00002.png | Bin 0 -> 387 bytes .../00003.png | Bin 0 -> 398 bytes .../00004.png | Bin 0 -> 407 bytes .../00005.png | Bin 0 -> 472 bytes .../00006.png | Bin 0 -> 368 bytes tests/functional/test_eos.py | 263 ++++++++++ tests/get_public_key.py | 44 ++ tests/sign_transaction.py | 48 ++ 598 files changed, 1117 insertions(+), 804 deletions(-) create mode 100755 fuzz/generate_fuzz_ref_corpus.py delete mode 100644 test/eosBase.py delete mode 100644 test/generate_corpus.py delete mode 100644 test/getPublicKey.py delete mode 100644 test/signTransaction.py delete mode 100644 test/testDerivationPathGeneration.py create mode 100644 tests/.gitignore rename {test => tests/corpus}/transaction.json (100%) rename {test => tests/corpus}/transaction_buyram.json (100%) rename {test => tests/corpus}/transaction_buyrambytes.json (100%) rename {test => tests/corpus}/transaction_deleteauth.json (100%) rename {test => tests/corpus}/transaction_linkauth.json (100%) rename {test => tests/corpus}/transaction_newaccount.json (100%) rename {test => tests/corpus}/transaction_refund.json (100%) rename {test => tests/corpus}/transaction_sellram.json (100%) rename {test => tests/corpus}/transaction_unknown.json (100%) rename {test => tests/corpus}/transaction_unlinkauth.json (100%) rename {test => tests/corpus}/transaction_updateauth.json (100%) rename {test => tests/corpus}/transaction_vote.json (100%) rename {test => tests/corpus}/transaction_vote_proxy.json (100%) rename {test => tests}/decodeTransaction.py (100%) create mode 100644 tests/functional/apps/__init__.py create mode 100644 tests/functional/apps/eos.py create mode 100644 tests/functional/apps/eos_transaction_builder.py create mode 100644 tests/functional/conftest.py create mode 100644 tests/functional/requirements.txt create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00009.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00010.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00011.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00009.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00010.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00011.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00012.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00013.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00014.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00015.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00016.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_ok/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_refused/00009.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00009.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00010.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00011.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00012.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00013.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00014.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00015.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00016.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00017.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00018.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00019.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00020.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00006.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00007.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00008.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00009.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00010.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00011.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00012.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00013.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00014.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00015.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00016.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00017.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00018.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00019.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00020.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00021.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00022.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00023.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00024.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00025.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00026.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00027.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00028.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00029.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00030.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00031.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00032.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00033.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00034.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00000.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00001.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00002.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00003.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00004.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00005.png create mode 100644 tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00009.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00010.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00011.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00009.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00010.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00011.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00012.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00013.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00014.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00015.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00016.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_ok/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_refused/00009.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00009.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00010.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00011.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00012.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00013.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00014.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00015.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00016.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00017.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00018.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00019.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00020.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00006.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00007.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00008.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00009.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00010.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00011.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00012.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00013.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00014.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00015.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00016.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00017.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00018.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00019.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00020.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00021.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00022.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00023.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00024.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00025.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00026.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00027.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00028.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00029.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00030.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00031.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00032.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00033.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00034.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00000.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00001.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00002.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00003.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00004.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00005.png create mode 100644 tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00009.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00010.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00011.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00009.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00010.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00011.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00012.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00013.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00014.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00015.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00016.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_ok/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_refused/00009.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00009.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00010.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00011.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00012.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00013.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00014.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00015.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00016.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00017.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00018.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00019.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00020.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00006.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00007.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00008.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00009.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00010.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00011.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00012.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00013.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00014.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00015.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00016.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00017.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00018.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00019.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00020.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00021.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00022.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00023.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00024.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00025.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00026.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00027.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00028.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00029.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00030.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00031.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00032.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00033.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00034.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00000.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00001.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00002.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00003.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00004.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00005.png create mode 100644 tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00006.png create mode 100644 tests/functional/test_eos.py create mode 100755 tests/get_public_key.py create mode 100755 tests/sign_transaction.py diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index e986a64..fbe8838 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -7,74 +7,84 @@ on: - master - develop pull_request: - branches: - - master - - develop jobs: - nanos-build: - name: Build app for NanoS - runs-on: ubuntu-latest - container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest - steps: - - name: Clone - uses: actions/checkout@v2 - - name: Build - run: make - - name: Upload app binary - uses: actions/upload-artifact@v2 - with: - name: nanos-app - path: bin + build_application: + strategy: + matrix: + sdk: + - path: $NANOS_SDK + name: nanos + - path: $NANOX_SDK + name: nanox + - path: $NANOSP_SDK + name: nanosp - nanox-build: - name: Build app for NanoX runs-on: ubuntu-latest - container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest - steps: - - name: Clone - uses: actions/checkout@v2 - - name: Build - run: | - make BOLOS_SDK=$NANOX_SDK - - name: Upload app binary - uses: actions/upload-artifact@v2 - with: - name: nanox-app - path: bin - nanosp-build: - name: Build app for NanoS+ - runs-on: ubuntu-latest container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest + image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest + steps: - name: Clone - uses: actions/checkout@v2 - - name: Build + uses: actions/checkout@v3 + + - name: Build application run: | - make BOLOS_SDK=$NANOSP_SDK - - name: Upload app binary - uses: actions/upload-artifact@v2 + make BOLOS_SDK=${{ matrix.sdk.path }} DEBUG=1 + cp bin/app.elf bin/eos_${{ matrix.sdk.name }}.elf + + - name: Upload application binaries + uses: actions/upload-artifact@v3 with: - name: nanosp-app - path: bin + name: solana_binaries + path: ./bin/eos_${{ matrix.sdk.name }}.elf + if-no-files-found: error - scan_build: + job_scan_build: name: Clang Static Analyzer + needs: build_application runs-on: ubuntu-latest container: - image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest + image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest steps: - - uses: actions/checkout@v2 + - name: Clone + uses: actions/checkout@v3 + - name: Build with Clang Static Analyzer run: | make clean scan-build --use-cc=clang -analyze-headers -enable-checker security -enable-checker unix -enable-checker valist -o scan-build --status-bugs make default - - uses: actions/upload-artifact@v2 + + - name: Upload scan results + uses: actions/upload-artifact@v3 if: failure() with: name: scan-build path: scan-build + + functional_tests: + name: Functional tests + needs: build_application + runs-on: ubuntu-latest + steps: + - name: Clone + uses: actions/checkout@v3 + + - name: Download all binaries + uses: actions/download-artifact@v3 + + - name: Gather artifacts + run: | + mkdir tests/elfs + mv *_binaries/*.elf tests/elfs + + - name: Install APT dependencies + run: sudo apt-get update && sudo apt-get install -y qemu-user-static + + - name: Install requirements + run: | + pip install --extra-index-url https://test.pypi.org/simple/ -r tests/functional/requirements.txt + + - name: Run tests + run: pytest tests/functional/ -v diff --git a/fuzz/generate_fuzz_ref_corpus.py b/fuzz/generate_fuzz_ref_corpus.py new file mode 100755 index 0000000..6588bb6 --- /dev/null +++ b/fuzz/generate_fuzz_ref_corpus.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +import sys +import json +import argparse + +from pathlib import Path + +REPO_ROOT_DIRECTORY = Path(__file__).parent +EOS_LIB_DIRECTORY = (REPO_ROOT_DIRECTORY / "../tests/functional/apps").resolve().as_posix() +sys.path.append(EOS_LIB_DIRECTORY) +from eos_transaction_builder import Transaction + +parser = argparse.ArgumentParser() +parser.add_argument('--file', help="Transaction in JSON format") +args = parser.parse_args() + +if args.file is None: + args.file = '../tests/corpus/transaction.json' + +with open(args.file) as f: + obj = json.load(f) +signing_digest, message = Transaction().encode(obj) + +with open(args.file.replace(".json", ".bin"), 'wb') as out: + out.write(message) diff --git a/test/eosBase.py b/test/eosBase.py deleted file mode 100644 index b41c6e0..0000000 --- a/test/eosBase.py +++ /dev/null @@ -1,487 +0,0 @@ -#!/usr/bin/env python -""" -/******************************************************************************* -* Taras Shchybovyk -* (c) 2018 Taras Shchybovyk -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ -""" -from __future__ import print_function - -from asn1 import Encoder, Numbers -from datetime import datetime -import struct -import binascii -from base58 import b58decode -import hashlib - -import sys -sys.dont_write_bytecode = True - -def parse_bip32_path(path): - if len(path) == 0: - return b"" - result = b"" - elements = path.split('/') - for pathElement in elements: - element = pathElement.split('\'') - if len(element) == 1: - result = result + struct.pack(">I", int(element[0])) - else: - result = result + struct.pack(">I", 0x80000000 | int(element[0])) - return result - -class Action: - def __init__(self): - pass - - -class Transaction: - def __init__(self): - pass - - @staticmethod - def char_to_symbol(c): - if c >= 'a' and c <= 'z': - return ord(c) - ord('a') + 6 - if c >= '1' and c <= '5': - return ord(c) - ord('1') + 1 - return 0 - - @staticmethod - def name_to_number(name): - length = len(name) - value = 0 - - for i in range(0, 13): - c = 0 - if i < length and i < 13: - c = Transaction.char_to_symbol(name[i]) - - if i < 12: - c &= 0x1f - c <<= 64 - 5 * (i + 1) - else: - c &= 0x0f - - value |= c - - return struct.pack('Q', value) - - @staticmethod - def symbol_from_string(p, name): - length = len(name) - result = 0 - for i in range(0, length): - result |= ord(name[i]) << (8 *(i+1)) - - result |= p - return result - - @staticmethod - def symbol_precision(sym): - return pow(10, (sym & 0xff)) - - @staticmethod - def asset_to_number(asset): - amount_str, symol_str = asset.split(' ') - dot_pos = amount_str.find('.') - - # parse symbol - if dot_pos != -1: - precision_digit = len(amount_str) - dot_pos - 1 - else: - precision_digit = 0 - - sym = Transaction.symbol_from_string(precision_digit, symol_str) - - # parse amount - if dot_pos != -1: - int_part = int(amount_str[:dot_pos]) - fract_part = int(amount_str[dot_pos+1:]) - if int_part < 0: - fract_part *= -1 - else: - int_part = int(amount_str) - - amount = int_part - amount *= Transaction.symbol_precision(sym) - amount += fract_part - - data = struct.pack('Q', amount) - data += struct.pack('Q', sym) - return data - - @staticmethod - def parse_transfer(data): - parameters = Transaction.name_to_number(data['from']) - parameters += Transaction.name_to_number(data['to']) - parameters += Transaction.asset_to_number(data['quantity']) - memo = data['memo'] - parameters += Transaction.pack_fc_uint(len(memo)) - if len(memo) > 0: - length = '{}s'.format(len(memo)) - parameters += struct.pack(length, data['memo'].encode()) - - return parameters - - @staticmethod - def pack_fc_uint(value): - out = b'' - val = value - while True: - b = val & 0x7f - val >>= 7 - b |= ((val > 0) << 7) - out += chr(b).encode() - - if val == 0: - break - - return out - - @staticmethod - def unpack_fc_uint(buffer): - i = 0 - v = 0 - b = 0 - by = 0 - - k = 0 - while True: - b = ord(buffer[k]) - k += 1 - i += 1 - v |= (b & 0x7f) << by - by += 7 - - if (b & 0x80) == 0 or by >= 32: - break - - return v - - @staticmethod - def parse_vote_producer(data): - parameters = Transaction.name_to_number(data['account']) - parameters += Transaction.name_to_number(data['proxy']) - parameters += Transaction.pack_fc_uint(len(data['producers'])) - for producer in data['producers']: - parameters += Transaction.name_to_number(producer) - - return parameters - - @staticmethod - def parse_buy_ram(data): - parameters = Transaction.name_to_number(data['buyer']) - parameters += Transaction.name_to_number(data['receiver']) - parameters += Transaction.asset_to_number(data['tokens']) - return parameters - - @staticmethod - def parse_buy_rambytes(data): - parameters = Transaction.name_to_number(data['buyer']) - parameters += Transaction.name_to_number(data['receiver']) - parameters += struct.pack('I', data['bytes']) - return parameters - - @staticmethod - def parse_sell_ram(data): - parameters = Transaction.name_to_number(data['receiver']) - parameters += struct.pack('Q', data['bytes']) - return parameters - - @staticmethod - def parse_public_key(data): - data = str(data[3:]) - decoded = b58decode(data) - decoded = decoded[:-4] - parameters = struct.pack('B', 0) - parameters += decoded - return parameters - - @staticmethod - def parse_auth(data): - parameters = struct.pack('I', data['threshold']) - key_number = len(data['keys']) - parameters += struct.pack('B', key_number) - for key in data['keys']: - parameters += Transaction.parse_public_key(key['key']) - parameters += struct.pack('H', key['weight']) - parameters += struct.pack('B', len(data['accounts'])) - for account in data['accounts']: - parameters += Transaction.name_to_number(account['authorization']['actor']) - parameters += Transaction.name_to_number(account['authorization']['permission']) - parameters += struct.pack('H', account['weight']) - parameters += struct.pack('B', len(data['waits'])) - for wait in data['waits']: - parameters += struct.pack('I', wait['wait']) - parameters += struct.pack('H', wait['weight']) - return parameters - - @staticmethod - def parse_update_auth(data): - parameters = Transaction.name_to_number(data['account']) - parameters += Transaction.name_to_number(data['permission']) - parameters += Transaction.name_to_number(data['parent']) - parameters += Transaction.parse_auth(data['auth']) - return parameters - - @staticmethod - def parse_delete_auth(data): - parameters = Transaction.name_to_number(data['account']) - parameters += Transaction.name_to_number(data['permission']) - return parameters - - @staticmethod - def parse_refund(data): - return Transaction.name_to_number(data['account']) - - @staticmethod - def parse_link_auth(data): - parameters = Transaction.name_to_number(data['account']) - parameters += Transaction.name_to_number(data['contract']) - parameters += Transaction.name_to_number(data['action']) - parameters += Transaction.name_to_number(data['permission']) - return parameters - - @staticmethod - def parse_unlink_auth(data): - parameters = Transaction.name_to_number(data['account']) - parameters += Transaction.name_to_number(data['contract']) - parameters += Transaction.name_to_number(data['action']) - return parameters - - @staticmethod - def parse_newaccount(data): - parameters = Transaction.name_to_number(data['creator']) - parameters += Transaction.name_to_number(data['newact']) - parameters += Transaction.parse_auth(data['owner']) - parameters += Transaction.parse_auth(data['active']) - return parameters - - @staticmethod - def parse_delegate(data): - parameters = Transaction.name_to_number(data['from']) - parameters += Transaction.name_to_number(data['to']) - parameters += Transaction.asset_to_number(data['stake_net_quantity']) - parameters += Transaction.asset_to_number(data['stake_cpu_quantity']) - parameters += bytes([0x01]) if data['transfer'] else bytes([0x00]) - return parameters - - @staticmethod - def parse_unknown(data): - data = data * 1000 - length = '{}s'.format(len(data)) - parameters = struct.pack(length, data.encode()) - return parameters - - @staticmethod - def parse(json): - tx = Transaction() - tx.json = json - - tx.chain_id = binascii.unhexlify(json['chain_id']) - - body = json['transaction'] - - expiration = int(datetime.strptime(body['expiration'], '%Y-%m-%dT%H:%M:%S').strftime("%s")) - tx.expiration = struct.pack('I', expiration) - tx.ref_block_num = struct.pack('H', body['ref_block_num']) - tx.ref_block_prefix = struct.pack('I', body['ref_block_prefix']) - tx.net_usage_words = struct.pack('B', body['net_usage_words']) - tx.max_cpu_usage_ms = struct.pack('B', body['max_cpu_usage_ms']) - tx.delay_sec = struct.pack('B', body['delay_sec']) - - tx.ctx_free_actions_size = struct.pack('B', len(body['context_free_actions'])) - tx.actions_size = struct.pack('B', len(body['actions'])) - - tx.actions = [] - for action in body['actions']: - act = Action() - act.account = Transaction.name_to_number(action['account']) - act.name = Transaction.name_to_number(action['name']) - - act.auth_size = struct.pack('B', len(action['authorization'])) - act.auth = [] - for auth in action['authorization']: - act.auth.append((Transaction.name_to_number(auth['actor']), Transaction.name_to_number(auth['permission']))) - - data = action['data'] - if action['name'] == 'transfer': - parameters = Transaction.parse_transfer(data) - elif action['name'] == 'voteproducer': - parameters = Transaction.parse_vote_producer(data) - elif action['name'] == 'buyram': - parameters = Transaction.parse_buy_ram(data) - elif action['name'] == 'buyrambytes': - parameters = Transaction.parse_buy_rambytes(data) - elif action['name'] == 'sellram': - parameters = Transaction.parse_sell_ram(data) - elif action['name'] == 'updateauth': - parameters = Transaction.parse_update_auth(data) - elif action['name'] == 'deleteauth': - parameters = Transaction.parse_delete_auth(data) - elif action['name'] == 'refund': - parameters = Transaction.parse_refund(data) - elif action['name'] == 'linkauth': - parameters = Transaction.parse_link_auth(data) - elif action['name'] == 'unlinkauth': - parameters = Transaction.parse_unlink_auth(data) - elif action['name'] == 'newaccount': - parameters = Transaction.parse_newaccount(data) - elif action['name'] == 'delegatebw': - parameters = Transaction.parse_delegate(data) - else: - parameters = Transaction.parse_unknown(data) - - act.data_size = Transaction.pack_fc_uint(len(parameters)) - act.data = parameters - - tx.actions.append(act) - - tx.tx_ext = struct.pack('B', len(body['transaction_extensions'])) - tx.cfd = binascii.unhexlify('00' * 32) - - for action in tx.actions: - sha = hashlib.sha256() - sha.update(action.data_size) - sha.update(action.data) - print('Argument checksum ' + sha.hexdigest()) - - return tx - - def encode(self): - encoder = Encoder() - sha = hashlib.sha256() - - sha.update(self.chain_id) - sha.update(self.expiration) - sha.update(self.ref_block_num) - sha.update(self.ref_block_prefix) - sha.update(self.net_usage_words) - sha.update(self.max_cpu_usage_ms) - sha.update(self.delay_sec) - sha.update(self.ctx_free_actions_size) - sha.update(self.actions_size) - for action in self.actions: - sha.update(action.account) - sha.update(action.name) - sha.update(action.auth_size) - for auth in action.auth: - (auth_actor, permission) = auth - sha.update(auth_actor) - sha.update(permission) - - sha.update(action.data_size) - sha.update(action.data) - sha.update(self.tx_ext) - sha.update(self.cfd) - - print('Signing digest ' + sha.hexdigest()) - - chunks = [] - - encoder.start() - encoder.write(self.chain_id, Numbers.OctetString) - encoder.write(self.expiration, Numbers.OctetString) - encoder.write(self.ref_block_num, Numbers.OctetString) - encoder.write(self.ref_block_prefix, Numbers.OctetString) - encoder.write(self.net_usage_words, Numbers.OctetString) - encoder.write(self.max_cpu_usage_ms, Numbers.OctetString) - encoder.write(self.delay_sec, Numbers.OctetString) - - encoder.write(self.ctx_free_actions_size, Numbers.OctetString) - encoder.write(self.actions_size, Numbers.OctetString) - - chunks.append(encoder.output()) - - for action in self.actions: - encoder.start() - - encoder.write(action.account, Numbers.OctetString) - encoder.write(action.name, Numbers.OctetString) - encoder.write(action.auth_size, Numbers.OctetString) - for auth in action.auth: - (auth_actor, permission) = auth - encoder.write(auth_actor, Numbers.OctetString) - encoder.write(permission, Numbers.OctetString) - encoder.write(action.data_size, Numbers.OctetString) - encoder.write(action.data, Numbers.OctetString) - - chunks.append(encoder.output()) - - encoder.start() - - encoder.write(self.tx_ext, Numbers.OctetString) - encoder.write(self.cfd, Numbers.OctetString) - - chunks.append(encoder.output()) - - return chunks - - - def encode2(self): - encoder = Encoder() - sha = hashlib.sha256() - - sha.update(self.chain_id) - sha.update(self.expiration) - sha.update(self.ref_block_num) - sha.update(self.ref_block_prefix) - sha.update(self.net_usage_words) - sha.update(self.max_cpu_usage_ms) - sha.update(self.delay_sec) - sha.update(self.ctx_free_actions_size) - sha.update(self.actions_size) - for action in self.actions: - sha.update(action.account) - sha.update(action.name) - sha.update(action.auth_size) - for auth in action.auth: - (auth_actor, permission) = auth - sha.update(auth_actor) - sha.update(permission) - - sha.update(action.data_size) - sha.update(action.data) - sha.update(self.tx_ext) - sha.update(self.cfd) - - print('Signing digest ' + sha.hexdigest()) - - encoder.start() - encoder.write(self.chain_id, Numbers.OctetString) - encoder.write(self.expiration, Numbers.OctetString) - encoder.write(self.ref_block_num, Numbers.OctetString) - encoder.write(self.ref_block_prefix, Numbers.OctetString) - encoder.write(self.net_usage_words, Numbers.OctetString) - encoder.write(self.max_cpu_usage_ms, Numbers.OctetString) - encoder.write(self.delay_sec, Numbers.OctetString) - - encoder.write(self.ctx_free_actions_size, Numbers.OctetString) - encoder.write(self.actions_size, Numbers.OctetString) - for action in self.actions: - encoder.write(action.account, Numbers.OctetString) - encoder.write(action.name, Numbers.OctetString) - encoder.write(action.auth_size, Numbers.OctetString) - for auth in action.auth: - (auth_actor, permission) = auth - encoder.write(auth_actor, Numbers.OctetString) - encoder.write(permission, Numbers.OctetString) - encoder.write(action.data_size, Numbers.OctetString) - encoder.write(action.data, Numbers.OctetString) - encoder.write(self.tx_ext, Numbers.OctetString) - encoder.write(self.cfd, Numbers.OctetString) - - return [encoder.output()] \ No newline at end of file diff --git a/test/generate_corpus.py b/test/generate_corpus.py deleted file mode 100644 index 8bec189..0000000 --- a/test/generate_corpus.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python - -## This is based on test/signTransaction.py -""" -/******************************************************************************* -* Taras Shchybovyk -* (c) 2018 Taras Shchybovyk -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ -""" - -import binascii -import json -import struct -from eosBase import Transaction, parse_bip32_path -import argparse - - -parser = argparse.ArgumentParser() -parser.add_argument('--path', help="BIP 32 path to retrieve") -parser.add_argument('--file', help="Transaction in JSON format") -args = parser.parse_args() - -if args.path is None: - args.path = "44'/194'/0'/0/0" - -if args.file is None: - args.file = 'transaction.json' - -donglePath = parse_bip32_path(args.path) -pathSize = len(donglePath) // 4 - -from glob import glob - -files = glob('*.json') -for file in files: - f = open(file) - obj = json.load(f) - tx = Transaction.parse(obj) - tx_chunks = tx.encode2() - - first = True - command = b'' - for tx_chunk in tx_chunks: - - offset = 0 - singSize = len(tx_chunk) - sliceSize = 150 - while offset != singSize: - if singSize - offset > sliceSize: - transport_chunk = tx_chunk[offset: offset + sliceSize] - else: - transport_chunk = tx_chunk[offset:] - - if first: - totalSize = len(donglePath) + 1 + len(transport_chunk) - apdu = bytearray.fromhex("D4040000") + bytes([totalSize, pathSize]) + donglePath + transport_chunk - first = False - else: - totalSize = len(transport_chunk) - apdu = bytearray.fromhex("D4048000") + bytes([totalSize]) + transport_chunk - - offset += len(transport_chunk) - command += transport_chunk - - with open("../fuzz/ref_corpus/"+file[:-5], 'wb') as out: - out.write(command) \ No newline at end of file diff --git a/test/getPublicKey.py b/test/getPublicKey.py deleted file mode 100644 index adb1709..0000000 --- a/test/getPublicKey.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python -""" -/******************************************************************************* -* Taras Shchybovyk -* (c) 2018 Taras Shchybovyk -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ -""" -from __future__ import print_function - -from ledgerblue.comm import getDongle -import argparse -import struct -from base58 import b58encode -import hashlib -import binascii -from eosBase import parse_bip32_path - - -parser = argparse.ArgumentParser() -parser.add_argument('--path', help="BIP 32 path to retrieve") -args = parser.parse_args() - -if args.path is None: - args.path = "44'/194'/0'/0/0" - -donglePath = parse_bip32_path(args.path) -apdu = bytearray.fromhex("D4020001") + bytes([len(donglePath) + 1, len(donglePath) // 4]) + donglePath - -dongle = getDongle(True) -result = dongle.exchange(bytes(apdu)) -offset = 1 + result[0] -address = result[offset + 1: offset + 1 + result[offset]] - -public_key = result[1: 1 + result[0]] -head = 0x03 if (public_key[64] & 0x01) == 1 else 0x02 -public_key_compressed = bytearray([head]) + public_key[1:33] - -print(" Public key", binascii.hexlify(public_key)) -print("Public key compressed", binascii.hexlify(public_key_compressed)) - -ripemd = hashlib.new('ripemd160') -ripemd.update(public_key_compressed) -check = ripemd.digest()[:4] - -buff = public_key_compressed + check -print("Calculated from public key: Address EOS" + b58encode(buff).decode()) -print(" Received from ledger: Address", address.decode()) - -apdu = bytearray.fromhex("D4020101") + bytes([len(donglePath) + 1, len(donglePath) // 4]) + donglePath -result = dongle.exchange(bytes(apdu)) \ No newline at end of file diff --git a/test/signTransaction.py b/test/signTransaction.py deleted file mode 100644 index eca8869..0000000 --- a/test/signTransaction.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env python -""" -/******************************************************************************* -* Taras Shchybovyk -* (c) 2018 Taras Shchybovyk -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ -""" - -import binascii -import json -import struct -from eosBase import Transaction, parse_bip32_path -from ledgerblue.comm import getDongle -import argparse - - -parser = argparse.ArgumentParser() -parser.add_argument('--path', help="BIP 32 path to retrieve") -parser.add_argument('--file', help="Transaction in JSON format") -args = parser.parse_args() - -if args.path is None: - args.path = "44'/194'/0'/0/0" - -if args.file is None: - args.file = 'transaction.json' - -donglePath = parse_bip32_path(args.path) -pathSize = len(donglePath) // 4 - -with open(args.file) as f: - obj = json.load(f) - tx = Transaction.parse(obj) - tx_chunks = tx.encode2() - - first = True - dongle = getDongle(True) - for tx_chunk in tx_chunks: - - offset = 0 - singSize = len(tx_chunk) - sliceSize = 150 - while offset != singSize: - if singSize - offset > sliceSize: - transport_chunk = tx_chunk[offset: offset + sliceSize] - else: - transport_chunk = tx_chunk[offset:] - - if first: - totalSize = len(donglePath) + 1 + len(transport_chunk) - apdu = bytearray.fromhex("D4040000") + bytes([totalSize, pathSize]) + donglePath + transport_chunk - first = False - else: - totalSize = len(transport_chunk) - apdu = bytearray.fromhex("D4048000") + bytes([totalSize]) + transport_chunk - - offset += len(transport_chunk) - result = dongle.exchange(bytes(apdu)) - print(binascii.hexlify(result)) \ No newline at end of file diff --git a/test/testDerivationPathGeneration.py b/test/testDerivationPathGeneration.py deleted file mode 100644 index f130b63..0000000 --- a/test/testDerivationPathGeneration.py +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env python -""" -/******************************************************************************* -* Taras Shchybovyk -* (c) 2018 Taras Shchybovyk -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -********************************************************************************/ -""" -from __future__ import print_function - -from ledgerblue.comm import getDongle -import struct -from base58 import b58encode -import hashlib -import binascii -from eosBase import parse_bip32_path - - -dongle = getDongle(False) -path = "44'/194'/0'/0/" -for i in range(0, 20): - derPath = path + str(i) - print("------------- {} -------------".format(derPath)) - - donglePath = parse_bip32_path(derPath) - apdu = bytearray.fromhex("D4020001") + bytes([len(donglePath) + 1, len(donglePath) // 4]) + donglePath - - result = dongle.exchange(bytes(apdu)) - offset = 1 + result[0] - address = result[offset + 1: offset + 1 + result[offset]] - - public_key = result[1: 1 + result[0]] - head = 0x03 if (public_key[64] & 0x01) == 1 else 0x02 - public_key_compressed = bytearray([head]) + public_key[1:33] - - print(" Public key:", binascii.hexlify(public_key)) - print("Public key compressed:", binascii.hexlify(public_key_compressed)) - - ripemd = hashlib.new('ripemd160') - ripemd.update(public_key_compressed) - check = ripemd.digest()[:4] - - buff = public_key_compressed + check - wif_public_key = "EOS" + b58encode(buff).decode() - print("Calculated from public key: Address " + wif_public_key) - print(" Received from ledger: Address " + address.decode()) - assert wif_public_key == address.decode() diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..05bc45b --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,2 @@ +/elfs/ +/functional/snapshots-tmp/ diff --git a/test/transaction.json b/tests/corpus/transaction.json similarity index 100% rename from test/transaction.json rename to tests/corpus/transaction.json diff --git a/test/transaction_buyram.json b/tests/corpus/transaction_buyram.json similarity index 100% rename from test/transaction_buyram.json rename to tests/corpus/transaction_buyram.json diff --git a/test/transaction_buyrambytes.json b/tests/corpus/transaction_buyrambytes.json similarity index 100% rename from test/transaction_buyrambytes.json rename to tests/corpus/transaction_buyrambytes.json diff --git a/test/transaction_deleteauth.json b/tests/corpus/transaction_deleteauth.json similarity index 100% rename from test/transaction_deleteauth.json rename to tests/corpus/transaction_deleteauth.json diff --git a/test/transaction_linkauth.json b/tests/corpus/transaction_linkauth.json similarity index 100% rename from test/transaction_linkauth.json rename to tests/corpus/transaction_linkauth.json diff --git a/test/transaction_newaccount.json b/tests/corpus/transaction_newaccount.json similarity index 100% rename from test/transaction_newaccount.json rename to tests/corpus/transaction_newaccount.json diff --git a/test/transaction_refund.json b/tests/corpus/transaction_refund.json similarity index 100% rename from test/transaction_refund.json rename to tests/corpus/transaction_refund.json diff --git a/test/transaction_sellram.json b/tests/corpus/transaction_sellram.json similarity index 100% rename from test/transaction_sellram.json rename to tests/corpus/transaction_sellram.json diff --git a/test/transaction_unknown.json b/tests/corpus/transaction_unknown.json similarity index 100% rename from test/transaction_unknown.json rename to tests/corpus/transaction_unknown.json diff --git a/test/transaction_unlinkauth.json b/tests/corpus/transaction_unlinkauth.json similarity index 100% rename from test/transaction_unlinkauth.json rename to tests/corpus/transaction_unlinkauth.json diff --git a/test/transaction_updateauth.json b/tests/corpus/transaction_updateauth.json similarity index 100% rename from test/transaction_updateauth.json rename to tests/corpus/transaction_updateauth.json diff --git a/test/transaction_vote.json b/tests/corpus/transaction_vote.json similarity index 100% rename from test/transaction_vote.json rename to tests/corpus/transaction_vote.json diff --git a/test/transaction_vote_proxy.json b/tests/corpus/transaction_vote_proxy.json similarity index 100% rename from test/transaction_vote_proxy.json rename to tests/corpus/transaction_vote_proxy.json diff --git a/test/decodeTransaction.py b/tests/decodeTransaction.py similarity index 100% rename from test/decodeTransaction.py rename to tests/decodeTransaction.py diff --git a/tests/functional/apps/__init__.py b/tests/functional/apps/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/functional/apps/eos.py b/tests/functional/apps/eos.py new file mode 100644 index 0000000..7ca27a5 --- /dev/null +++ b/tests/functional/apps/eos.py @@ -0,0 +1,216 @@ +from base58 import b58encode +from contextlib import contextmanager +from enum import IntEnum +from pycoin.ecdsa.secp256k1 import secp256k1_generator +from typing import List, Generator +import hashlib + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.asymmetric import ec +from cryptography.hazmat.primitives.asymmetric.utils import encode_dss_signature +from cryptography.hazmat.primitives.asymmetric.utils import Prehashed + +from ragger.backend.interface import BackendInterface, RAPDU + + +class INS(IntEnum): + INS_GET_PUBLIC_KEY = 0x02 + INS_SIGN_MESSAGE = 0x04 + INS_GET_APP_CONFIGURATION = 0x06 + + +CLA = 0xD4 + +P1_NON_CONFIRM = 0x00 +P1_CONFIRM = 0x01 + +P2_NO_CHAINCODE = 0x00 +P2_CHAINCODE = 0x01 + +P1_FIRST = 0x00 +P1_MORE = 0x80 + +MAX_CHUNK_SIZE = 255 + +STATUS_OK = 0x9000 + + +class ErrorType: + NO_APP_RESPONSE = 0x6700 + SDK_EXCEPTION = 0x6801 + SDK_INVALID_PARAMETER = 0x6802 + SDK_EXCEPTION_OVERFLOW = 0x6803 + SDK_EXCEPTION_SECURITY = 0x6804 + SDK_INVALID_CRC = 0x6805 + SDK_INVALID_CHECKSUM = 0x6806 + SDK_INVALID_COUNTER = 0x6807 + SDK_NOT_SUPPORTED = 0x6808 + SDK_INVALID_STATE = 0x6809 + SDK_TIMEOUT = 0x6810 + SDK_EXCEPTION_PIC = 0x6811 + SDK_EXCEPTION_APP_EXIT = 0x6812 + SDK_EXCEPTION_IO_OVERFLOW = 0x6813 + SDK_EXCEPTION_IO_HEADER = 0x6814 + SDK_EXCEPTION_IO_STATE = 0x6815 + SDK_EXCEPTION_IO_RESET = 0x6816 + SDK_EXCEPTION_CX_PORT = 0x6817 + SDK_EXCEPTION_SYSTEM = 0x6818 + SDK_NOT_ENOUGH_SPACE = 0x6819 + NO_APDU_RECEIVED = 0x6982 + USER_CANCEL = 0x6985 + UNIMPLEMENTED_INSTRUCTION = 0x6d00 + INVALID_CLA = 0x6e00 + + +class EosClient: + client: BackendInterface + + def __init__(self, client): + self._client = client + + def parse_get_app_configuration_response(self, response: bytes): + # response = dataAllowed (1) || + # LEDGER_MAJOR_VERSION (1) || + # LEDGER_MINOR_VERSION (1) || + # LEDGER_PATCH_VERSION (1) + assert len(response) == 4 + + data_allowed = int(response[0]) == 1 + major = int(response[1]) + minor = int(response[2]) + patch = int(response[3]) + return data_allowed, (major, minor, patch) + + def send_get_app_configuration(self): + return self._client.exchange(CLA, INS.INS_GET_APP_CONFIGURATION, 0, 0, b"") + + def compute_adress_from_public_key(self, public_key): + + head = 0x03 if (public_key[64] & 0x01) == 0x01 else 0x02 + public_key_compressed = bytearray([head]) + public_key[1:33] + + ripemd = hashlib.new('ripemd160') + ripemd.update(public_key_compressed) + check = ripemd.digest()[:4] + + buff = b58encode(public_key_compressed + check).decode("ascii") + return "EOS" + buff + + def parse_get_public_key_response(self, response: bytes, request_chaincode) -> (bytes, str, bytes): + # response = public_key_len (1) || + # public_key (var) || + # address_len (1) || + # address (var) || + # chain_code (32) + offset: int = 0 + + public_key_len: int = response[offset] + offset += 1 + public_key: bytes = response[offset:offset + public_key_len] + offset += public_key_len + address_len: int = response[offset] + offset += 1 + address: str = response[offset:offset + address_len].decode("ascii") + offset += address_len + if request_chaincode: + chaincode: bytes = response[offset:offset + 32] + offset += 32 + else: + chaincode = None + + assert len(response) == offset + assert len(public_key) == 65 + assert self.compute_adress_from_public_key(public_key) == address + + return public_key, address, chaincode + + def _get_public_key_params(self, derivation_path: bytes, confirm: bool, request_chaincode: bool): + p1 = P1_CONFIRM if confirm else P1_NON_CONFIRM + p2 = P2_CHAINCODE if request_chaincode else P2_NO_CHAINCODE + return CLA, INS.INS_GET_PUBLIC_KEY, p1, p2, derivation_path + + def send_get_public_key_non_confirm(self, derivation_path: bytes, request_chaincode: bool) -> RAPDU: + apdu_params = self._get_public_key_params(derivation_path, False, request_chaincode) + return self._client.exchange(*apdu_params) + + @contextmanager + def send_async_get_public_key_confirm(self, derivation_path: bytes, request_chaincode: bool): + apdu_params = self._get_public_key_params(derivation_path, True, request_chaincode) + with self._client.exchange_async(*apdu_params): + yield + + def split_message(self, message: bytes) -> List[bytes]: + return [message[x:x + MAX_CHUNK_SIZE] for x in range(0, len(message), MAX_CHUNK_SIZE)] + + def _send_sign_message(self, message: bytes, first: bool): + if first: + p1 = P1_FIRST + else: + p1 = P1_MORE + self._client.exchange(CLA, INS.INS_SIGN_MESSAGE, p1, 0, message) + + @contextmanager + def _send_async_sign_message(self, message: bytes, first: bool): + if first: + p1 = P1_FIRST + else: + p1 = P1_MORE + with self._client.exchange_async(CLA, INS.INS_SIGN_MESSAGE, p1, 0, message): + yield + + def send_async_sign_message(self, + derivation_path: bytes, + message: bytes) -> Generator[None, None, None]: + messages = self.split_message(derivation_path + message) + first = True + + if len(messages) > 1: + self._send_sign_message(messages[0], True) + for m in messages[1:-1]: + self._send_sign_message_more(m, False) + first = False + + return self._send_async_sign_message(messages[-1], first) + + def get_async_response(self) -> RAPDU: + return self._client.last_async_response + + def check_canonical(self, signature: bytes): + assert (signature[1] & 0x80) == 0 + assert signature[1] != 0 or (signature[2] & 0x80) != 0 + + assert signature[33] & 0x80 == 0 + assert signature[33] != 0 or (signature[34] & 0x80) != 0 + + def verify_signature(self, derivation_path: bytes, signing_digest: bytes, signature: bytes): + self.check_canonical(signature) + + v = signature[0] + r = int.from_bytes(signature[1:33], "big") + s = int.from_bytes(signature[33:], "big") + + assert 27 <= v <= 35 + parity = v - 27 - 4 + + # Retrieve public key from signature + recovered_pub_keys = secp256k1_generator.possible_public_pairs_for_signature( + int.from_bytes(signing_digest, "big"), (r, s), parity) + assert len(recovered_pub_keys) == 1 + x, y = recovered_pub_keys[0] + + # Also retrieve public key from INS_GET_PUBLIC_KEY for comparison + rapdu = self.send_get_public_key_non_confirm(derivation_path, False) + assert rapdu.status == STATUS_OK + public_key_bytes, _, _ = self.parse_get_public_key_response(rapdu.data, False) + + # Check that both public key matches + assert x.to_bytes(32, byteorder='big') == public_key_bytes[1:33] + assert y.to_bytes(32, byteorder='big') == public_key_bytes[33:] + + # Verify signature validity + public_numbers = ec.EllipticCurvePublicNumbers(x, y, ec.SECP256K1()) + public_key = public_numbers.public_key(default_backend()) + der_signature = encode_dss_signature(r, s) + hash_alg = ec.ECDSA(Prehashed(hashes.SHA256())) + public_key.verify(der_signature, signing_digest, hash_alg) diff --git a/tests/functional/apps/eos_transaction_builder.py b/tests/functional/apps/eos_transaction_builder.py new file mode 100644 index 0000000..76407b7 --- /dev/null +++ b/tests/functional/apps/eos_transaction_builder.py @@ -0,0 +1,333 @@ +from asn1 import Encoder, Numbers +from base58 import b58decode +from binascii import unhexlify +from datetime import datetime +from hashlib import sha256 +from struct import pack + + +def char_to_symbol(c): + if c >= 'a' and c <= 'z': + return ord(c) - ord('a') + 6 + if c >= '1' and c <= '5': + return ord(c) - ord('1') + 1 + return 0 + + +def encode_name(name): + length = len(name) + value = 0 + + for i in range(0, 13): + c = 0 + if i < length and i < 13: + c = char_to_symbol(name[i]) + + if i < 12: + c &= 0x1f + c <<= 64 - 5 * (i + 1) + else: + c &= 0x0f + + value |= c + + return pack('Q', value) + + +def symbol_from_string(p, name): + length = len(name) + result = 0 + for i in range(0, length): + result |= ord(name[i]) << (8 * (i + 1)) + + result |= p + return result + + +def symbol_precision(sym): + return pow(10, (sym & 0xff)) + + +def encode_asset(asset): + amount_str, symol_str = asset.split(' ') + dot_pos = amount_str.find('.') + + # parse symbol + if dot_pos != -1: + precision_digit = len(amount_str) - dot_pos - 1 + else: + precision_digit = 0 + + sym = symbol_from_string(precision_digit, symol_str) + + # parse amount + if dot_pos != -1: + int_part = int(amount_str[:dot_pos]) + fract_part = int(amount_str[dot_pos+1:]) + if int_part < 0: + fract_part *= -1 + else: + int_part = int(amount_str) + + amount = int_part + amount *= symbol_precision(sym) + amount += fract_part + + data = pack('Q', amount) + data += pack('Q', sym) + return data + + +def encode_fc_uint(value): + out = b'' + val = value + while True: + b = val & 0x7f + val >>= 7 + b |= ((val > 0) << 7) + out += chr(b).encode() + + if val == 0: + break + + return out + + +def encode_public_key(data): + data = str(data[3:]) + decoded = b58decode(data) + decoded = decoded[:-4] + parameters = pack('B', 0) + parameters += decoded + return parameters + + +def encode_auth(data): + parameters = pack('I', data['threshold']) + key_number = len(data['keys']) + parameters += pack('B', key_number) + for key in data['keys']: + parameters += encode_public_key(key['key']) + parameters += pack('H', key['weight']) + parameters += pack('B', len(data['accounts'])) + for account in data['accounts']: + parameters += encode_name(account['authorization']['actor']) + parameters += encode_name(account['authorization']['permission']) + parameters += pack('H', account['weight']) + parameters += pack('B', len(data['waits'])) + for wait in data['waits']: + parameters += pack('I', wait['wait']) + parameters += pack('H', wait['weight']) + return parameters + + +class Action: + def encode(self, data, encoder): + + encoder.update(encode_name(data['account'])) + encoder.update(encode_name(data['name'])) + encoder.update(pack('B', len(data['authorization']))) + + for auth in data['authorization']: + encoder.update(encode_name(auth['actor'])) + encoder.update(encode_name(auth['permission'])) + + parameters = self.encode_action_parameters(data['data']) + encoder.update(encode_fc_uint(len(parameters))) + encoder.update(parameters) + + +class TransferAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['from']) + parameters += encode_name(data['to']) + parameters += encode_asset(data['quantity']) + memo = data['memo'] + parameters += encode_fc_uint(len(memo)) + if len(memo) > 0: + length = '{}s'.format(len(memo)) + parameters += pack(length, data['memo'].encode()) + + return parameters + + +class VoteProducerAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['account']) + parameters += encode_name(data['proxy']) + parameters += encode_fc_uint(len(data['producers'])) + for producer in data['producers']: + parameters += encode_name(producer) + + return parameters + + +class BuyRamAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['buyer']) + parameters += encode_name(data['receiver']) + parameters += encode_asset(data['tokens']) + return parameters + + +class BuyRamBytesAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['buyer']) + parameters += encode_name(data['receiver']) + parameters += pack('I', data['bytes']) + return parameters + + +class SellRamAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['receiver']) + parameters += pack('Q', data['bytes']) + return parameters + + +class UpdateAuthAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['account']) + parameters += encode_name(data['permission']) + parameters += encode_name(data['parent']) + parameters += encode_auth(data['auth']) + return parameters + + +class DeleteAuthAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['account']) + parameters += encode_name(data['permission']) + return parameters + + +class RefundAction(Action): + def encode_action_parameters(self, data): + return encode_name(data['account']) + + +class LinkAuthAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['account']) + parameters += encode_name(data['contract']) + parameters += encode_name(data['action']) + parameters += encode_name(data['permission']) + return parameters + + +class UnlinkAuthAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['account']) + parameters += encode_name(data['contract']) + parameters += encode_name(data['action']) + return parameters + + +class NewAccountAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['creator']) + parameters += encode_name(data['newact']) + parameters += encode_auth(data['owner']) + parameters += encode_auth(data['active']) + return parameters + + +class DelegateAction(Action): + def encode_action_parameters(self, data): + parameters = encode_name(data['from']) + parameters += encode_name(data['to']) + parameters += encode_asset(data['stake_net_quantity']) + parameters += encode_asset(data['stake_cpu_quantity']) + parameters += bytes([0x01]) if data['transfer'] else bytes([0x00]) + return parameters + + +class UnknownAction(Action): + def encode_action_parameters(self, data): + # On purpose dummy and very long action to test the parser behavior + data = data * 1000 + length = '{}s'.format(len(data)) + parameters = pack(length, data.encode()) + return parameters + + +def instantiate_action(name): + if name == 'transfer': + return TransferAction() + elif name == 'voteproducer': + return VoteProducerAction() + elif name == 'buyram': + return BuyRamAction() + elif name == 'buyrambytes': + return BuyRamBytesAction() + elif name == 'sellram': + return SellRamAction() + elif name == 'updateauth': + return UpdateAuthAction() + elif name == 'deleteauth': + return DeleteAuthAction() + elif name == 'refund': + return RefundAction() + elif name == 'linkauth': + return LinkAuthAction() + elif name == 'unlinkauth': + return UnlinkAuthAction() + elif name == 'newaccount': + return NewAccountAction() + elif name == 'delegatebw': + return DelegateAction() + else: + return UnknownAction() + + +class TransactionEncoder(): + def __init__(self): + self.asn1_encoder = Encoder() + self.sha = sha256() + self.c = b"" + + def start(self): + self.asn1_encoder.start() + + def update(self, data): + self.sha.update(data) + self.asn1_encoder.write(data, Numbers.OctetString) + self.c += data + + def digest(self): + return self.sha.digest() + + def output(self): + return self.asn1_encoder.output() + + +class Transaction(): + + def encode(self, json): + encoder = TransactionEncoder() + encoder.start() + + encoder.update(unhexlify(json['chain_id'])) + + body = json['transaction'] + + expiration = int(datetime.strptime(body['expiration'], + '%Y-%m-%dT%H:%M:%S').strftime("%s")) + encoder.update(pack('I', expiration)) + encoder.update(pack('H', body['ref_block_num'])) + encoder.update(pack('I', body['ref_block_prefix'])) + encoder.update(pack('B', body['net_usage_words'])) + encoder.update(pack('B', body['max_cpu_usage_ms'])) + encoder.update(pack('B', body['delay_sec'])) + + encoder.update(pack('B', len(body['context_free_actions']))) + encoder.update(pack('B', len(body['actions']))) + + for action in body['actions']: + act = instantiate_action(action["name"]) + act.encode(action, encoder) + + encoder.update(pack('B', len(body['transaction_extensions']))) + encoder.update(unhexlify('00' * 32)) + + return encoder.digest(), encoder.output() diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py new file mode 100644 index 0000000..3963343 --- /dev/null +++ b/tests/functional/conftest.py @@ -0,0 +1,122 @@ +from pathlib import Path +import pytest + +from ragger import Firmware +from ragger.backend import SpeculosBackend, LedgerCommBackend, LedgerWalletBackend +from ragger.navigator import NanoNavigator +from ragger.utils import app_path_from_app_name + + +APPS_DIRECTORY = (Path(__file__).parent.parent / "elfs").resolve() + +APP_NAME = "eos" + +BACKENDS = ["speculos", "ledgercomm", "ledgerwallet"] + +FIRMWARES = [Firmware('nanos', '2.1'), + Firmware('nanox', '2.0.2'), + Firmware('nanosp', '1.0.3')] + + +def pytest_addoption(parser): + parser.addoption("--backend", action="store", default="speculos") + parser.addoption("--display", action="store_true", default=False) + parser.addoption("--golden_run", action="store_true", default=False) + # Enable using --'device' in the pytest command line to restrict testing to specific devices + for fw in FIRMWARES: + parser.addoption("--"+fw.device, action="store_true", help="run on nanos only") + + +@pytest.fixture(scope="session") +def backend(pytestconfig): + return pytestconfig.getoption("backend") + + +@pytest.fixture(scope="session") +def display(pytestconfig): + return pytestconfig.getoption("display") + + +@pytest.fixture(scope="session") +def golden_run(pytestconfig): + return pytestconfig.getoption("golden_run") + + +@pytest.fixture +def test_name(request): + # Get the name of current pytest test + test_name = request.node.name + + # Remove firmware suffix: + # - test_xxx_transaction_ok[nanox 2.0.2] + # => test_xxx_transaction_ok + return test_name.split("[")[0] + + +# Glue to call every test that depends on the firmware once for each required firmware +def pytest_generate_tests(metafunc): + if "firmware" in metafunc.fixturenames: + fw_list = [] + ids = [] + # First pass: enable only demanded firmwares + for fw in FIRMWARES: + if metafunc.config.getoption(fw.device): + fw_list.append(fw) + ids.append(fw.device + " " + fw.version) + # Second pass if no specific firmware demanded: add them all + if not fw_list: + for fw in FIRMWARES: + fw_list.append(fw) + ids.append(fw.device + " " + fw.version) + metafunc.parametrize("firmware", fw_list, ids=ids) + + +def prepare_speculos_args(firmware: Firmware, display: bool): + speculos_args = [] + + if display: + speculos_args += ["--display", "qt"] + + app_path = app_path_from_app_name(APPS_DIRECTORY, APP_NAME, firmware.device) + + return ([app_path], {"args": speculos_args}) + + +def create_backend(backend: str, firmware: Firmware, display: bool): + if backend.lower() == "ledgercomm": + return LedgerCommBackend(firmware, interface="hid") + elif backend.lower() == "ledgerwallet": + return LedgerWalletBackend(firmware) + elif backend.lower() == "speculos": + args, kwargs = prepare_speculos_args(firmware, display) + return SpeculosBackend(*args, firmware, **kwargs) + else: + raise ValueError(f"Backend '{backend}' is unknown. Valid backends are: {BACKENDS}") + + +@pytest.fixture +def client(backend, firmware, display): + with create_backend(backend, firmware, display) as b: + yield b + + +@pytest.fixture +def navigator(client, firmware, golden_run): + if firmware.device.startswith("nano"): + return NanoNavigator(client, firmware, golden_run) + else: + raise ValueError(f"Device '{firmware.device}' is unsupported.") + + +@pytest.fixture(autouse=True) +def use_only_on_backend(request, backend): + if request.node.get_closest_marker('use_on_backend'): + current_backend = request.node.get_closest_marker('use_on_backend').args[0] + if current_backend != backend: + pytest.skip('skipped on this backend: {}'.format(current_backend)) + + +def pytest_configure(config): + config.addinivalue_line( + "markers", "use_only_on_backend(backend): skip test if not on the specified backend", + ) diff --git a/tests/functional/requirements.txt b/tests/functional/requirements.txt new file mode 100644 index 0000000..a4c4a9e --- /dev/null +++ b/tests/functional/requirements.txt @@ -0,0 +1,5 @@ +base58 +bip32 +ragger[tests,speculos] +pycoin +asn1 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00000.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..620e85104417eb380bb4555b4fd48c61daef0ff1 GIT binary patch literal 388 zcmV-~0ek+5P)|5Ewx7xR=CV(WGO>x_4 z`DhP-;E=YT;;&F22q9sohO7>}lT0YaVX z&YE|osTQwc0jMDI>i<6`E^OteQqbF5h@uq6I1>BEMl!;-LpYKr)LJBTZaI<6`QjMn zikgCW7TEY4c6^4k=M;Wo~DJYH8&(A2rdzE~J>|tTYw{p7l{dKfN)K zj2o79NHxCb???s~V5FO8^G>Qfct93D=3!>1CX?#@0BKi?j6D_J iw*>*aAdv+Cco{$a-SmhGbzb%W0000z_ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00001.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f62b30804ab47d40405fa923ede27e549a1329 GIT binary patch literal 537 zcmV+!0_OdRP)l}bj(@cTavD>wpyG-b>fcAW2_+9_{#e=Q=OA^EA|JRH=y-JqIH< zg#*Zlksle5Rro+yIj}s4=I0uocKD?VB%GtgX?R#a2-UfB3c5aOZDRq}37?CHhjt(k b2wV%l+lrbrIMHQ|00000NkvXXu0mjfV=wlu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00002.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8aecb5640a70ac9c8f92942060ce1d0abc3a87 GIT binary patch literal 495 zcmVn|eAQQ`OvR2|^%R{!T!lKI_muW?l0)5@k=q5Pd zG~96_QRg-j+bX$t8RgAt*65U39(V<`u^sBzeD58ABbTa{=7`TSk6H3ku3(M4Ml^zy)MYSJ5SE94j-F>HOuoBVu@`_^UI zE>p?(<^HrY0)|a%>$j3IIFn!5h34eb$qV@WI)}G%k(Po^m{km3sNqvqOKQCZ-C`{* z8fau3^0pwRT2pq^>}heUD8Zt%Tc_k&h>8Yur7t)OgR@`4I*}vK*ESVoOiKour#o5( z^RJ~8CjfAnLpyjc!k!YCo)}CwZG6y@NQKU-3BFnaPiqVQk|arffG2J%d_zdw=!XCR002ovPDHLkV1m^<;mrU5 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00003.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..6dccfd7fa30ca830b81295f05d0c8ddb89260a70 GIT binary patch literal 500 zcmVA;B{@^cZ@#E7pP-2;uBScHB>nm zYNi6=6Nnv=zJ+{T*NAlpEk#fZG{!|Gtf}(DW=U_9%)@DD0OZnGEHJczOcw9#MBj)> zM{SP4fYFkigFg*OXC{gnz<&LdFR9rk`tES7#Z;w!sFpR4DxC3;!JuWFbr|&RO{cBR qzmzXTcDfNew-Dl3uZp55F3t9UKul`t0J0~ARmzRVp%rZ647zJ+nfO%h&3pfoz$yj-ZeHAG!>vT$$db2 z9V^VWE9XjMQ-Qqz{7K7aM>O*qXpG4aCSXmLt;&?m$JR42$GDyIo1<3RJ^IJi_wxG+Yry2qARt#sf<#$}=)VJ~ zBlvESR-Jq3=$jydfC?r!$iuAw9oGJ!U-M%YMJ+y&Ch%TCM^JUq5BGkf8O_{y`#mQ} nq4{V^xv44i3V1v$0C_ea3_go|-rj`700000NkvXXu0mjfd&QW1 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00006.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000|5Ewx7xR=CV(WGO>x_4 z`DhP-;E=YT;;&F22q9sohO7>}lT0YaVX z&YE|osTQwc0jMDI>i<6`E^OteQqbF5h@uq6I1>BEMl!;-LpYKr)LJBTZaI<6`QjMn zikgCW7TEY4c6^4k=M;Wo~DJYH8&(A2rdzE~J>|tTYw{p7l{dKfN)K zj2o79NHxCb???s~V5FO8^G>Qfct93D=3!>1CX?#@0BKi?j6D_J iw*>*aAdv+Cco{$a-SmhGbzb%W0000z_ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00001.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..e9f62b30804ab47d40405fa923ede27e549a1329 GIT binary patch literal 537 zcmV+!0_OdRP)l}bj(@cTavD>wpyG-b>fcAW2_+9_{#e=Q=OA^EA|JRH=y-JqIH< zg#*Zlksle5Rro+yIj}s4=I0uocKD?VB%GtgX?R#a2-UfB3c5aOZDRq}37?CHhjt(k b2wV%l+lrbrIMHQ|00000NkvXXu0mjfV=wlu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00002.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4a8aecb5640a70ac9c8f92942060ce1d0abc3a87 GIT binary patch literal 495 zcmVn|eAQQ`OvR2|^%R{!T!lKI_muW?l0)5@k=q5Pd zG~96_QRg-j+bX$t8RgAt*65U39(V<`u^sBzeD58ABbTa{=7`TSk6H3ku3(M4Ml^zy)MYSJ5SE94j-F>HOuoBVu@`_^UI zE>p?(<^HrY0)|a%>$j3IIFn!5h34eb$qV@WI)}G%k(Po^m{km3sNqvqOKQCZ-C`{* z8fau3^0pwRT2pq^>}heUD8Zt%Tc_k&h>8Yur7t)OgR@`4I*}vK*ESVoOiKour#o5( z^RJ~8CjfAnLpyjc!k!YCo)}CwZG6y@NQKU-3BFnaPiqVQk|arffG2J%d_zdw=!XCR002ovPDHLkV1m^<;mrU5 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00003.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..6dccfd7fa30ca830b81295f05d0c8ddb89260a70 GIT binary patch literal 500 zcmVA;B{@^cZ@#E7pP-2;uBScHB>nm zYNi6=6Nnv=zJ+{T*NAlpEk#fZG{!|Gtf}(DW=U_9%)@DD0OZnGEHJczOcw9#MBj)> zM{SP4fYFkigFg*OXC{gnz<&LdFR9rk`tES7#Z;w!sFpR4DxC3;!JuWFbr|&RO{cBR qzmzXTcDfNew-Dl3uZp55F3t9UKul`t0J0~ARmzRVp%rZ647zJ+nfO%h&3pfoz$yj-ZeHAG!>vT$$db2 z9V^VWE9XjMQ-Qqz{7K7aM>O*qXpG4aCSXmLt;&?m$JR42$GDyIo1<3RJ^IJi_wxG+Yry2qARt#sf<#$}=)VJ~ zBlvESR-Jq3=$jydfC?r!$iuAw9oGJ!U-M%YMJ+y&Ch%TCM^JUq5BGkf8O_{y`#mQ} nq4{V^xv44i3V1v$0C_ea3_go|-rj`700000NkvXXu0mjfd&QW1 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00006.png b/tests/functional/snapshots/nanos/test_eos_get_public_key_confirm_refused/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7e7049cb3e9bcfb1601ec510ee465d38229d4d GIT binary patch literal 340 zcmV-a0jvIrP)b=%MgRq*37h4eRxPbkJCLY|1VIo49_}P}TKpH4$L<8?X{t;p zy+UQc_4@p%0?~E_&igM#?#L~IOHR(-<@sYotiy&C*Y&GII0yeh-p3zW9cv$Q0k>6Y_)5~SfP=m zSMUtz)%Ex|-o}7!H9hbQ(8{%C?kQVa?C`*Uj-J(h>P7(Y#?ZWvi?6}@n{fGLp>YTp myqR(V_$?>^<%seR_VWh!2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM00002~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000bKJw0s&ql17QTXhUT=s@I^p<{MG2~3KfJAa4*;*KxxYW;n`ORBfu@f%om{} z6gyEROCLa?vvQ#-(N2W65$o#AxEWF$Q>XPOlRiL_SqRCk>M$K?-e?5qgvWTI0eGMzz&*SsCeCeLUMR!S`jd8I>WalhPmEcRIo%?%tOtWCx@aCUMQGF zQ&-y}+*>pB5c>)npawh}bPAe-n}U)=MBaiXla}m^Esp>I002ovPDHLkV1haa BnL_{o literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00003.png b/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..ea906c66e3a2f59f57326bb45e04136d26bc247d GIT binary patch literal 260 zcmV+f0sH=mP)msYpe*0zLwdW#9Gu{`@4^I#QV$LQw&DvpVOd{pXE@6M0000< KMNUMnLSTZtl4jQc literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00004.png b/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..34cf547a2c1e2400746daefd61018ba07f6d86e8 GIT binary patch literal 355 zcmV-p0i6DcP)bKJw0s&ql17QTXhUT=s@I^p<{MG2~3KfJAa4*;*KxxYW;n`ORBfu@f%om{} z6gyEROCLa?vvQ#-(N2W65$o#AxEWF$Q>XPOlRiL_SqRCk>M$K?-e?5qgvWTI0eGMzz&*SsCeCeLUMR!S`jd8I>WalhPmEcRIo%?%tOtWCx@aCUMQGF zQ&-y}+*>pB5c>)npawh}bPAe-n}U)=MBaiXla}m^Esp>I002ovPDHLkV1haa BnL_{o literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00005.png b/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..55c081960447d1b0db6a25879514c0e6ff6aee8b GIT binary patch literal 388 zcmV-~0ek+5P)@BhGFxC;`(3Y5_0RZ zAjkgZfD_$89hC;(4EPkt20xKWI1{S=)cJ}tC zHg0bmmV8cGWfbcI(rWlrMDGNIM#NAr8CN#w#Uhex=7NT#On7?o$u@_McrV*GB_IiL zfMXD3leq^LezG^YcRIRc(v?e;0~{x;ehW4nLm5CnaL*MO0m{wdVw-@%WQq|#%DFb% i&-!;Dgb+dqxd$)cL-4;f+r`5G0000HX7m&qrRq}mci=3)c=8}O(<@PR+@fj{tpC$PRJajoB~C>X8S#Slzsn455_+{N7; zO0YZ4Y_%YM;VKKF{8_HNf;Y)7a#>X9<-h$BT!|5a@`hE9LMJ~8*%KxN8JQ{khm?2D(3A%#ywOVnIDnW;Fyc>@)av*){Z*2eo002ovPDHLk FV1i9ooSpyx literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00007.png b/tests/functional/snapshots/nanos/test_eos_mainmenu_and_setting/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..70c9092564341e43d7d59a19a5caa26e875807e1 GIT binary patch literal 281 zcmV+!0p|XRP)!K+QeHhma8fajIMn6j5mW;$e;{2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1t|PfB!WyNCgPD#~&3rT#% jJ%Ds%*#G|!LI@yl1nZMy3ygMb00000NkvXXu0mjfa;}U+ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..1f692fc4f899ca518710cc99422b950c3109e022 GIT binary patch literal 356 zcmV-q0h|7bP)S?y{Jmm)d=iMCJ&GOdJYKa3c719Z!o+QrnT9MD>!WG5#} zRjvjSg$$sS0Cl$8Gjt9>KsyKM9%dmQr8$n{^z#FvDZ;4&kin_|0000j%u317%%MwJaG|xl${kmip=bQ814+GV^9-!XtHJ$lYw#{3i3kz31mfv`qM~A z4fQ7jA83Loq{+_bu>1BGT8G%_VPSd4rX`AYW+^rCK7juRXK3?#b3?zzS%e0jlv=d3FE*(B=nGxXA-6wIRa*0000D3}`7cLqL) z1XU=KqmflN)M1m7S5SP57PZar`HXG{Rp#%rK>Qw1w{e81f1n>|nF-2%_nq*#JD?b5 zZbewg9XexlM!3Y0_0ssI2001H) Z`T#MdpGcD9?jZmG002ovPDHLkV1m~yg>e7? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00006.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyram_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1@?M9Zg29qK0fWrr z@;V6H37CXu_5`|d7kHCF>Cu8^OA9MN%003t@QuoHJ8b!Fzl!{?&Z_OQ!>R!oU;k^mLy@2auhYbuMkmy2|N?Cg8|)8(JQ zL3)|}05+4%?1$l`n%NJA8e~Ej$|Q6j&QcV1B}GpRTmS%_2A8AV+OmAOZAD5|{85!l z+mC8dWllGKr@o}lau26O6(f5Z-LT7@^bgTFfxCe$##v&#!mXqZUjCB^P&{uLG=v>- zqy{ho*tc3BL)b0qR>lk9ZeS?y{Jmm)d=iMCJ&GOdJYKa3c719Z!o+QrnT9MD>!WG5#} zRjvjSg$$sS0Cl$8Gjt9>KsyKM9%dmQr8$n{^z#FvDZ;4&kin_|0000j%u317%%MwJaG|xl${kmip=bQ814+GV^9-!XtHJ$lYw#{3i3kz31mfv`qM~A z4fQ7jA83Loq{+_bu>1BGT8G%_VPSd4rX`AYW+^rCK7juRXK3?#b3?zzS%e0jlv=d3FE*(B=nGxXA-6wIRa*0000i>T*3tZ43@l;4lrAiAJ_?57j1=K^>E8#c7 zJ!*QZrvzoI4NK6U0PlC!EinLMv#&(X0e;If`}d^OO;92tBBH&Vt%a2QUzveq00000 LNkvXXu0mjf@6v`f literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00006.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_buyrambytes_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1mIJAz_ zYsIbOa1ox_1K3PB!6ghP9^$Mm;#Pnn_sAZ=Cq`xYEBeZ>qTA-GYS%ZcF#rQB02L$a zuH^2WvG)eZ6of6=u^_DgouEzb-i~+1OFJ5*0915-H^%y|X;QpjE;{>Ts~>Tv<)6Tc zyi|VxO_8boFaoKm{$Ln`Oqhi-0osQ<&jK07`Ok9S0r)S@hv=2H)}6c=rHD>lvqUpM zchz=SZu8YQv4l0z&Q1OqQ=a^#(K7D!Z?%U2Q;hq1KWJ63F9J*eI%~h57FyM}i$nsi z70000Uzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+wqtGg^Ru>1+(0nZg?>sGe8eO8T8rdFxMs| z9sw{#Ij>Z<)aaE5l83hgqbcMJNHCJHPOTl3lknJgT?qDgxjhwmss02GMW*`GFr=pX zlVJ=z;VR_Gf_eBxKHtdI3afm{=Iy`%W_i*SJ#4JvIqjjmBO^_;6gyi=q^L6nqZFYT zs28gA0n`A9D(Rf;2NmD|bPx+|*rKNZ2Ot~!=Fdo}X^md{B!mz`2>DZXVRfe{D(srb P00000NkvXXu0mjfYutmx literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00005.png b/tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00006.png b/tests/functional/snapshots/nanos/test_eos_transaction_deleteauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1PT|q#n^t#=bJ#0;7kpg`-m zygF%(gdjY8WpLj{$yAKPv}CPAl`>f%b}Zg$$z;3y2J;kb$a%uBZLH4D?-k_?WS}i zO`n`~2ejIui+4=BiPD0qYgS9y9ibcC8)`0KJD`hc4FM?lC3wA{Hu|NCL?Sy$v;w4B r4I&fGf=UM8z(j415<&Uzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+wq`+k6FXi8xYnp?^JQK-&Gi6$LhR)?U~Jvl1? z07elh?e(N_N&yUH09xuptUTq-@TCT08hRU5*(YSBCTyNV2qAGv1Xh}+7s^%<{p-De zCkWBo<+js#(6-B%afVNV8^%9CRbPzllVSLHFF>R3=(f8{6SV|Y*S!-p0cr)WNW28_ zj!LY@@^aJydJ`7GJSHF2cbqdf@qtGg^Ru>1+(0nZg?>sGe8eO8T8rdFxMs| z9sw{#Ij>Z<)aaE5l83hgqbcMJNHCJHPOTl3lknJgT?qDgxjhwmss02GMW*`GFr=pX zlVJ=z;VR_Gf_eBxKHtdI3afm{=Iy`%W_i*SJ#4JvIqjjmBO^_;6gyi=q^L6nqZFYT zs28gA0n`A9D(Rf;2NmD|bPx+|*rKNZ2Ot~!=Fdo}X^md{B!mz`2>DZXVRfe{D(srb P00000NkvXXu0mjfYutmx literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00008.png b/tests/functional/snapshots/nanos/test_eos_transaction_linkauth_ok/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..3ba34c504c6e3f0be63308ccc6c4b470f8f00e47 GIT binary patch literal 325 zcmV-L0lNN)P)`L$!hwg|Au%58w_^*b1h*c~3N-0$`j3JQVB% zl-s}{TkCPK6Yv7y6Hpd=t^8BF4EQaSF?RIuG~}iF9jJ;-^}DenHP!D7bKnVAAy2UO z;q|NW`lO?j4sM($BE$VLe*o-;=K7ZIW`4T5p@su$zv@B8#wnUhkg}S~>$Ne*FZuz{ z0m(v8mDoX`a?S4tVFldkM04LM2Tumil+z7;|oFLI@#*5OOCA Xoq~gyH`vAg00000NkvXXu0mjfEH9Aj literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00002.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..10af689047719efd8a97631d1accb9ac4f236832 GIT binary patch literal 390 zcmV;10eSw3P)s1R;g{XKx!EOjj`SGKH{Gxdb_%iUZYlp;jElhVQ@ z7cM7Xd6e$v2_MBcp;zlUR2bDa=R|xsK+qSY&O+OWgDohMQ?R^!mq$_hxyGN9JUM`R k3zNRenE(I)005xQ509wh3T2N$@c;k-07*qoM6N<$f)qxvOaK4? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..30e74ad2c21f81025b0630872198bd7c3e2ab6b9 GIT binary patch literal 384 zcmV-`0e}99P)a$C8qnD3* zE9&IU*|;_b2#c<6Jua*CqJNsX^YOx7lD19K7J~SPb%_Sl7>~Lu61GR}IlzB&v~0uW z3l%X4=8nxt7`iTkg~Vn9R3BxhfQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1wpc9GE^TYZmz+WrA_ z_A%u_+-i$D>VJs9^4gdfE07*qoM6N<$f|Gfc;Q#;t literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00006.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..49705067c68201e5ff9aed0541a3190fd65aeda8 GIT binary patch literal 354 zcmV-o0iFJdP)!y#l&V27+S2FTa{SHJ$ruyAbq^A0v z;Ta%d7DDpmI-Iui?mt=+Tky|4m?OLOR?p_<>7`UhH#GcB6!ZO^A(}8XWh6TwjKsRa z)n)q$Buq5vQ)XSvBAc^f{={spv1CQGWsq!Z%#3S`vx977;0E}l4-pHydcOlGH73=; zr8egvS;zp`|GA*&^ynHe0_Yk5&A;H)2_Xc{2ff$2^h;N}u>b%707*qoM6N<$g0aS- AEdT%j literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part1/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..8e4a8cb594733c86bc3c9c9efb20f8a9b37881d5 GIT binary patch literal 330 zcmV-Q0k!^#P)WrY}@B+1n5Tbx4? cA%u8x09x6x5kht6N_hVA+OLdM#OEV?s$>@GE z^1m420S}V@8iN{dYXTmfz;_7C5;#{VkK=2uq04|hsH1V%H~`M2)=N@4>!08ycR+b| zlXO`KIUe0KZ;9Oj(h--}tR{c4g6(&}L|C+5nuZ>kCwOwF5W;c68z0_spPmDBTAupt zZ@4bSqz$b+8ySOl;S))pO;dl2Srwdt)Z(DE15nox zVwr^M6m{AVmW*J3!s1tGgF$0f9c+BL>DDz_zfw(7RV|5g(dL$nHH13OTSr z9^XKhWB{i>UK-0;{In+^>&LfY&t6+1kw_#G9{d8e&7v8xj%Ymq0000y|vNhRzN{shnk#2vV}$d4WqO?CXs zhqp48e}P;tJnnM2iHKZo|G#J0nudCW2@aCNrfAKZaaa%l30)&(+8E$9K3a-30Vs|b zip1ei8Sx`evNs4nj_3g3l05DdUr3eI(sB)Ig$UPS!%@|`NVse-0+Z)}H=Vbq8GZb{ z>c<;r>lsj|smA%%{$nMXl##`SZ-=_9O){kGq&K|1DR0ANsgx+3GNJU_?DHOTA_K@zp`2X^(4 zK4KG{*CaQ`(CHdXXa5u@isw*mv3|_ycwAAQYW~LxrcQ17D&h7mzmh8E47)sRDd2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000!jN?p!X-8tSx|u+_GPH&l2V$nne0!Yyr{YLyVOL qPFdq?DT2!Lk8T_Q00000pyda}dC`EAlo~t$0000fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1@?M9Zg29qK0fWrr z@;V6H37CXu_5`|d7kHCF>Cu8^OA9MN%003t@QuoHJ8b!Fzl!{?&Z_OQ!>R!oU;k^mLy@2auhYbuMkmy2|N?Cg8|)8(JQ zL3)|}05+4%?1$l`n%NJA8e~Ej$|Q6j&QcV1B}GpRTmS%_2A8AV+OmAOZAD5|{85!l z+mC8dWllGKr@o}lau26O6(f5Z-LT7@^bgTFfxCe$##v&#!mXqZUjCB^P&{uLG=v>- zqy{ho*tc3BL)b0qR>lk9ZeS?y{Jmm)d=iMCJ&GOdJYKa3c719Z!o+QrnT9MD>!WG5#} zRjvjSg$$sS0Cl$8Gjt9>KsyKM9%dmQr8$n{^z#FvDZ;4&kin_|0000=gM%u z!~uxg4tQHnphyTtSl7yuJ}#@?2jQ_i)-{JapwOuAS?|pVm>qDq9#1uD5)ngj1xx@` zT8NFOqndsKjF70}cpVy5|{Q*j(z@>-|3=f!I<_dshs;aqe08AHvKEiP_JTMrCaIRF@QNOIoEsv>; oy29vG0K1SO9@+2C2qDBD8}UE4BqQlEEdT%j07*qoM6N<$f^G(rNdN!< literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00005.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..1ccddb7ca641e770d0824529969527ca75635e8a GIT binary patch literal 323 zcmV-J0lfZ+P)D9X$xfdJ7tLI@$N;*n$;B-k?`4O=nxJCq(D@2dfJ0RBMu zIwd017`(IvOyak1QkrsT>;(z-3>frUT7+{)TU~@vN6G=d!VVYWP1t5aWQV4He8a?+ z)Gie(o?)0F7z0fVXQ2mRbsZMM%Jrbt0%Z}Dm|1DR0ANsgx+3GNJU_?DHOTA_K@zp`2X^(4 zK4KG{*CaQ`(CHdXXa5u@isw*mv3|_ycwAAQYW~LxrcQ17D&h7mzmh8E47)sRDd$=cx(BQJgE&+H zw7m>3=@&?F?4OTeis2ViotM{c0Z|zZY4C5Ayro}&NQe6LDv>Fc?=2k)NG-cIHoE@7 zXjOweIU2XdfXt?A+mCk3J?QQho_t(q*ORtY(&vKs!iIPQs*GFNRdv=!YaZa%9BfwzkyE$I zFXrbmW~vKfNXLMnXd{B%1ZUS&j-E4%Hv%30N7@3+cLV-g9Nx}+LkFT35NtyqV|js- p*Z6vhpwWMR)Tjgi0001B1x~oR&w#4I9diHx002ovPDHLkV1llLt9AeY literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00008.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1Nkl27t`Qw)!ppY5FIy zAurXRKv!g{KaGaeRDUw`K_-ksnLw<=!LM98fb=WO4ZuAI-0#MDO}fM}PTskxh#;d` zTD~`@Omm&x)Q8PvTrW|opR{}BAHgIhPbmZ)ZZUuph!^Hfk%(c5PuJ&+-KyOlQwZ$IGAz`)mMfwK*B17#B(1$56S=jSCh~Ag^A^Dy8f?syU)>5O7Z`I z^hZ-|!gC(wr@~5eL%LFXlv;mZdm#Iu=gM%u z!~uxg4tQHnphyTtSl7yuJ}#@?2jQ_i)-{JapwOuAS?|pVm>qDq9#1uD5)ngj1xx@` zT8NFOqndsKjF70}cpVy5|{Q*j(z@>-|3=f!I<_dshs;aqe08AHvKEiP_JTMrCaIRF@QNOIoEsv>; oy29vG0K1SO9@+2C2qDBD8}UE4BqQlEEdT%j07*qoM6N<$f^G(rNdN!< literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00012.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00012.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef063064cbada33de0696639f9b03973671cac9 GIT binary patch literal 306 zcmV-20nPr2P)gD008(`g0=%=?2*FOxZLB{$Sv6j zuCm92vUyy|&2M--FKq{g37a8V$9ZczaG4wxo7Kit08$cELfh0mW2Xc;#aaN|{RylE zfLP5*3nV{L@$)5*VLh01)q=%Dq0^mrs-z)x5Q>NpLJ0X+rtAaw_Pv8?OI zE_r7kz`?3@Ev2P96tC<9_<+^72}l6O1)&64lxqMvKac}}ta|~Z1Z{hsu|RG^)eKPE zQzXXy*1Dh}FVzpg6q)LWp-4^jgJBFZVHL_`FLKp}1`M{W;hHtzJZ$z@nhwwH&nb{U zH!Sa2XWNP8(!%4=bDj`D{)ES+vsuvX^R-J3GwMT60kF#SEk2z)t?T45Sc3M1X8;3` uOvW_ykmjZGs`YxXHk1%T2qA=sh{ysW$ak$bxuOdI0000Tpku2JAs3IW_iZuW2V)ctCFlAW)002CdwTtSp|8BAwE8h~N#%LBE zyQRUNWY^#&Sgw+F%*_^gkJ~C8Y~7ew$-dKaNfrTgLis6}k#vOkprN2qo{sD(u`eqP z(qGv@;j=bB4K`S!vB!de5kS$OM9#<>9U2^^RP8d#Xy}8}1uR_V5$4qHK%Wq@Y$IFp znM}pIWu8|jT}uSt#oyE~0yM{yOCR;o-84lr(xoNJjcgeI)*i)$d*S^7RGkd(4})4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00016.png b/tests/functional/snapshots/nanos/test_eos_transaction_newaccount_ok_part2/00016.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..0414433b0eee80ac5553a6ebd19ed850904a8314 GIT binary patch literal 381 zcmV-@0fPRCP)`oBt_5jtOvNr%@x)T=AQlngrED!-Niww)7L8M9(K6_E9B~}t9-MZ-)a{N1 z$h!@2F4-pFjI8|RSr}dWsNhGiYAC_Kc}4E_0){)F`=%&bl74?`&b(qOdY%~%00000 b0I=c%0IS1_K7EAS00000NkvXXu0mjf+|8?2 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_ok/00002.png b/tests/functional/snapshots/nanos/test_eos_transaction_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f0249cf8d0a7985611270edb98d32ec5067d6a GIT binary patch literal 341 zcmV-b0jmCqP)K*r`f4Ce2e5b=Jy*!1Uizs5}4KY#;! z<^BaUO_uwYQL$R?UyN!HiBc$%SiI?oR=M zzZKZF>`)mMfwK*B17#B(1$56S=jSCh~Ag^A^Dy8f?syU)>5O7Z`I z^hZ-|!gC(wr@~5eL%LFXlv;mZdm#Iu1wgY&&PAsL-@9q{U$%gb?DDfHvSJ%e=b{6UYwdWMRPqi zu3#sviyS4WSi)>K)~cRe`fLyP8YW5+-4T={#{t;9Tof5W<#8N{>v_FquOW38yA6oe4si4}8Fi6316PlEse002ovPDHLkV1h); Bf-C?4 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_ok/00005.png b/tests/functional/snapshots/nanos/test_eos_transaction_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..6848041e658f1e5e277d8c0198161967fbe780bd GIT binary patch literal 336 zcmV-W0k8gvP)ZFYdMwcc5QWf|$d$!RR^K*6F9MuoovViQ^iQSmPn>51P@Uba7p}e= z(+KWtruKf+Zv>7363#+M)*>g_P=~}wVJ(;zowI2Bf=(-GviAEFz~`MdNwKu(`bp~W zhy@h=?x~2Te}Vu!Fc(zCvf`}zdG-aJinyEO0jKv89K-bO5m1Z!49Nii1KO0&ZZ}E? i%TPiHA%qYjA|f+EwY2V+F6Oh%lZQU&fEF| zx5(bGd`{D2rP^)JlMaVoSv7Gg4zBOQ;M@cJ18jgCOxm~+D3UM<8w2bC8e*FL;dx^M zg;zv6@>2Z?s3KGSX$VqN{mIYDixc1%^;m#YoLX}RdXV+!U0<;vhobP|p*3{YvEgGSc|{yV0?-Ow^p t#|6Lx+LWke$m@?fc*m3wLI@$mJv&JNp)74?AI$&&002ovPDHLkV1jHVfNB5$ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_ok/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_ok/00008.png b/tests/functional/snapshots/nanos/test_eos_transaction_ok/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1xUNG87(V7oqJ?2;1j2^UaG$O671OBCG++Tr3YYuH9&B( z{$%cTG4|O2X+hYMoeRq`K0|n~hIxf8I4I;(ENem#vI0a0sE5L5R0$za^#w`Z$4v74N81yK2h7&>vA%u`@-h}Im UXWUeKcmMzZ07*qoM6N<$g5oxessI20 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ec74711f501315f9f0ecf4ffa34d47af1a6810 GIT binary patch literal 345 zcmV-f0jBUzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+w4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00005.png b/tests/functional/snapshots/nanos/test_eos_transaction_refund_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refused/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_refused/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..0414433b0eee80ac5553a6ebd19ed850904a8314 GIT binary patch literal 381 zcmV-@0fPRCP)`oBt_5jtOvNr%@x)T=AQlngrED!-Niww)7L8M9(K6_E9B~}t9-MZ-)a{N1 z$h!@2F4-pFjI8|RSr}dWsNhGiYAC_Kc}4E_0){)F`=%&bl74?`&b(qOdY%~%00000 b0I=c%0IS1_K7EAS00000NkvXXu0mjf+|8?2 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refused/00002.png b/tests/functional/snapshots/nanos/test_eos_transaction_refused/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..c7f0249cf8d0a7985611270edb98d32ec5067d6a GIT binary patch literal 341 zcmV-b0jmCqP)K*r`f4Ce2e5b=Jy*!1Uizs5}4KY#;! z<^BaUO_uwYQL$R?UyN!HiBc$%SiI?oR=M zzZKZF>`)mMfwK*B17#B(1$56S=jSCh~Ag^A^Dy8f?syU)>5O7Z`I z^hZ-|!gC(wr@~5eL%LFXlv;mZdm#Iu1wgY&&PAsL-@9q{U$%gb?DDfHvSJ%e=b{6UYwdWMRPqi zu3#sviyS4WSi)>K)~cRe`fLyP8YW5+-4T={#{t;9Tof5W<#8N{>v_FquOW38yA6oe4si4}8Fi6316PlEse002ovPDHLkV1h); Bf-C?4 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refused/00005.png b/tests/functional/snapshots/nanos/test_eos_transaction_refused/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..6848041e658f1e5e277d8c0198161967fbe780bd GIT binary patch literal 336 zcmV-W0k8gvP)ZFYdMwcc5QWf|$d$!RR^K*6F9MuoovViQ^iQSmPn>51P@Uba7p}e= z(+KWtruKf+Zv>7363#+M)*>g_P=~}wVJ(;zowI2Bf=(-GviAEFz~`MdNwKu(`bp~W zhy@h=?x~2Te}Vu!Fc(zCvf`}zdG-aJinyEO0jKv89K-bO5m1Z!49Nii1KO0&ZZ}E? i%TPiHA%qYjA|f+EwY2V+F6Oh%lZQU&fEF| zx5(bGd`{D2rP^)JlMaVoSv7Gg4zBOQ;M@cJ18jgCOxm~+D3UM<8w2bC8e*FL;dx^M zg;zv6@>2Z?s3KGSX$VqN{mIYDixc1%^;m#YoLX}RdXV+!U0<;vhobP|p*3{YvEgGSc|{yV0?-Ow^p t#|6Lx+LWke$m@?fc*m3wLI@$mJv&JNp)74?AI$&&002ovPDHLkV1jHVfNB5$ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refused/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_refused/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_refused/00008.png b/tests/functional/snapshots/nanos/test_eos_transaction_refused/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..d55782f429e629a5ae929916914befa14613edba GIT binary patch literal 449 zcmV;y0Y3hTP)9Z)nZ zoKdfPKxBZtOD`O!Ud7)^nCSVm48R~fHVz_gJJ3!JB$;A z73W%!0pdWH0?92?e|oM4;Hw|T2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ11a2FD8MdImoG@6ha6g1c+@d+xqho43_8vIJAz- zZIISUNWwMx0J~}az@-hQACjyil2(8^cZoj0Ge%|kD*DQ&qMuDwjq4ZI9)JPXfQpgz zkh%M0?7IQdg0Lm~E=Uug4cd73eta^X?P!o1P|^Nwg7v?qv3Nf&+WoQBZ*iva4`3iK z)t|sik*WSP8d6jJ$*>2J(1jw&eGi-EL^_fl`$6^wIKWmB%`K*hbV~dx+eGlTpj%u317%%MwJaG|xl${kmip=bQ814+GV^9-!XtHJ$lYw#{3i3kz31mfv`qM~A z4fQ7jA83Loq{+_bu>1BGT8G%_VPSd4rX`AYW+^rCK7juRXK3?#b3?zzS%e0jlv=d3FE*(B=nGxXA-6wIRa*0000AYW|*MhO124@CNS5vOFZdP@cf{`jSXt&7W9NU(Q+EZc1DcPJIV|Evbs0eC>B zwIm|c7<{x17{u-Wq%N_- zq;{!zF^6M@U<@=doP{R9SRF3&e%YMp)CNFzED_D^cYDgIbOhdE>@VRrUr)g8hZO7p zJjRIn+dKiVqj<&?0jM6-NCAK^1Ms{#a)DPLyBk^}{m$yyq|Gcu2qA4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00006.png b/tests/functional/snapshots/nanos/test_eos_transaction_sellram_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8db7ffcf105b23d4a4cf6dd95ca0896776952d4f GIT binary patch literal 326 zcmV-M0lEH(P) zFJFz<7wsizh|Mb#tkPIu%g=Q8y}VT)+uuQ)(_wDULbb83#rN z==jy0A?vmUpcdq)V2b;{WqEjX9z;7JJO-nE0I&r)hoO;1i)H@KJ7Z3)O9&x^5JLXU Y46Jp9m~x?olmGw#07*qoM6N<$f{g)zt^fc4 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00002.png b/tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..10af689047719efd8a97631d1accb9ac4f236832 GIT binary patch literal 390 zcmV;10eSw3P)s1R;g{XKx!EOjj`SGKH{Gxdb_%iUZYlp;jElhVQ@ z7cM7Xd6e$v2_MBcp;zlUR2bDa=R|xsK+qSY&O+OWgDohMQ?R^!mq$_hxyGN9JUM`R k3zNRenE(I)005xQ509wh3T2N$@c;k-07*qoM6N<$f)qxvOaK4? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_unknown_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1l78H?r245+Q^T0>rkaZN2>v3>NPR6lfin zS0}BJ5QL}q1cs^J;8F%t4@uS$NlQSLdw5Ua6Qi>H6n$mO=zVikj_VWV8h`;-fQ*s# zkhz!1*v|$?3&NJ{T98(NHfZDBBueMn!6>KN;4*6S|NmVV=XL57AA#WURZvk+;v_Tu)z;X%jgyy%nL~Y-PXQ zg8n|O95m-t+jjBZ-40Q`@7lqUv_`Y~(4c##x(&!?+)+%wD3Z?t_JU5JzqCjsh?D$8 v0aC37LGZAk2}%uqmWkRiC4>+{2no*{#Nn?XCeySd00000NkvXXu0mjfqez{t literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ec74711f501315f9f0ecf4ffa34d47af1a6810 GIT binary patch literal 345 zcmV-f0jBUzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+wq`+k6FXi8xYnp?^JQK-&Gi6$LhR)?U~Jvl1? z07elh?e(N_N&yUH09xuptUTq-@TCT08hRU5*(YSBCTyNV2qAGv1Xh}+7s^%<{p-De zCkWBo<+js#(6-B%afVNV8^%9CRbPzllVSLHFF>R3=(f8{6SV|Y*S!-p0cr)WNW28_ zj!LY@@^aJydJ`7GJSHF2cbqdf@4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00007.png b/tests/functional/snapshots/nanos/test_eos_transaction_unlinkauth_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1@BhFY@UTf!y1y#61I!l>SPRrCJ7`IX5JCt6Vq4R;{(Tn=mgoWsw2sSb zkk&~!3D4*Prm0@w(gxEHN!AfbOF*4_L>I8fs4Qo1S zxtGb<_XbD{!j|k;Xye`Ul*xFuqd{swM*F)7=HHse;>+ct-5*>18h2X$0Sx4& z`VKTjruuGFq^A1Lum_RQg(5lGeb}=ehjXFHJEl|dAz#J}i`;P>N9+HzvfUa!mvIy6 zB(#oP7BD>KrKnzO^T99n{pDOUzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+wqtGg^Ru>1+(0nZg?>sGe8eO8T8rdFxMs| z9sw{#Ij>Z<)aaE5l83hgqbcMJNHCJHPOTl3lknJgT?qDgxjhwmss02GMW*`GFr=pX zlVJ=z;VR_Gf_eBxKHtdI3afm{=Iy`%W_i*SJ#4JvIqjjmBO^_;6gyi=q^L6nqZFYT zs28gA0n`A9D(Rf;2NmD|bPx+|*rKNZ2Ot~!=Fdo}X^md{B!mz`2>DZXVRfe{D(srb P00000NkvXXu0mjfYutmx literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00005.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd703cf158fbfdb142c7e198927998685641e30 GIT binary patch literal 286 zcmV+(0pb3MP)@(eEliwXQ~ knE~_N&9iR;004kujP)>E&%O!mz*Qcd=aQ3Fq` zLY|h|hwC54lZ(~cj^|*O8d5~T3$Vmr5s^^Gl_3%91UaWt z=znZIvRW z<0Q5!2-Zfxaq6C0VC`}KlgjV{E`YJt^GX1oV7>E9yxEWZPa5eIBk`nUeAN3~?? zAApr))hf_g)!-pZgnB*fQikqO0?*Q6m`|J&1m_1I&d?48O23<&{TnJ3MyBNkF{i^%{QdN|kJ>)apRLK%&Y=&Vf3+dqL7c@&k)k z7hYn@(?og->~YZ=RvyKq6o>Miy`WhyHD|rwD~_U;1r2qOTF&aicOa!W*xDOVZ3t@8 zs!ma-#YvCY163Ae+YCD00000NkvXXu0mjf059G? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00008.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..f603bbc0fbd47ebc254b9852bda2be5de6a2df91 GIT binary patch literal 344 zcmV-e0jK_nP)H8yW&P$0`FY_33oB`h z5`7gH#R}i0+}Pl~kkbCb5_EFbLA+PdFSjlW6T4PMWmG7}TInmzplED7rr!Zw)Rq8h zpDZFCYk!8FNeII@n1Zhv=HgW_2cFELLhqz8$!q0ck{5}dwW4iM`>}|avUmap{~thF qFagdm0nRW1&M*Ol5JCtc#DPEjE!JsIzxY%D0000#<~1m!Z;sIV=30wWHBZdCm1?_-EatDvU&C~CtRSqOr}-XLJ?PzTql*+ z)Rx?%Af}Od2dfNV3q`JiU!p8>tBLoYovPgj@wSyFAmJHLa%xACH>|uyrfoFI9tPzi zqdBE$#+C2(Q-T7a7VVv@RY>?6PgUel#<))^cpSx^*Z#;nZ_M zhIJ;>t2N?FXQe*9?4d7saoeRWC+0S1PF(&|^>16~id6+|zRS5>Q;w!pRqnZ8a+tF= zK%@IlU9#;nPUEO6b1Roj4V_i$5cl}Yh2tw;x5cSfpB9|*{D8!cJrg1~REcQ@DW4Tn z{-&qLx7t{9Z`aY4dKoo`_-&db-Zdv5oL%;D3K#F2!!s8IE)QO8asJeei)&1J`&}1B z%Kg8p@uq)^xaz;H_Ya#3|0{j_(&u0p|HcZ@6OJl-eHNA%2|n3abm3(4k#iCE;uidg tWcedu!}$5D?gCX02LmVq`WXl~64(nQUdZqFeSRFo^>p=fS?83{1ORkCnQZ_7 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00011.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..d06c63a4e393a1a988d6119425015484c9a5fd4a GIT binary patch literal 458 zcmV;*0X6=KP)q|r8?hIaNyG1A5;$^F9l*5qw zU&h1LTU)Km`Ulx|2=^2et~*Zpp~=U02bA*3wt-`ATd-Y(;2iqM8Vvg?t9EUePw~Eajoi;W1 z1QaS4P3}mUd5k8YCH;^iUgce%C2agMXeNLwOmYavolxfFjHuu&k2}KQjcBcv$P)R> zqO*6d4?diunf?qgWX9^h$pi#u|8Va~k|e*(8=ST}bvTJ)F#rGn07*qoM6N<$g65UY A0ssI2 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00012.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00012.png new file mode 100644 index 0000000000000000000000000000000000000000..78c4aa59a0886232407790c21c115ba175c67c46 GIT binary patch literal 350 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!2~2j9iA64Ffgimx;TbZ%y~QGv{17GkL$+Z z|Nom~Z?GDhILqzn-S%C_%0V$ks3U^|sKded`NOph4oBy-FF5;Rf$our1^;g?ZaQ5e zQaeTT$iFT8@)qlspT4p?y{dOf!tK*nZyY*ZBDqEN-?D#=Kdqt`$R7Jz?0KumWa8=v z(z?N!AxH0q-_JO0@auC!XRwKAmdmU?R>x|#AKP|cLHe9?O@+=fbJm@|=jK28*qk2` zF)g}^*`atl_s0*ZCwJ9xtQR}JZlNv1%okgDX7zQ2X05Hex4S|Nn#g&^_2V0-`Qkfx3HQ7B#3y1tUud00026UIJPfcUl)^`41S+8NnxYf+7UehzGPo+rg zDd&k0E!VQ|Tf<)&sW7IdZ@W=_Q7PzYqQvLBQn%|Gb50~$^S(KoY;;ZJ$-D1G%A04d zv?Gw_mrt`TtZb^ zW6juQM84lCGX2utJ^7l|?EjNCGG5R*@LTBR+o~zu64oF7B?&P5PiVFIx$^gha|%_M9`HWis|A=e1F7e9Z@9AQozYk2X!^48!QV030Y<^ox$kD& zz7CKb;JgkUlm+zE=nuq+TC4>mfIe7B!YBkpo;=*2VZ;|7U!fOeZu=}K zFqmJ$@lF(`0dznj>kFgt16+OHv*n6g0wIOb$3H;b`?~A!}g~9X&wV-iK)-yZr(PP8#)k4&TW2jxUVRH@4U> zfSxN8IQH^khEUEvNh&x%? zJj=Q2PYIomGJN;Va57PT&(~{FGyzMn1|yj?3VnpkB)@SDUS#u&Ow}?;_WmfsA8BBY z!N1A=ta%Y&$uio2QuwaNH~cUVf&c&j0001Z#0j==A-P002ovPDHLkV1mwb BmB0W1 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00017.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00017.png new file mode 100644 index 0000000000000000000000000000000000000000..01ea4aade7e7417c931df169fa6615ae42cc3224 GIT binary patch literal 321 zcmV-H0lxl;P)%54k?er(q-qXF;Le!a2ijv2GZ+%8B0~(ExsFuULlDRCfOa2+_&zdJbR6(Pnim z67K3-Tl^EC=j;T5J$%|Bl+h~o0mFv&?Ao?SDMD(}O0t{sTe+2*l0000h@CAjZ>PX!TbtC`)002ov JPDHLkV1g*mo~{4@ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00019.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00019.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00020.png b/tests/functional/snapshots/nanos/test_eos_transaction_updateauth_ok/00020.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1tPioWv6=nd+dqH{ zd8z&YPDQ5r!zf5i^#{WkM8Yf-$#my1)Ez-N^QN~?i1+-VTRGai!OEqnNBZLPr9s8! ztb!zF#TV@QYIp_IW=t(J9YtvzY@hPu54AYZ0lZ>dc*Yp(0A2vXcluZddIrEZs)%Fk z4mfKH>V{Xbo9L(1*VKcWV(HYB!Eb!(_8|O7=nP&zU@{m0LI|0c9ot;HRXT$$umAu6 M07*qoM6N<$g5A5KumAu6 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ec74711f501315f9f0ecf4ffa34d47af1a6810 GIT binary patch literal 345 zcmV-f0jBUzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+wxPz5xJ;3M};7Aa8>RGi}D0RR91Sn+x9&uI;&Q2kfNIVg#H z7d12_s!d*eC*b92Y$rMyHs)v2hDu_C32>2oep72*q9teg_K;FbZ52c*2iM1 z1Uesu@FMySh(Sj5-C#nE=sSZs=n1k=PZm6fCmQoaLoKk1C&AnTjZ|KqOya1QGbKr^ zCFCuO!b6g|sVr*h<;)YpL$)NL8TO@!6K=Hiyt1Sr^)+7pj@3}TE>Hbz?z57hYI<4D z!2s3J!LOpEvS1^8FJ$zuu{d0L`sG`vasasr*63=7aE^4Fcqax(LHEY~e}K->gAo7# aKs&zc`0Tek09qmd0000hRV>5pWuv0IOgOB|526>ExdnuA;IdJ07*}`ET~Zv<$!5aK(%D%EAzrs%Bj9lpI9`9DV8(qazDxgva zZEHxK(qiUt0x6=0Bu25M^mhfxl*fL*cmf*K9%YP24(_Ffh6pNGi%#>z4y-CbR~hqj qqlOycGatjw@)tn?00000p2ZhME%3(`RYisX0000e5r=k}k-`hBd>u%)zZzy+o~mT3Of^G$+;h z+H%fvkS2l4KY%I#+*^-CFcl4|ARq|QF@e| zl$4X%?W#4~duiM=CD<)!IvU|+^Z`_Z%;>{VLe1!dVGcZD7xLtu`*2fu*lTUH0{CY% zpZmlYQ#GPtpgzRpH%{$@V3h>QUu8s^!o8uAhM>F7F1w*DS`#dT);bQVr^oeFV{!mf zYC$D_t(gfZ6eKL(30U9!3I|e7IY6BU>=GJ{L&WWR=XR%;5J4R=w&)4)Zb8%IdLSeJ e+7m(uf%5?{!{X9P?2(xO0000G~ ze~09Db~HJ9I95AD7o#ID)OVmMGSqj2ks9hdgFToDPNA7BP=|@@P@Abw?A2BvA0o)x zp(U<`Q4>H8n-{VAZAjCS6lP>;7%1&ep+!08)OcYGifl;=i7e-M*8!D7KeSrSj8fw# zpxaHEO}BcEO=c1{8=&`LG-l*2Ypm`W`^1Q0#+^P|W?20NG1!2*Ua=KSU(@tGHKExe izfz3_00000_y-P!$P$(wl{Fy%00003;f$h2 z3O5$+Vl+ED4<5NB5nsg~M5Vl_z5{BJQGGXrQlt9LU=1R{DHI9r;S>Ldy={4y(ph_$ z^M3&UMN_qKExxcA8mHlFza7rLG`1euC{k9vG!e9Y0^%IT=6r!UQbglKMNPjei?$zo zqs5&?a~7aogrP;`z2D{DI{_`AFVSkKCc62!FTjKj;8&J-i5Zp_H210?+OD$#00000 bfNA^yVh;AlUnqvW00000NkvXXu0mjft3If9 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00009.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..961a6738e46e844670d5a3013c59146942c5f63f GIT binary patch literal 371 zcmV-(0gV2MP)XG`4@t8usr1*YL>+Z=LL{TSuJIDBdre7NKrkPBCrCwZf!Nymf5np zSNs>?d_zVSgmv<$bJygTx}jDB?!3c-I9Gt|O{(3>hQ)G_UjYCB004k>_yFC3=>DlY RYAyf(002ovPDHLkV1iYOr9l7y literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00010.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..e159eada04c4f4151822771ca7b0fc49798cde69 GIT binary patch literal 377 zcmV-<0fzpGP)=YvGsDm~O~JnH}d zqeg_j6@9Mr(2(R-`tKA`z~us*ySo^UHAil;xp4Cg7KL|;*X{c-jzJ$`%DO2tiW(`> z$hNEA?C7yL)c`#oh4do(4rG&z?7N|)8rgRScQ6u6p^;4c9S)`R1qs)k|E1Pe+iU6n zf54(?K}Cy{=A~f3*5uTDJC<}Mw}<<&b_iRZ+^Jda+0{^0EuN|!zG`T3nJm)T38RL} zIU{G$j096da~j-`W4KKJ{v9CYNmZ~kED1v&&1LG4IBL5Bu6Q+Kun`2nXZiyGzy){# Xup#Kl4ClqN00000NkvXXu0mjf`ctnA literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00011.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5f31f33fbb8f1e2041087ca9030aa1ddc631bb GIT binary patch literal 402 zcmV;D0d4+?P)zupSA0;ICg2Q-bWUAmo%HONNa z7UWU^>^rIbdyNX=5i7G=%U0Ws9waKQUse3REJL9CDTW`io5%z{| z7twCS_yw>FGR-yU(hcI(o*gr(p^^aCJ<2rMUxrsetxd9OrN#2A%qd}sB^iN;rF4|7 w{(!em%+!MZk_rBhIf?ylm7e+m0N`Kw0KbL+rQj>AZvX%Q07*qoM6N<$f@ z(8Ga{TcZ%qJ#C~PXocHD`6}9Q3pEgB!<*rpN1WGQ3N-^-X<;|$8dZDiIEy{-bO|6O z1JpB^FkEuqU8HP4a&~uz6DOVSpZZRV=ax3oLQuFx+-ET9A$`^C$#p3Uz zHr~3%H`gT1)b?9*cBZydr6I@?J5E(QnHg@Z(8ws3~f@W<~FV{XTHq0isx|&@>t>BIQ#1 zV@yNS$CH+D@pa{zm9re}&Nv4nO+#BVxIpY(GTs68c#<4giZXl@G&)83vy)T+00000 a(7_Hz6a<_=_2>Hl00004JOoxzBAZ^NKl0$xzRm5;aVni$&eLRYx5&U|AzjR z^O|5?FElIVJsaj)|N7Pz8RNJe)7-xX0CY`2s3m2+IV6y@3 zeVED~(8}YW=1z1sRO-9k27?Ts_Z54CsXBe-rLmJb*hU2a00000W1P7N_>=mz3wi(m N002ovPDHLkV1hV#pBVrE literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00015.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..b24c020cdae5c264233302781cd0c8e67086cca1 GIT binary patch literal 368 zcmV-$0gwKPP)Mi=i-0HT+x_d9Y5dL{i(^(p2M z&Pj)mqjF;oHx}JRZ}#Xm0bin?2M(yo3-uSEiVXFaAxI7N7lSp31X(B&oWm*$-hF3z z>qMyIb05I}zw}!8MS^&>pxrkZ&W)B`L);g;Bv~zFR=qhHyE@LprxejRQKQ(hO|JA= zfc83!u?9TzJdx;Xs8)B|28SKMOOj%dvf5^NVcKh=z133y00000Fo_?Z*XHHGbCCG} O0000NklOzSC007L&VypiDOSW1&HT1pMp?|kF z`$@f)4?!A$^tn&NjT~yT2XQ+i8;FSLYo}Tz%PcX`_%~;%s^w|B^3?Uq`s6e(AXb1@ z7Ucz1p(xjqSIc*<&@%nWqXL{e>An6s%E-)k`v5qXc6B@6^h2A^Cvfi=c6T35Kf3it z9KtEfD)gvSn8JnG>!P;u?ge80h8mwavr};|yzhYOWO&~V!PW4-Gl)SX=t7Y^?;N%^ z$@7y3bZ?zE1%MGT3+j`Ia(>^S-9VfjnqI%j7=rS6vO3gkQF2QE#fhu|julW{){L$9xJ#~>I>ua9LC2_ znuuuIe~-5*yQl|q9<=S&%0v0OsyE2iU_dav(eg%q2PW93cdovasQ{ zlcp{}8Q<~@?}A=k$eK6RSD-AN;S1vzcRLZ(6v3EI*!;ApjMMN znnj0+^ja|7-GwZGJu{=OLG4LokzUsk?rNMrN%k`2^OI2|RrAbrTJS#sb!@amOJh!y lNm)AT8Y%z)0002+;R5h4{>@zU2$lc<002ovPDHLkV1g%`uMq$M literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00018.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00018.png new file mode 100644 index 0000000000000000000000000000000000000000..fff98f9bfe87818796fbbd6f27016a09c5546dc8 GIT binary patch literal 404 zcmV;F0c-w=P)yf0s2Wv!sfuO2t5NddhW{I&)?h%man#M=YWyES@T*-7C!7A%=JS{sdk!hxx#`bt z{WCUU%6=$4iW(`>$SzmC+0hMxn*$<$YWMn@KCDq7&Fn9(tK^L0IO8YRC z0c=rWJWvd`N^gb6wXXF51W_Mi@}tJKP_ZoQnk9j=YOw`ZW;8BY6_m|I`nec4ek2Pc}|FOX_=6kMf8jxStwYQsVli4TkoJ@=eGa yAVo@5wrt$@&TfxY!BzG1Q=2dV0002M?f3xg!~n~3=%0`P0000VS8v|2!eDfsOde~!(uE_L};!l0RRAaDu=K6?}sdPHd<(Vu)+T2 zEnP1A@9KjibOY%BHVXsEX4#*9hyUaqum*>vm6&Da%d=EvX{%YQ7^k5>&TVtNj+jtd zmenVigW|ZB#bv&WtK^>>{wE-~jE)T!J4O!pZ$R+THkT`l{?y|0nz;5Hu5jm~KfCnL zXu_1^6lxS5q?Ci~anV|R^*g?WZc@m%*K;w#i|7ZS1{u*0LkKmZ9}Mf(1Cpc#)kn%Jgi9@8ngI*FrhPJNnpP@W*#0sgS@NVQYMMs+ zh1Ht|-3U}e&1vz8X8Pvu)f#FjEj7VZ1m_U1R#HPX4USC+-Y3(mKAcZL*~-M`*3<5? zVA<9-?|foy+=Pd-|92;2r4j^|#`$s_0017y4-%vPw`_&hjQ{`u07*qoM6N<$g3B1X A0{{R3 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00020.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00020.png new file mode 100644 index 0000000000000000000000000000000000000000..13185af5054e31633c93f467ef47f329c1fc3f76 GIT binary patch literal 383 zcmV-_0f7FAP)dx0K%VvU$-fA`*JMi;ndYM{GbZFyhD$vGkj$Ia1?;7Ki8j{Yst1(2dEWo%z?m%3xpTwG&7$=)S5J zZM`jGLAIcJHwJGyn#G12nseVa0CoaWV^Xv#E8lfRA2hvF6x5wpJ?Ol}y2m`5M(HAyh%Qbk~g%+vvDJye`e4wQ|pzn=njo`4pW&Lru4&4oX zpbuwkG<2=DQ{Na0kOzgeK(j=XZ4-QHHaj;P$Vb258LGvGSk`0 zI|ZRdDXyc@x1_EG3NpwJL9bx&>~@IM&}yV{klS@=OO<+oQxi?&wkr)Ye5DBGtfZ}{ z-;(EPwZ03W*Jo(0sl6@Ku$^i?qQy7~+PJBGSA$k6YwiM^;{s5rk`*r{IaBY6&T0ry zJx`5vL$(NR%>Dk5nGE0efPtVV{edyF5hY1-8$L<@2Ev9znwS6p002ovPDHLkV1fU&Vh%Y^rU>knu`AD(m&!5&RI91M&*q; zypaqS)pY9$!NrqW1s+twi|7YX3^Jl0h7f8*KN#d-B&b3oneiOHPvR$?>7;H&;BXP+ z_ZLeGX*UjEq^q1!gf|{FG$Z#W)c34MRdos`85JZGu#tCiNRd!52_Oi9AXt@6SN(aQsrF6{eFN|6Pp0DO zE}^Ocy5I%C?LG|yNoq^|02LN| zho-P9r#5f427O9KpdSI%J!mjp_i)>2&|d)K=x$Dz?Q1HtS@AKR&!5Z1+x~A{IGqF@ zhcIT_D>(`aF{LmYUe(6WUe%x0#^Ezm^S}vO?hWr7Ksq_RZ$`z{;eBIb4Lpe~#sCVM8UhEioXFZAs(`5!=48R5>MCohrmLq^%NG*d;% kGbT$x>k$hO1VOMaKWonZw8(3}iU0rr07*qoM6N<$f|rn~x&QzG literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00024.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00024.png new file mode 100644 index 0000000000000000000000000000000000000000..6eab3c9fdfc1359b06c1ceb0711a0e1b69764a6a GIT binary patch literal 410 zcmV;L0cHM)P)_Wd8Yi@IOU`) zhD(E{3$TT50DYeGu#oJw^v~WhTELsTsdpJxYf9;{S=oR+E8Z06G|^&>pSbWd;t8l7 z3*DeOD2~_aSE=rrPaEt{fLMbL;ijki7QX!kI3MI@xU$8Ioz07zbG&#`iudF5kci0s z7IO(x_Cx4VbdXXGvgx8XJ-X;W^7=KtbFNM!y~w@;)g&YPZV0JH_MO2VM1n393GQKz zqQ^PJ0$bBm`}?8_=)DG(W#}c35X~HPpx12*1G!{#{hG))o_5kANoKK$#=1arQ_9nNak>Tz=eQ1A0a97$Hxz?x zTuR<#4Wv2iA|tS`0Oy^w)2zH2jO)XG0i3J5__(Avq@7KQjOJmgJ|m~0`|-UviEw|5 zIfNLXj+d4(oI4 zpLwx?(a+5G_A>CdIojm=B3ARJqqH-XCTNXX@^K<@InnscI|pA*0E g%hkhyVZp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00026.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00026.png new file mode 100644 index 0000000000000000000000000000000000000000..9e160fefbd8116f824c568a457aae65c9e7ec795 GIT binary patch literal 420 zcmV;V0bBlwP)y^)(~?c-u*{pvWQvjkE%cO)gIL;?M^R$G8lc0bE+hClm+C zaV~g~4}>*ahX3Y~0nU}Q(OxJUQW}{p-rfPu*0YjuHaAVp7zEj z1M;pU*{7`TKFa#SX-c)6JG`J@6#17zGZU1cXJh=opnJeQJp@4zEY1((w+jF~Y_FUE O0000%BkP08b>xz19v^qJaIAGgZY`vp(AlZ@?DT72&XZi|FU}j>I9UIg*>4;$d1b? zh5ffh(NvUA0J{eb)O9~@V<$m50LJU7s!KL?DYJ!xnQ8#@8nBj6LXQ=q>ZCjQ`fd_E3y#N3J07*qoM6N<$g7X@(U;qFB literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00028.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00028.png new file mode 100644 index 0000000000000000000000000000000000000000..b067d9b9872e41fbb6f712703beb2508471ccdaa GIT binary patch literal 384 zcmV-`0e}99P)3BqH}r7nDju^B@|R1polRtgN=;zaOG%>y*&9@TmN> z)uitH=HsFNfsXqmTu2gI%2$3e;O(FzCyTW*^cKM`G&ajPWu+;?si8*=@G5KuNNJ&8 zP@QDwr6|sPAPGqyGwd^fjX?)>-OJNH*Lgc-aASY8`(^=H;gvuSJ%Yvo e4gdgvdHDgjy71yz%MbYg0000lQ5SNagb%Qr4WEnif27t@xpUzU*pwh?z{{VoqyE&aoj#_0y@c_>^p3}wq@g1BDItfM` z!jkeailpXEe)9%)NR9EJ1^DD?!}*gb)&*58{9de-LXC2mk;807*qo IM6N<$f}$ay4gdfE literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00030.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00030.png new file mode 100644 index 0000000000000000000000000000000000000000..a10a3029e3c0bee42fd3e31d81b226681cf2c52e GIT binary patch literal 395 zcmV;60d)R}P)@$FkL5Jy@hx=xO{RTK^cXhffIi$)aSw{0RRlg$1q3ia)NCce( z5r;5k-Iy9hjg-=u4QJK#*;)O_Guimec{&yM!ut-0PKNj0U|bFFJA*xl1XU=Kuygo$ zpP+w=s_~SN+s{Tj|^-2t<;qKL7xL4t^f`?9^uQB_aR-002ovPDHLkV1j)_wD|x4 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00031.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00031.png new file mode 100644 index 0000000000000000000000000000000000000000..46caddf9606595560b474c16eae31ee55fa1cd06 GIT binary patch literal 406 zcmV;H0crk;P)VS6xf1OcrZXyZLk4O6fv+Feru006Knhp+qhi-bA{J&bj{>c0$? zhRa6R0r)~EfIg3T_#?$_?Z5uXX$&c)l%9UBRoGfHmLBU>8n9=>o8g@1_r`17Myvp> zEbInNqiEL_FPj5n%%00XMO1*e1_QzkcdzTrvqbzSAh^1l;aG8KJ6jZw;CS=NDL&5c zLuS%RFyj!W9H+2HQ6r@`vhJccJG$t<%*}+)Q0FsecN*zM_5)CpjO>RYq#D@|26HeI z>_Riy>m0UUC;nxZNN@ijyob9$I-KtVGV~7)yCJAA48){p(q_|Q=%y@|ZM-*{W+@u` zwbC(tbj;{RloX*UEtlS~v+=F;{g4T;MO|a(5nKKeYdr$hP)%aHd#v9GsQ~Tt>skAy zWvz6I+NY+5YC>th5d;xiI{RJ7ECwb3008#o0}n;|*WEnGi2wiq07*qoM6N<$f~$A8 AbpQYW literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00032.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00032.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e26645b6047dd17a70074b1a2017c65b701d28 GIT binary patch literal 425 zcmV;a0apHrP)_ zmDBBw)CF*n4v^P%3Jr;}xqjY7T0;mSgf~yxB-v|V>m_%^0m(H`1LD%Y6Yp`1dIGFt zfd>>D)pl$1CO)VWX#xKPsC%%(bk(=xgV-9r13I7X;&jQrwj!I9V!GkQlfEgtS(o*9 zu`?(Wj7Y+gWmRI7Y?S1U$?d8do?X=k37if;>OGo*dENRQFpcci?}lP(w|-~b2P5$) zG!oClBk5#b_u^p)-vjb*0M-kR)dI%j0ee?c%t>DBu>SFq>a96axwN`KF_JXC*fn=G zH1L1V^$Mukn4cs9T^x`vU5zaO{AuvIX{^X23w9hIOi~Sv#mj?(KU)KPf#lH++6jnz zR;^H;{Usm`o~?jleRaC|l5j)n^2a>S!IOlb|AqX&peE$c>BYfMj1`XKIH&mn{jU(s Ttaya_00000NkvXXu0mjff*8X% literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00033.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00033.png new file mode 100644 index 0000000000000000000000000000000000000000..9ccdcd1f00c595515c160800e23c9bfc987bbb21 GIT binary patch literal 413 zcmV;O0b>4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00034.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_ok/00034.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000S|Nn#gusyhJOw@vyit(N-i|eo|C=?n3004kpiIc~FoxgTGbRAXlpbRwt zZEwS4_5>=t&d(<>!|;nW;q9#}ps1rE4gT$t=j;g(?NFbtQki4@UScpnZQ0t`nB=p& zscy1zH13T7jZN3LALG&LnEn+$`6S^aN!u>5xgfrM!*<5G7jVSn`I0cp+Iw*CHG zP!Tu5j-xpUL)R*pOEepxJC)s*e;eQg%z)ScCtwCR0W%pK1B_VmuYq&8ZCo~%?J=~5 zc0Kp!N^Y_qVE~&c2y$cF5f6@+~p;R>Gb;HFAs{jB1 c000Z|1{MOrg>6EF7ytkO07*qoM6N<$g6JlyEC2ui literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00001.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4353e5678171b70971d11cad5803b403365b2cec GIT binary patch literal 331 zcmV-R0kr;!P)fQYs)q2qEODl;r-m_4{0wym35}ZLJ(I z`SlAM`GM33*uOkZd{sn?wpGef*_~>;MeVMF?czZ0j1YXy?{a|kiWO_uSJCIPRDQA* zv`FpRxGi;!%;lZZYnM1Zo$f=L&gfYHz>9!OurnPSFb71vE>sZG8IZrB%_J;R<=9xW zSJZ1tPioWv6=nd+dqH{ zd8z&YPDQ5r!zf5i^#{WkM8Yf-$#my1)Ez-N^QN~?i1+-VTRGai!OEqnNBZLPr9s8! ztb!zF#TV@QYIp_IW=t(J9YtvzY@hPu54AYZ0lZ>dc*Yp(0A2vXcluZddIrEZs)%Fk z4mfKH>V{Xbo9L(1*VKcWV(HYB!Eb!(_8|O7=nP&zU@{m0LI|0c9ot;HRXT$$umAu6 M07*qoM6N<$g5A5KumAu6 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00003.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ec74711f501315f9f0ecf4ffa34d47af1a6810 GIT binary patch literal 345 zcmV-f0jBUzfvq`32qA8RV)cRL?f92Vip4xlw1d8xhuRgtN_83$5RePg%>NSK9?Jh=|9 zOKbg?-cSeWaASG9OaIq@v-M?zO&F2Ad09G?dCuY0#z=R99;sc@(aZJ|xa4J?H#KV$ z4r5*NN3EU!2Uf%&Zjx<%*wKSXmXU89JOMfBL&U;Hx7&c4d0C_3bT+Ke+D%9YPyxh* r+wOm8Fou6F-4hO0*g)WTwK$07+ zLV&CshxtXnacX6XX&{QtTa`Y1Zc~gk@jM{kH&N;S_YStKW$siP4%P)a!;mR?K=hBPztIW4`^ylKZvK-Zqbo)@qFKqei&QWG-w6>E4{b?s$ufCLF zhO3{Amt~yFNZl0OY?2w3d5pja)#C$KzX>E%$Y0clIa?=iiWEftFAkO&`?LRLeCM4O zt2$=gkSk+PlE_1RKq4=B%Dy31}5BqJ> z7rzCe+94Ijht^{6cOC#8CDQA&gx2YeKAEt}xIr~k0*}@rS(0h`R+Sq&pp~NBP0pZ= z=lD|F0V!QbyNb$H3SJH4)Xx?(vc^RNV3zuh<2a7vIA-|(nvLIec>;{-00000NkvXX Hu0mjf8i2j; literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00006.png b/tests/functional/snapshots/nanos/test_eos_transaction_vote_proxy_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..4d13f81a58e4d37341dae89c3ed5deecc9a8d70e GIT binary patch literal 336 zcmV-W0k8gvP)2~0HpzmfEq+X>qi1={jS@>IWx{qTme2dKsQvdi!wcK)L*q?JF5hHG@}Nly}@Ze z{B1uq8kh)3Y4J_%-D83$z@AcU4fL<0^+5&HO1M+GD9a*cf4m4d*92XZ@3Z0u1xyvx i6htOOvOgh&kT);;W4R3)B~MHM0000;%91^U^Lr{|8yl zzLm?+v#K=KO8?8UySB22T7A!LUA8bg2QMdhwIl=YbE`G2h-n>#vY!!*P4hJcnAypx z_LQc5`XwuSz^&T9KplTA7s?!lx}oizwvnBlE@@f^v{WrxxGQ|cR}k!?T?zmI006*L YFQ)`iVzHF$l>h($07*qoM6N<$g1o=J!vFvP literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00001.png b/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..b2539a890274ba9ea531f05e9324b25b3cd204d3 GIT binary patch literal 988 zcmV<210(#2P)^}r!f=~`FtrX;hpp%X#9?@KAVTmWUhD22jSBIbm;4{*leD1WoZOtyZ zyX`~=m?;{$iQ3{aAw}dTWE8^TTeq80E6}Nl~Ft zD109VY^X_w00z|L3%$NT#>?@&w6E`?YuBS3GuzD(n|Ycm6_p)x1BVz>kPhn><|jsB z|C1&xO${DBIb|C!Hnf}-RlfXpu z=)F8+;qoj7zBw;0PvIeEWI^8_l-!MYjwL~O*`v|;kU3AKysyS{eef6Xf++OG7%X!6 z;8f`4b=gpzwBeS`&rmfLftgG3)l46CBIu2Rr?xGnl3p)h>U7$zeKp(Cb2z39&Jav7 zFe01n#ZI}dy2)91xVaK$YPYN*fKE@wG*5T*49346Kn^gEIi3kA)8GXV26|%Vb|dLO z^KoWq9)9X!XbI#1k0$gEpyoT%cX6*!FO%tvVJUPfDKbPf1f^SVZb0+S=iwz0XJB^Q zz3C6L7O3OrW8w}VgS%cM{vliJdM1@*wp;wEfSK~Wp{!6S6bgkx;g77ygRwtPaoh2-D-wgJB4>G2Q2B9;x0ba4!+nDh2Vbl+hG9*4j* z6YG=zrcc>>#$A=Wu`tF*VaxZLtrIJcG<44r0_rlj>%Zh<<-DKQA6vXRp`=j1g6+oN z6ECK(?YXxkceQ!-kv;8p`zIbdn$tA*%U9u(bsu-0C^B@>Ue;HCI)2GUFSV%rtmN}z z2Y*Jd)HJgSci-+G@%raelSgcG80?>0du)n2zG!M~=k!w_s`8F}-|yqKvNq!nn~uZr z4{pNs`9d@6JDwaW&Tv~hMP5DQ&;i}1|sxLU* za-+A^U!Gvg$50{jcvgoe+dtKv7rw_i%Qvw)IK0kp?k!*vOJXY^%niK-Pcd& zteTm!$-Z||)+T$&>FSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=Y7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00000.png b/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..281681b1d0c0f30fafb0e94f14d53312d31b3747 GIT binary patch literal 430 zcmV;f0a5;mP);%91^U^Lr{|8yl zzLm?+v#K=KO8?8UySB22T7A!LUA8bg2QMdhwIl=YbE`G2h-n>#vY!!*P4hJcnAypx z_LQc5`XwuSz^&T9KplTA7s?!lx}oizwvnBlE@@f^v{WrxxGQ|cR}k!?T?zmI006*L YFQ)`iVzHF$l>h($07*qoM6N<$g1o=J!vFvP literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00001.png b/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..b2539a890274ba9ea531f05e9324b25b3cd204d3 GIT binary patch literal 988 zcmV<210(#2P)^}r!f=~`FtrX;hpp%X#9?@KAVTmWUhD22jSBIbm;4{*leD1WoZOtyZ zyX`~=m?;{$iQ3{aAw}dTWE8^TTeq80E6}Nl~Ft zD109VY^X_w00z|L3%$NT#>?@&w6E`?YuBS3GuzD(n|Ycm6_p)x1BVz>kPhn><|jsB z|C1&xO${DBIb|C!Hnf}-RlfXpu z=)F8+;qoj7zBw;0PvIeEWI^8_l-!MYjwL~O*`v|;kU3AKysyS{eef6Xf++OG7%X!6 z;8f`4b=gpzwBeS`&rmfLftgG3)l46CBIu2Rr?xGnl3p)h>U7$zeKp(Cb2z39&Jav7 zFe01n#ZI}dy2)91xVaK$YPYN*fKE@wG*5T*49346Kn^gEIi3kA)8GXV26|%Vb|dLO z^KoWq9)9X!XbI#1k0$gEpyoT%cX6*!FO%tvVJUPfDKbPf1f^SVZb0+S=iwz0XJB^Q zz3C6L7O3OrW8w}VgS%cM{vliJdM1@*wp;wEfSK~Wp{!6S6bgkx;g77ygRwtPaoh2-D-wgJB4>G2Q2B9;x0ba4!+nDh2Vbl+hG9*4j* z6YG=zrcc>>#$A=Wu`tF*VaxZLtrIJcG<44r0_rlj>%Zh<<-DKQA6vXRp`=j1g6+oN z6ECK(?YXxkceQ!-kv;8p`zIbdn$tA*%U9u(bsu-0C^B@>Ue;HCI)2GUFSV%rtmN}z z2Y*Jd)HJgSci-+G@%raelSgcG80?>0du)n2zG!M~=k!w_s`8F}-|yqKvNq!nn~uZr z4{pNs`9d@6JDwaW&Tv~hMP5DQ&;i}1|sxLU* za-+A^U!Gvg$50{jcvgoe+dtKv7rw_i%Qvw)IK0kp?k!*vOJXY^%niK-Pcd& zteTm!$-Z||)+T$&>FSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=YMjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00005.png b/tests/functional/snapshots/nanosp/test_eos_get_public_key_confirm_refused/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..9088cece139d94e6aa44cc37a3f242f8a4c18e2d GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-&ba4!+nDh2Vv{17Gk3-<{ z%X2sUSKT?i&fxKdh7SHo9N%lUh6r#TIkX9=2L>7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00000.png b/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..9088cece139d94e6aa44cc37a3f242f8a4c18e2d GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-&ba4!+nDh2Vv{17Gk3-<{ z%X2sUSKT?i&fxKdh7SHo9N%lUh6r#TIkX9=2L>7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00001.png b/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5ecc531679e72a996f66ea1b3825c1a62255df GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hsba4!+nDh2VEMK#NfLq|D z67@Iro|~uJP4LtB6u$D@g*%^9M0$R*334(5HNn6iO+mqlk3T+ITlR5FT|<1AVU+!$ z>wm-)w+5ar(l|;|m#GrQC z!gsmFgzZ`D|72-@ycVk6T(Ldc<^2jtqnG!W37NjU-y;=~B(~{D`Hf3;AJ63!gh_vy zzG23sN3Yv0d~R0q+Wg~O{gD64K5KzfU*iJq8`S3SKN!01euHb~@(#@xLcc0!{PasW uxij=aO?mX}y^NoaUPxW>IUnX>5WV9B_W{!z@d_rEU{Oz3KbLh*2~7Zu{+dSs literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00002.png b/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..ab88bd3a6d7427c33b0466c09511a2947d76e558 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9eba4!+nDh3gW8Yx~0hd6v z@Q450AL&Ida9qK7USpcZsh|1cZxrraNGR|EYJ!4>l|f#bu6Mhl<6g1VXdJn_UApcH z?~fx|cPyWu)!ljChnD_ zFe+PK^Ut$g=g?IxQK!U+@Z+u(p%SlbQUvSv9ga`@ntfpU<@YV-GyEK3A;Iv2FaN0M URgr^|8BQQEPgg&ebxsLQ05_keY5)KL literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00003.png b/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..3922fb6c5109e00b491711b6f1755370b48b882d GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*Qja`c978JRyuBINb;v=0<-(fq znZM;%zTYIjNwG&NAku2;p6`+(vsR^;7@r2|0)hjPOq%Om2^b4QX5%WnY-yoi6_yDfcfa?CNUOy5D#I&;P>Ya?_t3 c;@SyM#UqYYPP=l7of{FVdQ&MBb@05J@DJpcdz literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00004.png b/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..ab88bd3a6d7427c33b0466c09511a2947d76e558 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9eba4!+nDh3gW8Yx~0hd6v z@Q450AL&Ida9qK7USpcZsh|1cZxrraNGR|EYJ!4>l|f#bu6Mhl<6g1VXdJn_UApcH z?~fx|cPyWu)!ljChnD_ zFe+PK^Ut$g=g?IxQK!U+@Z+u(p%SlbQUvSv9ga`@ntfpU<@YV-GyEK3A;Iv2FaN0M URgr^|8BQQEPgg&ebxsLQ05_keY5)KL literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00005.png b/tests/functional/snapshots/nanosp/test_eos_mainmenu_and_setting/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..5f80c3051e0584812161c29372007eedff6fe43b GIT binary patch literal 704 zcmV;x0zdtUP)-19NXkVT00000007eYakp4XsmJGe zy4!!w72zhaeSFP5yf&Avd2S>#L(Vfm3cXH?da9Iio+mA*Q>T{Ha#n%5U=5j(ZW#5H zUZVSTAtM2-2kCW6g|y*C+vD9PQVfzuqfOoN6P%ZzmUehvikaDYN-3@Ch0ZVlN z00000Kq~C9to{srV_Ze_MNPkmF%fMOZpZWFLR>l_N(*AILR9~ej-`h5=OMpLwW6sc zWOiq;^2*lrD>-dVIYS+@$hvD0D{TL^#=Ac)#=Az8n#0O^ki)hX=4L=0uvM&|YMzhd zQmLD|?Pz)l+HLh8($#z-Ox<%dod89hA2xj51WI5c0j$fEPGomNy9?HE%Fgg>s1#e< zP5@MWLt`~?UL4^ zr*!?&vd_h$dQum|{W7|{tuZQ;_w>u*#~+L8c|%x@n?T`vLuavHYIh*V5u_sQxHr_Y z5tAuJ##RqQib(U039ys=aWul+$|cCCUn*@6`IbAYdg`<1O*dfx00000pz8sYVY$U@ z&^y7lLf)9RbJ;_$t5F*%^^wqqZOpN7#iohr3i^jIHLj%-A>Dn zY5lH+&`>iH;5Z4&|GjlCHml_&Gj%&TdPq<=trB^X65u#szie}A-V9JaJs!3JSi&}^ mw)HpsFCYK_00000-1q~6H{N$vM`BlKfdA~KAVeco(owSA?Fn!nO>Jg{i>95o@d+ME}hy^+ewF31sO<$bj_$= z=`Ffm7ghv-c(8p=sj(e+!9Cs`BH18mG|JQ^Kf!qm;_&Ht&1<`aZakzGyBT%~b}cvf zjuY)moqdiI&>}NJZ%cRpxZRFVVi%RG?}bor@*w*{T@U%joJ-W6V(A%U=$E{IO&`ZzNXZ7EpL?=q&a}?M~!4g0cu1YeOxC zm?TqV9QDwoh%jdifStuZjz*~4xdj>Xm&({fK5}QXp8D!}(;*B100000rjU{cL2vp= z(sNlZVkKqC=>pQ_f^_)ZN-sGb-q*k%5hbTa342Mg1(Aw5U&%=vEsKE ud~C_-{s6?4obvvk`Jx2?000000Oc1GL6)N+koa5x0000Sp37@Hy8J(=q^~g zU&s56m!4PT0h5>0gYqtNTfD9Kv}Co)Q@$CV`(y*2NjYkkJDjdPxzwjX+Mwe(MyGSd_VM^|BG(C)wi7Q-}>);_3I}*@T>SEu)e}Y|G}2J z=r4C=;^ns;HBru(oiP86*;DPuucu$?Ss<2Co2~z&qDb28@1#Wyale=K&v~hNlIuok zz_G0FJQ|LSx8s}MK6d!~_3jS$cMvZyG7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4db19df2192fce3a8a7e8b837dab2fd1fa1a192d GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hsba4!+nDh2lBHtkep01(Ec9p-vtNEn+tU3KlGP{GGy}Kt}k-TWmy=6bt3T^6h*L6Mq*<{Fm_gmeB zFeWA8Yq3Z7&e5qe)0n34al+r}7i1@hX9VxQEv~7~J#FqB--h4I_1C{oGuSg@;w!FM z@sszpT(|vY{6ivTQT;5h6`lW1o@i8GH9`GcqW`XkSMNrqJMkwK2W7g4@4oOexgaZj zmf6IYh0|Wo5Ioqng5~nI9LY6)w|93~A5FWXU!rvTMN_)NS9hk!$9EZ@zK?en_Hy`I yVG|J4w%Y0O&Y%wc3bqA{3;+LThIyIc%u7y_)#vh#vCP;C67zKRb6Mw<&;$TzNSx9D literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..677778e9f8a2d731960c73ca18addf66715dc025 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|!FT6bVYazsam?FzjccEM>*?ZzPL*8|}XP3V9s+RAJAhx0E zJ3GUiWwxq4=f!+<`|@1Qam|d2nU!#_&f%x`)nASOHeAY{wrfk_vg(81b}GCQd%6Ag zW9t=GQ~qU!Yu{d~EWYEtRDIp!%;nM5hU*fis?#(yuvc$VX1%Y1pDNB4g0&rZ+w5ddU>eYhi>yg=|2nC rFI>i}_JU=m*$$D1tiXUl26~^_{&n#lY!qJP3ljEp^>bP0l+XkKmFu(e literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..1c21e39b636dfe71fa1af2e482352597aa26d017 GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`Jjba4!+nDh2#^txsRfrdoC z;<7{krXPv>mEi1_#*);q@Z0}+I$Sdx^;!i$+MoX0qvfah^tHs}14iyszZGaMRgU}l z$oy~h{)U5ZWUM}FsUC|cVf}ge%+k#|pQB>pgZWx|ru*n5tvxJtZsWC!*LTY7UQo<$ zV1KosucPnW-UC;QE6>WD<1P5|H(5aA(&tjuQ{NYDyQ;JIxsoBB7G4HCsx#cQA6 zXE<6gr~cH{iGC*Xuh+jmK0OZT7>SkpcD#u%-{fIxqHLs6#r`QkrbnTOw2$Qc~j&hzMBwd3a} zwg2b-{LXOvvc~sY&3O%;ll$jHRi84KpY}Y`c4@8!m+7I`UysEJKj6E%_et+x_cQDo z*KW%9-LHFk;`-8WsiEa6iG8O7F0*l)H2FyTxK=O%9f$-PGVeJHc}t6TROEt0Jzf1= J);T3K0RW$>yvqOp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..afdbcbce69822b8a4141e0f88fc9a53786ea1900 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh2#?xaHsJPi-m zJoYX6ul!Z---{b31vad>t#W$b`So6sM_lZ@TtWH^>~G2n2;SVbRx|LbxT$;j|3%eh z>@M>dWA%3!d#NNmk&v|0_TBbI!s^n>RleN&qIN}>vA5-P%(h(hJ1}(iscOEO)9z=v zy3`J==UQBPsO|Q3NmIK>V~3ZTFLaITv#d3HkGXGHq8PjLgFUes_(K~h4 zs?cit4XdS>fKK>uUu90)z8kE+qUTS&@hSHEl@+(ot;p}bQJ+%2J#T*C{+%Cq&rL~@ z^>eZBSo`PsFOR$G5919#SLA5N-<8jwdw9pXpN!ML24#E{{IKqaRj{b+DpW9wM)aI!6E75A9+OLBr9M#em`lvgqu}@dp19Si~IFKsmy!Ea9 SvOR{^LBgJ{elF{r5}E+r`lOct literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyram_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b959e18af58efb087d2190e0d992ee7586cc9f8b GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{%ba4!+nDh2lAm1Sco`yt| zdnw=Tg~~rNsz&VUOu6vr-+NC^=_RfOR|SB2VBkRN5sBoU#rlPh(rg)5_B`H}d;Bh+ z)tX0%wvA!0n9gSk{5&!D^t3y=6{qgptzwdQnezFz%zd4$)7KvjUAcEp;;Dlhc9wsd z+Thaib@|!7@80~$`LKi4lKh*W-yC&BN>%Nk$ zsq_6M6!-Z>{K32lo&QX{R&@SLd2&E#_XO2*iQbzJXHPxXI&I=&_KiPno@C}&My=JI z&cA)9hh~@kqN2$A?pr#Hmf!lnV4upmp!<5BBFfQHSM%kbtMFpUXO@geCwPr@09L literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..677778e9f8a2d731960c73ca18addf66715dc025 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|!FT6bVYazsam?FzjccEM>*?ZzPL*8|}XP3V9s+RAJAhx0E zJ3GUiWwxq4=f!+<`|@1Qam|d2nU!#_&f%x`)nASOHeAY{wrfk_vg(81b}GCQd%6Ag zW9t=GQ~qU!Yu{d~EWYEtRDIp!%;nM5hU*fis?#(yuvc$VX1%Y1pDNB4g0&rZ+w5ddU>eYhi>yg=|2nC rFI>i}_JU=m*$$D1tiXUl26~^_{&n#lY!qJP3ljEp^>bP0l+XkKmFu(e literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..1c21e39b636dfe71fa1af2e482352597aa26d017 GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`Jjba4!+nDh2#^txsRfrdoC z;<7{krXPv>mEi1_#*);q@Z0}+I$Sdx^;!i$+MoX0qvfah^tHs}14iyszZGaMRgU}l z$oy~h{)U5ZWUM}FsUC|cVf}ge%+k#|pQB>pgZWx|ru*n5tvxJtZsWC!*LTY7UQo<$ zV1KosucPnW-UC;QE6>WD<1P5|H(5aA(&tjuQ{NYDyQ;JIxsoBB7G4HCsx#cQA6 zXE<6gr~cH{iGC*Xuh+jmK0OZT7>SkpcD#u%-{fIxqHLs6#r`QkrbnTOw2$Qc~j&hzMBwd3a} zwg2b-{LXOvvc~sY&3O%;ll$jHRi84KpY}Y`c4@8!m+7I`UysEJKj6E%_et+x_cQDo z*KW%9-LHFk;`-8WsiEa6iG8O7F0*l)H2FyTxK=O%9f$-PGVeJHc}t6TROEt0Jzf1= J);T3K0RW$>yvqOp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..05fb07c7f34ad95a261a0a07129988f06e0cffa5 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^K-ba4!+nDh2#G}mDTf!2px zO4Q%gdv2a?$I?{Mz2u6e^8fGGjx|{-FTU{@sEJ`(b*2A;gJ(YVYpSlFsq^96JcsK( z@6y6TwCD7HXIVB!GhS8G>HPd>{Z;op0`nbRUuZ71dROI>zenM#n92Rbbra9-Q@OpS zgganH{2|TYKLH!q61fVbzD#y(U6;fWbf3BJ+P&K`R~*eBdZhgRq2IJsVaLs)pUe&V zN0T!a+Wr2%uI(6mm`$PE%>4a7r#csZ_#tij>iC7X(+hfDzhFP2@7O#u)A4McGk4UH zGfjHmWVr;)|1Q4A{3U+bPxbKkej#sT^B!G&KSTOOo6oP)CX3Ym9$nF>zH7qr*%MYC hj2F}g`40(vFprgnp|vd$@?2>|N3l@tH~ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_buyrambytes_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..51bd17c56f852c247ff6df5bccc6ccc06ddcffbd GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh3gqfoN~k3-J^^Nr`%uaM0;)540<;29`lbyi(>4i{Sez3E4MoTX<6mLIn9@k?F(MR zlA^U{w%GU7=MSo#kEm)?oahsM!8d_>OVsY`@hLYgA8b;7$+F|T-Ohchk9}DfwJN;h zr}<0wio1*J+0QBn|IO1{sP=2_L}vdrPV;WG+aBdwZ#Zin^H*N41?(HA@^yyKnfW51 z%iz_l;I|h&=bbu!wdnSyUtv+JOamV)g)cib`M=B-sqNqLWxoq9mDpZwpAovjT~L+r z*xr17?zOLOYs{3$7v4AHUU@@}enf7F@vbVbeG1ugr@py9v$`G>o-n}ime)!3@4g8o Q)@&dlPgg&ebxsLQ0Q^UvbN~PV literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..7320ef166c583e82299210784083527d714190a2 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#VBQf09@mRo zX3gF3Uv=a3It9fP=ER^4YhTP;&*NJ7*`tH$IxA4yjNcnICl}|{FPmaEuk3Hm{crXC zbBcHVsA_ohIC`IKPf_x-Il*3E!>-!9rWdaHZ}sYaSw?ip)WvoF;xkqhcI-K#9ORVA zulDMun(m@qD|Q5>DqmK2h*_SuM$Uaf`pS8ib?6|X-?HU zeI3;wMa-`+S$zFN#lDu)vb$dQZvP}C7ux@`0O%$Kld$hHd(=u6|82-G-M`RnwOc7? zunuGAdBc6%=FQNV==aNqZ&Bereu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_deleteauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbf12a19a618e936810c364a12bc9e6258545a8 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-yba4!+nDh2#B43jMPus)H zJ)Ga|FTH!ze{|`zoeP=%irsrIuE#uGjBCmipe7hNkosg!@j3VRN{__$GMqnF7&-0V zmUAtUHjBhJgnnjOpIPv8#pJghbEi!)D({awAT9p%*XCo}wH}wNI$Uf-@WXnk;a-sZXi)lS3j3^P6K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..801c023e3ba0a6ad7bbd10a7f8ceb930e1a6f565 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#Y*DiTk6YmO z%X2gSdtZwCb)d)XtNz?1Z=d&-UOmZ^{2Q7zS%KOt-YJ)TUzN4qRprC%KklnuaTok} z%+L2pd}8{6ucvP_-xu2GyGl!G-(Ih`SsTBtYQBF|<=uqf51;?&J+BF^i3s2K?OI%S z$NI_d6K1cu%l18bwIkneuA8qtsw={F>X&vKW}Q^HEBS$=eu;bi^wt>GjL%gD2j?6; z@xy$JHK(}w*0Sn8vtBm+vp$nII{_VYLi>5_JK3FiN6Ne-mOqf*xb9-_jU}l&zgb4g zALYM#DmC+(%k5*S^DizpIU{`9-RAnaGlNPb3gS>-_L8g?Vh|o z*#FS}T82%BmwE26K9|^Calg)F?;(SfOZLlzO<&5p@hTOHc5UI9DV5{82WT-eIAC^P WDf(&Pb-DFMAYo5eKbLh*2~7a(ld28? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..a09ada95e8de2e966dcb01aea8920e436065e361 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9iba4!+nDh2#F5e*qo`#26 zdrrQqS9$k{Uuh-lx2cY=Yv#+RIlFDR>NkS}sEI+)Q*-GQw|Jo=hpU;U^*!FC^ZIU> z)t|2E-&ww8)gAPf^0D(uzZZ8 z!#xn$=GR zT5NFs|C*zR)-v<$bewl*+v2Z6+wJo5yk;NU)gR|QTeZZ}RC*EPclYNf<@eQ1%@W^S znYjM;PG)^U^T$*@OYca5E7=5bz_x@+C7@Lv6oP3vy59I43( z`SOmvlD+zK->ZKiMap|FzIv=%+U)aXd1lM37yfR1Hi4}+xhykfcw8$OLE(S^4T<+& WmA+m1tbX1pkf5ilpUXO@geCx=x1=Hf literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..7320ef166c583e82299210784083527d714190a2 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#VBQf09@mRo zX3gF3Uv=a3It9fP=ER^4YhTP;&*NJ7*`tH$IxA4yjNcnICl}|{FPmaEuk3Hm{crXC zbBcHVsA_ohIC`IKPf_x-Il*3E!>-!9rWdaHZ}sYaSw?ip)WvoF;xkqhcI-K#9ORVA zulDMun(m@qD|Q5>DqmK2h*_SuM$Uaf`pS8ib?6|X-?HU zeI3;wMa-`+S$zFN#lDu)vb$dQZvP}C7ux@`0O%$Kld$hHd(=u6|82-G-M`RnwOc7? zunuGAdBc6%=FQNV==aNqZ&Bereu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00007.png b/tests/functional/snapshots/nanosp/test_eos_transaction_linkauth_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..9b9c5ebe0ed88757773fe20706e028dcb8da8cda GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}6ba4!+nDh2#BHtkep0-4j zdrQ9C2fcs9udL{ra8u^(jo*JRoizK?keKBK)C2<$MEKwHnXJt6@^tx>{W;9#l-bY__1!OUpbXax|&DcaoLp^ z`TVUn>n=?E&vinT#aLLKCFFj|z6(b!g74Tre)R6O!WRag2X<`d`WO83%UGm&*y#Vc j@>_3qo5DN^q<8ExKl6Ui=7UiYB_L5xS3j3^P6n4yXYHl_xl=AN&PV;lM55=Ti0000000000mAf=R2vaaHS zr*#2$@)dpdet2QSDtER0wwULx&~V+N4Z_5Q~r)IeoU?Nek#M&BTgmD z`)$UV&p|!<)Out?d*y|zo8u*4%X9E;%|(-yr_k+a!}RN+rxs&!rS+g@-v^XsSFQl+ z4YTv`{y{&!m)!Lz3;+OtFTxWf{$!V5#>p0D-5P6kF;Baj^$Ghw>#ecTFXL4EGradH zWpKx>?AB5BZWAx2+v|Lng;ZWw+YARsjh%CWy(T~zyGb{>wL5LJ1Qo3WkC*S`qr&^Q tH~UP|juQ|@`;>Gy0RR910000q{Q%4EE%?FaCd~i<002ovPDHLkV1n@=&e8w? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..a353e5ec3b3987ec30ccd800deca83a6f3e8e6a7 GIT binary patch literal 431 zcmV;g0Z{&lP)JYiHsh)FP#+<{9003Z{FY5r_QA+8a z&pB_7d6D_gItw008dC`_pp~X5V;GNXxknRR-re(9g)P z7GonOr$y5-`sB05etI|O>~wf_bF}0@zZ#MOxT^)#;ACB4DrM&R9V?~CujZ};j^LUk zP8E4PSA?4EyE9&bnwC?IyT=~5n*o}yLljCa*8gFCydq5r0e(U4c zGhTxBq+%bE2i+%%SL&U2N0000000002{ Z`~t{!BO>dPx@Z6Z002ovPDHLkV1n}5!gv4x literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..add98925b3efab4ce9b3d48543f1fa037382337c GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WLba4!+nDh2#^rmJ7o`%HR zFa7TPpLD}peuj}@jLY sj>y2xQar)tK{4ha0F31}b_4oH!o7a-UNX>F+SPFy{K! zyK65#)U&%L{30~wfhMn({L0Nao_EFkXI4l1Cpf!W-d*-XZDVZQ>g7qhWelD@*tB#0 z6K%$cT(1|NwSE8QPtJ!Otd{&Y>n(q=o#2gnd-reilew~a)|31ie!iOgdv_L({i>xF zP3P?=mmSKM`>Vc!ZRQL9U=GuZ@;x#UN#dK1Smtzoc%;^*d)4vji>Qf_|9(xiuloG@ z5yz@sH}~oCMbC*&_x$4*61u5&;(oFARa5<{?|lq-ytJpg@bCQMYmZM`FsgIqPEI`( zXj*b}9?Pqc8B?E{KX~z<i_ZFN%^Y^K zPwW;jQ{>&%B=V7Ad~|;OTtWD&bE5jDONvssBqS1;wwOQ>h&owQEVVe}BEB zYUebyTd%^Sxl(Rtt=}JX`?~M6o^12e-ZgzGcT5Yt4;cTJOxSIlx=+9CO@m)|e_T}b ztMg*lb|>g=wXETu+j9L?=UOob{sOxjs`UjQWR>FVdQ&MBb@0F_9qvj6}9 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00007.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part1/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..2494c5fec14e00b742af17694d6fbb5fcf81314b GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9cba4!+nDh2#AYZcrPebCS zH)?nOd)!IoPg}CEp@)<8?|${`k{33KvOWjtPUli=5m>YS(6Q6Mm|}eXJ~50)xpM!S zc!0|0$9vbi_w^e-+S||WZs7K0`=>t}&4bha@O#uXTj{q~xon^O)+5bQ?)bGeH>N8r z-?U)!P4SzDgj6#w--$i+NnW9Qlg^`EYF}KpCB!$SSo$?RTrF3q_4{VvnQyyKY!(1o zeJrc~+3r6t3(g+*{r$b6-8iD_g7=KK2U8qPEElHk4B0+s&(^Jbj^z40)7UNiA^pSh z&)V#lbv8c`HNh$G%ou7X$!?i>iE)Mj>&wnS|K&@KZ%eP&C^bLm zS#^D7&u8D=-;><^&+VIC{d?xVd2?zf+e#igAQXDylIJAJ=7k>mK$jo`gEQ2Y6{NCfH&caDC@%XX)x!1j1p6=)4IL^Ok{ko84{A!b0(_QcCk+R@E-LP*q z?SKe(H`uvQ6CwALYz}r+x^3Ki z1Qjt0^*|_aa>wS~UNaG!zcpvV z0Mv=>G|hrVoyU47)I0$&Z?vwPrJz;?PKG0+Nsij?88p0YWWEMGvGQ-=2$}M49F~QT7ChaY?B* zBRwh|4J?ghx|^)lD`^a0flwsD<`5+4(t2Zrvu4BlWpUR#RSZ;@zgp_qdxLYtbYobF_r1K zsgQIAv~{<>EOfOX*Z7o-ChC&P=_2g}+p%?UpSypW2;?yA-fh_QJ4LH-Q(xdEll{62 zMH$a@zE2C9CEb7%`HH)`Yt^PXQI_3?SFm0(X2SrSW0=x2i#sW9wRPTC#K851&35bn zcb~47Gt~el&e20+;NJmO4y@(1Fls0rf4p~@ZeeERHRPZV_V@;MU$FW*u zqWEh3-D#`^0!M^}tkzm_;11E2h^2frcAo$iqw(t8rE0qMaqLdOx;0I&%>Bmmv4{E7}oOFG;E=Zjov$KW{Agb!2IYL?V$$BoYY+ z7Q56XHP?qWC|{GEpRMLr6|oGl&t0?{vw|CMA6>Suo9WSJ1u@8*x`sf=;!1iQFdH$} z>8Py`H3qnKbv_+bxgb^fl#a%7iS=|AcY^iEIoRj!za|1Y44YR4UAt4b3bpkGRwCW6 zx>1<&i1U41&@Ac(ROAtJ?bNbEbAoAB1xFyQMAVuIIM*=6GYK^)>a=y%SL8soh1GVP z0QH=%rZd?BCdTL?IneI_Ne8y^HfRY_!&Q5isSZX~-ck;HkmVcLQi*OV08A+CZsjDrJ4FBS)xGK64sNH4TmRyw!LQp;o?k_@ z!v}qBS#6J&k4myoOS~)}r3Cz?MXRt{Y+0`JVM)rfe)y>S_tc^OX~yXZvV`L}ths+G z>2EJPcqeM2zw6&}4wlc3Y26)m(LOr7Z996E5B0rDee0s_xgz<<4(ZW0>~bMVX0jC3s(IRtPj-F-c#dc%uPkFiM)`M6>^|kbCTD=ik12*0jVbd}E z4W29DqW_}i{?MZCYfX%4spPqT_u1o?fM(4O#dOX+_n<5};oY{N3F|GD{#Mr4617)M zn_(SPzWBEyn)9u1dU7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb680e41ab9ba21a462fd2e991fd4c81a37fcf5 GIT binary patch literal 438 zcmV;n0ZIOeP)oH8kBD%O(3-t+OMV|il?0uq}N000000Khai>i~`@rK}#$ zIZuw{dw1&qhHYhE|H`e0bpQwTH+#hFr??%E-ZLI?@>vA#fVfGQ0(Sr-z*yX*OMyFp z5nwEC(xrI&fQyMb0)jsE_u`EJW#+lYqyzu}a6R6io{KR0k3S0Obgn~{!MP6fJMz+E zY{cZSXga1pxYgKC@8+DH-d?LYI^{$E*N_arT`i~vC+iABDKpQnu9PA#&0Pm9!8J)7 zD)M-)2sPPvN1uY4mP3tKKYQSA1oY&R_3`!@Y777Xfd94s!ThX8c)4jfPAzHLdfIzQU>dz>y!F-ogZjDj_H$Ui52&}HZGGH! zG#F1obMoH58;}#1?ObI1Ml8Sl`YiQa>3!KSUkS`cKy&eRjqS^sbrEhF%QpKp?J1oC g000000095u2?NhAxzp}cFaQ7m07*qoM6N<$f=YeOF#rGn literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b959e18af58efb087d2190e0d992ee7586cc9f8b GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{%ba4!+nDh2lAm1Sco`yt| zdnw=Tg~~rNsz&VUOu6vr-+NC^=_RfOR|SB2VBkRN5sBoU#rlPh(rg)5_B`H}d;Bh+ z)tX0%wvA!0n9gSk{5&!D^t3y=6{qgptzwdQnezFz%zd4$)7KvjUAcEp;;Dlhc9wsd z+Thaib@|!7@80~$`LKi4lKh*W-yC&BN>%Nk$ zsq_6M6!-Z>{K32lo&QX{R&@SLd2&E#_XO2*iQbzJXHPxXI&I=&_KiPno@C}&My=JI z&cA)9hh~@kqN2$A?pr#Hmf!lnV4upmp!<5BBFfQHSM%kbtMFpUXO@geCwPr@09L literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..677778e9f8a2d731960c73ca18addf66715dc025 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|!FT6bVYazsam?FzjccEM>*?ZzPL*8|}XP3V9s+RAJAhx0E zJ3GUiWwxq4=f!+<`|@1Qam|d2nU!#_&f%x`)nASOHeAY{wrfk_vg(81b}GCQd%6Ag zW9t=GQ~qU!Yu{d~EWYEtRDIp!%;nM5hU*fis?#(yuvc$VX1%Y1pDNB4g0&rZ+w5ddU>eYhi>yg=|2nC rFI>i}_JU=m*$$D1tiXUl26~^_{&n#lY!qJP3ljEp^>bP0l+XkKmFu(e literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1a67f2853330bb8a10a83c13d714d185478984 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|M+lS8F-PptRB0<=^|0MXt9FiwZacH8GsoyGP1T^XX%W$GzA0yw2jE9%S|D z6npiriu%T`S7#S;N2?mT6>3kBU%j9xTN-SB^t&OmPx#Ch_fm%yy{>aFhke+>H{J14Wh!hN+Rv--z%#zwb{f4@E3R_14agTe~DWM4f8(OfU literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..d87476a37ffec577c138e45bb8b2295dec72ba8c GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}6ba4!+nDh2#AYZeBfNS9G z67@Iro|~uFO^`5ZxRf!oedqJlp|dBLr#S4&1?oCbvi=35$&ARKrb|UkCvo1p$oxX; z^QlshnC&Zjsb@v6%0d#>(Qa^1_i^Fpv!>7B2}d!Mte+`ix=-)8%pZ@f31 z_1eyG?uUpU>v!jaQaZs6Zx+m#3CYlJQ}}9{kiB;ASgXZe?r z!THta`3JSv$e0&cPFv2mT>gme242(6?E4*7%DcyV?*I90joV&^$FJsneqEWx@sjDu zn^W8F%|5;Nf7TaI@dL8EG|MO5K5=frW8d`R$5Nn~E$qNZ8ZW&t;ucLK6Tje3Hii literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..52468a07bd0385d1e70116a6f577e8a132b813b9 GIT binary patch literal 520 zcmV+j0{8uiP)OV08A+CZsjDrJ4FBS)xGK64sNH4TmRyw!LQp;o?k_@ z!v}qBS#6J&k4myoOS~)}r3Cz?MXRt{Y+0`JVM)rfe)y>S_tc^OX~yXZvV`L}ths+G z>2EJPcqeM2zw6&}4wlc3Y26)m(LOr7Z996E5B0rDee0s_xgz<<4(ZW0>~bMVX0jC3s(IRtPj-F-c#dc%uPkFiM)`M6>^|kbCTD=ik12*0jVbd}E z4W29DqW_}i{?MZCYfX%4spPqT_u1o?fM(4O#dOX+_n<5};oY{N3F|GD{#Mr4617)M zn_(SPzWBEyn)9u1dU<{9003Z_FY5r#$T@e9 zi^$?gKKE@Mz_h*WkH2#3$2x$M+QA+%`zdY*q`w)DxcF=WcR<{vYk@m}8DK1K(zU=H zzzi@JH|biueZa#+odH3g`djg4z+mNh#-aoO0PsBCpPsWa`;Rw;bUD|d>fl@l`Wby` zF*ag)T2vj=9^7l}r*}of>G102=#mfZUqdxGiY3@2;3$9Ay zRFTJXMX1WYJL4s&YB|-o``H6`GoYn!S#O8WRAT@D0Q_IaAIz_Mgx8yf6P4FTd0U*h zFgt_InqeP!+=zASo!btp?5*0}*7%o-RZn{_2`n=%8t;8|{NVUpsVQl!XZb#$3`4{E zxQN(R=Z%-3HCNug8}PIK7{3vdm%GnW&Xt@M>C9$8H4Mu=wk>Ctn{d@ww>hr+p2t;} h000000002E#V^7@E4iC_d4>Q0002ovPDHLkV1n2q%H99~ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00008.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00009.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..ac34ecdf6c226a204c0512fd899f55dc553c6dbb GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{#ba4!+nDh2lpiq;7Ktp2o zuFmiFLggbW?RZHKHQJyB$LYhTS9`tVaJ&;PSKY+oPz$Mx=y zaKfFJ-{SVKxy)7aC-aCs tZtb33yKUKH{C4bLDq;11BO;I#`pgZ!i&<|wr??grYM!osF6*2UngG+fvj_kH literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00010.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..091daebd93275e9e834ad7df1630f090a92c172f GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WHba4!+nDh2#pwM9ffriAh zU(~AqEARA{-{RJM!S6=uzxSG=&1)u4v$p6FZg{_&#^@>{JcS+m#pI~eYJSs0%N#tWO2`r*V{@`^9zR-YVgM zXvx!&rA&9e$8E{@!pOj|q51U||9ZC*6~8>(jg`tsdH%Jh62a;v&-PxEEoP@jTl>}L-}wI;>?eH*`}%=-1s3;Wk@>eQdZoh2mr z`*z1au8!IJyf&0nm;Yqpsrs>`|JuB7-BXj7SVbG};5I$9+B9h``-0YYeP3Gs$`&&( z|Nh4OX!ZUdrQsXDXU3L`B=%&jnAyxJ<(S6TrnCp>d1P?FKwonH&&51t6M{j)p00i_ I>zopr00OC=aR2}S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00011.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1a67f2853330bb8a10a83c13d714d185478984 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|M+lS8F-PptRB0<=^|0MXt9FiwZacH8GsoyGP1T^XX%W$GzA0yw2jE9%S|D z6npiriu%T`S7#S;N2?mT6>3kBU%j9xTN-SB^t&OmPx#Ch_fm%yy{>aFhke+>H{J14Wh!hN+Rv--z%#zwb{f4@E3R_14agTe~DWM4f8(OfU literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00012.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00012.png new file mode 100644 index 0000000000000000000000000000000000000000..4f18b1423e688818cd0e6ade3c1a5be1eecdcefb GIT binary patch literal 322 zcmV-I0lof-P)dk+8r_@5G`%{BX8`O89m!ZS5l z+lby9v6%g)5{j@Ujp@aOxDWn29Z@UFSrc1?Z3J|Tt%PTmY> z|I!IxkJ=iaWqtkgdjGpS``_7bs_QB+D9*aDIpKU=(hqf;8!_jb^z@mQi=DANEaMO#u=P_pFF|U z{>4eKkJCe^HvReQE!6G+6<)z4*}Q$iB}^(BQP literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00014.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..5a968b35d6fe923f59c3ef59e0c602abb8ba619e GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x5ba4!+nDh2Vv{17Gk3-^ek%7^G05wYPfwvu&gRbIiLZI)3VzbH zuNQc0DyNigssH%kiC^DRkAD5($ZoQ9N>b0$z}d+g_NmpBrC0{@xn3=CxVUKI433QR z{fEogZI3&D>4-5dv_->qDTYh8rk2#UX3fX)z{K*Qp zpI+NO#qi$iH;3>1xm$DS4&RAaSyl74)rBO_`W?=&n1A1?x3|k|)$|;fUtR6{IlO+w z!HZVE|GP#QGk;iIp?gp zm!=i(8Qifx%vL?m+_LNrw~@*B*Oj(9SLZMuGo8KrCQpG-bwT;2`g>IeSB5JV?wH+t zWZT)_^GmvYzE01aGV7JTn|w@X=nJns?dx4C8G+^_friX`2mcyAo~Oet0}}Og^>bP0 Hl+XkKZ@IT! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00015.png b/tests/functional/snapshots/nanosp/test_eos_transaction_newaccount_ok_part2/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..f84304a91eb2a40ae032efcb0b3a927d3412993d GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x3ba4!+nDh2#Zr))9o`#1d zw|sZ}pI9^fZ%0aH%?vNa8=3c?hd&RPGsD5ENCv141|Ep5zwt$B(R^>s#`I6UE=Twd zJX^2-=1JEH$%44b>c`oxUnX=+3Ch{C>XziiimL~f6`YbaVy*wS{L9V2jYq9sudaXf zJg7@n{k8*tW{mZA_tk!8zj;quUAi|f^zQOq&4yhm6Y|(}65oG$Q9Sd6DMRjFu`q+@ z30Igm6wiCblw03*BlNcZ%)h^8x8LgVQ!k&9a&o6v-HgPEEB~3z4GR8yR-)Nsjnl*m zKKH7)%J8`#Kd<`}x$LX2HAD3Grd_w^)E#-py0tfV&+hK)ce6^1GB?lpZx$bv>nZnN ze~0uOvv+QD^8WVJb4w(w|QP)y2eU8}9{R;RK{>dhCt=t5)7Ml(PYedb;|#taD0e F0suqw!ZZK? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfe9509d914a47c93bf105f0df0c9e81769c9fd GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-xba4!+nDh4LUA`s*p0-4j zdz|0vJ$H-qi%q}v*FyA#d&PX^NUq2zji~9YKwU5p5rM!#MA9Ccbm&&&D zGM#%QxVJI#tn{8K2d^$>xjj{An?~q6xxJ0%dZ(Xmc(VP(>u;N_wb$R~ekS#1+jsd) zQHA2nzpHj$Kltc9+fgx;i$4JK;_=yiF#A+eLm-&oHKik@Y1*>nYV5izNr`5 z&docw`uOr44Zj5Hax6JA+`b)KvDaX(yGx-&`q}g>8`DcCcPx%;SbDXR&2X>OiEUB~ zGhh6_!~H;{WnRO*KSgTGA5UNPZ2m-;pMi8jxPO}1^~;WzCg*@eJzf1=);T3K0RU_h BoD2W} literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..091daebd93275e9e834ad7df1630f090a92c172f GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WHba4!+nDh2#pwM9ffriAh zU(~AqEARA{-{RJM!S6=uzxSG=&1)u4v$p6FZg{_&#^@>{JcS+m#pI~eYJSs0%N#tWO2`r*V{@`^9zR-YVgM zXvx!&rA&9e$8E{@!pOj|q51U||9ZC*6~8>(jg`tsdH%Jh62a;v&-PxEEoP@jTl>}L-}wI;>?eH*`}%=-1s3;Wk@>eQdZoh2mr z`*z1au8!IJyf&0nm;Yqpsrs>`|JuB7-BXj7SVbG};5I$9+B9h``-0YYeP3Gs$`&&( z|Nh4OX!ZUdrQsXDXU3L`B=%&jnAyxJ<(S6TrnCp>d1P?FKwonH&&51t6M{j)p00i_ I>zopr00OC=aR2}S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..48e1326eb3870bafb8b954c65b976fd04c3fcab7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2lG+(oVKx<;w zF5z$cm)!K0_u*juD3<5`|NX^P4}2u7x13`HYPwtN=Kny-*t@UdefyawSI_92Z&~sF z1?LsPPm0?Wrd5;%3n;kzh*H*vdzkbfSj(^4KbjzxIrm}B+RblhKt0heOHBU{UuHW?O-u#d2 ztmAFH7MstCkSKXS?{j_Ros!a9Cx6bJZzY-6X+I++)Gm6@p_m`>6EeQ!U+)U?zIfK{ vfa~l2MM*18IM6k-yd}JSMH2MYe2%Du6{1-oD!M@+-m`t)x`t)Tf==Z3TEm8J`N9{m!(YHCVkYUsh_1vc#W*GK>1xGxxU%R&6|)6G)X zRu#=zmL|g(y4hFO-SRkxhwYaeepZKP|CHfPI8{FL$u)*dE-=n!~K~ZjVbiw<73=d8}H2HFT*X}c~yf41&esgBI&-F;-oC|ASY@VKV?Z0?x ztFC5T{^N_MFKCyq(+hsX{N}~nGVjFK&o$>hGuh(*yW#TegA)&bd8C}6Z+GI3-#(tR zb_S9c%TKOrzHC%-Myf=4k4z8G2C0-q_CBgtTbP0l+XkKM4+U{ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..20b29d60a821c17b70185ceb0cdb4409450deb77 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WKba4!+nDh2#AYZcrPebDN zH)?nOd)!IoSMv>bn5iW4cfb1LBoFSZrKdrfO1?|kGHM^&A=e_{mHzIDZ55OMcS+mE zMH0yzj??zV(i~oS9u182OD>lIiC%GJX8PBm)S*^ z)}L9opLt26GP`L^Dc`K(i(Lk5Pi^5WOemc`Z|9k7db#JgTe~DWM4fO_iU* literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00007.png b/tests/functional/snapshots/nanosp/test_eos_transaction_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9424054aa792e9a43858cf2ae5c07ecdd2dfd6 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^K>ba4!+nDh2#EMJoYk6WP0 zyOzKDncp5AZdo>Me_&%>%Dc)#o{E#jx~?SxHNnAMjipn9&e^#hQLbj5c>b|P-|a+c z#`2G+?m4VJDt+gaz^lZAbw>}eEj?ws+5CfI%1yhdI^Wpu#~-fQ^-ez`yWrNn`X!+a zT1&pJerCrnR&TDcP2uAdS??E|A9$_4y!+ODrkVA2pE&n~y6->#$%&m-S)&u@_&NKM zU)AN!_nWV(O#XXXXUVKL@jX&0i?~xC+0J?S?d9M4SCzj-RIF6Wvsf=kxwmI7{cj;3 z{9FEH*&egAd2@=s>+$Gc=Zk787kAa*d)yPX>6}7rgIrbX1(PlQyZjwa+jsQZYVA49 d2=^j`1OL5V$)j05d;Qozf}XB^F6*2UngFM*kRAX4 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refund_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..f84304a91eb2a40ae032efcb0b3a927d3412993d GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x3ba4!+nDh2#Zr))9o`#1d zw|sZ}pI9^fZ%0aH%?vNa8=3c?hd&RPGsD5ENCv141|Ep5zwt$B(R^>s#`I6UE=Twd zJX^2-=1JEH$%44b>c`oxUnX=+3Ch{C>XziiimL~f6`YbaVy*wS{L9V2jYq9sudaXf zJg7@n{k8*tW{mZA_tk!8zj;quUAi|f^zQOq&4yhm6Y|(}65oG$Q9Sd6DMRjFu`q+@ z30Igm6wiCblw03*BlNcZ%)h^8x8LgVQ!k&9a&o6v-HgPEEB~3z4GR8yR-)Nsjnl*m zKKH7)%J8`#Kd<`}x$LX2HAD3Grd_w^)E#-py0tfV&+hK)ce6^1GB?lpZx$bv>nZnN ze~0uOvv+QD^8WVJb4w(w|QP)y2eU8}9{R;RK{>dhCt=t5)7Ml(PYedb;|#taD0e F0suqw!ZZK? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfe9509d914a47c93bf105f0df0c9e81769c9fd GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-xba4!+nDh4LUA`s*p0-4j zdz|0vJ$H-qi%q}v*FyA#d&PX^NUq2zji~9YKwU5p5rM!#MA9Ccbm&&&D zGM#%QxVJI#tn{8K2d^$>xjj{An?~q6xxJ0%dZ(Xmc(VP(>u;N_wb$R~ekS#1+jsd) zQHA2nzpHj$Kltc9+fgx;i$4JK;_=yiF#A+eLm-&oHKik@Y1*>nYV5izNr`5 z&docw`uOr44Zj5Hax6JA+`b)KvDaX(yGx-&`q}g>8`DcCcPx%;SbDXR&2X>OiEUB~ zGhh6_!~H;{WnRO*KSgTGA5UNPZ2m-;pMi8jxPO}1^~;WzCg*@eJzf1=);T3K0RU_h BoD2W} literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..091daebd93275e9e834ad7df1630f090a92c172f GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WHba4!+nDh2#pwM9ffriAh zU(~AqEARA{-{RJM!S6=uzxSG=&1)u4v$p6FZg{_&#^@>{JcS+m#pI~eYJSs0%N#tWO2`r*V{@`^9zR-YVgM zXvx!&rA&9e$8E{@!pOj|q51U||9ZC*6~8>(jg`tsdH%Jh62a;v&-PxEEoP@jTl>}L-}wI;>?eH*`}%=-1s3;Wk@>eQdZoh2mr z`*z1au8!IJyf&0nm;Yqpsrs>`|JuB7-BXj7SVbG};5I$9+B9h``-0YYeP3Gs$`&&( z|Nh4OX!ZUdrQsXDXU3L`B=%&jnAyxJ<(S6TrnCp>d1P?FKwonH&&51t6M{j)p00i_ I>zopr00OC=aR2}S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..48e1326eb3870bafb8b954c65b976fd04c3fcab7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2lG+(oVKx<;w zF5z$cm)!K0_u*juD3<5`|NX^P4}2u7x13`HYPwtN=Kny-*t@UdefyawSI_92Z&~sF z1?LsPPm0?Wrd5;%3n;kzh*H*vdzkbfSj(^4KbjzxIrm}B+RblhKt0heOHBU{UuHW?O-u#d2 ztmAFH7MstCkSKXS?{j_Ros!a9Cx6bJZzY-6X+I++)Gm6@p_m`>6EeQ!U+)U?zIfK{ vfa~l2MM*18IM6k-yd}JSMH2MYe2%Du6{1-oD!M@+-m`t)x`t)Tf==Z3TEm8J`N9{m!(YHCVkYUsh_1vc#W*GK>1xGxxU%R&6|)6G)X zRu#=zmL|g(y4hFO-SRkxhwYaeepZKP|CHfPI8{FL$u)*dE-=n!~K~ZjVbiw<73=d8}H2HFT*X}c~yf41&esgBI&-F;-oC|ASY@VKV?Z0?x ztFC5T{^N_MFKCyq(+hsX{N}~nGVjFK&o$>hGuh(*yW#TegA)&bd8C}6Z+GI3-#(tR zb_S9c%TKOrzHC%-Myf=4k4z8G2C0-q_CBgtTbP0l+XkKM4+U{ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..20b29d60a821c17b70185ceb0cdb4409450deb77 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WKba4!+nDh2#AYZcrPebDN zH)?nOd)!IoSMv>bn5iW4cfb1LBoFSZrKdrfO1?|kGHM^&A=e_{mHzIDZ55OMcS+mE zMH0yzj??zV(i~oS9u182OD>lIiC%GJX8PBm)S*^ z)}L9opLt26GP`L^Dc`K(i(Lk5Pi^5WOemc`Z|9k7db#JgTe~DWM4fO_iU* literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00007.png b/tests/functional/snapshots/nanosp/test_eos_transaction_refused/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O0000gX9g;)ZTl>^=Ar7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b97911a266a89752767b32a087fedc668d4e8d1c GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}7ba4!+nDh2Vtk59^9=E`f zJD%V7t9*OJtlZ4_vOo9p);pg=Bok&FVe{nxYJ!0T3BzL&k1u+=*zDm?m|8ez*-HDh z#t*gP?y*O#`pJ4e)8OZc$)_jU=xU_Cds*9{uXgHZa$o+mW2e(MYxPc-UM3?`_N{k| z(1aNq)@i-_n(}eC<3^Uw_MCX9e22&dzHj69dD=#9crzu3>CXPz)LQfAkB56q$}jwx zX(Al={YC$S^a-8+GNl%({ZdzEpSQwk-i~(LSi3#TEDM>P>W>^-a19bo9W&B^bzo4vBe66`c$l3Y!(F=b8ZGY{yS$RuV``zmEi1_#*);q@Z0}+I$Sdx^;!i$+MoX0qvfah^tHs}14iyszZGaMRgU}l z$oy~h{)U5ZWUM}FsUC|cVf}ge%+k#|pQB>pgZWx|ru*n5tvxJtZsWC!*LTY7UQo<$ zV1KosucPnW-UC;QE6>WD<1P5|H(5aA(&tjuQ{NYDyQ;JIxsoBB7G4HCsx#cQA6 zXE<6gr~cH{iGC*Xuh+jmK0OZT7>SkpcD#u%-{fIxqHLs6#r`QkrbnTOw2$Qc~j&hzMBwd3a} zwg2b-{LXOvvc~sY&3O%;ll$jHRi84KpY}Y`c4@8!m+7I`UysEJKj6E%_et+x_cQDo z*KW%9-LHFk;`-8WsiEa6iG8O7F0*l)H2FyTxK=O%9f$-PGVeJHc}t6TROEt0Jzf1= J);T3K0RW$>yvqOp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_sellram_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e198f7a74101dd977138ab8b307eb34e3f2ab0 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}8ba4!+nDh4LUA{vKJZ*_4 z_c*`Td+rtI?`WAKe{!0m_r2#H+h;xq&)F^k(zW4E_ID;JmnAjQ$#=F+V!gLp{DSG^ z-5o2kc7DFOw?R|$X^fC)RpmCDtJX`*LeaOr`ub$z6 z$K7971%JM*{d4o{T-~F~ABE|^3Vtg1o7JFJy6X8(PnQ^*vYC1ZQsXZ19~U_g_~;ZT zYrxCrCj*?Ke2>%{ n7x7!2mV1Ohf;@=~`hPNUiQcZf9kCr4S_}-Hu6{1-oD!M6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..57b322b2ab49f9f18accb61d6b5d1c7bad130ec9 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}8ba4!+nDh2#B43jMPus)H zJ)ZCDm)t!ne`M*)1p*FH$A13_k}=qyd*%vAI}99%-?PYi!-{KBUV;<9-P$86c=wp4 z?dI|lcCnc+r01^b*wT@`w)XKKyNj|GM|4^*`POVM5jwS-iO2rnx0P|itJ6~pW;05J zzG8f_y>WNW+S^Oz8q_y1Pk7tzVt;e`vifMfoBNu!UD|#oR{mJhi6!+jXRh%4pVZ^1 zGS6w^jdtaw-P`}k>_4aZw{o2n4yXYHl_xl=AN&PV;lM55=Ti0000000000mAf=R2vaaHS zr*#2$@)dpdet2QSDtER0wwULx&~V+N4Z_5Q~r)IeoU?Nek#M&BTgmD z`)$UV&p|!<)Out?d*y|zo8u*4%X9E;%|(-yr_k+a!}RN+rxs&!rS+g@-v^XsSFQl+ z4YTv`{y{&!m)!Lz3;+OtFTxWf{$!V5#>p0D-5P6kF;Baj^$Ghw>#ecTFXL4EGradH zWpKx>?AB5BZWAx2+v|Lng;ZWw+YARsjh%CWy(T~zyGb{>wL5LJ1Qo3WkC*S`qr&^Q tH~UP|juQ|@`;>Gy0RR910000q{Q%4EE%?FaCd~i<002ovPDHLkV1n@=&e8w? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unknown_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..9088cece139d94e6aa44cc37a3f242f8a4c18e2d GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-&ba4!+nDh2Vv{17Gk3-<{ z%X2sUSKT?i&fxKdh7SHo9N%lUh6r#TIkX9=2L>7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..17e325e19b7590d3922974113aa8ff4b35f7ee30 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WLba4!+nDh2#w9p|19*4k^ zJD%V7t9*OJt}GnvwUUXm>U?LYwnEDJqL>=Lu`vS#GFh#82t3zHSrH_sh0I;exALw>rPnp($dNUA(R+ayD{C1G3xB(*G?_riNOb)E7~hlC^=WSI4i#1_n=8 KKbLh*2~7aR8=%_& literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..801c023e3ba0a6ad7bbd10a7f8ceb930e1a6f565 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#Y*DiTk6YmO z%X2gSdtZwCb)d)XtNz?1Z=d&-UOmZ^{2Q7zS%KOt-YJ)TUzN4qRprC%KklnuaTok} z%+L2pd}8{6ucvP_-xu2GyGl!G-(Ih`SsTBtYQBF|<=uqf51;?&J+BF^i3s2K?OI%S z$NI_d6K1cu%l18bwIkneuA8qtsw={F>X&vKW}Q^HEBS$=eu;bi^wt>GjL%gD2j?6; z@xy$JHK(}w*0Sn8vtBm+vp$nII{_VYLi>5_JK3FiN6Ne-mOqf*xb9-_jU}l&zgb4g zALYM#DmC+(%k5*S^DizpIU{`9-RAnaGlNPb3gS>-_L8g?Vh|o z*#FS}T82%BmwE26K9|^Calg)F?;(SfOZLlzO<&5p@hTOHc5UI9DV5{82WT-eIAC^P WDf(&Pb-DFMAYo5eKbLh*2~7a(ld28? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..a09ada95e8de2e966dcb01aea8920e436065e361 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9iba4!+nDh2#F5e*qo`#26 zdrrQqS9$k{Uuh-lx2cY=Yv#+RIlFDR>NkS}sEI+)Q*-GQw|Jo=hpU;U^*!FC^ZIU> z)t|2E-&ww8)gAPf^0D(uzZZ8 z!#xn$=GR zT5NFs|C*zR)-v<$bewl*+v2Z6+wJo5yk;NU)gR|QTeZZ}RC*EPclYNf<@eQ1%@W^S znYjM;PG)^U^T$*@OYca5E7=5bz_x@+C7@Lv6oP3vy59I43( z`SOmvlD+zK->ZKiMap|FzIv=%+U)aXd1lM37yfR1Hi4}+xhykfcw8$OLE(S^4T<+& WmA+m1tbX1pkf5ilpUXO@geCx=x1=Hf literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_unlinkauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9c4e62e6f5417e712a0bfa29ec5797a292e708 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#v{17Gk3-@V z!vrz;x2#{Z<~`WRvq-M6K&tcboTaDsZWZ64v`Oavu|IB#^Y)3kw^mpst~i*QZGR$+ zk!j+!*t53sIe+dYY-E-6zqykqmNBzgZ13*+Ni`b|Zks%bHNgJ&rGI)&|J+@=jBosz zxn*M9*EjZ#rYBSCXE?1o`7hy$gK(^e@b^UD&r8dnbcJq8e&Lw2KKRqpIMg`(Qv1E#e*C5`?7CLO)NBCmtm~Db#2b$Wtt7zU#I=K z{O_ZiPmS=t_J!dNkMmu(-(%117n!)BHujJ7rg}#6J+HqR+>>Wpz^b_z77{>O?+fb* Wi~nyo-Eeyf67_WTb6Mw<&;$TEuceXz literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00003.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..7320ef166c583e82299210784083527d714190a2 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#VBQf09@mRo zX3gF3Uv=a3It9fP=ER^4YhTP;&*NJ7*`tH$IxA4yjNcnICl}|{FPmaEuk3Hm{crXC zbBcHVsA_ohIC`IKPf_x-Il*3E!>-!9rWdaHZ}sYaSw?ip)WvoF;xkqhcI-K#9ORVA zulDMun(m@qD|Q5>DqmK2h*_SuM$Uaf`pS8ib?6|X-?HU zeI3;wMa-`+S$zFN#lDu)vb$dQZvP}C7ux@`0O%$Kld$hHd(=u6|82-G-M`RnwOc7? zunuGAdBc6%=FQNV==aNqZ&Bereu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..5b87a1e89e0464a6d70b19e5b221a6aed5623e5e GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^K?ba4!+nDh3gqtGD*9*4k^ zJ)Ga|gWf$-Qg&OgwA-oa^Zi2yXBo}7pp)SR)O4VT|2=C>XUE@J#owY%dilR+y|V0C ztjj8+-PM))2?w67zT)Ombne&WxSYc|J#jk8)r)r*_&cc9FS)O?{jr%(cEa*a#pmLG zt3I69u*!8#NsrmxU~x0g9ZWa&R$fVIGtX10;+DE)^4|3Y)0DmS`~K$M_#SAs2{(h!e5qb@t#7ybvb&zQBuYyBZA&lI%{wmNdQ|Y8!8ImsW3 zy!G02dD))bzc@QS9A6dQ**E!4-h_L)v!1= e$QC4Uz$Cxr;a>Suhsr;IL_J;oT-G@yGywqDCzB}v literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..791bb362775d4be94b655c201901ce27e8983dba GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QvW?&978JRyuBXScSu2m^}@L$ zb2t1~E!F?*cuBzPqD1X_pL0JaZ*hGudLfsYp`pNj;^eo#@AXazdX=F0H28e|)4;>p z_CNgMzIV)7Q@3r(`O4^ptUfZ`k2O|C%e;NHQ%ce<%c97%de8keoz~AYZUywIwOuU# z?q@bF@xo5+PkP!3E4<(K{y4Y&%2v~z3OCkrznHWCWv+R*oL2eGCN;H_^S;kt{{7td z)fL<#8%(PML)mXn|2%2iOFvUfIR=J=1%E@mwn*(|nzT0VfYkq%|Awq8!45{ODzCXC z{`&0Rss7Q+{y^%9OZ>(iQNIqBOgO1G<)q~t&pkk2L%|2r`WlIOliu(CD+ChpboFyt I=akR{00$0=a{vGU literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00007.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..13cdb1188fe0e46e726628e20f116f8e3adab46b GIT binary patch literal 888 zcmV-;1Bd*HP))u9LHXRsiwa2_vsE8)M@Hxzn{3{I79`ne!mG?E8=o?=yLI_AGEb% zE%|ImP{til{;%2MALY1h|Dg9rD$)hOJ1fKtf+MAV)#8_S>MI#9;ePGo=}W%4BV-If zqo3dFKTOGH-Vu+~JAmZn9m}5(LZ0O-Qb|ZLy0AFXjVIT5ZOy!?FZAq~mPIbD`{{Wx zzYUrVx|_pPRJ@YNS6c1y+RnO|wKQbXG$6abv!#mvtUuj(O!mESH#_2neg&BXWyLY z!J9MHSnJio;S;Q%QHqGiAivr?L>@ujki>bX=Lq~XG|%pZV*%Tlio`-I{F7Jo5Ewxo zbE+%bd-d!vUGF((zq~F0b_X8slgUjlVKNN%V`A`1KJOHI6N5=+3~ohFZ%7R_4SBg= z!~1iCNRs=?x`JmGR~shGI88MhnqpD;{x2BOd`kvy12&3QI)^2FD=eJ`t9d;cHUX7A zvk^xCR|^u+18K;o=b{xa)4WfVtspTjDAh)!N1>yEr4dYbgVkmwjpZxQYdBn{Dc%Q& z(^;S3;M?{9E(2X2IaqLqg^T5N@IwIrQvS~iYQs>(3G_@ep_?C>u>ypUnJnaPA z(RFa2r~jG={&*P7B&4-GCGMio3RJ#ipqU%VxtX zXfF}7ZUE{Sw)9M6PKsIWKJRzL!1RU9PV4}4pWZEJiUDk#qa-n~?*J_aw(?f!HS8T9 z*1JrzFf#HMa?l5Td;?#m(C;lNJT&ma1DkyVcPv{HB6yh-LI@#*DEnWjOXw-@ zx!LMz|9e%R;jOS6KJIz0^;7L7j|e2kbX=$jspEZps^t9Zj^v(4P4~Wjb`-1J^FD&h5w0-^Id#-AuDZkjYhKI+D&i@m*W}S0>Cg1t% z`8zhAx&1>##c$_Y|5B^Ms`vYP64g%ZS`{t0yV_6w%ePXa4ZYe7#&&vZcgd79C!Mla zH(+qMUM#nC-^3s1`Rwl5G5p~xIL2U+%rM80;oK93J%4?wcXWT5^p|;;r`qr1CPBX6 s_>*~THgZ=!lKJLR#Rv==B+!uikD)_PxsTanZ#qcW)78&qol`;+014}?!2kdN literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00009.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..95e7a45d80cc1f2430962b24f227b5f663300c64 GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>w}ba4!+nDh2#^twX|0u6~K z?^^!qckcb+;8d_3<*a6&o6?lU1Jw1w;GE_2m_Jr~WV_YkOb&nRS)*R5 z{!s4y(u={@ZgpO)DXlq^lWOgL?D%Cv@9Gbc;#Oku(KSalU+ZFA`tjr1thI0R(=(TN zEH=L7Vx8u&a@NA8eY2izKeb5aU+$0FI$>rf8ZIrFnR=PWz;o)^sjG#Sn=JRX_4|7y za_;Lbiy0qsPL_KwDfUlwS-1IxqqCEr-P*#je09vp8@v{KBvSnE?38$OkF|5|u_L`J zJA$k3v`(BFJNd?pS_iWCA&yI$O#yU@1 z^v8Im)~SDzFAjS4*K)1ApkZVi(e()wu*l$a4dc<9di<6XI3|OHJzf1=);T3K0RWbQ Bw+R3M literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00010.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..a55b9679017f8ddc211cb7b6ee4c98ec76dd59af GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2Vbl+hG9*4m4 zD|0veSKT=MXGcopo<~A)q3?gLxFjZXT*N~Qq)X?!l&Hor4JAbu+iTlvFPcnYTiKdB z=T_a-b34}`EUy3T)PHt&L~8Y-C(eaa^jj`WOzAPS58wWMg@e}qoY{FCikSh~>-Vnn z{7_>t*<^|3ipn;#pGmiB+0HjanQm<=%hlX=efzIpFI~lMKhNCq`DYzH|?oeA=`oE z82w`u&1k^%Q~loCIDncx?%tT literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00011.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..71bca38d028435b3de9d6006e4ec82375d15ea5d GIT binary patch literal 504 zcmV+1H%BvcY|$0RRBN61!ZGQt@$9)@t4ZGjDYuJB|8`+*hhi*c`$3RZwLiN(Q4Y2{keq2UZq)RJUptGp2U>6H(Fee( zKLb1`(CEsu=Kv&Mri=|mpI9Zf#H~pWK;s!J`P$cQx^cU^^3s~t=BBCEvOZAWJXsAYrmt$Lade2A3#RN;pU^gKE0000xODUz4yrcM2f>BY` zamtqT*6Q3JYPG}A*JQs|wpUxt(Ci#zG*9K0eAX0W?40eyFdy^x>ge^w%5j~iYAMN- z%;glMluC;{8?2eiEwY2`e{L?V`l)n=F`K4VK)s^XHOigRX)$xCFC-%_$Mv0<|16*C zpwH|hBkzPNLox^K#B5qv0V=ZAiXOHcSk$dyEEQm%CvaZra^sr(icG;Q z+i-{eAi2TGU9S$}Sj!IPqdN9j?wEZG>g;{;#jev5syt_IUOC`osKXS@mO66N zutPXCX8fwRud^n1b_L)fFYf>zL*4RwKFk2%AK_KcllnalKAv6x{ts|Q0i00)XB5Dh zF2K{DX`35NFSCDx<|H%ww=t%g*}oYz@Wd|UiRZ8}sBx z1UKzIn_0f^XxL|qzDZZlhdW94?weoM9{6*C%RY^XMv9Y#YQJr{`(lmWPR~m`2Ibjl zhd-L>eZ2nCY{_D^<3*;$UUtGscc)Ho>e}rue>PiH+#_z1|7R%;&Hj4Lr`8L3H=dK; zk*Yp-$CHpEb>p-Kzf)G7zun(Nos_*~6copG>E#WPS5xmVSh8bBiTlRe@18_??4NUO z=6ax8f1kX~owcYndCRFQ^>$mMH%xu^DC#{IPgdSe1OK~S8Go)VtKag~&T)I6=5^uI z^7HeK^xeMIb^o)}9HZIGF1}aacdq8|il|xaX$P#rPGrj4GH5TEb(KBA&i;jLTJ0VS zYX;80^Xjj=ik^AjcYW7Kees{#^7pR)_|jbVS6zYU6IcEc{)?QZ7yXY(*l6;YCQo>v ka-!$pS`K}n!;nG2Z21RvAt}=A=I=nlp00i_>zopr0INjEXaE2J literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00014.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..18cc3afe98f32b4c1d727e34f78fd344be35e5aa GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=lwba4!+nDh2VU{Q+#PebCZ zm%cmxPu$@xKVz9B6Jw02)#rNtxv?&soeOSH0qIxQUOFXc(c&NK2Vbl>C4W2e`}X*` zfqx?FXH0v4wC?WBdkNW9Thq^3&a~LwdsZ{nGX41q;gd->>~~M!rhGEp`s6a#G^NXV zL2A0cGF~lRx$Ontaigska|8d*lJq^iZCaRv@djB3wf9>})Dze*Jv@~@`_8Y>fA5y< zyB*K|-evXTS8*3OZ{Lbw^o>~j)F#*Rqutfl2lUqaudAHh%VhJMGiLhEdpn*?5KggO zU74gFyeji)pJ+wOKGv6aeeb85H6`nYTNs@BrMcWD=g6z*37bE@+-|j8b*AUK9QR*M zmlc-hPy5H4*eu^`)SIrIqqFh$bWP6Y{jy85}Sb4q9e0EpPYXaE2J literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00015.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..0065277ec59ef7390ff325549d492f0a4b863308 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}8ba4!+nDh2#AYZcrPebCi zH)?nOd)!OqPvO;8ax=d*>3?;^vPEaMH56(x0(D)s<@tSY+uD0)EcvD7w@a3V`%Ty1 zzw48%|KzxA%k<9EfA0BOt=*fm`~Awtm#(E%hlCbJUrFts6T#M4`DJpu;Dt#azPh>n z^SHlp-QqQu!pxoq*BU;_W4YpLl~eq7*0#y}9_cYI5?`?G$1SCapj!5D^g-? zwQkjKp5KBBsoH_sthe9Yx8-tIQag56q-BNDG<${zN~VuDv-vDNRQrsz&0kU8dGB7o z9m;V`VO@1yGa8PvcsK0v53ApB;DA*32C)}xN_K60bqoJXM>v?DaH*d)H$eFB$rFvL mX^P%!4o~CI2YM12d@#?KXTM-@qU8Tckg%t#pUXO@geCwhP>-Sj literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00016.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00016.png new file mode 100644 index 0000000000000000000000000000000000000000..8586b9f6fb1304b85abe991e93e02d41d0274442 GIT binary patch literal 424 zcmV;Z0ayNsP)41i%~vp3=XNAfQF!z>{MihNa=yw8t`j-V|{)fwji0001UpYER5b;YaR`)Xso zP4#eh_pngfbNo#RGF~l(Q4MlDi`36xfA76W)l&ALrFg2t7jkKhVI=q8?w*P`pfsg) zs~DQnMIAcclVI?a>tUoj7vbIC#38w^$uT+uQXv#26R|a3&SrA2hEK7e%eJWoDf-4c z$u9TJ9yfgkh$}*G)3?tlx0Aj|R#;Mk+_M{;)9IsPf==+Qr(_>~lD7cl2;=@91H3oBd0@ph)-c z(Kyu%L*e&JH|M(+&13xQ6d+u-#UUrE{?gWJ(W;Jk-kyzny#y9<&HBgi;Pl(v7hRX@ zH+L>w();Xe)O``}J*h7aU$VK!kicELwKJlgDf^J`m$g>~`DOoplN9)p_UYhnCpES3 z9shZ44j7zpxqrrUMdv=lV+VvoPY9n+^luRddK(%1n61C%;dz_nwR@OB!k(^vF6*2U Fng9uHp>F^H literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00018.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00018.png new file mode 100644 index 0000000000000000000000000000000000000000..4283e2a6a4212475971f646b111a4805ae98939e GIT binary patch literal 433 zcmV;i0Z#sjP)RXcq^xOm=EQ0?W}o^iw9Wu$twvT)_veHN!2r5WwOq*i)W0_F1c zTx^5if^e7foA6i@_PV=nebonmO}%0d@HzW66tlhO{ndfj(8ag`=(F|uvpuT6(*LNw z-UIf^>dLQ`uhIy0qfGX7T4bs}O{LUSe=_dDN~}UFu@A3Ac>w?b000000000000000 bfXDm-%cL(#M*ZeD00000NkvXXu0mjf0LIg- literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00019.png b/tests/functional/snapshots/nanosp/test_eos_transaction_updateauth_ok/00019.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0d70bab9f111ec9cb7585155acbf145b06d992 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{s}ba4!+nDh2#w9p|19*2vs zc1(U(@A>8^zndEGlt;=ceBWy{Co8EGJkFf6moOT+jO6+gzW@x)Z4p{Cto?pxLwv${J`Jq>fg&vXT)9cC~lik zKUwe6>v?}g=cvtm z>iP#ZFnn#+y0UB@V>&K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..f005fc54e9523a0a992596ebabcbe26ffeff9406 GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Eba4!+nDh2#U|)*@PeWqb zX7i8#+&}64zOW=Q+QneonV$dO4GKA$SY3j>8G+g^?R_-s-uJ!#cIV#SDyBEb;%e)b z_3W9k-Sc1Y2_@~A8)>z$?sApTrVFpWF1`4RHN$U;Ra)*fQ{U#&PW!;@tiQXWW__?e zuv$6i+>sw|*PFI#e$15$a<4z@*!RJDf$-0ZM*Hu4I#D1W>UaA~?+4C^PdpMYL&|19 z6SlbAr0el>#`3)X&t96xgsqz@9PsbGt5uD=bV#9hXm(c`C(vyIP1nz|?n}GCyq~?p zZ`-Bias-r!S!wlbR+Fy!t+{zEZ`s5NOHTh# zxP0<$#?JE}TH+2Q?AmhV{J}>lF`oY!jI@7A&)mzbq_#)Cq4L^Q#_#J>z8#+VDb~cg zw}N9nPyVOfb6>v8zNhn>@9>%a|1*UHW=&kjRkvPeXG7?{3_iIRy=4p8tt3;PDTo~A e209TLwESd#6cI5mV0TOeNZ8ZW&t;ucLK6Ua*TfhA literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..802f1d9f805c8ed33303d2f7fb13fddd1feb6452 GIT binary patch literal 457 zcmV;)0XF`LP)CtWH zQ!SDB8kRg_!e@Y`6Xf>9{K_Mdk~m#r>ul5*`MYJZhR=XO%X`Cox#pR4_k!JtmCz;O z9k69s&D^vuO7r$n>XX` zB}ZCotH<(%pJ-=5&?p!mbFZC#=zR6AwK48hX{YdS()&l=0-vp$WU`;eNj2F|Mj!0N zDzwv^B-00>NG|{Y00000000000000001)OExb|So?o?A100000NkvXXu0mjf2$Ixy literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00006.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..559ce41ca07ceb2526d544ce3d8e21c544235985 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^i+>EaktG3V{gz)6P`cp4J# z+?@U8pZlxWZ;a-`oB>g@1K$3(eY3-3p#zsxFi6`W+ds47u802Lt#f*#7+=he)!ldY z)hWK;RW|o;MY(`MTe0r{Nu7%P`|rt$6fJmpVVdKsrJIzedv_f_#Fn%5NSuc0(tS28 z6YtDt@b(WVRXtWNw=(j`8s3LlI?t^>h3jV>csG5gJ>%So+YkLIIIVp7?y5EEF?sqA zW){RZXr>?VSY8>d<@caMc$-4v@ipHYlc&!wh~Ai{=TLRGJLQ+ve21=ptJSWBb39JQ zZ8HTrcEP&;vOgTM88dhIZ?cqCKNmi6;b*ZayjL~PhaHN2uJd)bS$MGTf>&-i%UwOU z2Bd(7N;e zcAFO4XHNaOf6CXT^u0(~wDt0>isifCz4ev8Y^};-<^Cl+i?86?iTB$WR$3j4-1z_5 y`9t$xYh@SsPru!omzq2&k~!Q*ALvSC@ZcGLvQ5m-&<(2lLBgJ{elF{r5}E+7&dbFB literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00007.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..ca232db97ea09d01cac7e8cd0dc3117741d97043 GIT binary patch literal 453 zcmV;$0XqJPP)V1ApZASPo1R^&j0000W+?P|m=XuJn$8oIH zuyEs46S@BKA+q)C+qL$90eGlZkE@@smeOmX$;DNMDyK@1zuZzSOj)w3P+rkDmXf8s zeh6atJ^`8xP;(~i&weSHRabPKm0YI$m6IAd6TVNtVC21JzFe~<+`YnKJHF;S0b7P- zX*6$2`UH;Om!h|zLJv&t18cWG(kt1GfBzOVR&Ct+Vx?M-rDWE;0ssI2SXJo?{Z9GR zTPCln4ZYxwGY!jaJyq2*msEt#aayjVYvyuL^B|u()wHqCNhD&^ru@nTy;OAuG_|5I zUgN$0jw@g2%xt&cmE4K00000NkvXXu0mjfSJBWd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00008.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..34c467419dfda772eef2eb587212edda7f95b3e9 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{U>ba4!+nDh3gXWn509*4lC zCwxo(EC1As`_-k;nH?m9kODzZ-ZbjMpn+UiB|p4@aoJ?EoWT%ea%WhBeA zE8z}$d;x_j$I9h2HHFRgP1-(_BlStTk=aqL?ZNSkz2@tEKR=!3ekfKuM%ps>6?4H8 z9*LJGIbJ6@bKV~iQ~6Xr&+1p#)%*&bXm$1jweMVo_8n83;1jB;8C_PFI_>5=exOI? zzqYKO-Tt3%$7x}woo-M6GgdZju3kF(%9^SD`J(UjzFd9#_u{9XhIOo*;`Q(nd z<@eV7V|mGS<9yF^_ppxw*)fuVtL21l^%`$BOEY7>$@zZ!`DN<^c#STa2XmNSG(RRW q=ZIcOkot+9My*5Kz`#TXD}J&c$c?`}d!ze0kg%t#pUXO@geCwTb;5uE literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00009.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..b848582192dcb6f4d680546f1ed0a58f41303ad0 GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|?+aba4!+nDh3gXWn509*4lC zFMMnMEC1Asl~9%F+Lq$DMB%}H*9$wOa@cpzv@8)OT$~RsU zKBUCVopGhG-1q?h&9uY1JE!jvy`b|=#@9S`TmBu_9}FeW)VjATyepI2{%%jS-&P~Z z^b_yH4zre}gde!`WC!0&nMv#Wp6+J)x_{dRj`wl=n^)de5dLf8x1zJo=vabk*}|z( kj%hqjf^k3xAp?ao@=vzMgsE|wtOf~ty85}Sb4q9e0L1Rb9{>OV literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00010.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..652a35d4e9635ac21ae7653ceb93e7f234e4975f GIT binary patch literal 450 zcmV;z0X_bSP)P>S0Bjql8K($;938ArBr~iAHRzwT|Lt9c20000W-6JmazVG(swrz6} zCN8|xM2T({+v>^u4Zu+kAdy4Sjm+p`$~=kqz& z!bHWlx@hgohw^&np}jYc(AE*f(# zQA$dAy$CYJt^i99&}Jn3nMco7-H4sPn-jT}k-z$Dtu-M5HnA&U=gLRZe7a@NaE}Ua zuCNw{=orKX;FLw}>9mcty#wdVPC>$6v*dy4>I+UQ-Dv?RuenHuZ|Cu&o2oid*wiui z0F!?Y0002MRXCp@?XHHu?z?^cFPVdKdH|x{2MD|0d3a>BBX5i87P^C*jo7yohsEyw zznIMop1iSN#@W=8M(nvQ7ydrLpU@BI+Ue;cLU;h2dy~ZxgC*JEYMVS~ZpL-Gj2zd? zbw`(B zDd@hV@1L!sr~Z8Uh3Jp_=AYXc4mB}Ia4^WkAQZz30000000000000000001l`2uaw Va4_&bj`29LHD> z0}U@-qVz8x(*4LouU`Cy_P$^Ob4k=CFws~1i@rduBwC%?GQ&DldfL+DbX(|bHA{3u zsVVjAn_#8bJ3y-!$c%)4=c%)`?nLLWnaHJ%{M~i4#@+#)nYYq>xM$CDw<_0>%Q-LD zc|>dgwxpHkqGh4=FK}w?Z*f*{K|(LnrG3C`K4Dll3!cG>Z2?I4dy!1F^Y~$=YQ8Z` z2Ap~W006+ZXgz~os_*55VO1Wa@T!_(IAfQst(ppJSVG+NpO^ z9RW?MXTaVuFFPP_orX6|U8Wy}nL3B%&4b$w!uxIs_?4PLCi-EFP!s)NjKN8)LMIJ^ u%ow;LyZ`_I000000000000000fSW&-4Pou8=`J7u0000m-yD^>toe#iaam3w=um|lp@RoA@z zH5+z)tDf=vi&*x$!_SvQT4kMd(ciyp>7EO(u7=$6)!V)-sV_4uN%p2m#Pkzgs+*2n zPu!Gkzt7rX)qVH5ogdG}DQ#ZnvhC&x!>8$=7xER~J-*L+!RKe@*Q1tKEf3bVc(8Bd z55EJG!lhoC%r|?*E2Hy^L+gq4{9A9bzH;`9=G|mja(?p)p82H?svASRQI}6qU1PeR9c+GYx8nKGzB_=BIewI3fJa zxVHSqyN1IC*`~eQ4GeQQr*lf2abNaMreu;+UE)Wv_(QMk7yk3w&HPUN_|w{@_Y&F- zulI>(yICh%^2!w-m*aUqU;miIGX>*ciBlG)eQ7pi*DmB*TVinHOrv(2ILJvzpx`sx X4Y!aD+J}$DgG4=D{an^LB{Ts5Wg5Ku literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00015.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3a2d92ecdc23fbacc6e12d85085c6c016d94f7 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=lsba4!+nDh2#G~Xcw0f#`7 zcT0Z92Yr9Uev)P8!>dLKm#Xc09x*(PT&f7v!*F`94VUeCzB zX4O(%Kk?7sG)#)#+Ns~X;>oW3J8N3M`@&@w7tg4@f! z?wUQ*L7tS$I?aDJ_dm11PdokmsuJW_;?)-X4d!lpbAN^XrW&DoKQSX;Ny&r$# z?2&~%!aHS-mBwW}Rd{3h|933gg3lgCA;%AVwY>8GMvbu9d}mv)eN3~SKlaU>e`@lw zXTA}~W8@?@@0vYvv&pXS4<{G)CaGWkeOe;c_r3lxi8n{|wgfMpEXf>Rq7Mo>B=F!F Xx9c5$v1*xgS&*owtDnm{r-UW|coe;8 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00016.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00016.png new file mode 100644 index 0000000000000000000000000000000000000000..58a877cdba18b4cd29157e8c76fb5c086f403c96 GIT binary patch literal 453 zcmV;$0XqJPP);EF-1%iEplX<7)UvSC(>-Dv zN~FY>VVec60IR%1cO=Gl9*I;l)J|A8tvN=1s$bNJLifYK70|fz+BARM^GLdD!R`FY z1*=EJDuDxV(!ATaPvHHwZb8D{v%CDKnlHGl6V41kdf$sAeU1M&)Ko2Z2K6|R zBmZan2LJ%Tw}>v$94P^bW8VXig;zsu$@AF}_xMObwB4{)m)-CtU3O(ETRODvi129;gOk-nEE5mj3`?1@|2R(#Oy^}giuYk4n z@iM3K)~Wl*bz{11r!GTjzZ_kdkWPBPa01rErJ~w1*)N4=!|9ytD+j)QGX~qR3!T(S vGGh>m^a20?0000000000000000Ac-#q00000NkvXXu0mjfuHMVk literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00017.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00017.png new file mode 100644 index 0000000000000000000000000000000000000000..4a51997d600f0efdbdc382baf3844357c3688264 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{UrP8TN2BddKyZfcryH3@g{~U9ALqNf*t||8Q z86j`W?dxwFr>#5t+=XZEv7@o`>Q=UzTsXCGio6fML!iOYj>HJJu9l~wu?FtXei-S@ zc+7L*l)6cEQq8jGCtPAKTDFQz{@=yFNa^~@Hx|rN{&CXJPS13owOdSP!+jHrvIDyP zCPA4|xo2b}48m9Wmj4pk#gh8V@XSm5(3-=!k)l)0zop)9x^?8xT79mhFHcV#*#q+6 zn%{5VPuc#L&q1hAYL&n3@^vq4wl>|}lGgV4@7)H;|Gn<7^?%Lqncpe5YUkM*D}%U0 zw?CfSa;_mSqIyB^6T|rY-tPPPN>&LUT0TjLeDg%>0}1<>1_i o)^}GjQ+^!~J;-s-@rT6(UwTPJVnan8#0000;_X>)897q4P)_O0( zjSDX|(c;So-E`lPh#&Lwc*I`l@C6x`PE%_Q>dS9L(3!T-%=M)g;BaB9Gi(dJJk1h) zq12T6eYH%nJ3#AuXwHQHw-7Ukn*z&_tm6~!u>yr1y zo&Ep-0QgY-BjD^=@R4Uk9yATkLHYIxNXmxltmnE!r)c`j!KF}Ug+<}wl5eGt5uFn) zY8lSHE~>5Lp9Yy-6)Gte;rxd_^VrcbXBpE_Nk@<~Ls=ZT$)FTwpC65DMcbK-GdW*N zMZCSzF%#aAjXNM>&iii2izm;$)O7XsXtre*zSD}+$?)V1AxZAHw72}C3%0001By03_!=XuJX$8kK1 z@ZiE*Rb27&ms-`iI}z>q9v(3Z9ljuH>Lihmpzi!c1TDHInw($7ndJ+;IW}<)PkrPt}Q9n~Dqq&OwslKRM&ObN1+a>T0aC%;w=8q%y z40o+?GwZp{YPT37Fab;UfSyXP)uy-u&o^}m%50x+?Q+G-2Q+JiH3>-n*P=XpwFN4f zsVbKRwVe!HuVu`%bD9AF0MJD~N(P+)ph}InlYkG%P00HI$sT$7|2QX_&Y@}TcvVGH z1)TF#TX;)$8L zvcovbc_$?cOwLoYRWH(az}W8Dt*p4Yy|UfO7hw9FWHFzW-C*`?s*E+J!Cp zwnZbG3cYy$j>WweUt-G~e2l$Uq1`nGnH+>-cmV(a000000000000000fH1!!QF%4D S_;DWq0000*aXgFg z;Ko~zi1Fn@KYF|(O|R(@g=zB{(Jda?J@IW9Iui$4aeV0knB5rjWYZ$esRwL2y7hdD zDUv_UwwU1z(9#+fd!m2kk(@F@(-a*u6Z6PtcCnJ-47jLyZJ0lf+|%5(%*|dm-H;4B zV9OrR^U%236nEhDmM%d;*ZJ1;FWx?(SUc?Lfbe@QlIE)|P(ck<$r%+>rdaSo3;+Ot z%?4i|YwxckF{j7LZ2Lc88RxI?E6#%S`Q_b|+I5!m`gVO*dMnN!qff{5QD{)}x|wGr zaboa^440tJBY`ca@P2GQ4RvxPxsi)ac-OB{9^^A%)?iHARDN&j*>a0?_Y|Ww1L|*! zacaTGHJbN-4?`!ls}{pa`Rw?qV4);_3TMYv9lx{>ocP{V$b&{B(+8$#UH||900000 i0000000000z|04OKv%9JzW1U40000F!bG zlg>3+VpfX~i39M+8nDu6n{B!)@P1pTAmQ)XKmJ!Q5BOS7cxC{~-?>P-@8rjZNmV^9 z_=zHFIo+@Z0002s6XosCJhJnHj%P~wbn=0(BW1)!00000NkvXXu0mjf;5X+= literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00022.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00022.png new file mode 100644 index 0000000000000000000000000000000000000000..17b619e047f2dc990812f284fd7a2171dfe9956a GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{U@ba4!+nDh2#blzbF0f)e- zRP}rRC+(SDr_if$IQh+)2I0G(1DAHRH!=#%5dv!4aL3GR5I|K*Msu5XiO)i<5^ zdOH8vWvBPK*qmQq-K$jcqbX#e@?^!}r}rM6-g|7GOh#&rXMG7n7;Evo%p9}e633I8 zKTqd$v#w)U`zEni?Txj+^h< zm87!x9hhc(;8KR%wP&0*D-1HErsX+0egApsQ@&Vv#hQIP@>8qT6#m}tUXt9bFCDtV z%kQRANmuu(I-rwl`gNxp@Naxu&S3O^HAn67OwW~w@EvZQa%=vF zvHA<;mc}t&{{7LgHpuk+x`Ua^;$Pgi_@y&7q%-^6jgudQ`ngNkXI_k7W_YFNU(%U_ pes7$tec5JOavc2tiUDMh_>V!eCwYU6++J~zu&1k^%Q~loCIA_?$1wl^ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00023.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00023.png new file mode 100644 index 0000000000000000000000000000000000000000..42bb079527f5080d47e705db9ab2fc54b7c9c567 GIT binary patch literal 453 zcmV;$0XqJPP)*~@ z!a&DMw}|7*FF{4FZ>^`}5z_DU5hK_1dC;paNtec?eWJhVBbwqyGbdTvZn`Du8?23K zw&WeSB00000NkvXXu0mjfl|;tS literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00024.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00024.png new file mode 100644 index 0000000000000000000000000000000000000000..532590acab70f499d7bcf08bbb65e8f68fb099ca GIT binary patch literal 482 zcmV<80UiE{P)&X;Q6#Nf$LxC(ozDakN7@~+(v#@u2}!;b%86OGV`M}KizXr zxQ`ka7uK@6pLuSusnKQ(?j#zxmH(0i_MzJ6}?OJj3LO))zD%|@?2L}n4N8< z+lq0TytEo>FRxQ{?DEGG(HtGaEOrIVN(4P09VvYz^*!Q>CtexJnsbX9;eE&V--plQ zaCi?NcfaRPq%gwg54y((y-0cOJ@^Rk--Vv65oGQ`D8dT>000000000000000004yf Y1-%1(b5`6k=l}o!07*qoM6N<$f(yvwcK`qY literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00025.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00025.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c7e24f651ff7ccbbbe4a449223e2c74e62080e GIT binary patch literal 452 zcmV;#0XzPQP)jsA;R`o-2INZ2$zS_j45ZeEt2ondDy6i zs?;pplBe|2WY@ImumAu6_}}_Zfxmx7?Ejp`jfGj;*#Y}@LzB1td0V0nCpPY@=2Ejd zwDI4N``fbf-@!VMqV-R4WC=Pm18%EDjKq;0j{UZFz~EM83d>8}i>+zLHskv28Xe*I z@K1II#9folsl19Bxh;=`8fcJ~)Y0=%kw@ u(+8nQF8}}l0000000000000005at_wbYwUx%9U6E0000XlGsZ>kdTYPF$spYy60mwLBt_EoD7o^00026-A6>woU=TdhwCAEFDd{J0iplb}ttqI|-87YgyQeQ`R!lV8nE^;Yb5Xrv z<7K0nsxmD!kCR$5OQxpg`-azI0002|ZTo*ry>aY!0E(!s2xDV?R3ZV>*fugDiB?O(!!3q3B)!0000000000 g00000001D&H-Pw^qxrG!Qvd(}07*qoM6N<$g1#Q(Pyhe` literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00027.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00027.png new file mode 100644 index 0000000000000000000000000000000000000000..393592ca49c3841aef56d32d2122d625ca3e46ea GIT binary patch literal 477 zcmV<30V4j1P)$>W<%d(t{ zaN@>8Rh0Pkg{YSMs`HxkJv?HOI(!-Q5Stt_Z^!z{3$2wz3p=T&%6GNiVscQI^rNP; z+b3_iQp=ZOcV$f03h?v*g)`B=%xlRyaQcdmX_PYc?{0ycWyO7qi^dxpDJ zI9ym)u7<1$xMfB6R9ZGA{{)uy)SAs|SaU_>$}On!eK@oQhqn)CRuoO|a>FYsZkPc1 zyBC@6h1-Zpy;`yeuNj)T_N@C&!yk)^OZl)&e~|vV4i(67#qR-~eHe1o^|(`nD<+`x zkWxm>!Q-}zxgNsi0q_QP1q?s(Hc!#;inJfg8;$X|bVlB8o@D01&hY-f?3=Jh%_dFQ z*3Zq^si0MJHuQ7T_UlD+FrjztLbKT!Wac0h!wUca0000000000000000HpZ^>mzAI Tl>z4x00000NkvXXu0mjf_?qLu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00028.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00028.png new file mode 100644 index 0000000000000000000000000000000000000000..e6490a7fbf0077ad2ab0a659a52d3e7bd283bf1a GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|?+Wba4!+nDh2#bl+hG9*4lR zD|1u+dnf6CZcM4%;Ms8OLdf@;5KbjOgMOP?LO^XB?)bZ0n6vqwZC|q9p(BmX%QZfx zDzDVuuIhOGb9J?g;H-TdyRN^L;L19ut+Zk_kID9lyK+NMPd?>ss{7_fiT9hvpx{^2 zv!dO69`I}^X}UA-MSSIwWh#EtZ_Jn)%ctb@B~_0bCcL@_-#s*s3G>-fTy3TBcm6Hg&wHg- z1qFwtM;m$R`@S;+I$CbQ=a+B)sFpSE^`CkB9&^BvI$qoV_bNXfx>@-k!}Imyf4}xK zhHbcS=Wc#)W!cW#^6DkMQQzwuX5{(*_kHS^T;|N~lfL}3cY0Nbe9d#;9Z~P>BW;-% z9q;q=eeIGb8~q~e^~z*ld!3$L9`A$Q&N3CQ%y3it9hG4==RwMTp}7LT64b*M&efab jBj2L57w8;h;4s7f1YhFf$J0OBgM>X@{an^LB{Ts55f8)S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00029.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00029.png new file mode 100644 index 0000000000000000000000000000000000000000..0d56657464bfbedbd9ac3af921920a7400155199 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{U>ba4!+nDh2#bkSi29*4lK zm*-ae_x=?3>tN5Sj`oe+4QAhKQiP7NDaY}30Ch23uH`xZ(Z>JxXN$gcOPd`Z!vr{Fs55>)NKl|-n zjm=V#y>_wJI`T8pyQCO*CT*W|-N7S1H+TJ(nLFkOWd-Uw*-NWt1*_U#-J_kwVv-g2 z`dNSRJI?aAj~*Q;+WsQ>Hf!>f6>Jfk*uIF&Qd?TXI&JpfgejH56HXm2$?nv?XZK)Z zQqk@$3mBi2>RsZxuBLHv*Q&X~cZxn$Y}yt)x!SQ{DbObg<#Y2}y#FyiJZ^37@Fp*# zdi&nJnpbW-j+yc4_>)klV}>IfdHN8@i{2pB<~@yX7bvb zJrUtDnm{r-UW|RXNGL literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00030.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00030.png new file mode 100644 index 0000000000000000000000000000000000000000..f32013e73a0410f63dbd4308815646747fb3de73 GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^i!>EaktG3V{g$iBl0JPnD< zUilXNSAMEj>#)gYhAMZPz~B4Mrl|)M(@tIz0O^1D&!*|!?{)k0ZkOpEYHeH2C;0fZ zyyMq9(^Q`Bt@+hY@*ra5&B-x*Hc0|aAJ3Kw(efdw(6XlnBq3870k4v3Zg7LQExRmfu_Eo6lr-Jr!P?caEXufAz#U1)0rUX{)@> zYD5=JyEn^gx;D_!I>+qRl-0k|yu1Hi&x5Q(#Ruj}zxv4e$?RS3iWU3ox3_v;^7hrr zkC>gS&3J$DKGx8Gv)7iXC#($E*B6s69OiKOPHozUJN1tk&cy!y75kFma@?`I;>J%W z>iiVUZ75;oiEH@Aw8DR1k)m$trb}khJ1ckWlX@BZPAz{YU%S`*_)??u(_VfnN-z2u xKE1u-u*90zp}Q{>NqMI6#7v9>x(*o}ILrU~PYh4a$Ar5eVNX{-mvv4FO#sB)(cb_7 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00031.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00031.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6c628f6cbc14c7b158fab35542931d2f53e3d3 GIT binary patch literal 468 zcmV;_0W1EAP)+dX?-{myYxLhViuad2)frL=~7sfPxLcAqAL$H_aJM-O_vngCU0Q6 zC3Zupsk1C8UN7nluylgj!)-9s@h8=Xsyk+L9ry989mZyo|NnrIK@oyUF)VGVbgSJ3U)W2uv;z9}t6RCd13{L44{*yb1$oleYg*9(?yE<;b}-J9 zwqDS>mvP06|1oVnRGtA5W2biY8yWlhQ&$nkmbh)nV*4X#w{VJ1df#Q#gxYrROZKw` zd2pH_`(jNh=!2b@g?8#BnLY?bdI10c000000000000000fH1#LnS7p`K=?cW0000< KMNUMnLSTX*F3;lt literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00032.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_ok/00032.png new file mode 100644 index 0000000000000000000000000000000000000000..a46fed5aca8d840c7fe7eb114341b807404f981d GIT binary patch literal 488 zcmVP)HM?CJchGLetFd?(N=JZIJL^|e`64!ZCyiyWSpK!z)-Gqb2zSE!fsc>Z){hUo z5s}pGrGMDwF>7b#sqDkM%=nuY?^n21Hfw_~Qw=q3us|osw1F$a3jhEB0000000000 e00000xcLLyMxK*%;bsQ_00006P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00000.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00001.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00002.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0d70bab9f111ec9cb7585155acbf145b06d992 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{s}ba4!+nDh2#w9p|19*2vs zc1(U(@A>8^zndEGlt;=ceBWy{Co8EGJkFf6moOT+jO6+gzW@x)Z4p{Cto?pxLwv${J`Jq>fg&vXT)9cC~lik zKUwe6>v?}g=cvtm z>iP#ZFnn#+y0UB@V>&K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00004.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..3a623822bf5223b6a199c7748547316950ff6a95 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{%ba4!+nDh2#WZz*0o`%Gz zv%Wk2Ppp|<*})c>$eG#sHs#;@m62R0`c67|f%Na3{+&U}#U=mQoV{*I58m1~tV=(> z_s2)M13H2yE%T3Ve7a1;Ywyj~ihsW=JPLF0ZQpv%MfTd9&31|jUxJ^oyjl0?tk~sW z7kuoJx~y5(b|n}m79LsK(D*E8a#U$Ri*9$cnu4#(o}KJ=E-E=j@1huY^q!b*&yX z_rJm&o6DUxumAb&IPW^q@5y(j@8g+&^XdO5<_|Z?6-;~j{Z{_G7$wu2w~lYVuyWzN+{!DDvE z-29${<&XAV3)R@!_?mq9^js?#fdPaB8czRV@^TeToo`v!0}}Rh^>bP0l+XkK^1`{1 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00005.png b/tests/functional/snapshots/nanosp/test_eos_transaction_vote_proxy_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00000.png b/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..281681b1d0c0f30fafb0e94f14d53312d31b3747 GIT binary patch literal 430 zcmV;f0a5;mP);%91^U^Lr{|8yl zzLm?+v#K=KO8?8UySB22T7A!LUA8bg2QMdhwIl=YbE`G2h-n>#vY!!*P4hJcnAypx z_LQc5`XwuSz^&T9KplTA7s?!lx}oizwvnBlE@@f^v{WrxxGQ|cR}k!?T?zmI006*L YFQ)`iVzHF$l>h($07*qoM6N<$g1o=J!vFvP literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00001.png b/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..b2539a890274ba9ea531f05e9324b25b3cd204d3 GIT binary patch literal 988 zcmV<210(#2P)^}r!f=~`FtrX;hpp%X#9?@KAVTmWUhD22jSBIbm;4{*leD1WoZOtyZ zyX`~=m?;{$iQ3{aAw}dTWE8^TTeq80E6}Nl~Ft zD109VY^X_w00z|L3%$NT#>?@&w6E`?YuBS3GuzD(n|Ycm6_p)x1BVz>kPhn><|jsB z|C1&xO${DBIb|C!Hnf}-RlfXpu z=)F8+;qoj7zBw;0PvIeEWI^8_l-!MYjwL~O*`v|;kU3AKysyS{eef6Xf++OG7%X!6 z;8f`4b=gpzwBeS`&rmfLftgG3)l46CBIu2Rr?xGnl3p)h>U7$zeKp(Cb2z39&Jav7 zFe01n#ZI}dy2)91xVaK$YPYN*fKE@wG*5T*49346Kn^gEIi3kA)8GXV26|%Vb|dLO z^KoWq9)9X!XbI#1k0$gEpyoT%cX6*!FO%tvVJUPfDKbPf1f^SVZb0+S=iwz0XJB^Q zz3C6L7O3OrW8w}VgS%cM{vliJdM1@*wp;wEfSK~Wp{!6S6bgkx;g77ygRwtPaoh2-D-wgJB4>G2Q2B9;x0ba4!+nDh2Vbl+hG9*4j* z6YG=zrcc>>#$A=Wu`tF*VaxZLtrIJcG<44r0_rlj>%Zh<<-DKQA6vXRp`=j1g6+oN z6ECK(?YXxkceQ!-kv;8p`zIbdn$tA*%U9u(bsu-0C^B@>Ue;HCI)2GUFSV%rtmN}z z2Y*Jd)HJgSci-+G@%raelSgcG80?>0du)n2zG!M~=k!w_s`8F}-|yqKvNq!nn~uZr z4{pNs`9d@6JDwaW&Tv~hMP5DQ&;i}1|sxLU* za-+A^U!Gvg$50{jcvgoe+dtKv7rw_i%Qvw)IK0kp?k!*vOJXY^%niK-Pcd& zteTm!$-Z||)+T$&>FSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=Y7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00000.png b/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..281681b1d0c0f30fafb0e94f14d53312d31b3747 GIT binary patch literal 430 zcmV;f0a5;mP);%91^U^Lr{|8yl zzLm?+v#K=KO8?8UySB22T7A!LUA8bg2QMdhwIl=YbE`G2h-n>#vY!!*P4hJcnAypx z_LQc5`XwuSz^&T9KplTA7s?!lx}oizwvnBlE@@f^v{WrxxGQ|cR}k!?T?zmI006*L YFQ)`iVzHF$l>h($07*qoM6N<$g1o=J!vFvP literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00001.png b/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..b2539a890274ba9ea531f05e9324b25b3cd204d3 GIT binary patch literal 988 zcmV<210(#2P)^}r!f=~`FtrX;hpp%X#9?@KAVTmWUhD22jSBIbm;4{*leD1WoZOtyZ zyX`~=m?;{$iQ3{aAw}dTWE8^TTeq80E6}Nl~Ft zD109VY^X_w00z|L3%$NT#>?@&w6E`?YuBS3GuzD(n|Ycm6_p)x1BVz>kPhn><|jsB z|C1&xO${DBIb|C!Hnf}-RlfXpu z=)F8+;qoj7zBw;0PvIeEWI^8_l-!MYjwL~O*`v|;kU3AKysyS{eef6Xf++OG7%X!6 z;8f`4b=gpzwBeS`&rmfLftgG3)l46CBIu2Rr?xGnl3p)h>U7$zeKp(Cb2z39&Jav7 zFe01n#ZI}dy2)91xVaK$YPYN*fKE@wG*5T*49346Kn^gEIi3kA)8GXV26|%Vb|dLO z^KoWq9)9X!XbI#1k0$gEpyoT%cX6*!FO%tvVJUPfDKbPf1f^SVZb0+S=iwz0XJB^Q zz3C6L7O3OrW8w}VgS%cM{vliJdM1@*wp;wEfSK~Wp{!6S6bgkx;g77ygRwtPaoh2-D-wgJB4>G2Q2B9;x0ba4!+nDh2Vbl+hG9*4j* z6YG=zrcc>>#$A=Wu`tF*VaxZLtrIJcG<44r0_rlj>%Zh<<-DKQA6vXRp`=j1g6+oN z6ECK(?YXxkceQ!-kv;8p`zIbdn$tA*%U9u(bsu-0C^B@>Ue;HCI)2GUFSV%rtmN}z z2Y*Jd)HJgSci-+G@%raelSgcG80?>0du)n2zG!M~=k!w_s`8F}-|yqKvNq!nn~uZr z4{pNs`9d@6JDwaW&Tv~hMP5DQ&;i}1|sxLU* za-+A^U!Gvg$50{jcvgoe+dtKv7rw_i%Qvw)IK0kp?k!*vOJXY^%niK-Pcd& zteTm!$-Z||)+T$&>FSd4J{-YHcY(QO5;J{<~e9q=7F?O4)!WO}6UUdH! zS+Hz=(4})vCM2-VD4nt3W%LdvkyzeG%km#`1t_mu*zR}#jNB{EKZnW}g5-=Bym-_% z`=7%C>zxJL|9msNSMXnbQRayy^)nr>EU7olTHqoc^vG(B%bo(Id*|kR{84!`z2x6n zZ`;PkbrPvd6U}A>Y0chs_tyHmLi6kw6c{>JvYiQ=+MTFTx8d*9^V|R0+_75oZt9or zLetinU!`YMvFyLCb8XxElhO0{v2rTkNR$jMW7~4}*8a52+MC^J%KMbxPN-JRb2RNP zEsp0ebAPS3=e2G53#Z$XZAI6Yd=YMjqtrV%Nn6esuj!jIMi}Btw`sohxwi1&U@}K{{10Q-!s%eVxF#kF6*2U FngGM>p?d%T literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00005.png b/tests/functional/snapshots/nanox/test_eos_get_public_key_confirm_refused/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..9088cece139d94e6aa44cc37a3f242f8a4c18e2d GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-&ba4!+nDh2Vv{17Gk3-<{ z%X2sUSKT?i&fxKdh7SHo9N%lUh6r#TIkX9=2L>7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00000.png b/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..9088cece139d94e6aa44cc37a3f242f8a4c18e2d GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-&ba4!+nDh2Vv{17Gk3-<{ z%X2sUSKT?i&fxKdh7SHo9N%lUh6r#TIkX9=2L>7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00001.png b/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5ecc531679e72a996f66ea1b3825c1a62255df GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hsba4!+nDh2VEMK#NfLq|D z67@Iro|~uJP4LtB6u$D@g*%^9M0$R*334(5HNn6iO+mqlk3T+ITlR5FT|<1AVU+!$ z>wm-)w+5ar(l|;|m#GrQC z!gsmFgzZ`D|72-@ycVk6T(Ldc<^2jtqnG!W37NjU-y;=~B(~{D`Hf3;AJ63!gh_vy zzG23sN3Yv0d~R0q+Wg~O{gD64K5KzfU*iJq8`S3SKN!01euHb~@(#@xLcc0!{PasW uxij=aO?mX}y^NoaUPxW>IUnX>5WV9B_W{!z@d_rEU{Oz3KbLh*2~7Zu{+dSs literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00002.png b/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..ab88bd3a6d7427c33b0466c09511a2947d76e558 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9eba4!+nDh3gW8Yx~0hd6v z@Q450AL&Ida9qK7USpcZsh|1cZxrraNGR|EYJ!4>l|f#bu6Mhl<6g1VXdJn_UApcH z?~fx|cPyWu)!ljChnD_ zFe+PK^Ut$g=g?IxQK!U+@Z+u(p%SlbQUvSv9ga`@ntfpU<@YV-GyEK3A;Iv2FaN0M URgr^|8BQQEPgg&ebxsLQ05_keY5)KL literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00003.png b/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..3922fb6c5109e00b491711b6f1755370b48b882d GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*Qja`c978JRyuBINb;v=0<-(fq znZM;%zTYIjNwG&NAku2;p6`+(vsR^;7@r2|0)hjPOq%Om2^b4QX5%WnY-yoi6_yDfcfa?CNUOy5D#I&;P>Ya?_t3 c;@SyM#UqYYPP=l7of{FVdQ&MBb@05J@DJpcdz literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00004.png b/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..ab88bd3a6d7427c33b0466c09511a2947d76e558 GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9eba4!+nDh3gW8Yx~0hd6v z@Q450AL&Ida9qK7USpcZsh|1cZxrraNGR|EYJ!4>l|f#bu6Mhl<6g1VXdJn_UApcH z?~fx|cPyWu)!ljChnD_ zFe+PK^Ut$g=g?IxQK!U+@Z+u(p%SlbQUvSv9ga`@ntfpU<@YV-GyEK3A;Iv2FaN0M URgr^|8BQQEPgg&ebxsLQ05_keY5)KL literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00005.png b/tests/functional/snapshots/nanox/test_eos_mainmenu_and_setting/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..5f80c3051e0584812161c29372007eedff6fe43b GIT binary patch literal 704 zcmV;x0zdtUP)-19NXkVT00000007eYakp4XsmJGe zy4!!w72zhaeSFP5yf&Avd2S>#L(Vfm3cXH?da9Iio+mA*Q>T{Ha#n%5U=5j(ZW#5H zUZVSTAtM2-2kCW6g|y*C+vD9PQVfzuqfOoN6P%ZzmUehvikaDYN-3@Ch0ZVlN z00000Kq~C9to{srV_Ze_MNPkmF%fMOZpZWFLR>l_N(*AILR9~ej-`h5=OMpLwW6sc zWOiq;^2*lrD>-dVIYS+@$hvD0D{TL^#=Ac)#=Az8n#0O^ki)hX=4L=0uvM&|YMzhd zQmLD|?Pz)l+HLh8($#z-Ox<%dod89hA2xj51WI5c0j$fEPGomNy9?HE%Fgg>s1#e< zP5@MWLt`~?UL4^ zr*!?&vd_h$dQum|{W7|{tuZQ;_w>u*#~+L8c|%x@n?T`vLuavHYIh*V5u_sQxHr_Y z5tAuJ##RqQib(U039ys=aWul+$|cCCUn*@6`IbAYdg`<1O*dfx00000pz8sYVY$U@ z&^y7lLf)9RbJ;_$t5F*%^^wqqZOpN7#iohr3i^jIHLj%-A>Dn zY5lH+&`>iH;5Z4&|GjlCHml_&Gj%&TdPq<=trB^X65u#szie}A-V9JaJs!3JSi&}^ mw)HpsFCYK_00000-1q~6H{N$vM`BlKfdA~KAVeco(owSA?Fn!nO>Jg{i>95o@d+ME}hy^+ewF31sO<$bj_$= z=`Ffm7ghv-c(8p=sj(e+!9Cs`BH18mG|JQ^Kf!qm;_&Ht&1<`aZakzGyBT%~b}cvf zjuY)moqdiI&>}NJZ%cRpxZRFVVi%RG?}bor@*w*{T@U%joJ-W6V(A%U=$E{IO&`ZzNXZ7EpL?=q&a}?M~!4g0cu1YeOxC zm?TqV9QDwoh%jdifStuZjz*~4xdj>Xm&({fK5}QXp8D!}(;*B100000rjU{cL2vp= z(sNlZVkKqC=>pQ_f^_)ZN-sGb-q*k%5hbTa342Mg1(Aw5U&%=vEsKE ud~C_-{s6?4obvvk`Jx2?000000Oc1GL6)N+koa5x0000Sp37@Hy8J(=q^~g zU&s56m!4PT0h5>0gYqtNTfD9Kv}Co)Q@$CV`(y*2NjYkkJDjdPxzwjX+Mwe(MyGSd_VM^|BG(C)wi7Q-}>);_3I}*@T>SEu)e}Y|G}2J z=r4C=;^ns;HBru(oiP86*;DPuucu$?Ss<2Co2~z&qDb28@1#Wyale=K&v~hNlIuok zz_G0FJQ|LSx8s}MK6d!~_3jS$cMvZyG7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4db19df2192fce3a8a7e8b837dab2fd1fa1a192d GIT binary patch literal 358 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`hsba4!+nDh2lBHtkep01(Ec9p-vtNEn+tU3KlGP{GGy}Kt}k-TWmy=6bt3T^6h*L6Mq*<{Fm_gmeB zFeWA8Yq3Z7&e5qe)0n34al+r}7i1@hX9VxQEv~7~J#FqB--h4I_1C{oGuSg@;w!FM z@sszpT(|vY{6ivTQT;5h6`lW1o@i8GH9`GcqW`XkSMNrqJMkwK2W7g4@4oOexgaZj zmf6IYh0|Wo5Ioqng5~nI9LY6)w|93~A5FWXU!rvTMN_)NS9hk!$9EZ@zK?en_Hy`I yVG|J4w%Y0O&Y%wc3bqA{3;+LThIyIc%u7y_)#vh#vCP;C67zKRb6Mw<&;$TzNSx9D literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..677778e9f8a2d731960c73ca18addf66715dc025 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|!FT6bVYazsam?FzjccEM>*?ZzPL*8|}XP3V9s+RAJAhx0E zJ3GUiWwxq4=f!+<`|@1Qam|d2nU!#_&f%x`)nASOHeAY{wrfk_vg(81b}GCQd%6Ag zW9t=GQ~qU!Yu{d~EWYEtRDIp!%;nM5hU*fis?#(yuvc$VX1%Y1pDNB4g0&rZ+w5ddU>eYhi>yg=|2nC rFI>i}_JU=m*$$D1tiXUl26~^_{&n#lY!qJP3ljEp^>bP0l+XkKmFu(e literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..1c21e39b636dfe71fa1af2e482352597aa26d017 GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`Jjba4!+nDh2#^txsRfrdoC z;<7{krXPv>mEi1_#*);q@Z0}+I$Sdx^;!i$+MoX0qvfah^tHs}14iyszZGaMRgU}l z$oy~h{)U5ZWUM}FsUC|cVf}ge%+k#|pQB>pgZWx|ru*n5tvxJtZsWC!*LTY7UQo<$ zV1KosucPnW-UC;QE6>WD<1P5|H(5aA(&tjuQ{NYDyQ;JIxsoBB7G4HCsx#cQA6 zXE<6gr~cH{iGC*Xuh+jmK0OZT7>SkpcD#u%-{fIxqHLs6#r`QkrbnTOw2$Qc~j&hzMBwd3a} zwg2b-{LXOvvc~sY&3O%;ll$jHRi84KpY}Y`c4@8!m+7I`UysEJKj6E%_et+x_cQDo z*KW%9-LHFk;`-8WsiEa6iG8O7F0*l)H2FyTxK=O%9f$-PGVeJHc}t6TROEt0Jzf1= J);T3K0RW$>yvqOp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..afdbcbce69822b8a4141e0f88fc9a53786ea1900 GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh2#?xaHsJPi-m zJoYX6ul!Z---{b31vad>t#W$b`So6sM_lZ@TtWH^>~G2n2;SVbRx|LbxT$;j|3%eh z>@M>dWA%3!d#NNmk&v|0_TBbI!s^n>RleN&qIN}>vA5-P%(h(hJ1}(iscOEO)9z=v zy3`J==UQBPsO|Q3NmIK>V~3ZTFLaITv#d3HkGXGHq8PjLgFUes_(K~h4 zs?cit4XdS>fKK>uUu90)z8kE+qUTS&@hSHEl@+(ot;p}bQJ+%2J#T*C{+%Cq&rL~@ z^>eZBSo`PsFOR$G5919#SLA5N-<8jwdw9pXpN!ML24#E{{IKqaRj{b+DpW9wM)aI!6E75A9+OLBr9M#em`lvgqu}@dp19Si~IFKsmy!Ea9 SvOR{^LBgJ{elF{r5}E+r`lOct literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyram_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b959e18af58efb087d2190e0d992ee7586cc9f8b GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{%ba4!+nDh2lAm1Sco`yt| zdnw=Tg~~rNsz&VUOu6vr-+NC^=_RfOR|SB2VBkRN5sBoU#rlPh(rg)5_B`H}d;Bh+ z)tX0%wvA!0n9gSk{5&!D^t3y=6{qgptzwdQnezFz%zd4$)7KvjUAcEp;;Dlhc9wsd z+Thaib@|!7@80~$`LKi4lKh*W-yC&BN>%Nk$ zsq_6M6!-Z>{K32lo&QX{R&@SLd2&E#_XO2*iQbzJXHPxXI&I=&_KiPno@C}&My=JI z&cA)9hh~@kqN2$A?pr#Hmf!lnV4upmp!<5BBFfQHSM%kbtMFpUXO@geCwPr@09L literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..677778e9f8a2d731960c73ca18addf66715dc025 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|!FT6bVYazsam?FzjccEM>*?ZzPL*8|}XP3V9s+RAJAhx0E zJ3GUiWwxq4=f!+<`|@1Qam|d2nU!#_&f%x`)nASOHeAY{wrfk_vg(81b}GCQd%6Ag zW9t=GQ~qU!Yu{d~EWYEtRDIp!%;nM5hU*fis?#(yuvc$VX1%Y1pDNB4g0&rZ+w5ddU>eYhi>yg=|2nC rFI>i}_JU=m*$$D1tiXUl26~^_{&n#lY!qJP3ljEp^>bP0l+XkKmFu(e literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..1c21e39b636dfe71fa1af2e482352597aa26d017 GIT binary patch literal 418 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`Jjba4!+nDh2#^txsRfrdoC z;<7{krXPv>mEi1_#*);q@Z0}+I$Sdx^;!i$+MoX0qvfah^tHs}14iyszZGaMRgU}l z$oy~h{)U5ZWUM}FsUC|cVf}ge%+k#|pQB>pgZWx|ru*n5tvxJtZsWC!*LTY7UQo<$ zV1KosucPnW-UC;QE6>WD<1P5|H(5aA(&tjuQ{NYDyQ;JIxsoBB7G4HCsx#cQA6 zXE<6gr~cH{iGC*Xuh+jmK0OZT7>SkpcD#u%-{fIxqHLs6#r`QkrbnTOw2$Qc~j&hzMBwd3a} zwg2b-{LXOvvc~sY&3O%;ll$jHRi84KpY}Y`c4@8!m+7I`UysEJKj6E%_et+x_cQDo z*KW%9-LHFk;`-8WsiEa6iG8O7F0*l)H2FyTxK=O%9f$-PGVeJHc}t6TROEt0Jzf1= J);T3K0RW$>yvqOp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..05fb07c7f34ad95a261a0a07129988f06e0cffa5 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^K-ba4!+nDh2#G}mDTf!2px zO4Q%gdv2a?$I?{Mz2u6e^8fGGjx|{-FTU{@sEJ`(b*2A;gJ(YVYpSlFsq^96JcsK( z@6y6TwCD7HXIVB!GhS8G>HPd>{Z;op0`nbRUuZ71dROI>zenM#n92Rbbra9-Q@OpS zgganH{2|TYKLH!q61fVbzD#y(U6;fWbf3BJ+P&K`R~*eBdZhgRq2IJsVaLs)pUe&V zN0T!a+Wr2%uI(6mm`$PE%>4a7r#csZ_#tij>iC7X(+hfDzhFP2@7O#u)A4McGk4UH zGfjHmWVr;)|1Q4A{3U+bPxbKkej#sT^B!G&KSTOOo6oP)CX3Ym9$nF>zH7qr*%MYC hj2F}g`40(vFprgnp|vd$@?2>|N3l@tH~ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_buyrambytes_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..51bd17c56f852c247ff6df5bccc6ccc06ddcffbd GIT binary patch literal 378 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9gba4!+nDh3gqfoN~k3-J^^Nr`%uaM0;)540<;29`lbyi(>4i{Sez3E4MoTX<6mLIn9@k?F(MR zlA^U{w%GU7=MSo#kEm)?oahsM!8d_>OVsY`@hLYgA8b;7$+F|T-Ohchk9}DfwJN;h zr}<0wio1*J+0QBn|IO1{sP=2_L}vdrPV;WG+aBdwZ#Zin^H*N41?(HA@^yyKnfW51 z%iz_l;I|h&=bbu!wdnSyUtv+JOamV)g)cib`M=B-sqNqLWxoq9mDpZwpAovjT~L+r z*xr17?zOLOYs{3$7v4AHUU@@}enf7F@vbVbeG1ugr@py9v$`G>o-n}ime)!3@4g8o Q)@&dlPgg&ebxsLQ0Q^UvbN~PV literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..7320ef166c583e82299210784083527d714190a2 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#VBQf09@mRo zX3gF3Uv=a3It9fP=ER^4YhTP;&*NJ7*`tH$IxA4yjNcnICl}|{FPmaEuk3Hm{crXC zbBcHVsA_ohIC`IKPf_x-Il*3E!>-!9rWdaHZ}sYaSw?ip)WvoF;xkqhcI-K#9ORVA zulDMun(m@qD|Q5>DqmK2h*_SuM$Uaf`pS8ib?6|X-?HU zeI3;wMa-`+S$zFN#lDu)vb$dQZvP}C7ux@`0O%$Kld$hHd(=u6|82-G-M`RnwOc7? zunuGAdBc6%=FQNV==aNqZ&Bereu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_deleteauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbf12a19a618e936810c364a12bc9e6258545a8 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-yba4!+nDh2#B43jMPus)H zJ)Ga|FTH!ze{|`zoeP=%irsrIuE#uGjBCmipe7hNkosg!@j3VRN{__$GMqnF7&-0V zmUAtUHjBhJgnnjOpIPv8#pJghbEi!)D({awAT9p%*XCo}wH}wNI$Uf-@WXnk;a-sZXi)lS3j3^P6K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..801c023e3ba0a6ad7bbd10a7f8ceb930e1a6f565 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#Y*DiTk6YmO z%X2gSdtZwCb)d)XtNz?1Z=d&-UOmZ^{2Q7zS%KOt-YJ)TUzN4qRprC%KklnuaTok} z%+L2pd}8{6ucvP_-xu2GyGl!G-(Ih`SsTBtYQBF|<=uqf51;?&J+BF^i3s2K?OI%S z$NI_d6K1cu%l18bwIkneuA8qtsw={F>X&vKW}Q^HEBS$=eu;bi^wt>GjL%gD2j?6; z@xy$JHK(}w*0Sn8vtBm+vp$nII{_VYLi>5_JK3FiN6Ne-mOqf*xb9-_jU}l&zgb4g zALYM#DmC+(%k5*S^DizpIU{`9-RAnaGlNPb3gS>-_L8g?Vh|o z*#FS}T82%BmwE26K9|^Calg)F?;(SfOZLlzO<&5p@hTOHc5UI9DV5{82WT-eIAC^P WDf(&Pb-DFMAYo5eKbLh*2~7a(ld28? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..a09ada95e8de2e966dcb01aea8920e436065e361 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9iba4!+nDh2#F5e*qo`#26 zdrrQqS9$k{Uuh-lx2cY=Yv#+RIlFDR>NkS}sEI+)Q*-GQw|Jo=hpU;U^*!FC^ZIU> z)t|2E-&ww8)gAPf^0D(uzZZ8 z!#xn$=GR zT5NFs|C*zR)-v<$bewl*+v2Z6+wJo5yk;NU)gR|QTeZZ}RC*EPclYNf<@eQ1%@W^S znYjM;PG)^U^T$*@OYca5E7=5bz_x@+C7@Lv6oP3vy59I43( z`SOmvlD+zK->ZKiMap|FzIv=%+U)aXd1lM37yfR1Hi4}+xhykfcw8$OLE(S^4T<+& WmA+m1tbX1pkf5ilpUXO@geCx=x1=Hf literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..7320ef166c583e82299210784083527d714190a2 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#VBQf09@mRo zX3gF3Uv=a3It9fP=ER^4YhTP;&*NJ7*`tH$IxA4yjNcnICl}|{FPmaEuk3Hm{crXC zbBcHVsA_ohIC`IKPf_x-Il*3E!>-!9rWdaHZ}sYaSw?ip)WvoF;xkqhcI-K#9ORVA zulDMun(m@qD|Q5>DqmK2h*_SuM$Uaf`pS8ib?6|X-?HU zeI3;wMa-`+S$zFN#lDu)vb$dQZvP}C7ux@`0O%$Kld$hHd(=u6|82-G-M`RnwOc7? zunuGAdBc6%=FQNV==aNqZ&Bereu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00007.png b/tests/functional/snapshots/nanox/test_eos_transaction_linkauth_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..9b9c5ebe0ed88757773fe20706e028dcb8da8cda GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}6ba4!+nDh2#BHtkep0-4j zdrQ9C2fcs9udL{ra8u^(jo*JRoizK?keKBK)C2<$MEKwHnXJt6@^tx>{W;9#l-bY__1!OUpbXax|&DcaoLp^ z`TVUn>n=?E&vinT#aLLKCFFj|z6(b!g74Tre)R6O!WRag2X<`d`WO83%UGm&*y#Vc j@>_3qo5DN^q<8ExKl6Ui=7UiYB_L5xS3j3^P6n4yXYHl_xl=AN&PV;lM55=Ti0000000000mAf=R2vaaHS zr*#2$@)dpdet2QSDtER0wwULx&~V+N4Z_5Q~r)IeoU?Nek#M&BTgmD z`)$UV&p|!<)Out?d*y|zo8u*4%X9E;%|(-yr_k+a!}RN+rxs&!rS+g@-v^XsSFQl+ z4YTv`{y{&!m)!Lz3;+OtFTxWf{$!V5#>p0D-5P6kF;Baj^$Ghw>#ecTFXL4EGradH zWpKx>?AB5BZWAx2+v|Lng;ZWw+YARsjh%CWy(T~zyGb{>wL5LJ1Qo3WkC*S`qr&^Q tH~UP|juQ|@`;>Gy0RR910000q{Q%4EE%?FaCd~i<002ovPDHLkV1n@=&e8w? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..a353e5ec3b3987ec30ccd800deca83a6f3e8e6a7 GIT binary patch literal 431 zcmV;g0Z{&lP)JYiHsh)FP#+<{9003Z{FY5r_QA+8a z&pB_7d6D_gItw008dC`_pp~X5V;GNXxknRR-re(9g)P z7GonOr$y5-`sB05etI|O>~wf_bF}0@zZ#MOxT^)#;ACB4DrM&R9V?~CujZ};j^LUk zP8E4PSA?4EyE9&bnwC?IyT=~5n*o}yLljCa*8gFCydq5r0e(U4c zGhTxBq+%bE2i+%%SL&U2N0000000002{ Z`~t{!BO>dPx@Z6Z002ovPDHLkV1n}5!gv4x literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..add98925b3efab4ce9b3d48543f1fa037382337c GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WLba4!+nDh2#^rmJ7o`%HR zFa7TPpLD}peuj}@jLY sj>y2xQar)tK{4ha0F31}b_4oH!o7a-UNX>F+SPFy{K! zyK65#)U&%L{30~wfhMn({L0Nao_EFkXI4l1Cpf!W-d*-XZDVZQ>g7qhWelD@*tB#0 z6K%$cT(1|NwSE8QPtJ!Otd{&Y>n(q=o#2gnd-reilew~a)|31ie!iOgdv_L({i>xF zP3P?=mmSKM`>Vc!ZRQL9U=GuZ@;x#UN#dK1Smtzoc%;^*d)4vji>Qf_|9(xiuloG@ z5yz@sH}~oCMbC*&_x$4*61u5&;(oFARa5<{?|lq-ytJpg@bCQMYmZM`FsgIqPEI`( zXj*b}9?Pqc8B?E{KX~z<i_ZFN%^Y^K zPwW;jQ{>&%B=V7Ad~|;OTtWD&bE5jDONvssBqS1;wwOQ>h&owQEVVe}BEB zYUebyTd%^Sxl(Rtt=}JX`?~M6o^12e-ZgzGcT5Yt4;cTJOxSIlx=+9CO@m)|e_T}b ztMg*lb|>g=wXETu+j9L?=UOob{sOxjs`UjQWR>FVdQ&MBb@0F_9qvj6}9 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00007.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part1/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..2494c5fec14e00b742af17694d6fbb5fcf81314b GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9cba4!+nDh2#AYZcrPebCS zH)?nOd)!IoPg}CEp@)<8?|${`k{33KvOWjtPUli=5m>YS(6Q6Mm|}eXJ~50)xpM!S zc!0|0$9vbi_w^e-+S||WZs7K0`=>t}&4bha@O#uXTj{q~xon^O)+5bQ?)bGeH>N8r z-?U)!P4SzDgj6#w--$i+NnW9Qlg^`EYF}KpCB!$SSo$?RTrF3q_4{VvnQyyKY!(1o zeJrc~+3r6t3(g+*{r$b6-8iD_g7=KK2U8qPEElHk4B0+s&(^Jbj^z40)7UNiA^pSh z&)V#lbv8c`HNh$G%ou7X$!?i>iE)Mj>&wnS|K&@KZ%eP&C^bLm zS#^D7&u8D=-;><^&+VIC{d?xVd2?zf+e#igAQXDylIJAJ=7k>mK$jo`gEQ2Y6{NCfH&caDC@%XX)x!1j1p6=)4IL^Ok{ko84{A!b0(_QcCk+R@E-LP*q z?SKe(H`uvQ6CwALYz}r+x^3Ki z1Qjt0^*|_aa>wS~UNaG!zcpvV z0Mv=>G|hrVoyU47)I0$&Z?vwPrJz;?PKG0+Nsij?88p0YWWEMGvGQ-=2$}M49F~QT7ChaY?B* zBRwh|4J?ghx|^)lD`^a0flwsD<`5+4(t2Zrvu4BlWpUR#RSZ;@zgp_qdxLYtbYobF_r1K zsgQIAv~{<>EOfOX*Z7o-ChC&P=_2g}+p%?UpSypW2;?yA-fh_QJ4LH-Q(xdEll{62 zMH$a@zE2C9CEb7%`HH)`Yt^PXQI_3?SFm0(X2SrSW0=x2i#sW9wRPTC#K851&35bn zcb~47Gt~el&e20+;NJmO4y@(1Fls0rf4p~@ZeeERHRPZV_V@;MU$FW*u zqWEh3-D#`^0!M^}tkzm_;11E2h^2frcAo$iqw(t8rE0qMaqLdOx;0I&%>Bmmv4{E7}oOFG;E=Zjov$KW{Agb!2IYL?V$$BoYY+ z7Q56XHP?qWC|{GEpRMLr6|oGl&t0?{vw|CMA6>Suo9WSJ1u@8*x`sf=;!1iQFdH$} z>8Py`H3qnKbv_+bxgb^fl#a%7iS=|AcY^iEIoRj!za|1Y44YR4UAt4b3bpkGRwCW6 zx>1<&i1U41&@Ac(ROAtJ?bNbEbAoAB1xFyQMAVuIIM*=6GYK^)>a=y%SL8soh1GVP z0QH=%rZd?BCdTL?IneI_Ne8y^HfRY_!&Q5isSZX~-ck;HkmVcLQi*OV08A+CZsjDrJ4FBS)xGK64sNH4TmRyw!LQp;o?k_@ z!v}qBS#6J&k4myoOS~)}r3Cz?MXRt{Y+0`JVM)rfe)y>S_tc^OX~yXZvV`L}ths+G z>2EJPcqeM2zw6&}4wlc3Y26)m(LOr7Z996E5B0rDee0s_xgz<<4(ZW0>~bMVX0jC3s(IRtPj-F-c#dc%uPkFiM)`M6>^|kbCTD=ik12*0jVbd}E z4W29DqW_}i{?MZCYfX%4spPqT_u1o?fM(4O#dOX+_n<5};oY{N3F|GD{#Mr4617)M zn_(SPzWBEyn)9u1dU7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb680e41ab9ba21a462fd2e991fd4c81a37fcf5 GIT binary patch literal 438 zcmV;n0ZIOeP)oH8kBD%O(3-t+OMV|il?0uq}N000000Khai>i~`@rK}#$ zIZuw{dw1&qhHYhE|H`e0bpQwTH+#hFr??%E-ZLI?@>vA#fVfGQ0(Sr-z*yX*OMyFp z5nwEC(xrI&fQyMb0)jsE_u`EJW#+lYqyzu}a6R6io{KR0k3S0Obgn~{!MP6fJMz+E zY{cZSXga1pxYgKC@8+DH-d?LYI^{$E*N_arT`i~vC+iABDKpQnu9PA#&0Pm9!8J)7 zD)M-)2sPPvN1uY4mP3tKKYQSA1oY&R_3`!@Y777Xfd94s!ThX8c)4jfPAzHLdfIzQU>dz>y!F-ogZjDj_H$Ui52&}HZGGH! zG#F1obMoH58;}#1?ObI1Ml8Sl`YiQa>3!KSUkS`cKy&eRjqS^sbrEhF%QpKp?J1oC g000000095u2?NhAxzp}cFaQ7m07*qoM6N<$f=YeOF#rGn literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b959e18af58efb087d2190e0d992ee7586cc9f8b GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{%ba4!+nDh2lAm1Sco`yt| zdnw=Tg~~rNsz&VUOu6vr-+NC^=_RfOR|SB2VBkRN5sBoU#rlPh(rg)5_B`H}d;Bh+ z)tX0%wvA!0n9gSk{5&!D^t3y=6{qgptzwdQnezFz%zd4$)7KvjUAcEp;;Dlhc9wsd z+Thaib@|!7@80~$`LKi4lKh*W-yC&BN>%Nk$ zsq_6M6!-Z>{K32lo&QX{R&@SLd2&E#_XO2*iQbzJXHPxXI&I=&_KiPno@C}&My=JI z&cA)9hh~@kqN2$A?pr#Hmf!lnV4upmp!<5BBFfQHSM%kbtMFpUXO@geCwPr@09L literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..677778e9f8a2d731960c73ca18addf66715dc025 GIT binary patch literal 399 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|!FT6bVYazsam?FzjccEM>*?ZzPL*8|}XP3V9s+RAJAhx0E zJ3GUiWwxq4=f!+<`|@1Qam|d2nU!#_&f%x`)nASOHeAY{wrfk_vg(81b}GCQd%6Ag zW9t=GQ~qU!Yu{d~EWYEtRDIp!%;nM5hU*fis?#(yuvc$VX1%Y1pDNB4g0&rZ+w5ddU>eYhi>yg=|2nC rFI>i}_JU=m*$$D1tiXUl26~^_{&n#lY!qJP3ljEp^>bP0l+XkKmFu(e literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1a67f2853330bb8a10a83c13d714d185478984 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|M+lS8F-PptRB0<=^|0MXt9FiwZacH8GsoyGP1T^XX%W$GzA0yw2jE9%S|D z6npiriu%T`S7#S;N2?mT6>3kBU%j9xTN-SB^t&OmPx#Ch_fm%yy{>aFhke+>H{J14Wh!hN+Rv--z%#zwb{f4@E3R_14agTe~DWM4f8(OfU literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..d87476a37ffec577c138e45bb8b2295dec72ba8c GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}6ba4!+nDh2#AYZeBfNS9G z67@Iro|~uFO^`5ZxRf!oedqJlp|dBLr#S4&1?oCbvi=35$&ARKrb|UkCvo1p$oxX; z^QlshnC&Zjsb@v6%0d#>(Qa^1_i^Fpv!>7B2}d!Mte+`ix=-)8%pZ@f31 z_1eyG?uUpU>v!jaQaZs6Zx+m#3CYlJQ}}9{kiB;ASgXZe?r z!THta`3JSv$e0&cPFv2mT>gme242(6?E4*7%DcyV?*I90joV&^$FJsneqEWx@sjDu zn^W8F%|5;Nf7TaI@dL8EG|MO5K5=frW8d`R$5Nn~E$qNZ8ZW&t;ucLK6Tje3Hii literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..52468a07bd0385d1e70116a6f577e8a132b813b9 GIT binary patch literal 520 zcmV+j0{8uiP)OV08A+CZsjDrJ4FBS)xGK64sNH4TmRyw!LQp;o?k_@ z!v}qBS#6J&k4myoOS~)}r3Cz?MXRt{Y+0`JVM)rfe)y>S_tc^OX~yXZvV`L}ths+G z>2EJPcqeM2zw6&}4wlc3Y26)m(LOr7Z996E5B0rDee0s_xgz<<4(ZW0>~bMVX0jC3s(IRtPj-F-c#dc%uPkFiM)`M6>^|kbCTD=ik12*0jVbd}E z4W29DqW_}i{?MZCYfX%4spPqT_u1o?fM(4O#dOX+_n<5};oY{N3F|GD{#Mr4617)M zn_(SPzWBEyn)9u1dU<{9003Z_FY5r#$T@e9 zi^$?gKKE@Mz_h*WkH2#3$2x$M+QA+%`zdY*q`w)DxcF=WcR<{vYk@m}8DK1K(zU=H zzzi@JH|biueZa#+odH3g`djg4z+mNh#-aoO0PsBCpPsWa`;Rw;bUD|d>fl@l`Wby` zF*ag)T2vj=9^7l}r*}of>G102=#mfZUqdxGiY3@2;3$9Ay zRFTJXMX1WYJL4s&YB|-o``H6`GoYn!S#O8WRAT@D0Q_IaAIz_Mgx8yf6P4FTd0U*h zFgt_InqeP!+=zASo!btp?5*0}*7%o-RZn{_2`n=%8t;8|{NVUpsVQl!XZb#$3`4{E zxQN(R=Z%-3HCNug8}PIK7{3vdm%GnW&Xt@M>C9$8H4Mu=wk>Ctn{d@ww>hr+p2t;} h000000002E#V^7@E4iC_d4>Q0002ovPDHLkV1n2q%H99~ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00008.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00009.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..ac34ecdf6c226a204c0512fd899f55dc553c6dbb GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{#ba4!+nDh2lpiq;7Ktp2o zuFmiFLggbW?RZHKHQJyB$LYhTS9`tVaJ&;PSKY+oPz$Mx=y zaKfFJ-{SVKxy)7aC-aCs tZtb33yKUKH{C4bLDq;11BO;I#`pgZ!i&<|wr??grYM!osF6*2UngG+fvj_kH literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00010.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..091daebd93275e9e834ad7df1630f090a92c172f GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WHba4!+nDh2#pwM9ffriAh zU(~AqEARA{-{RJM!S6=uzxSG=&1)u4v$p6FZg{_&#^@>{JcS+m#pI~eYJSs0%N#tWO2`r*V{@`^9zR-YVgM zXvx!&rA&9e$8E{@!pOj|q51U||9ZC*6~8>(jg`tsdH%Jh62a;v&-PxEEoP@jTl>}L-}wI;>?eH*`}%=-1s3;Wk@>eQdZoh2mr z`*z1au8!IJyf&0nm;Yqpsrs>`|JuB7-BXj7SVbG};5I$9+B9h``-0YYeP3Gs$`&&( z|Nh4OX!ZUdrQsXDXU3L`B=%&jnAyxJ<(S6TrnCp>d1P?FKwonH&&51t6M{j)p00i_ I>zopr00OC=aR2}S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00011.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..6e1a67f2853330bb8a10a83c13d714d185478984 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|M+lS8F-PptRB0<=^|0MXt9FiwZacH8GsoyGP1T^XX%W$GzA0yw2jE9%S|D z6npiriu%T`S7#S;N2?mT6>3kBU%j9xTN-SB^t&OmPx#Ch_fm%yy{>aFhke+>H{J14Wh!hN+Rv--z%#zwb{f4@E3R_14agTe~DWM4f8(OfU literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00012.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00012.png new file mode 100644 index 0000000000000000000000000000000000000000..4f18b1423e688818cd0e6ade3c1a5be1eecdcefb GIT binary patch literal 322 zcmV-I0lof-P)dk+8r_@5G`%{BX8`O89m!ZS5l z+lby9v6%g)5{j@Ujp@aOxDWn29Z@UFSrc1?Z3J|Tt%PTmY> z|I!IxkJ=iaWqtkgdjGpS``_7bs_QB+D9*aDIpKU=(hqf;8!_jb^z@mQi=DANEaMO#u=P_pFF|U z{>4eKkJCe^HvReQE!6G+6<)z4*}Q$iB}^(BQP literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00014.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..5a968b35d6fe923f59c3ef59e0c602abb8ba619e GIT binary patch literal 416 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x5ba4!+nDh2Vv{17Gk3-^ek%7^G05wYPfwvu&gRbIiLZI)3VzbH zuNQc0DyNigssH%kiC^DRkAD5($ZoQ9N>b0$z}d+g_NmpBrC0{@xn3=CxVUKI433QR z{fEogZI3&D>4-5dv_->qDTYh8rk2#UX3fX)z{K*Qp zpI+NO#qi$iH;3>1xm$DS4&RAaSyl74)rBO_`W?=&n1A1?x3|k|)$|;fUtR6{IlO+w z!HZVE|GP#QGk;iIp?gp zm!=i(8Qifx%vL?m+_LNrw~@*B*Oj(9SLZMuGo8KrCQpG-bwT;2`g>IeSB5JV?wH+t zWZT)_^GmvYzE01aGV7JTn|w@X=nJns?dx4C8G+^_friX`2mcyAo~Oet0}}Og^>bP0 Hl+XkKZ@IT! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00015.png b/tests/functional/snapshots/nanox/test_eos_transaction_newaccount_ok_part2/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..f84304a91eb2a40ae032efcb0b3a927d3412993d GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x3ba4!+nDh2#Zr))9o`#1d zw|sZ}pI9^fZ%0aH%?vNa8=3c?hd&RPGsD5ENCv141|Ep5zwt$B(R^>s#`I6UE=Twd zJX^2-=1JEH$%44b>c`oxUnX=+3Ch{C>XziiimL~f6`YbaVy*wS{L9V2jYq9sudaXf zJg7@n{k8*tW{mZA_tk!8zj;quUAi|f^zQOq&4yhm6Y|(}65oG$Q9Sd6DMRjFu`q+@ z30Igm6wiCblw03*BlNcZ%)h^8x8LgVQ!k&9a&o6v-HgPEEB~3z4GR8yR-)Nsjnl*m zKKH7)%J8`#Kd<`}x$LX2HAD3Grd_w^)E#-py0tfV&+hK)ce6^1GB?lpZx$bv>nZnN ze~0uOvv+QD^8WVJb4w(w|QP)y2eU8}9{R;RK{>dhCt=t5)7Ml(PYedb;|#taD0e F0suqw!ZZK? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfe9509d914a47c93bf105f0df0c9e81769c9fd GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-xba4!+nDh4LUA`s*p0-4j zdz|0vJ$H-qi%q}v*FyA#d&PX^NUq2zji~9YKwU5p5rM!#MA9Ccbm&&&D zGM#%QxVJI#tn{8K2d^$>xjj{An?~q6xxJ0%dZ(Xmc(VP(>u;N_wb$R~ekS#1+jsd) zQHA2nzpHj$Kltc9+fgx;i$4JK;_=yiF#A+eLm-&oHKik@Y1*>nYV5izNr`5 z&docw`uOr44Zj5Hax6JA+`b)KvDaX(yGx-&`q}g>8`DcCcPx%;SbDXR&2X>OiEUB~ zGhh6_!~H;{WnRO*KSgTGA5UNPZ2m-;pMi8jxPO}1^~;WzCg*@eJzf1=);T3K0RU_h BoD2W} literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..091daebd93275e9e834ad7df1630f090a92c172f GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WHba4!+nDh2#pwM9ffriAh zU(~AqEARA{-{RJM!S6=uzxSG=&1)u4v$p6FZg{_&#^@>{JcS+m#pI~eYJSs0%N#tWO2`r*V{@`^9zR-YVgM zXvx!&rA&9e$8E{@!pOj|q51U||9ZC*6~8>(jg`tsdH%Jh62a;v&-PxEEoP@jTl>}L-}wI;>?eH*`}%=-1s3;Wk@>eQdZoh2mr z`*z1au8!IJyf&0nm;Yqpsrs>`|JuB7-BXj7SVbG};5I$9+B9h``-0YYeP3Gs$`&&( z|Nh4OX!ZUdrQsXDXU3L`B=%&jnAyxJ<(S6TrnCp>d1P?FKwonH&&51t6M{j)p00i_ I>zopr00OC=aR2}S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..48e1326eb3870bafb8b954c65b976fd04c3fcab7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2lG+(oVKx<;w zF5z$cm)!K0_u*juD3<5`|NX^P4}2u7x13`HYPwtN=Kny-*t@UdefyawSI_92Z&~sF z1?LsPPm0?Wrd5;%3n;kzh*H*vdzkbfSj(^4KbjzxIrm}B+RblhKt0heOHBU{UuHW?O-u#d2 ztmAFH7MstCkSKXS?{j_Ros!a9Cx6bJZzY-6X+I++)Gm6@p_m`>6EeQ!U+)U?zIfK{ vfa~l2MM*18IM6k-yd}JSMH2MYe2%Du6{1-oD!M@+-m`t)x`t)Tf==Z3TEm8J`N9{m!(YHCVkYUsh_1vc#W*GK>1xGxxU%R&6|)6G)X zRu#=zmL|g(y4hFO-SRkxhwYaeepZKP|CHfPI8{FL$u)*dE-=n!~K~ZjVbiw<73=d8}H2HFT*X}c~yf41&esgBI&-F;-oC|ASY@VKV?Z0?x ztFC5T{^N_MFKCyq(+hsX{N}~nGVjFK&o$>hGuh(*yW#TegA)&bd8C}6Z+GI3-#(tR zb_S9c%TKOrzHC%-Myf=4k4z8G2C0-q_CBgtTbP0l+XkKM4+U{ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..20b29d60a821c17b70185ceb0cdb4409450deb77 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WKba4!+nDh2#AYZcrPebDN zH)?nOd)!IoSMv>bn5iW4cfb1LBoFSZrKdrfO1?|kGHM^&A=e_{mHzIDZ55OMcS+mE zMH0yzj??zV(i~oS9u182OD>lIiC%GJX8PBm)S*^ z)}L9opLt26GP`L^Dc`K(i(Lk5Pi^5WOemc`Z|9k7db#JgTe~DWM4fO_iU* literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_ok/00007.png b/tests/functional/snapshots/nanox/test_eos_transaction_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9424054aa792e9a43858cf2ae5c07ecdd2dfd6 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^K>ba4!+nDh2#EMJoYk6WP0 zyOzKDncp5AZdo>Me_&%>%Dc)#o{E#jx~?SxHNnAMjipn9&e^#hQLbj5c>b|P-|a+c z#`2G+?m4VJDt+gaz^lZAbw>}eEj?ws+5CfI%1yhdI^Wpu#~-fQ^-ez`yWrNn`X!+a zT1&pJerCrnR&TDcP2uAdS??E|A9$_4y!+ODrkVA2pE&n~y6->#$%&m-S)&u@_&NKM zU)AN!_nWV(O#XXXXUVKL@jX&0i?~xC+0J?S?d9M4SCzj-RIF6Wvsf=kxwmI7{cj;3 z{9FEH*&egAd2@=s>+$Gc=Zk787kAa*d)yPX>6}7rgIrbX1(PlQyZjwa+jsQZYVA49 d2=^j`1OL5V$)j05d;Qozf}XB^F6*2UngFM*kRAX4 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_refund_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..f84304a91eb2a40ae032efcb0b3a927d3412993d GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x3ba4!+nDh2#Zr))9o`#1d zw|sZ}pI9^fZ%0aH%?vNa8=3c?hd&RPGsD5ENCv141|Ep5zwt$B(R^>s#`I6UE=Twd zJX^2-=1JEH$%44b>c`oxUnX=+3Ch{C>XziiimL~f6`YbaVy*wS{L9V2jYq9sudaXf zJg7@n{k8*tW{mZA_tk!8zj;quUAi|f^zQOq&4yhm6Y|(}65oG$Q9Sd6DMRjFu`q+@ z30Igm6wiCblw03*BlNcZ%)h^8x8LgVQ!k&9a&o6v-HgPEEB~3z4GR8yR-)Nsjnl*m zKKH7)%J8`#Kd<`}x$LX2HAD3Grd_w^)E#-py0tfV&+hK)ce6^1GB?lpZx$bv>nZnN ze~0uOvv+QD^8WVJb4w(w|QP)y2eU8}9{R;RK{>dhCt=t5)7Ml(PYedb;|#taD0e F0suqw!ZZK? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfe9509d914a47c93bf105f0df0c9e81769c9fd GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-xba4!+nDh4LUA`s*p0-4j zdz|0vJ$H-qi%q}v*FyA#d&PX^NUq2zji~9YKwU5p5rM!#MA9Ccbm&&&D zGM#%QxVJI#tn{8K2d^$>xjj{An?~q6xxJ0%dZ(Xmc(VP(>u;N_wb$R~ekS#1+jsd) zQHA2nzpHj$Kltc9+fgx;i$4JK;_=yiF#A+eLm-&oHKik@Y1*>nYV5izNr`5 z&docw`uOr44Zj5Hax6JA+`b)KvDaX(yGx-&`q}g>8`DcCcPx%;SbDXR&2X>OiEUB~ zGhh6_!~H;{WnRO*KSgTGA5UNPZ2m-;pMi8jxPO}1^~;WzCg*@eJzf1=);T3K0RU_h BoD2W} literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..091daebd93275e9e834ad7df1630f090a92c172f GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WHba4!+nDh2#pwM9ffriAh zU(~AqEARA{-{RJM!S6=uzxSG=&1)u4v$p6FZg{_&#^@>{JcS+m#pI~eYJSs0%N#tWO2`r*V{@`^9zR-YVgM zXvx!&rA&9e$8E{@!pOj|q51U||9ZC*6~8>(jg`tsdH%Jh62a;v&-PxEEoP@jTl>}L-}wI;>?eH*`}%=-1s3;Wk@>eQdZoh2mr z`*z1au8!IJyf&0nm;Yqpsrs>`|JuB7-BXj7SVbG};5I$9+B9h``-0YYeP3Gs$`&&( z|Nh4OX!ZUdrQsXDXU3L`B=%&jnAyxJ<(S6TrnCp>d1P?FKwonH&&51t6M{j)p00i_ I>zopr00OC=aR2}S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..48e1326eb3870bafb8b954c65b976fd04c3fcab7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2lG+(oVKx<;w zF5z$cm)!K0_u*juD3<5`|NX^P4}2u7x13`HYPwtN=Kny-*t@UdefyawSI_92Z&~sF z1?LsPPm0?Wrd5;%3n;kzh*H*vdzkbfSj(^4KbjzxIrm}B+RblhKt0heOHBU{UuHW?O-u#d2 ztmAFH7MstCkSKXS?{j_Ros!a9Cx6bJZzY-6X+I++)Gm6@p_m`>6EeQ!U+)U?zIfK{ vfa~l2MM*18IM6k-yd}JSMH2MYe2%Du6{1-oD!M@+-m`t)x`t)Tf==Z3TEm8J`N9{m!(YHCVkYUsh_1vc#W*GK>1xGxxU%R&6|)6G)X zRu#=zmL|g(y4hFO-SRkxhwYaeepZKP|CHfPI8{FL$u)*dE-=n!~K~ZjVbiw<73=d8}H2HFT*X}c~yf41&esgBI&-F;-oC|ASY@VKV?Z0?x ztFC5T{^N_MFKCyq(+hsX{N}~nGVjFK&o$>hGuh(*yW#TegA)&bd8C}6Z+GI3-#(tR zb_S9c%TKOrzHC%-Myf=4k4z8G2C0-q_CBgtTbP0l+XkKM4+U{ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..20b29d60a821c17b70185ceb0cdb4409450deb77 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WKba4!+nDh2#AYZcrPebDN zH)?nOd)!IoSMv>bn5iW4cfb1LBoFSZrKdrfO1?|kGHM^&A=e_{mHzIDZ55OMcS+mE zMH0yzj??zV(i~oS9u182OD>lIiC%GJX8PBm)S*^ z)}L9opLt26GP`L^Dc`K(i(Lk5Pi^5WOemc`Z|9k7db#JgTe~DWM4fO_iU* literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_refused/00007.png b/tests/functional/snapshots/nanox/test_eos_transaction_refused/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O0000gX9g;)ZTl>^=Ar7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..b97911a266a89752767b32a087fedc668d4e8d1c GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}7ba4!+nDh2Vtk59^9=E`f zJD%V7t9*OJtlZ4_vOo9p);pg=Bok&FVe{nxYJ!0T3BzL&k1u+=*zDm?m|8ez*-HDh z#t*gP?y*O#`pJ4e)8OZc$)_jU=xU_Cds*9{uXgHZa$o+mW2e(MYxPc-UM3?`_N{k| z(1aNq)@i-_n(}eC<3^Uw_MCX9e22&dzHj69dD=#9crzu3>CXPz)LQfAkB56q$}jwx zX(Al={YC$S^a-8+GNl%({ZdzEpSQwk-i~(LSi3#TEDM>P>W>^-a19bo9W&B^bzo4vBe66`c$l3Y!(F=b8ZGY{yS$RuV``zmEi1_#*);q@Z0}+I$Sdx^;!i$+MoX0qvfah^tHs}14iyszZGaMRgU}l z$oy~h{)U5ZWUM}FsUC|cVf}ge%+k#|pQB>pgZWx|ru*n5tvxJtZsWC!*LTY7UQo<$ zV1KosucPnW-UC;QE6>WD<1P5|H(5aA(&tjuQ{NYDyQ;JIxsoBB7G4HCsx#cQA6 zXE<6gr~cH{iGC*Xuh+jmK0OZT7>SkpcD#u%-{fIxqHLs6#r`QkrbnTOw2$Qc~j&hzMBwd3a} zwg2b-{LXOvvc~sY&3O%;ll$jHRi84KpY}Y`c4@8!m+7I`UysEJKj6E%_et+x_cQDo z*KW%9-LHFk;`-8WsiEa6iG8O7F0*l)H2FyTxK=O%9f$-PGVeJHc}t6TROEt0Jzf1= J);T3K0RW$>yvqOp literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_sellram_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e198f7a74101dd977138ab8b307eb34e3f2ab0 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}8ba4!+nDh4LUA{vKJZ*_4 z_c*`Td+rtI?`WAKe{!0m_r2#H+h;xq&)F^k(zW4E_ID;JmnAjQ$#=F+V!gLp{DSG^ z-5o2kc7DFOw?R|$X^fC)RpmCDtJX`*LeaOr`ub$z6 z$K7971%JM*{d4o{T-~F~ABE|^3Vtg1o7JFJy6X8(PnQ^*vYC1ZQsXZ19~U_g_~;ZT zYrxCrCj*?Ke2>%{ n7x7!2mV1Ohf;@=~`hPNUiQcZf9kCr4S_}-Hu6{1-oD!M6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..57b322b2ab49f9f18accb61d6b5d1c7bad130ec9 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}8ba4!+nDh2#B43jMPus)H zJ)ZCDm)t!ne`M*)1p*FH$A13_k}=qyd*%vAI}99%-?PYi!-{KBUV;<9-P$86c=wp4 z?dI|lcCnc+r01^b*wT@`w)XKKyNj|GM|4^*`POVM5jwS-iO2rnx0P|itJ6~pW;05J zzG8f_y>WNW+S^Oz8q_y1Pk7tzVt;e`vifMfoBNu!UD|#oR{mJhi6!+jXRh%4pVZ^1 zGS6w^jdtaw-P`}k>_4aZw{o2n4yXYHl_xl=AN&PV;lM55=Ti0000000000mAf=R2vaaHS zr*#2$@)dpdet2QSDtER0wwULx&~V+N4Z_5Q~r)IeoU?Nek#M&BTgmD z`)$UV&p|!<)Out?d*y|zo8u*4%X9E;%|(-yr_k+a!}RN+rxs&!rS+g@-v^XsSFQl+ z4YTv`{y{&!m)!Lz3;+OtFTxWf{$!V5#>p0D-5P6kF;Baj^$Ghw>#ecTFXL4EGradH zWpKx>?AB5BZWAx2+v|Lng;ZWw+YARsjh%CWy(T~zyGb{>wL5LJ1Qo3WkC*S`qr&^Q tH~UP|juQ|@`;>Gy0RR910000q{Q%4EE%?FaCd~i<002ovPDHLkV1n@=&e8w? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_unknown_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..9088cece139d94e6aa44cc37a3f242f8a4c18e2d GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=-&ba4!+nDh2Vv{17Gk3-<{ z%X2sUSKT?i&fxKdh7SHo9N%lUh6r#TIkX9=2L>7f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..17e325e19b7590d3922974113aa8ff4b35f7ee30 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_WLba4!+nDh2#w9p|19*4k^ zJD%V7t9*OJt}GnvwUUXm>U?LYwnEDJqL>=Lu`vS#GFh#82t3zHSrH_sh0I;exALw>rPnp($dNUA(R+ayD{C1G3xB(*G?_riNOb)E7~hlC^=WSI4i#1_n=8 KKbLh*2~7aR8=%_& literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..801c023e3ba0a6ad7bbd10a7f8ceb930e1a6f565 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9dba4!+nDh2#Y*DiTk6YmO z%X2gSdtZwCb)d)XtNz?1Z=d&-UOmZ^{2Q7zS%KOt-YJ)TUzN4qRprC%KklnuaTok} z%+L2pd}8{6ucvP_-xu2GyGl!G-(Ih`SsTBtYQBF|<=uqf51;?&J+BF^i3s2K?OI%S z$NI_d6K1cu%l18bwIkneuA8qtsw={F>X&vKW}Q^HEBS$=eu;bi^wt>GjL%gD2j?6; z@xy$JHK(}w*0Sn8vtBm+vp$nII{_VYLi>5_JK3FiN6Ne-mOqf*xb9-_jU}l&zgb4g zALYM#DmC+(%k5*S^DizpIU{`9-RAnaGlNPb3gS>-_L8g?Vh|o z*#FS}T82%BmwE26K9|^Calg)F?;(SfOZLlzO<&5p@hTOHc5UI9DV5{82WT-eIAC^P WDf(&Pb-DFMAYo5eKbLh*2~7a(ld28? literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..a09ada95e8de2e966dcb01aea8920e436065e361 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9iba4!+nDh2#F5e*qo`#26 zdrrQqS9$k{Uuh-lx2cY=Yv#+RIlFDR>NkS}sEI+)Q*-GQw|Jo=hpU;U^*!FC^ZIU> z)t|2E-&ww8)gAPf^0D(uzZZ8 z!#xn$=GR zT5NFs|C*zR)-v<$bewl*+v2Z6+wJo5yk;NU)gR|QTeZZ}RC*EPclYNf<@eQ1%@W^S znYjM;PG)^U^T$*@OYca5E7=5bz_x@+C7@Lv6oP3vy59I43( z`SOmvlD+zK->ZKiMap|FzIv=%+U)aXd1lM37yfR1Hi4}+xhykfcw8$OLE(S^4T<+& WmA+m1tbX1pkf5ilpUXO@geCx=x1=Hf literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_unlinkauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..0a9c4e62e6f5417e712a0bfa29ec5797a292e708 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9hba4!+nDh2#v{17Gk3-@V z!vrz;x2#{Z<~`WRvq-M6K&tcboTaDsZWZ64v`Oavu|IB#^Y)3kw^mpst~i*QZGR$+ zk!j+!*t53sIe+dYY-E-6zqykqmNBzgZ13*+Ni`b|Zks%bHNgJ&rGI)&|J+@=jBosz zxn*M9*EjZ#rYBSCXE?1o`7hy$gK(^e@b^UD&r8dnbcJq8e&Lw2KKRqpIMg`(Qv1E#e*C5`?7CLO)NBCmtm~Db#2b$Wtt7zU#I=K z{O_ZiPmS=t_J!dNkMmu(-(%117n!)BHujJ7rg}#6J+HqR+>>Wpz^b_z77{>O?+fb* Wi~nyo-Eeyf67_WTb6Mw<&;$TEuceXz literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00003.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..f1bd244749dfdd17215b5bf5f7fca7d39541bc4f GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..7320ef166c583e82299210784083527d714190a2 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@9fba4!+nDh2#VBQf09@mRo zX3gF3Uv=a3It9fP=ER^4YhTP;&*NJ7*`tH$IxA4yjNcnICl}|{FPmaEuk3Hm{crXC zbBcHVsA_ohIC`IKPf_x-Il*3E!>-!9rWdaHZ}sYaSw?ip)WvoF;xkqhcI-K#9ORVA zulDMun(m@qD|Q5>DqmK2h*_SuM$Uaf`pS8ib?6|X-?HU zeI3;wMa-`+S$zFN#lDu)vb$dQZvP}C7ux@`0O%$Kld$hHd(=u6|82-G-M`RnwOc7? zunuGAdBc6%=FQNV==aNqZ&Bereu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..5b87a1e89e0464a6d70b19e5b221a6aed5623e5e GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^K?ba4!+nDh3gqtGD*9*4k^ zJ)Ga|gWf$-Qg&OgwA-oa^Zi2yXBo}7pp)SR)O4VT|2=C>XUE@J#owY%dilR+y|V0C ztjj8+-PM))2?w67zT)Ombne&WxSYc|J#jk8)r)r*_&cc9FS)O?{jr%(cEa*a#pmLG zt3I69u*!8#NsrmxU~x0g9ZWa&R$fVIGtX10;+DE)^4|3Y)0DmS`~K$M_#SAs2{(h!e5qb@t#7ybvb&zQBuYyBZA&lI%{wmNdQ|Y8!8ImsW3 zy!G02dD))bzc@QS9A6dQ**E!4-h_L)v!1= e$QC4Uz$Cxr;a>Suhsr;IL_J;oT-G@yGywqDCzB}v literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..791bb362775d4be94b655c201901ce27e8983dba GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h5*QvW?&978JRyuBXScSu2m^}@L$ zb2t1~E!F?*cuBzPqD1X_pL0JaZ*hGudLfsYp`pNj;^eo#@AXazdX=F0H28e|)4;>p z_CNgMzIV)7Q@3r(`O4^ptUfZ`k2O|C%e;NHQ%ce<%c97%de8keoz~AYZUywIwOuU# z?q@bF@xo5+PkP!3E4<(K{y4Y&%2v~z3OCkrznHWCWv+R*oL2eGCN;H_^S;kt{{7td z)fL<#8%(PML)mXn|2%2iOFvUfIR=J=1%E@mwn*(|nzT0VfYkq%|Awq8!45{ODzCXC z{`&0Rss7Q+{y^%9OZ>(iQNIqBOgO1G<)q~t&pkk2L%|2r`WlIOliu(CD+ChpboFyt I=akR{00$0=a{vGU literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00007.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..13cdb1188fe0e46e726628e20f116f8e3adab46b GIT binary patch literal 888 zcmV-;1Bd*HP))u9LHXRsiwa2_vsE8)M@Hxzn{3{I79`ne!mG?E8=o?=yLI_AGEb% zE%|ImP{til{;%2MALY1h|Dg9rD$)hOJ1fKtf+MAV)#8_S>MI#9;ePGo=}W%4BV-If zqo3dFKTOGH-Vu+~JAmZn9m}5(LZ0O-Qb|ZLy0AFXjVIT5ZOy!?FZAq~mPIbD`{{Wx zzYUrVx|_pPRJ@YNS6c1y+RnO|wKQbXG$6abv!#mvtUuj(O!mESH#_2neg&BXWyLY z!J9MHSnJio;S;Q%QHqGiAivr?L>@ujki>bX=Lq~XG|%pZV*%Tlio`-I{F7Jo5Ewxo zbE+%bd-d!vUGF((zq~F0b_X8slgUjlVKNN%V`A`1KJOHI6N5=+3~ohFZ%7R_4SBg= z!~1iCNRs=?x`JmGR~shGI88MhnqpD;{x2BOd`kvy12&3QI)^2FD=eJ`t9d;cHUX7A zvk^xCR|^u+18K;o=b{xa)4WfVtspTjDAh)!N1>yEr4dYbgVkmwjpZxQYdBn{Dc%Q& z(^;S3;M?{9E(2X2IaqLqg^T5N@IwIrQvS~iYQs>(3G_@ep_?C>u>ypUnJnaPA z(RFa2r~jG={&*P7B&4-GCGMio3RJ#ipqU%VxtX zXfF}7ZUE{Sw)9M6PKsIWKJRzL!1RU9PV4}4pWZEJiUDk#qa-n~?*J_aw(?f!HS8T9 z*1JrzFf#HMa?l5Td;?#m(C;lNJT&ma1DkyVcPv{HB6yh-LI@#*DEnWjOXw-@ zx!LMz|9e%R;jOS6KJIz0^;7L7j|e2kbX=$jspEZps^t9Zj^v(4P4~Wjb`-1J^FD&h5w0-^Id#-AuDZkjYhKI+D&i@m*W}S0>Cg1t% z`8zhAx&1>##c$_Y|5B^Ms`vYP64g%ZS`{t0yV_6w%ePXa4ZYe7#&&vZcgd79C!Mla zH(+qMUM#nC-^3s1`Rwl5G5p~xIL2U+%rM80;oK93J%4?wcXWT5^p|;;r`qr1CPBX6 s_>*~THgZ=!lKJLR#Rv==B+!uikD)_PxsTanZ#qcW)78&qol`;+014}?!2kdN literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00009.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..95e7a45d80cc1f2430962b24f227b5f663300c64 GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>w}ba4!+nDh2#^twX|0u6~K z?^^!qckcb+;8d_3<*a6&o6?lU1Jw1w;GE_2m_Jr~WV_YkOb&nRS)*R5 z{!s4y(u={@ZgpO)DXlq^lWOgL?D%Cv@9Gbc;#Oku(KSalU+ZFA`tjr1thI0R(=(TN zEH=L7Vx8u&a@NA8eY2izKeb5aU+$0FI$>rf8ZIrFnR=PWz;o)^sjG#Sn=JRX_4|7y za_;Lbiy0qsPL_KwDfUlwS-1IxqqCEr-P*#je09vp8@v{KBvSnE?38$OkF|5|u_L`J zJA$k3v`(BFJNd?pS_iWCA&yI$O#yU@1 z^v8Im)~SDzFAjS4*K)1ApkZVi(e()wu*l$a4dc<9di<6XI3|OHJzf1=);T3K0RWbQ Bw+R3M literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00010.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..a55b9679017f8ddc211cb7b6ee4c98ec76dd59af GIT binary patch literal 411 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>x0ba4!+nDh2Vbl+hG9*4m4 zD|0veSKT=MXGcopo<~A)q3?gLxFjZXT*N~Qq)X?!l&Hor4JAbu+iTlvFPcnYTiKdB z=T_a-b34}`EUy3T)PHt&L~8Y-C(eaa^jj`WOzAPS58wWMg@e}qoY{FCikSh~>-Vnn z{7_>t*<^|3ipn;#pGmiB+0HjanQm<=%hlX=efzIpFI~lMKhNCq`DYzH|?oeA=`oE z82w`u&1k^%Q~loCIDncx?%tT literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00011.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00011.png new file mode 100644 index 0000000000000000000000000000000000000000..71bca38d028435b3de9d6006e4ec82375d15ea5d GIT binary patch literal 504 zcmV+1H%BvcY|$0RRBN61!ZGQt@$9)@t4ZGjDYuJB|8`+*hhi*c`$3RZwLiN(Q4Y2{keq2UZq)RJUptGp2U>6H(Fee( zKLb1`(CEsu=Kv&Mri=|mpI9Zf#H~pWK;s!J`P$cQx^cU^^3s~t=BBCEvOZAWJXsAYrmt$Lade2A3#RN;pU^gKE0000xODUz4yrcM2f>BY` zamtqT*6Q3JYPG}A*JQs|wpUxt(Ci#zG*9K0eAX0W?40eyFdy^x>ge^w%5j~iYAMN- z%;glMluC;{8?2eiEwY2`e{L?V`l)n=F`K4VK)s^XHOigRX)$xCFC-%_$Mv0<|16*C zpwH|hBkzPNLox^K#B5qv0V=ZAiXOHcSk$dyEEQm%CvaZra^sr(icG;Q z+i-{eAi2TGU9S$}Sj!IPqdN9j?wEZG>g;{;#jev5syt_IUOC`osKXS@mO66N zutPXCX8fwRud^n1b_L)fFYf>zL*4RwKFk2%AK_KcllnalKAv6x{ts|Q0i00)XB5Dh zF2K{DX`35NFSCDx<|H%ww=t%g*}oYz@Wd|UiRZ8}sBx z1UKzIn_0f^XxL|qzDZZlhdW94?weoM9{6*C%RY^XMv9Y#YQJr{`(lmWPR~m`2Ibjl zhd-L>eZ2nCY{_D^<3*;$UUtGscc)Ho>e}rue>PiH+#_z1|7R%;&Hj4Lr`8L3H=dK; zk*Yp-$CHpEb>p-Kzf)G7zun(Nos_*~6copG>E#WPS5xmVSh8bBiTlRe@18_??4NUO z=6ax8f1kX~owcYndCRFQ^>$mMH%xu^DC#{IPgdSe1OK~S8Go)VtKag~&T)I6=5^uI z^7HeK^xeMIb^o)}9HZIGF1}aacdq8|il|xaX$P#rPGrj4GH5TEb(KBA&i;jLTJ0VS zYX;80^Xjj=ik^AjcYW7Kees{#^7pR)_|jbVS6zYU6IcEc{)?QZ7yXY(*l6;YCQo>v ka-!$pS`K}n!;nG2Z21RvAt}=A=I=nlp00i_>zopr0INjEXaE2J literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00014.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00014.png new file mode 100644 index 0000000000000000000000000000000000000000..18cc3afe98f32b4c1d727e34f78fd344be35e5aa GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=lwba4!+nDh2VU{Q+#PebCZ zm%cmxPu$@xKVz9B6Jw02)#rNtxv?&soeOSH0qIxQUOFXc(c&NK2Vbl>C4W2e`}X*` zfqx?FXH0v4wC?WBdkNW9Thq^3&a~LwdsZ{nGX41q;gd->>~~M!rhGEp`s6a#G^NXV zL2A0cGF~lRx$Ontaigska|8d*lJq^iZCaRv@djB3wf9>})Dze*Jv@~@`_8Y>fA5y< zyB*K|-evXTS8*3OZ{Lbw^o>~j)F#*Rqutfl2lUqaudAHh%VhJMGiLhEdpn*?5KggO zU74gFyeji)pJ+wOKGv6aeeb85H6`nYTNs@BrMcWD=g6z*37bE@+-|j8b*AUK9QR*M zmlc-hPy5H4*eu^`)SIrIqqFh$bWP6Y{jy85}Sb4q9e0EpPYXaE2J literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00015.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..0065277ec59ef7390ff325549d492f0a4b863308 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|>}8ba4!+nDh2#AYZcrPebCi zH)?nOd)!OqPvO;8ax=d*>3?;^vPEaMH56(x0(D)s<@tSY+uD0)EcvD7w@a3V`%Ty1 zzw48%|KzxA%k<9EfA0BOt=*fm`~Awtm#(E%hlCbJUrFts6T#M4`DJpu;Dt#azPh>n z^SHlp-QqQu!pxoq*BU;_W4YpLl~eq7*0#y}9_cYI5?`?G$1SCapj!5D^g-? zwQkjKp5KBBsoH_sthe9Yx8-tIQag56q-BNDG<${zN~VuDv-vDNRQrsz&0kU8dGB7o z9m;V`VO@1yGa8PvcsK0v53ApB;DA*32C)}xN_K60bqoJXM>v?DaH*d)H$eFB$rFvL mX^P%!4o~CI2YM12d@#?KXTM-@qU8Tckg%t#pUXO@geCwhP>-Sj literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00016.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00016.png new file mode 100644 index 0000000000000000000000000000000000000000..8586b9f6fb1304b85abe991e93e02d41d0274442 GIT binary patch literal 424 zcmV;Z0ayNsP)41i%~vp3=XNAfQF!z>{MihNa=yw8t`j-V|{)fwji0001UpYER5b;YaR`)Xso zP4#eh_pngfbNo#RGF~l(Q4MlDi`36xfA76W)l&ALrFg2t7jkKhVI=q8?w*P`pfsg) zs~DQnMIAcclVI?a>tUoj7vbIC#38w^$uT+uQXv#26R|a3&SrA2hEK7e%eJWoDf-4c z$u9TJ9yfgkh$}*G)3?tlx0Aj|R#;Mk+_M{;)9IsPf==+Qr(_>~lD7cl2;=@91H3oBd0@ph)-c z(Kyu%L*e&JH|M(+&13xQ6d+u-#UUrE{?gWJ(W;Jk-kyzny#y9<&HBgi;Pl(v7hRX@ zH+L>w();Xe)O``}J*h7aU$VK!kicELwKJlgDf^J`m$g>~`DOoplN9)p_UYhnCpES3 z9shZ44j7zpxqrrUMdv=lV+VvoPY9n+^luRddK(%1n61C%;dz_nwR@OB!k(^vF6*2U Fng9uHp>F^H literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00018.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00018.png new file mode 100644 index 0000000000000000000000000000000000000000..4283e2a6a4212475971f646b111a4805ae98939e GIT binary patch literal 433 zcmV;i0Z#sjP)RXcq^xOm=EQ0?W}o^iw9Wu$twvT)_veHN!2r5WwOq*i)W0_F1c zTx^5if^e7foA6i@_PV=nebonmO}%0d@HzW66tlhO{ndfj(8ag`=(F|uvpuT6(*LNw z-UIf^>dLQ`uhIy0qfGX7T4bs}O{LUSe=_dDN~}UFu@A3Ac>w?b000000000000000 bfXDm-%cL(#M*ZeD00000NkvXXu0mjf0LIg- literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00019.png b/tests/functional/snapshots/nanox/test_eos_transaction_updateauth_ok/00019.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0d70bab9f111ec9cb7585155acbf145b06d992 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{s}ba4!+nDh2#w9p|19*2vs zc1(U(@A>8^zndEGlt;=ceBWy{Co8EGJkFf6moOT+jO6+gzW@x)Z4p{Cto?pxLwv${J`Jq>fg&vXT)9cC~lik zKUwe6>v?}g=cvtm z>iP#ZFnn#+y0UB@V>&K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..f005fc54e9523a0a992596ebabcbe26ffeff9406 GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|_8Eba4!+nDh2#U|)*@PeWqb zX7i8#+&}64zOW=Q+QneonV$dO4GKA$SY3j>8G+g^?R_-s-uJ!#cIV#SDyBEb;%e)b z_3W9k-Sc1Y2_@~A8)>z$?sApTrVFpWF1`4RHN$U;Ra)*fQ{U#&PW!;@tiQXWW__?e zuv$6i+>sw|*PFI#e$15$a<4z@*!RJDf$-0ZM*Hu4I#D1W>UaA~?+4C^PdpMYL&|19 z6SlbAr0el>#`3)X&t96xgsqz@9PsbGt5uD=bV#9hXm(c`C(vyIP1nz|?n}GCyq~?p zZ`-Bias-r!S!wlbR+Fy!t+{zEZ`s5NOHTh# zxP0<$#?JE}TH+2Q?AmhV{J}>lF`oY!jI@7A&)mzbq_#)Cq4L^Q#_#J>z8#+VDb~cg zw}N9nPyVOfb6>v8zNhn>@9>%a|1*UHW=&kjRkvPeXG7?{3_iIRy=4p8tt3;PDTo~A e209TLwESd#6cI5mV0TOeNZ8ZW&t;ucLK6Ua*TfhA literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..802f1d9f805c8ed33303d2f7fb13fddd1feb6452 GIT binary patch literal 457 zcmV;)0XF`LP)CtWH zQ!SDB8kRg_!e@Y`6Xf>9{K_Mdk~m#r>ul5*`MYJZhR=XO%X`Cox#pR4_k!JtmCz;O z9k69s&D^vuO7r$n>XX` zB}ZCotH<(%pJ-=5&?p!mbFZC#=zR6AwK48hX{YdS()&l=0-vp$WU`;eNj2F|Mj!0N zDzwv^B-00>NG|{Y00000000000000001)OExb|So?o?A100000NkvXXu0mjf2$Ixy literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00006.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..559ce41ca07ceb2526d544ce3d8e21c544235985 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^i+>EaktG3V{gz)6P`cp4J# z+?@U8pZlxWZ;a-`oB>g@1K$3(eY3-3p#zsxFi6`W+ds47u802Lt#f*#7+=he)!ldY z)hWK;RW|o;MY(`MTe0r{Nu7%P`|rt$6fJmpVVdKsrJIzedv_f_#Fn%5NSuc0(tS28 z6YtDt@b(WVRXtWNw=(j`8s3LlI?t^>h3jV>csG5gJ>%So+YkLIIIVp7?y5EEF?sqA zW){RZXr>?VSY8>d<@caMc$-4v@ipHYlc&!wh~Ai{=TLRGJLQ+ve21=ptJSWBb39JQ zZ8HTrcEP&;vOgTM88dhIZ?cqCKNmi6;b*ZayjL~PhaHN2uJd)bS$MGTf>&-i%UwOU z2Bd(7N;e zcAFO4XHNaOf6CXT^u0(~wDt0>isifCz4ev8Y^};-<^Cl+i?86?iTB$WR$3j4-1z_5 y`9t$xYh@SsPru!omzq2&k~!Q*ALvSC@ZcGLvQ5m-&<(2lLBgJ{elF{r5}E+7&dbFB literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00007.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..ca232db97ea09d01cac7e8cd0dc3117741d97043 GIT binary patch literal 453 zcmV;$0XqJPP)V1ApZASPo1R^&j0000W+?P|m=XuJn$8oIH zuyEs46S@BKA+q)C+qL$90eGlZkE@@smeOmX$;DNMDyK@1zuZzSOj)w3P+rkDmXf8s zeh6atJ^`8xP;(~i&weSHRabPKm0YI$m6IAd6TVNtVC21JzFe~<+`YnKJHF;S0b7P- zX*6$2`UH;Om!h|zLJv&t18cWG(kt1GfBzOVR&Ct+Vx?M-rDWE;0ssI2SXJo?{Z9GR zTPCln4ZYxwGY!jaJyq2*msEt#aayjVYvyuL^B|u()wHqCNhD&^ru@nTy;OAuG_|5I zUgN$0jw@g2%xt&cmE4K00000NkvXXu0mjfSJBWd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00008.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..34c467419dfda772eef2eb587212edda7f95b3e9 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{U>ba4!+nDh3gXWn509*4lC zCwxo(EC1As`_-k;nH?m9kODzZ-ZbjMpn+UiB|p4@aoJ?EoWT%ea%WhBeA zE8z}$d;x_j$I9h2HHFRgP1-(_BlStTk=aqL?ZNSkz2@tEKR=!3ekfKuM%ps>6?4H8 z9*LJGIbJ6@bKV~iQ~6Xr&+1p#)%*&bXm$1jweMVo_8n83;1jB;8C_PFI_>5=exOI? zzqYKO-Tt3%$7x}woo-M6GgdZju3kF(%9^SD`J(UjzFd9#_u{9XhIOo*;`Q(nd z<@eV7V|mGS<9yF^_ppxw*)fuVtL21l^%`$BOEY7>$@zZ!`DN<^c#STa2XmNSG(RRW q=ZIcOkot+9My*5Kz`#TXD}J&c$c?`}d!ze0kg%t#pUXO@geCwTb;5uE literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00009.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..b848582192dcb6f4d680546f1ed0a58f41303ad0 GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|?+aba4!+nDh3gXWn509*4lC zFMMnMEC1Asl~9%F+Lq$DMB%}H*9$wOa@cpzv@8)OT$~RsU zKBUCVopGhG-1q?h&9uY1JE!jvy`b|=#@9S`TmBu_9}FeW)VjATyepI2{%%jS-&P~Z z^b_yH4zre}gde!`WC!0&nMv#Wp6+J)x_{dRj`wl=n^)de5dLf8x1zJo=vabk*}|z( kj%hqjf^k3xAp?ao@=vzMgsE|wtOf~ty85}Sb4q9e0L1Rb9{>OV literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00010.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..652a35d4e9635ac21ae7653ceb93e7f234e4975f GIT binary patch literal 450 zcmV;z0X_bSP)P>S0Bjql8K($;938ArBr~iAHRzwT|Lt9c20000W-6JmazVG(swrz6} zCN8|xM2T({+v>^u4Zu+kAdy4Sjm+p`$~=kqz& z!bHWlx@hgohw^&np}jYc(AE*f(# zQA$dAy$CYJt^i99&}Jn3nMco7-H4sPn-jT}k-z$Dtu-M5HnA&U=gLRZe7a@NaE}Ua zuCNw{=orKX;FLw}>9mcty#wdVPC>$6v*dy4>I+UQ-Dv?RuenHuZ|Cu&o2oid*wiui z0F!?Y0002MRXCp@?XHHu?z?^cFPVdKdH|x{2MD|0d3a>BBX5i87P^C*jo7yohsEyw zznIMop1iSN#@W=8M(nvQ7ydrLpU@BI+Ue;cLU;h2dy~ZxgC*JEYMVS~ZpL-Gj2zd? zbw`(B zDd@hV@1L!sr~Z8Uh3Jp_=AYXc4mB}Ia4^WkAQZz30000000000000000001l`2uaw Va4_&bj`29LHD> z0}U@-qVz8x(*4LouU`Cy_P$^Ob4k=CFws~1i@rduBwC%?GQ&DldfL+DbX(|bHA{3u zsVVjAn_#8bJ3y-!$c%)4=c%)`?nLLWnaHJ%{M~i4#@+#)nYYq>xM$CDw<_0>%Q-LD zc|>dgwxpHkqGh4=FK}w?Z*f*{K|(LnrG3C`K4Dll3!cG>Z2?I4dy!1F^Y~$=YQ8Z` z2Ap~W006+ZXgz~os_*55VO1Wa@T!_(IAfQst(ppJSVG+NpO^ z9RW?MXTaVuFFPP_orX6|U8Wy}nL3B%&4b$w!uxIs_?4PLCi-EFP!s)NjKN8)LMIJ^ u%ow;LyZ`_I000000000000000fSW&-4Pou8=`J7u0000m-yD^>toe#iaam3w=um|lp@RoA@z zH5+z)tDf=vi&*x$!_SvQT4kMd(ciyp>7EO(u7=$6)!V)-sV_4uN%p2m#Pkzgs+*2n zPu!Gkzt7rX)qVH5ogdG}DQ#ZnvhC&x!>8$=7xER~J-*L+!RKe@*Q1tKEf3bVc(8Bd z55EJG!lhoC%r|?*E2Hy^L+gq4{9A9bzH;`9=G|mja(?p)p82H?svASRQI}6qU1PeR9c+GYx8nKGzB_=BIewI3fJa zxVHSqyN1IC*`~eQ4GeQQr*lf2abNaMreu;+UE)Wv_(QMk7yk3w&HPUN_|w{@_Y&F- zulI>(yICh%^2!w-m*aUqU;miIGX>*ciBlG)eQ7pi*DmB*TVinHOrv(2ILJvzpx`sx X4Y!aD+J}$DgG4=D{an^LB{Ts5Wg5Ku literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00015.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00015.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3a2d92ecdc23fbacc6e12d85085c6c016d94f7 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|=lsba4!+nDh2#G~Xcw0f#`7 zcT0Z92Yr9Uev)P8!>dLKm#Xc09x*(PT&f7v!*F`94VUeCzB zX4O(%Kk?7sG)#)#+Ns~X;>oW3J8N3M`@&@w7tg4@f! z?wUQ*L7tS$I?aDJ_dm11PdokmsuJW_;?)-X4d!lpbAN^XrW&DoKQSX;Ny&r$# z?2&~%!aHS-mBwW}Rd{3h|933gg3lgCA;%AVwY>8GMvbu9d}mv)eN3~SKlaU>e`@lw zXTA}~W8@?@@0vYvv&pXS4<{G)CaGWkeOe;c_r3lxi8n{|wgfMpEXf>Rq7Mo>B=F!F Xx9c5$v1*xgS&*owtDnm{r-UW|coe;8 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00016.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00016.png new file mode 100644 index 0000000000000000000000000000000000000000..58a877cdba18b4cd29157e8c76fb5c086f403c96 GIT binary patch literal 453 zcmV;$0XqJPP);EF-1%iEplX<7)UvSC(>-Dv zN~FY>VVec60IR%1cO=Gl9*I;l)J|A8tvN=1s$bNJLifYK70|fz+BARM^GLdD!R`FY z1*=EJDuDxV(!ATaPvHHwZb8D{v%CDKnlHGl6V41kdf$sAeU1M&)Ko2Z2K6|R zBmZan2LJ%Tw}>v$94P^bW8VXig;zsu$@AF}_xMObwB4{)m)-CtU3O(ETRODvi129;gOk-nEE5mj3`?1@|2R(#Oy^}giuYk4n z@iM3K)~Wl*bz{11r!GTjzZ_kdkWPBPa01rErJ~w1*)N4=!|9ytD+j)QGX~qR3!T(S vGGh>m^a20?0000000000000000Ac-#q00000NkvXXu0mjfuHMVk literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00017.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00017.png new file mode 100644 index 0000000000000000000000000000000000000000..4a51997d600f0efdbdc382baf3844357c3688264 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{UrP8TN2BddKyZfcryH3@g{~U9ALqNf*t||8Q z86j`W?dxwFr>#5t+=XZEv7@o`>Q=UzTsXCGio6fML!iOYj>HJJu9l~wu?FtXei-S@ zc+7L*l)6cEQq8jGCtPAKTDFQz{@=yFNa^~@Hx|rN{&CXJPS13owOdSP!+jHrvIDyP zCPA4|xo2b}48m9Wmj4pk#gh8V@XSm5(3-=!k)l)0zop)9x^?8xT79mhFHcV#*#q+6 zn%{5VPuc#L&q1hAYL&n3@^vq4wl>|}lGgV4@7)H;|Gn<7^?%Lqncpe5YUkM*D}%U0 zw?CfSa;_mSqIyB^6T|rY-tPPPN>&LUT0TjLeDg%>0}1<>1_i o)^}GjQ+^!~J;-s-@rT6(UwTPJVnan8#0000;_X>)897q4P)_O0( zjSDX|(c;So-E`lPh#&Lwc*I`l@C6x`PE%_Q>dS9L(3!T-%=M)g;BaB9Gi(dJJk1h) zq12T6eYH%nJ3#AuXwHQHw-7Ukn*z&_tm6~!u>yr1y zo&Ep-0QgY-BjD^=@R4Uk9yATkLHYIxNXmxltmnE!r)c`j!KF}Ug+<}wl5eGt5uFn) zY8lSHE~>5Lp9Yy-6)Gte;rxd_^VrcbXBpE_Nk@<~Ls=ZT$)FTwpC65DMcbK-GdW*N zMZCSzF%#aAjXNM>&iii2izm;$)O7XsXtre*zSD}+$?)V1AxZAHw72}C3%0001By03_!=XuJX$8kK1 z@ZiE*Rb27&ms-`iI}z>q9v(3Z9ljuH>Lihmpzi!c1TDHInw($7ndJ+;IW}<)PkrPt}Q9n~Dqq&OwslKRM&ObN1+a>T0aC%;w=8q%y z40o+?GwZp{YPT37Fab;UfSyXP)uy-u&o^}m%50x+?Q+G-2Q+JiH3>-n*P=XpwFN4f zsVbKRwVe!HuVu`%bD9AF0MJD~N(P+)ph}InlYkG%P00HI$sT$7|2QX_&Y@}TcvVGH z1)TF#TX;)$8L zvcovbc_$?cOwLoYRWH(az}W8Dt*p4Yy|UfO7hw9FWHFzW-C*`?s*E+J!Cp zwnZbG3cYy$j>WweUt-G~e2l$Uq1`nGnH+>-cmV(a000000000000000fH1!!QF%4D S_;DWq0000*aXgFg z;Ko~zi1Fn@KYF|(O|R(@g=zB{(Jda?J@IW9Iui$4aeV0knB5rjWYZ$esRwL2y7hdD zDUv_UwwU1z(9#+fd!m2kk(@F@(-a*u6Z6PtcCnJ-47jLyZJ0lf+|%5(%*|dm-H;4B zV9OrR^U%236nEhDmM%d;*ZJ1;FWx?(SUc?Lfbe@QlIE)|P(ck<$r%+>rdaSo3;+Ot z%?4i|YwxckF{j7LZ2Lc88RxI?E6#%S`Q_b|+I5!m`gVO*dMnN!qff{5QD{)}x|wGr zaboa^440tJBY`ca@P2GQ4RvxPxsi)ac-OB{9^^A%)?iHARDN&j*>a0?_Y|Ww1L|*! zacaTGHJbN-4?`!ls}{pa`Rw?qV4);_3TMYv9lx{>ocP{V$b&{B(+8$#UH||900000 i0000000000z|04OKv%9JzW1U40000F!bG zlg>3+VpfX~i39M+8nDu6n{B!)@P1pTAmQ)XKmJ!Q5BOS7cxC{~-?>P-@8rjZNmV^9 z_=zHFIo+@Z0002s6XosCJhJnHj%P~wbn=0(BW1)!00000NkvXXu0mjf;5X+= literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00022.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00022.png new file mode 100644 index 0000000000000000000000000000000000000000..17b619e047f2dc990812f284fd7a2171dfe9956a GIT binary patch literal 450 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{U@ba4!+nDh2#blzbF0f)e- zRP}rRC+(SDr_if$IQh+)2I0G(1DAHRH!=#%5dv!4aL3GR5I|K*Msu5XiO)i<5^ zdOH8vWvBPK*qmQq-K$jcqbX#e@?^!}r}rM6-g|7GOh#&rXMG7n7;Evo%p9}e633I8 zKTqd$v#w)U`zEni?Txj+^h< zm87!x9hhc(;8KR%wP&0*D-1HErsX+0egApsQ@&Vv#hQIP@>8qT6#m}tUXt9bFCDtV z%kQRANmuu(I-rwl`gNxp@Naxu&S3O^HAn67OwW~w@EvZQa%=vF zvHA<;mc}t&{{7LgHpuk+x`Ua^;$Pgi_@y&7q%-^6jgudQ`ngNkXI_k7W_YFNU(%U_ pes7$tec5JOavc2tiUDMh_>V!eCwYU6++J~zu&1k^%Q~loCIA_?$1wl^ literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00023.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00023.png new file mode 100644 index 0000000000000000000000000000000000000000..42bb079527f5080d47e705db9ab2fc54b7c9c567 GIT binary patch literal 453 zcmV;$0XqJPP)*~@ z!a&DMw}|7*FF{4FZ>^`}5z_DU5hK_1dC;paNtec?eWJhVBbwqyGbdTvZn`Du8?23K zw&WeSB00000NkvXXu0mjfl|;tS literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00024.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00024.png new file mode 100644 index 0000000000000000000000000000000000000000..532590acab70f499d7bcf08bbb65e8f68fb099ca GIT binary patch literal 482 zcmV<80UiE{P)&X;Q6#Nf$LxC(ozDakN7@~+(v#@u2}!;b%86OGV`M}KizXr zxQ`ka7uK@6pLuSusnKQ(?j#zxmH(0i_MzJ6}?OJj3LO))zD%|@?2L}n4N8< z+lq0TytEo>FRxQ{?DEGG(HtGaEOrIVN(4P09VvYz^*!Q>CtexJnsbX9;eE&V--plQ zaCi?NcfaRPq%gwg54y((y-0cOJ@^Rk--Vv65oGQ`D8dT>000000000000000004yf Y1-%1(b5`6k=l}o!07*qoM6N<$f(yvwcK`qY literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00025.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00025.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c7e24f651ff7ccbbbe4a449223e2c74e62080e GIT binary patch literal 452 zcmV;#0XzPQP)jsA;R`o-2INZ2$zS_j45ZeEt2ondDy6i zs?;pplBe|2WY@ImumAu6_}}_Zfxmx7?Ejp`jfGj;*#Y}@LzB1td0V0nCpPY@=2Ejd zwDI4N``fbf-@!VMqV-R4WC=Pm18%EDjKq;0j{UZFz~EM83d>8}i>+zLHskv28Xe*I z@K1II#9folsl19Bxh;=`8fcJ~)Y0=%kw@ u(+8nQF8}}l0000000000000005at_wbYwUx%9U6E0000XlGsZ>kdTYPF$spYy60mwLBt_EoD7o^00026-A6>woU=TdhwCAEFDd{J0iplb}ttqI|-87YgyQeQ`R!lV8nE^;Yb5Xrv z<7K0nsxmD!kCR$5OQxpg`-azI0002|ZTo*ry>aY!0E(!s2xDV?R3ZV>*fugDiB?O(!!3q3B)!0000000000 g00000001D&H-Pw^qxrG!Qvd(}07*qoM6N<$g1#Q(Pyhe` literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00027.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00027.png new file mode 100644 index 0000000000000000000000000000000000000000..393592ca49c3841aef56d32d2122d625ca3e46ea GIT binary patch literal 477 zcmV<30V4j1P)$>W<%d(t{ zaN@>8Rh0Pkg{YSMs`HxkJv?HOI(!-Q5Stt_Z^!z{3$2wz3p=T&%6GNiVscQI^rNP; z+b3_iQp=ZOcV$f03h?v*g)`B=%xlRyaQcdmX_PYc?{0ycWyO7qi^dxpDJ zI9ym)u7<1$xMfB6R9ZGA{{)uy)SAs|SaU_>$}On!eK@oQhqn)CRuoO|a>FYsZkPc1 zyBC@6h1-Zpy;`yeuNj)T_N@C&!yk)^OZl)&e~|vV4i(67#qR-~eHe1o^|(`nD<+`x zkWxm>!Q-}zxgNsi0q_QP1q?s(Hc!#;inJfg8;$X|bVlB8o@D01&hY-f?3=Jh%_dFQ z*3Zq^si0MJHuQ7T_UlD+FrjztLbKT!Wac0h!wUca0000000000000000HpZ^>mzAI Tl>z4x00000NkvXXu0mjf_?qLu literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00028.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00028.png new file mode 100644 index 0000000000000000000000000000000000000000..e6490a7fbf0077ad2ab0a659a52d3e7bd283bf1a GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|?+Wba4!+nDh2#bl+hG9*4lR zD|1u+dnf6CZcM4%;Ms8OLdf@;5KbjOgMOP?LO^XB?)bZ0n6vqwZC|q9p(BmX%QZfx zDzDVuuIhOGb9J?g;H-TdyRN^L;L19ut+Zk_kID9lyK+NMPd?>ss{7_fiT9hvpx{^2 zv!dO69`I}^X}UA-MSSIwWh#EtZ_Jn)%ctb@B~_0bCcL@_-#s*s3G>-fTy3TBcm6Hg&wHg- z1qFwtM;m$R`@S;+I$CbQ=a+B)sFpSE^`CkB9&^BvI$qoV_bNXfx>@-k!}Imyf4}xK zhHbcS=Wc#)W!cW#^6DkMQQzwuX5{(*_kHS^T;|N~lfL}3cY0Nbe9d#;9Z~P>BW;-% z9q;q=eeIGb8~q~e^~z*ld!3$L9`A$Q&N3CQ%y3it9hG4==RwMTp}7LT64b*M&efab jBj2L57w8;h;4s7f1YhFf$J0OBgM>X@{an^LB{Ts55f8)S literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00029.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00029.png new file mode 100644 index 0000000000000000000000000000000000000000..0d56657464bfbedbd9ac3af921920a7400155199 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{U>ba4!+nDh2#bkSi29*4lK zm*-ae_x=?3>tN5Sj`oe+4QAhKQiP7NDaY}30Ch23uH`xZ(Z>JxXN$gcOPd`Z!vr{Fs55>)NKl|-n zjm=V#y>_wJI`T8pyQCO*CT*W|-N7S1H+TJ(nLFkOWd-Uw*-NWt1*_U#-J_kwVv-g2 z`dNSRJI?aAj~*Q;+WsQ>Hf!>f6>Jfk*uIF&Qd?TXI&JpfgejH56HXm2$?nv?XZK)Z zQqk@$3mBi2>RsZxuBLHv*Q&X~cZxn$Y}yt)x!SQ{DbObg<#Y2}y#FyiJZ^37@Fp*# zdi&nJnpbW-j+yc4_>)klV}>IfdHN8@i{2pB<~@yX7bvb zJrUtDnm{r-UW|RXNGL literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00030.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00030.png new file mode 100644 index 0000000000000000000000000000000000000000..f32013e73a0410f63dbd4308815646747fb3de73 GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|^i!>EaktG3V{g$iBl0JPnD< zUilXNSAMEj>#)gYhAMZPz~B4Mrl|)M(@tIz0O^1D&!*|!?{)k0ZkOpEYHeH2C;0fZ zyyMq9(^Q`Bt@+hY@*ra5&B-x*Hc0|aAJ3Kw(efdw(6XlnBq3870k4v3Zg7LQExRmfu_Eo6lr-Jr!P?caEXufAz#U1)0rUX{)@> zYD5=JyEn^gx;D_!I>+qRl-0k|yu1Hi&x5Q(#Ruj}zxv4e$?RS3iWU3ox3_v;^7hrr zkC>gS&3J$DKGx8Gv)7iXC#($E*B6s69OiKOPHozUJN1tk&cy!y75kFma@?`I;>J%W z>iiVUZ75;oiEH@Aw8DR1k)m$trb}khJ1ckWlX@BZPAz{YU%S`*_)??u(_VfnN-z2u xKE1u-u*90zp}Q{>NqMI6#7v9>x(*o}ILrU~PYh4a$Ar5eVNX{-mvv4FO#sB)(cb_7 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00031.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00031.png new file mode 100644 index 0000000000000000000000000000000000000000..5a6c628f6cbc14c7b158fab35542931d2f53e3d3 GIT binary patch literal 468 zcmV;_0W1EAP)+dX?-{myYxLhViuad2)frL=~7sfPxLcAqAL$H_aJM-O_vngCU0Q6 zC3Zupsk1C8UN7nluylgj!)-9s@h8=Xsyk+L9ry989mZyo|NnrIK@oyUF)VGVbgSJ3U)W2uv;z9}t6RCd13{L44{*yb1$oleYg*9(?yE<;b}-J9 zwqDS>mvP06|1oVnRGtA5W2biY8yWlhQ&$nkmbh)nV*4X#w{VJ1df#Q#gxYrROZKw` zd2pH_`(jNh=!2b@g?8#BnLY?bdI10c000000000000000fH1#LnS7p`K=?cW0000< KMNUMnLSTX*F3;lt literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00032.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_ok/00032.png new file mode 100644 index 0000000000000000000000000000000000000000..a46fed5aca8d840c7fe7eb114341b807404f981d GIT binary patch literal 488 zcmVP)HM?CJchGLetFd?(N=JZIJL^|e`64!ZCyiyWSpK!z)-Gqb2zSE!fsc>Z){hUo z5s}pGrGMDwF>7b#sqDkM%=nuY?^n21Hfw_~Qw=q3us|osw1F$a3jhEB0000000000 e00000xcLLyMxK*%;bsQ_00006P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00000.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..1776f4534ffdfdd3fc51d7205d2da9b97eebfe90 GIT binary patch literal 426 zcmV;b0agBqP)Tkts0ZPxaN2de;0I(nLSI)Nan%>EYGQ(IpG*t05VHySboeaB^N@DP`vQ)s<4@uDPp#Be*Jw zOOrgFXN0QkyQ6nORmr8o-DMBlwSbm9WxYInmI?y^0Km$9{|`7bwz@EeZ@)IZe;nj( z0{};lpa2rI(R!kDnNAXSAu^bW<}bGe6m&6nME2edVV)nu?g;=k9?V zl&>2yIp>+#p0>Y=+hh2ufO&pzDlKx<1*N(EL_c|^-h}A$B&?JH00000006MLKQV$B U$KX^K3jhEB07*qoM6N<$g1@G~d;kCd literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00001.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..8dea3de5897b5c5337ec2411ed34d5ecf7d2b3d7 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|`htba4!+nDh2#AYZcrPebDN zH)?zTPpq15JHtd)V}nm->HqIf7#yPyvQB3OYJ!0|j|8pvth%+agC*{yeNgE9hLg+X zZ=BRuNqw7f*QR1{STGWWHHCWs&_^w-ufLQl2OXtqxGRcX;AE z`Fp?bEB1;0v0ac`9K9v>(f7Vr$9_0%Y~5L-r$4*(?lI1%x45-<-U+1i<%h3(`{K}v vOM&Zcu1~6B>sh^jVl1nEBFw))y1+kw&hz{EDbITLgG4=D{an^LB{Ts5KZ2XD literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00002.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0d70bab9f111ec9cb7585155acbf145b06d992 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|{s}ba4!+nDh2#w9p|19*2vs zc1(U(@A>8^zndEGlt;=ceBWy{Co8EGJkFf6moOT+jO6+gzW@x)Z4p{Cto?pxLwv${J`Jq>fg&vXT)9cC~lik zKUwe6>v?}g=cvtm z>iP#ZFnn#+y0UB@V>&K?4ZkTLKP}T~_^erZhVr*Hx%S@=Z|QvB@W}eb=b{(xHTG8HM?miMl$0O=f5Bs!l0y&^@)S8eEVtLjgsbv^;~22i<|VGDXFh{OJzf1=);T3K0RYvNw{rjh literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00004.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..3a623822bf5223b6a199c7748547316950ff6a95 GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!2~2@x4h6`U|@{%ba4!+nDh2#WZz*0o`%Gz zv%Wk2Ppp|<*})c>$eG#sHs#;@m62R0`c67|f%Na3{+&U}#U=mQoV{*I58m1~tV=(> z_s2)M13H2yE%T3Ve7a1;Ywyj~ihsW=JPLF0ZQpv%MfTd9&31|jUxJ^oyjl0?tk~sW z7kuoJx~y5(b|n}m79LsK(D*E8a#U$Ri*9$cnu4#(o}KJ=E-E=j@1huY^q!b*&yX z_rJm&o6DUxumAb&IPW^q@5y(j@8g+&^XdO5<_|Z?6-;~j{Z{_G7$wu2w~lYVuyWzN+{!DDvE z-29${<&XAV3)R@!_?mq9^js?#fdPaB8czRV@^TeToo`v!0}}Rh^>bP0l+XkK^1`{1 literal 0 HcmV?d00001 diff --git a/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00005.png b/tests/functional/snapshots/nanox/test_eos_transaction_vote_proxy_ok/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..0a975c6c7098ffaf8c0dcc8c657cc8783cc072da GIT binary patch literal 472 zcmV;}0Vn>6P)Nklxbwh*Jz)nhwt8Y!; zj$Z0Cc3urBrKQ3isN;N1iDM^sNA|M3^6%}FxfN>A1#8GBVowtCnXqz~JW~(=U?k{b z>AdMDJUxK1Yga+_D#f-cd;6?rJF_0y+oKKAZNJ(L9)J6FuH6UNK4r6|liu9xy>_Pk zoaV8bU;D0f+7-Rd_MOetIjxA(Jj7r_}QD0_b$n`%n4KRf>HsZ>RodH^L3x3_vDj9{>OV0002Mef|K`!ZH@jEYQFJ O00007f*SxOU{AjC~-u-foLXj(O7yd7( zUu*rr+)c5?D=|uSzfp@q*3yH0@!eaa-dXh3u!`7U=jJaCOtx-s?e6kU zeDGCK?rrkb{>;w(r&$g(bTDo){54IY*1OJqfA;x5cHdNN*bn?OFeHuF|FZKp z>zX;reRpZQ#c%Oie7>!}>GM?9B~j1P>~>dwTcKRecq7QmmhI>I_15gYbKbRBzZFg1 zyl&I}-J%6=1xijnv%6ipe2?qVOs+!>N#C}=V}*I2!C<=lgelBlwf5Vr1c`aN`njxg HN@xNAeEFM! literal 0 HcmV?d00001 diff --git a/tests/functional/test_eos.py b/tests/functional/test_eos.py new file mode 100644 index 0000000..026a4ae --- /dev/null +++ b/tests/functional/test_eos.py @@ -0,0 +1,263 @@ +import json +from pathlib import Path + +from ragger.backend import SpeculosBackend +from ragger.backend.interface import RAPDU, RaisePolicy +from ragger.navigator import NavInsID, NavIns +from ragger.utils import pack_derivation_path + +from apps.eos import EosClient, ErrorType, STATUS_OK +from apps.eos_transaction_builder import Transaction + + +TESTS_ROOT_DIR = Path(__file__).parent + +# Proposed EOS derivation paths for tests ### +EOS_PATH = pack_derivation_path("m/44'/194'/12345'") + +speculos_expected_public_key = "04a478ace4ac9cdbc8ccfe5560940a2c" +speculos_expected_public_key += "cdc96d4f7789e7dd4074dbe1eb7865b0" +speculos_expected_public_key += "0889833972fdafcbd25e71f7515c27c1" +speculos_expected_public_key += "23449309873e0d16fea13abd2697c035ef" + +speculos_expected_address = "EOS85fjM4VLKEYZwJE5FBUhXR3HaFno1t7fpukBfzjm9xUHgzLpuV" + +speculos_expected_chaincode = "007c54db71630a77129b2183b701a6da" +speculos_expected_chaincode += "1cde07a1f4edb1d8ee2f51a14306b4c5" + + +def get_review_instructions(num_screen_skip): + instructions = [NavIns(NavInsID.RIGHT_CLICK)] * num_screen_skip + instructions.append(NavIns(NavInsID.BOTH_CLICK)) + return instructions + + +def test_eos_mainmenu_and_setting(client, test_name, navigator): + eos = EosClient(client) + + # Get appversion and "data_allowed parameter" + rapdu: RAPDU = eos.send_get_app_configuration() + assert rapdu.status == STATUS_OK + data_allowed, version = eos.parse_get_app_configuration_response(rapdu.data) + assert data_allowed is False + assert version == (1, 4, 3) + + # Navigate in the main menu and the setting menu + # Change the "data_allowed parameter" value + instructions = [ + NavIns(NavInsID.RIGHT_CLICK), + NavIns(NavInsID.RIGHT_CLICK), + NavIns(NavInsID.RIGHT_CLICK), + NavIns(NavInsID.LEFT_CLICK), + NavIns(NavInsID.BOTH_CLICK), + NavIns(NavInsID.BOTH_CLICK), + NavIns(NavInsID.RIGHT_CLICK), + NavIns(NavInsID.BOTH_CLICK) + ] + navigator.navigate_and_compare(TESTS_ROOT_DIR, test_name, instructions) + + # Check that "data_allowed parameter" changed + rapdu: RAPDU = eos.send_get_app_configuration() + assert rapdu.status == STATUS_OK + data_allowed, version = eos.parse_get_app_configuration_response(rapdu.data) + assert data_allowed is True + assert version == (1, 4, 3) + + +def check_get_public_key_resp(client, public_key, address, chaincode): + if isinstance(client, SpeculosBackend): + # Check against nominal Speculos seed expected results + assert public_key.hex() == speculos_expected_public_key + assert address == speculos_expected_address + assert chaincode.hex() == speculos_expected_chaincode + + +def test_eos_get_public_key_non_confirm(client): + eos = EosClient(client) + rapdu: RAPDU = eos.send_get_public_key_non_confirm(EOS_PATH, True) + + assert rapdu.status == STATUS_OK + public_key, address, chaincode = eos.parse_get_public_key_response(rapdu.data, True) + + check_get_public_key_resp(client, public_key, address, chaincode) + + # Check that with NO_CHAINCODE, value stay the same + rapdu: RAPDU = eos.send_get_public_key_non_confirm(EOS_PATH, False) + assert rapdu.status == STATUS_OK + public_key_2, address_2, chaincode_2 = eos.parse_get_public_key_response(rapdu.data, False) + assert public_key_2 == public_key + assert address_2 == address + assert chaincode_2 is None + + +def test_eos_get_public_key_confirm(test_name, client, firmware, navigator): + eos = EosClient(client) + if firmware.device == "nanos": + instructions = get_review_instructions(5) + else: + instructions = get_review_instructions(3) + with eos.send_async_get_public_key_confirm(EOS_PATH, True): + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name, + instructions) + rapdu: RAPDU = eos.get_async_response() + + assert rapdu.status == STATUS_OK + public_key, address, chaincode = eos.parse_get_public_key_response(rapdu.data, True) + + check_get_public_key_resp(client, public_key, address, chaincode) + + # Check that with NO_CHAINCODE, value stay the same + with eos.send_async_get_public_key_confirm(EOS_PATH, False): + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name, + instructions) + rapdu: RAPDU = eos.get_async_response() + assert rapdu.status == STATUS_OK + public_key_2, address_2, chaincode_2 = eos.parse_get_public_key_response(rapdu.data, False) + assert public_key_2 == public_key + assert address_2 == address + assert chaincode_2 is None + + +def test_eos_get_public_key_confirm_refused(test_name, client, firmware, navigator): + eos = EosClient(client) + if firmware.device == "nanos": + instructions = get_review_instructions(6) + else: + instructions = get_review_instructions(4) + for chaincode_param in [True, False]: + with eos.send_async_get_public_key_confirm(EOS_PATH, chaincode_param): + client.raise_policy = RaisePolicy.RAISE_NOTHING + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name, + instructions) + rapdu: RAPDU = eos.get_async_response() + + assert rapdu.status == ErrorType.USER_CANCEL + assert len(rapdu.data) == 0 + + +def load_transaction_from_file(transaction_filename): + with open(TESTS_ROOT_DIR / "../corpus" / transaction_filename, "r") as f: + obj = json.load(f) + return Transaction().encode(obj) + + +def check_transaction(test_name, client, navigator, transaction_filename, num_screen_skip): + signing_digest, message = load_transaction_from_file(transaction_filename) + eos = EosClient(client) + instructions = get_review_instructions(num_screen_skip) + with eos.send_async_sign_message(EOS_PATH, message): + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name, + instructions) + rapdu: RAPDU = eos.get_async_response() + assert rapdu.status == STATUS_OK + + eos.verify_signature(EOS_PATH, signing_digest, rapdu.data) + + +def test_eos_transaction_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction.json", 7) + + +def test_eos_transaction_buyrambytes_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_buyrambytes.json", 6) + + +def test_eos_transaction_buyram_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_buyram.json", 6) + + +def test_eos_transaction_deleteauth_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_deleteauth.json", 5) + + +def test_eos_transaction_linkauth_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_linkauth.json", 7) + + +# This transaction contains multiples actions which doesn't fit in one APDU. +# Therefore the app implementation test_name the user to validate the action +# fully contained in the first APDU before answering to it. +# Therefore we can't use the simple check_transaction() helper nor the +# send_async_sign_message() method and we need to do thing more manually. +def test_eos_transaction_newaccount_ok(test_name, client, navigator): + signing_digest, message = load_transaction_from_file("transaction_newaccount.json") + eos = EosClient(client) + messages = eos.split_message(EOS_PATH + message) + assert len(messages) == 2 + + with eos._send_async_sign_message(messages[0], True): + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name + "_part1", + get_review_instructions(2) + get_review_instructions(7)) + rapdu: RAPDU = eos.get_async_response() + assert rapdu.status == STATUS_OK + + with eos._send_async_sign_message(messages[1], False): + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name + "_part2", + get_review_instructions(6) + get_review_instructions(8)) + rapdu: RAPDU = eos.get_async_response() + assert rapdu.status == STATUS_OK + + eos.verify_signature(EOS_PATH, signing_digest, rapdu.data) + + +def test_eos_transaction_refund_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_refund.json", 4) + + +def test_eos_transaction_sellram_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_sellram.json", 5) + + +# This transaction contains multiples actions which doesn't fit in one APDU. +# Therefore the app implementation test_name the user to validate the action +# fully contained in the first APDU before answering to it. +# Therefore we can't use the simple send_async_sign_message() method and we +# need to do thing more manually. +def test_eos_transaction_unknown_ok(test_name, client, navigator): + signing_digest, message = load_transaction_from_file("transaction_unknown.json") + eos = EosClient(client) + messages = eos.split_message(EOS_PATH + message) + + with eos._send_async_sign_message(messages[0], True): + client.raise_policy = RaisePolicy.RAISE_NOTHING + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name, + get_review_instructions(2)) + rapdu: RAPDU = eos.get_async_response() + assert rapdu.status == 0x6A80 + + +def test_eos_transaction_unlinkauth_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_unlinkauth.json", 6) + + +def test_eos_transaction_updateauth_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_updateauth.json", 19) + + +def test_eos_transaction_vote_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_vote.json", 33) + + +def test_eos_transaction_vote_proxy_ok(test_name, client, navigator): + check_transaction(test_name, client, navigator, "transaction_vote_proxy.json", 5) + + +def test_eos_transaction_refused(test_name, client, navigator): + _, message = load_transaction_from_file("transaction.json") + eos = EosClient(client) + instructions = get_review_instructions(8) + with eos.send_async_sign_message(EOS_PATH, message): + client.raise_policy = RaisePolicy.RAISE_NOTHING + navigator.navigate_and_compare(TESTS_ROOT_DIR, + test_name, + instructions) + rapdu: RAPDU = eos.get_async_response() + assert rapdu.status == ErrorType.USER_CANCEL + assert len(rapdu.data) == 0 diff --git a/tests/get_public_key.py b/tests/get_public_key.py new file mode 100755 index 0000000..6129574 --- /dev/null +++ b/tests/get_public_key.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 + +import sys +import argparse + +from pathlib import Path + +from ragger.utils import pack_derivation_path +from ragger.backend import LedgerCommBackend + + +REPO_ROOT_DIRECTORY = Path(__file__).parent +EOS_LIB_DIRECTORY = (REPO_ROOT_DIRECTORY / "../tests/functional/apps").resolve().as_posix() +sys.path.append(EOS_LIB_DIRECTORY) +from eos import EosClient + +parser = argparse.ArgumentParser() +parser.add_argument('--path', help="BIP 32 path to use") +parser.add_argument('--confirm', help="Request confirmation", action="store_true") +parser.add_argument('--chaincode', help="Retrieve chain code", action="store_true") +args = parser.parse_args() + +if args.path is None: + args.path = "m/44'/194'/0'/0/0" + +eos_path = pack_derivation_path(args.path) + +with LedgerCommBackend(None, interface="hid") as backend: + eos = EosClient(backend) + + request_chaincode = True if args.chaincode else False + if args.confirm: + with eos.send_async_get_public_key_confirm(eos_path, request_chaincode): + print("Please accept the request on the device") + rapdu = eos.get_async_response() + else: + rapdu = eos.send_get_public_key_non_confirm(eos_path, request_chaincode) + + public_key, address, chaincode = eos.parse_get_public_key_response(rapdu.data, request_chaincode) + + print("Public key:", public_key.hex()) + print("Address:", address) + if request_chaincode: + print("Chaincode:", chaincode.hex()) diff --git a/tests/sign_transaction.py b/tests/sign_transaction.py new file mode 100755 index 0000000..3192217 --- /dev/null +++ b/tests/sign_transaction.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 + +import sys +import json +import argparse + +from pathlib import Path + +from ragger.utils import pack_derivation_path +from ragger.backend import LedgerCommBackend + + +REPO_ROOT_DIRECTORY = Path(__file__).parent +EOS_LIB_DIRECTORY = (REPO_ROOT_DIRECTORY / "../tests/functional/apps").resolve().as_posix() +sys.path.append(EOS_LIB_DIRECTORY) +from eos_transaction_builder import Transaction +from eos import EosClient + +parser = argparse.ArgumentParser() +parser.add_argument('--path', help="BIP 32 path to use") +parser.add_argument('--file', help="Transaction in JSON format") +args = parser.parse_args() + +if args.path is None: + args.path = "m/44'/194'/0'/0/0" + +if args.file is None: + args.file = 'corpus/transaction.json' + +eos_path = pack_derivation_path(args.path) + +with open(args.file) as f: + obj = json.load(f) +signing_digest, message = Transaction().encode(obj) + +with LedgerCommBackend(None, interface="hid") as backend: + eos = EosClient(backend) + + with eos.send_async_sign_message(eos_path, message): + print("Please accept the request on the device") + + rapdu = eos.get_async_response() + print("Status:", hex(rapdu.status)) + print("Data:", rapdu.data.hex()) + + assert rapdu.status == 0x9000 + + eos.verify_signature(eos_path, signing_digest, rapdu.data) From 0dd84ca60d31045bb26296b483fa45847c7c1623 Mon Sep 17 00:00:00 2001 From: Xavier Chapron Date: Tue, 15 Nov 2022 18:00:19 +0100 Subject: [PATCH 2/5] review --- .gitignore | 2 ++ tests/.gitignore | 2 -- tests/functional/apps/eos.py | 47 +++++++++++++++++++----------------- tests/functional/test_eos.py | 42 ++++++++++---------------------- 4 files changed, 40 insertions(+), 53 deletions(-) delete mode 100644 tests/.gitignore diff --git a/.gitignore b/.gitignore index 6ffd23c..f3d76db 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ src/glyphs.h coverage fuzz/corpus/ fuzz/build/ +tests/elfs/ +tests/functional/snapshots-tmp/ diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index 05bc45b..0000000 --- a/tests/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/elfs/ -/functional/snapshots-tmp/ diff --git a/tests/functional/apps/eos.py b/tests/functional/apps/eos.py index 7ca27a5..b157190 100644 --- a/tests/functional/apps/eos.py +++ b/tests/functional/apps/eos.py @@ -69,7 +69,9 @@ class EosClient: def __init__(self, client): self._client = client - def parse_get_app_configuration_response(self, response: bytes): + def send_get_app_configuration(self) -> (bool, (int, int, int)): + rapdu: RAPDU = self._client.exchange(CLA, INS.INS_GET_APP_CONFIGURATION, 0, 0, b"") + response = rapdu.data # response = dataAllowed (1) || # LEDGER_MAJOR_VERSION (1) || # LEDGER_MINOR_VERSION (1) || @@ -82,10 +84,7 @@ def parse_get_app_configuration_response(self, response: bytes): patch = int(response[3]) return data_allowed, (major, minor, patch) - def send_get_app_configuration(self): - return self._client.exchange(CLA, INS.INS_GET_APP_CONFIGURATION, 0, 0, b"") - - def compute_adress_from_public_key(self, public_key): + def compute_adress_from_public_key(self, public_key: bytes) -> str: head = 0x03 if (public_key[64] & 0x01) == 0x01 else 0x02 public_key_compressed = bytearray([head]) + public_key[1:33] @@ -97,7 +96,7 @@ def compute_adress_from_public_key(self, public_key): buff = b58encode(public_key_compressed + check).decode("ascii") return "EOS" + buff - def parse_get_public_key_response(self, response: bytes, request_chaincode) -> (bytes, str, bytes): + def parse_get_public_key_response(self, response: bytes, request_chaincode: bool) -> (bytes, str, bytes): # response = public_key_len (1) || # public_key (var) || # address_len (1) || @@ -125,33 +124,35 @@ def parse_get_public_key_response(self, response: bytes, request_chaincode) -> ( return public_key, address, chaincode - def _get_public_key_params(self, derivation_path: bytes, confirm: bool, request_chaincode: bool): - p1 = P1_CONFIRM if confirm else P1_NON_CONFIRM + def send_get_public_key_non_confirm(self, derivation_path: bytes, + request_chaincode: bool) -> RAPDU: + p1 = P1_NON_CONFIRM p2 = P2_CHAINCODE if request_chaincode else P2_NO_CHAINCODE - return CLA, INS.INS_GET_PUBLIC_KEY, p1, p2, derivation_path - - def send_get_public_key_non_confirm(self, derivation_path: bytes, request_chaincode: bool) -> RAPDU: - apdu_params = self._get_public_key_params(derivation_path, False, request_chaincode) - return self._client.exchange(*apdu_params) + return self._client.exchange(CLA, INS.INS_GET_PUBLIC_KEY, + p1, p2, derivation_path) @contextmanager - def send_async_get_public_key_confirm(self, derivation_path: bytes, request_chaincode: bool): - apdu_params = self._get_public_key_params(derivation_path, True, request_chaincode) - with self._client.exchange_async(*apdu_params): + def send_async_get_public_key_confirm(self, derivation_path: bytes, + request_chaincode: bool) -> Generator[None, None, None]: + p1 = P1_CONFIRM + p2 = P2_CHAINCODE if request_chaincode else P2_NO_CHAINCODE + with self._client.exchange_async(CLA, INS.INS_GET_PUBLIC_KEY, + p1, p2, derivation_path): yield def split_message(self, message: bytes) -> List[bytes]: return [message[x:x + MAX_CHUNK_SIZE] for x in range(0, len(message), MAX_CHUNK_SIZE)] - def _send_sign_message(self, message: bytes, first: bool): + def _send_sign_message(self, message: bytes, first: bool) -> RAPDU: if first: p1 = P1_FIRST else: p1 = P1_MORE - self._client.exchange(CLA, INS.INS_SIGN_MESSAGE, p1, 0, message) + return self._client.exchange(CLA, INS.INS_SIGN_MESSAGE, p1, 0, message) @contextmanager - def _send_async_sign_message(self, message: bytes, first: bool): + def _send_async_sign_message(self, message: bytes, + first: bool) -> Generator[None, None, None]: if first: p1 = P1_FIRST else: @@ -168,7 +169,7 @@ def send_async_sign_message(self, if len(messages) > 1: self._send_sign_message(messages[0], True) for m in messages[1:-1]: - self._send_sign_message_more(m, False) + self._send_sign_message(m, False) first = False return self._send_async_sign_message(messages[-1], first) @@ -176,14 +177,16 @@ def send_async_sign_message(self, def get_async_response(self) -> RAPDU: return self._client.last_async_response - def check_canonical(self, signature: bytes): + def check_canonical(self, signature: bytes) -> None: assert (signature[1] & 0x80) == 0 assert signature[1] != 0 or (signature[2] & 0x80) != 0 assert signature[33] & 0x80 == 0 assert signature[33] != 0 or (signature[34] & 0x80) != 0 - def verify_signature(self, derivation_path: bytes, signing_digest: bytes, signature: bytes): + def verify_signature(self, derivation_path: bytes, + signing_digest: bytes, signature: bytes) -> None: + assert len(signature) == 65 self.check_canonical(signature) v = signature[0] diff --git a/tests/functional/test_eos.py b/tests/functional/test_eos.py index 026a4ae..f8c0146 100644 --- a/tests/functional/test_eos.py +++ b/tests/functional/test_eos.py @@ -15,15 +15,15 @@ # Proposed EOS derivation paths for tests ### EOS_PATH = pack_derivation_path("m/44'/194'/12345'") -speculos_expected_public_key = "04a478ace4ac9cdbc8ccfe5560940a2c" -speculos_expected_public_key += "cdc96d4f7789e7dd4074dbe1eb7865b0" -speculos_expected_public_key += "0889833972fdafcbd25e71f7515c27c1" -speculos_expected_public_key += "23449309873e0d16fea13abd2697c035ef" +SPECULOS_EXPECTED_PUBLIC_KEY = "04a478ace4ac9cdbc8ccfe5560940a2c" +SPECULOS_EXPECTED_PUBLIC_KEY += "cdc96d4f7789e7dd4074dbe1eb7865b0" +SPECULOS_EXPECTED_PUBLIC_KEY += "0889833972fdafcbd25e71f7515c27c1" +SPECULOS_EXPECTED_PUBLIC_KEY += "23449309873e0d16fea13abd2697c035ef" -speculos_expected_address = "EOS85fjM4VLKEYZwJE5FBUhXR3HaFno1t7fpukBfzjm9xUHgzLpuV" +SPECULOS_EXPECTED_ADDRESS = "EOS85fjM4VLKEYZwJE5FBUhXR3HaFno1t7fpukBfzjm9xUHgzLpuV" -speculos_expected_chaincode = "007c54db71630a77129b2183b701a6da" -speculos_expected_chaincode += "1cde07a1f4edb1d8ee2f51a14306b4c5" +SPECULOS_EXPECTED_CHAINCODE = "007c54db71630a77129b2183b701a6da" +SPECULOS_EXPECTED_CHAINCODE += "1cde07a1f4edb1d8ee2f51a14306b4c5" def get_review_instructions(num_screen_skip): @@ -36,9 +36,7 @@ def test_eos_mainmenu_and_setting(client, test_name, navigator): eos = EosClient(client) # Get appversion and "data_allowed parameter" - rapdu: RAPDU = eos.send_get_app_configuration() - assert rapdu.status == STATUS_OK - data_allowed, version = eos.parse_get_app_configuration_response(rapdu.data) + data_allowed, version = eos.send_get_app_configuration() assert data_allowed is False assert version == (1, 4, 3) @@ -57,9 +55,7 @@ def test_eos_mainmenu_and_setting(client, test_name, navigator): navigator.navigate_and_compare(TESTS_ROOT_DIR, test_name, instructions) # Check that "data_allowed parameter" changed - rapdu: RAPDU = eos.send_get_app_configuration() - assert rapdu.status == STATUS_OK - data_allowed, version = eos.parse_get_app_configuration_response(rapdu.data) + data_allowed, version = eos.send_get_app_configuration() assert data_allowed is True assert version == (1, 4, 3) @@ -67,23 +63,20 @@ def test_eos_mainmenu_and_setting(client, test_name, navigator): def check_get_public_key_resp(client, public_key, address, chaincode): if isinstance(client, SpeculosBackend): # Check against nominal Speculos seed expected results - assert public_key.hex() == speculos_expected_public_key - assert address == speculos_expected_address - assert chaincode.hex() == speculos_expected_chaincode + assert public_key.hex() == SPECULOS_EXPECTED_PUBLIC_KEY + assert address == SPECULOS_EXPECTED_ADDRESS + assert chaincode.hex() == SPECULOS_EXPECTED_CHAINCODE def test_eos_get_public_key_non_confirm(client): eos = EosClient(client) - rapdu: RAPDU = eos.send_get_public_key_non_confirm(EOS_PATH, True) - assert rapdu.status == STATUS_OK + rapdu: RAPDU = eos.send_get_public_key_non_confirm(EOS_PATH, True) public_key, address, chaincode = eos.parse_get_public_key_response(rapdu.data, True) - check_get_public_key_resp(client, public_key, address, chaincode) # Check that with NO_CHAINCODE, value stay the same rapdu: RAPDU = eos.send_get_public_key_non_confirm(EOS_PATH, False) - assert rapdu.status == STATUS_OK public_key_2, address_2, chaincode_2 = eos.parse_get_public_key_response(rapdu.data, False) assert public_key_2 == public_key assert address_2 == address @@ -101,8 +94,6 @@ def test_eos_get_public_key_confirm(test_name, client, firmware, navigator): test_name, instructions) rapdu: RAPDU = eos.get_async_response() - - assert rapdu.status == STATUS_OK public_key, address, chaincode = eos.parse_get_public_key_response(rapdu.data, True) check_get_public_key_resp(client, public_key, address, chaincode) @@ -113,7 +104,6 @@ def test_eos_get_public_key_confirm(test_name, client, firmware, navigator): test_name, instructions) rapdu: RAPDU = eos.get_async_response() - assert rapdu.status == STATUS_OK public_key_2, address_2, chaincode_2 = eos.parse_get_public_key_response(rapdu.data, False) assert public_key_2 == public_key assert address_2 == address @@ -133,7 +123,6 @@ def test_eos_get_public_key_confirm_refused(test_name, client, firmware, navigat test_name, instructions) rapdu: RAPDU = eos.get_async_response() - assert rapdu.status == ErrorType.USER_CANCEL assert len(rapdu.data) == 0 @@ -153,8 +142,6 @@ def check_transaction(test_name, client, navigator, transaction_filename, num_sc test_name, instructions) rapdu: RAPDU = eos.get_async_response() - assert rapdu.status == STATUS_OK - eos.verify_signature(EOS_PATH, signing_digest, rapdu.data) @@ -194,15 +181,12 @@ def test_eos_transaction_newaccount_ok(test_name, client, navigator): test_name + "_part1", get_review_instructions(2) + get_review_instructions(7)) rapdu: RAPDU = eos.get_async_response() - assert rapdu.status == STATUS_OK with eos._send_async_sign_message(messages[1], False): navigator.navigate_and_compare(TESTS_ROOT_DIR, test_name + "_part2", get_review_instructions(6) + get_review_instructions(8)) rapdu: RAPDU = eos.get_async_response() - assert rapdu.status == STATUS_OK - eos.verify_signature(EOS_PATH, signing_digest, rapdu.data) From f398086cd436c139ae9e005dd5bd877ca905858a Mon Sep 17 00:00:00 2001 From: Xavier Chapron Date: Wed, 16 Nov 2022 14:39:07 +0100 Subject: [PATCH 3/5] review --- .github/workflows/ci-workflow.yml | 2 +- tests/functional/test_eos.py | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index fbe8838..3c1a0c8 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -37,7 +37,7 @@ jobs: - name: Upload application binaries uses: actions/upload-artifact@v3 with: - name: solana_binaries + name: eos_binaries path: ./bin/eos_${{ matrix.sdk.name }}.elf if-no-files-found: error diff --git a/tests/functional/test_eos.py b/tests/functional/test_eos.py index f8c0146..90fa7ef 100644 --- a/tests/functional/test_eos.py +++ b/tests/functional/test_eos.py @@ -6,7 +6,7 @@ from ragger.navigator import NavInsID, NavIns from ragger.utils import pack_derivation_path -from apps.eos import EosClient, ErrorType, STATUS_OK +from apps.eos import EosClient, ErrorType from apps.eos_transaction_builder import Transaction @@ -15,15 +15,15 @@ # Proposed EOS derivation paths for tests ### EOS_PATH = pack_derivation_path("m/44'/194'/12345'") -SPECULOS_EXPECTED_PUBLIC_KEY = "04a478ace4ac9cdbc8ccfe5560940a2c" -SPECULOS_EXPECTED_PUBLIC_KEY += "cdc96d4f7789e7dd4074dbe1eb7865b0" -SPECULOS_EXPECTED_PUBLIC_KEY += "0889833972fdafcbd25e71f7515c27c1" -SPECULOS_EXPECTED_PUBLIC_KEY += "23449309873e0d16fea13abd2697c035ef" +SPECULOS_EXPECTED_PUBLIC_KEY = "04a478ace4ac9cdbc8ccfe5560940a2c"\ + "cdc96d4f7789e7dd4074dbe1eb7865b0"\ + "0889833972fdafcbd25e71f7515c27c1"\ + "23449309873e0d16fea13abd2697c035ef" SPECULOS_EXPECTED_ADDRESS = "EOS85fjM4VLKEYZwJE5FBUhXR3HaFno1t7fpukBfzjm9xUHgzLpuV" -SPECULOS_EXPECTED_CHAINCODE = "007c54db71630a77129b2183b701a6da" -SPECULOS_EXPECTED_CHAINCODE += "1cde07a1f4edb1d8ee2f51a14306b4c5" +SPECULOS_EXPECTED_CHAINCODE = "007c54db71630a77129b2183b701a6da"\ + "1cde07a1f4edb1d8ee2f51a14306b4c5" def get_review_instructions(num_screen_skip): From 552cd8d29446ab1dab1487beb7a25092f26ac161 Mon Sep 17 00:00:00 2001 From: Xavier Chapron Date: Wed, 16 Nov 2022 15:24:29 +0100 Subject: [PATCH 4/5] review --- tests/functional/apps/eos.py | 8 ++- tests/functional/conftest.py | 8 ++- tests/functional/requirements.txt | 3 +- tests/functional/usage.md | 82 +++++++++++++++++++++++++++++++ 4 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 tests/functional/usage.md diff --git a/tests/functional/apps/eos.py b/tests/functional/apps/eos.py index b157190..a6ddee9 100644 --- a/tests/functional/apps/eos.py +++ b/tests/functional/apps/eos.py @@ -2,7 +2,7 @@ from contextlib import contextmanager from enum import IntEnum from pycoin.ecdsa.secp256k1 import secp256k1_generator -from typing import List, Generator +from typing import Generator import hashlib from cryptography.hazmat.backends import default_backend @@ -12,6 +12,7 @@ from cryptography.hazmat.primitives.asymmetric.utils import Prehashed from ragger.backend.interface import BackendInterface, RAPDU +from ragger.utils import split_message class INS(IntEnum): @@ -140,9 +141,6 @@ def send_async_get_public_key_confirm(self, derivation_path: bytes, p1, p2, derivation_path): yield - def split_message(self, message: bytes) -> List[bytes]: - return [message[x:x + MAX_CHUNK_SIZE] for x in range(0, len(message), MAX_CHUNK_SIZE)] - def _send_sign_message(self, message: bytes, first: bool) -> RAPDU: if first: p1 = P1_FIRST @@ -163,7 +161,7 @@ def _send_async_sign_message(self, message: bytes, def send_async_sign_message(self, derivation_path: bytes, message: bytes) -> Generator[None, None, None]: - messages = self.split_message(derivation_path + message) + messages = split_message(derivation_path + message, MAX_CHUNK_SIZE) first = True if len(messages) > 1: diff --git a/tests/functional/conftest.py b/tests/functional/conftest.py index 3963343..665b4e7 100644 --- a/tests/functional/conftest.py +++ b/tests/functional/conftest.py @@ -1,12 +1,12 @@ -from pathlib import Path import pytest - +from pathlib import Path from ragger import Firmware from ragger.backend import SpeculosBackend, LedgerCommBackend, LedgerWalletBackend from ragger.navigator import NanoNavigator from ragger.utils import app_path_from_app_name +# This variable is needed for Speculos only (physical tests need the application to be already installed) APPS_DIRECTORY = (Path(__file__).parent.parent / "elfs").resolve() APP_NAME = "eos" @@ -82,6 +82,9 @@ def prepare_speculos_args(firmware: Firmware, display: bool): return ([app_path], {"args": speculos_args}) +# Depending on the "--backend" option value, a different backend is +# instantiated, and the tests will either run on Speculos or on a physical +# device depending on the backend def create_backend(backend: str, firmware: Firmware, display: bool): if backend.lower() == "ledgercomm": return LedgerCommBackend(firmware, interface="hid") @@ -94,6 +97,7 @@ def create_backend(backend: str, firmware: Firmware, display: bool): raise ValueError(f"Backend '{backend}' is unknown. Valid backends are: {BACKENDS}") +# This final fixture will return the properly configured backend client, to be used in tests @pytest.fixture def client(backend, firmware, display): with create_backend(backend, firmware, display) as b: diff --git a/tests/functional/requirements.txt b/tests/functional/requirements.txt index a4c4a9e..5917a8e 100644 --- a/tests/functional/requirements.txt +++ b/tests/functional/requirements.txt @@ -1,5 +1,4 @@ +ragger[tests,speculos]>=0.8.0 base58 -bip32 -ragger[tests,speculos] pycoin asn1 diff --git a/tests/functional/usage.md b/tests/functional/usage.md new file mode 100644 index 0000000..383467a --- /dev/null +++ b/tests/functional/usage.md @@ -0,0 +1,82 @@ +# How to use the Ragger test framework + +This framework allows testing the application on the Speculos emulator or on a real device using LedgerComm or LedgerWallet + + +## Quickly get started with Ragger and Speculos + +### Install ragger and dependencies + +``` +pip install --extra-index-url https://test.pypi.org/simple/ -r requirements.txt +sudo apt-get update && sudo apt-get install qemu-user-static +``` + +### Compile the application + +The application to test must be compiled for all required devices. +You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite`: +``` +docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest +cd app-/ # replace with the name of your app, (eg boilerplate) +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ledger-app-builder-lite:latest +make clean && make BOLOS_SDK=$_SDK # replace with one of [NANOS, NANOX, NANOSP] +exit +``` + +### Run a simple test using the Speculos emulator + +Copy the compiled binaries to the `elfs` directory, create the directory if necessary. +``` +mkdir -p tests/elfs/ +cp bin/app.elf tests/elfs/_.elf # replace with one of [nanos, nanox, nanosp] + # replace with the name of your app, (eg boilerplate) + # so for example tests/elfs/boilerplate_nanos.elf +``` + +You can use the following command to get your first experience with Ragger and Speculos +``` +pytest -v --tb=short --nanox --display +``` +Or you can refer to the section `Available pytest options` to configure the options you want to use + + +### Run a simple test using a real device + +The application to test must be loaded on a Ledger device plugged in USB. +You can use for this the container `ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite`: +``` +docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest +cd app-/ # replace with the name of your app, (eg boilerplate) +docker run --user "$(id -u)":"$(id -g)" --rm -ti -v "$(realpath .):/app" --privileged -v "/dev/bus/usb:/dev/bus/usb" ledger-app-builder-lite:latest +make clean && make BOLOS_SDK=$_SDK load # replace with one of [NANOS, NANOX, NANOSP] +exit +``` + +You can use the following command to get your first experience with Ragger and Ledgerwallet on a NANOX. +Make sure that the device is plugged, unlocked, and that the tested application is open. +``` +pytest -v --tb=short --nanox --backend ledgerwallet +``` +Or you can refer to the section `Available pytest options` to configure the options you want to use + + +## Available pytest options + +Standard recommended pytest options +``` + -v formats the test summary in a readable way + -s enable logs for successful tests, on Speculos it will enable app logs if compiled with DEBUG=1 + -k only run the tests that contain in their names + --tb=short in case of errors, formats the testtraceback in a readable way +``` + +Custom pytest options +``` + --backend run the tests against the backend [speculos, ledgercomm, ledgerwallet]. Speculos is the default + --display on Speculos, enables the display of the app screen using QT + --golden_run on Speculos, screen comparison functions will save the current screen instead of comparing + --nanos run only the test for the nanos device + --nanox run only the test for the nanox device + --nanosp run only the test for the nanosp device +``` From 1c47da44d98007bf2274453e6c6c2909fd0eeece Mon Sep 17 00:00:00 2001 From: Xavier Chapron Date: Fri, 18 Nov 2022 12:37:07 +0100 Subject: [PATCH 5/5] fix test issue --- tests/functional/test_eos.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/functional/test_eos.py b/tests/functional/test_eos.py index 90fa7ef..5f68222 100644 --- a/tests/functional/test_eos.py +++ b/tests/functional/test_eos.py @@ -4,9 +4,9 @@ from ragger.backend import SpeculosBackend from ragger.backend.interface import RAPDU, RaisePolicy from ragger.navigator import NavInsID, NavIns -from ragger.utils import pack_derivation_path +from ragger.utils import pack_derivation_path, split_message -from apps.eos import EosClient, ErrorType +from apps.eos import EosClient, ErrorType, MAX_CHUNK_SIZE from apps.eos_transaction_builder import Transaction @@ -173,7 +173,7 @@ def test_eos_transaction_linkauth_ok(test_name, client, navigator): def test_eos_transaction_newaccount_ok(test_name, client, navigator): signing_digest, message = load_transaction_from_file("transaction_newaccount.json") eos = EosClient(client) - messages = eos.split_message(EOS_PATH + message) + messages = split_message(EOS_PATH + message, MAX_CHUNK_SIZE) assert len(messages) == 2 with eos._send_async_sign_message(messages[0], True): @@ -206,7 +206,7 @@ def test_eos_transaction_sellram_ok(test_name, client, navigator): def test_eos_transaction_unknown_ok(test_name, client, navigator): signing_digest, message = load_transaction_from_file("transaction_unknown.json") eos = EosClient(client) - messages = eos.split_message(EOS_PATH + message) + messages = split_message(EOS_PATH + message, MAX_CHUNK_SIZE) with eos._send_async_sign_message(messages[0], True): client.raise_policy = RaisePolicy.RAISE_NOTHING