From b67d6d65b828f3f369664c9e7ac475c10ae7042d Mon Sep 17 00:00:00 2001 From: pscott Date: Tue, 14 Sep 2021 10:48:23 +0200 Subject: [PATCH 1/9] Remove tokens from ethereum app; Add comments about tokens --- src/tokens.c | 4402 +------------------------------------------------- src/tokens.h | 4 +- 2 files changed, 7 insertions(+), 4399 deletions(-) diff --git a/src/tokens.c b/src/tokens.c index ce7a92d..cdf7d24 100644 --- a/src/tokens.c +++ b/src/tokens.c @@ -46,4415 +46,21 @@ const tokenDefinition_t const TOKENS_EXTRA[NUM_TOKENS_EXTRA] = { #include "tokens.h" -const tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA] = {}; - +// Example of custom tokens (not actually used by the main ethereum app). +// Format of a token is: `{address, ticker, decimals}`. const tokenDefinition_t const TOKENS_ETHEREUM[NUM_TOKENS_ETHEREUM] = { - {{0x4E, 0x84, 0xE9, 0xe5, 0xfb, 0x0A, 0x97, 0x26, 0x28, 0xCf, - 0x45, 0x68, 0xc4, 0x03, 0x16, 0x7E, 0xF1, 0xD4, 0x04, 0x31}, - "$FFC ", - 18}, - {{0xa0, 0x24, 0xe8, 0x05, 0x7e, 0xec, 0x47, 0x4a, 0x9b, 0x23, - 0x56, 0x83, 0x37, 0x07, 0xdd, 0x05, 0x79, 0xe2, 0x6e, 0xf3}, - "$FYX ", - 18}, - {{0xcd, 0xb7, 0xec, 0xfd, 0x34, 0x03, 0xee, 0xf3, 0x88, 0x2c, - 0x65, 0xb7, 0x61, 0xef, 0x9b, 0x50, 0x54, 0x89, 0x0a, 0x47}, - "$HUR ", - 18}, - {{0x0d, 0xb8, 0xd8, 0xb7, 0x6b, 0xc3, 0x61, 0xba, 0xcb, 0xb7, - 0x2e, 0x2c, 0x49, 0x1e, 0x06, 0x08, 0x5a, 0x97, 0xab, 0x31}, - "$IQN ", - 18}, - {{0x7d, 0xd7, 0xf5, 0x6d, 0x69, 0x7c, 0xc0, 0xf2, 0xb5, 0x2b, - 0xd5, 0x5c, 0x05, 0x7f, 0x37, 0x8f, 0x1f, 0xe6, 0xab, 0x4b}, - "$TEAK ", - 18}, - {{0xB6, 0xeD, 0x76, 0x44, 0xC6, 0x94, 0x16, 0xd6, 0x7B, 0x52, - 0x2e, 0x20, 0xbC, 0x29, 0x4A, 0x9a, 0x9B, 0x40, 0x5B, 0x31}, - "0xBTC ", - 8}, - {{0xAf, 0x30, 0xD2, 0xa7, 0xE9, 0x0d, 0x7D, 0xC3, 0x61, 0xc8, - 0xC4, 0x58, 0x5e, 0x9B, 0xB7, 0xD2, 0xF6, 0xf1, 0x5b, 0xc7}, - "1ST ", - 18}, - {{0xfd, 0xbc, 0x1a, 0xdc, 0x26, 0xf0, 0xf8, 0xf8, 0x60, 0x6a, - 0x5d, 0x63, 0xb7, 0xd3, 0xa3, 0xcd, 0x21, 0xc2, 0x2b, 0x23}, - "1WO ", - 8}, - {{0x00, 0x73, 0xe5, 0xE5, 0x2E, 0x2B, 0x4f, 0xE2, 0x18, 0xD7, - 0x5d, 0x99, 0x4e, 0xE2, 0xB3, 0xc8, 0x2f, 0x9C, 0x87, 0xEA}, - "22x ", - 8}, - {{0x9f, 0xC0, 0x58, 0x32, 0x20, 0xeB, 0x44, 0xfA, 0xeE, 0x9e, - 0x2d, 0xc1, 0xE6, 0x3F, 0x39, 0x20, 0x4D, 0xDD, 0x90, 0x90}, - "2DC ", - 18}, - {{0xaE, 0xc9, 0x8A, 0x70, 0x88, 0x10, 0x41, 0x48, 0x78, 0xc3, - 0xBC, 0xDF, 0x46, 0xAa, 0xd3, 0x1d, 0xEd, 0x4a, 0x45, 0x57}, - "300 ", - 18}, - {{0x43, 0x02, 0x41, 0x36, 0x8c, 0x1D, 0x29, 0x3f, 0xdA, 0x21, - 0xDB, 0xa8, 0xBb, 0x7a, 0xF3, 0x20, 0x07, 0xc5, 0x91, 0x09}, - "3LT ", - 8}, - {{0xBa, 0x7D, 0xCB, 0xa2, 0xAd, 0xe3, 0x19, 0xBc, 0x77, 0x2D, - 0xB4, 0xdf, 0x75, 0xA7, 0x6B, 0xA0, 0x0d, 0xFb, 0x31, 0xb0}, - "A18 ", - 18}, - {{0xcc, 0x7d, 0x26, 0xd8, 0xea, 0x62, 0x81, 0xbb, 0x36, 0x3c, - 0x84, 0x48, 0x51, 0x5f, 0x2c, 0x61, 0xf7, 0xbc, 0x19, 0xf0}, - "ABCH ", - 18}, - {{0xb9, 0x8d, 0x4c, 0x97, 0x42, 0x5d, 0x99, 0x08, 0xe6, 0x6e, - 0x53, 0xa6, 0xfd, 0xf6, 0x73, 0xac, 0xca, 0x0b, 0xe9, 0x86}, - "ABT ", - 18}, - {{0x0e, 0x8d, 0x6b, 0x47, 0x1e, 0x33, 0x2f, 0x14, 0x0e, 0x7d, - 0x9d, 0xbb, 0x99, 0xe5, 0xe3, 0x82, 0x2f, 0x72, 0x8d, 0xa6}, - "ABYSS ", - 18}, - {{0x13, 0xf1, 0xb7, 0xfd, 0xfb, 0xe1, 0xfc, 0x66, 0x67, 0x6d, - 0x56, 0x48, 0x3e, 0x21, 0xb1, 0xec, 0xb4, 0x0b, 0x58, 0xe2}, - "ACC ", - 18}, - {{0x06, 0x14, 0x71, 0x10, 0x02, 0x2b, 0x76, 0x8b, 0xa8, 0xf9, - 0x9a, 0x8f, 0x38, 0x5d, 0xf1, 0x1a, 0x15, 0x1a, 0x9c, 0xc8}, - "ACE ", - 0}, - {{0x2b, 0xaa, 0xc9, 0x33, 0x0c, 0xf9, 0xac, 0x47, 0x9d, 0x81, - 0x91, 0x95, 0x79, 0x4d, 0x79, 0xad, 0x0c, 0x76, 0x16, 0xe3}, - "ADB ", - 18}, - {{0xE6, 0x9a, 0x35, 0x3b, 0x31, 0x52, 0xDd, 0x7b, 0x70, 0x6f, - 0xf7, 0xdD, 0x40, 0xfe, 0x1d, 0x18, 0xb7, 0x80, 0x2d, 0x31}, - "ADH ", - 18}, - {{0x88, 0x10, 0xC6, 0x34, 0x70, 0xd3, 0x86, 0x39, 0x95, 0x4c, - 0x6B, 0x41, 0xAa, 0xC5, 0x45, 0x84, 0x8C, 0x46, 0x48, 0x4a}, - "ADI ", - 18}, - {{0x66, 0x0e, 0x71, 0x48, 0x37, 0x85, 0xf6, 0x61, 0x33, 0x54, - 0x8b, 0x10, 0xf6, 0x92, 0x6d, 0xc3, 0x32, 0xb0, 0x6e, 0x61}, - "ADL ", - 18}, - {{0x42, 0x28, 0x66, 0xa8, 0xF0, 0xb0, 0x32, 0xc5, 0xcf, 0x1D, - 0xfB, 0xDE, 0xf3, 0x1A, 0x20, 0xF4, 0x50, 0x95, 0x62, 0xb0}, - "ADST ", - 0}, - {{0xD0, 0xD6, 0xD6, 0xC5, 0xFe, 0x4a, 0x67, 0x7D, 0x34, 0x3c, - 0xC4, 0x33, 0x53, 0x6B, 0xB7, 0x17, 0xbA, 0xe1, 0x67, 0xdD}, - "ADT ", - 9}, - {{0x44, 0x70, 0xBB, 0x87, 0xd7, 0x7b, 0x96, 0x3A, 0x01, 0x3D, - 0xB9, 0x39, 0xBE, 0x33, 0x2f, 0x92, 0x7f, 0x2b, 0x99, 0x2e}, - "ADX ", - 4}, - {{0x5c, 0xa9, 0xa7, 0x1b, 0x1d, 0x01, 0x84, 0x9c, 0x0a, 0x95, - 0x49, 0x0c, 0xc0, 0x05, 0x59, 0x71, 0x7f, 0xcf, 0x0d, 0x1d}, - "AE ", - 18}, - {{0x8e, 0xB2, 0x43, 0x19, 0x39, 0x37, 0x16, 0x66, 0x8D, 0x76, - 0x8d, 0xCE, 0xC2, 0x93, 0x56, 0xae, 0x9C, 0xfF, 0xe2, 0x85}, - "AGI ", - 8}, - {{0x51, 0x21, 0xe3, 0x48, 0xe8, 0x97, 0xda, 0xef, 0x1e, 0xef, - 0x23, 0x95, 0x9a, 0xb2, 0x90, 0xe5, 0x55, 0x7c, 0xf2, 0x74}, - "AI ", - 18}, - {{0x37, 0xe8, 0x78, 0x9b, 0xb9, 0x99, 0x6c, 0xac, 0x91, 0x56, - 0xcd, 0x5f, 0x5f, 0xd3, 0x25, 0x99, 0xe6, 0xb9, 0x12, 0x89}, - "AID ", - 18}, - {{0x4C, 0xEd, 0xA7, 0x90, 0x6a, 0x5E, 0xd2, 0x17, 0x97, 0x85, - 0xCd, 0x3A, 0x40, 0xA6, 0x9e, 0xe8, 0xbc, 0x99, 0xC4, 0x66}, - "AION ", - 8}, - {{0x27, 0xdc, 0xe1, 0xec, 0x4d, 0x3f, 0x72, 0xc3, 0xe4, 0x57, - 0xcc, 0x50, 0x35, 0x4f, 0x1f, 0x97, 0x5d, 0xde, 0xf4, 0x88}, - "AIR ", - 8}, - {{0x10, 0x63, 0xce, 0x52, 0x42, 0x65, 0xd5, 0xa3, 0xA6, 0x24, - 0xf4, 0x91, 0x4a, 0xcd, 0x57, 0x3d, 0xD8, 0x9c, 0xe9, 0x88}, - "AIX ", - 18}, - {{0x1c, 0xa4, 0x3a, 0x17, 0x0b, 0xad, 0x61, 0x93, 0x22, 0xe6, - 0xf5, 0x4d, 0x46, 0xb5, 0x7e, 0x50, 0x4d, 0xb6, 0x63, 0xaa}, - "AKC ", - 18}, - {{0x18, 0x1a, 0x63, 0x74, 0x6d, 0x3a, 0xdc, 0xf3, 0x56, 0xcb, - 0xc7, 0x3a, 0xce, 0x22, 0x83, 0x2f, 0xfb, 0xb1, 0xee, 0x5a}, - "ALCO ", - 8}, - {{0x42, 0x89, 0xc0, 0x43, 0xa1, 0x23, 0x92, 0xf1, 0x02, 0x73, - 0x07, 0xfb, 0x58, 0x27, 0x2d, 0x8e, 0xbd, 0x85, 0x39, 0x12}, - "ALI ", - 18}, - {{0xEA, 0x61, 0x0B, 0x11, 0x53, 0x47, 0x77, 0x20, 0x74, 0x8D, - 0xC1, 0x3E, 0xD3, 0x78, 0x00, 0x39, 0x41, 0xd8, 0x4f, 0xAB}, - "ALIS ", - 18}, - {{0x63, 0x8a, 0xc1, 0x49, 0xea, 0x8e, 0xf9, 0xa1, 0x28, 0x6c, - 0x41, 0xb9, 0x77, 0x01, 0x7a, 0xa7, 0x35, 0x9e, 0x6c, 0xfa}, - "ALTS ", - 18}, - {{0x49, 0xb1, 0x27, 0xbc, 0x33, 0xce, 0x7e, 0x15, 0x86, 0xec, - 0x28, 0xce, 0xc6, 0xa6, 0x5b, 0x11, 0x25, 0x96, 0xc8, 0x22}, - "ALX ", - 18}, - {{0x4d, 0xc3, 0x64, 0x3d, 0xbc, 0x64, 0x2b, 0x72, 0xc1, 0x58, - 0xe7, 0xf3, 0xd2, 0xff, 0x23, 0x2d, 0xf6, 0x1c, 0xb6, 0xce}, - "AMB ", - 18}, - {{0x94, 0x9b, 0xed, 0x88, 0x6c, 0x73, 0x9f, 0x1a, 0x32, 0x73, - 0x62, 0x9b, 0x33, 0x20, 0xdb, 0x0c, 0x50, 0x24, 0xc7, 0x19}, - "AMIS ", - 9}, - {{0xca, 0x0e, 0x72, 0x69, 0x60, 0x0d, 0x35, 0x3f, 0x70, 0xb1, - 0x4a, 0xd1, 0x18, 0xa4, 0x95, 0x75, 0x45, 0x5c, 0x0f, 0x2f}, - "AMLT ", - 18}, - {{0x73, 0x7f, 0x98, 0xac, 0x8c, 0xa5, 0x9f, 0x2c, 0x68, 0xad, - 0x65, 0x8e, 0x3c, 0x3d, 0x8c, 0x89, 0x63, 0xe4, 0x0a, 0x4c}, - "AMN ", - 18}, - {{0x38, 0xc8, 0x7a, 0xa8, 0x9b, 0x2b, 0x8c, 0xd9, 0xb9, 0x5b, - 0x73, 0x6e, 0x1f, 0xa7, 0xb6, 0x12, 0xea, 0x97, 0x21, 0x69}, - "AMO ", - 18}, - {{0x84, 0x93, 0x6c, 0xF7, 0x63, 0x0A, 0xA3, 0xe2, 0x7D, 0xd9, - 0xAf, 0xF9, 0x68, 0xb1, 0x40, 0xd5, 0xAE, 0xE4, 0x9F, 0x5a}, - "AMTC ", - 8}, - {{0x96, 0x0b, 0x23, 0x6A, 0x07, 0xcf, 0x12, 0x26, 0x63, 0xc4, - 0x30, 0x33, 0x50, 0x60, 0x9A, 0x66, 0xA7, 0xB2, 0x88, 0xC0}, - "ANT ", - 18}, - {{0x9a, 0xb1, 0x65, 0xd7, 0x95, 0x01, 0x9b, 0x6d, 0x8b, 0x3e, - 0x97, 0x1d, 0xda, 0x91, 0x07, 0x14, 0x21, 0x30, 0x5e, 0x5a}, - "AOA ", - 18}, - {{0x4c, 0x0f, 0xbe, 0x1b, 0xb4, 0x66, 0x12, 0x91, 0x5e, 0x79, - 0x67, 0xd2, 0xc3, 0x21, 0x3c, 0xd4, 0xd8, 0x72, 0x57, 0xad}, - "APIS ", - 18}, - {{0x1a, 0x7a, 0x8b, 0xd9, 0x10, 0x6f, 0x2b, 0x8d, 0x97, 0x7e, - 0x08, 0x58, 0x2d, 0xc7, 0xd2, 0x4c, 0x72, 0x3a, 0xb0, 0xdb}, - "APPC ", - 18}, - {{0x23, 0xae, 0x3c, 0x5b, 0x39, 0xb1, 0x2f, 0x06, 0x93, 0xe0, - 0x54, 0x35, 0xee, 0xaa, 0x1e, 0x51, 0xd8, 0xc6, 0x15, 0x30}, - "APT ", - 18}, - {{0xaf, 0xbe, 0xc4, 0xd6, 0x5b, 0xc7, 0xb1, 0x16, 0xd8, 0x51, - 0x07, 0xfd, 0x05, 0xd9, 0x12, 0x49, 0x10, 0x29, 0xbf, 0x46}, - "ARB ", - 18}, - {{0xAc, 0x70, 0x9F, 0xcB, 0x44, 0xa4, 0x3c, 0x35, 0xF0, 0xDA, - 0x4e, 0x31, 0x63, 0xb1, 0x17, 0xA1, 0x7F, 0x37, 0x70, 0xf5}, - "ARC ", - 18}, - {{0x12, 0x45, 0xef, 0x80, 0xf4, 0xd9, 0xe0, 0x2e, 0xd9, 0x42, - 0x53, 0x75, 0xe8, 0xf6, 0x49, 0xb9, 0x22, 0x1b, 0x31, 0xd8}, - "ARCT ", - 8}, - {{0x75, 0xaa, 0x7b, 0x0d, 0x02, 0x53, 0x2f, 0x38, 0x33, 0xb6, - 0x6c, 0x7f, 0x0a, 0xd3, 0x53, 0x76, 0xd3, 0x73, 0xdd, 0xf8}, - "ARD ", - 18}, - {{0xBA, 0x5F, 0x11, 0xb1, 0x6B, 0x15, 0x57, 0x92, 0xCf, 0x3B, - 0x2E, 0x68, 0x80, 0xE8, 0x70, 0x68, 0x59, 0xA8, 0xAE, 0xB6}, - "ARN ", - 8}, - {{0xfe, 0xc0, 0xcF, 0x7f, 0xE0, 0x78, 0xa5, 0x00, 0xab, 0xf1, - 0x5F, 0x12, 0x84, 0x95, 0x8F, 0x22, 0x04, 0x9c, 0x2C, 0x7e}, - "ART ", - 18}, - {{0x77, 0x05, 0xFa, 0xA3, 0x4B, 0x16, 0xEB, 0x6d, 0x77, 0xDf, - 0xc7, 0x81, 0x2b, 0xe2, 0x36, 0x7b, 0xa6, 0xB0, 0x24, 0x8e}, - "ARX ", - 8}, - {{0xb0, 0xD9, 0x26, 0xc1, 0xBC, 0x3d, 0x78, 0x06, 0x4F, 0x3e, - 0x10, 0x75, 0xD5, 0xbD, 0x9A, 0x24, 0xF3, 0x5A, 0xe6, 0xC5}, - "ARXT ", - 18}, - {{0xa5, 0xf8, 0xfc, 0x09, 0x21, 0x88, 0x0c, 0xb7, 0x34, 0x23, - 0x68, 0xbd, 0x12, 0x8e, 0xb8, 0x05, 0x04, 0x42, 0xb1, 0xa1}, - "ARY ", - 18}, - {{0x27, 0x05, 0x4b, 0x13, 0xb1, 0xB7, 0x98, 0xB3, 0x45, 0xb5, - 0x91, 0xa4, 0xd2, 0x2e, 0x65, 0x62, 0xd4, 0x7e, 0xA7, 0x5a}, - "AST ", - 4}, - {{0x7b, 0x22, 0x93, 0x8c, 0xa8, 0x41, 0xaa, 0x39, 0x2c, 0x93, - 0xdb, 0xb7, 0xf4, 0xc4, 0x21, 0x78, 0xe3, 0xd6, 0x5e, 0x88}, - "ASTRO ", - 4}, - {{0x15, 0x43, 0xd0, 0xF8, 0x34, 0x89, 0xe8, 0x2A, 0x13, 0x44, - 0xDF, 0x68, 0x27, 0xB2, 0x3d, 0x54, 0x1F, 0x23, 0x5A, 0x50}, - "Aigatha ", - 18}, - {{0x17, 0x05, 0x2d, 0x51, 0xE9, 0x54, 0x59, 0x2C, 0x10, 0x46, - 0x32, 0x0c, 0x23, 0x71, 0xAb, 0xaB, 0x6C, 0x73, 0xEf, 0x10}, - "Athenian ", - 18}, - {{0x78, 0xB7, 0xFA, 0xDA, 0x55, 0xA6, 0x4d, 0xD8, 0x95, 0xD8, - 0xc8, 0xc3, 0x57, 0x79, 0xDD, 0x8b, 0x67, 0xfA, 0x8a, 0x05}, - "ATL ", - 18}, - {{0x9B, 0x11, 0xEF, 0xcA, 0xAA, 0x18, 0x90, 0xf6, 0xeE, 0x52, - 0xC6, 0xbB, 0x7C, 0xF8, 0x15, 0x3a, 0xC5, 0xd7, 0x41, 0x39}, - "ATM ", - 8}, - {{0x97, 0xAE, 0xB5, 0x06, 0x6E, 0x1A, 0x59, 0x0e, 0x86, 0x8b, - 0x51, 0x14, 0x57, 0xBE, 0xb6, 0xFE, 0x99, 0xd3, 0x29, 0xF5}, - "ATMI ", - 18}, - {{0x2d, 0xAE, 0xE1, 0xAA, 0x61, 0xD6, 0x0A, 0x25, 0x2D, 0xC8, - 0x05, 0x64, 0x49, 0x9A, 0x69, 0x80, 0x28, 0x53, 0x58, 0x3A}, - "ATS ", - 4}, - {{0x88, 0x78, 0x34, 0xd3, 0xb8, 0xd4, 0x50, 0xb6, 0xba, 0xb1, - 0x09, 0xc2, 0x52, 0xdf, 0x3d, 0xa2, 0x86, 0xd7, 0x3c, 0xe4}, - "ATT ", - 18}, - {{0x63, 0x39, 0x78, 0x4d, 0x94, 0x78, 0xda, 0x43, 0x10, 0x6a, - 0x42, 0x91, 0x96, 0x77, 0x2a, 0x02, 0x9c, 0x2f, 0x17, 0x7d}, - "ATTN ", - 18}, - {{0x1a, 0x0f, 0x2a, 0xb4, 0x6e, 0xc6, 0x30, 0xf9, 0xfd, 0x63, - 0x80, 0x29, 0x02, 0x7b, 0x55, 0x2a, 0xfa, 0x64, 0xb9, 0x4c}, - "ATX ", - 18}, - {{0xc1, 0x2d, 0x09, 0x9b, 0xe3, 0x15, 0x67, 0xad, 0xd4, 0xe4, - 0xe4, 0xd0, 0xd4, 0x56, 0x91, 0xc3, 0xf5, 0x8f, 0x56, 0x63}, - "AUC ", - 18}, - {{0xcd, 0xcf, 0xc0, 0xf6, 0x6c, 0x52, 0x2f, 0xd0, 0x86, 0xa1, - 0xb7, 0x25, 0xea, 0x3c, 0x0e, 0xeb, 0x9f, 0x9e, 0x88, 0x14}, - "AURA ", - 18}, - {{0x62, 0x2d, 0xFf, 0xCc, 0x4e, 0x83, 0xC6, 0x4b, 0xa9, 0x59, - 0x53, 0x0A, 0x5a, 0x55, 0x80, 0x68, 0x7a, 0x57, 0x58, 0x1b}, - "AUTO ", - 18}, - {{0xeD, 0x24, 0x79, 0x80, 0x39, 0x6B, 0x10, 0x16, 0x9B, 0xB1, - 0xd3, 0x6f, 0x6e, 0x27, 0x8e, 0xD1, 0x67, 0x00, 0xa6, 0x0f}, - "AVA ", - 4}, - {{0x0d, 0x88, 0xed, 0x6e, 0x74, 0xbb, 0xfd, 0x96, 0xb8, 0x31, - 0x23, 0x16, 0x38, 0xb6, 0x6c, 0x05, 0x57, 0x1e, 0x82, 0x4f}, - "AVT ", - 18}, - {{0xcd, 0x4b, 0x4b, 0x0f, 0x32, 0x84, 0xa3, 0x3a, 0xc4, 0x9c, - 0x67, 0x96, 0x1e, 0xc6, 0xe1, 0x11, 0x70, 0x83, 0x18, 0xcf}, - "AX1 ", - 5}, - {{0xC3, 0x9E, 0x62, 0x6A, 0x04, 0xC5, 0x97, 0x1D, 0x77, 0x0e, - 0x31, 0x97, 0x60, 0xD7, 0x92, 0x65, 0x02, 0x97, 0x5e, 0x47}, - "AXPR ", - 18}, - {{0x5d, 0x51, 0xfc, 0xce, 0xd3, 0x11, 0x4a, 0x8b, 0xb5, 0xe9, - 0x0c, 0xdd, 0x0f, 0x9d, 0x68, 0x2b, 0xcb, 0xcc, 0x53, 0x93}, - "B2BX ", - 18}, - {{0x99, 0x8b, 0x3b, 0x82, 0xbc, 0x9d, 0xba, 0x17, 0x39, 0x90, - 0xbe, 0x7a, 0xfb, 0x77, 0x27, 0x88, 0xb5, 0xac, 0xb8, 0xbd}, - "BANCA ", - 18}, - {{0xf8, 0x7f, 0x0d, 0x91, 0x53, 0xfe, 0xa5, 0x49, 0xc7, 0x28, - 0xad, 0x61, 0xcb, 0x80, 0x15, 0x95, 0xa6, 0x8b, 0x73, 0xde}, - "BANX ", - 18}, - {{0x2a, 0x05, 0xd2, 0x2d, 0xb0, 0x79, 0xbc, 0x40, 0xc2, 0xf7, - 0x7a, 0x1d, 0x1f, 0xf7, 0x03, 0xa5, 0x6e, 0x63, 0x1c, 0xc1}, - "BAS ", - 8}, - {{0x0D, 0x87, 0x75, 0xF6, 0x48, 0x43, 0x06, 0x79, 0xA7, 0x09, - 0xE9, 0x8d, 0x2b, 0x0C, 0xb6, 0x25, 0x0d, 0x28, 0x87, 0xEF}, - "BAT ", - 18}, - {{0x9a, 0x02, 0x42, 0xb7, 0xa3, 0x3d, 0xac, 0xbe, 0x40, 0xed, - 0xb9, 0x27, 0x83, 0x4f, 0x96, 0xeb, 0x39, 0xf8, 0xfb, 0xcb}, - "BAX ", - 18}, - {{0xe7, 0xD3, 0xe4, 0x41, 0x3E, 0x29, 0xae, 0x35, 0xB0, 0x89, - 0x31, 0x40, 0xF4, 0x50, 0x09, 0x65, 0xc7, 0x43, 0x65, 0xe5}, - "BBC ", - 18}, - {{0x37, 0xd4, 0x05, 0x10, 0xa2, 0xf5, 0xbc, 0x98, 0xaa, 0x7a, - 0x0f, 0x7b, 0xf4, 0xb3, 0x45, 0x3b, 0xcf, 0xb9, 0x0a, 0xc1}, - "BBI ", - 18}, - {{0x4a, 0x60, 0x58, 0x66, 0x6c, 0xf1, 0x05, 0x7e, 0xaC, 0x3C, - 0xD3, 0xA5, 0xa6, 0x14, 0x62, 0x05, 0x47, 0x55, 0x9f, 0xc9}, - "BBK ", - 18}, - {{0x35, 0xa6, 0x96, 0x42, 0x85, 0x70, 0x83, 0xba, 0x2f, 0x30, - 0xbf, 0xab, 0x73, 0x5d, 0xac, 0xc7, 0xf0, 0xba, 0xc9, 0x69}, - "BBN ", - 18}, - {{0x84, 0xf7, 0xc4, 0x4b, 0x6f, 0xed, 0x10, 0x80, 0xf6, 0x47, - 0xe3, 0x54, 0xd5, 0x52, 0x59, 0x5b, 0xe2, 0xcc, 0x60, 0x2f}, - "BBO ", - 18}, - {{0x2e, 0xcb, 0x13, 0xa8, 0xc4, 0x58, 0xc3, 0x79, 0xc4, 0xd9, - 0xa7, 0x25, 0x9e, 0x20, 0x2d, 0xe0, 0x3c, 0x8f, 0x3d, 0x19}, - "BC ", - 18}, - {{0x1f, 0x41, 0xe4, 0x2d, 0x0a, 0x9e, 0x3c, 0x0d, 0xd3, 0xba, - 0x15, 0xb5, 0x27, 0x34, 0x27, 0x83, 0xb4, 0x32, 0x00, 0xa9}, - "BCAP ", - 0}, - {{0x73, 0x67, 0xa6, 0x80, 0x39, 0xd4, 0x70, 0x4f, 0x30, 0xbf, - 0xbf, 0x6d, 0x94, 0x80, 0x20, 0xc3, 0xb0, 0x7d, 0xfc, 0x59}, - "BCBC ", - 18}, - {{0x1e, 0x79, 0x7C, 0xe9, 0x86, 0xC3, 0xCF, 0xF4, 0x47, 0x2F, - 0x7D, 0x38, 0xd5, 0xC4, 0xab, 0xa5, 0x5D, 0xfE, 0xFE, 0x40}, - "BCDN ", - 15}, - {{0xac, 0xfa, 0x20, 0x9f, 0xb7, 0x3b, 0xf3, 0xdd, 0x5b, 0xbf, - 0xb1, 0x10, 0x1b, 0x9b, 0xc9, 0x99, 0xc4, 0x90, 0x62, 0xa5}, - "BCDT ", - 18}, - {{0xbc, 0x12, 0x34, 0x55, 0x2E, 0xBe, 0xa3, 0x2B, 0x51, 0x21, - 0x19, 0x03, 0x56, 0xbB, 0xa6, 0xD3, 0xBb, 0x22, 0x5b, 0xb5}, - "BCL ", - 18}, - {{0x1c, 0x44, 0x81, 0x75, 0x0d, 0xaa, 0x5F, 0xf5, 0x21, 0xA2, - 0xa7, 0x49, 0x0d, 0x99, 0x81, 0xeD, 0x46, 0x46, 0x5D, 0xbd}, - "BCPT ", - 18}, - {{0x10, 0x14, 0x61, 0x3e, 0x2b, 0x3c, 0xbc, 0x4d, 0x57, 0x50, - 0x54, 0xd4, 0x98, 0x2e, 0x58, 0x0d, 0x9b, 0x99, 0xd7, 0xb1}, - "BCV ", - 8}, - {{0x19, 0x61, 0xB3, 0x33, 0x19, 0x69, 0xeD, 0x52, 0x77, 0x07, - 0x51, 0xfC, 0x71, 0x8e, 0xf5, 0x30, 0x83, 0x8b, 0x6d, 0xEE}, - "BDG ", - 18}, - {{0x4D, 0x8f, 0xc1, 0x45, 0x3a, 0x0F, 0x35, 0x9e, 0x99, 0xc9, - 0x67, 0x59, 0x54, 0xe6, 0x56, 0xD8, 0x0d, 0x99, 0x6F, 0xbF}, - "BEE ", - 18}, - {{0x74, 0xC1, 0xE4, 0xb8, 0xca, 0xE5, 0x92, 0x69, 0xec, 0x1D, - 0x85, 0xD3, 0xD4, 0xF3, 0x24, 0x39, 0x60, 0x48, 0xF4, 0xac}, - "BeerCoin ", - 0}, - {{0x6a, 0xeb, 0x95, 0xf0, 0x6c, 0xda, 0x84, 0xca, 0x34, 0x5c, - 0x2d, 0xe0, 0xf3, 0xb7, 0xf9, 0x69, 0x23, 0xa4, 0x4f, 0x4c}, - "BERRY ", - 14}, - {{0x8a, 0xA3, 0x3A, 0x78, 0x99, 0xFC, 0xC8, 0xeA, 0x5f, 0xBe, - 0x6A, 0x60, 0x8A, 0x10, 0x9c, 0x38, 0x93, 0xA1, 0xB8, 0xb2}, - "BET ", - 18}, - {{0x14, 0xC9, 0x26, 0xF2, 0x29, 0x00, 0x44, 0xB6, 0x47, 0xe1, - 0xBf, 0x20, 0x72, 0xe6, 0x7B, 0x49, 0x5e, 0xff, 0x19, 0x05}, - "BETHER ", - 18}, - {{0x76, 0x31, 0x86, 0xeb, 0x8d, 0x48, 0x56, 0xd5, 0x36, 0xed, - 0x44, 0x78, 0x30, 0x29, 0x71, 0x21, 0x4f, 0xeb, 0xc6, 0xa9}, - "BETR ", - 18}, - {{0xee, 0x74, 0x11, 0x0f, 0xb5, 0xa1, 0x00, 0x7b, 0x06, 0x28, - 0x2e, 0x0d, 0xe5, 0xd7, 0x3a, 0x61, 0xbf, 0x41, 0xd9, 0xcd}, - "BHPC ", - 18}, - {{0xfe, 0x5d, 0x90, 0x8c, 0x9a, 0xd8, 0x5f, 0x65, 0x11, 0x85, - 0xda, 0xa6, 0xa4, 0x77, 0x07, 0x26, 0xe2, 0xb2, 0x7d, 0x09}, - "BHR ", - 18}, - {{0x08, 0xb4, 0xc8, 0x66, 0xaE, 0x9D, 0x1b, 0xE5, 0x6a, 0x06, - 0xe0, 0xC3, 0x02, 0x05, 0x4B, 0x4F, 0xFe, 0x06, 0x7b, 0x43}, - "BITCAR ", - 8}, - {{0xf3, 0xd2, 0x9f, 0xb9, 0x8d, 0x2d, 0xc5, 0xe7, 0x8c, 0x87, - 0x19, 0x8d, 0xee, 0xf9, 0x93, 0x77, 0x34, 0x5f, 0xd6, 0xf1}, - "BITPARK ", - 8}, - {{0xb3, 0x10, 0x4b, 0x4b, 0x9d, 0xa8, 0x20, 0x25, 0xe8, 0xb9, - 0xf8, 0xfb, 0x28, 0xb3, 0x55, 0x3c, 0xe2, 0xf6, 0x70, 0x69}, - "BIX ", - 18}, - {{0xb2, 0xbf, 0xeb, 0x70, 0xb9, 0x03, 0xf1, 0xba, 0xac, 0x7f, - 0x2b, 0xa2, 0xc6, 0x29, 0x34, 0xc7, 0xe5, 0xb9, 0x74, 0xc4}, - "BKB ", - 8}, - {{0x3c, 0xf9, 0xe0, 0xc3, 0x85, 0xa5, 0xab, 0xec, 0x9f, 0xd2, - 0xa7, 0x17, 0x90, 0xaa, 0x34, 0x4c, 0x4e, 0x8e, 0x35, 0x70}, - "BKRx ", - 18}, - {{0x45, 0x24, 0x5b, 0xc5, 0x92, 0x19, 0xee, 0xaa, 0xf6, 0xcd, - 0x3f, 0x38, 0x2e, 0x07, 0x8a, 0x46, 0x1f, 0xf9, 0xde, 0x7b}, - "BKX ", - 18}, - {{0xca, 0x29, 0xdb, 0x42, 0x21, 0xc1, 0x11, 0x88, 0x8a, 0x7e, - 0x80, 0xb1, 0x2e, 0xac, 0x8a, 0x26, 0x6d, 0xa3, 0xee, 0x0d}, - "BLN ", - 18}, - {{0x10, 0x7c, 0x45, 0x04, 0xcd, 0x79, 0xC5, 0xd2, 0x69, 0x6E, - 0xa0, 0x03, 0x0a, 0x8d, 0xD4, 0xe9, 0x26, 0x01, 0xB8, 0x2e}, - "BLT ", - 18}, - {{0x53, 0x9e, 0xfe, 0x69, 0xbc, 0xdd, 0x21, 0xa8, 0x3e, 0xfd, - 0x91, 0x22, 0x57, 0x1a, 0x64, 0xcc, 0x25, 0xe0, 0x28, 0x2b}, - "BLUE ", - 8}, - {{0xce, 0x59, 0xd2, 0x9b, 0x09, 0xaa, 0xe5, 0x65, 0xfe, 0xee, - 0xf8, 0xe5, 0x2f, 0x47, 0xc3, 0xcd, 0x53, 0x68, 0xc6, 0x63}, - "BLX bull ", - 18}, - {{0xE5, 0xa7, 0xc1, 0x29, 0x72, 0xf3, 0xbb, 0xFe, 0x70, 0xed, - 0x29, 0x52, 0x1C, 0x89, 0x49, 0xb8, 0xAf, 0x6a, 0x09, 0x70}, - "BLX ico ", - 18}, - {{0x57, 0x32, 0x04, 0x6A, 0x88, 0x37, 0x04, 0x40, 0x4F, 0x28, - 0x4C, 0xe4, 0x1F, 0xfA, 0xDd, 0x5b, 0x00, 0x7F, 0xD6, 0x68}, - "BLZ ", - 18}, - {{0xdf, 0x6e, 0xf3, 0x43, 0x35, 0x07, 0x80, 0xbf, 0x8c, 0x34, - 0x10, 0xbf, 0x06, 0x2e, 0x0c, 0x01, 0x5b, 0x1d, 0xd6, 0x71}, - "BMC ", - 8}, - {{0xf0, 0x28, 0xad, 0xee, 0x51, 0x53, 0x3b, 0x1b, 0x47, 0xbe, - 0xaa, 0x89, 0x0f, 0xeb, 0x54, 0xa4, 0x57, 0xf5, 0x1e, 0x89}, - "BMT ", - 18}, - {{0x98, 0x6E, 0xE2, 0xB9, 0x44, 0xc4, 0x2D, 0x01, 0x7F, 0x52, - 0xAf, 0x21, 0xc4, 0xc6, 0x9B, 0x84, 0xDB, 0xeA, 0x35, 0xd8}, - "BMX ", - 18}, - {{0xb8, 0xc7, 0x74, 0x82, 0xe4, 0x5f, 0x1f, 0x44, 0xde, 0x17, - 0x45, 0xf5, 0x2c, 0x74, 0x42, 0x6c, 0x63, 0x1b, 0xdd, 0x52}, - "BNB ", - 18}, - {{0xdD, 0x6B, 0xf5, 0x6C, 0xA2, 0xad, 0xa2, 0x4c, 0x68, 0x3F, - 0xAC, 0x50, 0xE3, 0x77, 0x83, 0xe5, 0x5B, 0x57, 0xAF, 0x9F}, - "BNC ", - 12}, - {{0xef, 0x51, 0xc9, 0x37, 0x7f, 0xeb, 0x29, 0x85, 0x6e, 0x61, - 0x62, 0x5c, 0xaf, 0x93, 0x90, 0xbd, 0x0b, 0x67, 0xea, 0x18}, - "BNC ", - 8}, - {{0xdA, 0x2C, 0x42, 0x4F, 0xc9, 0x8c, 0x74, 0x1c, 0x2d, 0x4e, - 0xf2, 0xf4, 0x28, 0x97, 0xCE, 0xfe, 0xd8, 0x97, 0xCA, 0x75}, - "BNFT ", - 9}, - {{0xda, 0x80, 0xb2, 0x00, 0x38, 0xbd, 0xf9, 0x68, 0xc7, 0x30, - 0x7b, 0xb5, 0x90, 0x7a, 0x46, 0x94, 0x82, 0xcf, 0x62, 0x51}, - "BNN ", - 8}, - {{0x1F, 0x57, 0x3D, 0x6F, 0xb3, 0xF1, 0x3d, 0x68, 0x9F, 0xF8, - 0x44, 0xB4, 0xcE, 0x37, 0x79, 0x4d, 0x79, 0xa7, 0xFF, 0x1C}, - "BNT ", - 18}, - {{0xd2, 0xd6, 0x15, 0x86, 0x83, 0xae, 0xe4, 0xcc, 0x83, 0x80, - 0x67, 0x72, 0x72, 0x09, 0xa0, 0xaa, 0xf4, 0x35, 0x9d, 0xe3}, - "BNTY ", - 18}, - {{0xDF, 0x34, 0x79, 0x11, 0x91, 0x0b, 0x6c, 0x9A, 0x42, 0x86, - 0xbA, 0x8E, 0x2E, 0xE5, 0xea, 0x4a, 0x39, 0xeB, 0x21, 0x34}, - "BOB ", - 18}, - {{0xCc, 0x34, 0x36, 0x6E, 0x38, 0x42, 0xcA, 0x1B, 0xD3, 0x6c, - 0x1f, 0x32, 0x4d, 0x15, 0x25, 0x79, 0x60, 0xfC, 0xC8, 0x01}, - "BON ", - 18}, - {{0x7f, 0x1e, 0x2c, 0x7d, 0x6a, 0x69, 0xbf, 0x34, 0x82, 0x4d, - 0x72, 0xc5, 0x3b, 0x45, 0x50, 0xe8, 0x95, 0xc0, 0xd8, 0xc2}, - "BOP ", - 8}, - {{0xC2, 0xC6, 0x3F, 0x23, 0xec, 0x5E, 0x97, 0xef, 0xbD, 0x75, - 0x65, 0xdF, 0x9E, 0xc7, 0x64, 0xFD, 0xc7, 0xd4, 0xe9, 0x1d}, - "BOU ", - 18}, - {{0x13, 0x9d, 0x93, 0x97, 0x27, 0x4b, 0xb9, 0xe2, 0xc2, 0x9a, - 0x9a, 0xa8, 0xaa, 0x0b, 0x58, 0x74, 0xd3, 0x0d, 0x62, 0xe3}, - "BOUTS ", - 18}, - {{0x63, 0xf5, 0x84, 0xfa, 0x56, 0xe6, 0x0e, 0x4d, 0x0f, 0xe8, - 0x80, 0x2b, 0x27, 0xc7, 0xe6, 0xe3, 0xb3, 0x3e, 0x00, 0x7f}, - "BOX ", - 18}, - {{0xe1, 0xA1, 0x78, 0xB6, 0x81, 0xBD, 0x05, 0x96, 0x4d, 0x3e, - 0x3E, 0xd3, 0x3A, 0xE7, 0x31, 0x57, 0x7d, 0x9d, 0x96, 0xdD}, - "BOX ", - 18}, - {{0x78, 0x01, 0x16, 0xd9, 0x1e, 0x55, 0x92, 0xe5, 0x8a, 0x3b, - 0x3c, 0x76, 0xa3, 0x51, 0x57, 0x1b, 0x39, 0xab, 0xce, 0xc6}, - "BOXX ", - 15}, - {{0x32, 0x76, 0x82, 0x77, 0x9b, 0xAB, 0x2B, 0xF4, 0xd1, 0x33, - 0x7e, 0x89, 0x74, 0xab, 0x9d, 0xE8, 0x27, 0x5A, 0x7C, 0xa8}, - "BPT ", - 18}, - {{0x9E, 0x77, 0xD5, 0xa1, 0x25, 0x1b, 0x6F, 0x7D, 0x45, 0x67, - 0x22, 0xA6, 0xea, 0xC6, 0xD2, 0xd5, 0x98, 0x0b, 0xd8, 0x91}, - "BRAT ", - 8}, - {{0x55, 0x8e, 0xc3, 0x15, 0x2e, 0x2e, 0xb2, 0x17, 0x49, 0x05, - 0xcd, 0x19, 0xae, 0xa4, 0xe3, 0x4a, 0x23, 0xde, 0x9a, 0xd6}, - "BRD ", - 18}, - {{0xf2, 0x6e, 0xf5, 0xe0, 0x54, 0x53, 0x84, 0xb7, 0xdc, 0xc0, - 0xf2, 0x97, 0xf2, 0x67, 0x41, 0x89, 0x58, 0x68, 0x30, 0xdf}, - "BSDC ", - 18}, - {{0x50, 0x9A, 0x38, 0xb7, 0xa1, 0xcC, 0x0d, 0xcd, 0x83, 0xAa, - 0x9d, 0x06, 0x21, 0x46, 0x63, 0xD9, 0xeC, 0x7c, 0x7F, 0x4a}, - "BST ", - 18}, - {{0x02, 0x72, 0x58, 0x36, 0xeb, 0xf3, 0xec, 0xdb, 0x1c, 0xdf, - 0x1c, 0x7b, 0x02, 0xfc, 0xbb, 0xfa, 0xa2, 0x73, 0x6a, 0xf8}, - "BTCA ", - 8}, - {{0x08, 0x86, 0x94, 0x9c, 0x1b, 0x8C, 0x41, 0x28, 0x60, 0xc4, - 0x26, 0x4C, 0xeb, 0x80, 0x83, 0xd1, 0x36, 0x5e, 0x86, 0xCF}, - "BTCE ", - 8}, - {{0x5a, 0xcD, 0x19, 0xb9, 0xc9, 0x1e, 0x59, 0x6b, 0x1f, 0x06, - 0x2f, 0x18, 0xe3, 0xD0, 0x2d, 0xa7, 0xeD, 0x8D, 0x1e, 0x50}, - "BTCL ", - 8}, - {{0x87, 0xf5, 0xe8, 0xc3, 0x42, 0x52, 0x18, 0x83, 0x7f, 0x3c, - 0xb6, 0x7d, 0xb9, 0x41, 0xaf, 0x0c, 0x01, 0x32, 0x3e, 0x56}, - "BTCONE ", - 18}, - {{0x6a, 0xac, 0x8c, 0xb9, 0x86, 0x1e, 0x42, 0xbf, 0x82, 0x59, - 0xf5, 0xab, 0xdc, 0x6a, 0xe3, 0xae, 0x89, 0x90, 0x9e, 0x11}, - "BTCR ", - 8}, - {{0x73, 0xdd, 0x06, 0x9c, 0x29, 0x9a, 0x5d, 0x69, 0x1e, 0x98, - 0x36, 0x24, 0x3b, 0xca, 0xec, 0x9c, 0x8c, 0x1d, 0x87, 0x34}, - "BTE ", - 8}, - {{0xfa, 0xd5, 0x72, 0xdb, 0x56, 0x6e, 0x52, 0x34, 0xac, 0x9f, - 0xc3, 0xd5, 0x70, 0xc4, 0xed, 0xc0, 0x05, 0x0e, 0xaa, 0x92}, - "BTH ", - 18}, - {{0xdb, 0x86, 0x46, 0xf5, 0xb4, 0x87, 0xb5, 0xdd, 0x97, 0x9f, - 0xac, 0x61, 0x83, 0x50, 0xe8, 0x50, 0x18, 0xf5, 0x57, 0xd4}, - "BTK ", - 18}, - {{0x2a, 0xcc, 0xaB, 0x9c, 0xb7, 0xa4, 0x8c, 0x3E, 0x82, 0x28, - 0x6F, 0x0b, 0x2f, 0x87, 0x98, 0xD2, 0x01, 0xF4, 0xeC, 0x3f}, - "Battle ", - 18}, - {{0x92, 0x68, 0x5E, 0x93, 0x95, 0x65, 0x37, 0xc2, 0x5B, 0xb7, - 0x5D, 0x5d, 0x47, 0xfc, 0xa4, 0x26, 0x6d, 0xd6, 0x28, 0xB8}, - "Bitlle ", - 4}, - {{0xcb, 0x97, 0xe6, 0x5f, 0x07, 0xda, 0x24, 0xd4, 0x6b, 0xcd, - 0xd0, 0x78, 0xeb, 0xeb, 0xd7, 0xc6, 0xe6, 0xe3, 0xd7, 0x50}, - "BTM ", - 8}, - {{0x36, 0x90, 0x5f, 0xc9, 0x32, 0x80, 0xf5, 0x23, 0x62, 0xa1, - 0xcb, 0xab, 0x15, 0x1f, 0x25, 0xdc, 0x46, 0x74, 0x2f, 0xb5}, - "BTO ", - 18}, - {{0x16, 0xB0, 0xE6, 0x2a, 0xC1, 0x3a, 0x2f, 0xAe, 0xD3, 0x6D, - 0x18, 0xbc, 0xe2, 0x35, 0x6d, 0x25, 0xAb, 0x3C, 0xfA, 0xD3}, - "BTQ ", - 18}, - {{0x49, 0x9a, 0x6b, 0x77, 0xbc, 0x25, 0xc2, 0x6b, 0xcf, 0x82, - 0x65, 0xe2, 0x10, 0x2b, 0x1b, 0x3d, 0xd1, 0x61, 0x70, 0x24}, - "BTR ", - 18}, - {{0x03, 0xc7, 0x80, 0xcd, 0x55, 0x45, 0x98, 0x59, 0x2b, 0x97, - 0xb7, 0x25, 0x6d, 0xda, 0xad, 0x75, 0x99, 0x45, 0xb1, 0x25}, - "BTRN ", - 18}, - {{0x08, 0x0a, 0xa0, 0x7e, 0x2c, 0x71, 0x85, 0x15, 0x0d, 0x7e, - 0x4d, 0xa9, 0x88, 0x38, 0xa8, 0xd2, 0xfe, 0xac, 0x3d, 0xfc}, - "Bit eth ", - 0}, - {{0xFA, 0x45, 0x6C, 0xf5, 0x52, 0x50, 0xA8, 0x39, 0x08, 0x8b, - 0x27, 0xEE, 0x32, 0xA4, 0x24, 0xd7, 0xDA, 0xcB, 0x54, 0xFf}, - "BlkTrade ", - 18}, - {{0xb6, 0x83, 0xD8, 0x3a, 0x53, 0x2e, 0x2C, 0xb7, 0xDF, 0xa5, - 0x27, 0x5e, 0xED, 0x36, 0x98, 0x43, 0x63, 0x71, 0xcc, 0x9f}, - "BTU ", - 18}, - {{0xE5, 0xf8, 0x67, 0xdE, 0x1E, 0xA8, 0x13, 0x46, 0xdf, 0x51, - 0x81, 0xb8, 0xb4, 0x8D, 0xD6, 0xB0, 0xBB, 0x33, 0x57, 0xB0}, - "BTZ ", - 18}, - {{0xca, 0x3c, 0x18, 0xa6, 0x5b, 0x80, 0x2e, 0xc2, 0x67, 0xf8, - 0xf4, 0x80, 0x25, 0x45, 0xe7, 0xf5, 0x3d, 0x24, 0xc7, 0x5e}, - "BUC ", - 18}, - {{0xbd, 0x16, 0x8c, 0xbf, 0x9d, 0x3a, 0x37, 0x5b, 0x38, 0xdc, - 0x51, 0xa2, 0x02, 0xb5, 0xe8, 0xa4, 0xe5, 0x20, 0x69, 0xed}, - "BWX ", - 18}, - {{0x43, 0x75, 0xe7, 0xad, 0x8a, 0x01, 0xb8, 0xec, 0x3e, 0xd0, - 0x41, 0x39, 0x9f, 0x62, 0xd9, 0xcd, 0x12, 0x0e, 0x00, 0x63}, - "BZ ", - 18}, - {{0xe1, 0xae, 0xe9, 0x84, 0x95, 0x36, 0x5f, 0xc1, 0x79, 0x69, - 0x9c, 0x1b, 0xb3, 0xe7, 0x61, 0xfa, 0x71, 0x6b, 0xee, 0x62}, - "BZNT ", - 18}, - {{0x38, 0x39, 0xd8, 0xba, 0x31, 0x27, 0x51, 0xaa, 0x02, 0x48, - 0xfe, 0xd6, 0xa8, 0xba, 0xcb, 0x84, 0x30, 0x8e, 0x20, 0xed}, - "Bez ", - 18}, - {{0x26, 0xE7, 0x53, 0x07, 0xFc, 0x0C, 0x02, 0x14, 0x72, 0xfE, - 0xb8, 0xF7, 0x27, 0x83, 0x95, 0x31, 0xF1, 0x12, 0xf3, 0x17}, - "C20 ", - 18}, - {{0xd4, 0x2d, 0xeb, 0xE4, 0xeD, 0xc9, 0x2B, 0xd5, 0xa3, 0xFB, - 0xb4, 0x24, 0x3e, 0x1e, 0xcC, 0xf6, 0xd6, 0x3A, 0x4A, 0x5d}, - "C8 ", - 18}, - {{0x7d, 0x4b, 0x8C, 0xce, 0x05, 0x91, 0xC9, 0x04, 0x4a, 0x22, - 0xee, 0x54, 0x35, 0x33, 0xb7, 0x2E, 0x97, 0x6E, 0x36, 0xC3}, - "CAG ", - 18}, - {{0x1d, 0x46, 0x24, 0x14, 0xfe, 0x14, 0xcf, 0x48, 0x9c, 0x7A, - 0x21, 0xCa, 0xC7, 0x85, 0x09, 0xf4, 0xbF, 0x8C, 0xD7, 0xc0}, - "CAN ", - 6}, - {{0x04, 0xf2, 0xe7, 0x22, 0x1f, 0xdb, 0x1b, 0x52, 0xa6, 0x81, - 0x69, 0xb2, 0x57, 0x93, 0xe5, 0x14, 0x78, 0xff, 0x03, 0x29}, - "CAPP ", - 2}, - {{0x42, 0x3e, 0x43, 0x22, 0xcd, 0xda, 0x29, 0x15, 0x6b, 0x49, - 0xa1, 0x7d, 0xfb, 0xd2, 0xac, 0xc4, 0xb2, 0x80, 0x60, 0x0d}, - "CAR ", - 9}, - {{0x4d, 0x9e, 0x23, 0xa3, 0x84, 0x2f, 0xe7, 0xeb, 0x76, 0x82, - 0xb9, 0x72, 0x5c, 0xf6, 0xc5, 0x07, 0xc4, 0x24, 0xa4, 0x1b}, - "Carblock ", - 18}, - {{0xa5, 0x17, 0xa4, 0x6b, 0xaa, 0xd6, 0xb0, 0x54, 0xa7, 0x6b, - 0xd1, 0x9c, 0x46, 0x84, 0x4f, 0x71, 0x7f, 0xe6, 0x9f, 0xea}, - "CARB ", - 8}, - {{0x95, 0x4b, 0x89, 0x07, 0x04, 0x69, 0x3a, 0xf2, 0x42, 0x61, - 0x3e, 0xde, 0xf1, 0xb6, 0x03, 0x82, 0x5a, 0xfc, 0xd7, 0x08}, - "CARD ", - 18}, - {{0xbf, 0x18, 0xf2, 0x46, 0xb9, 0x30, 0x1f, 0x23, 0x1e, 0x95, - 0x61, 0xb3, 0x5a, 0x38, 0x79, 0x76, 0x9b, 0xb4, 0x63, 0x75}, - "CARE ", - 18}, - {{0xe8, 0x78, 0x0B, 0x48, 0xbd, 0xb0, 0x5F, 0x92, 0x86, 0x97, - 0xA5, 0xe8, 0x15, 0x5f, 0x67, 0x2E, 0xD9, 0x14, 0x62, 0xF7}, - "CAS ", - 18}, - {{0x12, 0x34, 0x56, 0x74, 0x61, 0xd3, 0xf8, 0xdb, 0x74, 0x96, - 0x58, 0x17, 0x74, 0xbd, 0x86, 0x9c, 0x83, 0xd5, 0x1c, 0x93}, - "BitClv ", - 18}, - {{0x56, 0xba, 0x2E, 0xe7, 0x89, 0x04, 0x61, 0xf4, 0x63, 0xF7, - 0xbe, 0x02, 0xaA, 0xC3, 0x09, 0x9f, 0x6d, 0x58, 0x11, 0xA8}, - "Blockcat ", - 18}, - {{0x68, 0xe1, 0x4b, 0xb5, 0xA4, 0x5B, 0x96, 0x81, 0x32, 0x7E, - 0x16, 0xE5, 0x28, 0x08, 0x4B, 0x9d, 0x96, 0x2C, 0x1a, 0x39}, - "BitClvs2 ", - 18}, - {{0x26, 0xdb, 0x54, 0x39, 0xf6, 0x51, 0xca, 0xf4, 0x91, 0xa8, - 0x7d, 0x48, 0x79, 0x9d, 0xa8, 0x1f, 0x19, 0x1b, 0xdb, 0x6b}, - "CBC ", - 8}, - {{0x95, 0xef, 0xd1, 0xfe, 0x60, 0x99, 0xf6, 0x5a, 0x7e, 0xd5, - 0x24, 0xde, 0xf4, 0x87, 0x48, 0x32, 0x21, 0x09, 0x49, 0x47}, - "CBM ", - 18}, - {{0x07, 0x6C, 0x97, 0xe1, 0xc8, 0x69, 0x07, 0x2e, 0xE2, 0x2f, - 0x8c, 0x91, 0x97, 0x8C, 0x99, 0xB4, 0xbc, 0xB0, 0x25, 0x91}, - "CBT ", - 18}, - {{0xc1, 0x66, 0x03, 0x87, 0x05, 0xFF, 0xBA, 0xb3, 0x79, 0x41, - 0x85, 0xb3, 0xa9, 0xD9, 0x25, 0x63, 0x2A, 0x1D, 0xF3, 0x7D}, - "CC3 ", - 18}, - {{0x28, 0x57, 0x7A, 0x6d, 0x31, 0x55, 0x9b, 0xd2, 0x65, 0xCe, - 0x3A, 0xDB, 0x62, 0xd0, 0x45, 0x85, 0x50, 0xF7, 0xb8, 0xa7}, - "CrashCs ", - 18}, - {{0xbe, 0x11, 0xee, 0xb1, 0x86, 0xe6, 0x24, 0xb8, 0xf2, 0x6a, - 0x50, 0x45, 0x57, 0x5a, 0x13, 0x40, 0xe4, 0x05, 0x45, 0x52}, - "CCC ico ", - 18}, - {{0x37, 0x89, 0x03, 0xa0, 0x3f, 0xb2, 0xc3, 0xac, 0x76, 0xbb, - 0x52, 0x77, 0x3e, 0x3c, 0xe1, 0x13, 0x40, 0x37, 0x7a, 0x32}, - "CCCX ", - 18}, - {{0xd3, 0x48, 0xe0, 0x7a, 0x28, 0x06, 0x50, 0x5b, 0x85, 0x61, - 0x23, 0x04, 0x5d, 0x27, 0xae, 0xed, 0x90, 0x92, 0x4b, 0x50}, - "CCLC ", - 8}, - {{0x67, 0x9b, 0xad, 0xc5, 0x51, 0x62, 0x6e, 0x01, 0xb2, 0x3c, - 0xee, 0xce, 0xfb, 0xc9, 0xb8, 0x77, 0xea, 0x18, 0xfc, 0x46}, - "CCO ", - 18}, - {{0x31, 0x5c, 0xe5, 0x9f, 0xaf, 0xd3, 0xa8, 0xd5, 0x62, 0xb7, - 0xec, 0x1c, 0x85, 0x42, 0x38, 0x2d, 0x27, 0x10, 0xb0, 0x6c}, - "CCS ", - 18}, - {{0x33, 0x6f, 0x64, 0x6f, 0x87, 0xd9, 0xf6, 0xbc, 0x6e, 0xd4, - 0x2d, 0xd4, 0x6e, 0x8b, 0x3f, 0xd9, 0xdb, 0xd1, 0x5c, 0x22}, - "CCT ", - 18}, - {{0x8a, 0x95, 0xca, 0x44, 0x8A, 0x52, 0xC0, 0xAD, 0xf0, 0x05, - 0x4b, 0xB3, 0x40, 0x2d, 0xC5, 0xe0, 0x9C, 0xD6, 0xB2, 0x32}, - "CDL ", - 18}, - {{0x17, 0x7d, 0x39, 0xAC, 0x67, 0x6E, 0xD1, 0xC6, 0x7A, 0x2b, - 0x26, 0x8A, 0xD7, 0xF1, 0xE5, 0x88, 0x26, 0xE5, 0xB0, 0xaf}, - "CDT ", - 18}, - {{0x2c, 0xb1, 0x01, 0xd7, 0xda, 0x0e, 0xba, 0xa5, 0x7d, 0x3f, - 0x2f, 0xef, 0x46, 0xd7, 0xff, 0xb7, 0xbb, 0x64, 0x59, 0x2b}, - "CDX C$X ", - 0}, - {{0x6f, 0xFF, 0x38, 0x06, 0xBb, 0xac, 0x52, 0xA2, 0x0e, 0x0d, - 0x79, 0xBC, 0x53, 0x8d, 0x52, 0x7f, 0x6a, 0x22, 0xc9, 0x6b}, - "CDX Net ", - 18}, - {{0xb0, 0x56, 0xc3, 0x8f, 0x6b, 0x7d, 0xc4, 0x06, 0x43, 0x67, - 0x40, 0x3e, 0x26, 0x42, 0x4c, 0xd2, 0xc6, 0x06, 0x55, 0xe1}, - "CEEK ", - 18}, - {{0x11, 0x22, 0xb6, 0xa0, 0xe0, 0x0d, 0xce, 0x05, 0x63, 0x08, - 0x2b, 0x6e, 0x29, 0x53, 0xf3, 0xa9, 0x43, 0x85, 0x5c, 0x1f}, - "CENNZ ", - 18}, - {{0xf6, 0x60, 0xca, 0x1e, 0x22, 0x8e, 0x7b, 0xe1, 0xfa, 0x8b, - 0x4f, 0x55, 0x83, 0x14, 0x5e, 0x31, 0x14, 0x7f, 0xb5, 0x77}, - "CET ", - 18}, - {{0x5d, 0xff, 0x89, 0xa2, 0xca, 0xa4, 0xd7, 0x6b, 0xc2, 0x86, - 0xf7, 0x4d, 0x67, 0xbd, 0x71, 0x8e, 0xb8, 0x34, 0xda, 0x61}, - "CFC ", - 18}, - {{0x12, 0xFE, 0xF5, 0xe5, 0x7b, 0xF4, 0x58, 0x73, 0xCd, 0x9B, - 0x62, 0xE9, 0xDB, 0xd7, 0xBF, 0xb9, 0x9e, 0x32, 0xD7, 0x3e}, - "CFI ", - 18}, - {{0x69, 0x56, 0x98, 0x3f, 0x8b, 0x3c, 0xe1, 0x73, 0xb4, 0xab, - 0x84, 0x36, 0x1a, 0xa0, 0xad, 0x52, 0xf3, 0x8d, 0x93, 0x6f}, - "CFTY ", - 8}, - {{0xf3, 0xdb, 0x75, 0x60, 0xe8, 0x20, 0x83, 0x46, 0x58, 0xb5, - 0x90, 0xc9, 0x62, 0x34, 0xc3, 0x33, 0xcd, 0x3d, 0x5e, 0x5e}, - "CHP ", - 18}, - {{0xba, 0x9d, 0x41, 0x99, 0xfa, 0xb4, 0xf2, 0x6e, 0xfe, 0x35, - 0x51, 0xd4, 0x90, 0xe3, 0x82, 0x14, 0x86, 0xf1, 0x35, 0xba}, - "CHSB ", - 8}, - {{0x14, 0x60, 0xa5, 0x80, 0x96, 0xd8, 0x0a, 0x50, 0xa2, 0xf1, - 0xf9, 0x56, 0xdd, 0xa4, 0x97, 0x61, 0x1f, 0xa4, 0xf1, 0x65}, - "CHX ", - 18}, - {{0x3a, 0xbd, 0xff, 0x32, 0xf7, 0x6b, 0x42, 0xe7, 0x63, 0x5b, - 0xdb, 0x7e, 0x42, 0x5f, 0x02, 0x31, 0xa5, 0xf3, 0xab, 0x17}, - "CJT ", - 18}, - {{0x06, 0x01, 0x2c, 0x8c, 0xf9, 0x7b, 0xea, 0xd5, 0xde, 0xae, - 0x23, 0x70, 0x70, 0xf9, 0x58, 0x7f, 0x8e, 0x7a, 0x26, 0x6d}, - "CK ", - 0}, - {{0xe8, 0x1d, 0x72, 0xd1, 0x4b, 0x15, 0x16, 0xe6, 0x8a, 0xc3, - 0x19, 0x0a, 0x46, 0xc9, 0x33, 0x02, 0xcc, 0x8e, 0xd6, 0x0f}, - "CL ", - 18}, - {{0xb1, 0xc1, 0xcb, 0x8c, 0x7c, 0x19, 0x92, 0xdb, 0xa2, 0x4e, - 0x62, 0x8b, 0xf7, 0xd3, 0x8e, 0x71, 0xda, 0xd4, 0x6a, 0xeb}, - "CLB ", - 18}, - {{0x3d, 0xc9, 0xa4, 0x2f, 0xa7, 0xaf, 0xe5, 0x7b, 0xe0, 0x3c, - 0x58, 0xfd, 0x7f, 0x44, 0x11, 0xb1, 0xe4, 0x66, 0xc5, 0x08}, - "CLL ", - 18}, - {{0x41, 0x62, 0x17, 0x8B, 0x78, 0xD6, 0x98, 0x54, 0x80, 0xA3, - 0x08, 0xB2, 0x19, 0x0E, 0xE5, 0x51, 0x74, 0x60, 0x40, 0x6D}, - "CLN ", - 18}, - {{0x7f, 0xce, 0x28, 0x56, 0x89, 0x9a, 0x68, 0x06, 0xee, 0xef, - 0x70, 0x80, 0x79, 0x85, 0xfc, 0x75, 0x54, 0xc6, 0x63, 0x40}, - "CLP ", - 9}, - {{0x3e, 0xdd, 0x23, 0x5c, 0x3e, 0x84, 0x0c, 0x1f, 0x29, 0x28, - 0x6b, 0x2e, 0x39, 0x37, 0x0a, 0x25, 0x5c, 0x7b, 0x6f, 0xdb}, - "CMBT ", - 8}, - {{0x7e, 0x66, 0x75, 0x25, 0x52, 0x1c, 0xF6, 0x13, 0x52, 0xe2, - 0xE0, 0x1b, 0x50, 0xFa, 0xaa, 0xE7, 0xDf, 0x39, 0x74, 0x9a}, - "CMC ", - 18}, - {{0x47, 0xbc, 0x01, 0x59, 0x77, 0x98, 0xdc, 0xd7, 0x50, 0x6d, - 0xcc, 0xa3, 0x6a, 0xc4, 0x30, 0x2f, 0xc9, 0x3a, 0x8c, 0xfb}, - "CMCT ", - 8}, - {{0xf8, 0x5f, 0xEe, 0xa2, 0xFd, 0xD8, 0x1d, 0x51, 0x17, 0x7F, - 0x6b, 0x8F, 0x35, 0xF0, 0xe6, 0x73, 0x4C, 0xe4, 0x5F, 0x5F}, - "CMT ", - 18}, - {{0xEB, 0xf2, 0xF9, 0xE8, 0xDe, 0x96, 0x0f, 0x64, 0xec, 0x0f, - 0xDC, 0xDa, 0x6C, 0xb2, 0x82, 0x42, 0x31, 0x33, 0x34, 0x7B}, - "CNB ", - 8}, - {{0xd4, 0xc4, 0x35, 0xf5, 0xb0, 0x9f, 0x85, 0x5c, 0x33, 0x17, - 0xc8, 0x52, 0x4c, 0xb1, 0xf5, 0x86, 0xe4, 0x27, 0x95, 0xfa}, - "CND ", - 18}, - {{0x87, 0x13, 0xd2, 0x66, 0x37, 0xcf, 0x49, 0xe1, 0xb6, 0xb4, - 0xa7, 0xce, 0x57, 0x10, 0x6a, 0xab, 0xc9, 0x32, 0x53, 0x43}, - "CNN ", - 18}, - {{0xB4, 0xb1, 0xD2, 0xC2, 0x17, 0xEC, 0x07, 0x76, 0x58, 0x4C, - 0xE0, 0x8D, 0x3D, 0xD9, 0x8F, 0x90, 0xED, 0xed, 0xA4, 0x4b}, - "CO2 ", - 18}, - {{0x57, 0x4b, 0x36, 0xbc, 0xed, 0x44, 0x33, 0x38, 0x87, 0x5d, - 0x17, 0x1c, 0xc3, 0x77, 0xe6, 0x91, 0xf7, 0xd4, 0xf8, 0x87}, - "CO2Bit ", - 18}, - {{0xb2, 0xf7, 0xeb, 0x1f, 0x2c, 0x37, 0x64, 0x5b, 0xe6, 0x1d, - 0x73, 0x95, 0x30, 0x35, 0x36, 0x0e, 0x76, 0x8d, 0x81, 0xe6}, - "COB ", - 18}, - {{0x31, 0x36, 0xeF, 0x85, 0x15, 0x92, 0xaC, 0xf4, 0x9C, 0xA4, - 0xC8, 0x25, 0x13, 0x1E, 0x36, 0x41, 0x70, 0xFA, 0x32, 0xb3}, - "COFI ", - 18}, - {{0x0c, 0x91, 0xb0, 0x15, 0xab, 0xa6, 0xf7, 0xb4, 0x73, 0x8d, - 0xcd, 0x36, 0xe7, 0x41, 0x01, 0x38, 0xb2, 0x9a, 0xdc, 0x29}, - "COIL ", - 8}, - {{0xeb, 0x54, 0x7e, 0xd1, 0xd8, 0xa3, 0xff, 0x14, 0x61, 0xab, - 0xaa, 0x7f, 0x00, 0x22, 0xfe, 0xd4, 0x83, 0x6e, 0x00, 0xa4}, - "COIN ", - 18}, - {{0xc4, 0xbc, 0xd6, 0x4c, 0xb2, 0x16, 0xd4, 0x9f, 0xd3, 0xc6, - 0x43, 0xa3, 0x27, 0x62, 0xf3, 0x46, 0x26, 0xb4, 0x5a, 0x1a}, - "COSM ", - 18}, - {{0x65, 0x29, 0x2e, 0xea, 0xdf, 0x14, 0x26, 0xcd, 0x2d, 0xf1, - 0xc4, 0x79, 0x3a, 0x3d, 0x75, 0x19, 0xf2, 0x53, 0x91, 0x3b}, - "COSS ", - 18}, - {{0x9e, 0x96, 0x60, 0x44, 0x45, 0xec, 0x19, 0xff, 0xed, 0x9a, - 0x5e, 0x8d, 0xd7, 0xb5, 0x0a, 0x29, 0xc8, 0x99, 0xa1, 0x0c}, - "COSS.io ", - 18}, - {{0xE2, 0xFB, 0x65, 0x29, 0xEF, 0x56, 0x6a, 0x08, 0x0e, 0x6d, - 0x23, 0xdE, 0x0b, 0xd3, 0x51, 0x31, 0x10, 0x87, 0xD5, 0x67}, - "COV ", - 18}, - {{0x0E, 0xbb, 0x61, 0x42, 0x04, 0xE4, 0x7c, 0x09, 0xB6, 0xC3, - 0xFe, 0xB9, 0xAA, 0xeC, 0xad, 0x8E, 0xE0, 0x60, 0xE2, 0x3E}, - "CPAY ", - 0}, - {{0xfA, 0xE4, 0xEe, 0x59, 0xCD, 0xd8, 0x6e, 0x3B, 0xe9, 0xe8, - 0xb9, 0x0b, 0x53, 0xAA, 0x86, 0x63, 0x27, 0xD7, 0xc0, 0x90}, - "CPC ", - 18}, - {{0xb7, 0x87, 0xd4, 0xea, 0xc8, 0x89, 0x97, 0x30, 0xbb, 0x8c, - 0x57, 0xfc, 0x3c, 0x99, 0x8c, 0x49, 0xc5, 0x24, 0x4e, 0xc0}, - "CPEX ", - 8}, - {{0x70, 0x64, 0xaA, 0xb3, 0x9A, 0x0F, 0xcf, 0x72, 0x21, 0xc3, - 0x39, 0x67, 0x19, 0xD0, 0x91, 0x7a, 0x65, 0xE3, 0x55, 0x15}, - "CPOLLO ", - 18}, - {{0x88, 0xd5, 0x0b, 0x46, 0x6b, 0xe5, 0x52, 0x22, 0x01, 0x9d, - 0x71, 0xf9, 0xe8, 0xfa, 0xe1, 0x7f, 0x5f, 0x45, 0xfc, 0xa1}, - "CPT ", - 8}, - {{0xf4, 0x47, 0x45, 0xfb, 0xd4, 0x1f, 0x6a, 0x1b, 0xa1, 0x51, - 0xdf, 0x19, 0x0d, 0xb0, 0x56, 0x4c, 0x5f, 0xcc, 0x44, 0x10}, - "CPY ", - 18}, - {{0x7f, 0x58, 0x5b, 0x91, 0x30, 0xc6, 0x4e, 0x9e, 0x9f, 0x47, - 0x0b, 0x61, 0x8a, 0x7b, 0xad, 0xd0, 0x3d, 0x79, 0xca, 0x7e}, - "CR7 ", - 18}, - {{0xAe, 0xf3, 0x8f, 0xBF, 0xBF, 0x93, 0x2D, 0x1A, 0xeF, 0x3B, - 0x80, 0x8B, 0xc8, 0xfB, 0xd8, 0xCd, 0x8E, 0x1f, 0x8B, 0xC5}, - "CRB ", - 8}, - {{0x2c, 0xf6, 0x18, 0xc1, 0x90, 0x41, 0xd9, 0xdb, 0x33, 0x0d, - 0x82, 0x22, 0xb8, 0x60, 0xa6, 0x24, 0x02, 0x1f, 0x30, 0xfb}, - "CRBT ", - 18}, - {{0xf4, 0x1e, 0x5f, 0xbc, 0x2f, 0x6a, 0xac, 0x20, 0x0d, 0xd8, - 0x61, 0x9e, 0x12, 0x1c, 0xe1, 0xf0, 0x5d, 0x15, 0x00, 0x77}, - "CRC ", - 18}, - {{0x67, 0x2a, 0x1A, 0xD4, 0xf6, 0x67, 0xFB, 0x18, 0xA3, 0x33, - 0xAf, 0x13, 0x66, 0x7a, 0xa0, 0xAf, 0x1F, 0x5b, 0x5b, 0xDD}, - "CRED ", - 18}, - {{0x4e, 0x06, 0x03, 0xe2, 0xa2, 0x7a, 0x30, 0x48, 0x0e, 0x5e, - 0x3a, 0x4f, 0xe5, 0x48, 0xe2, 0x9e, 0xf1, 0x2f, 0x64, 0xbe}, - "CREDO ", - 18}, - {{0xf4, 0x9c, 0xdd, 0x50, 0xad, 0x40, 0x8d, 0x38, 0x7d, 0x61, - 0x1f, 0x88, 0xa6, 0x47, 0x17, 0x9c, 0x3d, 0xe3, 0x49, 0x2b}, - "CRGO ", - 18}, - {{0x92, 0x38, 0xbf, 0xb7, 0x81, 0xa5, 0x5e, 0xac, 0xc3, 0xcf, - 0x05, 0xf7, 0xdf, 0x94, 0x03, 0x8c, 0x19, 0x8c, 0xd9, 0xb9}, - "CRMT ", - 8}, - {{0x80, 0xa7, 0xe0, 0x48, 0xf3, 0x7a, 0x50, 0x50, 0x03, 0x51, - 0xc2, 0x04, 0xcb, 0x40, 0x77, 0x66, 0xfa, 0x3b, 0xae, 0x7f}, - "CRPT ", - 18}, - {{0xF0, 0xda, 0x11, 0x86, 0xa4, 0x97, 0x72, 0x26, 0xb9, 0x13, - 0x5d, 0x06, 0x13, 0xee, 0x72, 0xe2, 0x29, 0xEC, 0x3F, 0x4d}, - "CRT ", - 18}, - {{0x46, 0xb9, 0xad, 0x94, 0x4d, 0x10, 0x59, 0x45, 0x0d, 0xa1, - 0x16, 0x35, 0x11, 0x06, 0x9c, 0x71, 0x8f, 0x69, 0x9d, 0x31}, - "CS ", - 6}, - {{0x29, 0xd7, 0x52, 0x77, 0xac, 0x7f, 0x03, 0x35, 0xb2, 0x16, - 0x5d, 0x08, 0x95, 0xe8, 0x72, 0x5c, 0xbf, 0x65, 0x8d, 0x73}, - "CSNO ", - 8}, - {{0xbb, 0x49, 0xa5, 0x1e, 0xe5, 0xa6, 0x6c, 0xa3, 0xa8, 0xcb, - 0xe5, 0x29, 0x37, 0x9b, 0xa4, 0x4b, 0xa6, 0x7e, 0x67, 0x71}, - "CST ", - 18}, - {{0x45, 0x45, 0x75, 0x0F, 0x39, 0xaF, 0x6B, 0xe4, 0xF2, 0x37, - 0xB6, 0x86, 0x9D, 0x4E, 0xcc, 0xA9, 0x28, 0xFd, 0x5A, 0x85}, - "CTF ", - 18}, - {{0xc8, 0x7c, 0x5d, 0xd8, 0x6a, 0x3d, 0x56, 0x7f, 0xf2, 0x87, - 0x01, 0x88, 0x6f, 0xb0, 0x74, 0x5a, 0xaa, 0x89, 0x8d, 0xa4}, - "CTG ", - 18}, - {{0x9e, 0x7d, 0x29, 0xbd, 0x49, 0x9b, 0x6c, 0x7d, 0xa2, 0xa5, - 0xb2, 0xea, 0xfc, 0xf4, 0xa3, 0x9d, 0x3b, 0xd8, 0x45, 0xd1}, - "CTGC ", - 18}, - {{0xbf, 0x4c, 0xfd, 0x7d, 0x1e, 0xde, 0xee, 0xa5, 0xf6, 0x60, - 0x08, 0x27, 0x41, 0x1b, 0x41, 0xa2, 0x1e, 0xb0, 0x8a, 0xbd}, - "CTL ", - 2}, - {{0x96, 0xA6, 0x56, 0x09, 0xa7, 0xB8, 0x4E, 0x88, 0x42, 0x73, - 0x2D, 0xEB, 0x08, 0xf5, 0x6C, 0x3E, 0x21, 0xaC, 0x6f, 0x8a}, - "CTR ", - 18}, - {{0xE3, 0xFa, 0x17, 0x7A, 0xce, 0xcf, 0xB8, 0x67, 0x21, 0xCf, - 0x6f, 0x9f, 0x42, 0x06, 0xbd, 0x3B, 0xd6, 0x72, 0xD7, 0xd5}, - "CTT ", - 18}, - {{0x66, 0x2a, 0xBc, 0xAd, 0x0b, 0x7f, 0x34, 0x5A, 0xB7, 0xFf, - 0xB1, 0xb1, 0xfb, 0xb9, 0xDf, 0x78, 0x94, 0xf1, 0x8e, 0x66}, - "CTX ", - 18}, - {{0xea, 0x11, 0x75, 0x5a, 0xe4, 0x1d, 0x88, 0x9c, 0xee, 0xc3, - 0x9a, 0x63, 0xe6, 0xff, 0x75, 0xa0, 0x2b, 0xc1, 0xc0, 0x0d}, - "CTXC ", - 18}, - {{0xdA, 0x6c, 0xb5, 0x8A, 0x0D, 0x0C, 0x01, 0x61, 0x0a, 0x29, - 0xc5, 0xA6, 0x5c, 0x30, 0x3e, 0x13, 0xe8, 0x85, 0x88, 0x7C}, - "cV ", - 18}, - {{0x41, 0xe5, 0x56, 0x00, 0x54, 0x82, 0x4e, 0xa6, 0xb0, 0x73, - 0x2e, 0x65, 0x6e, 0x3a, 0xd6, 0x4e, 0x20, 0xe9, 0x4e, 0x45}, - "CVC ", - 8}, - {{0xbe, 0x42, 0x8c, 0x38, 0x67, 0xf0, 0x5d, 0xea, 0x2a, 0x89, - 0xfc, 0x76, 0xa1, 0x02, 0xb5, 0x44, 0xea, 0xc7, 0xf7, 0x72}, - "CVT ", - 18}, - {{0x21, 0x34, 0x05, 0x7c, 0x0b, 0x46, 0x1f, 0x89, 0x8d, 0x37, - 0x5c, 0xea, 0xd6, 0x52, 0xac, 0xae, 0x62, 0xb5, 0x95, 0x41}, - "CXC ", - 18}, - {{0xb6, 0xEE, 0x96, 0x68, 0x77, 0x1a, 0x79, 0xbe, 0x79, 0x67, - 0xee, 0x29, 0xa6, 0x3D, 0x41, 0x84, 0xF8, 0x09, 0x71, 0x43}, - "CXO ", - 18}, - {{0x3f, 0x06, 0xB5, 0xD7, 0x84, 0x06, 0xcD, 0x97, 0xbd, 0xf1, - 0x0f, 0x5C, 0x42, 0x0B, 0x24, 0x1D, 0x32, 0x75, 0x9c, 0x80}, - "CYFM ", - 18}, - {{0x78, 0xc2, 0x92, 0xd1, 0x44, 0x5e, 0x6b, 0x95, 0x58, 0xbf, - 0x42, 0xe8, 0xbc, 0x36, 0x92, 0x71, 0xde, 0xd0, 0x62, 0xea}, - "CYMT ", - 8}, - {{0x02, 0x23, 0xfc, 0x70, 0x57, 0x42, 0x14, 0xf6, 0x58, 0x13, - 0xfe, 0x33, 0x6d, 0x87, 0x0a, 0xc4, 0x7e, 0x14, 0x7f, 0xae}, - "CZR ", - 18}, - {{0xE4, 0xc9, 0x4d, 0x45, 0xf7, 0xAe, 0xf7, 0x01, 0x8a, 0x5D, - 0x66, 0xf4, 0x4a, 0xF7, 0x80, 0xec, 0x60, 0x23, 0x37, 0x8e}, - "CrCarbon ", - 6}, - {{0x05, 0xc3, 0x61, 0x7c, 0xbf, 0x13, 0x04, 0xb9, 0x26, 0x0a, - 0xa6, 0x1e, 0xc9, 0x60, 0xf1, 0x15, 0xd6, 0x7b, 0xec, 0xea}, - "Cubrix ", - 18}, - {{0xda, 0xb0, 0xC3, 0x1B, 0xF3, 0x4C, 0x89, 0x7F, 0xb0, 0xFe, - 0x90, 0xD1, 0x2E, 0xC9, 0x40, 0x1c, 0xaf, 0x5c, 0x36, 0xEc}, - "DAB ", - 0}, - {{0xa3, 0x11, 0x08, 0xe5, 0xba, 0xb5, 0x49, 0x45, 0x60, 0xdb, - 0x34, 0xc9, 0x54, 0x92, 0x65, 0x8a, 0xf2, 0x39, 0x35, 0x7c}, - "DACS ", - 18}, - {{0xfb, 0x2f, 0x26, 0xf2, 0x66, 0xfb, 0x28, 0x05, 0xa3, 0x87, - 0x23, 0x0f, 0x2a, 0xa0, 0xa3, 0x31, 0xb4, 0xd9, 0x6f, 0xba}, - "DADI ", - 18}, - {{0x89, 0xd2, 0x4A, 0x6b, 0x4C, 0xcB, 0x1B, 0x6f, 0xAA, 0x26, - 0x25, 0xfE, 0x56, 0x2b, 0xDD, 0x9a, 0x23, 0x26, 0x03, 0x59}, - "DAI ", - 18}, - {{0x07, 0xd9, 0xe4, 0x9e, 0xa4, 0x02, 0x19, 0x4b, 0xf4, 0x8a, - 0x82, 0x76, 0xda, 0xfb, 0x16, 0xe4, 0xed, 0x63, 0x33, 0x17}, - "DALC ", - 8}, - {{0x9B, 0x70, 0x74, 0x0e, 0x70, 0x8a, 0x08, 0x3C, 0x6f, 0xF3, - 0x8D, 0xf5, 0x22, 0x97, 0x02, 0x0f, 0x5D, 0xfA, 0xa5, 0xEE}, - "DAN ", - 10}, - {{0xBB, 0x9b, 0xc2, 0x44, 0xD7, 0x98, 0x12, 0x3f, 0xDe, 0x78, - 0x3f, 0xCc, 0x1C, 0x72, 0xd3, 0xBb, 0x8C, 0x18, 0x94, 0x13}, - "DAO ", - 16}, - {{0x81, 0xc9, 0x15, 0x1d, 0xe0, 0xc8, 0xba, 0xfc, 0xd3, 0x25, - 0xa5, 0x7e, 0x3d, 0xb5, 0xa5, 0xdf, 0x1c, 0xeb, 0xf7, 0x9c}, - "DAT ", - 18}, - {{0x1b, 0x5f, 0x21, 0xee, 0x98, 0xee, 0xd4, 0x8d, 0x29, 0x2e, - 0x8e, 0x2d, 0x3e, 0xd8, 0x2b, 0x40, 0xa9, 0x72, 0x8a, 0x22}, - "DATABrkr ", - 18}, - {{0x0c, 0xf0, 0xee, 0x63, 0x78, 0x8a, 0x08, 0x49, 0xfe, 0x52, - 0x97, 0xf3, 0x40, 0x7f, 0x70, 0x1e, 0x12, 0x2c, 0xc0, 0x23}, - "DATACoin ", - 18}, - {{0xab, 0xbb, 0xb6, 0x44, 0x7b, 0x68, 0xff, 0xd6, 0x14, 0x1d, - 0xa7, 0x7c, 0x18, 0xc7, 0xb5, 0x87, 0x6e, 0xd6, 0xc5, 0xab}, - "DATx ", - 18}, - {{0xd8, 0x2D, 0xf0, 0xAB, 0xD3, 0xf5, 0x14, 0x25, 0xEb, 0x15, - 0xef, 0x75, 0x80, 0xfD, 0xA5, 0x57, 0x27, 0x87, 0x5f, 0x14}, - "DAV ", - 18}, - {{0x0b, 0x4b, 0xdc, 0x47, 0x87, 0x91, 0x89, 0x72, 0x74, 0x65, - 0x2d, 0xc1, 0x5e, 0xf5, 0xc1, 0x35, 0xca, 0xe6, 0x1e, 0x60}, - "DAX ", - 18}, - {{0x61, 0x72, 0x5f, 0x3d, 0xb4, 0x00, 0x4a, 0xfe, 0x01, 0x47, - 0x45, 0xb2, 0x1d, 0xab, 0x1e, 0x16, 0x77, 0xcc, 0x32, 0x8b}, - "DAXT ", - 18}, - {{0x9b, 0x68, 0xbf, 0xae, 0x21, 0xdf, 0x5a, 0x51, 0x09, 0x31, - 0xa2, 0x62, 0xce, 0xcf, 0x63, 0xf4, 0x13, 0x38, 0xf2, 0x64}, - "DBET ", - 18}, - {{0x38, 0x6F, 0xaa, 0x47, 0x03, 0xa3, 0x4a, 0x7F, 0xdb, 0x19, - 0xBe, 0xc2, 0xe1, 0x4F, 0xd4, 0x27, 0xC9, 0x63, 0x84, 0x16}, - "DCA ", - 18}, - {{0xff, 0xa9, 0x3a, 0xac, 0xf4, 0x92, 0x97, 0xd5, 0x1e, 0x21, - 0x18, 0x17, 0x45, 0x28, 0x39, 0x05, 0x2f, 0xdf, 0xb9, 0x61}, - "DCC ", - 18}, - {{0x39, 0x9A, 0x0e, 0x6F, 0xbE, 0xb3, 0xd7, 0x4c, 0x85, 0x35, - 0x74, 0x39, 0xf4, 0xc8, 0xAe, 0xD9, 0x67, 0x8a, 0x5c, 0xbF}, - "DCL ", - 3}, - {{0x08, 0xd3, 0x2b, 0x0d, 0xa6, 0x3e, 0x2C, 0x3b, 0xcF, 0x80, - 0x19, 0xc9, 0xc5, 0xd8, 0x49, 0xd7, 0xa9, 0xd7, 0x91, 0xe6}, - "DCN ", - 0}, - {{0xcC, 0x4e, 0xF9, 0xEE, 0xAF, 0x65, 0x6a, 0xC1, 0xa2, 0xAb, - 0x88, 0x67, 0x43, 0xE9, 0x8e, 0x97, 0xE0, 0x90, 0xed, 0x38}, - "DDF ", - 18}, - {{0x15, 0x12, 0x02, 0xC9, 0xc1, 0x8e, 0x49, 0x56, 0x56, 0xf3, - 0x72, 0x28, 0x1F, 0x49, 0x3E, 0xB7, 0x69, 0x89, 0x61, 0xD5}, - "DEB ", - 18}, - {{0xde, 0x1e, 0x0a, 0xe6, 0x10, 0x1b, 0x46, 0x52, 0x0c, 0xf6, - 0x6f, 0xdc, 0x0b, 0x10, 0x59, 0xc5, 0xcc, 0x3d, 0x10, 0x6c}, - "DELTA ", - 8}, - {{0x35, 0x97, 0xbf, 0xd5, 0x33, 0xa9, 0x9c, 0x9a, 0xa0, 0x83, - 0x58, 0x7b, 0x07, 0x44, 0x34, 0xe6, 0x1e, 0xb0, 0xa2, 0x58}, - "DENT ", - 8}, - {{0x7c, 0xF2, 0x71, 0x96, 0x6F, 0x36, 0x34, 0x3B, 0xf0, 0x15, - 0x0F, 0x25, 0xE5, 0x36, 0x4f, 0x79, 0x61, 0xc5, 0x82, 0x01}, - "DEPO ", - 0}, - {{0x89, 0xcb, 0xea, 0xc5, 0xe8, 0xa1, 0x3f, 0x0e, 0xbb, 0x4c, - 0x74, 0xfa, 0xdf, 0xc6, 0x9b, 0xe8, 0x1a, 0x50, 0x11, 0x06}, - "DeposNet ", - 18}, - {{0xdd, 0x94, 0xDe, 0x9c, 0xFE, 0x06, 0x35, 0x77, 0x05, 0x1A, - 0x5e, 0xb7, 0x46, 0x5D, 0x08, 0x31, 0x7d, 0x88, 0x08, 0xB6}, - "Devcon2 ", - 0}, - {{0x20, 0xe9, 0x48, 0x67, 0x79, 0x4d, 0xba, 0x03, 0x0e, 0xe2, - 0x87, 0xf1, 0x40, 0x6e, 0x10, 0x0d, 0x03, 0xc8, 0x4c, 0xd3}, - "DEW ", - 18}, - {{0x49, 0x7b, 0xAE, 0xF2, 0x94, 0xc1, 0x1a, 0x5f, 0x0f, 0x5B, - 0xea, 0x3f, 0x2A, 0xdB, 0x30, 0x73, 0xDB, 0x44, 0x8B, 0x56}, - "DEX ", - 18}, - {{0xE0, 0xB7, 0x92, 0x7c, 0x4a, 0xF2, 0x37, 0x65, 0xCb, 0x51, - 0x31, 0x4A, 0x0E, 0x05, 0x21, 0xA9, 0x64, 0x5F, 0x0E, 0x2A}, - "DGD ", - 9}, - {{0xf6, 0xcF, 0xe5, 0x3d, 0x6F, 0xEb, 0xaE, 0xEA, 0x05, 0x1f, - 0x40, 0x0f, 0xf5, 0xfc, 0x14, 0xF0, 0xcB, 0xBD, 0xac, 0xA1}, - "DGPT ", - 18}, - {{0x6a, 0xED, 0xbF, 0x8d, 0xFF, 0x31, 0x43, 0x72, 0x20, 0xdF, - 0x35, 0x19, 0x50, 0xBa, 0x2a, 0x33, 0x62, 0x16, 0x8d, 0x1b}, - "DGS ", - 8}, - {{0x1c, 0x83, 0x50, 0x14, 0x78, 0xf1, 0x32, 0x09, 0x77, 0x04, - 0x70, 0x08, 0x49, 0x6d, 0xac, 0xbd, 0x60, 0xbb, 0x15, 0xef}, - "DGTX ", - 18}, - {{0x4f, 0x3a, 0xfe, 0xc4, 0xe5, 0xa3, 0xf2, 0xa6, 0xa1, 0xa4, - 0x11, 0xde, 0xf7, 0xd7, 0xdf, 0xe5, 0x0e, 0xe0, 0x57, 0xbf}, - "DGX ", - 9}, - {{0x55, 0xb9, 0xa1, 0x1c, 0x2e, 0x83, 0x51, 0xb4, 0xFf, 0xc7, - 0xb1, 0x15, 0x61, 0x14, 0x8b, 0xfa, 0xC9, 0x97, 0x78, 0x55}, - "DGX1 ", - 9}, - {{0x2e, 0x07, 0x1D, 0x29, 0x66, 0xAa, 0x7D, 0x8d, 0xEC, 0xB1, - 0x00, 0x58, 0x85, 0xbA, 0x19, 0x77, 0xD6, 0x03, 0x8A, 0x65}, - "DICE ", - 16}, - {{0xc7, 0x19, 0xd0, 0x10, 0xB6, 0x3E, 0x5b, 0xbF, 0x2C, 0x05, - 0x51, 0x87, 0x2C, 0xD5, 0x31, 0x6E, 0xD2, 0x6A, 0xcD, 0x83}, - "DecInsur ", - 18}, - {{0xf1, 0x49, 0x22, 0x00, 0x1a, 0x2f, 0xb8, 0x54, 0x1a, 0x43, - 0x39, 0x05, 0x43, 0x7a, 0xe9, 0x54, 0x41, 0x9c, 0x24, 0x39}, - "DIT ", - 8}, - {{0x13, 0xf1, 0x1C, 0x99, 0x05, 0xA0, 0x8c, 0xa7, 0x6e, 0x3e, - 0x85, 0x3b, 0xE6, 0x3D, 0x4f, 0x09, 0x44, 0x32, 0x6C, 0x72}, - "DIVX ", - 18}, - {{0x07, 0xe3, 0xc7, 0x06, 0x53, 0x54, 0x8b, 0x04, 0xf0, 0xa7, - 0x59, 0x70, 0xc1, 0xf8, 0x1b, 0x4c, 0xbb, 0xfb, 0x60, 0x6f}, - "DLT ", - 18}, - {{0x2c, 0xcb, 0xFF, 0x3A, 0x04, 0x2c, 0x68, 0x71, 0x6E, 0xd2, - 0xa2, 0xCb, 0x0c, 0x54, 0x4A, 0x9f, 0x1d, 0x19, 0x35, 0xE1}, - "DMT ", - 8}, - {{0x82, 0xb0, 0xe5, 0x04, 0x78, 0xee, 0xaf, 0xde, 0x39, 0x2d, - 0x45, 0xd1, 0x25, 0x9e, 0xd1, 0x07, 0x1b, 0x6f, 0xda, 0x81}, - "DNA ", - 18}, - {{0x0a, 0xbd, 0xac, 0xe7, 0x0d, 0x37, 0x90, 0x23, 0x5a, 0xf4, - 0x48, 0xc8, 0x85, 0x47, 0x60, 0x3b, 0x94, 0x56, 0x04, 0xea}, - "DNT ", - 18}, - {{0xE4, 0x3E, 0x20, 0x41, 0xdc, 0x37, 0x86, 0xe1, 0x66, 0x96, - 0x1e, 0xD9, 0x48, 0x4a, 0x55, 0x39, 0x03, 0x3d, 0x10, 0xfB}, - "DNX ", - 18}, - {{0xe5, 0xda, 0xda, 0x80, 0xaa, 0x64, 0x77, 0xe8, 0x5d, 0x09, - 0x74, 0x7f, 0x28, 0x42, 0xf7, 0x99, 0x3d, 0x0d, 0xf7, 0x1c}, - "DOCK ", - 18}, - {{0x90, 0x6b, 0x3f, 0x8b, 0x78, 0x45, 0x84, 0x01, 0x88, 0xea, - 0xb5, 0x3c, 0x3f, 0x5a, 0xd3, 0x48, 0xa7, 0x87, 0x75, 0x2f}, - "DOR ", - 15}, - {{0xac, 0x32, 0x11, 0xa5, 0x02, 0x54, 0x14, 0xaf, 0x28, 0x66, - 0xff, 0x09, 0xc2, 0x3f, 0xc1, 0x8b, 0xc9, 0x7e, 0x79, 0xb1}, - "DOV ", - 18}, - {{0x76, 0x97, 0x4c, 0x7b, 0x79, 0xdc, 0x8a, 0x6a, 0x10, 0x9f, - 0xd7, 0x1f, 0xd7, 0xce, 0xb9, 0xe4, 0x0e, 0xff, 0x53, 0x82}, - "DOW ", - 18}, - {{0x01, 0xb3, 0xEc, 0x4a, 0xAe, 0x1B, 0x87, 0x29, 0x52, 0x9B, - 0xEB, 0x49, 0x65, 0xF2, 0x7d, 0x00, 0x87, 0x88, 0xB0, 0xEB}, - "DPP ", - 18}, - {{0x41, 0x9c, 0x4d, 0xb4, 0xb9, 0xe2, 0x5d, 0x6d, 0xb2, 0xad, - 0x96, 0x91, 0xcc, 0xb8, 0x32, 0xc8, 0xd9, 0xfd, 0xa0, 0x5e}, - "DRGN ", - 18}, - {{0x46, 0x72, 0xba, 0xd5, 0x27, 0x10, 0x74, 0x71, 0xcb, 0x50, - 0x67, 0xa8, 0x87, 0xf4, 0x65, 0x6d, 0x58, 0x5a, 0x8a, 0x31}, - "DROPil ", - 18}, - {{0x3c, 0x75, 0x22, 0x65, 0x55, 0xFC, 0x49, 0x61, 0x68, 0xd4, - 0x8B, 0x88, 0xDF, 0x83, 0xB9, 0x5F, 0x16, 0x77, 0x1F, 0x37}, - "DROPlex ", - 0}, - {{0x62, 0x1d, 0x78, 0xf2, 0xef, 0x2f, 0xd9, 0x37, 0xbf, 0xca, - 0x69, 0x6c, 0xab, 0xaf, 0x9a, 0x77, 0x9f, 0x59, 0xb3, 0xed}, - "DRP ", - 2}, - {{0x27, 0x99, 0xd9, 0x0c, 0x6d, 0x44, 0xcb, 0x9a, 0xa5, 0xfb, - 0xc3, 0x77, 0x17, 0x7f, 0x16, 0xc3, 0x3e, 0x05, 0x6b, 0x82}, - "DripCoin ", - 0}, - {{0xe3, 0x0e, 0x02, 0xf0, 0x49, 0x95, 0x7e, 0x2a, 0x59, 0x07, - 0x58, 0x9e, 0x06, 0xba, 0x64, 0x6f, 0xb2, 0xc3, 0x21, 0xba}, - "DRPU ", - 8}, - {{0x9a, 0xf4, 0xf2, 0x69, 0x41, 0x67, 0x7c, 0x70, 0x6c, 0xfe, - 0xcf, 0x6d, 0x33, 0x79, 0xff, 0x01, 0xbb, 0x85, 0xd5, 0xab}, - "DRT ", - 8}, - {{0x62, 0xd4, 0xc0, 0x46, 0x44, 0x31, 0x4f, 0x35, 0x86, 0x8b, - 0xa4, 0xc6, 0x5c, 0xc2, 0x7a, 0x77, 0x68, 0x1d, 0xe7, 0xa9}, - "DRVH ", - 18}, - {{0x03, 0xe3, 0xf0, 0xc2, 0x59, 0x65, 0xf1, 0x3D, 0xbb, 0xC5, - 0x82, 0x46, 0x73, 0x8C, 0x18, 0x3E, 0x27, 0xb2, 0x6a, 0x56}, - "DSCP ", - 18}, - {{0x5a, 0xdc, 0x96, 0x1D, 0x6A, 0xC3, 0xf7, 0x06, 0x2D, 0x2e, - 0xA4, 0x5F, 0xEF, 0xB8, 0xD8, 0x16, 0x7d, 0x44, 0xb1, 0x90}, - "DTH ", - 18}, - {{0xd2, 0x34, 0xbf, 0x24, 0x10, 0xa0, 0x00, 0x9d, 0xf9, 0xc3, - 0xc6, 0x3b, 0x61, 0x0c, 0x09, 0x73, 0x8f, 0x18, 0xcc, 0xd7}, - "DTR ", - 8}, - {{0xc2, 0x04, 0x64, 0xe0, 0xc3, 0x73, 0x48, 0x6d, 0x2b, 0x33, - 0x35, 0x57, 0x6e, 0x83, 0xa2, 0x18, 0xb1, 0x61, 0x8a, 0x5e}, - "DTRC ", - 18}, - {{0xf9, 0xF7, 0xc2, 0x9C, 0xFd, 0xf1, 0x9F, 0xCf, 0x1f, 0x2A, - 0xA6, 0xB8, 0x4a, 0xA3, 0x67, 0xBc, 0xf1, 0xbD, 0x16, 0x76}, - "DTT ", - 18}, - {{0x76, 0x5f, 0x0c, 0x16, 0xd1, 0xdd, 0xc2, 0x79, 0x29, 0x5c, - 0x1a, 0x7c, 0x24, 0xb0, 0x88, 0x3f, 0x62, 0xd3, 0x3f, 0x75}, - "DTX ", - 18}, - {{0x82, 0xfd, 0xed, 0xfB, 0x76, 0x35, 0x44, 0x1a, 0xA5, 0xA9, - 0x27, 0x91, 0xD0, 0x01, 0xfA, 0x73, 0x88, 0xda, 0x80, 0x25}, - "DTx ", - 18}, - {{0xEd, 0x7f, 0xEA, 0x78, 0xC3, 0x93, 0xcF, 0x7B, 0x17, 0xB1, - 0x52, 0xA8, 0xc2, 0xD0, 0xCD, 0x97, 0xaC, 0x31, 0x79, 0x0B}, - "DUBI ", - 18}, - {{0x8d, 0xb5, 0x4c, 0xa5, 0x69, 0xd3, 0x01, 0x9a, 0x2b, 0xa1, - 0x26, 0xd0, 0x3c, 0x37, 0xc4, 0x4b, 0x5e, 0xf8, 0x1e, 0xf6}, - "DXT ", - 8}, - {{0xce, 0x5c, 0x60, 0x3c, 0x78, 0xd0, 0x47, 0xef, 0x43, 0x03, - 0x2e, 0x96, 0xb5, 0xb7, 0x85, 0x32, 0x4f, 0x75, 0x3a, 0x4f}, - "E4ROW ", - 2}, - {{0x99, 0x4f, 0x0d, 0xff, 0xdb, 0xae, 0x0b, 0xbf, 0x09, 0xb6, - 0x52, 0xd6, 0xf1, 0x1a, 0x49, 0x3f, 0xd3, 0x3f, 0x42, 0xb9}, - "EAGLE ", - 18}, - {{0x90, 0x0b, 0x44, 0x49, 0x23, 0x6a, 0x7b, 0xb2, 0x6b, 0x28, - 0x66, 0x01, 0xdd, 0x14, 0xd2, 0xbd, 0xe7, 0xa6, 0xac, 0x6c}, - "EARTH ", - 8}, - {{0x31, 0xf3, 0xd9, 0xd1, 0xbe, 0xce, 0x0c, 0x03, 0x3f, 0xf7, - 0x8f, 0xa6, 0xda, 0x60, 0xa6, 0x04, 0x8f, 0x3e, 0x13, 0xc5}, - "EBC ", - 18}, - {{0xaf, 0xc3, 0x97, 0x88, 0xc5, 0x1f, 0x0c, 0x1f, 0xf7, 0xb5, - 0x53, 0x17, 0xf3, 0xe7, 0x02, 0x99, 0xe5, 0x21, 0xff, 0xf6}, - "eBCH ", - 8}, - {{0xa5, 0x78, 0xac, 0xc0, 0xcb, 0x78, 0x75, 0x78, 0x1b, 0x78, - 0x80, 0x90, 0x3f, 0x45, 0x94, 0xd1, 0x3c, 0xfa, 0x8b, 0x98}, - "ECN ", - 2}, - {{0x17, 0xF9, 0x34, 0x75, 0xd2, 0xA9, 0x78, 0xf5, 0x27, 0xc3, - 0xf7, 0xc4, 0x4a, 0xBf, 0x44, 0xAd, 0xfB, 0xa6, 0x0D, 0x5C}, - "ECO2 ", - 2}, - {{0x17, 0x1d, 0x75, 0x0d, 0x42, 0xd6, 0x61, 0xb6, 0x2c, 0x27, - 0x7a, 0x6b, 0x48, 0x6a, 0xdb, 0x82, 0x34, 0x8c, 0x3e, 0xca}, - "ECOM ", - 18}, - {{0x88, 0x69, 0xb1, 0xf9, 0xbc, 0x8b, 0x24, 0x6a, 0x4d, 0x72, - 0x20, 0xf8, 0x34, 0xe5, 0x6d, 0xdf, 0xdd, 0x82, 0x55, 0xe7}, - "ECP ", - 18}, - {{0xfa, 0x1d, 0xe2, 0xee, 0x97, 0xe4, 0xc1, 0x0c, 0x94, 0xc9, - 0x1c, 0xb2, 0xb5, 0x06, 0x2b, 0x89, 0xfb, 0x14, 0x0b, 0x82}, - "EDC ", - 6}, - {{0x08, 0x71, 0x1D, 0x3B, 0x02, 0xC8, 0x75, 0x8F, 0x2F, 0xB3, - 0xab, 0x4e, 0x80, 0x22, 0x84, 0x18, 0xa7, 0xF8, 0xe3, 0x9c}, - "EDG ", - 0}, - {{0xce, 0xd4, 0xe9, 0x31, 0x98, 0x73, 0x4d, 0xda, 0xff, 0x84, - 0x92, 0xd5, 0x25, 0xbd, 0x25, 0x8d, 0x49, 0xeb, 0x38, 0x8e}, - "EDO ", - 18}, - {{0xc5, 0x28, 0xc2, 0x8F, 0xEC, 0x0A, 0x90, 0xC0, 0x83, 0x32, - 0x8B, 0xC4, 0x5f, 0x58, 0x7e, 0xE2, 0x15, 0x76, 0x0A, 0x0F}, - "EDR ", - 18}, - {{0x2a, 0x22, 0xe5, 0xcc, 0xa0, 0x0a, 0x3d, 0x63, 0x30, 0x8f, - 0xa3, 0x9f, 0x29, 0x20, 0x2e, 0xb1, 0xb3, 0x9e, 0xef, 0x52}, - "EDU ", - 18}, - {{0xeb, 0x7c, 0x20, 0x02, 0x71, 0x72, 0xe5, 0xd1, 0x43, 0xfb, - 0x03, 0x0d, 0x50, 0xf9, 0x1c, 0xec, 0xe2, 0xd1, 0x48, 0x5d}, - "eBTC ", - 8}, - {{0xb5, 0x3a, 0x96, 0xbc, 0xbd, 0xd9, 0xcf, 0x78, 0xdf, 0xf2, - 0x0b, 0xab, 0x6c, 0x2b, 0xe7, 0xba, 0xec, 0x8f, 0x00, 0xf8}, - "eGAS ", - 8}, - {{0x8e, 0x1b, 0x44, 0x8E, 0xC7, 0xaD, 0xFc, 0x7F, 0xa3, 0x5F, - 0xC2, 0xe8, 0x85, 0x67, 0x8b, 0xD3, 0x23, 0x17, 0x6E, 0x34}, - "EGT ", - 18}, - {{0x5d, 0xba, 0xc2, 0x4e, 0x98, 0xe2, 0xa4, 0xf4, 0x3a, 0xdc, - 0x0d, 0xc8, 0x2a, 0xf4, 0x03, 0xfc, 0xa0, 0x63, 0xce, 0x2c}, - "EGT ", - 18}, - {{0xf9, 0xF0, 0xFC, 0x71, 0x67, 0xc3, 0x11, 0xDd, 0x2F, 0x1e, - 0x21, 0xE9, 0x20, 0x4F, 0x87, 0xEB, 0xA9, 0x01, 0x2f, 0xB2}, - "EHT ", - 8}, - {{0xa6, 0xa8, 0x40, 0xe5, 0x0b, 0xca, 0xa5, 0x0d, 0xa0, 0x17, - 0xb9, 0x1a, 0x0d, 0x86, 0xb8, 0xb2, 0xd4, 0x11, 0x56, 0xee}, - "EKO ", - 18}, - {{0xba, 0xb1, 0x65, 0xdf, 0x94, 0x55, 0xaa, 0x0f, 0x2a, 0xed, - 0x1f, 0x25, 0x65, 0x52, 0x0b, 0x91, 0xdd, 0xad, 0xb4, 0xc8}, - "EKT ", - 8}, - {{0xd4, 0x9f, 0xf1, 0x36, 0x61, 0x45, 0x13, 0x13, 0xca, 0x15, - 0x53, 0xfd, 0x69, 0x54, 0xbd, 0x1d, 0x9b, 0x6e, 0x02, 0xb9}, - "ELEC ", - 18}, - {{0xbf, 0x21, 0x79, 0x85, 0x9f, 0xc6, 0xd5, 0xbe, 0xe9, 0xbf, - 0x91, 0x58, 0x63, 0x2d, 0xc5, 0x16, 0x78, 0xa4, 0x10, 0x0e}, - "ELF ", - 18}, - {{0xc8, 0xC6, 0xA3, 0x1A, 0x4A, 0x80, 0x6d, 0x37, 0x10, 0xA7, - 0xB3, 0x8b, 0x7B, 0x29, 0x6D, 0x2f, 0xAB, 0xCC, 0xDB, 0xA8}, - "ELIX ", - 18}, - {{0x44, 0x19, 0x7a, 0x4c, 0x44, 0xd6, 0xa0, 0x59, 0x29, 0x7c, - 0xaf, 0x6b, 0xe4, 0xf7, 0xe1, 0x72, 0xbd, 0x56, 0xca, 0xaf}, - "ELTCOIN ", - 8}, - {{0xa9, 0x55, 0x92, 0xDC, 0xFf, 0xA3, 0xC0, 0x80, 0xB4, 0xB4, - 0x0E, 0x45, 0x9c, 0x5f, 0x56, 0x92, 0xF6, 0x7D, 0xB7, 0xF8}, - "ELY ", - 18}, - {{0xb6, 0x7b, 0x88, 0xa2, 0x57, 0x08, 0xa3, 0x5a, 0xe7, 0xc2, - 0xd7, 0x36, 0xd3, 0x98, 0xd2, 0x68, 0xce, 0x4f, 0x7f, 0x83}, - "EMON ", - 8}, - {{0x95, 0xda, 0xaa, 0xb9, 0x80, 0x46, 0x84, 0x6b, 0xf4, 0xb2, - 0x85, 0x3e, 0x23, 0xcb, 0xa2, 0x36, 0xfa, 0x39, 0x4a, 0x31}, - "EMONT ", - 8}, - {{0x95, 0x01, 0xBF, 0xc4, 0x88, 0x97, 0xDC, 0xEE, 0xad, 0xf7, - 0x31, 0x13, 0xEF, 0x63, 0x5d, 0x2f, 0xF7, 0xee, 0x4B, 0x97}, - "EMT ", - 18}, - {{0xB8, 0x02, 0xb2, 0x4E, 0x06, 0x37, 0xc2, 0xB8, 0x7D, 0x2E, - 0x8b, 0x77, 0x84, 0xC0, 0x55, 0xBB, 0xE9, 0x21, 0x01, 0x1a}, - "EMV ", - 2}, - {{0x03, 0x9f, 0x50, 0x50, 0xde, 0x49, 0x08, 0xf9, 0xb5, 0xdd, - 0xf4, 0x0a, 0x4f, 0x3a, 0xa3, 0xf3, 0x29, 0x08, 0x63, 0x87}, - "ENC ", - 18}, - {{0xf0, 0xee, 0x6b, 0x27, 0xb7, 0x59, 0xc9, 0x89, 0x3c, 0xe4, - 0xf0, 0x94, 0xb4, 0x9a, 0xd2, 0x8f, 0xd1, 0x5a, 0x23, 0xe4}, - "ENG ", - 8}, - {{0xF6, 0x29, 0xcB, 0xd9, 0x4d, 0x37, 0x91, 0xC9, 0x25, 0x01, - 0x52, 0xBD, 0x8d, 0xfB, 0xDF, 0x38, 0x0E, 0x2a, 0x3B, 0x9c}, - "ENJ ", - 18}, - {{0x5B, 0xC7, 0xe5, 0xf0, 0xAb, 0x8b, 0x2E, 0x10, 0xD2, 0xD0, - 0xa3, 0xF2, 0x17, 0x39, 0xFC, 0xe6, 0x24, 0x59, 0xae, 0xF3}, - "ENTRP ", - 18}, - {{0x86, 0xfa, 0x04, 0x98, 0x57, 0xe0, 0x20, 0x9a, 0xa7, 0xd9, - 0xe6, 0x16, 0xf7, 0xeb, 0x3b, 0x3b, 0x78, 0xec, 0xfd, 0xb0}, - "EOS ", - 18}, - {{0x7e, 0x9e, 0x43, 0x1a, 0x0b, 0x8c, 0x4d, 0x53, 0x2c, 0x74, - 0x5b, 0x10, 0x43, 0xc7, 0xfa, 0x29, 0xa4, 0x8d, 0x4f, 0xba}, - "eosDAC ", - 18}, - {{0x35, 0xBA, 0xA7, 0x20, 0x38, 0xF1, 0x27, 0xf9, 0xf8, 0xC8, - 0xf9, 0xB4, 0x91, 0x04, 0x9f, 0x64, 0xf3, 0x77, 0x91, 0x4d}, - "EPX ", - 4}, - {{0x50, 0xee, 0x67, 0x46, 0x89, 0xd7, 0x5c, 0x0f, 0x88, 0xe8, - 0xf8, 0x3c, 0xfe, 0x8c, 0x4b, 0x69, 0xe8, 0xfd, 0x59, 0x0d}, - "EPY ", - 8}, - {{0x47, 0xdd, 0x62, 0xd4, 0xd0, 0x75, 0xde, 0xad, 0x71, 0xd0, - 0xe0, 0x02, 0x99, 0xfc, 0x56, 0xa2, 0xd7, 0x47, 0xbe, 0xbb}, - "EQL ", - 18}, - {{0x74, 0xce, 0xda, 0x77, 0x28, 0x1b, 0x33, 0x91, 0x42, 0xa3, - 0x68, 0x17, 0xfa, 0x5f, 0x9e, 0x29, 0x41, 0x2b, 0xab, 0x85}, - "ERO ", - 8}, - {{0x92, 0xA5, 0xB0, 0x4D, 0x0E, 0xD5, 0xD9, 0x4D, 0x7a, 0x19, - 0x3d, 0x1d, 0x33, 0x4D, 0x3D, 0x16, 0x99, 0x6f, 0x4E, 0x13}, - "ERT ", - 18}, - {{0xe8, 0xa1, 0xdf, 0x95, 0x8b, 0xe3, 0x79, 0x04, 0x5e, 0x2b, - 0x46, 0xa3, 0x1a, 0x98, 0xb9, 0x3a, 0x2e, 0xcd, 0xfd, 0xed}, - "ESZ ", - 18}, - {{0x1b, 0x97, 0x43, 0xf5, 0x56, 0xd6, 0x5e, 0x75, 0x7c, 0x4c, - 0x65, 0x0b, 0x45, 0x55, 0xba, 0xf3, 0x54, 0xcb, 0x8b, 0xd3}, - "ETBS ", - 12}, - {{0xdd, 0x74, 0xa7, 0xa3, 0x76, 0x9f, 0xa7, 0x25, 0x61, 0xb3, - 0xa6, 0x9e, 0x65, 0x96, 0x8f, 0x49, 0x74, 0x8c, 0x69, 0x0c}, - "ETCH ", - 18}, - {{0x28, 0xc8, 0xd0, 0x1f, 0xf6, 0x33, 0xea, 0x9c, 0xd8, 0xfc, - 0x6a, 0x45, 0x1d, 0x74, 0x57, 0x88, 0x9e, 0x69, 0x8d, 0xe6}, - "ETG ", - 0}, - {{0x3a, 0x26, 0x74, 0x6D, 0xdb, 0x79, 0xB1, 0xB8, 0xe4, 0x45, - 0x0e, 0x3F, 0x4F, 0xFE, 0x32, 0x85, 0xA3, 0x07, 0x38, 0x7E}, - "ETHB ", - 8}, - {{0xdb, 0xfb, 0x42, 0x3e, 0x9b, 0xbf, 0x16, 0x29, 0x43, 0x88, - 0xe0, 0x76, 0x96, 0xa5, 0x12, 0x0e, 0x4c, 0xeb, 0xa0, 0xc5}, - "ETHD ", - 18}, - {{0x5A, 0xf2, 0xBe, 0x19, 0x3a, 0x6A, 0xBC, 0xa9, 0xc8, 0x81, - 0x70, 0x01, 0xF4, 0x57, 0x44, 0x77, 0x7D, 0xb3, 0x07, 0x56}, - "ETHOS ", - 8}, - {{0x3c, 0x4a, 0x3f, 0xfd, 0x81, 0x3a, 0x10, 0x7f, 0xeb, 0xd5, - 0x7b, 0x2f, 0x01, 0xbc, 0x34, 0x42, 0x64, 0xd9, 0x0f, 0xde}, - "ETK ", - 2}, - {{0x69, 0x27, 0xC6, 0x9f, 0xb4, 0xda, 0xf2, 0x04, 0x3f, 0xbB, - 0x1C, 0xb7, 0xb8, 0x6c, 0x56, 0x61, 0x41, 0x6b, 0xea, 0x29}, - "ETR ", - 18}, {{0xdb, 0x25, 0xf2, 0x11, 0xab, 0x05, 0xb1, 0xc9, 0x7d, 0x59, 0x55, 0x16, 0xf4, 0x57, 0x94, 0x52, 0x8a, 0x80, 0x7a, 0xd8}, "EURS ", 2}, - {{0xab, 0xdf, 0x14, 0x78, 0x70, 0x23, 0x5f, 0xcf, 0xc3, 0x41, - 0x53, 0x82, 0x8c, 0x76, 0x9a, 0x70, 0xb3, 0xfa, 0xe0, 0x1f}, - "EURT ", - 6}, - {{0xb6, 0x2d, 0x18, 0xde, 0xa7, 0x40, 0x45, 0xe8, 0x22, 0x35, - 0x2c, 0xe4, 0xb3, 0xee, 0x77, 0x31, 0x9d, 0xc5, 0xff, 0x2f}, - "EVC ", - 18}, - {{0x92, 0x31, 0x08, 0xa4, 0x39, 0xC4, 0xe8, 0xC2, 0x31, 0x5c, - 0x4f, 0x65, 0x21, 0xE5, 0xcE, 0x95, 0xB4, 0x4e, 0x9B, 0x4c}, - "EVE ", - 18}, - {{0x68, 0x90, 0x9e, 0x58, 0x6e, 0xea, 0xc8, 0xf4, 0x73, 0x15, - 0xe8, 0x4b, 0x4c, 0x97, 0x88, 0xdd, 0x54, 0xef, 0x65, 0xbb}, - "EVN ", - 18}, - {{0xd7, 0x80, 0xAe, 0x2B, 0xf0, 0x4c, 0xD9, 0x6E, 0x57, 0x7D, - 0x3D, 0x01, 0x47, 0x62, 0xf8, 0x31, 0xd9, 0x71, 0x29, 0xd0}, - "EVN ", - 18}, - {{0xf3, 0xdb, 0x5f, 0xa2, 0xc6, 0x6b, 0x7a, 0xf3, 0xeb, 0x0c, - 0x0b, 0x78, 0x25, 0x10, 0x81, 0x6c, 0xbe, 0x48, 0x13, 0xb8}, - "EVX ", - 4}, - {{0x44, 0x49, 0x97, 0xb7, 0xe7, 0xfC, 0x83, 0x0E, 0x20, 0x08, - 0x9a, 0xfe, 0xa3, 0x07, 0x8c, 0xd5, 0x18, 0xfC, 0xF2, 0xA2}, - "EWO ", - 18}, - {{0x00, 0xc4, 0xb3, 0x98, 0x50, 0x06, 0x45, 0xeb, 0x5d, 0xa0, - 0x0a, 0x1a, 0x37, 0x9a, 0x88, 0xb1, 0x16, 0x83, 0xba, 0x01}, - "EXC ", - 18}, - {{0xc9, 0x8e, 0x06, 0x39, 0xc6, 0xd2, 0xec, 0x03, 0x7a, 0x61, - 0x53, 0x41, 0xc3, 0x69, 0x66, 0x6b, 0x11, 0x0e, 0x80, 0xe5}, - "EXMR ", - 8}, - {{0xe4, 0x69, 0xc4, 0x47, 0x3a, 0xf8, 0x22, 0x17, 0xb3, 0x0c, - 0xf1, 0x7b, 0x10, 0xbc, 0xdb, 0x6c, 0x8c, 0x79, 0x6e, 0x75}, - "EXRN ", - 0}, - {{0x5c, 0x74, 0x3a, 0x35, 0xe9, 0x03, 0xf6, 0xc5, 0x84, 0x51, - 0x4e, 0xc6, 0x17, 0xac, 0xee, 0x06, 0x11, 0xcf, 0x44, 0xf3}, - "EXY ", - 18}, - {{0x5e, 0x60, 0x16, 0xae, 0x7d, 0x7c, 0x49, 0xd3, 0x47, 0xdc, - 0xf8, 0x34, 0x86, 0x0b, 0x9f, 0x3e, 0xe2, 0x82, 0x81, 0x2b}, - "EZT ", - 8}, - {{0xb6, 0x77, 0x34, 0x52, 0x1e, 0xAb, 0xBE, 0x9C, 0x77, 0x37, - 0x29, 0xdB, 0x73, 0xE1, 0x6C, 0xC2, 0xdf, 0xb2, 0x0A, 0x58}, - "ERupee ", - 2}, - {{0x1c, 0xca, 0xa0, 0xf2, 0xa7, 0x21, 0x0d, 0x76, 0xe1, 0xfd, - 0xec, 0x74, 0x0d, 0x5f, 0x32, 0x3e, 0x2e, 0x1b, 0x16, 0x72}, - "FACE ", - 18}, - {{0x19, 0x0e, 0x56, 0x9b, 0xE0, 0x71, 0xF4, 0x0c, 0x70, 0x4e, - 0x15, 0x82, 0x5F, 0x28, 0x54, 0x81, 0xCB, 0x74, 0xB6, 0xcC}, - "FAM ", - 12}, - {{0x90, 0x16, 0x2f, 0x41, 0x88, 0x6c, 0x09, 0x46, 0xd0, 0x99, - 0x99, 0x73, 0x6f, 0x1c, 0x15, 0xc8, 0xa1, 0x05, 0xa4, 0x21}, - "FAN ", - 18}, - {{0x7d, 0xcb, 0x3b, 0x23, 0x56, 0xc8, 0x22, 0xd3, 0x57, 0x7d, - 0x4d, 0x06, 0x0d, 0x0d, 0x5d, 0x78, 0xc8, 0x60, 0x48, 0x8c}, - "FANX ", - 18}, - {{0x23, 0x35, 0x20, 0x36, 0xe9, 0x11, 0xa2, 0x2c, 0xfc, 0x69, - 0x2b, 0x5e, 0x2e, 0x19, 0x66, 0x92, 0x65, 0x8a, 0xde, 0xd9}, - "FDZ ", - 18}, - {{0xd9, 0xa8, 0xcf, 0xe2, 0x1c, 0x23, 0x2d, 0x48, 0x50, 0x65, - 0xcb, 0x62, 0xa9, 0x68, 0x66, 0x79, 0x9d, 0x46, 0x45, 0xf7}, - "FGP ", - 18}, - {{0x52, 0xfb, 0x36, 0xc8, 0x3a, 0xd3, 0x3c, 0x18, 0x24, 0x91, - 0x2f, 0xc8, 0x10, 0x71, 0xca, 0x5e, 0xeb, 0x8a, 0xb3, 0x90}, - "FID ", - 18}, - {{0x00, 0x9e, 0x86, 0x49, 0x23, 0xb4, 0x92, 0x63, 0xc7, 0xF1, - 0x0D, 0x19, 0xB7, 0xf8, 0xAb, 0x7a, 0x9A, 0x5A, 0xAd, 0x33}, - "FKX ", - 18}, - {{0xf0, 0x4a, 0x8a, 0xc5, 0x53, 0xFc, 0xeD, 0xB5, 0xBA, 0x99, - 0xA6, 0x47, 0x99, 0x15, 0x58, 0x26, 0xC1, 0x36, 0xb0, 0xBe}, - "FLIXX ", - 18}, - {{0x04, 0xcC, 0x78, 0x3b, 0x45, 0x0b, 0x8D, 0x11, 0xF3, 0xC7, - 0xd0, 0x0D, 0xD0, 0x3f, 0xDF, 0x7F, 0xB5, 0x1f, 0xE9, 0xF2}, - "FLMC ", - 18}, - {{0x04, 0x93, 0x99, 0xa6, 0xb0, 0x48, 0xd5, 0x29, 0x71, 0xf7, - 0xd1, 0x22, 0xae, 0x21, 0xa1, 0x53, 0x27, 0x22, 0x28, 0x5f}, - "FLOT ", - 18}, - {{0x3a, 0x1B, 0xda, 0x28, 0xAd, 0xB5, 0xB0, 0xa8, 0x12, 0xa7, - 0xCF, 0x10, 0xA1, 0x95, 0x0c, 0x92, 0x0F, 0x79, 0xBc, 0xD3}, - "FLP ", - 18}, - {{0x9a, 0xeF, 0xBE, 0x0b, 0x3C, 0x3b, 0xa9, 0xEa, 0xb2, 0x62, - 0xCB, 0x98, 0x56, 0xE8, 0x15, 0x7A, 0xB7, 0x64, 0x8e, 0x09}, - "FLR ", - 18}, - {{0x95, 0x4b, 0x5d, 0xe0, 0x9a, 0x55, 0xe5, 0x97, 0x55, 0xac, - 0xbd, 0xa2, 0x9e, 0x1e, 0xb7, 0x4a, 0x45, 0xd3, 0x01, 0x75}, - "FLUZ ", - 18}, - {{0x70, 0xb1, 0x47, 0xe0, 0x1e, 0x92, 0x85, 0xe7, 0xce, 0x68, - 0xb9, 0xba, 0x43, 0x7f, 0xe3, 0xa9, 0x19, 0x0e, 0x75, 0x6a}, - "FLX ", - 18}, - {{0x4d, 0xf4, 0x7b, 0x49, 0x69, 0xb2, 0x91, 0x1c, 0x96, 0x65, - 0x06, 0xe3, 0x59, 0x2c, 0x41, 0x38, 0x94, 0x93, 0x95, 0x3b}, - "FND ", - 18}, - {{0x07, 0x07, 0x68, 0x1f, 0x34, 0x4d, 0xeb, 0x24, 0x18, 0x40, - 0x37, 0xfc, 0x02, 0x28, 0x85, 0x6f, 0x21, 0x37, 0xb0, 0x2e}, - "FNKOS ", - 18}, - {{0xbd, 0x4b, 0x60, 0xa1, 0x38, 0xb3, 0xfc, 0xe3, 0x58, 0x4e, - 0xa0, 0x1f, 0x50, 0xc0, 0x90, 0x8c, 0x18, 0xf9, 0x67, 0x7a}, - "FNTB ", - 8}, - {{0x2a, 0x09, 0x3B, 0xcF, 0x0C, 0x98, 0xEf, 0x74, 0x4B, 0xb6, - 0xF6, 0x9D, 0x74, 0xf2, 0xF8, 0x56, 0x05, 0x32, 0x42, 0x90}, - "FOOD ", - 8}, - {{0x42, 0x70, 0xbb, 0x23, 0x8f, 0x6d, 0xd8, 0xb1, 0xc3, 0xca, - 0x01, 0xf9, 0x6c, 0xa6, 0x5b, 0x26, 0x47, 0xc0, 0x6d, 0x3c}, - "FOTA ", - 18}, - {{0x0A, 0xBe, 0xFb, 0x76, 0x11, 0xCb, 0x3A, 0x01, 0xEA, 0x3F, - 0xaD, 0x85, 0xf3, 0x3C, 0x3C, 0x93, 0x4F, 0x8e, 0x2c, 0xF4}, - "FRD ", - 18}, - {{0x17, 0xe6, 0x7d, 0x1c, 0xb4, 0xe3, 0x49, 0xb9, 0xca, 0x4b, - 0xc3, 0xe1, 0x7c, 0x7d, 0xf2, 0xa3, 0x97, 0xa7, 0xbb, 0x64}, - "FREC ", - 18}, - {{0x48, 0xdf, 0x4e, 0x02, 0x96, 0xf9, 0x08, 0xce, 0xab, 0x04, - 0x28, 0xa5, 0x18, 0x2d, 0x19, 0xb3, 0x1f, 0xc0, 0x37, 0xd6}, - "FRV ", - 8}, - {{0xd0, 0x35, 0x2a, 0x01, 0x9e, 0x9a, 0xb9, 0xd7, 0x57, 0x77, - 0x6f, 0x53, 0x23, 0x77, 0xaa, 0xeb, 0xd3, 0x6f, 0xd5, 0x41}, - "FSN ", - 18}, - {{0x78, 0xa7, 0x3B, 0x6C, 0xBc, 0x5D, 0x18, 0x3C, 0xE5, 0x6e, - 0x78, 0x6f, 0x6e, 0x90, 0x5C, 0xaD, 0xEC, 0x63, 0x54, 0x7B}, - "FT ", - 18}, - {{0xe6, 0xf7, 0x4d, 0xcf, 0xa0, 0xe2, 0x08, 0x83, 0x00, 0x8d, - 0x8c, 0x16, 0xb6, 0xd9, 0xa3, 0x29, 0x18, 0x9d, 0x0c, 0x30}, - "FTC ", - 2}, - {{0x94, 0x3e, 0xd8, 0x52, 0xda, 0xdb, 0x5c, 0x39, 0x38, 0xec, - 0xdc, 0x68, 0x83, 0x71, 0x8d, 0xf8, 0x14, 0x2d, 0xe4, 0xc8}, - "FTI ", - 18}, - {{0x20, 0x23, 0xDC, 0xf7, 0xc4, 0x38, 0xc8, 0xC8, 0xC0, 0xB0, - 0xF2, 0x8d, 0xBa, 0xE1, 0x55, 0x20, 0xB4, 0xf3, 0xEe, 0x20}, - "FTR ", - 18}, - {{0x2A, 0xEC, 0x18, 0xc5, 0x50, 0x0f, 0x21, 0x35, 0x9C, 0xE1, - 0xBE, 0xA5, 0xDc, 0x17, 0x77, 0x34, 0x4d, 0xF4, 0xC0, 0xDc}, - "FTT ", - 18}, - {{0xd5, 0x59, 0xf2, 0x02, 0x96, 0xff, 0x48, 0x95, 0xda, 0x39, - 0xb5, 0xbd, 0x9a, 0xdd, 0x54, 0xb4, 0x42, 0x59, 0x6a, 0x61}, - "FTX ", - 18}, - {{0x41, 0x87, 0x5c, 0x23, 0x32, 0xb0, 0x87, 0x7c, 0xdf, 0xaa, - 0x69, 0x9b, 0x64, 0x14, 0x02, 0xb7, 0xd4, 0x64, 0x2c, 0x32}, - "FTXT ", - 8}, - {{0x65, 0xbe, 0x44, 0xc7, 0x47, 0x98, 0x8f, 0xbf, 0x60, 0x62, - 0x07, 0x69, 0x8c, 0x94, 0x4d, 0xf4, 0x44, 0x2e, 0xfe, 0x19}, - "FUCK ", - 4}, - {{0xEA, 0x38, 0xeA, 0xa3, 0xC8, 0x6c, 0x8F, 0x9B, 0x75, 0x15, - 0x33, 0xBa, 0x2E, 0x56, 0x2d, 0xeb, 0x9a, 0xcD, 0xED, 0x40}, - "FUEL ", - 18}, - {{0x41, 0x9D, 0x0d, 0x8B, 0xdD, 0x9a, 0xF5, 0xe6, 0x06, 0xAe, - 0x22, 0x32, 0xed, 0x28, 0x5A, 0xff, 0x19, 0x0E, 0x71, 0x1b}, - "FUN ", - 8}, - {{0x18, 0x29, 0xaa, 0x04, 0x5e, 0x21, 0xe0, 0xd5, 0x95, 0x80, - 0x02, 0x4a, 0x95, 0x1d, 0xb4, 0x80, 0x96, 0xe0, 0x17, 0x82}, - "FXT ", - 18}, - {{0x88, 0xFC, 0xFB, 0xc2, 0x2C, 0x6d, 0x3d, 0xBa, 0xa2, 0x5a, - 0xF4, 0x78, 0xC5, 0x78, 0x97, 0x83, 0x39, 0xBD, 0xe7, 0x7a}, - "FYN ", - 18}, - {{0x8f, 0x09, 0x21, 0xf3, 0x05, 0x55, 0x62, 0x41, 0x43, 0xd4, - 0x27, 0xb3, 0x40, 0xb1, 0x15, 0x69, 0x14, 0x88, 0x2c, 0x10}, - "FYP ", - 18}, - {{0xf6, 0x74, 0x51, 0xdc, 0x84, 0x21, 0xf0, 0xe0, 0xaf, 0xeb, - 0x52, 0xfa, 0xa8, 0x10, 0x10, 0x34, 0xed, 0x08, 0x1e, 0xd9}, - "GAM ", - 8}, - {{0xc0, 0xEA, 0x63, 0x06, 0xF6, 0x36, 0x0F, 0xE7, 0xdC, 0xAB, - 0x65, 0xD1, 0x6B, 0xf1, 0xa3, 0xAF, 0x92, 0xC7, 0x9A, 0xa2}, - "GANA ", - 18}, - {{0x68, 0x71, 0x74, 0xf8, 0xc4, 0x9c, 0xeb, 0x77, 0x29, 0xd9, - 0x25, 0xc3, 0xa9, 0x61, 0x50, 0x7e, 0xa4, 0xac, 0x7b, 0x28}, - "GAT ", - 18}, - {{0x70, 0x88, 0x76, 0xf4, 0x86, 0xe4, 0x48, 0xee, 0x89, 0xeb, - 0x33, 0x2b, 0xfb, 0xc8, 0xe5, 0x93, 0x55, 0x30, 0x58, 0xb9}, - "GAVEL ", - 18}, - {{0x75, 0x85, 0xF8, 0x35, 0xae, 0x2d, 0x52, 0x27, 0x22, 0xd2, - 0x68, 0x43, 0x23, 0xa0, 0xba, 0x83, 0x40, 0x1f, 0x32, 0xf5}, - "GBT ", - 18}, - {{0x12, 0xfC, 0xd6, 0x46, 0x3E, 0x66, 0x97, 0x4c, 0xF7, 0xbB, - 0xC2, 0x4F, 0xFC, 0x4d, 0x40, 0xd6, 0xbE, 0x45, 0x82, 0x83}, - "GBX ", - 8}, - {{0xdb, 0x0F, 0x69, 0x30, 0x6F, 0xF8, 0xF9, 0x49, 0xf2, 0x58, - 0xE8, 0x3f, 0x6b, 0x87, 0xee, 0x5D, 0x05, 0x2d, 0x0b, 0x23}, - "GCP ", - 18}, - {{0x4F, 0x4f, 0x0D, 0xb4, 0xde, 0x90, 0x3B, 0x88, 0xf2, 0xB1, - 0xa2, 0x84, 0x79, 0x71, 0xE2, 0x31, 0xD5, 0x4F, 0x8f, 0xd3}, - "GEE ", - 8}, - {{0x24, 0x08, 0x3b, 0xb3, 0x00, 0x72, 0x64, 0x3c, 0x3b, 0xb9, - 0x0b, 0x44, 0xb7, 0x28, 0x58, 0x60, 0xa7, 0x55, 0xe6, 0x87}, - "GELD ", - 18}, - {{0xc7, 0xbb, 0xa5, 0xb7, 0x65, 0x58, 0x1e, 0xfb, 0x2c, 0xdd, - 0x26, 0x79, 0xdb, 0x5b, 0xea, 0x9e, 0xe7, 0x9b, 0x20, 0x1f}, - "GEM ", - 18}, - {{0x54, 0x3F, 0xf2, 0x27, 0xF6, 0x4A, 0xa1, 0x7e, 0xA1, 0x32, - 0xBf, 0x98, 0x86, 0xcA, 0xb5, 0xDB, 0x55, 0xDC, 0xAd, 0xdf}, - "GEN ", - 18}, - {{0x8a, 0x85, 0x42, 0x88, 0xa5, 0x97, 0x60, 0x36, 0xa7, 0x25, - 0x87, 0x91, 0x64, 0xca, 0x3e, 0x91, 0xd3, 0x0c, 0x6a, 0x1b}, - "GET ", - 18}, - {{0xFc, 0xD8, 0x62, 0x98, 0x56, 0x28, 0xb2, 0x54, 0x06, 0x1F, - 0x7A, 0x91, 0x80, 0x35, 0xB8, 0x03, 0x40, 0xD0, 0x45, 0xd3}, - "GIF ", - 18}, - {{0xaE, 0x4f, 0x56, 0xF0, 0x72, 0xc3, 0x4C, 0x0a, 0x65, 0xB3, - 0xae, 0x3E, 0x4D, 0xB7, 0x97, 0xD8, 0x31, 0x43, 0x9D, 0x93}, - "GIM ", - 8}, - {{0x71, 0xd0, 0x1d, 0xb8, 0xd6, 0xa2, 0xfb, 0xea, 0x7f, 0x8d, - 0x43, 0x45, 0x99, 0xc2, 0x37, 0x98, 0x0c, 0x23, 0x4e, 0x4c}, - "GLA ", - 8}, - {{0xb3, 0xBd, 0x49, 0xE2, 0x8f, 0x8F, 0x83, 0x2b, 0x8d, 0x1E, - 0x24, 0x61, 0x06, 0x99, 0x1e, 0x54, 0x6c, 0x32, 0x35, 0x02}, - "GMT ", - 18}, - {{0x68, 0x10, 0xe7, 0x76, 0x88, 0x0C, 0x02, 0x93, 0x3D, 0x47, - 0xDB, 0x1b, 0x9f, 0xc0, 0x59, 0x08, 0xe5, 0x38, 0x6b, 0x96}, - "GNO ", - 18}, {{0xa7, 0x44, 0x76, 0x44, 0x31, 0x19, 0xA9, 0x42, 0xdE, 0x49, 0x85, 0x90, 0xFe, 0x1f, 0x24, 0x54, 0xd7, 0xD4, 0xaC, 0x0d}, "GNT ", 18}, - {{0x6e, 0xc8, 0xa2, 0x4c, 0xab, 0xdc, 0x33, 0x9a, 0x06, 0xa1, - 0x72, 0xf8, 0x22, 0x3e, 0xa5, 0x57, 0x05, 0x5a, 0xda, 0xa5}, - "GNX ", - 9}, - {{0x24, 0x75, 0x51, 0xF2, 0xEB, 0x33, 0x62, 0xE2, 0x22, 0xc7, - 0x42, 0xE9, 0xc7, 0x88, 0xB8, 0x95, 0x7D, 0x9B, 0xC8, 0x7e}, - "GNY ", - 18}, - {{0xeA, 0xb4, 0x31, 0x93, 0xCF, 0x06, 0x23, 0x07, 0x3C, 0xa8, - 0x9D, 0xB9, 0xB7, 0x12, 0x79, 0x63, 0x56, 0xFA, 0x74, 0x14}, - "GOLDX ", - 18}, - {{0x42, 0x3b, 0x5f, 0x62, 0xb3, 0x28, 0xd0, 0xd6, 0xd4, 0x48, - 0x70, 0xf4, 0xee, 0xe3, 0x16, 0xbe, 0xfa, 0x0b, 0x2d, 0xf5}, - "GOT ", - 18}, - {{0x12, 0xb1, 0x9d, 0x3e, 0x2c, 0xcc, 0x14, 0xda, 0x04, 0xfa, - 0xe3, 0x3e, 0x63, 0x65, 0x2c, 0xe4, 0x69, 0xb3, 0xf2, 0xfd}, - "GRID ", - 12}, - {{0xb4, 0x44, 0x20, 0x8c, 0xb0, 0x51, 0x6c, 0x15, 0x01, 0x78, - 0xfc, 0xf9, 0xa5, 0x26, 0x04, 0xbc, 0x04, 0xa1, 0xac, 0xea}, - "GRMD ", - 18}, - {{0xC1, 0x71, 0x95, 0xbd, 0xe4, 0x9D, 0x70, 0xCe, 0xfC, 0xF8, - 0xA9, 0xF2, 0xee, 0x17, 0x59, 0xFF, 0xC2, 0x7B, 0xF0, 0xB1}, - "GROO ", - 18}, - {{0x0a, 0x9A, 0x9c, 0xe6, 0x00, 0xD0, 0x8B, 0xF9, 0xb7, 0x6F, - 0x49, 0xFA, 0x4e, 0x7b, 0x38, 0xA6, 0x7E, 0xBE, 0xB1, 0xE6}, - "GROW ", - 8}, - {{0x22, 0x8b, 0xa5, 0x14, 0x30, 0x9f, 0xfd, 0xf0, 0x3a, 0x81, - 0xa2, 0x05, 0xa6, 0xd0, 0x40, 0xe4, 0x29, 0xd6, 0xe8, 0x0c}, - "GSC ", - 18}, - {{0xe5, 0x30, 0x44, 0x1f, 0x4f, 0x73, 0xbD, 0xB6, 0xDC, 0x2f, - 0xA5, 0xaF, 0x7c, 0x3f, 0xC5, 0xfD, 0x55, 0x1E, 0xc8, 0x38}, - "GSE ", - 4}, - {{0xB7, 0x08, 0x35, 0xD7, 0x82, 0x2e, 0xBB, 0x94, 0x26, 0xB5, - 0x65, 0x43, 0xE3, 0x91, 0x84, 0x6C, 0x10, 0x7b, 0xd3, 0x2C}, - "GTC ", - 18}, - {{0x02, 0x5a, 0xba, 0xd9, 0xe5, 0x18, 0x51, 0x6f, 0xda, 0xaf, - 0xbd, 0xcd, 0xb9, 0x70, 0x1b, 0x37, 0xfb, 0x7e, 0xf0, 0xfa}, - "GTKT ", - 0}, - {{0xc5, 0xbb, 0xae, 0x50, 0x78, 0x1b, 0xe1, 0x66, 0x93, 0x06, - 0xb9, 0xe0, 0x01, 0xef, 0xf5, 0x7a, 0x29, 0x57, 0xb0, 0x9d}, - "GTO ", - 5}, - {{0xbd, 0xcf, 0xbf, 0x5c, 0x4d, 0x91, 0xab, 0xc0, 0xbc, 0x97, - 0x09, 0xc7, 0x28, 0x6d, 0x00, 0x06, 0x3c, 0x0e, 0x6f, 0x22}, - "GUESS ", - 2}, - {{0x98, 0x47, 0x34, 0x5d, 0xe8, 0xb6, 0x14, 0xc9, 0x56, 0x14, - 0x6b, 0xbe, 0xa5, 0x49, 0x33, 0x6d, 0x9c, 0x8d, 0x26, 0xb6}, - "GULD ", - 8}, - {{0xf7, 0xB0, 0x98, 0x29, 0x8f, 0x7C, 0x69, 0xFc, 0x14, 0x61, - 0x0b, 0xf7, 0x1d, 0x5e, 0x02, 0xc6, 0x07, 0x92, 0x89, 0x4C}, - "GUP ", - 3}, - {{0x10, 0x3c, 0x3A, 0x20, 0x9d, 0xa5, 0x9d, 0x3E, 0x7C, 0x4A, - 0x89, 0x30, 0x7e, 0x66, 0x52, 0x1e, 0x08, 0x1C, 0xFD, 0xF0}, - "GVT ", - 18}, - {{0x58, 0xca, 0x30, 0x65, 0xc0, 0xf2, 0x4c, 0x7c, 0x96, 0xae, - 0xe8, 0xd6, 0x05, 0x6b, 0x5b, 0x5d, 0xec, 0xf9, 0xc2, 0xf8}, - "GXC ", - 10}, - {{0x22, 0xF0, 0xAF, 0x8D, 0x78, 0x85, 0x1b, 0x72, 0xEE, 0x79, - 0x9e, 0x05, 0xF5, 0x4A, 0x77, 0x00, 0x15, 0x86, 0xB1, 0x8A}, - "GXVC ", - 10}, - {{0x8C, 0x65, 0xe9, 0x92, 0x29, 0x7d, 0x5f, 0x09, 0x2A, 0x75, - 0x6d, 0xEf, 0x24, 0xF4, 0x78, 0x1a, 0x28, 0x01, 0x98, 0xFf}, - "GZE ", - 18}, - {{0xE6, 0x38, 0xdc, 0x39, 0xb6, 0xaD, 0xBE, 0xE8, 0x52, 0x6b, - 0x5C, 0x22, 0x38, 0x0b, 0x4b, 0x45, 0xdA, 0xf4, 0x6d, 0x8e}, - "GZR ", - 6}, - {{0x48, 0xc1, 0xb2, 0xf3, 0xef, 0xa8, 0x5f, 0xba, 0xfb, 0x2a, - 0xb9, 0x51, 0xbf, 0x4b, 0xa8, 0x60, 0xa0, 0x8c, 0xdb, 0xb7}, - "HAND ", - 0}, - {{0x5a, 0x56, 0x7e, 0x28, 0xdb, 0xfa, 0x2b, 0xbd, 0x3e, 0xf1, - 0x3c, 0x0a, 0x01, 0xbe, 0x11, 0x47, 0x45, 0x34, 0x96, 0x57}, - "HAPPY ", - 2}, - {{0x90, 0x02, 0xD4, 0x48, 0x5b, 0x75, 0x94, 0xe3, 0xE8, 0x50, - 0xF0, 0xa2, 0x06, 0x71, 0x3B, 0x30, 0x51, 0x13, 0xf6, 0x9e}, - "HAT ", - 12}, - {{0xC0, 0x11, 0xA7, 0x24, 0x00, 0xE5, 0x8e, 0xcD, 0x99, 0xEe, - 0x49, 0x7C, 0xF8, 0x9E, 0x37, 0x75, 0xd4, 0xbd, 0x73, 0x2F}, - "SNX ", - 18}, - {{0xe2, 0x49, 0x2f, 0x8d, 0x2a, 0x26, 0x18, 0xd8, 0x70, 0x9c, - 0xa9, 0x9b, 0x1d, 0x8d, 0x75, 0x71, 0x3b, 0xd8, 0x40, 0x89}, - "HB ", - 18}, - {{0xdd, 0x6c, 0x68, 0xbb, 0x32, 0x46, 0x2e, 0x01, 0x70, 0x50, - 0x11, 0xa4, 0xe2, 0xad, 0x1a, 0x60, 0x74, 0x0f, 0x21, 0x7f}, - "HBT ", - 15}, - {{0xe3, 0x4e, 0x19, 0x44, 0xe7, 0x76, 0xf3, 0x9b, 0x92, 0x52, - 0x79, 0x0a, 0x05, 0x27, 0xeb, 0xda, 0x64, 0x7a, 0xe6, 0x68}, - "HBZ ", - 18}, - {{0xff, 0xe8, 0x19, 0x6b, 0xc2, 0x59, 0xe8, 0xde, 0xdc, 0x54, - 0x4d, 0x93, 0x57, 0x86, 0xaa, 0x47, 0x09, 0xec, 0x3e, 0x64}, - "HDG ", - 18}, - {{0x95, 0xC4, 0xbe, 0x85, 0x34, 0xd6, 0x9C, 0x24, 0x8C, 0x06, - 0x23, 0xc4, 0xC9, 0xa7, 0xA2, 0xa0, 0x01, 0xc1, 0x73, 0x37}, - "HDL ", - 18}, - {{0x49, 0x1c, 0x9a, 0x23, 0xdb, 0x85, 0x62, 0x3e, 0xed, 0x45, - 0x5a, 0x8e, 0xfd, 0xd6, 0xab, 0xa9, 0xb9, 0x11, 0xc5, 0xdf}, - "HER ", - 18}, - {{0xba, 0x21, 0x84, 0x52, 0x0A, 0x1c, 0xC4, 0x9a, 0x61, 0x59, - 0xc5, 0x7e, 0x61, 0xE1, 0x84, 0x4E, 0x08, 0x56, 0x15, 0xB6}, - "HGT ", - 8}, - {{0x9b, 0xb1, 0xdb, 0x14, 0x45, 0xb8, 0x32, 0x13, 0xa5, 0x6d, - 0x90, 0xd3, 0x31, 0x89, 0x4b, 0x3f, 0x26, 0x21, 0x8e, 0x4e}, - "HIBT ", - 18}, - {{0xa9, 0x24, 0x0f, 0xBC, 0xAC, 0x1F, 0x0b, 0x9A, 0x6a, 0xDf, - 0xB0, 0x4a, 0x53, 0xc8, 0xE3, 0xB0, 0xcC, 0x1D, 0x14, 0x44}, - "HIG ", - 18}, - {{0x14, 0xF3, 0x7B, 0x57, 0x42, 0x42, 0xD3, 0x66, 0x55, 0x8d, - 0xB6, 0x1f, 0x33, 0x35, 0x28, 0x9a, 0x50, 0x35, 0xc5, 0x06}, - "HKG ", - 3}, - {{0x9e, 0x6b, 0x2b, 0x11, 0x54, 0x2f, 0x2b, 0xc5, 0x2f, 0x30, - 0x29, 0x07, 0x7a, 0xce, 0x37, 0xe8, 0xfd, 0x83, 0x8d, 0x7f}, - "HKN ", - 8}, - {{0x88, 0xac, 0x94, 0xd5, 0xd1, 0x75, 0x13, 0x03, 0x47, 0xfc, - 0x95, 0xe1, 0x09, 0xd7, 0x7a, 0xc0, 0x9d, 0xbf, 0x5a, 0xb7}, - "HKY ", - 18}, - {{0x66, 0xeb, 0x65, 0xD7, 0xAb, 0x8e, 0x95, 0x67, 0xba, 0x0f, - 0xa6, 0xE3, 0x7c, 0x30, 0x59, 0x56, 0xc5, 0x34, 0x15, 0x74}, - "HLX ", - 5}, - {{0xAa, 0x0b, 0xb1, 0x0C, 0xEc, 0x1f, 0xa3, 0x72, 0xeb, 0x3A, - 0xbc, 0x17, 0xC9, 0x33, 0xFC, 0x6b, 0xa8, 0x63, 0xDD, 0x9E}, - "HMC ", - 18}, - {{0xcb, 0xCC, 0x0F, 0x03, 0x6E, 0xD4, 0x78, 0x8F, 0x63, 0xFC, - 0x0f, 0xEE, 0x32, 0x87, 0x3d, 0x6A, 0x74, 0x87, 0xb9, 0x08}, - "HMQ ", - 8}, - {{0xb4, 0x5d, 0x7B, 0xc4, 0xcE, 0xBc, 0xAB, 0x98, 0xaD, 0x09, - 0xBA, 0xBD, 0xF8, 0xC8, 0x18, 0xB2, 0x29, 0x2B, 0x67, 0x2c}, - "HODL ", - 18}, - {{0x5B, 0x07, 0x51, 0x71, 0x3b, 0x25, 0x27, 0xd7, 0xf0, 0x02, - 0xc0, 0xc4, 0xe2, 0xa3, 0x7e, 0x12, 0x19, 0x61, 0x0A, 0x6B}, - "HORSE ", - 18}, - {{0x6c, 0x6e, 0xe5, 0xe3, 0x1d, 0x82, 0x8d, 0xe2, 0x41, 0x28, - 0x2b, 0x96, 0x06, 0xc8, 0xe9, 0x8e, 0xa4, 0x85, 0x26, 0xe2}, - "HoloTkn ", - 18}, - {{0x9a, 0xf8, 0x39, 0x68, 0x7f, 0x6c, 0x94, 0x54, 0x2a, 0xc5, - 0xec, 0xe2, 0xe3, 0x17, 0xda, 0xae, 0x35, 0x54, 0x93, 0xa1}, - "Hydro ", - 18}, - {{0x38, 0xc6, 0xa6, 0x83, 0x04, 0xcd, 0xef, 0xb9, 0xbe, 0xc4, - 0x8b, 0xbf, 0xaa, 0xba, 0x5c, 0x5b, 0x47, 0x81, 0x8b, 0xb2}, - "HPB ", - 18}, - {{0x55, 0x4C, 0x20, 0xB7, 0xc4, 0x86, 0xbe, 0xeE, 0x43, 0x92, - 0x77, 0xb4, 0x54, 0x0A, 0x43, 0x45, 0x66, 0xdC, 0x4C, 0x02}, - "HST ", - 18}, - {{0x6f, 0x25, 0x96, 0x37, 0xdc, 0xd7, 0x4c, 0x76, 0x77, 0x81, - 0xe3, 0x7b, 0xc6, 0x13, 0x3c, 0xd6, 0xa6, 0x8a, 0xa1, 0x61}, - "HT ", - 18}, - {{0xC0, 0xEb, 0x85, 0x28, 0x5d, 0x83, 0x21, 0x7C, 0xD7, 0xc8, - 0x91, 0x70, 0x2b, 0xcb, 0xC0, 0xFC, 0x40, 0x1E, 0x2D, 0x9D}, - "HVN ", - 8}, - {{0xeb, 0xbd, 0xf3, 0x02, 0xc9, 0x40, 0xc6, 0xbf, 0xd4, 0x9c, - 0x6b, 0x16, 0x5f, 0x45, 0x7f, 0xdb, 0x32, 0x46, 0x49, 0xbc}, - "HYDRO ", - 18}, - {{0xe9, 0xff, 0x07, 0x80, 0x9c, 0xcf, 0xf0, 0x5d, 0xae, 0x74, - 0x99, 0x0e, 0x25, 0x83, 0x1d, 0x0b, 0xc5, 0xcb, 0xe5, 0x75}, - "Hdp ", - 18}, - {{0x84, 0x54, 0x3f, 0x86, 0x8e, 0xc1, 0xb1, 0xfa, 0xc5, 0x10, - 0xd4, 0x9d, 0x13, 0xc0, 0x69, 0xf6, 0x4c, 0xd2, 0xd5, 0xf9}, - "Hdp2 ", - 18}, - {{0x5a, 0x84, 0x96, 0x9b, 0xb6, 0x63, 0xfb, 0x64, 0xF6, 0xd0, - 0x15, 0xDc, 0xF9, 0xF6, 0x22, 0xAe, 0xdc, 0x79, 0x67, 0x50}, - "ICE ", - 18}, - {{0x88, 0x86, 0x66, 0xCA, 0x69, 0xE0, 0xf1, 0x78, 0xDE, 0xD6, - 0xD7, 0x5b, 0x57, 0x26, 0xCe, 0xe9, 0x9A, 0x87, 0xD6, 0x98}, - "ICN ", - 18}, - {{0xa3, 0x3e, 0x72, 0x9b, 0xf4, 0xfd, 0xeb, 0x86, 0x8b, 0x53, - 0x4e, 0x1f, 0x20, 0x52, 0x34, 0x63, 0xd9, 0xc4, 0x6b, 0xee}, - "ICO ", - 10}, - {{0x01, 0x4B, 0x50, 0x46, 0x65, 0x90, 0x34, 0x0D, 0x41, 0x30, - 0x7C, 0xc5, 0x4D, 0xCe, 0xe9, 0x90, 0xc8, 0xD5, 0x8a, 0xa8}, - "ICOS ", - 6}, - {{0xb5, 0xa5, 0xf2, 0x26, 0x94, 0x35, 0x2c, 0x15, 0xb0, 0x03, - 0x23, 0x84, 0x4a, 0xd5, 0x45, 0xab, 0xb2, 0xb1, 0x10, 0x28}, - "ICX ", - 18}, - {{0x81, 0x4c, 0xaf, 0xd4, 0x78, 0x2d, 0x2e, 0x72, 0x81, 0x70, - 0xfd, 0xa6, 0x82, 0x57, 0x98, 0x3f, 0x03, 0x32, 0x1c, 0x58}, - "IDEA ", - 0}, - {{0x51, 0x36, 0xc9, 0x8a, 0x80, 0x81, 0x1c, 0x3f, 0x46, 0xbd, - 0xda, 0x8b, 0x5c, 0x45, 0x55, 0xcf, 0xd9, 0xf8, 0x12, 0xf0}, - "IDH ", - 6}, - {{0xcc, 0x13, 0xfc, 0x62, 0x7e, 0xff, 0xd6, 0xe3, 0x5d, 0x2d, - 0x27, 0x06, 0xea, 0x3c, 0x4d, 0x73, 0x96, 0xc6, 0x10, 0xea}, - "IDXM ", - 8}, - {{0x85, 0x9a, 0x9c, 0x0b, 0x44, 0xcb, 0x70, 0x66, 0xd9, 0x56, - 0xa9, 0x58, 0xb0, 0xb8, 0x2e, 0x54, 0xc9, 0xe4, 0x4b, 0x4b}, - "iETH ", - 8}, - {{0x76, 0x54, 0x91, 0x5a, 0x1b, 0x82, 0xd6, 0xd2, 0xd0, 0xaf, - 0xc3, 0x7c, 0x52, 0xaf, 0x55, 0x6e, 0xa8, 0x98, 0x3c, 0x7e}, - "IFT ", - 18}, - {{0x8a, 0x88, 0xf0, 0x4e, 0x0c, 0x90, 0x50, 0x54, 0xd2, 0xf3, - 0x3b, 0x26, 0xbb, 0x3a, 0x46, 0xd7, 0x09, 0x1a, 0x03, 0x9a}, - "IG ", - 18}, - {{0xed, 0xa8, 0xb0, 0x16, 0xef, 0xa8, 0xb1, 0x16, 0x12, 0x08, - 0xcf, 0x04, 0x1c, 0xd8, 0x69, 0x72, 0xee, 0xe0, 0xf3, 0x1e}, - "IHT ", - 18}, - {{0x16, 0x66, 0x2f, 0x73, 0xdf, 0x3e, 0x79, 0xe5, 0x4c, 0x6c, - 0x59, 0x38, 0xb4, 0x31, 0x3f, 0x92, 0xc5, 0x24, 0xc1, 0x20}, - "IIC ", - 18}, - {{0x88, 0xAE, 0x96, 0x84, 0x5e, 0x15, 0x75, 0x58, 0xef, 0x59, - 0xe9, 0xFf, 0x90, 0xE7, 0x66, 0xE2, 0x2E, 0x48, 0x03, 0x90}, - "IKB ", - 0}, - {{0xe3, 0x83, 0x1c, 0x5A, 0x98, 0x2B, 0x27, 0x9A, 0x19, 0x84, - 0x56, 0xD5, 0x77, 0xcf, 0xb9, 0x04, 0x24, 0xcb, 0x63, 0x40}, - "IMC ", - 6}, - {{0x22, 0xE5, 0xF6, 0x2D, 0x0F, 0xA1, 0x99, 0x74, 0x74, 0x9f, - 0xaa, 0x19, 0x4e, 0x3d, 0x3e, 0xF6, 0xd8, 0x9c, 0x08, 0xd7}, - "IMT Immo ", - 0}, - {{0x13, 0x11, 0x9E, 0x34, 0xE1, 0x40, 0x09, 0x7a, 0x50, 0x7B, - 0x07, 0xa5, 0x56, 0x4b, 0xDe, 0x1b, 0xC3, 0x75, 0xD9, 0xe6}, - "IMT Mony ", - 18}, - {{0xf8, 0xe3, 0x86, 0xED, 0xa8, 0x57, 0x48, 0x4f, 0x5a, 0x12, - 0xe4, 0xB5, 0xDA, 0xa9, 0x98, 0x4E, 0x06, 0xE7, 0x37, 0x05}, - "IND ", - 18}, - {{0x24, 0xdd, 0xff, 0x6d, 0x8b, 0x8a, 0x42, 0xd8, 0x35, 0xaf, - 0x3b, 0x44, 0x0d, 0xe9, 0x1f, 0x33, 0x86, 0x55, 0x4a, 0xa4}, - "ING ", - 18}, - {{0x48, 0xe5, 0x41, 0x3b, 0x73, 0xad, 0xd2, 0x43, 0x4e, 0x47, - 0x50, 0x4E, 0x2a, 0x22, 0xd1, 0x49, 0x40, 0xdB, 0xFe, 0x78}, - "INRM ", - 3}, - {{0x5b, 0x2e, 0x4a, 0x70, 0x0d, 0xfb, 0xc5, 0x60, 0x06, 0x1e, - 0x95, 0x7e, 0xde, 0xc8, 0xf6, 0xee, 0xeb, 0x74, 0xa3, 0x20}, - "INS ", - 10}, - {{0xc7, 0x2f, 0xe8, 0xe3, 0xdd, 0x5b, 0xef, 0x0f, 0x9f, 0x31, - 0xf2, 0x59, 0x39, 0x9f, 0x30, 0x12, 0x72, 0xef, 0x2a, 0x2d}, - "INSTAR ", - 18}, - {{0x0b, 0x76, 0x54, 0x4f, 0x6c, 0x41, 0x3a, 0x55, 0x5f, 0x30, - 0x9b, 0xf7, 0x62, 0x60, 0xd1, 0xe0, 0x23, 0x77, 0xc0, 0x2a}, - "INT ", - 6}, - {{0xec, 0xe8, 0x36, 0x17, 0xdb, 0x20, 0x8a, 0xd2, 0x55, 0xad, - 0x4f, 0x45, 0xda, 0xf8, 0x1e, 0x25, 0x13, 0x75, 0x35, 0xbb}, - "INV ", - 8}, - {{0xa8, 0x00, 0x6c, 0x4c, 0xa5, 0x6f, 0x24, 0xd6, 0x83, 0x67, - 0x27, 0xd1, 0x06, 0x34, 0x93, 0x20, 0xdb, 0x7f, 0xef, 0x82}, - "INXT ", - 8}, - {{0xFA, 0x1a, 0x85, 0x6C, 0xfa, 0x34, 0x09, 0xCF, 0xa1, 0x45, - 0xFa, 0x4e, 0x20, 0xEb, 0x27, 0x0d, 0xF3, 0xEB, 0x21, 0xab}, - "IOST ", - 18}, - {{0x6f, 0xb3, 0xe0, 0xa2, 0x17, 0x40, 0x7e, 0xff, 0xf7, 0xca, - 0x06, 0x2d, 0x46, 0xc2, 0x6e, 0x5d, 0x60, 0xa1, 0x4d, 0x69}, - "IOTX ", - 18}, - {{0x64, 0xCd, 0xF8, 0x19, 0xd3, 0xE7, 0x5A, 0xc8, 0xeC, 0x21, - 0x7B, 0x34, 0x96, 0xd7, 0xcE, 0x16, 0x7B, 0xe4, 0x2e, 0x80}, - "IPL ", - 18}, - {{0x00, 0x1f, 0x0a, 0xa5, 0xda, 0x15, 0x58, 0x5e, 0x5b, 0x23, - 0x05, 0xdb, 0xab, 0x2b, 0xac, 0x42, 0x5e, 0xa7, 0x10, 0x07}, - "IPSX ", - 18}, - {{0x0c, 0xf7, 0x13, 0xb1, 0x1c, 0x9b, 0x98, 0x6e, 0xc4, 0x0d, - 0x65, 0xbd, 0x4f, 0x7f, 0xbd, 0x50, 0xf6, 0xff, 0x2d, 0x64}, - "IST34 ", - 18}, - {{0x5e, 0x6b, 0x6d, 0x9a, 0xba, 0xd9, 0x09, 0x3f, 0xdc, 0x86, - 0x1e, 0xa1, 0x60, 0x0e, 0xba, 0x1b, 0x35, 0x5c, 0xd9, 0x40}, - "ITC ", - 18}, - {{0x0a, 0xeF, 0x06, 0xDc, 0xCC, 0xC5, 0x31, 0xe5, 0x81, 0xf0, - 0x44, 0x00, 0x59, 0xE6, 0xFf, 0xCC, 0x20, 0x60, 0x39, 0xEE}, - "ITT ", - 8}, - {{0xA4, 0xeA, 0x68, 0x7A, 0x2A, 0x7F, 0x29, 0xcF, 0x2d, 0xc6, - 0x6B, 0x39, 0xc6, 0x8e, 0x44, 0x11, 0xC0, 0xD0, 0x0C, 0x49}, - "IVY ", - 18}, - {{0xfc, 0xa4, 0x79, 0x62, 0xd4, 0x5a, 0xdf, 0xdf, 0xd1, 0xab, - 0x2d, 0x97, 0x23, 0x15, 0xdb, 0x4c, 0xe7, 0xcc, 0xf0, 0x94}, - "IXT ", - 8}, - {{0xc3, 0x4b, 0x21, 0xf6, 0xf8, 0xe5, 0x1c, 0xc9, 0x65, 0xc2, - 0x39, 0x3b, 0x3c, 0xcf, 0xa3, 0xb8, 0x2b, 0xeb, 0x24, 0x03}, - "IoT ", - 6}, - {{0x0d, 0x26, 0x2e, 0x5d, 0xc4, 0xa0, 0x6a, 0x0f, 0x1c, 0x90, - 0xce, 0x79, 0xc7, 0xa6, 0x0c, 0x09, 0xdf, 0xc8, 0x84, 0xe4}, - "J8T ", - 8}, - {{0x88, 0x4e, 0x39, 0x02, 0xC4, 0xd5, 0xcF, 0xA8, 0x6d, 0xe4, - 0xaC, 0xE7, 0xA9, 0x6A, 0xA9, 0x1E, 0xbC, 0x25, 0xC0, 0xFf}, - "JBX ", - 0}, - {{0xe2, 0xd8, 0x2d, 0xc7, 0xda, 0x0e, 0x6f, 0x88, 0x2e, 0x96, - 0x84, 0x64, 0x51, 0xf4, 0xfa, 0xbc, 0xc8, 0xf9, 0x05, 0x28}, - "JC ", - 18}, - {{0x87, 0x27, 0xc1, 0x12, 0xc7, 0x12, 0xc4, 0xa0, 0x33, 0x71, - 0xac, 0x87, 0xa7, 0x4d, 0xd6, 0xab, 0x10, 0x4a, 0xf7, 0x68}, - "JET ", - 18}, - {{0xa5, 0xFd, 0x1A, 0x79, 0x1C, 0x4d, 0xfc, 0xaa, 0xcC, 0x96, - 0x3D, 0x4F, 0x73, 0xc6, 0xAe, 0x58, 0x24, 0x14, 0x9e, 0xA7}, - "JNT ", - 18}, - {{0xdb, 0x45, 0x5c, 0x71, 0xc1, 0xbc, 0x2d, 0xe4, 0xe8, 0x0c, - 0xa4, 0x51, 0x18, 0x40, 0x41, 0xef, 0x32, 0x05, 0x40, 0x01}, - "JOT ", - 18}, - {{0xDD, 0xe1, 0x2a, 0x12, 0xA6, 0xf6, 0x71, 0x56, 0xe0, 0xDA, - 0x67, 0x2b, 0xe0, 0x5c, 0x37, 0x4e, 0x1B, 0x0a, 0x3e, 0x57}, - "JOY ", - 6}, - {{0x77, 0x34, 0x50, 0x33, 0x5e, 0xD4, 0xec, 0x3D, 0xB4, 0x5a, - 0xF7, 0x4f, 0x34, 0xF2, 0xc8, 0x53, 0x48, 0x64, 0x5D, 0x39}, - "JetCoins ", - 18}, - {{0x14, 0x10, 0x43, 0x4b, 0x03, 0x46, 0xf5, 0xbe, 0x67, 0x8d, - 0x0f, 0xb5, 0x54, 0xe5, 0xc7, 0xab, 0x62, 0x0f, 0x8f, 0x4a}, - "KAN ", - 18}, - {{0x0D, 0x6D, 0xD9, 0xf6, 0x8d, 0x24, 0xEC, 0x1d, 0x5f, 0xE2, - 0x17, 0x4f, 0x3E, 0xC8, 0xDA, 0xB5, 0x2B, 0x52, 0xBa, 0xF5}, - "KC ", - 18}, - {{0x72, 0xD3, 0x2a, 0xc1, 0xc5, 0xE6, 0x6B, 0xfC, 0x5b, 0x08, - 0x80, 0x62, 0x71, 0xf8, 0xeE, 0xF9, 0x15, 0x54, 0x51, 0x64}, - "KEE ", - 0}, - {{0x4c, 0xd9, 0x88, 0xaf, 0xba, 0xd3, 0x72, 0x89, 0xba, 0xaf, - 0x53, 0xc1, 0x3e, 0x98, 0xe2, 0xbd, 0x46, 0xaa, 0xea, 0x8c}, - "BihuKey ", - 18}, - {{0x4C, 0xC1, 0x93, 0x56, 0xf2, 0xD3, 0x73, 0x38, 0xb9, 0x80, - 0x2a, 0xa8, 0xE8, 0xfc, 0x58, 0xB0, 0x37, 0x32, 0x96, 0xE7}, - "SelfKey ", - 18}, - {{0x27, 0x69, 0x5E, 0x09, 0x14, 0x9A, 0xdC, 0x73, 0x8A, 0x97, - 0x8e, 0x9A, 0x67, 0x8F, 0x99, 0xE4, 0xc3, 0x9e, 0x9e, 0xb9}, - "KICK ", - 8}, - {{0x81, 0x8F, 0xc6, 0xC2, 0xEc, 0x59, 0x86, 0xbc, 0x6E, 0x2C, - 0xBf, 0x00, 0x93, 0x9d, 0x90, 0x55, 0x6a, 0xB1, 0x2c, 0xe5}, - "KIN ", - 18}, - {{0x46, 0x18, 0x51, 0x9d, 0xe4, 0xc3, 0x04, 0xf3, 0x44, 0x4f, - 0xfa, 0x7f, 0x81, 0x2d, 0xdd, 0xc2, 0x97, 0x1c, 0xc6, 0x88}, - "KIND ", - 8}, - {{0xdd, 0x97, 0x4D, 0x5C, 0x2e, 0x29, 0x28, 0xde, 0xA5, 0xF7, - 0x1b, 0x98, 0x25, 0xb8, 0xb6, 0x46, 0x68, 0x6B, 0xD2, 0x00}, - "KNC ", - 18}, - {{0x8e, 0x56, 0x10, 0xab, 0x5e, 0x39, 0xd2, 0x68, 0x28, 0x16, - 0x76, 0x40, 0xea, 0x29, 0x82, 0x3f, 0xe1, 0xdd, 0x58, 0x43}, - "KNDC ", - 8}, - {{0xff, 0x5c, 0x25, 0xd2, 0xf4, 0x0b, 0x47, 0xc4, 0xa3, 0x7f, - 0x98, 0x9d, 0xe9, 0x33, 0xe2, 0x65, 0x62, 0xef, 0x0a, 0xc0}, - "KNT ", - 16}, - {{0xb5, 0xc3, 0x3f, 0x96, 0x5c, 0x88, 0x99, 0xd2, 0x55, 0xc3, - 0x4c, 0xdd, 0x2a, 0x3e, 0xfa, 0x8a, 0xbc, 0xbb, 0x3d, 0xea}, - "KPR ", - 18}, - {{0x46, 0x4e, 0xbe, 0x77, 0xc2, 0x93, 0xe4, 0x73, 0xb4, 0x8c, - 0xfe, 0x96, 0xdd, 0xcf, 0x88, 0xfc, 0xf7, 0xbf, 0xda, 0xc0}, - "KRL ", - 18}, - {{0xdf, 0x13, 0x38, 0xFb, 0xAf, 0xe7, 0xaF, 0x17, 0x89, 0x15, - 0x16, 0x27, 0xB8, 0x86, 0x78, 0x1b, 0xa5, 0x56, 0xeF, 0x9a}, - "KUE ", - 18}, - {{0x24, 0x1b, 0xa6, 0x72, 0x57, 0x4a, 0x78, 0xa3, 0xa6, 0x04, - 0xcd, 0xd0, 0xa9, 0x44, 0x29, 0xa7, 0x3a, 0x84, 0xa3, 0x24}, - "KWATT ", - 18}, - {{0x95, 0x41, 0xFD, 0x8B, 0x9b, 0x5F, 0xA9, 0x73, 0x81, 0x78, - 0x37, 0x83, 0xCe, 0xBF, 0x2F, 0x5f, 0xA7, 0x93, 0xC2, 0x62}, - "KZN ", - 8}, - {{0xE5, 0x03, 0x65, 0xf5, 0xD6, 0x79, 0xCB, 0x98, 0xa1, 0xdd, - 0x62, 0xD6, 0xF6, 0xe5, 0x8e, 0x59, 0x32, 0x1B, 0xcd, 0xDf}, - "LA ", - 18}, - {{0xfD, 0x10, 0x7B, 0x47, 0x3A, 0xB9, 0x0e, 0x8F, 0xbd, 0x89, - 0x87, 0x21, 0x44, 0xa3, 0xDC, 0x92, 0xC4, 0x0F, 0xa8, 0xC9}, - "LALA ", - 18}, - {{0x2f, 0x85, 0xe5, 0x02, 0xa9, 0x88, 0xaf, 0x76, 0xf7, 0xee, - 0x6d, 0x83, 0xb7, 0xdb, 0x8d, 0x6c, 0x0a, 0x82, 0x3b, 0xf9}, - "LATX ", - 8}, - {{0xfe, 0x5f, 0x14, 0x1b, 0xf9, 0x4f, 0xe8, 0x4b, 0xc2, 0x8d, - 0xed, 0x0a, 0xb9, 0x66, 0xc1, 0x6b, 0x17, 0x49, 0x06, 0x57}, - "LBA ", - 18}, - {{0xaa, 0x19, 0x96, 0x1b, 0x6b, 0x85, 0x8d, 0x9f, 0x18, 0xa1, - 0x15, 0xf2, 0x5a, 0xa1, 0xd9, 0x8a, 0xbc, 0x1f, 0xdb, 0xa8}, - "LCS ", - 18}, - {{0x4a, 0x37, 0xa9, 0x1e, 0xec, 0x4c, 0x97, 0xf9, 0x09, 0x0c, - 0xe6, 0x6d, 0x21, 0xd3, 0xb3, 0xaa, 0xdf, 0x1a, 0xe5, 0xad}, - "LCT ", - 18}, - {{0x05, 0xc7, 0x06, 0x5d, 0x64, 0x40, 0x96, 0xa4, 0xe4, 0xc3, - 0xfe, 0x24, 0xaf, 0x86, 0xe3, 0x6d, 0xe0, 0x21, 0x07, 0x4b}, - "LCT ", - 18}, - {{0x51, 0x02, 0x79, 0x1c, 0xa0, 0x2f, 0xc3, 0x59, 0x53, 0x98, - 0x40, 0x0b, 0xfe, 0x0e, 0x33, 0xd7, 0xb6, 0xc8, 0x22, 0x67}, - "LDC ", - 18}, - {{0x5b, 0x26, 0xC5, 0xD0, 0x77, 0x2E, 0x5b, 0xba, 0xC8, 0xb3, - 0x18, 0x2A, 0xE9, 0xa1, 0x3f, 0x9B, 0xB2, 0xD0, 0x37, 0x65}, - "LEDU ", - 8}, - {{0x60, 0xC2, 0x44, 0x07, 0xd0, 0x17, 0x82, 0xC2, 0x17, 0x5D, - 0x32, 0xfe, 0x7C, 0x89, 0x21, 0xed, 0x73, 0x23, 0x71, 0xD1}, - "LEMO ", - 18}, - {{0x80, 0xfB, 0x78, 0x4B, 0x7e, 0xD6, 0x67, 0x30, 0xe8, 0xb1, - 0xDB, 0xd9, 0x82, 0x0a, 0xFD, 0x29, 0x93, 0x1a, 0xab, 0x03}, - "LEND ", - 18}, - {{0x0f, 0x4c, 0xa9, 0x26, 0x60, 0xef, 0xad, 0x97, 0xa9, 0xa7, - 0x0c, 0xb0, 0xfe, 0x96, 0x9c, 0x75, 0x54, 0x39, 0x77, 0x2c}, - "LEV ", - 9}, - {{0xc7, 0x98, 0xcd, 0x1c, 0x49, 0xdb, 0x0e, 0x29, 0x73, 0x12, - 0xe4, 0xc6, 0x82, 0x75, 0x26, 0x68, 0xce, 0x1d, 0xb2, 0xad}, - "LFR ", - 5}, - {{0xc5, 0x20, 0xF3, 0xAc, 0x30, 0x3a, 0x10, 0x7D, 0x8F, 0x4B, - 0x08, 0xb3, 0x26, 0xB6, 0xea, 0x66, 0xA4, 0xf9, 0x61, 0xcd}, - "LG ", - 18}, - {{0x59, 0x06, 0x1b, 0x6f, 0x26, 0xBB, 0x4A, 0x9c, 0xE5, 0x82, - 0x8A, 0x19, 0xd3, 0x5C, 0xFD, 0x5A, 0x4B, 0x80, 0xF0, 0x56}, - "LGD ", - 8}, - {{0x12, 0x3a, 0xb1, 0x95, 0xdd, 0x38, 0xb1, 0xb4, 0x05, 0x10, - 0xd4, 0x67, 0xa6, 0xa3, 0x59, 0xb2, 0x01, 0xaf, 0x05, 0x6f}, - "LGO ", - 8}, - {{0x2e, 0xb8, 0x6e, 0x8f, 0xc5, 0x20, 0xe0, 0xf6, 0xbb, 0x5d, - 0x9a, 0xf0, 0x8f, 0x92, 0x4f, 0xe7, 0x05, 0x58, 0xab, 0x89}, - "LGR ", - 8}, - {{0xe6, 0xdf, 0xbf, 0x1f, 0xac, 0xa9, 0x50, 0x36, 0xb8, 0xe7, - 0x6e, 0x1f, 0xb2, 0x89, 0x33, 0xd0, 0x25, 0xb7, 0x6c, 0xc0}, - "LIBER ", - 18}, - {{0xEB, 0x99, 0x51, 0x02, 0x16, 0x98, 0xB4, 0x2e, 0x43, 0x99, - 0xf9, 0xcB, 0xb6, 0x26, 0x7A, 0xa3, 0x5F, 0x82, 0xD5, 0x9D}, - "LIF ", - 18}, - {{0xff, 0x18, 0xdb, 0xc4, 0x87, 0xb4, 0xc2, 0xe3, 0x22, 0x2d, - 0x11, 0x59, 0x52, 0xba, 0xbf, 0xda, 0x8b, 0xa5, 0x2f, 0x5f}, - "LIFE ", - 18}, - {{0x02, 0xf6, 0x1f, 0xd2, 0x66, 0xda, 0x6e, 0x8b, 0x10, 0x2d, - 0x41, 0x21, 0xf5, 0xce, 0x7b, 0x99, 0x26, 0x40, 0xcf, 0x98}, - "LIKE ", - 18}, - {{0x51, 0x49, 0x10, 0x77, 0x1a, 0xf9, 0xca, 0x65, 0x6a, 0xf8, - 0x40, 0xdf, 0xf8, 0x3e, 0x82, 0x64, 0xec, 0xf9, 0x86, 0xca}, - "ChainLnk ", - 18}, - {{0xe2, 0xe6, 0xd4, 0xbe, 0x08, 0x6c, 0x69, 0x38, 0xb5, 0x3b, - 0x22, 0x14, 0x48, 0x55, 0xee, 0xf6, 0x74, 0x28, 0x16, 0x39}, - "LINK ptf ", - 18}, - {{0x24, 0xA7, 0x7c, 0x1F, 0x17, 0xC5, 0x47, 0x10, 0x5E, 0x14, - 0x81, 0x3e, 0x51, 0x7b, 0xe0, 0x6b, 0x00, 0x40, 0xaa, 0x76}, - "LIVE ", - 18}, - {{0x49, 0xbd, 0x2d, 0xa7, 0x5b, 0x1f, 0x7a, 0xf1, 0xe4, 0xdf, - 0xd6, 0xb1, 0x12, 0x5f, 0xec, 0xde, 0x59, 0xdb, 0xec, 0x58}, - "LKY ", - 18}, - {{0x25, 0xB6, 0x32, 0x5f, 0x5B, 0xB1, 0xc1, 0xE0, 0x3c, 0xfb, - 0xC3, 0xe5, 0x3F, 0x47, 0x0E, 0x1F, 0x1c, 0xa0, 0x22, 0xE3}, - "LML ", - 18}, - {{0x63, 0xe6, 0x34, 0x33, 0x0A, 0x20, 0x15, 0x0D, 0xbB, 0x61, - 0xB1, 0x56, 0x48, 0xbC, 0x73, 0x85, 0x5d, 0x6C, 0xCF, 0x07}, - "LNC ", - 18}, - {{0x6b, 0xeb, 0x41, 0x8f, 0xc6, 0xe1, 0x95, 0x82, 0x04, 0xac, - 0x8b, 0xad, 0xdc, 0xf1, 0x09, 0xb8, 0xe9, 0x69, 0x49, 0x66}, - "LinkCoin ", - 18}, - {{0x09, 0x47, 0xb0, 0xe6, 0xD8, 0x21, 0x37, 0x88, 0x05, 0xc9, - 0x59, 0x82, 0x91, 0x38, 0x5C, 0xE7, 0xc7, 0x91, 0xA6, 0xB2}, - "LND ", - 18}, - {{0x5e, 0x33, 0x46, 0x44, 0x40, 0x10, 0x13, 0x53, 0x22, 0x26, - 0x8a, 0x46, 0x30, 0xd2, 0xed, 0x5f, 0x8d, 0x09, 0x44, 0x6c}, - "LOC ", - 18}, - {{0x9c, 0x23, 0xd6, 0x7a, 0xea, 0x7b, 0x95, 0xd8, 0x09, 0x42, - 0xe3, 0x83, 0x6b, 0xcd, 0xf7, 0xe7, 0x08, 0xa7, 0x47, 0xc2}, - "LOCI ", - 18}, - {{0xC6, 0x45, 0x00, 0xDD, 0x7B, 0x0f, 0x17, 0x94, 0x80, 0x7e, - 0x67, 0x80, 0x2F, 0x8A, 0xbb, 0xf5, 0xF8, 0xFf, 0xb0, 0x54}, - "LOCUS ", - 18}, - {{0x25, 0x3c, 0x7d, 0xd0, 0x74, 0xf4, 0xba, 0xcb, 0x30, 0x53, - 0x87, 0xf9, 0x22, 0x22, 0x5a, 0x4f, 0x73, 0x7c, 0x08, 0xbd}, - "LOOK ", - 18}, - {{0x21, 0xae, 0x23, 0xb8, 0x82, 0xa3, 0x40, 0xa2, 0x22, 0x82, - 0x16, 0x20, 0x86, 0xbc, 0x98, 0xd3, 0xe2, 0xb7, 0x30, 0x18}, - "LOOK old ", - 18}, - {{0xa4, 0xe8, 0xc3, 0xec, 0x45, 0x61, 0x07, 0xea, 0x67, 0xd3, - 0x07, 0x5b, 0xf9, 0xe3, 0xdf, 0x3a, 0x75, 0x82, 0x3d, 0xb0}, - "LOOM ", - 18}, - {{0xEF, 0x68, 0xe7, 0xC6, 0x94, 0xF4, 0x0c, 0x82, 0x02, 0x82, - 0x1e, 0xDF, 0x52, 0x5d, 0xE3, 0x78, 0x24, 0x58, 0x63, 0x9f}, - "LRC ", - 18}, - {{0x5d, 0xbe, 0x29, 0x6f, 0x97, 0xb2, 0x3c, 0x4a, 0x6a, 0xa6, - 0x18, 0x3d, 0x73, 0xe5, 0x74, 0xd0, 0x2b, 0xa5, 0xc7, 0x19}, - "LUC ", - 18}, - {{0xFB, 0x12, 0xe3, 0xCc, 0xA9, 0x83, 0xB9, 0xf5, 0x9D, 0x90, - 0x91, 0x2F, 0xd1, 0x7F, 0x8D, 0x74, 0x5A, 0x8B, 0x29, 0x53}, - "LUCK ", - 0}, - {{0xa8, 0x9b, 0x59, 0x34, 0x86, 0x34, 0x47, 0xf6, 0xe4, 0xfc, - 0x53, 0xb3, 0x15, 0xa9, 0x3e, 0x87, 0x3b, 0xda, 0x69, 0xa3}, - "LUM ", - 18}, - {{0xfa, 0x05, 0xA7, 0x3F, 0xfE, 0x78, 0xef, 0x8f, 0x1a, 0x73, - 0x94, 0x73, 0xe4, 0x62, 0xc5, 0x4b, 0xae, 0x65, 0x67, 0xD9}, - "LUN ", - 18}, - {{0x57, 0xad, 0x67, 0xac, 0xf9, 0xbf, 0x01, 0x5e, 0x48, 0x20, - 0xfb, 0xd6, 0x6e, 0xa1, 0xa2, 0x1b, 0xed, 0x88, 0x52, 0xec}, - "LYM ", - 18}, - {{0x3f, 0x4b, 0x72, 0x66, 0x68, 0xda, 0x46, 0xf5, 0xe0, 0xe7, - 0x5a, 0xa5, 0xd4, 0x78, 0xac, 0xec, 0x9f, 0x38, 0x21, 0x0f}, - "M-ETH ", - 18}, - {{0x5b, 0x09, 0xa0, 0x37, 0x1c, 0x1d, 0xa4, 0x4a, 0x8e, 0x24, - 0xd3, 0x6b, 0xf5, 0xde, 0xb1, 0x14, 0x1a, 0x84, 0xd8, 0x75}, - "MAD ", - 18}, - {{0xe2, 0x5b, 0xCe, 0xc5, 0xD3, 0x80, 0x1c, 0xE3, 0xa7, 0x94, - 0x07, 0x9B, 0xF9, 0x4a, 0xdF, 0x1B, 0x8c, 0xCD, 0x80, 0x2D}, - "MAN ", - 18}, - {{0x0F, 0x5D, 0x2f, 0xB2, 0x9f, 0xb7, 0xd3, 0xCF, 0xeE, 0x44, - 0x4a, 0x20, 0x02, 0x98, 0xf4, 0x68, 0x90, 0x8c, 0xC9, 0x42}, - "MANA ", - 18}, - {{0xfd, 0xcc, 0x07, 0xAb, 0x60, 0x66, 0x0d, 0xe5, 0x33, 0xb5, - 0xAd, 0x26, 0xe1, 0x45, 0x7b, 0x56, 0x5a, 0x9D, 0x59, 0xBd}, - "MART ", - 18}, - {{0x38, 0x64, 0x67, 0xf1, 0xf3, 0xdd, 0xbe, 0x83, 0x24, 0x48, - 0x65, 0x04, 0x18, 0x31, 0x1a, 0x47, 0x9e, 0xec, 0xfc, 0x57}, - "MBRS ", - 0}, - {{0x93, 0xE6, 0x82, 0x10, 0x7d, 0x1E, 0x9d, 0xef, 0xB0, 0xb5, - 0xee, 0x70, 0x1C, 0x71, 0x70, 0x7a, 0x4B, 0x2E, 0x46, 0xBc}, - "MCAP ", - 8}, - {{0x13, 0x8A, 0x87, 0x52, 0x09, 0x3F, 0x4f, 0x9a, 0x79, 0xAa, - 0xeD, 0xF4, 0x8d, 0x4B, 0x92, 0x48, 0xfa, 0xb9, 0x3c, 0x9C}, - "MCI ", - 18}, - {{0xB6, 0x3B, 0x60, 0x6A, 0xc8, 0x10, 0xa5, 0x2c, 0xCa, 0x15, - 0xe4, 0x4b, 0xB6, 0x30, 0xfd, 0x42, 0xD8, 0xd1, 0xd8, 0x3d}, - "MCO ", - 8}, - {{0x51, 0xDB, 0x5A, 0xd3, 0x5C, 0x67, 0x1a, 0x87, 0x20, 0x7d, - 0x88, 0xfC, 0x11, 0xd5, 0x93, 0xAC, 0x0C, 0x84, 0x15, 0xbd}, - "MDA ", - 18}, - {{0x66, 0x18, 0x60, 0x08, 0xC1, 0x05, 0x06, 0x27, 0xF9, 0x79, - 0xd4, 0x64, 0xeA, 0xBb, 0x25, 0x88, 0x60, 0x56, 0x3d, 0xbE}, - "MDS ", - 18}, - {{0x81, 0x4e, 0x09, 0x08, 0xb1, 0x2a, 0x99, 0xfe, 0xcf, 0x5b, - 0xc1, 0x01, 0xbb, 0x5d, 0x0b, 0x8b, 0x5c, 0xdf, 0x7d, 0x26}, - "MDT ", - 18}, - {{0xfd, 0x1e, 0x80, 0x50, 0x8f, 0x24, 0x3e, 0x64, 0xce, 0x23, - 0x4e, 0xa8, 0x8a, 0x5f, 0xd2, 0x82, 0x7c, 0x71, 0xd4, 0xb7}, - "MEDX ", - 8}, - {{0xf0, 0x30, 0x45, 0xa4, 0xc8, 0x07, 0x7e, 0x38, 0xf3, 0xb8, - 0xe2, 0xed, 0x33, 0xb8, 0xae, 0xe6, 0x9e, 0xdf, 0x86, 0x9f}, - "MESH ", - 18}, - {{0x01, 0xf2, 0xac, 0xf2, 0x91, 0x48, 0x60, 0x33, 0x1c, 0x1c, - 0xb1, 0xa9, 0xac, 0xec, 0xda, 0x74, 0x75, 0xe0, 0x6a, 0xf8}, - "MESH ", - 18}, - {{0x5b, 0x8d, 0x43, 0xff, 0xde, 0x4a, 0x29, 0x82, 0xb9, 0xa5, - 0x38, 0x7c, 0xdf, 0x21, 0xd5, 0x4e, 0xad, 0x64, 0xac, 0x8d}, - "MEST ", - 18}, - {{0xa3, 0xd5, 0x8c, 0x4e, 0x56, 0xfe, 0xdc, 0xae, 0x3a, 0x7c, - 0x43, 0xa7, 0x25, 0xae, 0xe9, 0xa7, 0x1f, 0x0e, 0xce, 0x4e}, - "MET ", - 18}, - {{0xfe, 0xf3, 0x88, 0x4b, 0x60, 0x3c, 0x33, 0xef, 0x8e, 0xd4, - 0x18, 0x33, 0x46, 0xe0, 0x93, 0xa1, 0x73, 0xc9, 0x4d, 0xa6}, - "METM ", - 18}, - {{0x67, 0x10, 0xc6, 0x34, 0x32, 0xa2, 0xde, 0x02, 0x95, 0x4f, - 0xc0, 0xf8, 0x51, 0xdb, 0x07, 0x14, 0x6a, 0x6c, 0x03, 0x12}, - "MFG ", - 18}, - {{0xDF, 0x2C, 0x72, 0x38, 0x19, 0x8A, 0xd8, 0xB3, 0x89, 0x66, - 0x65, 0x74, 0xf2, 0xd8, 0xbc, 0x41, 0x1A, 0x4b, 0x74, 0x28}, - "MFT ", - 18}, - {{0x05, 0xD4, 0x12, 0xCE, 0x18, 0xF2, 0x40, 0x40, 0xbB, 0x3F, - 0xa4, 0x5C, 0xF2, 0xC6, 0x9e, 0x50, 0x65, 0x86, 0xD8, 0xe8}, - "MFTU ", - 18}, - {{0x40, 0x39, 0x50, 0x44, 0xac, 0x3c, 0x0c, 0x57, 0x05, 0x19, - 0x06, 0xda, 0x93, 0x8b, 0x54, 0xbd, 0x65, 0x57, 0xf2, 0x12}, - "MGO ", - 8}, - {{0x3a, 0x12, 0x37, 0xd3, 0x8d, 0x0f, 0xb9, 0x45, 0x13, 0xf8, - 0x5d, 0x61, 0x67, 0x9c, 0xad, 0x7f, 0x38, 0x50, 0x72, 0x42}, - "MIC ", - 18}, - {{0xe2, 0x3c, 0xd1, 0x60, 0x76, 0x1f, 0x63, 0xFC, 0x3a, 0x1c, - 0xF7, 0x8A, 0xa0, 0x34, 0xb6, 0xcd, 0xF9, 0x7d, 0x3E, 0x0C}, - "Mainstrt ", - 18}, - {{0xad, 0x8d, 0xd4, 0xc7, 0x25, 0xde, 0x1d, 0x31, 0xb9, 0xe8, - 0xf8, 0xd1, 0x46, 0x08, 0x9e, 0x9d, 0xc6, 0x88, 0x20, 0x93}, - "Mychat ", - 6}, - {{0x4a, 0x52, 0x7d, 0x8f, 0xc1, 0x3c, 0x52, 0x03, 0xab, 0x24, - 0xba, 0x09, 0x44, 0xf4, 0xcb, 0x14, 0x65, 0x8d, 0x1d, 0xb6}, - "MITx ", - 18}, - {{0x9f, 0x8F, 0x72, 0xaA, 0x93, 0x04, 0xc8, 0xB5, 0x93, 0xd5, - 0x55, 0xF1, 0x2e, 0xF6, 0x58, 0x9c, 0xC3, 0xA5, 0x79, 0xA2}, - "MKR ", - 18}, - {{0x79, 0x39, 0x88, 0x2b, 0x54, 0xfc, 0xf0, 0xbc, 0xae, 0x6b, - 0x53, 0xde, 0xc3, 0x9a, 0xd6, 0xe8, 0x06, 0x17, 0x64, 0x42}, - "MKT ", - 8}, - {{0xBE, 0xB9, 0xeF, 0x51, 0x4a, 0x37, 0x9B, 0x99, 0x7e, 0x07, - 0x98, 0xFD, 0xcC, 0x90, 0x1E, 0xe4, 0x74, 0xB6, 0xD9, 0xA1}, - "MLN ", - 18}, - {{0x1a, 0x95, 0xB2, 0x71, 0xB0, 0x53, 0x5D, 0x15, 0xfa, 0x49, - 0x93, 0x2D, 0xab, 0xa3, 0x1B, 0xA6, 0x12, 0xb5, 0x29, 0x46}, - "MNE ", - 8}, - {{0xA9, 0x87, 0x7b, 0x1e, 0x05, 0xD0, 0x35, 0x89, 0x91, 0x31, - 0xDB, 0xd1, 0xe4, 0x03, 0x82, 0x51, 0x66, 0xD0, 0x9f, 0x92}, - "MNT ", - 18}, - {{0x83, 0xce, 0xe9, 0xe0, 0x86, 0xa7, 0x7e, 0x49, 0x2e, 0xe0, - 0xbb, 0x93, 0xc2, 0xb0, 0x43, 0x7a, 0xd6, 0xfd, 0xec, 0xcc}, - "MNTP ", - 18}, - {{0x86, 0x5e, 0xc5, 0x8b, 0x06, 0xbf, 0x63, 0x05, 0xb8, 0x86, - 0x79, 0x3a, 0xa2, 0x0a, 0x2d, 0xa3, 0x1d, 0x03, 0x4e, 0x68}, - "MOC ", - 18}, - {{0x95, 0x7c, 0x30, 0xaB, 0x04, 0x26, 0xe0, 0xC9, 0x3C, 0xD8, - 0x24, 0x1E, 0x2c, 0x60, 0x39, 0x2d, 0x08, 0xc6, 0xaC, 0x8e}, - "MOD ", - 0}, - {{0x50, 0x12, 0x62, 0x28, 0x1b, 0x2b, 0xa0, 0x43, 0xe2, 0xfb, - 0xf1, 0x49, 0x04, 0x98, 0x06, 0x89, 0xcd, 0xdb, 0x0c, 0x78}, - "MORE ", - 2}, - {{0x26, 0x3c, 0x61, 0x84, 0x80, 0xdb, 0xe3, 0x5c, 0x30, 0x0d, - 0x8d, 0x5e, 0xcd, 0xa1, 0x9b, 0xbb, 0x98, 0x6a, 0xca, 0xed}, - "MOT ", - 18}, - {{0xfb, 0xd0, 0xd1, 0xc7, 0x7b, 0x50, 0x17, 0x96, 0xa3, 0x5d, - 0x86, 0xcf, 0x91, 0xd6, 0x5d, 0x97, 0x78, 0xee, 0xe6, 0x95}, - "MOVED ", - 3}, - {{0x44, 0xbf, 0x22, 0x94, 0x9f, 0x9c, 0xc8, 0x4b, 0x61, 0xb9, - 0x32, 0x8a, 0x9d, 0x88, 0x5d, 0x1b, 0x5c, 0x80, 0x6b, 0x41}, - "MOZO ", - 2}, - {{0xf4, 0x53, 0xb5, 0xb9, 0xd4, 0xe0, 0xb5, 0xc6, 0x2f, 0xfb, - 0x25, 0x6b, 0xb2, 0x37, 0x8c, 0xc2, 0xbc, 0x8e, 0x8a, 0x89}, - "MRK ", - 8}, - {{0x82, 0x12, 0x5A, 0xFe, 0x01, 0x81, 0x9D, 0xff, 0x15, 0x35, - 0xD0, 0xD6, 0x27, 0x6d, 0x57, 0x04, 0x52, 0x91, 0xB6, 0xc0}, - "MRL ", - 18}, - {{0x21, 0xf0, 0xF0, 0xfD, 0x31, 0x41, 0xEe, 0x9E, 0x11, 0xB3, - 0xd7, 0xf1, 0x3a, 0x10, 0x28, 0xCD, 0x51, 0x5f, 0x45, 0x9c}, - "MRP ", - 18}, - {{0xAB, 0x6C, 0xF8, 0x7a, 0x50, 0xF1, 0x7d, 0x7F, 0x5E, 0x1F, - 0xEa, 0xf8, 0x1B, 0x6f, 0xE9, 0xFf, 0xBe, 0x8E, 0xBF, 0x84}, - "MRV ", - 18}, - {{0x68, 0xAA, 0x3F, 0x23, 0x2d, 0xA9, 0xbd, 0xC2, 0x34, 0x34, - 0x65, 0x54, 0x57, 0x94, 0xef, 0x3e, 0xEa, 0x52, 0x09, 0xBD}, - "MSP ", - 18}, - {{0x90, 0x5E, 0x33, 0x7c, 0x6c, 0x86, 0x45, 0x26, 0x3D, 0x35, - 0x21, 0x20, 0x5A, 0xa3, 0x7b, 0xf4, 0xd0, 0x34, 0xe7, 0x45}, - "MTC Med ", - 18}, - {{0xdf, 0xdc, 0x0d, 0x82, 0xd9, 0x6f, 0x8f, 0xd4, 0x0c, 0xa0, - 0xcf, 0xb4, 0xa2, 0x88, 0x95, 0x5b, 0xec, 0xec, 0x20, 0x88}, - "MTC Mesh ", - 18}, - {{0xaF, 0x4D, 0xcE, 0x16, 0xDa, 0x28, 0x77, 0xf8, 0xc9, 0xe0, - 0x05, 0x44, 0xc9, 0x3B, 0x62, 0xAc, 0x40, 0x63, 0x1F, 0x16}, - "MTH ", - 5}, - {{0xF4, 0x33, 0x08, 0x93, 0x66, 0x89, 0x9D, 0x83, 0xa9, 0xf2, - 0x6A, 0x77, 0x3D, 0x59, 0xec, 0x7e, 0xCF, 0x30, 0x35, 0x5e}, - "MTL ", - 8}, - {{0x41, 0xdb, 0xec, 0xc1, 0xcd, 0xc5, 0x51, 0x7c, 0x6f, 0x76, - 0xf6, 0xa6, 0xe8, 0x36, 0xad, 0xbe, 0xe2, 0x75, 0x4d, 0xe3}, - "MTN ", - 18}, - {{0x7F, 0xC4, 0x08, 0x01, 0x11, 0x65, 0x76, 0x0e, 0xE3, 0x1b, - 0xE2, 0xBF, 0x20, 0xdA, 0xf4, 0x50, 0x35, 0x66, 0x92, 0xAf}, - "MTR ", - 8}, - {{0x1e, 0x49, 0xfF, 0x77, 0xc3, 0x55, 0xA3, 0xe3, 0x8D, 0x66, - 0x51, 0xce, 0x84, 0x04, 0xAF, 0x0E, 0x48, 0xc5, 0x39, 0x5f}, - "MTRc ", - 18}, - {{0x0A, 0xF4, 0x4e, 0x27, 0x84, 0x63, 0x72, 0x18, 0xdD, 0x1D, - 0x32, 0xA3, 0x22, 0xD4, 0x4e, 0x60, 0x3A, 0x8f, 0x0c, 0x6A}, - "MTX ", - 18}, - {{0x51, 0x56, 0x69, 0xd3, 0x08, 0xf8, 0x87, 0xfd, 0x83, 0xa4, - 0x71, 0xc7, 0x76, 0x4f, 0x5d, 0x08, 0x48, 0x86, 0xd3, 0x4d}, - "MUXE ", - 18}, - {{0xa8, 0x49, 0xea, 0xae, 0x99, 0x4f, 0xb8, 0x6a, 0xfa, 0x73, - 0x38, 0x2e, 0x9b, 0xd8, 0x8c, 0x2b, 0x6b, 0x18, 0xdc, 0x71}, - "MVL ", - 18}, - {{0x8a, 0x77, 0xe4, 0x09, 0x36, 0xbb, 0xc2, 0x7e, 0x80, 0xe9, - 0xa3, 0xf5, 0x26, 0x36, 0x8c, 0x96, 0x78, 0x69, 0xc8, 0x6d}, - "MVP ", - 18}, - {{0x64, 0x25, 0xc6, 0xbe, 0x90, 0x2d, 0x69, 0x2a, 0xe2, 0xdb, - 0x75, 0x2b, 0x3c, 0x26, 0x8a, 0xfa, 0xdb, 0x09, 0x9d, 0x3b}, - "MWAT ", - 18}, - {{0xf7, 0xe9, 0x83, 0x78, 0x16, 0x09, 0x01, 0x23, 0x07, 0xf2, - 0x51, 0x4f, 0x63, 0xD5, 0x26, 0xD8, 0x3D, 0x24, 0xF4, 0x66}, - "MYD ", - 16}, - {{0xa6, 0x45, 0x26, 0x4C, 0x56, 0x03, 0xE9, 0x6c, 0x3b, 0x0B, - 0x07, 0x8c, 0xda, 0xb6, 0x87, 0x33, 0x79, 0x4B, 0x0A, 0x71}, - "MYST ", - 8}, - {{0x8d, 0x80, 0xde, 0x8A, 0x78, 0x19, 0x83, 0x96, 0x32, 0x9d, - 0xfA, 0x76, 0x9a, 0xD5, 0x4d, 0x24, 0xbF, 0x90, 0xE7, 0xaa}, - "NAC ", - 18}, - {{0xff, 0xe0, 0x2e, 0xe4, 0xc6, 0x9e, 0xdf, 0x1b, 0x34, 0x0f, - 0xca, 0xd6, 0x4f, 0xbd, 0x6b, 0x37, 0xa7, 0xb9, 0xe2, 0x65}, - "NANJ ", - 8}, - {{0x5d, 0x65, 0xD9, 0x71, 0x89, 0x5E, 0xdc, 0x43, 0x8f, 0x46, - 0x5c, 0x17, 0xDB, 0x69, 0x92, 0x69, 0x8a, 0x52, 0x31, 0x8D}, - "NAS ", - 18}, - {{0x58, 0x80, 0x47, 0x36, 0x5d, 0xf5, 0xba, 0x58, 0x9f, 0x92, - 0x36, 0x04, 0xaa, 0xc2, 0x3d, 0x67, 0x35, 0x55, 0xc6, 0x23}, - "NAVI ", - 18}, - {{0x17, 0xf8, 0xaF, 0xB6, 0x3D, 0xfc, 0xDc, 0xC9, 0x0e, 0xbE, - 0x6e, 0x84, 0xF0, 0x60, 0xCc, 0x30, 0x6A, 0x98, 0x25, 0x7D}, - "NBAI ", - 18}, - {{0x9f, 0x19, 0x56, 0x17, 0xfa, 0x8f, 0xba, 0xd9, 0x54, 0x0c, - 0x5d, 0x11, 0x3a, 0x99, 0xa0, 0xa0, 0x17, 0x2a, 0xae, 0xdc}, - "NBC ", - 18}, - {{0x80, 0x98, 0x26, 0xcc, 0xea, 0xb6, 0x8c, 0x38, 0x77, 0x26, - 0xaf, 0x96, 0x27, 0x13, 0xb6, 0x4c, 0xb5, 0xcb, 0x3c, 0xca}, - "NCASH ", - 18}, - {{0x5d, 0x48, 0xf2, 0x93, 0xba, 0xed, 0x24, 0x7a, 0x2d, 0x01, - 0x89, 0x05, 0x8b, 0xa3, 0x7a, 0xa2, 0x38, 0xbd, 0x47, 0x25}, - "NCC Neur ", - 18}, - {{0x93, 0x44, 0xb3, 0x83, 0xb1, 0xD5, 0x9b, 0x5c, 0xe3, 0x46, - 0x8B, 0x23, 0x4D, 0xAB, 0x43, 0xC7, 0x19, 0x0b, 0xa7, 0x35}, - "NCC Need ", - 18}, - {{0x9e, 0x46, 0xa3, 0x8f, 0x5d, 0xaa, 0xbe, 0x86, 0x83, 0xe1, - 0x07, 0x93, 0xb0, 0x67, 0x49, 0xee, 0xf7, 0xd7, 0x33, 0xd1}, - "NCT ", - 18}, - {{0xa5, 0x4d, 0xdc, 0x7b, 0x3c, 0xce, 0x7f, 0xc8, 0xb1, 0xe3, - 0xfa, 0x02, 0x56, 0xd0, 0xdb, 0x80, 0xd2, 0xc1, 0x09, 0x70}, - "NDC ", - 18}, - {{0xcc, 0x80, 0xc0, 0x51, 0x05, 0x7b, 0x77, 0x4c, 0xd7, 0x50, - 0x67, 0xdc, 0x48, 0xf8, 0x98, 0x7c, 0x4e, 0xb9, 0x7a, 0x5e}, - "NEC ", - 18}, - {{0xd8, 0x44, 0x62, 0x36, 0xFA, 0x95, 0xb9, 0xb5, 0xf9, 0xfd, - 0x0f, 0x8E, 0x7D, 0xf1, 0xa9, 0x44, 0x82, 0x3c, 0x68, 0x3d}, - "NEEO ", - 18}, - {{0xcf, 0xb9, 0x86, 0x37, 0xbc, 0xae, 0x43, 0xC1, 0x33, 0x23, - 0xEA, 0xa1, 0x73, 0x1c, 0xED, 0x2B, 0x71, 0x69, 0x62, 0xfD}, - "NET ", - 18}, - {{0xa8, 0x23, 0xe6, 0x72, 0x20, 0x06, 0xaf, 0xe9, 0x9e, 0x91, - 0xc3, 0x0f, 0xf5, 0x29, 0x50, 0x52, 0xfe, 0x6b, 0x8e, 0x32}, - "NEU ", - 18}, - {{0x81, 0x49, 0x64, 0xb1, 0xbc, 0xeA, 0xf2, 0x4e, 0x26, 0x29, - 0x6D, 0x03, 0x1E, 0xaD, 0xf1, 0x34, 0xa2, 0xCa, 0x41, 0x05}, - "NEWB ", - 0}, - {{0xb6, 0x21, 0x32, 0xe3, 0x5a, 0x6c, 0x13, 0xee, 0x1e, 0xe0, - 0xf8, 0x4d, 0xc5, 0xd4, 0x0b, 0xad, 0x8d, 0x81, 0x52, 0x06}, - "NEXO ", - 18}, - {{0x72, 0xdd, 0x4b, 0x6b, 0xd8, 0x52, 0xa3, 0xaa, 0x17, 0x2b, - 0xe4, 0xd6, 0xc5, 0xa6, 0xdb, 0xec, 0x58, 0x8c, 0xf1, 0x31}, - "NGC ", - 18}, - {{0xe2, 0x65, 0x17, 0xA9, 0x96, 0x72, 0x99, 0x45, 0x3d, 0x3F, - 0x1B, 0x48, 0xAa, 0x00, 0x5E, 0x61, 0x27, 0xe6, 0x72, 0x10}, - "NIMFA ", - 18}, - {{0x55, 0x54, 0xe0, 0x4e, 0x76, 0x53, 0x3e, 0x1d, 0x14, 0xc5, - 0x2f, 0x05, 0xbe, 0xef, 0x6c, 0x9d, 0x32, 0x9e, 0x1e, 0x30}, - "NIO ", - 0}, - {{0x17, 0x76, 0xe1, 0xF2, 0x6f, 0x98, 0xb1, 0xA5, 0xdF, 0x9c, - 0xD3, 0x47, 0x95, 0x3a, 0x26, 0xdd, 0x3C, 0xb4, 0x66, 0x71}, - "NMR ", - 18}, - {{0x58, 0xa4, 0x88, 0x41, 0x82, 0xd9, 0xe8, 0x35, 0x59, 0x7f, - 0x40, 0x5e, 0x5f, 0x25, 0x82, 0x90, 0xe4, 0x6a, 0xe7, 0xc2}, - "NOAH ", - 18}, - {{0xf4, 0xfa, 0xea, 0x45, 0x55, 0x75, 0x35, 0x4d, 0x26, 0x99, - 0xbc, 0x20, 0x9b, 0x0a, 0x65, 0xca, 0x99, 0xf6, 0x99, 0x82}, - "NOBS ", - 18}, - {{0xec, 0x46, 0xf8, 0x20, 0x7d, 0x76, 0x60, 0x12, 0x45, 0x4c, - 0x40, 0x8d, 0xe2, 0x10, 0xbc, 0xbc, 0x22, 0x43, 0xe7, 0x1c}, - "NOX ", - 18}, - {{0x4c, 0xe6, 0xb3, 0x62, 0xbc, 0x77, 0xa2, 0x49, 0x66, 0xdd, - 0xa9, 0x07, 0x8f, 0x9c, 0xef, 0x81, 0xb3, 0xb8, 0x86, 0xa7}, - "NPER ", - 18}, - {{0x28, 0xb5, 0xe1, 0x2c, 0xce, 0x51, 0xf1, 0x55, 0x94, 0xb0, - 0xb9, 0x1d, 0x5b, 0x5a, 0xda, 0xa7, 0x0f, 0x68, 0x4a, 0x02}, - "NPX ", - 2}, - {{0xa1, 0x5c, 0x7e, 0xbe, 0x1f, 0x07, 0xca, 0xf6, 0xbf, 0xf0, - 0x97, 0xd8, 0xa5, 0x89, 0xfb, 0x8a, 0xc4, 0x9a, 0xe5, 0xb3}, - "NPXS ", - 18}, - {{0x69, 0xbe, 0xab, 0x40, 0x34, 0x38, 0x25, 0x3f, 0x13, 0xb6, - 0xe9, 0x2d, 0xb9, 0x1f, 0x7f, 0xb8, 0x49, 0x25, 0x82, 0x63}, - "NTK ", - 18}, - {{0x5d, 0x4d, 0x57, 0xcd, 0x06, 0xfa, 0x7f, 0xe9, 0x9e, 0x26, - 0xfd, 0xc4, 0x81, 0xb4, 0x68, 0xf7, 0x7f, 0x05, 0x07, 0x3c}, - "NTK ", - 18}, - {{0x8a, 0x99, 0xed, 0x8a, 0x1b, 0x20, 0x49, 0x03, 0xee, 0x46, - 0xe7, 0x33, 0xf2, 0xc1, 0x28, 0x6f, 0x6d, 0x20, 0xb1, 0x77}, - "NTO ", - 18}, - {{0x22, 0x33, 0x79, 0x9e, 0xe2, 0x68, 0x3d, 0x75, 0xdf, 0xef, - 0xac, 0xbc, 0xd2, 0xa2, 0x6c, 0x78, 0xd3, 0x4b, 0x47, 0x0d}, - "NTWK ", - 18}, - {{0x24, 0x5e, 0xf4, 0x7d, 0x4d, 0x05, 0x05, 0xec, 0xf3, 0xac, - 0x46, 0x3f, 0x4d, 0x81, 0xf4, 0x1a, 0xde, 0x8f, 0x1f, 0xd1}, - "NUG ", - 18}, - {{0xb9, 0x13, 0x18, 0xf3, 0x5b, 0xdb, 0x26, 0x2e, 0x94, 0x23, - 0xbc, 0x7c, 0x7c, 0x2a, 0x3a, 0x93, 0xdd, 0x93, 0xc9, 0x2c}, - "NULS ", - 18}, - {{0x57, 0xAb, 0x1E, 0x02, 0xfE, 0xE2, 0x37, 0x74, 0x58, 0x0C, - 0x11, 0x97, 0x40, 0x12, 0x9e, 0xAC, 0x70, 0x81, 0xe9, 0xD3}, - "sUSD ", - 18}, - {{0x76, 0x27, 0xde, 0x4b, 0x93, 0x26, 0x3a, 0x6a, 0x75, 0x70, - 0xb8, 0xda, 0xfa, 0x64, 0xba, 0xe8, 0x12, 0xe5, 0xc3, 0x94}, - "NXX ", - 8}, - {{0x5c, 0x61, 0x83, 0xd1, 0x0A, 0x00, 0xCD, 0x74, 0x7a, 0x6D, - 0xbb, 0x5F, 0x65, 0x8a, 0xD5, 0x14, 0x38, 0x3e, 0x94, 0x19}, - "NXX OLD ", - 8}, - {{0x45, 0xe4, 0x2D, 0x65, 0x9D, 0x9f, 0x94, 0x66, 0xcD, 0x5D, - 0xF6, 0x22, 0x50, 0x60, 0x33, 0x14, 0x5a, 0x9b, 0x89, 0xBc}, - "NxC ", - 3}, - {{0x5e, 0x88, 0x8B, 0x83, 0xB7, 0x28, 0x7E, 0xED, 0x4f, 0xB7, - 0xDA, 0x7b, 0x7d, 0x0A, 0x0D, 0x4c, 0x73, 0x5d, 0x94, 0xb3}, - "OAK ", - 18}, - {{0x70, 0x1C, 0x24, 0x4b, 0x98, 0x8a, 0x51, 0x3c, 0x94, 0x59, - 0x73, 0xdE, 0xFA, 0x05, 0xde, 0x93, 0x3b, 0x23, 0xFe, 0x1D}, - "OAX ", - 18}, - {{0x02, 0x35, 0xfe, 0x62, 0x4e, 0x04, 0x4a, 0x05, 0xee, 0xd7, - 0xa4, 0x3e, 0x16, 0xe3, 0x08, 0x3b, 0xc8, 0xa4, 0x28, 0x7a}, - "OCC ", - 18}, - {{0x40, 0x92, 0x67, 0x8e, 0x4e, 0x78, 0x23, 0x0f, 0x46, 0xa1, - 0x53, 0x4c, 0x0f, 0xbc, 0x8f, 0xa3, 0x97, 0x80, 0x89, 0x2b}, - "OCN ", - 18}, - {{0xbf, 0x52, 0xf2, 0xab, 0x39, 0xe2, 0x6e, 0x09, 0x51, 0xd2, - 0xa0, 0x2b, 0x49, 0xb7, 0x70, 0x2a, 0xbe, 0x30, 0x40, 0x6a}, - "ODE ", - 18}, - {{0x6f, 0x53, 0x9a, 0x94, 0x56, 0xa5, 0xbc, 0xb6, 0x33, 0x4a, - 0x1a, 0x41, 0x20, 0x7c, 0x37, 0x88, 0xf5, 0x82, 0x52, 0x07}, - "OHNI ", - 18}, - {{0xc6, 0x6e, 0xa8, 0x02, 0x71, 0x7b, 0xfb, 0x98, 0x33, 0x40, - 0x02, 0x64, 0xdd, 0x12, 0xc2, 0xbc, 0xea, 0xa3, 0x4a, 0x6d}, - "OLD_MKR ", - 18}, - {{0x9d, 0x92, 0x23, 0x43, 0x6d, 0xdd, 0x46, 0x6f, 0xc2, 0x47, - 0xe9, 0xdb, 0xbd, 0x20, 0x20, 0x7e, 0x64, 0x0f, 0xef, 0x58}, - "OLE ", - 18}, - {{0x64, 0xA6, 0x04, 0x93, 0xD8, 0x88, 0x72, 0x8C, 0xf4, 0x26, - 0x16, 0xe0, 0x34, 0xa0, 0xdf, 0xEA, 0xe3, 0x8E, 0xFC, 0xF0}, - "OLT ", - 18}, - {{0xd2, 0x61, 0x14, 0xcd, 0x6E, 0xE2, 0x89, 0xAc, 0xcF, 0x82, - 0x35, 0x0c, 0x8d, 0x84, 0x87, 0xfe, 0xdB, 0x8A, 0x0C, 0x07}, - "OMG ", - 18}, - {{0xb5, 0xdb, 0xc6, 0xd3, 0xcf, 0x38, 0x00, 0x79, 0xdf, 0x3b, - 0x27, 0x13, 0x56, 0x64, 0xb6, 0xbc, 0xf4, 0x5d, 0x18, 0x69}, - "OMX ", - 8}, - {{0xb2, 0x3b, 0xe7, 0x35, 0x73, 0xbc, 0x7e, 0x03, 0xdb, 0x6e, - 0x5d, 0xfc, 0x62, 0x40, 0x53, 0x68, 0x71, 0x6d, 0x28, 0xa8}, - "ONEK ", - 18}, - {{0xd3, 0x41, 0xd1, 0x68, 0x0e, 0xee, 0xe3, 0x25, 0x5b, 0x8c, - 0x4c, 0x75, 0xbc, 0xce, 0x7e, 0xb5, 0x7f, 0x14, 0x4d, 0xae}, - "onG ", - 18}, - {{0x68, 0x63, 0xbe, 0x0e, 0x7c, 0xf7, 0xce, 0x86, 0x0a, 0x57, - 0x47, 0x60, 0xe9, 0x02, 0x0d, 0x51, 0x9a, 0x8b, 0xdc, 0x47}, - "ONL ", - 18}, - {{0x69, 0xc4, 0xBB, 0x24, 0x0c, 0xF0, 0x5D, 0x51, 0xee, 0xab, - 0x69, 0x85, 0xBa, 0xb3, 0x55, 0x27, 0xd0, 0x4a, 0x8C, 0x64}, - "OPEN ", - 8}, - {{0x43, 0x55, 0xfC, 0x16, 0x0f, 0x74, 0x32, 0x8f, 0x9b, 0x38, - 0x3d, 0xF2, 0xEC, 0x58, 0x9b, 0xB3, 0xdF, 0xd8, 0x2B, 0xa0}, - "OPT ", - 18}, - {{0x83, 0x29, 0x04, 0x86, 0x39, 0x78, 0xb9, 0x48, 0x02, 0x12, - 0x31, 0x06, 0xe6, 0xeb, 0x49, 0x1b, 0xdf, 0x0d, 0xf9, 0x28}, - "OPTI ", - 18}, - {{0xff, 0x56, 0xCc, 0x6b, 0x1E, 0x6d, 0xEd, 0x34, 0x7a, 0xA0, - 0xB7, 0x67, 0x6C, 0x85, 0xAB, 0x0B, 0x3D, 0x08, 0xB0, 0xFA}, - "ORBS ", - 18}, - {{0x6F, 0x59, 0xe0, 0x46, 0x1A, 0xe5, 0xE2, 0x79, 0x9F, 0x1f, - 0xB3, 0x84, 0x7f, 0x05, 0xa6, 0x3B, 0x16, 0xd0, 0xDb, 0xF8}, - "ORCA ", - 18}, - {{0xd2, 0xfa, 0x8f, 0x92, 0xea, 0x72, 0xab, 0xb3, 0x5d, 0xbd, - 0x6d, 0xec, 0xa5, 0x71, 0x73, 0xd2, 0x2d, 0xb2, 0xba, 0x49}, - "ORI ", - 18}, - {{0x51, 0x6E, 0x54, 0x36, 0xbA, 0xfd, 0xc1, 0x10, 0x83, 0x65, - 0x4D, 0xE7, 0xBb, 0x9b, 0x95, 0x38, 0x2d, 0x08, 0xd5, 0xDE}, - "ORME ", - 8}, - {{0xeb, 0x9a, 0x4b, 0x18, 0x58, 0x16, 0xc3, 0x54, 0xdb, 0x92, - 0xdb, 0x09, 0xcc, 0x3b, 0x50, 0xbe, 0x60, 0xb9, 0x01, 0xb6}, - "ORS ", - 18}, - {{0x2C, 0x4e, 0x8f, 0x2D, 0x74, 0x61, 0x13, 0xd0, 0x69, 0x6c, - 0xE8, 0x9B, 0x35, 0xF0, 0xd8, 0xbF, 0x88, 0xE0, 0xAE, 0xcA}, - "OST ", - 18}, - {{0x88, 0x1e, 0xf4, 0x82, 0x11, 0x98, 0x2d, 0x01, 0xe2, 0xcb, - 0x70, 0x92, 0xc9, 0x15, 0xe6, 0x47, 0xcd, 0x40, 0xd8, 0x5c}, - "OTN ", - 18}, - {{0x17, 0x0b, 0x27, 0x5c, 0xed, 0x08, 0x9f, 0xff, 0xae, 0xbf, - 0xe9, 0x27, 0xf4, 0x45, 0xa3, 0x50, 0xed, 0x91, 0x60, 0xdc}, - "OWN ", - 8}, - {{0x65, 0xa1, 0x50, 0x14, 0x96, 0x4f, 0x21, 0x02, 0xff, 0x58, - 0x64, 0x7e, 0x16, 0xa1, 0x6a, 0x6b, 0x9e, 0x14, 0xbc, 0xf6}, - "Ox Fina ", - 3}, - {{0xb9, 0xbb, 0x08, 0xab, 0x7e, 0x9f, 0xa0, 0xa1, 0x35, 0x6b, - 0xd4, 0xa3, 0x9e, 0xc0, 0xca, 0x26, 0x7e, 0x03, 0xb0, 0xb3}, - "PAI ", - 18}, - {{0xfe, 0xDA, 0xE5, 0x64, 0x26, 0x68, 0xf8, 0x63, 0x6A, 0x11, - 0x98, 0x7F, 0xf3, 0x86, 0xbf, 0xd2, 0x15, 0xF9, 0x42, 0xEE}, - "PAL ", - 18}, - {{0xea, 0x5f, 0x88, 0xe5, 0x4d, 0x98, 0x2c, 0xbb, 0x0c, 0x44, - 0x1c, 0xde, 0x4e, 0x79, 0xbc, 0x30, 0x5e, 0x5b, 0x43, 0xbc}, - "PARETO ", - 18}, - {{0x6d, 0xd4, 0xe4, 0xaa, 0xd2, 0x9a, 0x40, 0xed, 0xd6, 0xa4, - 0x09, 0xb9, 0xc1, 0x62, 0x51, 0x86, 0xc9, 0x85, 0x5b, 0x4d}, - "PARKGEN ", - 8}, - {{0x77, 0x76, 0x1e, 0x63, 0xc0, 0x5a, 0xee, 0x66, 0x48, 0xfd, - 0xae, 0xaa, 0x9b, 0x94, 0x24, 0x83, 0x51, 0xaf, 0x9b, 0xcd}, - "PASS ", - 18}, - {{0xF3, 0xb3, 0xCa, 0xd0, 0x94, 0xB8, 0x93, 0x92, 0xfc, 0xE5, - 0xfa, 0xFD, 0x40, 0xbC, 0x03, 0xb8, 0x0F, 0x2B, 0xc6, 0x24}, - "PAT ", - 18}, - {{0x69, 0x44, 0x04, 0x59, 0x5e, 0x30, 0x75, 0xa9, 0x42, 0x39, - 0x7f, 0x46, 0x6a, 0xac, 0xd4, 0x62, 0xff, 0x1a, 0x7b, 0xd0}, - "PATENTS ", - 18}, - {{0xF8, 0x13, 0xF3, 0x90, 0x2b, 0xBc, 0x00, 0xA6, 0xDC, 0xe3, - 0x78, 0x63, 0x4d, 0x3B, 0x79, 0xD8, 0x4F, 0x98, 0x03, 0xd7}, - "PATH ", - 18}, - {{0x8e, 0x87, 0x0d, 0x67, 0xf6, 0x60, 0xd9, 0x5d, 0x5b, 0xe5, - 0x30, 0x38, 0x0d, 0x0e, 0xc0, 0xbd, 0x38, 0x82, 0x89, 0xe1}, - "PAX ", - 18}, - {{0xB9, 0x70, 0x48, 0x62, 0x8D, 0xB6, 0xB6, 0x61, 0xD4, 0xC2, - 0xaA, 0x83, 0x3e, 0x95, 0xDb, 0xe1, 0xA9, 0x05, 0xB2, 0x80}, - "PAY ", - 18}, - {{0x55, 0x64, 0x8d, 0xe1, 0x98, 0x36, 0x33, 0x85, 0x49, 0x13, - 0x0b, 0x1a, 0xf5, 0x87, 0xf1, 0x6b, 0xea, 0x46, 0xf6, 0x6b}, - "PBL ", - 18}, - {{0xF4, 0xc0, 0x7b, 0x18, 0x65, 0xbC, 0x32, 0x6A, 0x3c, 0x01, - 0x33, 0x94, 0x92, 0xCa, 0x75, 0x38, 0xFD, 0x03, 0x8C, 0xc0}, - "PBT ", - 4}, - {{0xfc, 0xAC, 0x7A, 0x75, 0x15, 0xe9, 0xA9, 0xd7, 0x61, 0x9f, - 0xA7, 0x7A, 0x1f, 0xa7, 0x38, 0x11, 0x1f, 0x66, 0x72, 0x7e}, - "PCH ", - 18}, - {{0xe3, 0xf4, 0xb4, 0xa5, 0xd9, 0x1e, 0x5c, 0xb9, 0x43, 0x5b, - 0x94, 0x7f, 0x09, 0x0a, 0x31, 0x97, 0x37, 0x03, 0x63, 0x12}, - "PCH ", - 18}, - {{0x36, 0x18, 0x51, 0x6F, 0x45, 0xCD, 0x3c, 0x91, 0x3F, 0x81, - 0xF9, 0x98, 0x7A, 0xF4, 0x10, 0x77, 0x93, 0x2B, 0xc4, 0x0d}, - "PCL ", - 8}, - {{0x53, 0x14, 0x8B, 0xb4, 0x55, 0x17, 0x07, 0xed, 0xF5, 0x1a, - 0x1e, 0x8d, 0x7A, 0x93, 0x69, 0x8d, 0x18, 0x93, 0x12, 0x25}, - "PCLOLD ", - 8}, - {{0x0d, 0xb0, 0x3B, 0x6C, 0xDe, 0x0B, 0x2d, 0x42, 0x7C, 0x64, - 0xa0, 0x4F, 0xeA, 0xfd, 0x82, 0x59, 0x38, 0x36, 0x8f, 0x1F}, - "PDATA ", - 18}, - {{0x8A, 0xe5, 0x6a, 0x68, 0x50, 0xa7, 0xcb, 0xea, 0xC3, 0xc3, - 0xAb, 0x2c, 0xB3, 0x11, 0xe7, 0x62, 0x01, 0x67, 0xeA, 0xC8}, - "PEG ", - 18}, - {{0x58, 0x84, 0x96, 0x9E, 0xc0, 0x48, 0x05, 0x56, 0xE1, 0x1d, - 0x11, 0x99, 0x80, 0x13, 0x6a, 0x4C, 0x17, 0xeD, 0xDE, 0xd1}, - "PET ", - 18}, - {{0xec, 0x18, 0xf8, 0x98, 0xb4, 0x07, 0x6a, 0x3e, 0x18, 0xf1, - 0x08, 0x9d, 0x33, 0x37, 0x6c, 0xc3, 0x80, 0xbd, 0xe6, 0x1d}, - "PETRO ", - 18}, - {{0x55, 0xc2, 0xA0, 0xC1, 0x71, 0xD9, 0x20, 0x84, 0x35, 0x60, - 0x59, 0x4d, 0xE3, 0xd6, 0xEE, 0xcC, 0x09, 0xeF, 0xc0, 0x98}, - "PEXT ", - 4}, - {{0x2f, 0xa3, 0x2a, 0x39, 0xfc, 0x1c, 0x39, 0x9e, 0x0c, 0xc7, - 0xb2, 0x93, 0x58, 0x68, 0xf5, 0x16, 0x5d, 0xe7, 0xce, 0x97}, - "PFR ", - 8}, - {{0x13, 0xc2, 0xfa, 0xb6, 0x35, 0x4d, 0x37, 0x90, 0xd8, 0xec, - 0xe4, 0xf0, 0xf1, 0xa3, 0x28, 0x0b, 0x4a, 0x25, 0xad, 0x96}, - "PHI ", - 18}, - {{0xE6, 0x45, 0x09, 0xF0, 0xbf, 0x07, 0xce, 0x2d, 0x29, 0xA7, - 0xeF, 0x19, 0xA8, 0xA9, 0xbc, 0x06, 0x54, 0x77, 0xC1, 0xB4}, - "PIPL ", - 8}, - {{0x0f, 0xf1, 0x61, 0x07, 0x1e, 0x62, 0x7a, 0x0e, 0x6d, 0xe1, - 0x38, 0x10, 0x5c, 0x73, 0x97, 0x0f, 0x86, 0xca, 0x79, 0x22}, - "PIT ", - 18}, - {{0x8e, 0xFF, 0xd4, 0x94, 0xeB, 0x69, 0x8c, 0xc3, 0x99, 0xAF, - 0x62, 0x31, 0xfC, 0xcd, 0x39, 0xE0, 0x8f, 0xd2, 0x0B, 0x15}, - "PIX ", - 0}, - {{0x02, 0xf2, 0xd4, 0xa0, 0x4e, 0x6e, 0x01, 0xac, 0xe8, 0x8b, - 0xd2, 0xcd, 0x63, 0x28, 0x75, 0x54, 0x3b, 0x2e, 0xf5, 0x77}, - "PKG ", - 18}, - {{0x26, 0x04, 0xfa, 0x40, 0x6b, 0xe9, 0x57, 0xe5, 0x42, 0xbe, - 0xb8, 0x9e, 0x67, 0x54, 0xfc, 0xde, 0x68, 0x15, 0xe8, 0x3f}, - "PKT ", - 18}, - {{0x59, 0x41, 0x6A, 0x25, 0x62, 0x8A, 0x76, 0xb4, 0x73, 0x0e, - 0xC5, 0x14, 0x86, 0x11, 0x4c, 0x32, 0xE0, 0xB5, 0x82, 0xA1}, - "PLASMA ", - 6}, - {{0xE4, 0x77, 0x29, 0x2f, 0x1B, 0x32, 0x68, 0x68, 0x7A, 0x29, - 0x37, 0x61, 0x16, 0xB0, 0xED, 0x27, 0xA9, 0xc7, 0x61, 0x70}, - "PLAY ", - 18}, - {{0x0A, 0xfF, 0xa0, 0x6e, 0x7F, 0xbe, 0x5b, 0xC9, 0xa7, 0x64, - 0xC9, 0x79, 0xaA, 0x66, 0xE8, 0x25, 0x6A, 0x63, 0x1f, 0x02}, - "PLBT ", - 6}, - {{0xe3, 0x81, 0x85, 0x04, 0xc1, 0xB3, 0x2b, 0xF1, 0x55, 0x7b, - 0x16, 0xC2, 0x38, 0xB2, 0xE0, 0x1F, 0xd3, 0x14, 0x9C, 0x17}, - "PLR ", - 18}, - {{0xD8, 0x91, 0x2C, 0x10, 0x68, 0x1D, 0x8B, 0x21, 0xFd, 0x37, - 0x42, 0x24, 0x4f, 0x44, 0x65, 0x8d, 0xBA, 0x12, 0x26, 0x4E}, - "PLU ", - 18}, - {{0x84, 0x6c, 0x66, 0xcf, 0x71, 0xc4, 0x3f, 0x80, 0x40, 0x3b, - 0x51, 0xfe, 0x39, 0x06, 0xb3, 0x59, 0x9d, 0x63, 0x33, 0x6f}, - "PMA ", - 18}, - {{0x81, 0xb4, 0xd0, 0x86, 0x45, 0xda, 0x11, 0x37, 0x4a, 0x03, - 0x74, 0x9a, 0xb1, 0x70, 0x83, 0x6e, 0x4e, 0x53, 0x97, 0x67}, - "PMNT ", - 9}, - {{0x93, 0xed, 0x3f, 0xbe, 0x21, 0x20, 0x7e, 0xc2, 0xe8, 0xf2, - 0xd3, 0xc3, 0xde, 0x6e, 0x05, 0x8c, 0xb7, 0x3b, 0xc0, 0x4d}, - "PNK ", - 18}, - {{0x67, 0x58, 0xb7, 0xd4, 0x41, 0xa9, 0x73, 0x9b, 0x98, 0x55, - 0x2b, 0x37, 0x37, 0x03, 0xd8, 0xd3, 0xd1, 0x4f, 0x9e, 0x62}, - "POA20 ", - 18}, - {{0x0e, 0x09, 0x89, 0xb1, 0xf9, 0xb8, 0xa3, 0x89, 0x83, 0xc2, - 0xba, 0x80, 0x53, 0x26, 0x9c, 0xa6, 0x2e, 0xc9, 0xb1, 0x95}, - "POE ", - 8}, - {{0x43, 0xf6, 0xa1, 0xbe, 0x99, 0x2d, 0xee, 0x40, 0x87, 0x21, - 0x74, 0x84, 0x90, 0x77, 0x2b, 0x15, 0x14, 0x3c, 0xe0, 0xa7}, - "POIN ", - 0}, - {{0x70, 0x5E, 0xE9, 0x6c, 0x1c, 0x16, 0x08, 0x42, 0xC9, 0x2c, - 0x1a, 0xeC, 0xfC, 0xFf, 0xcc, 0xc9, 0xC4, 0x12, 0xe3, 0xD9}, - "POLL ", - 18}, - {{0x99, 0x92, 0xeC, 0x3c, 0xF6, 0xA5, 0x5b, 0x00, 0x97, 0x8c, - 0xdD, 0xF2, 0xb2, 0x7B, 0xC6, 0x88, 0x2d, 0x88, 0xD1, 0xeC}, - "POLY ", - 18}, - {{0x77, 0x9B, 0x7b, 0x71, 0x3C, 0x86, 0xe3, 0xE6, 0x77, 0x4f, - 0x50, 0x40, 0xD9, 0xcC, 0xC2, 0xD4, 0x3a, 0xd3, 0x75, 0xF8}, - "POOL ", - 8}, - {{0xee, 0x60, 0x9f, 0xe2, 0x92, 0x12, 0x8c, 0xad, 0x03, 0xb7, - 0x86, 0xdb, 0xb9, 0xbc, 0x26, 0x34, 0xcc, 0xdb, 0xe7, 0xfc}, - "POS ", - 18}, - {{0x59, 0x58, 0x32, 0xf8, 0xfc, 0x6b, 0xf5, 0x9c, 0x85, 0xc5, - 0x27, 0xfe, 0xc3, 0x74, 0x0a, 0x1b, 0x7a, 0x36, 0x12, 0x69}, - "POWR ", - 6}, - {{0xc4, 0x22, 0x09, 0xac, 0xcc, 0x14, 0x02, 0x9c, 0x10, 0x12, - 0xfb, 0x56, 0x80, 0xd9, 0x5f, 0xbd, 0x60, 0x36, 0xe2, 0xa0}, - "PPP ", - 18}, - {{0xd4, 0xfa, 0x14, 0x60, 0xF5, 0x37, 0xbb, 0x90, 0x85, 0xd2, - 0x2C, 0x7b, 0xcC, 0xB5, 0xDD, 0x45, 0x0E, 0xf2, 0x8e, 0x3a}, - "PPT ", - 8}, - {{0x88, 0xa3, 0xe4, 0xf3, 0x5d, 0x64, 0xaa, 0xd4, 0x1a, 0x6d, - 0x40, 0x30, 0xac, 0x9a, 0xfe, 0x43, 0x56, 0xcb, 0x84, 0xfa}, - "PRE ", - 18}, - {{0x77, 0x28, 0xdf, 0xef, 0x5a, 0xbd, 0x46, 0x86, 0x69, 0xeb, - 0x7f, 0x9b, 0x48, 0xa7, 0xf7, 0x0a, 0x50, 0x1e, 0xd2, 0x9d}, - "PRG ", - 6}, - {{0x3a, 0xdf, 0xc4, 0x99, 0x9f, 0x77, 0xd0, 0x4c, 0x83, 0x41, - 0xba, 0xc5, 0xf3, 0xa7, 0x6f, 0x58, 0xdf, 0xf5, 0xb3, 0x7a}, - "PRIX ", - 8}, - {{0x18, 0x44, 0xb2, 0x15, 0x93, 0x26, 0x26, 0x68, 0xb7, 0x24, - 0x8d, 0x0f, 0x57, 0xa2, 0x20, 0xca, 0xab, 0xa4, 0x6a, 0xb9}, - "PRL ", - 18}, - {{0x90, 0x41, 0xfe, 0x5b, 0x3f, 0xde, 0xa0, 0xf5, 0xe4, 0xaf, - 0xdc, 0x17, 0xe7, 0x51, 0x80, 0x73, 0x8d, 0x87, 0x7a, 0x01}, - "PRO ", - 18}, - {{0x22, 0x6b, 0xb5, 0x99, 0xa1, 0x2C, 0x82, 0x64, 0x76, 0xe3, - 0xA7, 0x71, 0x45, 0x46, 0x97, 0xEA, 0x52, 0xE9, 0xE2, 0x20}, - "PRO ", - 8}, - {{0xA3, 0x14, 0x9E, 0x0f, 0xA0, 0x06, 0x1A, 0x90, 0x07, 0xfA, - 0xf3, 0x07, 0x07, 0x4c, 0xdC, 0xd2, 0x90, 0xf0, 0xe2, 0xFd}, - "PRON ", - 8}, - {{0xE4, 0x0C, 0x37, 0x4d, 0x88, 0x05, 0xb1, 0xdD, 0x58, 0xCD, - 0xcE, 0xFf, 0x99, 0x8A, 0x2F, 0x69, 0x20, 0xCb, 0x52, 0xFD}, - "PRPS ", - 18}, - {{0x16, 0x37, 0x33, 0xbc, 0xc2, 0x8d, 0xbf, 0x26, 0xB4, 0x1a, - 0x8C, 0xfA, 0x83, 0xe3, 0x69, 0xb5, 0xB3, 0xaf, 0x74, 0x1b}, - "PRS ", - 18}, - {{0x0c, 0x04, 0xd4, 0xf3, 0x31, 0xda, 0x8d, 0xf7, 0x5f, 0x9e, - 0x2e, 0x27, 0x1e, 0x3f, 0x3f, 0x14, 0x94, 0xc6, 0x6c, 0x36}, - "PRSP ", - 9}, - {{0x5d, 0x4a, 0xbc, 0x77, 0xb8, 0x40, 0x5a, 0xd1, 0x77, 0xd8, - 0xac, 0x66, 0x82, 0xd5, 0x84, 0xec, 0xbf, 0xd4, 0x6c, 0xec}, - "PST ", - 18}, - {{0x66, 0x49, 0x7a, 0x28, 0x3e, 0x0a, 0x00, 0x7b, 0xa3, 0x97, - 0x4e, 0x83, 0x77, 0x84, 0xc6, 0xae, 0x32, 0x34, 0x47, 0xde}, - "PT ", - 18}, - {{0x2a, 0x8E, 0x98, 0xe2, 0x56, 0xf3, 0x22, 0x59, 0xb5, 0xE5, - 0xCb, 0x55, 0xDd, 0x63, 0xC8, 0xe8, 0x91, 0x95, 0x06, 0x66}, - "PTC ", - 18}, - {{0x49, 0x46, 0x58, 0x3c, 0x5b, 0x86, 0xe0, 0x1c, 0xcd, 0x30, - 0xc7, 0x1a, 0x05, 0x61, 0x7d, 0x06, 0xe3, 0xe7, 0x30, 0x60}, - "PTON ", - 18}, - {{0x8A, 0xe4, 0xBF, 0x2C, 0x33, 0xa8, 0xe6, 0x67, 0xde, 0x34, - 0xB5, 0x49, 0x38, 0xB0, 0xcc, 0xD0, 0x3E, 0xb8, 0xCC, 0x06}, - "PTOY ", - 8}, - {{0x46, 0x89, 0xa4, 0xe1, 0x69, 0xeb, 0x39, 0xcc, 0x90, 0x78, - 0xc0, 0x94, 0x0e, 0x21, 0xff, 0x1a, 0xa8, 0xa3, 0x9b, 0x9c}, - "PTT ", - 18}, - {{0x55, 0x12, 0xe1, 0xd6, 0xa7, 0xbe, 0x42, 0x4b, 0x43, 0x23, - 0x12, 0x6b, 0x4f, 0x9e, 0x86, 0xd0, 0x23, 0xf9, 0x57, 0x64}, - "PTWO ", - 18}, - {{0xef, 0x6b, 0x4c, 0xe8, 0xc9, 0xbc, 0x83, 0x74, 0x4f, 0xbc, - 0xde, 0x26, 0x57, 0xb3, 0x2e, 0xc1, 0x87, 0x90, 0x45, 0x8a}, - "PUC ", - 0}, - {{0xc1, 0x48, 0x30, 0xe5, 0x3a, 0xa3, 0x44, 0xe8, 0xc1, 0x46, - 0x03, 0xa9, 0x12, 0x29, 0xa0, 0xb9, 0x25, 0xb0, 0xb2, 0x62}, - "PXT ", - 8}, - {{0x77, 0x03, 0xc3, 0x5c, 0xff, 0xdc, 0x5c, 0xda, 0x8d, 0x27, - 0xaa, 0x3d, 0xf2, 0xf9, 0xba, 0x69, 0x64, 0x54, 0x4b, 0x6e}, - "PYLNT ", - 18}, - {{0x61, 0x8e, 0x75, 0xac, 0x90, 0xb1, 0x2c, 0x60, 0x49, 0xba, - 0x3b, 0x27, 0xf5, 0xd5, 0xf8, 0x65, 0x1b, 0x00, 0x37, 0xf6}, - "QASH ", - 6}, - {{0x67, 0x1A, 0xbB, 0xe5, 0xCE, 0x65, 0x24, 0x91, 0x98, 0x53, - 0x42, 0xe8, 0x54, 0x28, 0xEB, 0x1b, 0x07, 0xbC, 0x6c, 0x64}, - "QAU ", - 8}, - {{0xcb, 0x5e, 0xa3, 0xc1, 0x90, 0xd8, 0xf8, 0x2d, 0xea, 0xdf, - 0x7c, 0xe5, 0xaf, 0x85, 0x5d, 0xdb, 0xf3, 0x3e, 0x39, 0x62}, - "QBIT ", - 6}, - {{0x24, 0x67, 0xaa, 0x6b, 0x5a, 0x23, 0x51, 0x41, 0x6f, 0xd4, - 0xc3, 0xde, 0xf8, 0x46, 0x2d, 0x84, 0x1f, 0xee, 0xec, 0xec}, - "QBX ", - 18}, - {{0xea, 0x26, 0xc4, 0xac, 0x16, 0xd4, 0xa5, 0xa1, 0x06, 0x82, - 0x0b, 0xc8, 0xae, 0xe8, 0x5f, 0xd0, 0xb7, 0xb2, 0xb6, 0x64}, - "QKC ", - 18}, - {{0x4a, 0x22, 0x0E, 0x60, 0x96, 0xB2, 0x5E, 0xAD, 0xb8, 0x83, - 0x58, 0xcb, 0x44, 0x06, 0x8A, 0x32, 0x48, 0x25, 0x46, 0x75}, - "QNT ", - 18}, - {{0xFF, 0xAA, 0x5f, 0xfc, 0x45, 0x5d, 0x91, 0x31, 0xf8, 0xA2, - 0x71, 0x3A, 0x74, 0x1f, 0xD1, 0x96, 0x03, 0x30, 0x50, 0x8B}, - "QRG ", - 18}, - {{0x69, 0x7b, 0xea, 0xc2, 0x8B, 0x09, 0xE1, 0x22, 0xC4, 0x33, - 0x2D, 0x16, 0x39, 0x85, 0xe8, 0xa7, 0x31, 0x21, 0xb9, 0x7F}, - "QRL ", - 8}, - {{0x99, 0xea, 0x4d, 0xB9, 0xEE, 0x77, 0xAC, 0xD4, 0x0B, 0x11, - 0x9B, 0xD1, 0xdC, 0x4E, 0x33, 0xe1, 0xC0, 0x70, 0xb8, 0x0d}, - "QSP ", - 18}, - {{0x2C, 0x3C, 0x1F, 0x05, 0x18, 0x7d, 0xBa, 0x7A, 0x5f, 0x2D, - 0xd4, 0x7D, 0xca, 0x57, 0x28, 0x1C, 0x4d, 0x4F, 0x18, 0x3F}, - "QTQ ", - 18}, - {{0x9a, 0x64, 0x2d, 0x6b, 0x33, 0x68, 0xdd, 0xc6, 0x62, 0xCA, - 0x24, 0x4b, 0xAd, 0xf3, 0x2c, 0xDA, 0x71, 0x60, 0x05, 0xBC}, - "QTUM ", - 18}, - {{0x26, 0x4d, 0xc2, 0xde, 0xdc, 0xdc, 0xbb, 0x89, 0x75, 0x61, - 0xa5, 0x7c, 0xba, 0x50, 0x85, 0xca, 0x41, 0x6f, 0xb7, 0xb4}, - "QUN ", - 18}, - {{0x11, 0x83, 0xf9, 0x2a, 0x56, 0x24, 0xd6, 0x8e, 0x85, 0xff, - 0xb9, 0x17, 0x0f, 0x16, 0xbf, 0x04, 0x43, 0xb4, 0xc2, 0x42}, - "QVT ", - 18}, - {{0x48, 0xf7, 0x75, 0xef, 0xbe, 0x4f, 0x5e, 0xce, 0x6e, 0x0d, - 0xf2, 0xf7, 0xb5, 0x93, 0x2d, 0xf5, 0x68, 0x23, 0xb9, 0x90}, - "R ", - 0}, - {{0x45, 0xed, 0xb5, 0x35, 0x94, 0x2a, 0x8c, 0x84, 0xd9, 0xf4, - 0xb5, 0xd3, 0x7e, 0x1b, 0x25, 0xf9, 0x1e, 0xa4, 0x80, 0x4c}, - "RAO ", - 18}, - {{0xfc, 0x2c, 0x4d, 0x8f, 0x95, 0x00, 0x2c, 0x14, 0xed, 0x0a, - 0x7a, 0xa6, 0x51, 0x02, 0xca, 0xc9, 0xe5, 0x95, 0x3b, 0x5e}, - "RBLX ", - 18}, - {{0xf9, 0x70, 0xb8, 0xe3, 0x6e, 0x23, 0xf7, 0xfc, 0x3f, 0xd7, - 0x52, 0xee, 0xa8, 0x6f, 0x8b, 0xe8, 0xd8, 0x33, 0x75, 0xa6}, - "RCN ", - 18}, - {{0x13, 0xf2, 0x5c, 0xd5, 0x2b, 0x21, 0x65, 0x0c, 0xaa, 0x82, - 0x25, 0xc9, 0x94, 0x23, 0x37, 0xd9, 0x14, 0xc9, 0xb0, 0x30}, - "RCT ", - 18}, - {{0x25, 0x5a, 0xa6, 0xdf, 0x07, 0x54, 0x0c, 0xb5, 0xd3, 0xd2, - 0x97, 0xf0, 0xd0, 0xd4, 0xd8, 0x4c, 0xb5, 0x2b, 0xc8, 0xe6}, - "RDN ", - 18}, - {{0x76, 0x7b, 0xA2, 0x91, 0x5E, 0xC3, 0x44, 0x01, 0x5a, 0x79, - 0x38, 0xE3, 0xeE, 0xDf, 0xeC, 0x27, 0x85, 0x19, 0x5D, 0x05}, - "REA ", - 18}, - {{0x92, 0x14, 0xec, 0x02, 0xcb, 0x71, 0xcb, 0xa0, 0xad, 0xa6, - 0x89, 0x6b, 0x8d, 0xa2, 0x60, 0x73, 0x6a, 0x67, 0xab, 0x10}, - "REAL ", - 18}, - {{0x5f, 0x53, 0xf7, 0xa8, 0x07, 0x56, 0x14, 0xb6, 0x99, 0xba, - 0xad, 0x0b, 0xc2, 0xc8, 0x99, 0xf4, 0xba, 0xd8, 0xfb, 0xbf}, - "REBL ", - 18}, - {{0x76, 0x96, 0x0d, 0xcc, 0xd5, 0xa1, 0xfe, 0x79, 0x9f, 0x7c, - 0x29, 0xbe, 0x9f, 0x19, 0xce, 0xb4, 0x62, 0x7a, 0xeb, 0x2f}, - "RED ", - 18}, - {{0xB5, 0x63, 0x30, 0x0A, 0x3B, 0xAc, 0x79, 0xFC, 0x09, 0xB9, - 0x3b, 0x6F, 0x84, 0xCE, 0x0d, 0x44, 0x65, 0xA2, 0xAC, 0x27}, - "REDC ", - 18}, - {{0x89, 0x30, 0x35, 0x00, 0xa7, 0xab, 0xfb, 0x17, 0x8b, 0x27, - 0x4f, 0xd8, 0x9f, 0x24, 0x69, 0xc2, 0x64, 0x95, 0x1e, 0x1f}, - "REF ", - 8}, - {{0x83, 0x98, 0x4d, 0x61, 0x42, 0x93, 0x4b, 0xb5, 0x35, 0x79, - 0x3a, 0x82, 0xad, 0xb0, 0xa4, 0x6e, 0xf0, 0xf6, 0x6b, 0x6d}, - "REM ", - 4}, - {{0x40, 0x8e, 0x41, 0x87, 0x6c, 0xCC, 0xDC, 0x0F, 0x92, 0x21, - 0x06, 0x00, 0xef, 0x50, 0x37, 0x26, 0x56, 0x05, 0x2a, 0x38}, - "REN ", - 18}, - {{0x19, 0x85, 0x36, 0x5e, 0x9f, 0x78, 0x35, 0x9a, 0x9B, 0x6A, - 0xD7, 0x60, 0xe3, 0x24, 0x12, 0xf4, 0xa4, 0x45, 0xE8, 0x62}, - "REP ", - 18}, - {{0x8f, 0x82, 0x21, 0xaF, 0xbB, 0x33, 0x99, 0x8d, 0x85, 0x84, - 0xA2, 0xB0, 0x57, 0x49, 0xbA, 0x73, 0xc3, 0x7a, 0x93, 0x8a}, - "REQ ", - 18}, - {{0xf0, 0x5a, 0x93, 0x82, 0xA4, 0xC3, 0xF2, 0x9E, 0x27, 0x84, - 0x50, 0x27, 0x54, 0x29, 0x3D, 0x88, 0xb8, 0x35, 0x10, 0x9C}, - "REX ", - 18}, - {{0xd0, 0x92, 0x9d, 0x41, 0x19, 0x54, 0xc4, 0x74, 0x38, 0xdc, - 0x1d, 0x87, 0x1d, 0xd6, 0x08, 0x1f, 0x5c, 0x5e, 0x14, 0x9c}, - "RFR ", - 4}, - {{0x4c, 0x38, 0x3b, 0xdc, 0xae, 0x52, 0xa6, 0xe1, 0xcb, 0x81, - 0x0c, 0x76, 0xc7, 0x0d, 0x6f, 0x31, 0xa2, 0x49, 0xec, 0x9b}, - "RGS ", - 8}, - {{0x16, 0x82, 0x96, 0xbb, 0x09, 0xe2, 0x4a, 0x88, 0x80, 0x5c, - 0xb9, 0xc3, 0x33, 0x56, 0x53, 0x6b, 0x98, 0x0d, 0x3f, 0xc5}, - "RHOC ", - 8}, - {{0x94, 0x69, 0xD0, 0x13, 0x80, 0x5b, 0xFf, 0xB7, 0xD3, 0xDE, - 0xBe, 0x5E, 0x78, 0x39, 0x23, 0x7e, 0x53, 0x5e, 0xc4, 0x83}, - "RING ", - 18}, - {{0xdd, 0x00, 0x72, 0x78, 0xb6, 0x67, 0xf6, 0xbe, 0xf5, 0x2f, - 0xd0, 0xa4, 0xc2, 0x36, 0x04, 0xaa, 0x1f, 0x96, 0x03, 0x9a}, - "RIPT ", - 8}, - {{0x0b, 0x17, 0x24, 0xcc, 0x9f, 0xda, 0x01, 0x86, 0x91, 0x1e, - 0xf6, 0xa7, 0x59, 0x49, 0xe9, 0xc0, 0xd3, 0xf0, 0xf2, 0xf3}, - "RIYA ", - 8}, - {{0x10, 0x6a, 0xa4, 0x92, 0x95, 0xb5, 0x25, 0xfc, 0xf9, 0x59, - 0xaa, 0x75, 0xec, 0x3f, 0x7d, 0xcb, 0xf5, 0x35, 0x2f, 0x1c}, - "RKT ", - 18}, - {{0x60, 0x7F, 0x4C, 0x5B, 0xB6, 0x72, 0x23, 0x0e, 0x86, 0x72, - 0x08, 0x55, 0x32, 0xf7, 0xe9, 0x01, 0x54, 0x4a, 0x73, 0x75}, - "RLC ", - 9}, - {{0xcC, 0xeD, 0x5B, 0x82, 0x88, 0x08, 0x6B, 0xE8, 0xc3, 0x8E, - 0x23, 0x56, 0x7e, 0x68, 0x4C, 0x37, 0x40, 0xbe, 0x4D, 0x48}, - "RLT ", - 10}, - {{0xbe, 0x99, 0xB0, 0x97, 0x09, 0xfc, 0x75, 0x3b, 0x09, 0xBC, - 0xf5, 0x57, 0xA9, 0x92, 0xF6, 0x60, 0x5D, 0x59, 0x97, 0xB0}, - "RLTY ", - 8}, - {{0x4a, 0x42, 0xd2, 0xc5, 0x80, 0xf8, 0x3d, 0xce, 0x40, 0x4a, - 0xca, 0xd1, 0x8d, 0xab, 0x26, 0xdb, 0x11, 0xa1, 0x75, 0x0e}, - "RLX ", - 18}, - {{0x7d, 0xc4, 0xf4, 0x12, 0x94, 0x69, 0x7a, 0x79, 0x03, 0xc4, - 0x02, 0x7f, 0x6a, 0xc5, 0x28, 0xc5, 0xd1, 0x4c, 0xd7, 0xeb}, - "RMC ", - 8}, - {{0x8d, 0x56, 0x82, 0x94, 0x1c, 0xe4, 0x56, 0x90, 0x0b, 0x12, - 0xd4, 0x7a, 0xc0, 0x6a, 0x88, 0xb4, 0x7c, 0x76, 0x4c, 0xe1}, - "RMESH ", - 18}, - {{0x09, 0x96, 0xbf, 0xb5, 0xd0, 0x57, 0xfa, 0xa2, 0x37, 0x64, - 0x0e, 0x25, 0x06, 0xbe, 0x7b, 0x4f, 0x9c, 0x46, 0xde, 0x0b}, - "RNDR ", - 18}, - {{0xff, 0x60, 0x3f, 0x43, 0x94, 0x6a, 0x3a, 0x28, 0xdf, 0x5e, - 0x6a, 0x73, 0x17, 0x25, 0x55, 0xd8, 0xc8, 0xb0, 0x23, 0x86}, - "RNT ", - 18}, - {{0x1f, 0xe7, 0x0b, 0xe7, 0x34, 0xe4, 0x73, 0xe5, 0x72, 0x1e, - 0xa5, 0x7c, 0x8b, 0x5b, 0x01, 0xe6, 0xca, 0xa5, 0x26, 0x86}, - "RNTB ", - 18}, - {{0x1b, 0xcb, 0xc5, 0x41, 0x66, 0xf6, 0xba, 0x14, 0x99, 0x34, - 0x87, 0x0b, 0x60, 0x50, 0x61, 0x99, 0xb6, 0xc9, 0xdb, 0x6d}, - "ROC ", - 10}, - {{0xA4, 0x01, 0x06, 0x13, 0x4c, 0x5b, 0xF4, 0xc4, 0x14, 0x11, - 0x55, 0x4e, 0x6d, 0xb9, 0x9B, 0x95, 0xA1, 0x5e, 0xd9, 0xd8}, - "ROCK ", - 18}, - {{0xC1, 0x6b, 0x54, 0x2f, 0xf4, 0x90, 0xe0, 0x1f, 0xcc, 0x0D, - 0xC5, 0x8a, 0x60, 0xe1, 0xEF, 0xdc, 0x3e, 0x35, 0x7c, 0xA6}, - "ROCK2 ", - 0}, - {{0x0E, 0x3d, 0xe3, 0xB0, 0xE3, 0xD6, 0x17, 0xFD, 0x8D, 0x1D, - 0x80, 0x88, 0x63, 0x9b, 0xA8, 0x77, 0xfe, 0xb4, 0xd7, 0x42}, - "ROCK2PAY ", - 18}, - {{0xc9, 0xde, 0x4b, 0x7f, 0x0c, 0x3d, 0x99, 0x1e, 0x96, 0x71, - 0x58, 0xe4, 0xd4, 0xbf, 0xa4, 0xb5, 0x1e, 0xc0, 0xb1, 0x14}, - "ROK ", - 18}, - {{0x49, 0x93, 0xCB, 0x95, 0xc7, 0x44, 0x3b, 0xdC, 0x06, 0x15, - 0x5c, 0x5f, 0x56, 0x88, 0xBe, 0x9D, 0x8f, 0x69, 0x99, 0xa5}, - "ROUND ", - 18}, - {{0xb4, 0xef, 0xd8, 0x5c, 0x19, 0x99, 0x9d, 0x84, 0x25, 0x13, - 0x04, 0xbd, 0xa9, 0x9e, 0x90, 0xb9, 0x23, 0x00, 0xbd, 0x93}, - "RPL ", - 18}, - {{0xec, 0x49, 0x1c, 0x10, 0x88, 0xea, 0xe9, 0x92, 0xb7, 0xa2, - 0x14, 0xef, 0xb0, 0xa2, 0x66, 0xad, 0x09, 0x27, 0xa7, 0x2a}, - "RTB ", - 18}, - {{0x3f, 0xd8, 0xf3, 0x9a, 0x96, 0x2e, 0xfd, 0xa0, 0x49, 0x56, - 0x98, 0x1c, 0x31, 0xab, 0x89, 0xfa, 0xb5, 0xfb, 0x8b, 0xc8}, - "RTH ", - 18}, - {{0x54, 0xb2, 0x93, 0x22, 0x60, 0x00, 0xcc, 0xBF, 0xC0, 0x4D, - 0xF9, 0x02, 0xeE, 0xC5, 0x67, 0xCB, 0x4C, 0x35, 0xa9, 0x03}, - "RTN ", - 18}, - {{0xf2, 0x78, 0xc1, 0xca, 0x96, 0x90, 0x95, 0xff, 0xdd, 0xde, - 0xd0, 0x20, 0x29, 0x0c, 0xf8, 0xb5, 0xc4, 0x24, 0xac, 0xe2}, - "RUFF ", - 18}, - {{0xdE, 0xE0, 0x2D, 0x94, 0xbe, 0x49, 0x29, 0xd2, 0x6f, 0x67, - 0xB6, 0x4A, 0xda, 0x7a, 0xCf, 0x19, 0x14, 0x00, 0x7F, 0x10}, - "RUNE ", - 18}, - {{0x3d, 0x1b, 0xa9, 0xbe, 0x9f, 0x66, 0xb8, 0xee, 0x10, 0x19, - 0x11, 0xbc, 0x36, 0xd3, 0xfb, 0x56, 0x2e, 0xac, 0x22, 0x44}, - "RVT ", - 18}, - {{0xe8, 0x66, 0x3a, 0x64, 0xa9, 0x61, 0x69, 0xff, 0x4d, 0x95, - 0xb4, 0x29, 0x9e, 0x7a, 0xe9, 0xa7, 0x6b, 0x90, 0x5b, 0x31}, - "Rating ", - 8}, - {{0x1e, 0xc8, 0xfe, 0x51, 0xa9, 0xb6, 0xa3, 0xa6, 0xc4, 0x27, - 0xd1, 0x7d, 0x9e, 0xcc, 0x30, 0x60, 0xfb, 0xc4, 0xa4, 0x5c}, - "S-A-PAT ", - 18}, - {{0x3e, 0xb9, 0x1d, 0x23, 0x7e, 0x49, 0x1e, 0x0d, 0xee, 0x85, - 0x82, 0xc4, 0x02, 0xd8, 0x5c, 0xb4, 0x40, 0xfb, 0x6b, 0x54}, - "S-ETH ", - 18}, - {{0x41, 0x56, 0xD3, 0x34, 0x2D, 0x5c, 0x38, 0x5a, 0x87, 0xD2, - 0x64, 0xF9, 0x06, 0x53, 0x73, 0x35, 0x92, 0x00, 0x05, 0x81}, - "SALT ", - 8}, - {{0x7C, 0x5A, 0x0C, 0xE9, 0x26, 0x7E, 0xD1, 0x9B, 0x22, 0xF8, - 0xca, 0xe6, 0x53, 0xF1, 0x98, 0xe3, 0xE8, 0xda, 0xf0, 0x98}, - "SAN ", - 18}, - {{0x78, 0xfe, 0x18, 0xe4, 0x1f, 0x43, 0x6e, 0x19, 0x81, 0xa3, - 0xa6, 0x0d, 0x15, 0x57, 0xc8, 0xa7, 0xa9, 0x37, 0x04, 0x61}, - "SCANDI ", - 2}, - {{0xd7, 0x63, 0x17, 0x87, 0xb4, 0xdc, 0xc8, 0x7b, 0x12, 0x54, - 0xcf, 0xd1, 0xe5, 0xce, 0x48, 0xe9, 0x68, 0x23, 0xde, 0xe8}, - "SCL ", - 8}, - {{0x24, 0xdc, 0xc8, 0x81, 0xe7, 0xdd, 0x73, 0x05, 0x46, 0x83, - 0x44, 0x52, 0xf2, 0x18, 0x72, 0xd5, 0xcb, 0x4b, 0x52, 0x93}, - "SCRL ", - 18}, - {{0xa1, 0x3f, 0x07, 0x43, 0x95, 0x1b, 0x4f, 0x6e, 0x3e, 0x3a, - 0xa0, 0x39, 0xf6, 0x82, 0xe1, 0x72, 0x79, 0xf5, 0x2b, 0xc3}, - "SENC ", - 18}, - {{0x67, 0x45, 0xfA, 0xB6, 0x80, 0x1e, 0x37, 0x6c, 0xD2, 0x4F, - 0x03, 0x57, 0x2B, 0x9C, 0x9B, 0x0D, 0x4E, 0xdD, 0xDC, 0xcf}, - "SENSE ", - 8}, - {{0xa4, 0x4e, 0x51, 0x37, 0x29, 0x3e, 0x85, 0x5b, 0x1b, 0x7b, - 0xc7, 0xe2, 0xc6, 0xf8, 0xcd, 0x79, 0x6f, 0xfc, 0xb0, 0x37}, - "SENT ", - 8}, - {{0xe0, 0x6e, 0xda, 0x74, 0x35, 0xba, 0x74, 0x9b, 0x04, 0x73, - 0x80, 0xce, 0xd4, 0x91, 0x21, 0xdd, 0xe9, 0x33, 0x34, 0xae}, - "SET ", - 0}, - {{0x98, 0xf5, 0xe9, 0xb7, 0xf0, 0xe3, 0x39, 0x56, 0xc0, 0x44, - 0x3e, 0x81, 0xbf, 0x7d, 0xeb, 0x8b, 0x5b, 0x1e, 0xd5, 0x45}, - "SEXY ", - 18}, - {{0xa1, 0xcc, 0xc1, 0x66, 0xfa, 0xf0, 0xE9, 0x98, 0xb3, 0xE3, - 0x32, 0x25, 0xA1, 0xA0, 0x30, 0x1B, 0x1C, 0x86, 0x11, 0x9D}, - "SGEL ", - 18}, - {{0xb2, 0x13, 0x5a, 0xb9, 0x69, 0x5a, 0x76, 0x78, 0xdd, 0x59, - 0x0b, 0x1a, 0x99, 0x6c, 0xb0, 0xf3, 0x7b, 0xcb, 0x07, 0x18}, - "SGN ", - 9}, - {{0x33, 0xc6, 0x23, 0xa2, 0xba, 0xaf, 0xeb, 0x8d, 0x15, 0xdf, - 0xaf, 0x3c, 0xe4, 0x40, 0x95, 0xef, 0xec, 0x83, 0xd7, 0x2c}, - "SGP ", - 18}, - {{0xcb, 0x5a, 0x05, 0xbe, 0xf3, 0x25, 0x76, 0x13, 0xe9, 0x84, - 0xc1, 0x7d, 0xbc, 0xf0, 0x39, 0x95, 0x2b, 0x6d, 0x88, 0x3f}, - "SGR ", - 8}, - {{0x37, 0x42, 0x75, 0x76, 0x32, 0x4f, 0xE1, 0xf3, 0x62, 0x5c, - 0x91, 0x02, 0x67, 0x47, 0x72, 0xd7, 0xCF, 0x71, 0x37, 0x7d}, - "SelfieYo ", - 18}, - {{0xd2, 0x48, 0xB0, 0xD4, 0x8E, 0x44, 0xaa, 0xF9, 0xc4, 0x9a, - 0xea, 0x03, 0x12, 0xbe, 0x7E, 0x13, 0xa6, 0xdc, 0x14, 0x68}, - "StatusGn ", - 1}, - {{0xe2, 0x5b, 0x0b, 0xba, 0x01, 0xdc, 0x56, 0x30, 0x31, 0x2b, - 0x6a, 0x21, 0x92, 0x7e, 0x57, 0x80, 0x61, 0xa1, 0x3f, 0x55}, - "SHIP ", - 18}, - {{0xEF, 0x2E, 0x99, 0x66, 0xeb, 0x61, 0xBB, 0x49, 0x4E, 0x53, - 0x75, 0xd5, 0xDf, 0x8d, 0x67, 0xB7, 0xdB, 0x8A, 0x78, 0x0D}, - "SHIT ", - 0}, - {{0x85, 0x42, 0x32, 0x5b, 0x72, 0xc6, 0xd9, 0xfc, 0x0a, 0xd2, - 0xca, 0x96, 0x5a, 0x78, 0x43, 0x54, 0x13, 0xa9, 0x15, 0xa0}, - "SHL ", - 18}, - {{0xef, 0x24, 0x63, 0x09, 0x93, 0x60, 0xa0, 0x85, 0xf1, 0xf1, - 0x0b, 0x07, 0x6e, 0xd7, 0x2e, 0xf6, 0x25, 0x49, 0x7a, 0x06}, - "SHP ", - 18}, - {{0x8a, 0x18, 0x7d, 0x52, 0x85, 0xd3, 0x16, 0xbc, 0xbc, 0x9a, - 0xda, 0xfc, 0x08, 0xb5, 0x1d, 0x70, 0xa0, 0xd8, 0xe0, 0x00}, - "SIFT ", - 0}, - {{0x68, 0x88, 0xa1, 0x6e, 0xA9, 0x79, 0x2c, 0x15, 0xA4, 0xDC, - 0xF2, 0xf6, 0xC6, 0x23, 0xD0, 0x55, 0xc8, 0xeD, 0xe7, 0x92}, - "SIG ", - 18}, - {{0x4a, 0xf3, 0x28, 0xc5, 0x29, 0x21, 0x70, 0x6d, 0xcb, 0x73, - 0x9f, 0x25, 0x78, 0x62, 0x10, 0x49, 0x91, 0x69, 0xaf, 0xe6}, - "SKB ", - 8}, - {{0x13, 0xDB, 0x74, 0xB3, 0xcf, 0x51, 0x2F, 0x65, 0xC4, 0xb9, - 0x16, 0x83, 0x94, 0x0B, 0x4f, 0x39, 0x55, 0xE0, 0x50, 0x85}, - "SKE ", - 8}, - {{0x2b, 0xDC, 0x0D, 0x42, 0x99, 0x60, 0x17, 0xfC, 0xe2, 0x14, - 0xb2, 0x16, 0x07, 0xa5, 0x15, 0xDA, 0x41, 0xA9, 0xE0, 0xC5}, - "SKIN ", - 6}, - {{0xd9, 0x9b, 0x8a, 0x7f, 0xa4, 0x8e, 0x25, 0xcc, 0xe8, 0x3b, - 0x81, 0x81, 0x22, 0x20, 0xa3, 0xe0, 0x3b, 0xf6, 0x4e, 0x5f}, - "SKM ", - 18}, - {{0x49, 0x94, 0xe8, 0x18, 0x97, 0xa9, 0x20, 0xc0, 0xFE, 0xA2, - 0x35, 0xeb, 0x8C, 0xEd, 0xEE, 0xd3, 0xc6, 0xfF, 0xF6, 0x97}, - "SKO1 ", - 18}, - {{0x4c, 0x38, 0x2F, 0x8E, 0x09, 0x61, 0x5A, 0xC8, 0x6E, 0x08, - 0xCE, 0x58, 0x26, 0x6C, 0xC2, 0x27, 0xe7, 0xd4, 0xD9, 0x13}, - "SKR ", - 6}, - {{0xfd, 0xFE, 0x8b, 0x7a, 0xB6, 0xCF, 0x1b, 0xD1, 0xE3, 0xd1, - 0x45, 0x38, 0xEf, 0x40, 0x68, 0x62, 0x96, 0xC4, 0x20, 0x52}, - "SKRP ", - 18}, - {{0x6E, 0x34, 0xd8, 0xd8, 0x47, 0x64, 0xD4, 0x0f, 0x6D, 0x7b, - 0x39, 0xcd, 0x56, 0x9F, 0xd0, 0x17, 0xbF, 0x53, 0x17, 0x7D}, - "SKRP 1 ", - 18}, - {{0x32, 0x4a, 0x48, 0xeb, 0xcb, 0xb4, 0x6e, 0x61, 0x99, 0x39, - 0x31, 0xef, 0x9d, 0x35, 0xf6, 0x69, 0x7c, 0xd2, 0x90, 0x1b}, - "SKRP 1-E ", - 18}, - {{0x7A, 0x5f, 0xF2, 0x95, 0xDc, 0x82, 0x39, 0xd5, 0xC2, 0x37, - 0x4E, 0x4D, 0x89, 0x42, 0x02, 0xaA, 0xF0, 0x29, 0xCa, 0xb6}, - "SLT ", - 3}, - {{0x79, 0x28, 0xc8, 0xaB, 0xF1, 0xF7, 0x4e, 0xF9, 0xF9, 0x6D, - 0x4D, 0x0a, 0x44, 0xe3, 0xb4, 0x20, 0x9d, 0x36, 0x07, 0x85}, - "SLY ", - 18}, - {{0x6F, 0x6D, 0xEb, 0x5d, 0xb0, 0xC4, 0x99, 0x4A, 0x82, 0x83, - 0xA0, 0x1D, 0x6C, 0xFe, 0xEB, 0x27, 0xFc, 0x3b, 0xBe, 0x9C}, - "SMART ", - 0}, - {{0x39, 0x01, 0x3f, 0x96, 0x1c, 0x37, 0x8f, 0x02, 0xc2, 0xb8, - 0x2a, 0x6e, 0x1d, 0x31, 0xe9, 0x81, 0x27, 0x86, 0xfd, 0x9d}, - "SMS ", - 3}, - {{0x2d, 0xcf, 0xaa, 0xc1, 0x1c, 0x9e, 0xeb, 0xd8, 0xc6, 0xc4, - 0x21, 0x03, 0xfe, 0x9e, 0x2a, 0x6a, 0xd2, 0x37, 0xaf, 0x27}, - "SmartNod ", - 18}, - {{0x55, 0xf9, 0x39, 0x85, 0x43, 0x1f, 0xc9, 0x30, 0x40, 0x77, - 0x68, 0x7a, 0x35, 0xa1, 0xba, 0x10, 0x3d, 0xc1, 0xe0, 0x81}, - "SmartMsh ", - 18}, - {{0x78, 0xEb, 0x8D, 0xC6, 0x41, 0x07, 0x7F, 0x04, 0x9f, 0x91, - 0x06, 0x59, 0xb6, 0xd5, 0x80, 0xE8, 0x0d, 0xC4, 0xd2, 0x37}, - "SocialMk ", - 8}, - {{0x19, 0x8a, 0x87, 0xb3, 0x11, 0x41, 0x43, 0x91, 0x3d, 0x42, - 0x29, 0xfb, 0x0f, 0x6d, 0x4b, 0xcb, 0x44, 0xaa, 0x8a, 0xff}, - "SNBL ", - 8}, - {{0xF4, 0x13, 0x41, 0x46, 0xAF, 0x2d, 0x51, 0x1D, 0xd5, 0xEA, - 0x8c, 0xDB, 0x1C, 0x4A, 0xC8, 0x8C, 0x57, 0xD6, 0x04, 0x04}, - "SNC ", - 18}, - {{0xf3, 0x33, 0xb2, 0xAc, 0xe9, 0x92, 0xac, 0x2b, 0xBD, 0x87, - 0x98, 0xbF, 0x57, 0xBc, 0x65, 0xa0, 0x61, 0x84, 0xaf, 0xBa}, - "SND ", - 0}, - {{0xcF, 0xD6, 0xAe, 0x8B, 0xF1, 0x3f, 0x42, 0xDE, 0x14, 0x86, - 0x73, 0x51, 0xeA, 0xff, 0x7A, 0x8A, 0x3b, 0x9F, 0xbB, 0xe7}, - "SNG ", - 8}, - {{0xae, 0xC2, 0xE8, 0x7E, 0x0A, 0x23, 0x52, 0x66, 0xD9, 0xC5, - 0xAD, 0xc9, 0xDE, 0xb4, 0xb2, 0xE2, 0x9b, 0x54, 0xD0, 0x09}, - "SNGLS ", - 0}, - {{0x44, 0xF5, 0x88, 0xaE, 0xeB, 0x8C, 0x44, 0x47, 0x14, 0x39, - 0xD1, 0x27, 0x0B, 0x36, 0x03, 0xc6, 0x6a, 0x92, 0x62, 0xF1}, - "SNIP ", - 18}, - {{0x98, 0x3F, 0x6d, 0x60, 0xdb, 0x79, 0xea, 0x8c, 0xA4, 0xeB, - 0x99, 0x68, 0xC6, 0xaF, 0xf8, 0xcf, 0xA0, 0x4B, 0x3c, 0x63}, - "SNM ", - 18}, - {{0xbd, 0xc5, 0xba, 0xc3, 0x9d, 0xbe, 0x13, 0x2b, 0x1e, 0x03, - 0x0e, 0x89, 0x8a, 0xe3, 0x83, 0x00, 0x17, 0xd7, 0xd9, 0x69}, - "SNOV ", - 18}, - {{0x74, 0x4d, 0x70, 0xFD, 0xBE, 0x2B, 0xa4, 0xCF, 0x95, 0x13, - 0x16, 0x26, 0x61, 0x4a, 0x17, 0x63, 0xDF, 0x80, 0x5B, 0x9E}, - "SNT ", - 18}, - {{0x28, 0x59, 0x02, 0x1e, 0xe7, 0xf2, 0xcb, 0x10, 0x16, 0x2e, - 0x67, 0xf3, 0x3a, 0xf2, 0xd2, 0x27, 0x64, 0xb3, 0x1a, 0xff}, - "SNTR ", - 4}, - {{0x2d, 0x0e, 0x95, 0xbd, 0x47, 0x95, 0xd7, 0xac, 0xe0, 0xda, - 0x3c, 0x0f, 0xf7, 0xb7, 0x06, 0xa5, 0x97, 0x0e, 0xb9, 0xd3}, - "SOC ", - 18}, - {{0x1f, 0x54, 0x63, 0x8b, 0x77, 0x37, 0x19, 0x3f, 0xfd, 0x86, - 0xc1, 0x9e, 0xc5, 0x19, 0x07, 0xa7, 0xc4, 0x17, 0x55, 0xd8}, - "SOL ", - 6}, - {{0x1c, 0x62, 0xac, 0xa2, 0xb7, 0x60, 0x5d, 0xb3, 0x60, 0x6e, - 0xac, 0xda, 0x7b, 0xc6, 0x7a, 0x18, 0x57, 0xdd, 0xb8, 0xff}, - "SONIQ ", - 18}, - {{0x42, 0xd6, 0x62, 0x2d, 0xec, 0xe3, 0x94, 0xb5, 0x49, 0x99, - 0xfb, 0xd7, 0x3d, 0x10, 0x81, 0x23, 0x80, 0x6f, 0x6a, 0x18}, - "SPANK ", - 18}, - {{0x58, 0xbf, 0x7d, 0xf5, 0x7d, 0x9D, 0xA7, 0x11, 0x3c, 0x4c, - 0xCb, 0x49, 0xd8, 0x46, 0x3D, 0x49, 0x08, 0xC7, 0x35, 0xcb}, - "SPARC ", - 18}, - {{0x24, 0xae, 0xf3, 0xbf, 0x1a, 0x47, 0x56, 0x15, 0x00, 0xf9, - 0x43, 0x0d, 0x74, 0xed, 0x40, 0x97, 0xc4, 0x7f, 0x51, 0xf2}, - "SPARTA ", - 4}, - {{0x1d, 0xea, 0x97, 0x9a, 0xe7, 0x6f, 0x26, 0x07, 0x18, 0x70, - 0xf8, 0x24, 0x08, 0x8d, 0xa7, 0x89, 0x79, 0xeb, 0x91, 0xc8}, - "SPD ", - 18}, - {{0x85, 0x08, 0x93, 0x89, 0xC1, 0x4B, 0xd9, 0xc7, 0x7F, 0xC2, - 0xb8, 0xF0, 0xc3, 0xd1, 0xdC, 0x33, 0x63, 0xBf, 0x06, 0xEf}, - "SPF ", - 18}, - {{0x38, 0x33, 0xdd, 0xa0, 0xae, 0xb6, 0x94, 0x7b, 0x98, 0xce, - 0x45, 0x4d, 0x89, 0x36, 0x6c, 0xba, 0x8c, 0xc5, 0x55, 0x28}, - "SPHTX ", - 18}, - {{0x03, 0x24, 0xdd, 0x19, 0x5d, 0x0c, 0xd5, 0x3f, 0x9f, 0x07, - 0xbe, 0xe6, 0xa4, 0x8e, 0xe7, 0xa2, 0x0b, 0xad, 0x73, 0x8f}, - "SPICE ", - 8}, - {{0x20, 0xF7, 0xA3, 0xDd, 0xF2, 0x44, 0xdc, 0x92, 0x99, 0x97, - 0x5b, 0x4D, 0xa1, 0xC3, 0x9F, 0x8D, 0x5D, 0x75, 0xf0, 0x5A}, - "SPN ", - 6}, - {{0x05, 0xaa, 0xaa, 0x82, 0x9a, 0xfa, 0x40, 0x7d, 0x83, 0x31, - 0x5c, 0xde, 0xd1, 0xd4, 0x5e, 0xb1, 0x60, 0x25, 0x91, 0x0c}, - "SPX ", - 18}, - {{0x68, 0xd5, 0x7c, 0x9a, 0x1C, 0x35, 0xf6, 0x3E, 0x2c, 0x83, - 0xeE, 0x8e, 0x49, 0xA6, 0x4e, 0x9d, 0x70, 0x52, 0x8D, 0x25}, - "SRN ", - 18}, - {{0xbb, 0xFF, 0x86, 0x2d, 0x90, 0x6E, 0x34, 0x8E, 0x99, 0x46, - 0xBf, 0xb2, 0x13, 0x2e, 0xcB, 0x15, 0x7D, 0xa3, 0xD4, 0xb4}, - "SS shard ", - 18}, - {{0x6e, 0x20, 0x50, 0xCB, 0xFB, 0x3e, 0xD8, 0xA4, 0xd3, 0x9b, - 0x64, 0xcC, 0x9f, 0x47, 0xE7, 0x11, 0xa0, 0x3a, 0x5a, 0x89}, - "SSH ", - 18}, - {{0x62, 0x4d, 0x52, 0x0b, 0xab, 0x2e, 0x4a, 0xd8, 0x39, 0x35, - 0xfa, 0x50, 0x3f, 0xb1, 0x30, 0x61, 0x43, 0x74, 0xe8, 0x50}, - "SSP ", - 4}, - {{0x9a, 0x00, 0x5c, 0x9a, 0x89, 0xbd, 0x72, 0xa4, 0xbd, 0x27, - 0x72, 0x1e, 0x7a, 0x09, 0xa3, 0xc1, 0x1d, 0x2b, 0x03, 0xc4}, - "STAC ", - 18}, - {{0xF7, 0x0a, 0x64, 0x2b, 0xD3, 0x87, 0xF9, 0x43, 0x80, 0xfF, - 0xb9, 0x04, 0x51, 0xC2, 0xc8, 0x1d, 0x4E, 0xb8, 0x2C, 0xBc}, - "STAR ", - 18}, - {{0x09, 0xbc, 0xa6, 0xeb, 0xab, 0x05, 0xee, 0x2a, 0xe9, 0x45, - 0xbe, 0x4e, 0xda, 0x51, 0x39, 0x3d, 0x94, 0xbf, 0x7b, 0x99}, - "STB ", - 4}, - {{0x62, 0x9a, 0xEe, 0x55, 0xed, 0x49, 0x58, 0x1C, 0x33, 0xab, - 0x27, 0xf9, 0x40, 0x3F, 0x79, 0x92, 0xA2, 0x89, 0xff, 0xd5}, - "STC ", - 18}, - {{0xaE, 0x73, 0xB3, 0x8d, 0x1c, 0x9A, 0x8b, 0x27, 0x41, 0x27, - 0xec, 0x30, 0x16, 0x0a, 0x49, 0x27, 0xC4, 0xd7, 0x18, 0x24}, - "STK ", - 18}, - {{0x59, 0x93, 0x46, 0x77, 0x9e, 0x90, 0xfc, 0x3F, 0x5F, 0x99, - 0x7b, 0x5e, 0xa7, 0x15, 0x34, 0x98, 0x20, 0xF9, 0x15, 0x71}, - "STN ", - 4}, - {{0xB6, 0x4e, 0xf5, 0x1C, 0x88, 0x89, 0x72, 0xc9, 0x08, 0xCF, - 0xac, 0xf5, 0x9B, 0x47, 0xC1, 0xAf, 0xBC, 0x0A, 0xb8, 0xaC}, - "STORJ ", - 8}, - {{0xD0, 0xa4, 0xb8, 0x94, 0x6C, 0xb5, 0x2f, 0x06, 0x61, 0x27, - 0x3b, 0xfb, 0xC6, 0xfD, 0x0E, 0x0C, 0x75, 0xFc, 0x64, 0x33}, - "STORM ", - 18}, - {{0xec, 0xd5, 0x70, 0xbB, 0xf7, 0x47, 0x61, 0xb9, 0x60, 0xFa, - 0x04, 0xCc, 0x10, 0xfe, 0x2c, 0x4e, 0x86, 0xFf, 0xDA, 0x36}, - "STP ", - 8}, - {{0x5c, 0x3a, 0x22, 0x85, 0x10, 0xd2, 0x46, 0xb7, 0x8a, 0x37, - 0x65, 0xc2, 0x02, 0x21, 0xcb, 0xf3, 0x08, 0x2b, 0x44, 0xa4}, - "STQ ", - 18}, - {{0xBA, 0xE2, 0x35, 0x82, 0x3D, 0x72, 0x55, 0xD9, 0xD4, 0x86, - 0x35, 0xcE, 0xd4, 0x73, 0x52, 0x27, 0x24, 0x4C, 0xd5, 0x83}, - "STR ", - 18}, - {{0x46, 0x49, 0x24, 0x73, 0x75, 0x5e, 0x8d, 0xF9, 0x60, 0xF8, - 0x03, 0x48, 0x77, 0xF6, 0x17, 0x32, 0xD7, 0x18, 0xCE, 0x96}, - "STRC ", - 8}, - {{0x03, 0x71, 0xa8, 0x2e, 0x4a, 0x9d, 0x0a, 0x43, 0x12, 0xf3, - 0xee, 0x2a, 0xc9, 0xc6, 0x95, 0x85, 0x12, 0x89, 0x13, 0x72}, - "STU ", - 18}, - {{0x00, 0x6B, 0xeA, 0x43, 0xBa, 0xa3, 0xf7, 0xA6, 0xf7, 0x65, - 0xF1, 0x4f, 0x10, 0xA1, 0xa1, 0xb0, 0x83, 0x34, 0xEF, 0x45}, - "STX ", - 18}, - {{0x12, 0x48, 0x0E, 0x24, 0xeb, 0x5b, 0xec, 0x1a, 0x9D, 0x43, - 0x69, 0xCa, 0xB6, 0xa8, 0x0c, 0xaD, 0x3c, 0x0A, 0x37, 0x7A}, - "SUB ", - 2}, - {{0xe1, 0x20, 0xc1, 0xec, 0xbf, 0xdf, 0xea, 0x7f, 0x0a, 0x8f, - 0x0e, 0xe3, 0x00, 0x63, 0x49, 0x1e, 0x8c, 0x26, 0xfe, 0xdf}, - "SUR ", - 8}, - {{0xbd, 0xeb, 0x4b, 0x83, 0x25, 0x1f, 0xb1, 0x46, 0x68, 0x7f, - 0xa1, 0x9d, 0x1c, 0x66, 0x0f, 0x99, 0x41, 0x1e, 0xef, 0xe3}, - "SVD ", - 18}, - {{0x0b, 0xb2, 0x17, 0xe4, 0x0f, 0x8a, 0x5c, 0xb7, 0x9a, 0xdf, - 0x04, 0xe1, 0xaa, 0xb6, 0x0e, 0x5a, 0xbd, 0x0d, 0xfc, 0x1e}, - "SWFTC ", - 8}, - {{0x9e, 0x88, 0x61, 0x34, 0x18, 0xcf, 0x03, 0xdc, 0xa5, 0x4d, - 0x6a, 0x2c, 0xf6, 0xad, 0x93, 0x4a, 0x78, 0xc7, 0xa1, 0x7a}, - "SWM ", - 18}, - {{0xB9, 0xe7, 0xF8, 0x56, 0x8e, 0x08, 0xd5, 0x65, 0x9f, 0x5D, - 0x29, 0xC4, 0x99, 0x71, 0x73, 0xd8, 0x4C, 0xdF, 0x26, 0x07}, - "SWT ", - 18}, - {{0x12, 0xb3, 0x06, 0xfa, 0x98, 0xf4, 0xcb, 0xb8, 0xd4, 0x45, - 0x7f, 0xdf, 0xf3, 0xa0, 0xa0, 0xa5, 0x6f, 0x07, 0xcc, 0xdf}, - "SXDT ", - 18}, - {{0x2c, 0x82, 0xc7, 0x3d, 0x5b, 0x34, 0xaa, 0x01, 0x59, 0x89, - 0x46, 0x2b, 0x29, 0x48, 0xcd, 0x61, 0x6a, 0x37, 0x64, 0x1f}, - "SXUT ", - 18}, - {{0x10, 0xb1, 0x23, 0xfd, 0xdd, 0xe0, 0x03, 0x24, 0x31, 0x99, - 0xaa, 0xd0, 0x35, 0x22, 0x06, 0x5d, 0xc0, 0x58, 0x27, 0xa0}, - "SYN ", - 18}, - {{0xb1, 0xee, 0xf1, 0x47, 0x02, 0x8e, 0x9f, 0x48, 0x0d, 0xbc, - 0x5c, 0xca, 0xa3, 0x27, 0x7d, 0x41, 0x7d, 0x1b, 0x85, 0xf0}, - "Seele ", - 18}, - {{0x4c, 0xa7, 0x41, 0x85, 0x53, 0x2d, 0xc1, 0x78, 0x95, 0x27, - 0x19, 0x4e, 0x5b, 0x9c, 0x86, 0x6d, 0xd3, 0x3f, 0x4e, 0x82}, - "SenSatoI ", - 18}, - {{0xD6, 0x59, 0x60, 0xFA, 0xcb, 0x8E, 0x4a, 0x2d, 0xFc, 0xb2, - 0xC2, 0x21, 0x2c, 0xb2, 0xe4, 0x4a, 0x02, 0xe2, 0xa5, 0x7E}, - "Soar ", - 6}, - {{0x1d, 0x4c, 0xcc, 0x31, 0xda, 0xb6, 0xea, 0x20, 0xf4, 0x61, - 0xd3, 0x29, 0xa0, 0x56, 0x2c, 0x1c, 0x58, 0x41, 0x25, 0x15}, - "TALAO ", - 18}, - {{0xc2, 0x7a, 0x2f, 0x05, 0xfa, 0x57, 0x7a, 0x83, 0xba, 0x0f, - 0xdb, 0x4c, 0x38, 0x44, 0x3c, 0x07, 0x18, 0x35, 0x65, 0x01}, - "TAU ", - 18}, - {{0xFA, 0xCC, 0xD5, 0xFc, 0x83, 0xc3, 0xE4, 0xC3, 0xc1, 0xAC, - 0x1E, 0xF3, 0x5D, 0x15, 0xad, 0xf0, 0x6b, 0xCF, 0x20, 0x9C}, - "TBC2 ", - 8}, - {{0xAF, 0xe6, 0x05, 0x11, 0x34, 0x1a, 0x37, 0x48, 0x8d, 0xe2, - 0x5B, 0xef, 0x35, 0x19, 0x52, 0x56, 0x2E, 0x31, 0xfC, 0xc1}, - "TBT ", - 8}, - {{0x3a, 0x92, 0xbd, 0x39, 0x6a, 0xef, 0x82, 0xaf, 0x98, 0xeb, - 0xc0, 0xaa, 0x90, 0x30, 0xd2, 0x5a, 0x23, 0xb1, 0x1c, 0x6b}, - "TBX ", - 18}, - {{0xfA, 0x0e, 0xF5, 0xE0, 0x34, 0xCa, 0xE1, 0xAE, 0x75, 0x2d, - 0x59, 0xbd, 0xb8, 0xaD, 0xcD, 0xe3, 0x7E, 0xd7, 0xaB, 0x97}, - "TCA ", - 18}, - {{0x99, 0x72, 0xa0, 0xf2, 0x41, 0x94, 0x44, 0x7e, 0x73, 0xa7, - 0xe8, 0xb6, 0xcd, 0x26, 0xa5, 0x2e, 0x02, 0xdd, 0xfa, 0xd5}, - "TCH ", - 0}, - {{0x2a, 0x1d, 0xba, 0xbe, 0x65, 0xc5, 0x95, 0xB0, 0x02, 0x2e, - 0x75, 0x20, 0x8C, 0x34, 0x01, 0x41, 0x39, 0xd5, 0xd3, 0x57}, - "TDH ", - 18}, - {{0x1c, 0x79, 0xab, 0x32, 0xc6, 0x6a, 0xca, 0xa1, 0xe9, 0xe8, - 0x19, 0x52, 0xb8, 0xaa, 0xa5, 0x81, 0xb4, 0x3e, 0x54, 0xe7}, - "TEAM ", - 4}, - {{0xEc, 0x32, 0xA9, 0x72, 0x5C, 0x59, 0x85, 0x5d, 0x84, 0x1b, - 0xa7, 0xd8, 0xD9, 0xc9, 0x9c, 0x84, 0xff, 0x75, 0x46, 0x88}, - "TEL Medi ", - 18}, - {{0x85, 0xe0, 0x76, 0x36, 0x1c, 0xc8, 0x13, 0xa9, 0x08, 0xff, - 0x67, 0x2f, 0x9b, 0xad, 0x15, 0x41, 0x47, 0x44, 0x02, 0xb2}, - "TEL ", - 2}, - {{0xdd, 0x16, 0xec, 0x0f, 0x66, 0xe5, 0x4d, 0x45, 0x3e, 0x67, - 0x56, 0x71, 0x3e, 0x53, 0x33, 0x55, 0x98, 0x90, 0x40, 0xe4}, - "TEN ", - 18}, - {{0xe5, 0xf1, 0x66, 0xc0, 0xd8, 0x87, 0x2b, 0x68, 0x79, 0x00, - 0x61, 0x31, 0x7b, 0xb6, 0xcc, 0xa0, 0x45, 0x82, 0xc9, 0x12}, - "TFD ", - 18}, - {{0xa7, 0xf9, 0x76, 0xC3, 0x60, 0xeb, 0xBe, 0xD4, 0x46, 0x5c, - 0x28, 0x55, 0x68, 0x4D, 0x1A, 0xAE, 0x52, 0x71, 0xeF, 0xa9}, - "TFL ", - 8}, - {{0xf8, 0xe0, 0x6e, 0x4e, 0x4a, 0x80, 0x28, 0x7f, 0xdc, 0xa5, - 0xb0, 0x2d, 0xcc, 0xec, 0xaa, 0x9d, 0x09, 0x54, 0x84, 0x0f}, - "TGAME ", - 18}, - {{0xac, 0x3d, 0xa5, 0x87, 0xea, 0xc2, 0x29, 0xc9, 0x89, 0x6d, - 0x91, 0x9a, 0xbc, 0x23, 0x5c, 0xa4, 0xfd, 0x7f, 0x72, 0xc1}, - "TGT ", - 1}, - {{0x1c, 0xb3, 0x20, 0x9d, 0x45, 0xb2, 0xa6, 0x0b, 0x7f, 0xbc, - 0xa1, 0xcc, 0xdb, 0xf8, 0x7f, 0x67, 0x42, 0x37, 0xa4, 0xaa}, - "THR ", - 4}, - {{0x4f, 0x27, 0x05, 0x3f, 0x32, 0xed, 0xa8, 0xaf, 0x84, 0x95, - 0x64, 0x37, 0xbc, 0x00, 0xe5, 0xff, 0xa7, 0x00, 0x32, 0x87}, - "THRT ", - 18}, - {{0xfe, 0x7B, 0x91, 0x5A, 0x0b, 0xAA, 0x0E, 0x79, 0xf8, 0x5c, - 0x55, 0x53, 0x26, 0x65, 0x13, 0xF7, 0xC1, 0xc0, 0x3E, 0xd0}, - "THUG ", - 18}, - {{0x72, 0x43, 0x0a, 0x61, 0x2a, 0xdc, 0x00, 0x7c, 0x50, 0xe3, - 0xb6, 0x94, 0x6d, 0xbb, 0x1b, 0xb0, 0xfd, 0x31, 0x01, 0xd1}, - "TIC ", - 8}, - {{0x7F, 0x4B, 0x2A, 0x69, 0x06, 0x05, 0xA7, 0xcb, 0xb6, 0x6F, - 0x7A, 0xA6, 0x88, 0x5E, 0xbD, 0x90, 0x6a, 0x5e, 0x2E, 0x9E}, - "TICO ", - 8}, - {{0x99, 0x99, 0x67, 0xe2, 0xec, 0x8a, 0x74, 0xb7, 0xc8, 0xe9, - 0xdb, 0x19, 0xe0, 0x39, 0xd9, 0x20, 0xb3, 0x1d, 0x39, 0xd0}, - "TIE ", - 18}, - {{0xee, 0xe2, 0xd0, 0x0e, 0xb7, 0xde, 0xb8, 0xdd, 0x69, 0x24, - 0x18, 0x7f, 0x5a, 0xa3, 0x49, 0x6b, 0x7d, 0x06, 0xe6, 0x2a}, - "TIG ", - 18}, - {{0x65, 0x31, 0xf1, 0x33, 0xe6, 0xDe, 0xeB, 0xe7, 0xF2, 0xdc, - 0xE5, 0xA0, 0x44, 0x1a, 0xA7, 0xef, 0x33, 0x0B, 0x4e, 0x53}, - "TIME ", - 8}, - {{0x80, 0xbc, 0x55, 0x12, 0x56, 0x1c, 0x7f, 0x85, 0xa3, 0xa9, - 0x50, 0x8c, 0x7d, 0xf7, 0x90, 0x1b, 0x37, 0x0f, 0xa1, 0xdf}, - "TIO ", - 18}, - {{0xEa, 0x1f, 0x34, 0x6f, 0xaF, 0x02, 0x3F, 0x97, 0x4E, 0xb5, - 0xad, 0xaf, 0x08, 0x8B, 0xbC, 0xdf, 0x02, 0xd7, 0x61, 0xF4}, - "TIX ", - 18}, - {{0xda, 0xe1, 0xba, 0xf2, 0x49, 0x96, 0x4b, 0xc4, 0xb6, 0xac, - 0x98, 0xc3, 0x12, 0x2f, 0x0e, 0x3e, 0x78, 0x5f, 0xd2, 0x79}, - "TKA ", - 18}, - {{0x06, 0x75, 0xda, 0xa9, 0x47, 0x25, 0xa5, 0x28, 0xb0, 0x5a, - 0x3a, 0x88, 0x63, 0x5c, 0x03, 0xea, 0x96, 0x4b, 0xfa, 0x7e}, - "TKLN ", - 18}, - {{0xaA, 0xAf, 0x91, 0xD9, 0xb9, 0x0d, 0xF8, 0x00, 0xDf, 0x4F, - 0x55, 0xc2, 0x05, 0xfd, 0x69, 0x89, 0xc9, 0x77, 0xE7, 0x3a}, - "TKN ", - 8}, - {{0xb4, 0x5a, 0x50, 0x54, 0x5b, 0xee, 0xab, 0x73, 0xf3, 0x8f, - 0x31, 0xe5, 0x97, 0x37, 0x68, 0xc4, 0x21, 0x80, 0x5e, 0x5e}, - "TKR ", - 18}, - {{0xb3, 0x61, 0x65, 0x50, 0xab, 0xc8, 0xaf, 0x79, 0xc7, 0xa5, - 0x90, 0x2d, 0xef, 0x9e, 0xfa, 0x3b, 0xc9, 0xa9, 0x52, 0x00}, - "TLX ", - 8}, - {{0x32, 0x09, 0xf9, 0x8b, 0xeb, 0xf0, 0x14, 0x9b, 0x76, 0x9c, - 0xe2, 0x6d, 0x71, 0xf7, 0xae, 0xa8, 0xe4, 0x35, 0xef, 0xea}, - "TMT ", - 18}, - {{0xb0, 0x28, 0x07, 0x43, 0xb4, 0x4b, 0xf7, 0xdb, 0x4b, 0x6b, - 0xe4, 0x82, 0xb2, 0xba, 0x7b, 0x75, 0xe5, 0xda, 0x09, 0x6c}, - "TNS ", - 18}, - {{0x08, 0xf5, 0xa9, 0x23, 0x5b, 0x08, 0x17, 0x3b, 0x75, 0x69, - 0xf8, 0x36, 0x45, 0xd2, 0xc7, 0xfb, 0x55, 0xe8, 0xcc, 0xd8}, - "TNT ", - 8}, - {{0x8b, 0x35, 0x30, 0x21, 0x18, 0x93, 0x75, 0x59, 0x17, 0x23, - 0xe7, 0x38, 0x42, 0x62, 0xf4, 0x57, 0x09, 0xa3, 0xc3, 0xdc}, - "TOMO ", - 18}, - {{0x8e, 0xb9, 0x65, 0xee, 0x9c, 0xCF, 0xBC, 0xE7, 0x6c, 0x0a, - 0x06, 0x26, 0x44, 0x92, 0xc0, 0xaf, 0xEf, 0xc2, 0x82, 0x6d}, - "TOOR ", - 18}, - {{0xaa, 0x7a, 0x9c, 0xa8, 0x7d, 0x36, 0x94, 0xb5, 0x75, 0x5f, - 0x21, 0x3b, 0x5d, 0x04, 0x09, 0x4b, 0x8d, 0x0f, 0x0a, 0x6f}, - "TRAC ", - 18}, - {{0x12, 0x75, 0x95, 0x12, 0xd3, 0x26, 0x30, 0x3b, 0x45, 0xf1, - 0xce, 0xc8, 0xf7, 0xb6, 0xfd, 0x96, 0xf3, 0x87, 0x77, 0x8e}, - "TRAK ", - 18}, - {{0xcB, 0x3F, 0x90, 0x2b, 0xf9, 0x76, 0x26, 0x39, 0x1b, 0xF8, - 0xbA, 0x87, 0x26, 0x4b, 0xbC, 0x3D, 0xC1, 0x34, 0x69, 0xbe}, - "TRC ", - 18}, - {{0x56, 0x6F, 0xd7, 0x99, 0x9B, 0x1F, 0xc3, 0x98, 0x80, 0x22, - 0xbD, 0x38, 0x50, 0x7A, 0x48, 0xF0, 0xbC, 0xf2, 0x2c, 0x77}, - "TRCN ", - 18}, - {{0x30, 0xce, 0xCB, 0x54, 0x61, 0xA4, 0x49, 0xA9, 0x00, 0x81, - 0xF5, 0xa5, 0xF5, 0x5d, 0xb4, 0xe0, 0x48, 0x39, 0x7B, 0xAB}, - "TRCT ", - 8}, - {{0x33, 0xf9, 0x0d, 0xee, 0x07, 0xc6, 0xe8, 0xb9, 0x68, 0x2d, - 0xd2, 0x0f, 0x73, 0xe6, 0xc3, 0x58, 0xb2, 0xed, 0x0f, 0x03}, - "TRDT ", - 0}, - {{0xcb, 0x94, 0xbe, 0x6f, 0x13, 0xa1, 0x18, 0x2e, 0x4a, 0x4b, - 0x61, 0x40, 0xcb, 0x7b, 0xf2, 0x02, 0x5d, 0x28, 0xe4, 0x1b}, - "TRST ", - 6}, - {{0xf2, 0x30, 0xb7, 0x90, 0xe0, 0x53, 0x90, 0xfc, 0x82, 0x95, - 0xf4, 0xd3, 0xf6, 0x03, 0x32, 0xc9, 0x3b, 0xed, 0x42, 0xe2}, - "TRX ", - 6}, - {{0x6B, 0x87, 0x99, 0x9b, 0xE8, 0x73, 0x58, 0x06, 0x5b, 0xBd, - 0xE4, 0x1e, 0x8a, 0x0f, 0xe0, 0xB7, 0xb1, 0xcd, 0x25, 0x14}, - "TSW ", - 18}, - {{0xaa, 0xb6, 0x06, 0x81, 0x78, 0x09, 0x84, 0x1e, 0x8b, 0x11, - 0x68, 0xbe, 0x87, 0x79, 0xee, 0xaf, 0x67, 0x44, 0xef, 0x64}, - "TTA ", - 18}, - {{0x93, 0x89, 0x43, 0x48, 0x52, 0xb9, 0x4b, 0xba, 0xd4, 0xc8, - 0xaf, 0xed, 0x5b, 0x7b, 0xdb, 0xc5, 0xff, 0x0c, 0x22, 0x75}, - "TTC ", - 18}, - {{0x9c, 0xda, 0x8a, 0x60, 0xdd, 0x5a, 0xfa, 0x15, 0x6c, 0x95, - 0xbd, 0x97, 0x44, 0x28, 0xd9, 0x1a, 0x08, 0x12, 0xe0, 0x54}, - "TTU ", - 18}, - {{0x8d, 0xd5, 0xfb, 0xce, 0x2f, 0x6a, 0x95, 0x6c, 0x30, 0x22, - 0xba, 0x36, 0x63, 0x75, 0x90, 0x11, 0xdd, 0x51, 0xe7, 0x3e}, - "TUSD ", - 18}, - {{0x2e, 0xF1, 0xaB, 0x8a, 0x26, 0x18, 0x7C, 0x58, 0xBB, 0x8a, - 0xAe, 0xB1, 0x1B, 0x2f, 0xC6, 0xD2, 0x5C, 0x5c, 0x07, 0x16}, - "TWN ", - 18}, - {{0xE7, 0x77, 0x5A, 0x6e, 0x9B, 0xcf, 0x90, 0x4e, 0xb3, 0x9D, - 0xA2, 0xb6, 0x8c, 0x5e, 0xfb, 0x4F, 0x93, 0x60, 0xe0, 0x8C}, - "TaaS ", - 6}, - {{0x84, 0x00, 0xd9, 0x4a, 0x5c, 0xb0, 0xfa, 0x0d, 0x04, 0x1a, - 0x37, 0x88, 0xe3, 0x95, 0x28, 0x5d, 0x61, 0xc9, 0xee, 0x5e}, - "UBT ", - 8}, - {{0x92, 0xe5, 0x2a, 0x1a, 0x23, 0x5d, 0x9a, 0x10, 0x3d, 0x97, - 0x09, 0x01, 0x06, 0x6c, 0xe9, 0x10, 0xaa, 0xce, 0xfd, 0x37}, - "UCASH ", - 8}, - {{0xaa, 0xf3, 0x70, 0x55, 0x18, 0x8f, 0xee, 0xe4, 0x86, 0x9d, - 0xe6, 0x34, 0x64, 0x93, 0x7e, 0x68, 0x3d, 0x61, 0xb2, 0xa1}, - "UCN ", - 18}, - {{0xea, 0x09, 0x7a, 0x2b, 0x1d, 0xb0, 0x06, 0x27, 0xb2, 0xfa, - 0x17, 0x46, 0x0a, 0xd2, 0x60, 0xc0, 0x16, 0x01, 0x69, 0x77}, - "UFR ", - 18}, - {{0x24, 0x69, 0x27, 0x91, 0xbc, 0x44, 0x4c, 0x5c, 0xd0, 0xb8, - 0x1e, 0x3c, 0xbc, 0xab, 0xa4, 0xb0, 0x4a, 0xcd, 0x1f, 0x3b}, - "UKG ", - 18}, - {{0x8e, 0x5a, 0xfc, 0x69, 0xf6, 0x22, 0x7a, 0x3a, 0xd7, 0x5e, - 0xd3, 0x46, 0xc8, 0x72, 0x3b, 0xc6, 0x2c, 0xe9, 0x71, 0x23}, - "UMKA ", - 4}, - {{0x6b, 0xa4, 0x60, 0xab, 0x75, 0xcd, 0x2c, 0x56, 0x34, 0x3b, - 0x35, 0x17, 0xff, 0xeb, 0xa6, 0x07, 0x48, 0x65, 0x4d, 0x26}, - "UP ", - 8}, - {{0xc8, 0x6d, 0x05, 0x48, 0x09, 0x62, 0x34, 0x32, 0x21, 0x0c, - 0x10, 0x7a, 0xf2, 0xe3, 0xf6, 0x19, 0xdc, 0xfb, 0xf6, 0x52}, - "UPP ", - 18}, - {{0xd0, 0x1d, 0xb7, 0x3e, 0x04, 0x78, 0x55, 0xef, 0xb4, 0x14, - 0xe6, 0x20, 0x20, 0x98, 0xc4, 0xbe, 0x4c, 0xd2, 0x42, 0x3b}, - "UQC ", - 18}, - {{0x93, 0x16, 0x84, 0x13, 0x9f, 0x75, 0x6C, 0x24, 0xeC, 0x07, - 0x31, 0xE9, 0xF7, 0x4F, 0xE5, 0x0e, 0x55, 0x48, 0xdD, 0xeF}, - "URB ", - 18}, - {{0xa0, 0xb8, 0x69, 0x91, 0xc6, 0x21, 0x8b, 0x36, 0xc1, 0xd1, - 0x9d, 0x4a, 0x2e, 0x9e, 0xb0, 0xce, 0x36, 0x06, 0xeb, 0x48}, - "USDC ", - 6}, - {{0xD7, 0x60, 0xAD, 0xdF, 0xb2, 0x4D, 0x9C, 0x01, 0xFe, 0x4B, - 0xfe, 0xa7, 0x47, 0x5C, 0x5e, 0x36, 0x36, 0x68, 0x40, 0x58}, - "USDM ", - 2}, - {{0xda, 0xc1, 0x7f, 0x95, 0x8d, 0x2e, 0xe5, 0x23, 0xa2, 0x20, - 0x62, 0x06, 0x99, 0x45, 0x97, 0xc1, 0x3d, 0x83, 0x1e, 0xc7}, - "USDT ", - 6}, - {{0x70, 0xa7, 0x28, 0x33, 0xd6, 0xbf, 0x7f, 0x50, 0x8c, 0x82, - 0x24, 0xce, 0x59, 0xea, 0x1e, 0xf3, 0xd0, 0xea, 0x3a, 0x38}, - "UTK ", - 18}, - {{0x9e, 0x33, 0x19, 0x63, 0x6e, 0x21, 0x26, 0xe3, 0xc0, 0xbc, - 0x9e, 0x31, 0x34, 0xAE, 0xC5, 0xe1, 0x50, 0x8A, 0x46, 0xc7}, - "UTN-P ", - 18}, - {{0x16, 0xf8, 0x12, 0xbe, 0x7f, 0xff, 0x02, 0xca, 0xf6, 0x62, - 0xb8, 0x5d, 0x5d, 0x58, 0xa5, 0xda, 0x65, 0x72, 0xd4, 0xdf}, - "UTT ", - 8}, - {{0x35, 0x43, 0x63, 0x8e, 0xD4, 0xa9, 0x00, 0x6E, 0x48, 0x40, - 0xB1, 0x05, 0x94, 0x42, 0x71, 0xBc, 0xea, 0x15, 0x60, 0x5D}, - "UUU ", - 18}, - {{0x89, 0x20, 0x5A, 0x3A, 0x3b, 0x2A, 0x69, 0xDe, 0x6D, 0xbf, - 0x7f, 0x01, 0xED, 0x13, 0xB2, 0x10, 0x8B, 0x2c, 0x43, 0xe7}, - "Unicorn ", - 0}, - {{0x57, 0xC7, 0x5E, 0xCC, 0xc8, 0x55, 0x71, 0x36, 0xD3, 0x26, - 0x19, 0xa1, 0x91, 0xfB, 0xCD, 0xc8, 0x85, 0x60, 0xd7, 0x11}, - "VDG ", - 0}, - {{0x82, 0xBD, 0x52, 0x6b, 0xDB, 0x71, 0x8C, 0x6d, 0x4D, 0xD2, - 0x29, 0x1E, 0xd0, 0x13, 0xA5, 0x18, 0x6c, 0xAE, 0x2D, 0xCa}, - "VDOC ", - 18}, - {{0x34, 0x0d, 0x2b, 0xde, 0x5e, 0xb2, 0x8c, 0x1e, 0xed, 0x91, - 0xb2, 0xf7, 0x90, 0x72, 0x3e, 0x3b, 0x16, 0x06, 0x13, 0xb7}, - "VEE ", - 18}, - {{0xD8, 0x50, 0x94, 0x2e, 0xF8, 0x81, 0x1f, 0x2A, 0x86, 0x66, - 0x92, 0xA6, 0x23, 0x01, 0x1b, 0xDE, 0x52, 0xa4, 0x62, 0xC1}, - "VEN ", - 18}, - {{0xEb, 0xeD, 0x4f, 0xF9, 0xfe, 0x34, 0x41, 0x3d, 0xb8, 0xfC, - 0x82, 0x94, 0x55, 0x6B, 0xBD, 0x15, 0x28, 0xa4, 0xDA, 0xca}, - "VENUS ", - 3}, - {{0x8f, 0x34, 0x70, 0xA7, 0x38, 0x8c, 0x05, 0xeE, 0x4e, 0x7A, - 0xF3, 0xd0, 0x1D, 0x8C, 0x72, 0x2b, 0x0F, 0xF5, 0x23, 0x74}, - "VERI ", - 18}, - {{0x2C, 0x97, 0x4B, 0x2d, 0x0B, 0xA1, 0x71, 0x6E, 0x64, 0x4c, - 0x1F, 0xC5, 0x99, 0x82, 0xa8, 0x9D, 0xDD, 0x2f, 0xF7, 0x24}, - "VIB ", - 18}, - {{0xe8, 0xff, 0x5c, 0x9c, 0x75, 0xde, 0xb3, 0x46, 0xac, 0xac, - 0x49, 0x3c, 0x46, 0x3c, 0x89, 0x50, 0xbe, 0x03, 0xdf, 0xba}, - "VIBE ", - 18}, - {{0x88, 0x24, 0x48, 0xf8, 0x3d, 0x90, 0xb2, 0xbf, 0x47, 0x7a, - 0xf2, 0xea, 0x79, 0x32, 0x7f, 0xde, 0xa1, 0x33, 0x5d, 0x93}, - "VIBEX ", - 18}, - {{0xf0, 0x3f, 0x8d, 0x65, 0xba, 0xfa, 0x59, 0x86, 0x11, 0xc3, - 0x49, 0x51, 0x24, 0x09, 0x3c, 0x56, 0xe8, 0xf6, 0x38, 0xf0}, - "VIEW ", - 18}, - {{0xd2, 0x94, 0x6b, 0xe7, 0x86, 0xf3, 0x5c, 0x3c, 0xc4, 0x02, - 0xc2, 0x9b, 0x32, 0x36, 0x47, 0xab, 0xda, 0x79, 0x90, 0x71}, - "VIKKY ", - 8}, - {{0xf3, 0xe0, 0x14, 0xfe, 0x81, 0x26, 0x78, 0x70, 0x62, 0x41, - 0x32, 0xef, 0x3a, 0x64, 0x6b, 0x8e, 0x83, 0x85, 0x3a, 0x96}, - "VIN ", - 18}, - {{0x23, 0xb7, 0x5B, 0xc7, 0xAa, 0xF2, 0x8e, 0x2d, 0x66, 0x28, - 0xC3, 0xf4, 0x24, 0xB3, 0x88, 0x2F, 0x8f, 0x07, 0x2a, 0x3c}, - "VIT ", - 18}, - {{0x1b, 0x79, 0x3e, 0x49, 0x23, 0x77, 0x58, 0xdb, 0xd8, 0xb7, - 0x52, 0xaf, 0xc9, 0xeb, 0x4b, 0x32, 0x9d, 0x5d, 0xa0, 0x16}, - "VITE ", - 18}, - {{0x51, 0x94, 0x75, 0xb3, 0x16, 0x53, 0xe4, 0x6d, 0x20, 0xcd, - 0x09, 0xf9, 0xfd, 0xcf, 0x3b, 0x12, 0xbd, 0xac, 0xb4, 0xf5}, - "VIU ", - 18}, - {{0x92, 0x2a, 0xc4, 0x73, 0xa3, 0xcc, 0x24, 0x1f, 0xd3, 0xa0, - 0x04, 0x9e, 0xd1, 0x45, 0x36, 0x45, 0x2d, 0x58, 0xd7, 0x3c}, - "VLD ", - 18}, - {{0xc3, 0xbc, 0x9e, 0xb7, 0x1f, 0x75, 0xec, 0x43, 0x9a, 0x6b, - 0x6c, 0x8e, 0x8b, 0x74, 0x6f, 0xcf, 0x5b, 0x62, 0xf7, 0x03}, - "VOC ", - 18}, - {{0x83, 0xeE, 0xA0, 0x0D, 0x83, 0x8f, 0x92, 0xdE, 0xC4, 0xD1, - 0x47, 0x56, 0x97, 0xB9, 0xf4, 0xD3, 0x53, 0x7b, 0x56, 0xE3}, - "VOISE ", - 8}, - {{0xeD, 0xBa, 0xF3, 0xc5, 0x10, 0x03, 0x02, 0xdC, 0xdd, 0xA5, - 0x32, 0x69, 0x32, 0x2f, 0x37, 0x30, 0xb1, 0xF0, 0x41, 0x6d}, - "VRS ", - 5}, - {{0x92, 0xe7, 0x8d, 0xae, 0x13, 0x15, 0x06, 0x7a, 0x88, 0x19, - 0xef, 0xd6, 0xdc, 0xa4, 0x32, 0xde, 0x9d, 0xcd, 0xe2, 0xe9}, - "VRS ", - 6}, - {{0x5c, 0x54, 0x3e, 0x7A, 0xE0, 0xA1, 0x10, 0x4f, 0x78, 0x40, - 0x6C, 0x34, 0x0E, 0x9C, 0x64, 0xFD, 0x9f, 0xCE, 0x51, 0x70}, - "VSL ", - 18}, - {{0x97, 0x20, 0xb4, 0x67, 0xa7, 0x10, 0x38, 0x2A, 0x23, 0x2a, - 0x32, 0xF5, 0x40, 0xbD, 0xCe, 0xd7, 0xd6, 0x62, 0xa1, 0x0B}, - "VZT ", - 18}, - {{0x4b, 0xbb, 0xc5, 0x7a, 0xf2, 0x70, 0x13, 0x8e, 0xf2, 0xff, - 0x2c, 0x50, 0xdb, 0xfa, 0xd6, 0x84, 0xe9, 0xe0, 0xe6, 0x04}, - "WAB ", - 18}, - {{0x82, 0x9A, 0x4c, 0xA1, 0x30, 0x33, 0x83, 0xF1, 0x08, 0x2B, - 0x6B, 0x1f, 0xB9, 0x37, 0x11, 0x6e, 0x4b, 0x3b, 0x56, 0x05}, - "WATT ", - 18}, - {{0x39, 0xBb, 0x25, 0x9F, 0x66, 0xE1, 0xC5, 0x9d, 0x5A, 0xBE, - 0xF8, 0x83, 0x75, 0x97, 0x9b, 0x4D, 0x20, 0xD9, 0x80, 0x22}, - "WAX ", - 8}, - {{0x74, 0x95, 0x1B, 0x67, 0x7d, 0xe3, 0x2D, 0x59, 0x6E, 0xE8, - 0x51, 0xA2, 0x33, 0x33, 0x69, 0x26, 0xe6, 0xA2, 0xcd, 0x09}, - "WBA ", - 7}, - {{0x6a, 0x0a, 0x97, 0xe4, 0x7d, 0x15, 0xaa, 0xd1, 0xd1, 0x32, - 0xa1, 0xac, 0x79, 0xa4, 0x80, 0xe3, 0xf2, 0x07, 0x90, 0x63}, - "WCT ", - 18}, - {{0x84, 0x0f, 0xe7, 0x5a, 0xbf, 0xad, 0xc0, 0xf2, 0xd5, 0x40, - 0x37, 0x82, 0x95, 0x71, 0xb2, 0x78, 0x2e, 0x91, 0x9c, 0xe4}, - "WEB ", - 18}, - {{0xC0, 0x2a, 0xaA, 0x39, 0xb2, 0x23, 0xFE, 0x8D, 0x0A, 0x0e, - 0x5C, 0x4F, 0x27, 0xeA, 0xD9, 0x08, 0x3C, 0x75, 0x6C, 0xc2}, - "WETH ", - 18}, - {{0xf4, 0xfe, 0x95, 0x60, 0x38, 0x81, 0xd0, 0xe0, 0x79, 0x54, - 0xfd, 0x76, 0x05, 0xe0, 0xe9, 0xa9, 0x16, 0xe4, 0x2c, 0x44}, - "WHEN ", - 18}, - {{0xe9, 0x33, 0xc0, 0xCd, 0x97, 0x84, 0x41, 0x4d, 0x5F, 0x27, - 0x8C, 0x11, 0x49, 0x04, 0xF5, 0xA8, 0x4b, 0x39, 0x69, 0x19}, - "WHO ", - 18}, - {{0x62, 0xcd, 0x07, 0xd4, 0x14, 0xec, 0x50, 0xb6, 0x8c, 0x7e, - 0xca, 0xa8, 0x63, 0xa2, 0x3d, 0x34, 0x4f, 0x2d, 0x06, 0x2f}, - "WIC ", - 0}, - {{0xD3, 0xC0, 0x07, 0x72, 0xB2, 0x4D, 0x99, 0x7A, 0x81, 0x22, - 0x49, 0xca, 0x63, 0x7a, 0x92, 0x1e, 0x81, 0x35, 0x77, 0x01}, - "WILD ", - 18}, - {{0x89, 0x93, 0x38, 0xb8, 0x4d, 0x25, 0xac, 0x50, 0x5a, 0x33, - 0x2a, 0xdc, 0xe7, 0x40, 0x2d, 0x69, 0x7d, 0x94, 0x74, 0x94}, - "WIN ", - 8}, - {{0x66, 0x70, 0x88, 0xb2, 0x12, 0xce, 0x3d, 0x06, 0xa1, 0xb5, - 0x53, 0xa7, 0x22, 0x1E, 0x1f, 0xD1, 0x90, 0x00, 0xd9, 0xaF}, - "WINGS ", - 18}, - {{0x1b, 0x22, 0xc3, 0x2c, 0xd9, 0x36, 0xcb, 0x97, 0xc2, 0x8c, - 0x56, 0x90, 0xa0, 0x69, 0x5a, 0x82, 0xab, 0xf6, 0x88, 0xe6}, - "WISH ", - 18}, - {{0xF6, 0xB5, 0x5a, 0xcB, 0xBC, 0x49, 0xf4, 0x52, 0x4A, 0xa4, - 0x8D, 0x19, 0x28, 0x1A, 0x9A, 0x77, 0xc5, 0x4D, 0xE1, 0x0f}, - "WLK ", - 18}, - {{0xbf, 0xbe, 0x53, 0x32, 0xf1, 0x72, 0xd7, 0x78, 0x11, 0xbc, - 0x6c, 0x27, 0x28, 0x44, 0xf3, 0xe5, 0x4a, 0x7b, 0x23, 0xbb}, - "WMK ", - 18}, - {{0xd7, 0x3A, 0x66, 0xB8, 0xFB, 0x26, 0xBe, 0x8B, 0x0A, 0xcD, - 0x7c, 0x52, 0xBd, 0x32, 0x50, 0x54, 0xAc, 0x7d, 0x46, 0x8b}, - "WNK ", - 18}, - {{0x72, 0x87, 0x81, 0xE7, 0x57, 0x35, 0xdc, 0x09, 0x62, 0xDf, - 0x3a, 0x51, 0xd7, 0xEf, 0x47, 0xE7, 0x98, 0xA7, 0x10, 0x7E}, - "WOLK ", - 18}, - {{0xa6, 0x86, 0x51, 0x4f, 0xaf, 0x7d, 0x54, 0x28, 0x92, 0x66, - 0xf4, 0x83, 0xd1, 0xe4, 0x85, 0x2c, 0x99, 0xe1, 0x3e, 0xc7}, - "WORK ", - 8}, - {{0x4C, 0xF4, 0x88, 0x38, 0x7F, 0x03, 0x5F, 0xF0, 0x8c, 0x37, - 0x15, 0x15, 0x56, 0x2C, 0xBa, 0x71, 0x2f, 0x90, 0x15, 0xd4}, - "WPR ", - 18}, - {{0x72, 0xad, 0xad, 0xb4, 0x47, 0x78, 0x4d, 0xd7, 0xab, 0x1f, - 0x47, 0x24, 0x67, 0x75, 0x0f, 0xc4, 0x85, 0xe4, 0xcb, 0x2d}, - "WRC ", - 6}, - {{0x71, 0xe8, 0xd7, 0x4f, 0xf1, 0xc9, 0x23, 0xe3, 0x69, 0xd0, - 0xe7, 0x0d, 0xfb, 0x09, 0x86, 0x66, 0x29, 0xc4, 0xdd, 0x35}, - "WRK ", - 18}, - {{0xb7, 0xcb, 0x1c, 0x96, 0xdb, 0x6b, 0x22, 0xb0, 0xd3, 0xd9, - 0x53, 0x6e, 0x01, 0x08, 0xd0, 0x62, 0xbd, 0x48, 0x8f, 0x74}, - "WTC ", - 18}, - {{0x84, 0x11, 0x9c, 0xb3, 0x3e, 0x8f, 0x59, 0x0d, 0x75, 0xc2, - 0xd6, 0xea, 0x4e, 0x6b, 0x07, 0x41, 0xa7, 0x49, 0x4e, 0xda}, - "WTT ", - 0}, - {{0xd8, 0x95, 0x0f, 0xDe, 0xaa, 0x10, 0x30, 0x4B, 0x7A, 0x7F, - 0xd0, 0x3a, 0x2F, 0xC6, 0x6B, 0xC3, 0x9f, 0x3c, 0x71, 0x1a}, - "WYS ", - 18}, - {{0x05, 0x60, 0x17, 0xc5, 0x5a, 0xE7, 0xAE, 0x32, 0xd1, 0x2A, - 0xeF, 0x7C, 0x67, 0x9d, 0xF8, 0x3A, 0x85, 0xca, 0x75, 0xFf}, - "WYV ", - 18}, - {{0x28, 0x6B, 0xDA, 0x14, 0x13, 0xa2, 0xDf, 0x81, 0x73, 0x1D, - 0x49, 0x30, 0xce, 0x2F, 0x86, 0x2a, 0x35, 0xA6, 0x09, 0xfE}, - "WaBi ", - 18}, - {{0x5e, 0x4A, 0xBE, 0x64, 0x19, 0x65, 0x0C, 0xA8, 0x39, 0xCe, - 0x5B, 0xB7, 0xDb, 0x42, 0x2b, 0x88, 0x1a, 0x60, 0x64, 0xbB}, - "WiC ", - 18}, - {{0x91, 0x0D, 0xfc, 0x18, 0xD6, 0xEA, 0x3D, 0x6a, 0x71, 0x24, - 0xA6, 0xF8, 0xB5, 0x45, 0x8F, 0x28, 0x10, 0x60, 0xfa, 0x4c}, - "X8X ", - 18}, - {{0x4D, 0xF8, 0x12, 0xF6, 0x06, 0x4d, 0xef, 0x1e, 0x5e, 0x02, - 0x9f, 0x1c, 0xa8, 0x58, 0x77, 0x7C, 0xC9, 0x8D, 0x2D, 0x81}, - "XAUR ", - 8}, - {{0x49, 0xae, 0xc0, 0x75, 0x2e, 0x68, 0xd0, 0x28, 0x2d, 0xb5, - 0x44, 0xc6, 0x77, 0xf6, 0xba, 0x40, 0x7b, 0xa1, 0x7e, 0xd7}, - "XBL ", - 18}, - {{0x28, 0xde, 0xe0, 0x1d, 0x53, 0xfe, 0xd0, 0xed, 0xf5, 0xf6, - 0xe3, 0x10, 0xbf, 0x8e, 0xf9, 0x31, 0x15, 0x13, 0xae, 0x40}, - "XBP ", - 18}, - {{0x4d, 0x82, 0x9f, 0x8c, 0x92, 0xa6, 0x69, 0x1c, 0x56, 0x30, - 0x0d, 0x02, 0x0c, 0x9e, 0x0d, 0xb9, 0x84, 0xcf, 0xe2, 0xba}, - "XCC ", - 18}, - {{0x1e, 0x26, 0xb3, 0xd0, 0x7e, 0x57, 0xf4, 0x53, 0xca, 0xe3, - 0x0f, 0x7d, 0xdd, 0x2f, 0x94, 0x5f, 0x5b, 0xf3, 0xef, 0x33}, - "XCLR ", - 8}, - {{0x41, 0xab, 0x1b, 0x6f, 0xcb, 0xb2, 0xfa, 0x9d, 0xce, 0xd8, - 0x1a, 0xcb, 0xde, 0xc1, 0x3e, 0xa6, 0x31, 0x5f, 0x2b, 0xf2}, - "XDCE ", - 18}, - {{0xa0, 0x17, 0xac, 0x5f, 0xac, 0x59, 0x41, 0xf9, 0x50, 0x10, - 0xb1, 0x25, 0x70, 0xb8, 0x12, 0xc9, 0x74, 0x46, 0x9c, 0x2c}, - "XES ", - 18}, - {{0x05, 0x4c, 0x64, 0x74, 0x1d, 0xba, 0xfd, 0xc1, 0x97, 0x84, - 0x50, 0x54, 0x94, 0x02, 0x98, 0x23, 0xd8, 0x9c, 0x3b, 0x13}, - "XET ", - 8}, - {{0x16, 0xaF, 0x5b, 0xfb, 0x4A, 0xe7, 0xE4, 0x75, 0xb9, 0xaD, - 0xC3, 0xBf, 0x5C, 0xb2, 0xf1, 0xE6, 0xa5, 0x0d, 0x79, 0x40}, - "XFS ", - 8}, - {{0xf6, 0xb6, 0xaa, 0x0e, 0xf0, 0xf5, 0xed, 0xc2, 0xc1, 0xc5, - 0xd9, 0x25, 0x47, 0x7f, 0x97, 0xea, 0xf6, 0x63, 0x03, 0xe7}, - "XGG ", - 8}, - {{0x53, 0x3e, 0xf0, 0x98, 0x4b, 0x2F, 0xAA, 0x22, 0x7A, 0xcC, - 0x62, 0x0C, 0x67, 0xcc, 0xe1, 0x2a, 0xA3, 0x9C, 0xD8, 0xCD}, - "XGM ", - 8}, - {{0x30, 0xf4, 0xA3, 0xe0, 0xaB, 0x7a, 0x76, 0x73, 0x3D, 0x8b, - 0x60, 0xb8, 0x9D, 0xD9, 0x3c, 0x3D, 0x0b, 0x4c, 0x9E, 0x2f}, - "XGT ", - 18}, - {{0xB1, 0x10, 0xeC, 0x7B, 0x1d, 0xcb, 0x8F, 0xAB, 0x8d, 0xED, - 0xbf, 0x28, 0xf5, 0x3B, 0xc6, 0x3e, 0xA5, 0xBE, 0xdd, 0x84}, - "XID ", - 8}, - {{0x44, 0x44, 0x9F, 0xa4, 0xd6, 0x07, 0xF8, 0x07, 0xd1, 0xeD, - 0x4a, 0x69, 0xad, 0x94, 0x29, 0x71, 0x72, 0x83, 0x91, 0xC8}, - "XMCT ", - 18}, - {{0x0f, 0x8c, 0x45, 0xb8, 0x96, 0x78, 0x4a, 0x1e, 0x40, 0x85, - 0x26, 0xb9, 0x30, 0x05, 0x19, 0xef, 0x86, 0x60, 0x20, 0x9c}, - "XMX ", - 8}, - {{0xBC, 0x86, 0x72, 0x7E, 0x77, 0x0d, 0xe6, 0x8B, 0x10, 0x60, - 0xC9, 0x1f, 0x6B, 0xB6, 0x94, 0x5c, 0x73, 0xe1, 0x03, 0x88}, - "XNK ", - 18}, - {{0xab, 0x95, 0xe9, 0x15, 0xc1, 0x23, 0xfd, 0xed, 0x5b, 0xdf, - 0xb6, 0x32, 0x5e, 0x35, 0xef, 0x55, 0x15, 0xf1, 0xea, 0x69}, - "XNN ", - 18}, - {{0x57, 0x2e, 0x6f, 0x31, 0x80, 0x56, 0xba, 0x0c, 0x5d, 0x47, - 0xa4, 0x22, 0x65, 0x31, 0x13, 0x84, 0x3d, 0x25, 0x06, 0x91}, - "XNT ", - 0}, - {{0x15, 0x3e, 0xd9, 0xcc, 0x1b, 0x79, 0x29, 0x79, 0xd2, 0xbd, - 0xe0, 0xbb, 0xf4, 0x5c, 0xc2, 0xa7, 0xe4, 0x36, 0xa5, 0xf9}, - "XOV ", - 18}, - {{0x90, 0x52, 0x8a, 0xeb, 0x3a, 0x2b, 0x73, 0x6b, 0x78, 0x0f, - 0xd1, 0xb6, 0xc4, 0x78, 0xbb, 0x7e, 0x1d, 0x64, 0x31, 0x70}, - "XPA ", - 18}, - {{0xBB, 0x1f, 0xA4, 0xFd, 0xEB, 0x34, 0x59, 0x73, 0x3b, 0xF6, - 0x7E, 0xbC, 0x6f, 0x89, 0x30, 0x03, 0xfA, 0x97, 0x6a, 0x82}, - "XPAT ", - 18}, - {{0xB2, 0x47, 0x54, 0xbE, 0x79, 0x28, 0x15, 0x53, 0xdc, 0x1a, - 0xdC, 0x16, 0x0d, 0xdF, 0x5C, 0xd9, 0xb7, 0x43, 0x61, 0xa4}, - "XRL ", - 9}, - {{0x0F, 0x51, 0x3f, 0xFb, 0x49, 0x26, 0xff, 0x82, 0xD7, 0xF6, - 0x0A, 0x05, 0x06, 0x90, 0x47, 0xAc, 0xA2, 0x95, 0xC4, 0x13}, - "XSC ", - 18}, - {{0x55, 0x29, 0x6f, 0x69, 0xf4, 0x0e, 0xa6, 0xd2, 0x0e, 0x47, - 0x85, 0x33, 0xc1, 0x5a, 0x6b, 0x08, 0xb6, 0x54, 0xe7, 0x58}, - "XYO ", - 18}, - {{0x92, 0x21, 0x05, 0xfa, 0xd8, 0x15, 0x3f, 0x51, 0x6b, 0xcf, - 0xb8, 0x29, 0xf5, 0x6d, 0xc0, 0x97, 0xa0, 0xe1, 0xd7, 0x05}, - "YEE ", - 18}, - {{0xca, 0x27, 0x96, 0xf9, 0xf6, 0x1d, 0xc7, 0xb2, 0x38, 0xaa, - 0xb0, 0x43, 0x97, 0x1e, 0x49, 0xc6, 0x16, 0x4d, 0xf3, 0x75}, - "YEED ", - 18}, - {{0xcb, 0xea, 0xec, 0x69, 0x94, 0x31, 0x85, 0x7f, 0xdb, 0x4d, - 0x37, 0xad, 0xdb, 0xbd, 0xc2, 0x0e, 0x13, 0x2d, 0x49, 0x03}, - "YOYOW ", - 18}, - {{0xd9, 0xa1, 0x2c, 0xde, 0x03, 0xa8, 0x6e, 0x80, 0x04, 0x96, - 0x46, 0x98, 0x58, 0xde, 0x85, 0x81, 0xd3, 0xa5, 0x35, 0x3d}, - "YUP ", - 18}, - {{0x0F, 0x33, 0xbb, 0x20, 0xa2, 0x82, 0xA7, 0x64, 0x9C, 0x7B, - 0x3A, 0xFf, 0x64, 0x4F, 0x08, 0x4a, 0x93, 0x48, 0xe9, 0x33}, - "YUPIE ", - 18}, - {{0x67, 0x81, 0xa0, 0xf8, 0x4c, 0x7e, 0x9e, 0x84, 0x6d, 0xcb, - 0x84, 0xa9, 0xa5, 0xbd, 0x49, 0x33, 0x30, 0x67, 0xb1, 0x04}, - "ZAP ", - 18}, - {{0xb9, 0xEF, 0x77, 0x0B, 0x6A, 0x5e, 0x12, 0xE4, 0x59, 0x83, - 0xC5, 0xD8, 0x05, 0x45, 0x25, 0x8a, 0xA3, 0x8F, 0x3B, 0x78}, - "ZCN ", - 10}, - {{0x20, 0x08, 0xe3, 0x05, 0x7b, 0xd7, 0x34, 0xe1, 0x0a, 0xd1, - 0x3c, 0x9e, 0xae, 0x45, 0xff, 0x13, 0x2a, 0xbc, 0x17, 0x22}, - "ZCO ", - 8}, - {{0x05, 0xf4, 0xa4, 0x2e, 0x25, 0x1f, 0x2d, 0x52, 0xb8, 0xed, - 0x15, 0xE9, 0xFE, 0xdA, 0xac, 0xFc, 0xEF, 0x1F, 0xAD, 0x27}, - "ZIL ", - 12}, - {{0x4a, 0xac, 0x46, 0x1c, 0x86, 0xab, 0xfa, 0x71, 0xe9, 0xd0, - 0x0d, 0x9a, 0x2c, 0xde, 0x8d, 0x74, 0xe4, 0xe1, 0xae, 0xea}, - "ZINC ", - 18}, - {{0xa9, 0xd2, 0x92, 0x7d, 0x3a, 0x04, 0x30, 0x9e, 0x00, 0x8b, - 0x6a, 0xf6, 0xe2, 0xe2, 0x82, 0xae, 0x29, 0x52, 0xe7, 0xfd}, - "ZIP ", - 18}, - {{0xed, 0xd7, 0xc9, 0x4f, 0xd7, 0xb4, 0x97, 0x1b, 0x91, 0x6d, - 0x15, 0x06, 0x7b, 0xc4, 0x54, 0xb9, 0xe1, 0xba, 0xd9, 0x80}, - "ZIPT ", - 18}, - {{0xfd, 0x89, 0x71, 0xd5, 0xe8, 0xe1, 0x74, 0x0c, 0xe2, 0xd0, - 0xa8, 0x40, 0x95, 0xfc, 0xa4, 0xde, 0x72, 0x9d, 0x0c, 0x16}, - "ZLA ", - 18}, - {{0x55, 0x4f, 0xfc, 0x77, 0xf4, 0x25, 0x1a, 0x9f, 0xb3, 0xc0, - 0xe3, 0x59, 0x0a, 0x6a, 0x20, 0x5f, 0x8d, 0x4e, 0x06, 0x7d}, - "ZMN ", - 18}, - {{0xb5, 0xb8, 0xf5, 0x61, 0x6f, 0xe4, 0x2d, 0x5c, 0xec, 0xa3, - 0xe8, 0x7f, 0x3f, 0xdd, 0xbd, 0xd8, 0xf4, 0x96, 0xd7, 0x60}, - "ZPR ", - 18}, - {{0xE4, 0x1d, 0x24, 0x89, 0x57, 0x1d, 0x32, 0x21, 0x89, 0x24, - 0x6D, 0xaF, 0xA5, 0xeb, 0xDe, 0x1F, 0x46, 0x99, 0xF4, 0x98}, - "ZRX ", - 18}, - {{0x7A, 0x41, 0xe0, 0x51, 0x7a, 0x5e, 0xcA, 0x4F, 0xdb, 0xC7, - 0xFb, 0xeb, 0xA4, 0xD4, 0xc4, 0x7B, 0x9f, 0xF6, 0xDC, 0x63}, - "ZSC ", - 18}, - {{0xe3, 0x86, 0xb1, 0x39, 0xed, 0x37, 0x15, 0xca, 0x4b, 0x18, - 0xfd, 0x52, 0x67, 0x1b, 0xdc, 0xea, 0x1c, 0xdf, 0xe4, 0xb1}, - "ZST ", - 8}, - {{0xE8, 0xF9, 0xfa, 0x97, 0x7e, 0xa5, 0x85, 0x59, 0x1d, 0x9F, - 0x39, 0x46, 0x81, 0x31, 0x8C, 0x16, 0x55, 0x25, 0x77, 0xfB}, - "ZTX ", - 18}, - {{0x83, 0xe2, 0xbe, 0x8d, 0x11, 0x4f, 0x96, 0x61, 0x22, 0x13, - 0x84, 0xb3, 0xa5, 0x0d, 0x24, 0xb9, 0x6a, 0x56, 0x53, 0xf5}, - "ZXC ", - 18}, - {{0xab, 0xC1, 0x28, 0x0A, 0x01, 0x87, 0xa2, 0x02, 0x0c, 0xC6, - 0x75, 0x43, 0x7a, 0xed, 0x40, 0x01, 0x85, 0xF8, 0x6D, 0xb6}, - "SAC ", - 18}, - {{0xf3, 0xC0, 0x92, 0xcA, 0x8C, 0xD6, 0xD3, 0xd4, 0xca, 0x00, - 0x4D, 0xc1, 0xd0, 0xf1, 0xfe, 0x8C, 0xcA, 0xB5, 0x35, 0x99}, - "ZIX ", - 18}, }; +const tokenDefinition_t const TOKENS_AKROMA[NUM_TOKENS_AKROMA] = {}; + const tokenDefinition_t const TOKENS_ELLAISM[NUM_TOKENS_ELLAISM] = { {{0x99, 0x1e, 0x7f, 0xe4, 0xb0, 0x5f, 0x2b, 0x3d, 0xb1, 0xd7, 0x88, 0xe7, 0x05, 0x96, 0x3f, 0x5d, 0x64, 0x7b, 0x00, 0x44}, diff --git a/src/tokens.h b/src/tokens.h index f57cbb0..c3ea404 100644 --- a/src/tokens.h +++ b/src/tokens.h @@ -64,9 +64,11 @@ static const uint8_t LEDGER_SIGNATURE_PUBLIC_KEY[] = { #else +// These defines need to follow tokens.c + #define NUM_TOKENS_AKROMA 0 #define NUM_TOKENS_ELLAISM 1 -#define NUM_TOKENS_ETHEREUM 1102 +#define NUM_TOKENS_ETHEREUM 2 #define NUM_TOKENS_ETHEREUM_CLASSIC 4 #define NUM_TOKENS_ETHERSOCIAL 0 #define NUM_TOKENS_ETHER1 0 From 330dd64338c8731891cad1159133df15b72578b2 Mon Sep 17 00:00:00 2001 From: pscott Date: Tue, 14 Sep 2021 10:50:59 +0200 Subject: [PATCH 2/9] Add arbitrum to networks --- src_common/network.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src_common/network.c b/src_common/network.c index eee88c6..f568855 100644 --- a/src_common/network.c +++ b/src_common/network.c @@ -19,6 +19,7 @@ const network_info_t NETWORK_MAPPING[] = { {.chain_id = 100, .name = "xDai", .ticker = "xDAI "}, {.chain_id = 137, .name = "Polygon", .ticker = "MATIC "}, {.chain_id = 250, .name = "Fantom", .ticker = "FTM "}, + {.chain_id = 42161, .name = "Arbitrum", .ticker = "AETH "}, {.chain_id = 42220, .name = "Celo", .ticker = "CELO "}, {.chain_id = 43114, .name = "Avalanche", .ticker = "AVAX "}, {.chain_id = 44787, .name = "Celo Alfajores", .ticker = "aCELO "}, From 6e22a62d3dabc4acdb434ca860f4dd35cdbac627 Mon Sep 17 00:00:00 2001 From: pscott <30843220+pscott@users.noreply.github.com> Date: Tue, 14 Sep 2021 11:17:49 +0200 Subject: [PATCH 3/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9186c17..417c5bb 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ To compile it and load it on a device, please check out our [developer portal](h # Plugins -This app support external plugins. More info in [doc/ethapp_plugin.asc](https://github.com/LedgerHQ/app-ethereum/blob/master/doc/ethapp_plugins.asc). If you wish to have a look at an existing plugin, feel free to check out the [ParaSwap plugin](https://github.com/LedgerHQ/app-plugin-paraswap). +This app support external plugins. More info in [doc/ethapp_plugin.asc](https://github.com/LedgerHQ/app-ethereum/blob/master/doc/ethapp_plugins.asc). If you wish to have a look at an existing plugin, feel free to check out the [Boilerplate plugin](https://github.com/LedgerHQ/app-plugin-boilerplate). # Testing From 99568f4e481e42021fd0a187cdbdff1cc6a3e3c3 Mon Sep 17 00:00:00 2001 From: pscott <30843220+pscott@users.noreply.github.com> Date: Tue, 14 Sep 2021 11:18:08 +0200 Subject: [PATCH 4/9] Update Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3aeeb14..32ceebd 100755 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ APP_LOAD_PARAMS += --path "1517992542'/1101353413'" APPVERSION_M=1 APPVERSION_N=9 -APPVERSION_P=3 +APPVERSION_P=4 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION) From 9951cc0e46efbc16f5959086bdcb4083b5bdc4e2 Mon Sep 17 00:00:00 2001 From: pscott <30843220+pscott@users.noreply.github.com> Date: Tue, 14 Sep 2021 11:19:13 +0200 Subject: [PATCH 5/9] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89e3920..1ec5718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). + +## [1.9.4](https://github.com/ledgerhq/app-ethereum/compare/1.9.3...1.9.4) - 2021-9-14 + +### Added + +- Added Arbitrum network + ## [1.9.3](https://github.com/ledgerhq/app-ethereum/compare/1.9.2...1.9.3) - 2021-9-03 ### Added From fa355a5d970d30029cf17ba35c40209209a327fa Mon Sep 17 00:00:00 2001 From: Jean P <10632523+TamtamHero@users.noreply.github.com> Date: Tue, 28 Sep 2021 12:32:06 +0200 Subject: [PATCH 6/9] Add a UI warning when contract data are not enabled in the settings (#193) * Add a UI warning when contract data are not enabled in the settings * Update wording "contract data" -> "blind signing" to raise awareness * Bump version 1.9.5 * remove hardcoded path in helper build script * Add blind signature test * Add snapshot-tmp to gitignore * Remove unused snapshots * Increase tests timings * Remove unused snapshots * Fix and rename compound blind deposit test * Update Approve and Transfer tests * Update tests * Cosmetic changes + disable debug flag * Update CHANGELOG.md --- .gitignore | 2 +- CHANGELOG.md | 9 + Makefile | 2 +- src/main.c | 4 + src/ui_callbacks.h | 1 + src/ui_flow.c | 44 +- src/ui_flow.h | 2 + src_features/signTx/logic_signTx.c | 2 + src_features/signTx/ui_flow_signTx.c | 8 +- tests/build_local_test_elfs.sh | 4 +- .../snapshots/deposit/nanos/data_present.png | Bin 518 -> 0 bytes .../snapshots/deposit/nanox/data_present.png | Bin 600 -> 0 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../00007.png} | Bin .../nanos_approve_dai_tokens/00008.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png | Bin 0 -> 503 bytes .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../00007.png} | Bin .../00008.png | Bin 0 -> 531 bytes .../nanos_disable_blind_signing/00000.png | Bin 0 -> 531 bytes .../nanos_disable_blind_signing/00001.png | Bin 0 -> 446 bytes .../nanos_disable_blind_signing/00002.png | Bin 0 -> 480 bytes .../nanos_disable_blind_signing/00003.png | Bin 0 -> 514 bytes .../nanos_disable_blind_signing/00004.png | Bin 0 -> 566 bytes .../nanos_disable_blind_signing/00005.png | Bin 0 -> 614 bytes .../nanos_disable_blind_signing/00006.png | Bin 0 -> 628 bytes .../nanos_disable_blind_signing/00007.png | Bin 0 -> 338 bytes .../nanos_disable_blind_signing/00008.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../00007.png} | Bin .../00008.png} | Bin .../00009.png} | Bin .../00010.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../00007.png} | Bin .../fees.png => nanos_transfer_bsc/00008.png} | Bin .../00009.png} | Bin tests/snapshots/nanos_transfer_bsc/00010.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../nanos_transfer_eip1559/00007.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../00007.png} | Bin .../00008.png} | Bin .../nanos_transfer_ethereum/00009.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png | Bin 0 -> 474 bytes .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png} | Bin .../00007.png} | Bin .../00008.png | Bin 0 -> 561 bytes .../00009.png} | Bin .../00010.png | Bin 0 -> 531 bytes .../nanos_transfer_ethereum_clone/00000.png | Bin 0 -> 541 bytes .../00001.png} | Bin .../nanos_transfer_ethereum_clone/00002.png | Bin 0 -> 759 bytes .../nanos_transfer_ethereum_clone/00003.png | Bin 0 -> 479 bytes .../nanos_transfer_ethereum_clone/00004.png | Bin 0 -> 809 bytes .../nanos_transfer_ethereum_clone/00005.png | Bin 0 -> 837 bytes .../nanos_transfer_ethereum_clone/00006.png | Bin 0 -> 567 bytes .../00007.png} | Bin .../nanos_transfer_ethereum_clone/00008.png | Bin 0 -> 582 bytes .../nanos_transfer_ethereum_clone/00009.png | Bin 0 -> 531 bytes .../nanos_transfer_palm_network/00000.png | Bin 0 -> 541 bytes .../00001.png} | Bin .../nanos_transfer_palm_network/00002.png | Bin 0 -> 759 bytes .../nanos_transfer_palm_network/00003.png | Bin 0 -> 479 bytes .../nanos_transfer_palm_network/00004.png | Bin 0 -> 809 bytes .../nanos_transfer_palm_network/00005.png | Bin 0 -> 837 bytes .../nanos_transfer_palm_network/00006.png | Bin 0 -> 567 bytes .../00007.png} | Bin .../00008.png} | Bin .../nanos_transfer_palm_network/00009.png | Bin 0 -> 582 bytes .../nanos_transfer_palm_network/00010.png | Bin 0 -> 531 bytes .../00000.png | Bin 0 -> 639 bytes .../00001.png | Bin 0 -> 631 bytes .../00002.png | Bin 0 -> 531 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../nanox_approve_dai_tokens/00006.png | Bin 0 -> 628 bytes .../00000.png} | Bin .../00001.png | Bin 0 -> 590 bytes .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png | Bin 0 -> 628 bytes .../nanox_disable_blind_signing/00000.png | Bin 0 -> 628 bytes .../nanox_disable_blind_signing/00001.png | Bin 0 -> 539 bytes .../nanox_disable_blind_signing/00002.png | Bin 0 -> 589 bytes .../nanox_disable_blind_signing/00003.png | Bin 0 -> 1016 bytes .../nanox_disable_blind_signing/00004.png | Bin 0 -> 1067 bytes .../nanox_disable_blind_signing/00005.png | Bin 0 -> 1102 bytes .../nanox_disable_blind_signing/00006.png | Bin 0 -> 1084 bytes .../nanox_disable_blind_signing/00007.png | Bin 0 -> 434 bytes .../nanox_disable_blind_signing/00008.png | Bin 0 -> 628 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../00005.png} | Bin .../00006.png | Bin 0 -> 628 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../fees.png => nanox_transfer_bsc/00004.png} | Bin .../00005.png} | Bin tests/snapshots/nanox_transfer_bsc/00006.png | Bin 0 -> 628 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../nanox_transfer_eip1559/00005.png | Bin 0 -> 628 bytes .../00000.png} | Bin .../00001.png} | Bin .../00002.png} | Bin .../00003.png} | Bin .../00004.png} | Bin .../nanox_transfer_ethereum/00005.png | Bin 0 -> 628 bytes .../00000.png} | Bin .../00001.png | Bin 0 -> 866 bytes .../00002.png} | Bin .../00003.png} | Bin .../00004.png | Bin 0 -> 692 bytes .../00005.png} | Bin .../00006.png | Bin 0 -> 628 bytes .../nanox_transfer_ethereum_clone/00000.png | Bin 0 -> 636 bytes .../00001.png} | Bin .../nanox_transfer_ethereum_clone/00002.png | Bin 0 -> 1298 bytes .../00003.png} | Bin .../nanox_transfer_ethereum_clone/00004.png | Bin 0 -> 674 bytes .../nanox_transfer_ethereum_clone/00005.png | Bin 0 -> 628 bytes .../nanox_transfer_palm_network/00000.png | Bin 0 -> 636 bytes .../00001.png} | Bin .../nanox_transfer_palm_network/00002.png | Bin 0 -> 1298 bytes .../00003.png} | Bin .../00004.png} | Bin .../nanox_transfer_palm_network/00005.png | Bin 0 -> 674 bytes .../nanox_transfer_palm_network/00006.png | Bin 0 -> 628 bytes .../00000.png | Bin 0 -> 903 bytes .../00001.png | Bin 0 -> 628 bytes tests/src/approve.test.js | 192 ++------- tests/src/blind_compound_deposit.test.js | 37 ++ tests/src/chainid.test.js | 405 +++--------------- tests/src/contract_data_warning.test.js | 38 ++ tests/src/deposit.test.js | 171 -------- tests/src/eip1559.test.js | 167 ++------ tests/src/generic.js | 53 --- tests/src/send.test.js | 367 +++------------- tests/src/send_bsc.test.js | 199 ++------- tests/src/send_etc.test.js | 247 ++++------- tests/src/test.fixture.js | 75 ++++ 196 files changed, 475 insertions(+), 1554 deletions(-) delete mode 100644 tests/snapshots/deposit/nanos/data_present.png delete mode 100644 tests/snapshots/deposit/nanox/data_present.png rename tests/snapshots/{approve/nanos/review.png => nanos_approve_dai_tokens/00000.png} (100%) rename tests/snapshots/{approve/nanos/type.png => nanos_approve_dai_tokens/00001.png} (100%) rename tests/snapshots/{approve/nanos/amount.png => nanos_approve_dai_tokens/00002.png} (100%) rename tests/snapshots/{approve/nanos/address_1.png => nanos_approve_dai_tokens/00003.png} (100%) rename tests/snapshots/{approve/nanos/address_2.png => nanos_approve_dai_tokens/00004.png} (100%) rename tests/snapshots/{approve/nanos/address_3.png => nanos_approve_dai_tokens/00005.png} (100%) rename tests/snapshots/{approve/nanos/fees.png => nanos_approve_dai_tokens/00006.png} (100%) rename tests/snapshots/{approve/nanos/accept.png => nanos_approve_dai_tokens/00007.png} (100%) create mode 100644 tests/snapshots/nanos_approve_dai_tokens/00008.png rename tests/snapshots/{chainid/nanos/review.png => nanos_deposit_eth_compound_blind/00000.png} (100%) create mode 100644 tests/snapshots/nanos_deposit_eth_compound_blind/00001.png rename tests/snapshots/{deposit/nanos/amount.png => nanos_deposit_eth_compound_blind/00002.png} (100%) rename tests/snapshots/{deposit/nanos/address_1.png => nanos_deposit_eth_compound_blind/00003.png} (100%) rename tests/snapshots/{deposit/nanos/address_2.png => nanos_deposit_eth_compound_blind/00004.png} (100%) rename tests/snapshots/{deposit/nanos/address_3.png => nanos_deposit_eth_compound_blind/00005.png} (100%) rename tests/snapshots/{deposit/nanos/fees.png => nanos_deposit_eth_compound_blind/00006.png} (100%) rename tests/snapshots/{chainid/nanos/accept.png => nanos_deposit_eth_compound_blind/00007.png} (100%) create mode 100644 tests/snapshots/nanos_deposit_eth_compound_blind/00008.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00000.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00001.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00002.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00003.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00004.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00005.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00006.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00007.png create mode 100644 tests/snapshots/nanos_disable_blind_signing/00008.png rename tests/snapshots/{deposit/nanos/review.png => nanos_transfer_112233445566_network/00000.png} (100%) rename tests/snapshots/{chainid/nanos/amount_1.png => nanos_transfer_112233445566_network/00001.png} (100%) rename tests/snapshots/{chainid/nanos/amount_2.png => nanos_transfer_112233445566_network/00002.png} (100%) rename tests/snapshots/{chainid/nanos/amount_3.png => nanos_transfer_112233445566_network/00003.png} (100%) rename tests/snapshots/{chainid/nanos/address_1.png => nanos_transfer_112233445566_network/00004.png} (100%) rename tests/snapshots/{chainid/nanos/address_2.png => nanos_transfer_112233445566_network/00005.png} (100%) rename tests/snapshots/{chainid/nanos/address_3.png => nanos_transfer_112233445566_network/00006.png} (100%) rename tests/snapshots/{chainid/nanos/network.png => nanos_transfer_112233445566_network/00007.png} (100%) rename tests/snapshots/{chainid/nanos/fees.png => nanos_transfer_112233445566_network/00008.png} (100%) rename tests/snapshots/{deposit/nanos/accept.png => nanos_transfer_112233445566_network/00009.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_112233445566_network/00010.png rename tests/snapshots/{eip1559/nanos/review.png => nanos_transfer_bsc/00000.png} (100%) rename tests/snapshots/{send_bsc/nanos/amount_1.png => nanos_transfer_bsc/00001.png} (100%) rename tests/snapshots/{send/nanos/amount_2.png => nanos_transfer_bsc/00002.png} (100%) rename tests/snapshots/{send/nanos/amount_3.png => nanos_transfer_bsc/00003.png} (100%) rename tests/snapshots/{send/nanos/address_1.png => nanos_transfer_bsc/00004.png} (100%) rename tests/snapshots/{send/nanos/address_2.png => nanos_transfer_bsc/00005.png} (100%) rename tests/snapshots/{send/nanos/address_3.png => nanos_transfer_bsc/00006.png} (100%) rename tests/snapshots/{send_bsc/nanos/network.png => nanos_transfer_bsc/00007.png} (100%) rename tests/snapshots/{send_bsc/nanos/fees.png => nanos_transfer_bsc/00008.png} (100%) rename tests/snapshots/{eip1559/nanos/accept.png => nanos_transfer_bsc/00009.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_bsc/00010.png rename tests/snapshots/{send/nanos/review.png => nanos_transfer_eip1559/00000.png} (100%) rename tests/snapshots/{eip1559/nanos/amount.png => nanos_transfer_eip1559/00001.png} (100%) rename tests/snapshots/{eip1559/nanos/address_1.png => nanos_transfer_eip1559/00002.png} (100%) rename tests/snapshots/{eip1559/nanos/address_2.png => nanos_transfer_eip1559/00003.png} (100%) rename tests/snapshots/{eip1559/nanos/address_3.png => nanos_transfer_eip1559/00004.png} (100%) rename tests/snapshots/{eip1559/nanos/fees.png => nanos_transfer_eip1559/00005.png} (100%) rename tests/snapshots/{send/nanos/accept.png => nanos_transfer_eip1559/00006.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_eip1559/00007.png rename tests/snapshots/{send_bsc/nanos/review.png => nanos_transfer_ethereum/00000.png} (100%) rename tests/snapshots/{send/nanos/amount_1.png => nanos_transfer_ethereum/00001.png} (100%) rename tests/snapshots/{send_bsc/nanos/amount_2.png => nanos_transfer_ethereum/00002.png} (100%) rename tests/snapshots/{send_bsc/nanos/amount_3.png => nanos_transfer_ethereum/00003.png} (100%) rename tests/snapshots/{send_bsc/nanos/address_1.png => nanos_transfer_ethereum/00004.png} (100%) rename tests/snapshots/{send_bsc/nanos/address_2.png => nanos_transfer_ethereum/00005.png} (100%) rename tests/snapshots/{send_bsc/nanos/address_3.png => nanos_transfer_ethereum/00006.png} (100%) rename tests/snapshots/{send/nanos/fees.png => nanos_transfer_ethereum/00007.png} (100%) rename tests/snapshots/{send_bsc/nanos/accept.png => nanos_transfer_ethereum/00008.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_ethereum/00009.png rename tests/snapshots/{send_etc/nanos/review.png => nanos_transfer_ethereum_5234_network/00000.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_ethereum_5234_network/00001.png rename tests/snapshots/{send_etc/nanos/amount_2.png => nanos_transfer_ethereum_5234_network/00002.png} (100%) rename tests/snapshots/{send_etc/nanos/amount_3.png => nanos_transfer_ethereum_5234_network/00003.png} (100%) rename tests/snapshots/{send_etc/nanos/address_1.png => nanos_transfer_ethereum_5234_network/00004.png} (100%) rename tests/snapshots/{send_etc/nanos/address_2.png => nanos_transfer_ethereum_5234_network/00005.png} (100%) rename tests/snapshots/{send_etc/nanos/address_3.png => nanos_transfer_ethereum_5234_network/00006.png} (100%) rename tests/snapshots/{send/nanos/network.png => nanos_transfer_ethereum_5234_network/00007.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_ethereum_5234_network/00008.png rename tests/snapshots/{send_etc/nanos/accept.png => nanos_transfer_ethereum_5234_network/00009.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_ethereum_5234_network/00010.png create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00000.png rename tests/snapshots/{send_etc/nanos/amount_1.png => nanos_transfer_ethereum_clone/00001.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00002.png create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00003.png create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00004.png create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00005.png create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00006.png rename tests/snapshots/{send_etc/nanos/fees.png => nanos_transfer_ethereum_clone/00007.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00008.png create mode 100644 tests/snapshots/nanos_transfer_ethereum_clone/00009.png create mode 100644 tests/snapshots/nanos_transfer_palm_network/00000.png rename tests/snapshots/{chainid/nanos/amount_1_palm.png => nanos_transfer_palm_network/00001.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_palm_network/00002.png create mode 100644 tests/snapshots/nanos_transfer_palm_network/00003.png create mode 100644 tests/snapshots/nanos_transfer_palm_network/00004.png create mode 100644 tests/snapshots/nanos_transfer_palm_network/00005.png create mode 100644 tests/snapshots/nanos_transfer_palm_network/00006.png rename tests/snapshots/{chainid/nanos/palm.png => nanos_transfer_palm_network/00007.png} (100%) rename tests/snapshots/{chainid/nanos/fees_palm.png => nanos_transfer_palm_network/00008.png} (100%) create mode 100644 tests/snapshots/nanos_transfer_palm_network/00009.png create mode 100644 tests/snapshots/nanos_transfer_palm_network/00010.png create mode 100644 tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png create mode 100644 tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png create mode 100644 tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png rename tests/snapshots/{approve/nanox/review.png => nanox_approve_dai_tokens/00000.png} (100%) rename tests/snapshots/{approve/nanox/type.png => nanox_approve_dai_tokens/00001.png} (100%) rename tests/snapshots/{approve/nanox/amount.png => nanox_approve_dai_tokens/00002.png} (100%) rename tests/snapshots/{approve/nanox/address.png => nanox_approve_dai_tokens/00003.png} (100%) rename tests/snapshots/{approve/nanox/fees.png => nanox_approve_dai_tokens/00004.png} (100%) rename tests/snapshots/{approve/nanox/accept.png => nanox_approve_dai_tokens/00005.png} (100%) create mode 100644 tests/snapshots/nanox_approve_dai_tokens/00006.png rename tests/snapshots/{chainid/nanox/review.png => nanox_deposit_eth_compound_blind/00000.png} (100%) create mode 100644 tests/snapshots/nanox_deposit_eth_compound_blind/00001.png rename tests/snapshots/{deposit/nanox/amount.png => nanox_deposit_eth_compound_blind/00002.png} (100%) rename tests/snapshots/{deposit/nanox/address.png => nanox_deposit_eth_compound_blind/00003.png} (100%) rename tests/snapshots/{deposit/nanox/fees.png => nanox_deposit_eth_compound_blind/00004.png} (100%) rename tests/snapshots/{chainid/nanox/accept.png => nanox_deposit_eth_compound_blind/00005.png} (100%) create mode 100644 tests/snapshots/nanox_deposit_eth_compound_blind/00006.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00000.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00001.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00002.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00003.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00004.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00005.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00006.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00007.png create mode 100644 tests/snapshots/nanox_disable_blind_signing/00008.png rename tests/snapshots/{deposit/nanox/review.png => nanox_transfer_112233445566_network/00000.png} (100%) rename tests/snapshots/{chainid/nanox/amount.png => nanox_transfer_112233445566_network/00001.png} (100%) rename tests/snapshots/{chainid/nanox/address.png => nanox_transfer_112233445566_network/00002.png} (100%) rename tests/snapshots/{chainid/nanox/network.png => nanox_transfer_112233445566_network/00003.png} (100%) rename tests/snapshots/{chainid/nanox/fees.png => nanox_transfer_112233445566_network/00004.png} (100%) rename tests/snapshots/{deposit/nanox/accept.png => nanox_transfer_112233445566_network/00005.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_112233445566_network/00006.png rename tests/snapshots/{eip1559/nanox/review.png => nanox_transfer_bsc/00000.png} (100%) rename tests/snapshots/{send_bsc/nanox/amount.png => nanox_transfer_bsc/00001.png} (100%) rename tests/snapshots/{send/nanox/address.png => nanox_transfer_bsc/00002.png} (100%) rename tests/snapshots/{send_bsc/nanox/network.png => nanox_transfer_bsc/00003.png} (100%) rename tests/snapshots/{send_bsc/nanox/fees.png => nanox_transfer_bsc/00004.png} (100%) rename tests/snapshots/{eip1559/nanox/accept.png => nanox_transfer_bsc/00005.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_bsc/00006.png rename tests/snapshots/{send/nanox/review.png => nanox_transfer_eip1559/00000.png} (100%) rename tests/snapshots/{eip1559/nanox/amount.png => nanox_transfer_eip1559/00001.png} (100%) rename tests/snapshots/{eip1559/nanox/address.png => nanox_transfer_eip1559/00002.png} (100%) rename tests/snapshots/{eip1559/nanox/fees.png => nanox_transfer_eip1559/00003.png} (100%) rename tests/snapshots/{send/nanox/accept.png => nanox_transfer_eip1559/00004.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_eip1559/00005.png rename tests/snapshots/{send_bsc/nanox/review.png => nanox_transfer_ethereum/00000.png} (100%) rename tests/snapshots/{send/nanox/amount.png => nanox_transfer_ethereum/00001.png} (100%) rename tests/snapshots/{send_bsc/nanox/address.png => nanox_transfer_ethereum/00002.png} (100%) rename tests/snapshots/{send/nanox/fees.png => nanox_transfer_ethereum/00003.png} (100%) rename tests/snapshots/{send_bsc/nanox/accept.png => nanox_transfer_ethereum/00004.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_ethereum/00005.png rename tests/snapshots/{send_etc/nanox/review.png => nanox_transfer_ethereum_5234_network/00000.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_ethereum_5234_network/00001.png rename tests/snapshots/{send_etc/nanox/address.png => nanox_transfer_ethereum_5234_network/00002.png} (100%) rename tests/snapshots/{send/nanox/network.png => nanox_transfer_ethereum_5234_network/00003.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_ethereum_5234_network/00004.png rename tests/snapshots/{send_etc/nanox/accept.png => nanox_transfer_ethereum_5234_network/00005.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_ethereum_5234_network/00006.png create mode 100644 tests/snapshots/nanox_transfer_ethereum_clone/00000.png rename tests/snapshots/{send_etc/nanox/amount.png => nanox_transfer_ethereum_clone/00001.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_ethereum_clone/00002.png rename tests/snapshots/{send_etc/nanox/fees.png => nanox_transfer_ethereum_clone/00003.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_ethereum_clone/00004.png create mode 100644 tests/snapshots/nanox_transfer_ethereum_clone/00005.png create mode 100644 tests/snapshots/nanox_transfer_palm_network/00000.png rename tests/snapshots/{chainid/nanox/amount_palm.png => nanox_transfer_palm_network/00001.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_palm_network/00002.png rename tests/snapshots/{chainid/nanox/palm.png => nanox_transfer_palm_network/00003.png} (100%) rename tests/snapshots/{chainid/nanox/fees_palm.png => nanox_transfer_palm_network/00004.png} (100%) create mode 100644 tests/snapshots/nanox_transfer_palm_network/00005.png create mode 100644 tests/snapshots/nanox_transfer_palm_network/00006.png create mode 100644 tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00000.png create mode 100644 tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png create mode 100644 tests/src/blind_compound_deposit.test.js create mode 100644 tests/src/contract_data_warning.test.js delete mode 100644 tests/src/deposit.test.js delete mode 100644 tests/src/generic.js create mode 100644 tests/src/test.fixture.js diff --git a/.gitignore b/.gitignore index 4dbca94..16c938c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,6 @@ tests/node_modules tests/lib tests/yarn-error.log tests/elfs/* -tests/snapshots/tmp/* +tests/snapshots-tmp .vscode diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ec5718..998ed50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [1.9.5](https://github.com/ledgerhq/app-ethereum/compare/1.9.4...1.9.5) - 2021-9-27 + +### Changed + +- "Contract Data" is now replaced with "Blind sign", which carries more meaning for regular users. + +### Added + +- When blind signing is disabled in settings, and a transaction with smart conract interactions is sent to the app, a new warning screen pops to let the user know that the setting must be enabled to sign this kind of transactions. ## [1.9.4](https://github.com/ledgerhq/app-ethereum/compare/1.9.3...1.9.4) - 2021-9-14 diff --git a/Makefile b/Makefile index 32ceebd..06a0e6a 100755 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ APP_LOAD_PARAMS += --path "1517992542'/1101353413'" APPVERSION_M=1 APPVERSION_N=9 -APPVERSION_P=4 +APPVERSION_P=5 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION) diff --git a/src/main.c b/src/main.c index 3820fd6..2133f41 100644 --- a/src/main.c +++ b/src/main.c @@ -92,6 +92,10 @@ void ui_idle(void) { ux_flow_init(0, ux_idle_flow, NULL); } +void ui_warning_contract_data(void) { + ux_flow_init(0, ux_warning_contract_data_flow, NULL); +} + unsigned int io_seproxyhal_touch_exit(__attribute__((unused)) const bagl_element_t *e) { // Go back to the dashboard os_sched_exit(0); diff --git a/src/ui_callbacks.h b/src/ui_callbacks.h index 26702bc..8b0a15a 100644 --- a/src/ui_callbacks.h +++ b/src/ui_callbacks.h @@ -16,6 +16,7 @@ unsigned int io_seproxyhal_touch_signMessage712_v0_cancel(const bagl_element_t * unsigned int io_seproxyhal_touch_eth2_address_ok(const bagl_element_t *e); void ui_idle(void); +void ui_warning_contract_data(void); void io_seproxyhal_send_status(uint32_t sw); void format_signature_out(const uint8_t *signature); diff --git a/src/ui_flow.c b/src/ui_flow.c index d88732f..b6b2fa3 100644 --- a/src/ui_flow.c +++ b/src/ui_flow.c @@ -2,7 +2,7 @@ #include "ui_callbacks.h" void display_settings(const ux_flow_step_t* const start_step); -void switch_settings_contract_data(void); +void switch_settings_blind_signing(void); void switch_settings_display_data(void); void switch_settings_display_nonce(void); @@ -54,9 +54,9 @@ UX_FLOW(ux_idle_flow, UX_STEP_CB( ux_settings_flow_1_step, bnnn_paging, - switch_settings_contract_data(), + switch_settings_blind_signing(), { - .title = "Contract data", + .title = "Blind signing", .text = strings.common.fullAddress, }); @@ -83,11 +83,11 @@ UX_STEP_CB( UX_STEP_CB( ux_settings_flow_1_step, bnnn, - switch_settings_contract_data(), + switch_settings_blind_signing(), { - "Contract data", - "Allow contract data", - "in transactions", + "Blind signing", + "Enable transaction", + "blind signing", strings.common.fullAddress, }); @@ -132,7 +132,7 @@ UX_FLOW(ux_settings_flow, &ux_settings_flow_4_step); void display_settings(const ux_flow_step_t* const start_step) { - strlcpy(strings.common.fullAddress, (N_storage.dataAllowed ? "Allowed" : "NOT Allowed"), 12); + strlcpy(strings.common.fullAddress, (N_storage.dataAllowed ? "Enabled" : "NOT Enabled"), 12); strlcpy(strings.common.fullAddress + 12, (N_storage.contractDetails ? "Displayed" : "NOT Displayed"), 26 - 12); @@ -142,7 +142,7 @@ void display_settings(const ux_flow_step_t* const start_step) { ux_flow_init(0, ux_settings_flow, start_step); } -void switch_settings_contract_data() { +void switch_settings_blind_signing() { uint8_t value = (N_storage.dataAllowed ? 0 : 1); nvm_write((void*) &N_storage.dataAllowed, (void*) &value, sizeof(uint8_t)); display_settings(&ux_settings_flow_1_step); @@ -159,3 +159,29 @@ void switch_settings_display_nonce() { nvm_write((void*) &N_storage.displayNonce, (void*) &value, sizeof(uint8_t)); display_settings(&ux_settings_flow_3_step); } + +////////////////////////////////////////////////////////////////////// +// clang-format off +#if defined(TARGET_NANOS) +UX_STEP_CB( + ux_warning_contract_data_step, + bnnn_paging, + ui_idle(), + { + "Error", + "Blind signing must be enabled in Settings", + }); +#elif defined(TARGET_NANOX) +UX_STEP_CB( + ux_warning_contract_data_step, + pnn, + ui_idle(), + { + &C_icon_crossmark, + "Blind signing must be", + "enabled in Settings", + }); +#endif +// clang-format on + +UX_FLOW(ux_warning_contract_data_flow, &ux_warning_contract_data_step); \ No newline at end of file diff --git a/src/ui_flow.h b/src/ui_flow.h index 927f5e2..8797b95 100644 --- a/src/ui_flow.h +++ b/src/ui_flow.h @@ -5,6 +5,8 @@ extern const ux_flow_step_t* const ux_idle_flow[]; +extern const ux_flow_step_t* const ux_warning_contract_data_flow[]; + extern const ux_flow_step_t* const ux_settings_flow[]; extern const ux_flow_step_t* const ux_display_public_flow[]; diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index cec6536..7ebdb2f 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -81,6 +81,7 @@ customStatus_e customProcessor(txContext_t *context) { if (fieldPos == 0) { // not reached if a plugin is available if (!N_storage.dataAllowed) { PRINTF("Data field forbidden\n"); + ui_warning_contract_data(); return CUSTOM_FAULT; } if (!N_storage.contractDetails) { @@ -407,6 +408,7 @@ void finalizeParsing(bool direct) { if (tmpContent.txContent.dataPresent && !N_storage.dataAllowed) { reportFinalizeError(direct); + ui_warning_contract_data(); if (!direct) { return; } diff --git a/src_features/signTx/ui_flow_signTx.c b/src_features/signTx/ui_flow_signTx.c index b508ee5..8f6a974 100644 --- a/src_features/signTx/ui_flow_signTx.c +++ b/src_features/signTx/ui_flow_signTx.c @@ -187,12 +187,12 @@ UX_STEP_NOCB( .text = strings.common.nonce, }); -UX_STEP_NOCB(ux_approval_data_warning_step, +UX_STEP_NOCB(ux_approval_blind_signing_warning_step, pbb, { &C_icon_warning, - "Data", - "Present", + "Blind", + "Signing", }); // clang-format on @@ -203,7 +203,7 @@ void ux_approve_tx(bool fromPlugin) { ux_approval_tx_flow[step++] = &ux_approval_review_step; if (!fromPlugin && tmpContent.txContent.dataPresent && !N_storage.contractDetails) { - ux_approval_tx_flow[step++] = &ux_approval_data_warning_step; + ux_approval_tx_flow[step++] = &ux_approval_blind_signing_warning_step; } if (fromPlugin) { diff --git a/tests/build_local_test_elfs.sh b/tests/build_local_test_elfs.sh index 38777eb..dd84b45 100755 --- a/tests/build_local_test_elfs.sh +++ b/tests/build_local_test_elfs.sh @@ -1,8 +1,8 @@ #!/bin/bash # FILL THESE WITH YOUR OWN SDKs PATHS -NANOS_SDK=$TWO -NANOX_SDK=$X +# NANOS_SDK= +# NANOX_SDK= # list of apps required by tests that we want to build here appnames=("ethereum" "ethereum_classic") diff --git a/tests/snapshots/deposit/nanos/data_present.png b/tests/snapshots/deposit/nanos/data_present.png deleted file mode 100644 index 3bb21d5164ea0c85c0d5e892a30bde63fbe0ba4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfg9=ba4!+V0?SBXw|-(33}7I@it>tS?pVd>L~^RD12NNk>ZLm`<(IjRFbDh^;F*TB5~t zN;$(~!pwJ@KV+m#kd(4p(%AO$#i7j^HzrC-nejIB@LC(Ct1Pf-YI97>kVxT^Vw<@z zaYAM2VTEEd@p-O?mz(%(_^{sO!iRVh9-|X`Rwqtye0D}`S+H=xzUae!XYNYzrI_)u z8_jO(qwQjOrV5`^dD(d{^G{y*@YU#S@A#$}1_&veA*O+2$ZWx~x9b1t@~t2#6DN&{89r%hPc z*wzb_$XEajJrSl;B~jd$SL*sK-)1oP)}fLtAm=aRbdFQ3%{DV91LK#$)78&qol`;+ E0G;pJw*UYD diff --git a/tests/snapshots/deposit/nanox/data_present.png b/tests/snapshots/deposit/nanox/data_present.png deleted file mode 100644 index dd2bbf9a140d63ed545d6189a881b44afa3ea094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|^E>ba4!+V0?S<;@aD8A`BNF zI?eU@uj;GY#W90H(dMw8OBc{pzGH_U2HZat8lx8xf{S=YDMN zdb>O1&l84ucS2Uwtm-P)k`7sMM>kI^WM5;~sg;lNLqck_r*`dT-w%}D-DN#B_~_C{ zOM(iQe>xeW72?PK;mLHass3SwL6)I&Lhb>vpQ!rO`5|*c>_S^lJw4d#)p~0CsvqWB z`&?U3-F?*Sb<}*7#mW_bJdb+1KAjx8Vo&rRht%JCTK1L=>hVh+%{{dgj28uc^m`f& z442$BAWuu@ZtUF#4h!2K3Zm~rw*Alh*ckFJUrWpGY_opg!XS|KcUI2PdKaQ6TCTO6 zYid`w7s#ETIK_abu6wj(QPHX$!GSx0?gBax=wj=s-Cd`aSA1yHs&juDQn>QR+^)$$ z9Z5~>@*Yp`2UIQ(DqOiEcxJ-Kr6K=ZT%Rs70@|}ID6lXPY)^=mmY!DqA|OBLCky+B m6zOc3`%vNv;cTGrKgPsu{N8I1NdEz*7zR&QKbLh*2~7ZG796Dj diff --git a/tests/snapshots/approve/nanos/review.png b/tests/snapshots/nanos_approve_dai_tokens/00000.png similarity index 100% rename from tests/snapshots/approve/nanos/review.png rename to tests/snapshots/nanos_approve_dai_tokens/00000.png diff --git a/tests/snapshots/approve/nanos/type.png b/tests/snapshots/nanos_approve_dai_tokens/00001.png similarity index 100% rename from tests/snapshots/approve/nanos/type.png rename to tests/snapshots/nanos_approve_dai_tokens/00001.png diff --git a/tests/snapshots/approve/nanos/amount.png b/tests/snapshots/nanos_approve_dai_tokens/00002.png similarity index 100% rename from tests/snapshots/approve/nanos/amount.png rename to tests/snapshots/nanos_approve_dai_tokens/00002.png diff --git a/tests/snapshots/approve/nanos/address_1.png b/tests/snapshots/nanos_approve_dai_tokens/00003.png similarity index 100% rename from tests/snapshots/approve/nanos/address_1.png rename to tests/snapshots/nanos_approve_dai_tokens/00003.png diff --git a/tests/snapshots/approve/nanos/address_2.png b/tests/snapshots/nanos_approve_dai_tokens/00004.png similarity index 100% rename from tests/snapshots/approve/nanos/address_2.png rename to tests/snapshots/nanos_approve_dai_tokens/00004.png diff --git a/tests/snapshots/approve/nanos/address_3.png b/tests/snapshots/nanos_approve_dai_tokens/00005.png similarity index 100% rename from tests/snapshots/approve/nanos/address_3.png rename to tests/snapshots/nanos_approve_dai_tokens/00005.png diff --git a/tests/snapshots/approve/nanos/fees.png b/tests/snapshots/nanos_approve_dai_tokens/00006.png similarity index 100% rename from tests/snapshots/approve/nanos/fees.png rename to tests/snapshots/nanos_approve_dai_tokens/00006.png diff --git a/tests/snapshots/approve/nanos/accept.png b/tests/snapshots/nanos_approve_dai_tokens/00007.png similarity index 100% rename from tests/snapshots/approve/nanos/accept.png rename to tests/snapshots/nanos_approve_dai_tokens/00007.png diff --git a/tests/snapshots/nanos_approve_dai_tokens/00008.png b/tests/snapshots/nanos_approve_dai_tokens/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/review.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00000.png similarity index 100% rename from tests/snapshots/chainid/nanos/review.png rename to tests/snapshots/nanos_deposit_eth_compound_blind/00000.png diff --git a/tests/snapshots/nanos_deposit_eth_compound_blind/00001.png b/tests/snapshots/nanos_deposit_eth_compound_blind/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..942f5a628dec95d0c73c94988e289ee4baf87582 GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi`(ba4!+V0?Qpu;`WpgUdm4 zt!Mw(=k<4HX@?0Gyh%9FccHBN{;o+!N_1XzO%03nOtRu*OuZ_$79_;OoxUr{N`x_$ zUuxY69^U3N7Yt6^S&}%xva5CP#Gg}mj4nU-+q0<6F)hQPt*!UWvWF|gzAa0fu+x*- zC|rtdrgGE`>6r^3=JC33|DeNb;`4udtMX*aU9IUEH%x3o4m+RZ;dNJ85R>Kb?6lMb zNvR1l>mrzqri2_Jp0wzgvKe5naLy${Em`ut~gNo@qyeBSf0Lrn=TnIGZ%*grh?v!uOjwqj~ zna!4Br|NuIVRI(XpZ=x_Aejt_ly4b{`YC3-my>ngbOJr^3=E*lK+CF2llXxy?L2e& z@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_disable_blind_signing/00000.png b/tests/snapshots/nanos_disable_blind_signing/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_disable_blind_signing/00001.png b/tests/snapshots/nanos_disable_blind_signing/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..78f3ae440fd061fe3cd225eff7e875fba929eacf GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfg`yx;TbZFupzL*mv7N#O2`i zmS6wa|8@5{9BFwwvDa}zuSZzt{-Q}owuwDG;<78VAjHqD(c&oa&VMS zTr~M*P>Ioh-!8v2R`%Q4GpEX&Q8~&zQ;*eX$%_<^k50?HFP`MlWSgl76p%=Hx5Thp zWG;_UY?tCuRml`PuZt&3G~<>yJX^>2&ZSKRsKUc=$q$cb?ILr}@N4QVbx31l-#qcB zsALe2=7dP!WHzJ!E^IUVQ}j-rSyX6l)O<$a@=^s>&3#^uTtHV$PuT_3=fl!ct~ueR z+9al#<-K5*vU68?Z#qa!)wwIZw_W5!&g998N1Y!#wu#(+5~T3?LWP=hS8kBzgi1Aq zJ>HFH)-HVkc3X_sN2h1ofC}C{=mH8lw28!xkF?)&o8RshX+D#~ z7dGvY_Dsd2J$zxR#!DhXlcR4P^a=txPa>sF*5Z-IoQ%;uFG&(&l) zl_kZO5~jLf&7z0>DPhVB)+|VzWSKD|C2Z41shQ?Rt8Ya(9#$|myXTf={D$wP-{ z>oX)kZkhwKF_*Xb%oT$ZcOEorXIM;Fn3z>@+2F(lgA+WwKoaP<`I8m`bu7PaF}tm~ z&5>>9LdKb%Y?3Kzk}3PHG@O~9qBfIRGUZ&tW1W;`Z9v@%9=c~Nc*tXR&Lu6&VuB-3 z<-eUkKLP#zg%ah(kkI(#U9*Fz&w z#-|gd@=m;wnsC!p;d37Ei9MdoM)hkMXBtOVvKcuajx~z+d*+;SF72rfNQuk|8IwPO zhZQzwJEUDNaBgd3p1F{5X6)g{GZzY+p9zM|b3Cl@Sil0+c z<{dm`obkiN2yA6>IMC>oQfxEb1q1Zld4Ud5_?!r#mP$>i%zS9XE-4i!6ri_ViZ8{^ z7w9DW%MEArnNFqZ@t*jzpSRwqu_>D>l2K;8N9OiqpInYuB{ nwiV30btpB9d-_Ts=bL<{$o6E3u>LE+xMlEk^>bP0l+XkKgZ$Tj literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_disable_blind_signing/00004.png b/tests/snapshots/nanos_disable_blind_signing/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..e4ad84fa4c9cc7ae289ababb8e8767f7cefed828 GIT binary patch literal 566 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfji0ba4!+V0?Qpx@b-WgUi8S zmaYF;ueJ*1LMp`^|cd@yp6iTF8AdEyXT#C&JL9s-EzMaI&Yi${8`9< zN6*#4GU#yInMI5>pk!>KusI`QqNJ2rN}oY78*lTO*(Z2-K?)?L{&_tMHR@(d zVVk*-ab~QMGqX`M$fm_Ua~gS!PF(nqE441~*(#v1C*EX5oT%B^)_P`Q+B&~BwiL6J zd2Y{m(#|b-cp9kAA86{jHpge)raVUOf&qEiyeHNGotX)tLU>Q?F)7^5CMgvs6p$AU zbYuLoMAv7xfhuM<6z!hImh#WI5Jc6@-Vy80Y*atXGKd-I51=!pjhum=cRSp5rrlIw z^J>PK<(Ur8R!U8%%zTysa+E{bV#b-RAUB7fjG1<3-ps`(FEpG{lnP5}YZINhFmb}q z)oqSx85YemwKF9k-fTSs4U~%wXBH)9H~?i&osm2N)E0blkN4r_rgLtdd0T4K-NrxB za&zbA2@4;7+naXIrLE1et&MjkKhT(aOA^BmD{S@#3Z*GJAC~0M*nWD}j@VmA-dZ2$lO literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_disable_blind_signing/00005.png b/tests/snapshots/nanos_disable_blind_signing/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..28e70e8bc22cd0c7f2b114c25504765b2c7b1592 GIT binary patch literal 614 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi$Qx;TbZFupw)7<4;|!R4T_ z-r0ZRHu9h6L_ZYU7!dI>FmED*5n)}qyMo{vg+#N%Fy zE_W6T__ip~`B}ZG!e?En36)~p)ykVMHJowIba*DHV>7GGGc9XI$}%<(YHQ=2+1s{T zDl8>KLW)fiNPkOuIMGDG*ksKKAKnvty3br_IOE1_6nt34*p$ZzC~?weE)oe$5J zdY2^uRB0;|kOy?#6{!i4Ku2ksDipsyw3aQ!&)==BEt=_6H(Ltd;zZYHFM(>D9DXik zoOzkiMB(%4R&gVfIrCzejr8^Qs5u{g=?Rpd)ljsWai;#&hBICuXSSWWvO#h4#SMza zKsim`6MuqvfevI#$w7hziMua0 zoM|_$i8wq@M`kWaMf*t}-uFtI)y3WAX3HHRKeIp zVe>_xz=r9qwm{yA3kAC_IUJrB_U&51ua-0S!oH~)o6eb+ovP1!BIm?~1|B05AEOf& z3{EOIA6D6X@q;pN^O@- z;Qq|-uJ1;k!0eR%}dZ70wNT%?)Kbtt! z_9W1g!5|O%7&#wqJLAkNZ3OkJ!AT$9^BanoW?CBsGaHqsENgRYV@rXeHlRH#6ZN&L zCog22IUN`@+f8et4{JwSTFnFs$1yTmjiJ`OI>ueLkT0ny~PpB+Hb`Va!JVJ(-Qx=RGXR&|ZH3s=2{y4(DSd?*@viR&t z=bHLrdfFFAi;Jt?Wu3cYhlZrWfszN0{HK%%^;~0_p%)V~g@?l`u&B^b;YVM0vgXbm zFZ6z#V)g14u82gJ|cd1FeBo|&q-UYv%dYk`*P z?Cx&vm3N~G+n3Ypn6rVy$@M^GenN9j0ri|^1uDK7^MFa*zNnCkF>Q-z h&$XtDQ3g@f?CJZmIXzZhYz2lDgQu&X%Q~loCICmNg$4is literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_disable_blind_signing/00008.png b/tests/snapshots/nanos_disable_blind_signing/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanos/review.png b/tests/snapshots/nanos_transfer_112233445566_network/00000.png similarity index 100% rename from tests/snapshots/deposit/nanos/review.png rename to tests/snapshots/nanos_transfer_112233445566_network/00000.png diff --git a/tests/snapshots/chainid/nanos/amount_1.png b/tests/snapshots/nanos_transfer_112233445566_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_112233445566_network/00001.png diff --git a/tests/snapshots/chainid/nanos/amount_2.png b/tests/snapshots/nanos_transfer_112233445566_network/00002.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_112233445566_network/00002.png diff --git a/tests/snapshots/chainid/nanos/amount_3.png b/tests/snapshots/nanos_transfer_112233445566_network/00003.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_112233445566_network/00003.png diff --git a/tests/snapshots/chainid/nanos/address_1.png b/tests/snapshots/nanos_transfer_112233445566_network/00004.png similarity index 100% rename from tests/snapshots/chainid/nanos/address_1.png rename to tests/snapshots/nanos_transfer_112233445566_network/00004.png diff --git a/tests/snapshots/chainid/nanos/address_2.png b/tests/snapshots/nanos_transfer_112233445566_network/00005.png similarity index 100% rename from tests/snapshots/chainid/nanos/address_2.png rename to tests/snapshots/nanos_transfer_112233445566_network/00005.png diff --git a/tests/snapshots/chainid/nanos/address_3.png b/tests/snapshots/nanos_transfer_112233445566_network/00006.png similarity index 100% rename from tests/snapshots/chainid/nanos/address_3.png rename to tests/snapshots/nanos_transfer_112233445566_network/00006.png diff --git a/tests/snapshots/chainid/nanos/network.png b/tests/snapshots/nanos_transfer_112233445566_network/00007.png similarity index 100% rename from tests/snapshots/chainid/nanos/network.png rename to tests/snapshots/nanos_transfer_112233445566_network/00007.png diff --git a/tests/snapshots/chainid/nanos/fees.png b/tests/snapshots/nanos_transfer_112233445566_network/00008.png similarity index 100% rename from tests/snapshots/chainid/nanos/fees.png rename to tests/snapshots/nanos_transfer_112233445566_network/00008.png diff --git a/tests/snapshots/deposit/nanos/accept.png b/tests/snapshots/nanos_transfer_112233445566_network/00009.png similarity index 100% rename from tests/snapshots/deposit/nanos/accept.png rename to tests/snapshots/nanos_transfer_112233445566_network/00009.png diff --git a/tests/snapshots/nanos_transfer_112233445566_network/00010.png b/tests/snapshots/nanos_transfer_112233445566_network/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/eip1559/nanos/review.png b/tests/snapshots/nanos_transfer_bsc/00000.png similarity index 100% rename from tests/snapshots/eip1559/nanos/review.png rename to tests/snapshots/nanos_transfer_bsc/00000.png diff --git a/tests/snapshots/send_bsc/nanos/amount_1.png b/tests/snapshots/nanos_transfer_bsc/00001.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_bsc/00001.png diff --git a/tests/snapshots/send/nanos/amount_2.png b/tests/snapshots/nanos_transfer_bsc/00002.png similarity index 100% rename from tests/snapshots/send/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_bsc/00002.png diff --git a/tests/snapshots/send/nanos/amount_3.png b/tests/snapshots/nanos_transfer_bsc/00003.png similarity index 100% rename from tests/snapshots/send/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_bsc/00003.png diff --git a/tests/snapshots/send/nanos/address_1.png b/tests/snapshots/nanos_transfer_bsc/00004.png similarity index 100% rename from tests/snapshots/send/nanos/address_1.png rename to tests/snapshots/nanos_transfer_bsc/00004.png diff --git a/tests/snapshots/send/nanos/address_2.png b/tests/snapshots/nanos_transfer_bsc/00005.png similarity index 100% rename from tests/snapshots/send/nanos/address_2.png rename to tests/snapshots/nanos_transfer_bsc/00005.png diff --git a/tests/snapshots/send/nanos/address_3.png b/tests/snapshots/nanos_transfer_bsc/00006.png similarity index 100% rename from tests/snapshots/send/nanos/address_3.png rename to tests/snapshots/nanos_transfer_bsc/00006.png diff --git a/tests/snapshots/send_bsc/nanos/network.png b/tests/snapshots/nanos_transfer_bsc/00007.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/network.png rename to tests/snapshots/nanos_transfer_bsc/00007.png diff --git a/tests/snapshots/send_bsc/nanos/fees.png b/tests/snapshots/nanos_transfer_bsc/00008.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/fees.png rename to tests/snapshots/nanos_transfer_bsc/00008.png diff --git a/tests/snapshots/eip1559/nanos/accept.png b/tests/snapshots/nanos_transfer_bsc/00009.png similarity index 100% rename from tests/snapshots/eip1559/nanos/accept.png rename to tests/snapshots/nanos_transfer_bsc/00009.png diff --git a/tests/snapshots/nanos_transfer_bsc/00010.png b/tests/snapshots/nanos_transfer_bsc/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/send/nanos/review.png b/tests/snapshots/nanos_transfer_eip1559/00000.png similarity index 100% rename from tests/snapshots/send/nanos/review.png rename to tests/snapshots/nanos_transfer_eip1559/00000.png diff --git a/tests/snapshots/eip1559/nanos/amount.png b/tests/snapshots/nanos_transfer_eip1559/00001.png similarity index 100% rename from tests/snapshots/eip1559/nanos/amount.png rename to tests/snapshots/nanos_transfer_eip1559/00001.png diff --git a/tests/snapshots/eip1559/nanos/address_1.png b/tests/snapshots/nanos_transfer_eip1559/00002.png similarity index 100% rename from tests/snapshots/eip1559/nanos/address_1.png rename to tests/snapshots/nanos_transfer_eip1559/00002.png diff --git a/tests/snapshots/eip1559/nanos/address_2.png b/tests/snapshots/nanos_transfer_eip1559/00003.png similarity index 100% rename from tests/snapshots/eip1559/nanos/address_2.png rename to tests/snapshots/nanos_transfer_eip1559/00003.png diff --git a/tests/snapshots/eip1559/nanos/address_3.png b/tests/snapshots/nanos_transfer_eip1559/00004.png similarity index 100% rename from tests/snapshots/eip1559/nanos/address_3.png rename to tests/snapshots/nanos_transfer_eip1559/00004.png diff --git a/tests/snapshots/eip1559/nanos/fees.png b/tests/snapshots/nanos_transfer_eip1559/00005.png similarity index 100% rename from tests/snapshots/eip1559/nanos/fees.png rename to tests/snapshots/nanos_transfer_eip1559/00005.png diff --git a/tests/snapshots/send/nanos/accept.png b/tests/snapshots/nanos_transfer_eip1559/00006.png similarity index 100% rename from tests/snapshots/send/nanos/accept.png rename to tests/snapshots/nanos_transfer_eip1559/00006.png diff --git a/tests/snapshots/nanos_transfer_eip1559/00007.png b/tests/snapshots/nanos_transfer_eip1559/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_bsc/nanos/review.png b/tests/snapshots/nanos_transfer_ethereum/00000.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/review.png rename to tests/snapshots/nanos_transfer_ethereum/00000.png diff --git a/tests/snapshots/send/nanos/amount_1.png b/tests/snapshots/nanos_transfer_ethereum/00001.png similarity index 100% rename from tests/snapshots/send/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_ethereum/00001.png diff --git a/tests/snapshots/send_bsc/nanos/amount_2.png b/tests/snapshots/nanos_transfer_ethereum/00002.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_ethereum/00002.png diff --git a/tests/snapshots/send_bsc/nanos/amount_3.png b/tests/snapshots/nanos_transfer_ethereum/00003.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_ethereum/00003.png diff --git a/tests/snapshots/send_bsc/nanos/address_1.png b/tests/snapshots/nanos_transfer_ethereum/00004.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/address_1.png rename to tests/snapshots/nanos_transfer_ethereum/00004.png diff --git a/tests/snapshots/send_bsc/nanos/address_2.png b/tests/snapshots/nanos_transfer_ethereum/00005.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/address_2.png rename to tests/snapshots/nanos_transfer_ethereum/00005.png diff --git a/tests/snapshots/send_bsc/nanos/address_3.png b/tests/snapshots/nanos_transfer_ethereum/00006.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/address_3.png rename to tests/snapshots/nanos_transfer_ethereum/00006.png diff --git a/tests/snapshots/send/nanos/fees.png b/tests/snapshots/nanos_transfer_ethereum/00007.png similarity index 100% rename from tests/snapshots/send/nanos/fees.png rename to tests/snapshots/nanos_transfer_ethereum/00007.png diff --git a/tests/snapshots/send_bsc/nanos/accept.png b/tests/snapshots/nanos_transfer_ethereum/00008.png similarity index 100% rename from tests/snapshots/send_bsc/nanos/accept.png rename to tests/snapshots/nanos_transfer_ethereum/00008.png diff --git a/tests/snapshots/nanos_transfer_ethereum/00009.png b/tests/snapshots/nanos_transfer_ethereum/00009.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanos/review.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00000.png similarity index 100% rename from tests/snapshots/send_etc/nanos/review.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00000.png diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00001.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd3e38bacb6946307a7e132d42d79b6a8ebee6d GIT binary patch literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCkba4!+V0?QpFmH|ngUi9| z9sB+_{$AW1P?mCS+mi@SvBM#q_jgS^QlkH=t=H_XN762S#?;GVxga5a?);L&CE84< zBux}PE1M`7o4iT6m+8>f=9re@@GMm9+yX{PDZj-Jy`?7n3}800mQ0zj@S#rFxit?V zY9vzH*g&X^m)&T0TkK)KXTe7HH&5L>$-{f%jTA&~p9|0|Hc6=omCG4t=4akG$zuex zjEj5ywT3f(ZEfB_i$K!nlAiKNExR6J$vksm;;;I!xRs1EnSr`~8c9mA&1`Oi>s-l} z!Uq&t$T%}xFkqgkf^qF4#+mzpxPBeu%yjPaQWIwCxwW;WGo5l~HoDwus_=QkhYJm7 zN(zlkY;E4uAX2Cbdh_u!?T;G+*9 literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanos/amount_2.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00002.png similarity index 100% rename from tests/snapshots/send_etc/nanos/amount_2.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00002.png diff --git a/tests/snapshots/send_etc/nanos/amount_3.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00003.png similarity index 100% rename from tests/snapshots/send_etc/nanos/amount_3.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00003.png diff --git a/tests/snapshots/send_etc/nanos/address_1.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00004.png similarity index 100% rename from tests/snapshots/send_etc/nanos/address_1.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00004.png diff --git a/tests/snapshots/send_etc/nanos/address_2.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00005.png similarity index 100% rename from tests/snapshots/send_etc/nanos/address_2.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00005.png diff --git a/tests/snapshots/send_etc/nanos/address_3.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00006.png similarity index 100% rename from tests/snapshots/send_etc/nanos/address_3.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00006.png diff --git a/tests/snapshots/send/nanos/network.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00007.png similarity index 100% rename from tests/snapshots/send/nanos/network.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00007.png diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00008.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..8b996b58a1ec0043e05a39e52d99ce49521f5116 GIT binary patch literal 561 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfjh`ba4!+V0?S<_9P{D2Iqr| z`M&&@U&B6g#fK@G39{B^n`3qv9lc+r*7-Ezit)LUYsQ{B#}yaM+3K2ZJNZZvkF(KjQp%**X8vFMuy3Y$pJn*fOlp&zxsVZr@-t_oENk;j%b1Z8clX%t z2@4am9Mas`Bva&;F-ih;PH=qI#$)vU!4dV$9o}tij?bn`m8G<`?Us6%P@Cp96s={P z`Lx+Yp*Z((6tmIk_K6E0-a59FEoBPfj{eKPE=hD0RpVDNPHb6Mw<&;$TB@9Js* literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanos/accept.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00009.png similarity index 100% rename from tests/snapshots/send_etc/nanos/accept.png rename to tests/snapshots/nanos_transfer_ethereum_5234_network/00009.png diff --git a/tests/snapshots/nanos_transfer_ethereum_5234_network/00010.png b/tests/snapshots/nanos_transfer_ethereum_5234_network/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00000.png b/tests/snapshots/nanos_transfer_ethereum_clone/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..2994983f84cf76ab587bac356d5afe297c0e0632 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcyxba4!+V0?SfW}LV) zm52AlpJ_b2>@)W(0ade0N=>L#7k{_%p*K+Izf)VA1-(C=WRZ-BymEd z+ycg#=gr>vKI=O3DZ$93W?LaYQ1QY>pxO%?Y&v*&<#TnOD>)zbXF6qTB9pT3N&!&M z3dWi9&EBnj=ymuLi`0al9u7OFx80vqnaz8`W+_{Wop8XrwTVif&jYR3;ytm)i1F!7 zQ=gO!i4>qCfqpe|KCDm-Wb*LtR{=T`$TJ28kKEHk+7p0Y?mPqLwy~wK0ofM}OcabW z9iDmf0+pZOF#@XZFL)Sha%TzS%!Lnq%!RyR`IX+l PXlL+r^>bP0l+XkKp5EPW literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanos/amount_1.png b/tests/snapshots/nanos_transfer_ethereum_clone/00001.png similarity index 100% rename from tests/snapshots/send_etc/nanos/amount_1.png rename to tests/snapshots/nanos_transfer_ethereum_clone/00001.png diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00002.png b/tests/snapshots/nanos_transfer_ethereum_clone/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..11ae75e8391d69f363be24e20c136f0ee32b13d0 GIT binary patch literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi@&ba4!+V0?Qp&`&v1#O2^* z)#v}j=g8l@cDdkcYoY6pnS>%$F{b` zI|@>Gt&L20W?nQ%abpIlU7F~gmKh->HuL_gLl;l>u%%3EyV!6h!{M18P*ySp$N;L7 zzqH{5k0j70KI!{w8E3k-waKq!oC#Fd$75t7bF@`C)bY?cP=5SXJ5Ka6+Wjt_GC6%9`D!IrY`NDl40?;i1&oe%^$OQc$deoVw}03 zQ{y~P)v7kvXQ8~^XMn+A4Ww2}O}GiP)$MTKnG6sG-b{T(V_>|+T?K~mnM)fkf6z1XW;Sw81BOR1&|&@D?$YFcvsLlQ$7&?QRF zAYZnfnGM9i5S+g#@x&fi2TR*Ey_cPDTi9+vP`{bucKb|_So<*tn4lRvUHx3vIVCg! E0D4U}bN~PV literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00003.png b/tests/snapshots/nanos_transfer_ethereum_clone/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..e0420108494b969f9c050ba46e44f5c255fa1f1b GIT binary patch literal 479 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCjba4!+V0?Qpu2D;LWW?VAh6@j^#SRf&uFm zFwXq%#B9{w=J;$fTS|sRN*i0sz0}8CQWF+FG?Loq!X}xLVUg+ZOre>_$Ry@yvv#({ z#D$3yB&FD9E@T8D=fj<67CyXCFk$Cv_HcD$6NTao2`Qlbgr7n{X`pTgkimXZd`A1P z6ifi~WzFubWt`c}!~0(r$Oo#noaorrwz{H#mG^YD%?_rS3lo2q%k2qfHc~e-QTUu{ zWWr;l&bxo2L{A6 zpc$$Q&a7aZ=`S^5=FwwDTiG{fTAa{P0E+>AleTGN&Gm*eIc8!R4ry-uX+WpU0lIOs tK)|%jT%F+C5zDr1^vO-0c?+mDU$Ss>;+dSqdccTd@O1TaS?83{1OS_=#2f$s literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00004.png b/tests/snapshots/nanos_transfer_ethereum_clone/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..f979f716022e2492f86f9dcc9ba56e7622cefd3e GIT binary patch literal 809 zcmXAoe@GKy7{|9(n~5hP67E%TxlI3%nCJX45Or=&tu&RQiKdN?buLSBQL_Z+{y3DG zY?{iUh`Q9wa0@{cM3O;Vb=jO)DH9u$bQ|Tj}*;XgammwB9|D81-LZ`XFR^n$fF;SI`v$~Bw#9iRXBdhZ99sk z8`td4mwb9bhHPRif?hDQUYA`V<=)BC+XvR2WdHhQH%(=F&8$W! zMzihGN~OCp&ZyB>K|(3A9qk4;oWdE&K?p9d1`WGy=_LX@LX2!min2l=M2slbD{MUb5t%PAS0uT7^VLjsV|_GCBElca4UkexH1riZL?{w_s8D zhPh}VMWu?qg17w-P`Ca1BSD&uhCu^u-mehg4xN2^R41JPWs5RGq$;lUv|0~4VA#RtV2sDi0w4xX;L}5VF-pN5>w{FKA#Ksj z(n4Y$PT<%Aoev$v98_+>(id8Y3Br!Sz#gK4J6t=cyPQhMiQAOXUrtXmk-?m1hO!Wp) dMc)c+e?_|s$wq~xc@nMwFF&VHJ)V8j@(=l|VF&;K literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00005.png b/tests/snapshots/nanos_transfer_ethereum_clone/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..93c90c542343a4423166f143ee5f43f335c73b96 GIT binary patch literal 837 zcmXAo4M-DV7{_;A%@R)~MB5oQ6F(yHVLVt$ZA=)^QU zBa$mqOLSqW0}B(ikSSa-LTA~M^?~9*LQSM{U?0zWaUbu!FYohz{?G4uuQ5L_n+PNW zB@zjt%~2P?XoE+-Qws0-{S~ni2_B?XXBJwqm5I{@W!f;+L`=i;zdOFE7GI3q(@a%%ggCfQn@u^+iip^<%vKAXE_sg2^OTwK8cYgpA)QlwvHdYYcoX z2bgK!RAU5Mt$@`d>q?fj?;F7Qi1_QVD(7qn&>7r*=L5+dHSVGAOCb#lr3w}pAa_-p zlo_~48)j3Oa(4=Ih)@|!9sq;O08x*=RR=>ZP7Ur#7=~;jQXTRs>{ZCq#E)j6REz_9 zh=eA{H+q2|PIY6bIx&VnoGuofiBqpCec?p6Uhv)k^ddd4^G&t%9 zY-k2o(470o9Kb|1c*OH30!6??u5JhP6bM<+K|&{NI5fW_YOc}VaBX4v;R9>6F}@>e b9;QD-q}la_C0C<6;P;SdHF@d*Woi9CJYZeG literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_ethereum_clone/00006.png b/tests/snapshots/nanos_transfer_ethereum_clone/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..402c20d84b73864383ebc9f5a2cc87b175f5db3a GIT binary patch literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfjh}ba4!+V0?Qpu$}+Z;wl?0GvNM-UO}LpM zky5uhal%ZHQK4dSYZ+%cwzcJ7bU5q>gz}StoRy3-c_mXaD%7>#FL-$Sd3dKc15MFpd>Y7XB)^&w=$kU2LncsOmxlb>jgobGR4RtRSIvkw{qJ) z-k{BNYMKd;QTzYAL~p5OZSof#4llR(=qVMJ($*$Ab77)uTE-4V=fhVFPUOsN*u=_P zev*f``Ha_Lh0T`?P5_w@bmoG=iJGR?wG$oFmOfn9wp(f$o7BG*4~6I6nAJ9Y(#_4S zx*0Q4Cd`zYu+#gQ-puxsHA;+6txb81;;$K;SOc`)`Eb{n3mcS-P1XR-G*4O9=9zYy zWlA>hi9IogRX%T%Vw>52vEj_tR;Wnvk2E8bnCKl>8qOS+%J|{VJNeAR_7fKhJRN>6 zWt_R(#K%Y*B*bf?@cHzid?OPZ*R-q|Qfe~~OJ_JdGiQ7n#BAiBxx@R}2R5LKwiNib zwJkq!XF{bkuSv~rHmSN0W~1w3?WueMPz z$jMOtJF#s}Y?8nbo644w2lP(7Qu7&Lh$$GG`0$>%lOd6E?`G%PjEacEho#sgfuXFQ zeWOb_8W?6gy!z_Ez}=wqxl_z;<{4*T7^Tcp+APW)4b*$#gTTy%593WQI2=|m1}X&# zr~*UES~!4j_tt_NTU!sW)0HX9eYhc;yFK@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_palm_network/00000.png b/tests/snapshots/nanos_transfer_palm_network/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..2994983f84cf76ab587bac356d5afe297c0e0632 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcyxba4!+V0?SfW}LV) zm52AlpJ_b2>@)W(0ade0N=>L#7k{_%p*K+Izf)VA1-(C=WRZ-BymEd z+ycg#=gr>vKI=O3DZ$93W?LaYQ1QY>pxO%?Y&v*&<#TnOD>)zbXF6qTB9pT3N&!&M z3dWi9&EBnj=ymuLi`0al9u7OFx80vqnaz8`W+_{Wop8XrwTVif&jYR3;ytm)i1F!7 zQ=gO!i4>qCfqpe|KCDm-Wb*LtR{=T`$TJ28kKEHk+7p0Y?mPqLwy~wK0ofM}OcabW z9iDmf0+pZOF#@XZFL)Sha%TzS%!Lnq%!RyR`IX+l PXlL+r^>bP0l+XkKp5EPW literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanos/amount_1_palm.png b/tests/snapshots/nanos_transfer_palm_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanos/amount_1_palm.png rename to tests/snapshots/nanos_transfer_palm_network/00001.png diff --git a/tests/snapshots/nanos_transfer_palm_network/00002.png b/tests/snapshots/nanos_transfer_palm_network/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..11ae75e8391d69f363be24e20c136f0ee32b13d0 GIT binary patch literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi@&ba4!+V0?Qp&`&v1#O2^* z)#v}j=g8l@cDdkcYoY6pnS>%$F{b` zI|@>Gt&L20W?nQ%abpIlU7F~gmKh->HuL_gLl;l>u%%3EyV!6h!{M18P*ySp$N;L7 zzqH{5k0j70KI!{w8E3k-waKq!oC#Fd$75t7bF@`C)bY?cP=5SXJ5Ka6+Wjt_GC6%9`D!IrY`NDl40?;i1&oe%^$OQc$deoVw}03 zQ{y~P)v7kvXQ8~^XMn+A4Ww2}O}GiP)$MTKnG6sG-b{T(V_>|+T?K~mnM)fkf6z1XW;Sw81BOR1&|&@D?$YFcvsLlQ$7&?QRF zAYZnfnGM9i5S+g#@x&fi2TR*Ey_cPDTi9+vP`{bucKb|_So<*tn4lRvUHx3vIVCg! E0D4U}bN~PV literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_palm_network/00003.png b/tests/snapshots/nanos_transfer_palm_network/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..e0420108494b969f9c050ba46e44f5c255fa1f1b GIT binary patch literal 479 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCjba4!+V0?Qpu2D;LWW?VAh6@j^#SRf&uFm zFwXq%#B9{w=J;$fTS|sRN*i0sz0}8CQWF+FG?Loq!X}xLVUg+ZOre>_$Ry@yvv#({ z#D$3yB&FD9E@T8D=fj<67CyXCFk$Cv_HcD$6NTao2`Qlbgr7n{X`pTgkimXZd`A1P z6ifi~WzFubWt`c}!~0(r$Oo#noaorrwz{H#mG^YD%?_rS3lo2q%k2qfHc~e-QTUu{ zWWr;l&bxo2L{A6 zpc$$Q&a7aZ=`S^5=FwwDTiG{fTAa{P0E+>AleTGN&Gm*eIc8!R4ry-uX+WpU0lIOs tK)|%jT%F+C5zDr1^vO-0c?+mDU$Ss>;+dSqdccTd@O1TaS?83{1OS_=#2f$s literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_palm_network/00004.png b/tests/snapshots/nanos_transfer_palm_network/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..f979f716022e2492f86f9dcc9ba56e7622cefd3e GIT binary patch literal 809 zcmXAoe@GKy7{|9(n~5hP67E%TxlI3%nCJX45Or=&tu&RQiKdN?buLSBQL_Z+{y3DG zY?{iUh`Q9wa0@{cM3O;Vb=jO)DH9u$bQ|Tj}*;XgammwB9|D81-LZ`XFR^n$fF;SI`v$~Bw#9iRXBdhZ99sk z8`td4mwb9bhHPRif?hDQUYA`V<=)BC+XvR2WdHhQH%(=F&8$W! zMzihGN~OCp&ZyB>K|(3A9qk4;oWdE&K?p9d1`WGy=_LX@LX2!min2l=M2slbD{MUb5t%PAS0uT7^VLjsV|_GCBElca4UkexH1riZL?{w_s8D zhPh}VMWu?qg17w-P`Ca1BSD&uhCu^u-mehg4xN2^R41JPWs5RGq$;lUv|0~4VA#RtV2sDi0w4xX;L}5VF-pN5>w{FKA#Ksj z(n4Y$PT<%Aoev$v98_+>(id8Y3Br!Sz#gK4J6t=cyPQhMiQAOXUrtXmk-?m1hO!Wp) dMc)c+e?_|s$wq~xc@nMwFF&VHJ)V8j@(=l|VF&;K literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_palm_network/00005.png b/tests/snapshots/nanos_transfer_palm_network/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..93c90c542343a4423166f143ee5f43f335c73b96 GIT binary patch literal 837 zcmXAo4M-DV7{_;A%@R)~MB5oQ6F(yHVLVt$ZA=)^QU zBa$mqOLSqW0}B(ikSSa-LTA~M^?~9*LQSM{U?0zWaUbu!FYohz{?G4uuQ5L_n+PNW zB@zjt%~2P?XoE+-Qws0-{S~ni2_B?XXBJwqm5I{@W!f;+L`=i;zdOFE7GI3q(@a%%ggCfQn@u^+iip^<%vKAXE_sg2^OTwK8cYgpA)QlwvHdYYcoX z2bgK!RAU5Mt$@`d>q?fj?;F7Qi1_QVD(7qn&>7r*=L5+dHSVGAOCb#lr3w}pAa_-p zlo_~48)j3Oa(4=Ih)@|!9sq;O08x*=RR=>ZP7Ur#7=~;jQXTRs>{ZCq#E)j6REz_9 zh=eA{H+q2|PIY6bIx&VnoGuofiBqpCec?p6Uhv)k^ddd4^G&t%9 zY-k2o(470o9Kb|1c*OH30!6??u5JhP6bM<+K|&{NI5fW_YOc}VaBX4v;R9>6F}@>e b9;QD-q}la_C0C<6;P;SdHF@d*Woi9CJYZeG literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_transfer_palm_network/00006.png b/tests/snapshots/nanos_transfer_palm_network/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..402c20d84b73864383ebc9f5a2cc87b175f5db3a GIT binary patch literal 567 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfjh}ba4!+V0?Qpu$}+Z;wl?0GvNM-UO}LpM zky5uhal%ZHQK4dSYZ+%cwzcJ7bU5q>gz}StoRy3-c_mXaD%7>#FL-$Sd3dKc15MFpd>Y7XB)^&w=$kU2LncsOmxlb>jgobGR4RtRSIvkw{qJ) z-k{BNYMKd;QTzYAL~p5OZSof#4llR(=qVMJ($*$Ab77)uTE-4V=fhVFPUOsN*u=_P zev*f``Ha_Lh0T`?P5_w@bmoG=iJGR?wG$oFmOfn9wp(f$o7BG*4~6I6nAJ9Y(#_4S zx*0Q4Cd`zYu+#gQ-puxsHA;+6txb81;;$K;SOc`)`Eb{n3mcS-P1XR-G*4O9=9zYy zWlA>hi9IogRX%T%Vw>52vEj_tR;Wnvk2E8bnCKl>8qOS+%J|{VJNeAR_7fKhJRN>6 zWt_R(#K%Y*B*bf?@cHzid?OPZ*R-q|Qfe~~OJ_JdGiQ7n#BAiBxx@R}2R5LKwiNib zwJkq!XF{bkuSv~rHmSN0W~1w3?WueMPz z$jMOtJF#s}Y?8nbo644w2lP(7Qu7&Lh$$GG`0$>%lOd6E?`G%PjEacEho#sgfuXFQ zeWOb_8W?6gy!z_Ez}=wqxl_z;<{4*T7^Tcp+APW)4b*$#gTTy%593WQI2=|m1}X&# zr~*UES~!4j_tt_NTU!sW)0HX9eYhc;yFK@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..e47d6482287f9d4f565681dc1111c4193eb68ef0 GIT binary patch literal 639 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfh4!x;TbZFupw)SoGM9!TBKj zw1WT4kC_8~*Q$Ga_wCfaDd=0)9bcu|d3ocC@R*mY!Y5hCwl@@A6^s4qCA2&_;)m~g z3)!xQPp729Quc)~8wDR$C|=AcDWx`ZCF9KSvPAxrf8x9+E)*FnT^)_I9UE&4KyOd;h8E> z=H8)~5-AxK{tlM1?#xE{Vt&V!oDa`#y}S`9m-etkhWEsuyu@xcsf-1UZ7UPAerWT~ zHnmxjcwOor(B}8LIjYS(M)H$>78&tRtgPhqS1&%_nhx|zM#RL(%pV~juP7Ls+?lX2 z(G}!Fpzutoyc26o)||LtaFU1jgb(it9^T13yw0GYNt_g!IU~icIB|8GXPPi5kbvG? z`Ow+uzh_#8L)xU7QWJK1gN&IZ31em4@JX8lRK_ypzvdF*tE2V@8S^DE7{CXjB8E0vG`N*$!z-8E4K1hExXAsW{U$ sCv1EVcb)N9Sulq$8z{!T-1#^Ay@+4kX*zGpfC-Di)78&qol`;+0LSVDApigX literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..b4443b629cfd8207ffb304b6c5c928971f340552 GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiG9x;TbZFupw)Sadr~#O0u| z#<_puHuA#PR{sb~2%PA8Sy6I9^q;lilPqMrtBy`xSEbr{xsXF6JojSgdX++}w%+;| zqRX8H1L7hN_nncy+HmHQL5f|5LtC4ovDAdhRPlR_XM#`ku%);$8+D(_aCjCQQxVSV z43yq%!ZY)tK}z47L)IA*M$T#OX(kFlEs{p^CJLVojDW-{y*N~JK0k9U1>ODz3T&?RNEQ-i3<}?)OfZ5Ejm15A>&MbpxC8`Gupxd zb=MlsD4HsK7T`UxXH)NdQ-xwHHpZvzY$<-nH-2y1^M_+w+vSZpeBCaClxc0UGxM`0j7)%%yxly!5JeA}C4tVe)w6M8Hu44rSB68{ zL`jftkb5UYN&&-Y@x$q$(8>e)dO73FrHK=Pe!19iW;rPQoYOKL(oX#8*` z+K2Y4n@x0pS~R65?7ZIUKJlm7%%u0QU;91mfp(? vIW?AFzXtTQ2GgmR8_fLLw-s7#+0Srf*{{+a_Dbcz1jXR#>gTe~DWM4fL(K~v literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png b/tests/snapshots/nanos_try_to_blind_sign_with_setting_disabled/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..0bef4f3a7b4f6195c1d9fc70dcd11adb9d29bb52 GIT binary patch literal 531 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWoba4!+V0?S@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/approve/nanox/review.png b/tests/snapshots/nanox_approve_dai_tokens/00000.png similarity index 100% rename from tests/snapshots/approve/nanox/review.png rename to tests/snapshots/nanox_approve_dai_tokens/00000.png diff --git a/tests/snapshots/approve/nanox/type.png b/tests/snapshots/nanox_approve_dai_tokens/00001.png similarity index 100% rename from tests/snapshots/approve/nanox/type.png rename to tests/snapshots/nanox_approve_dai_tokens/00001.png diff --git a/tests/snapshots/approve/nanox/amount.png b/tests/snapshots/nanox_approve_dai_tokens/00002.png similarity index 100% rename from tests/snapshots/approve/nanox/amount.png rename to tests/snapshots/nanox_approve_dai_tokens/00002.png diff --git a/tests/snapshots/approve/nanox/address.png b/tests/snapshots/nanox_approve_dai_tokens/00003.png similarity index 100% rename from tests/snapshots/approve/nanox/address.png rename to tests/snapshots/nanox_approve_dai_tokens/00003.png diff --git a/tests/snapshots/approve/nanox/fees.png b/tests/snapshots/nanox_approve_dai_tokens/00004.png similarity index 100% rename from tests/snapshots/approve/nanox/fees.png rename to tests/snapshots/nanox_approve_dai_tokens/00004.png diff --git a/tests/snapshots/approve/nanox/accept.png b/tests/snapshots/nanox_approve_dai_tokens/00005.png similarity index 100% rename from tests/snapshots/approve/nanox/accept.png rename to tests/snapshots/nanox_approve_dai_tokens/00005.png diff --git a/tests/snapshots/nanox_approve_dai_tokens/00006.png b/tests/snapshots/nanox_approve_dai_tokens/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%z}bL?_`?Vlf7@NKi?d+_9;jX#tp zDW-ppeOn;kgB0oPjlJ7$xJBnI*4=hd>~=ojyj0W z5B1psRLB$j(OC4d&bEs{%^h9u17;=}&geRo(ygeqZ*@`^KildV?-=~HZG;+Sb}LCb z_hW0<+r1$*PZ|8;LRQ=fJesaGy{r4w(npIvX=~|el?N~Ul=X3u)6;h$|N6U5sc4C= z7qbsp;S(76F{E(iiWL>1fraH-qW<0TAzJqwkGeh$4_Q$YRv5T*H`mnVN4ckV?GD}< z@@HLFc_7G~POqci;YCcbY_W49&}rX(+f@jQicj@E8Xlq*qBSo>55#HpIyxEXYHh9ZjXPEX zeO?(;<3FfMMVdG~a$9P)i8VU)@0WG0xeuuE8-4pZx dMUArm47O%}CQM&p5DrWy44$rjF6*2UngC9s5w`#U literal 0 HcmV?d00001 diff --git a/tests/snapshots/deposit/nanox/amount.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00002.png similarity index 100% rename from tests/snapshots/deposit/nanox/amount.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00002.png diff --git a/tests/snapshots/deposit/nanox/address.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00003.png similarity index 100% rename from tests/snapshots/deposit/nanox/address.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00003.png diff --git a/tests/snapshots/deposit/nanox/fees.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00004.png similarity index 100% rename from tests/snapshots/deposit/nanox/fees.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00004.png diff --git a/tests/snapshots/chainid/nanox/accept.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00005.png similarity index 100% rename from tests/snapshots/chainid/nanox/accept.png rename to tests/snapshots/nanox_deposit_eth_compound_blind/00005.png diff --git a/tests/snapshots/nanox_deposit_eth_compound_blind/00006.png b/tests/snapshots/nanox_deposit_eth_compound_blind/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%Eakt!T9!IV3)L~2*bfQ zPUa_n%WIxjT78iBmSggnP4d>U`i~xLe}1}9rf09rdGWZu>0oxP%z??%pMO62@l%au zU-QQHqqCoLCu_5RNXf}I+_p_3I=W}A?y+lP$=Tf-w;sK5D=8-zhw#VdkdPQHt$*I4 zqPr^${yCr=^dU1by^-8d4avGbAQNPgF}(eCqs^LSa#L(W${lmp&2} zo%%jxPKclAd##YVRqXa1Uam)7mp%&mC_8n%mY-I9Xid<(h|Hz>n&pqN3_k{eh;bPo2Nw(PZX|Ps^NA@A$W# z+I@63*VICPEz$R4`$JdsR0przp;H&UQsR5q!lKAMfj~yc!cTc0TfL6%n9enIJ>P?q zyrFYK_5~LP{RH{ruFZ~xTvNN=hpd>R6=D~-bMsN&l|B1EC;SOK>iRTKE@#anf1uyW zza#`}P49{YhM8Q>5+|Ui19yUS=xLRgF!&$aMnphj58t=qn_u6(yH}U>7%F;fAwCbM*Jf=s!PQD3enxbKvCZ%6U+p zv5wq1@oj;84^pJFH}-D3;TD~#56+dcBT*i`5FbCwt(e*)@GTkE4@M)jJ<` zO`XMT@smMRe5!qDVc^ctm=LocN5xlE1g+c=x@Yx{6(KPpdZJoD2YVm&57C+z@~^C$ zKlo!vVPN3SkQH}ALPGMiwEiz~dO9D-nHLgbckq$(iaT0*qT9Q=_B*;BRgb6PX_ za#vT^ssB+xuP*x(@^O1~O+(lG6@T`xSg|KK@TUlS!6!zb(Rrf&THCv3pIZ88SrE`E zK%0RfF}H0$_8*hMK6~NwQPdA(bcq2UP5S5IlKMxb6!o-^RKEYO ztaIS+ThF;Y<)astI>&}S-u~3;sxF*);%R!=s*riozajhI{YeuK3a?FW$eYN!W_E)sX(GF!PPtR3JN?s^*kiO&Owpc@n0&!oO1kDO;OC-buJ*8Oz$nr^XTwp0 z(s4CTAjlhoPHP8>*!qHcoPvr;0n#FEyPBNx&2gWTc2+lDU=7M9gg4q#&}zPWZWTwn zLd^Ub4L2p2(Y6DM0iR-P>|Te7M8Y#?B?qa2;e1+ z9qg8KwKeFFcm$wfcgVpF*2ndBD)VIf01R!J^NYyI(3sBZ%o=Zg<|oYq&NEGW;? zL1%?acnO%-b3C}A`#4{~f*CO5zMv;PCmH}kaF2$A8PsEd8K}675gx?rVLV7-I>7H? zMWgGcQR&oh;HU@df0L{5*6XrEJ0!$e2+P&}qiZ-`*5P_!*LzZ8cs=ki`HS*#9nwxl z|MFuqT5WMxl7Q!2Ihab)1*;aKDq5Cy30cqyCjDJxh7;Hsz8~PHa%>nF5U?2(7nu%6 z+K46bqglgM=+YgrPF9q4XlqCYIyk97x6`PMh|@;p)z$bSC|8F-u3Rq6euh@X%@X5I z&=O*nBNbQ$YC9}vG5{%ZU9X~taq4iSTMs-TTeDQ4ngHyIB?BV6?3UXSLaHOvN`b0iY`m(72i{aU z)VrjLHH>*ZHmevCc?p4hPh0!|cGRfk?cO}|x+MoLiMNEPHQ)iXOI_C3`2YIDb<1uz d`0a^(S=^af=F@HZV;8(=iZ)f1^cwg6`4t4;)vN#j literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_disable_blind_signing/00004.png b/tests/snapshots/nanox_disable_blind_signing/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..ed04d7055b319986173134768027aad73f3a9950 GIT binary patch literal 1067 zcmY*ZZ%i9y7%vmYQaZ^@j*T(sx1ld%W+g!-G;;+kt!=rM_ZYKCNt3D*L0U;D0XJgp z$c~X3%`vykn$EU&SGHL?CMA}UvRsUZiN+<08mFGQ4^3uF`(docfX{XDgO}WU&%O7& zPk#S$=SiD!ulk@`rBdxRb#*x4ISuyoX$8Lm=Wq5$D6So{6~08Z=_(N&X|{u!nn8IPsYcF@QDb6MMvW9p>yI zm@UqNdV-=6bD0-Cj-s`(>Z%S;ofKZ9@S$JCEO(#E#GvzOA|Sr?^TR5VfA|y=k@V=e zRkpX(N2M@E=$>PdEzHv{XIo% z<>>EYeT{6p^ZB};#5xSulu;N$+e4`Sv}}XdaHnvS-|U%)&S~)?tE2Ao79co;4l}DX zj0bAy0kG3EyxUO&Wt<)&0_LEIk3r)k+DdvGpg*dkI1TC%!XgIF1`n5xJ0dAoSLy-c zQK%^kfhGyGj5#Pk!${$k+VQJ}8sb+fUq`s?5gqjpRa+GWVS?f~uOYM%9rU7h!Ikp; z{Uk%Ljr?H)Tp=zUb30Z#l?6mwiAl|{%S)Hd0-V*LNyVX6%=J5`E7^9A{1LdHGYj{` z9Enk!xf_9@jqIIA9}Ge97E`g{w+c8<5LyMvH)eUBIc|_yeriT^-OQK6bSElluu5-% z_U%ED^jc%?ZchRNP?7|NlKFBRS1U#nN(0UxWR{h*C`5g;u;_ph3Z;C5gmKwRDm_i$ z_9~@8p(XDqBG3=`3@tWq`gZ~RaSmtL5-80~73y-yIgLb+7%l0- z2;@fWf=tOVNpS1ISnt}Erga-7XmuqQY-|y}n($TnG`;=Cr(QLQ9*g(P92lvs(i{bgz*JsXXG>;IrhI;HPx_k57(Cwye znwyopy=LotP5GU&i;w-VGhv8sJa0IDeQn{7TZ#SS?=rKgA8+M_~a>wU!P3!k< zvDVQ;-yB*EDQ@cRjL2lQ zXos~$BC7@1hp9{QO2I_y8-S##5bY3`eo9wSS=SiC_wbcK{gjyz$ZUknhDiuja-!J^ zp=O2}Lszt1RLgk~q}dp?iRyOFtE+Re@+9)sOQ#~qM#+Em^b-UZ*dU!fZy|KaW>q>d z-V@J%fl*z5la-ZMmfMrOSy8p{AgDl7_dkSmpoC%Rhi=S3*9v@si79IR1!4x50*T+S zunMgm(sGL=pFe=GV;Eqb$O`1)zf^MiPqAQ%1hib{PdHuDrCfmNqMJ8HI|Mx5tD@(2 zbAikv#V2OE2job2b03JScg-?NANrNgXWBQ5P;ZE)#0u3kU==eHqp2Q7=WSzUTs%t)Q%<1aun$WIXS=%8-AVW){DNtO>kLxs_Wx8nIJb68)hAHPZ3y2|vjtX_+_IRw z&?H?p3i$LO`1ipP0&Pv0m27mp>~4C+0%FEa7EORJD7CG|!@m)*zo+yhHTrXIPv{v@Yr_#w2 zGvhN;@r6iFV$ZEzqh+dMQEILzo}XL$sm*Y@?YHg29^B=wUitgo*Mj>l-+d9`JG=*f zEo0qUYq*imBTCux@2_5^^UyvatX`=Xygpw!&O`88H~H5#SW63giCI%?oq&z0!~xYu zpNg+6ICh{YzGK`dW}W!l4|9Dc1(LE+Qh^XWIiD~2(o$z>@Y}_T;>Asnh`n-RFu@&I z?{POH6C-MHXdph%yg@e6p*$3P+`y%Gn%8p)Nb4`hBLLaRDEphe3^-g<*D%Q|Wqv&1TpQ%SaxO@KIh*K+3S%N^|9OXqpi*=cBlE zANki-3TuaCx?*XKK<}2QwM&8roR%&)Ip$I>%foRS?%MoOUk-s zY-08DF%2Vxt)$dqUH!PVlFnMMR$)2DTri<|Z6+ zb;;OSBWHWyB+&3+EhDZ~@OY%{W1ielB7_a+H37?FXXz}Mb*_OCCoYk^YHv`+{xTPz7$fCS|N<(Xj=g zmVl2Mql_Cegow{4?1vF?vs)(&nb&imC7ft^D3j|bkM)4zg)|<#?6XjgFXdCV$`NRd z+XGJ@Sv~$9bmLUo%_6jtg91S!)kVbXCbHy?AhI!3%8W2>Qr(1$c5 zdTkFb=H~mMvMd6TT5G70zhMIL*(M|UKs2EoAY%b&f*SxM1qZlH2PhDz;*&;Yl}E>j z?U3Xk@h6=cG^V$>`I0GF(S45zjzrs0C4!lka-t^87zF`w@|F8F-{FZB9JV&+`Dd4Xl(bgJj JM%9Nu`45St^R)l~ literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_disable_blind_signing/00007.png b/tests/snapshots/nanox_disable_blind_signing/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8064a47bfdbfe81d8af86d445e9f677ac2d4df GIT binary patch literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_8Dba4!+V0?S!H(?JLAq-u90KkQL%Gf_h+!UY}@SD zt)WjD#8+S2u!?u}E&N1)kL%K#0bZ#G13aE8bDnK8(vtVgC~xQ%()zE&soNI%mO^ma1)_pM0y07}Me&rt3hn;QhUWb0|mKO=!>3wMKsaT z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%FywCG~?PjAc zhulIE1d*e!C}-e%6`n)uvf%ytO-l)(=(qWT zwYjZdL%)ot+V85qCsyW*bHh)zE*DLxW@kQZeK8g8%pChVez8fqT_eY8OpW)4vzzUSb1Ps?|mxjW5v%qb!cqI|Ds+0() z{KzEm4|+~Yp+QD@?`J;~nhcZNr#X7S(R7$XcKHU3!fzQq`H@&?W}@Dt8fapr|F~^E zia-^cQZP_Xf7#HRXu>c2GVL;#^38!%eqyy|S;Cc~WnVZWtr+{_7|K|?$n{E>u#+JIE>2?dB zJOUi-(D@`#lZbR7JcRJGR~;<|Xq%EjnIQYYZypDshfqlw1bgvyl3N7lHWpnOW_d@z zoFX}Y92_hFbcCl90f*27Q-D2Bm)tPC&^$_Vea1w924<<7vOXUp34z>|X(3vw(&I~l zc>kt6Vjq^|@Flmw(v+@VwpjP2w9_4JX~@W(%&|valG9NrSPa?IN)SCO`}|oAI6@(X wDz*}&o%`f6_65M^77>0!c(W-`N60a zqGcCUxYQ_gP6$vkKD2OY(W)ImGqu)*#9e&AyJE!(AJNID+(Ybw0}EHp2nku%wK6Fv z5F{NEceU3%;G^W!t}f4~>sJ7c77Z6&-gQ32M{E6yW8J|kEmnri(Ndeb^3nbUMWKa3 zmCJ$(R|Qm>Hp?%1bbrMRph@e4e)gQY9~fAfYF=jnG$vhCer3Q9!1jY5I`(h3GMfuRzjHZ}MtP}{;!vTV06<<)Ekx*$B{ zkBO*OIMDayJ3pQc`KJjqIXrOTC$P41iJbkut*16~O$|4>QP<5ib^fzs>_98{Mb)R? z_gtC;w0?z;7Emvky%OlWaG=copu(V^>qA%AST|UUi)!8ey)s~@R7}W; zZawww9xxV~<3qHzeGgk$Bo(tFBB@mL^r}i)x+cdvI>snuFW6P#xJb{8jUD Vl`wj@6POwqJYD@<);T3K0RX#&PzV43 literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanox/accept.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00005.png similarity index 100% rename from tests/snapshots/send_etc/nanox/accept.png rename to tests/snapshots/nanox_transfer_ethereum_5234_network/00005.png diff --git a/tests/snapshots/nanox_transfer_ethereum_5234_network/00006.png b/tests/snapshots/nanox_transfer_ethereum_5234_network/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%7Zd@yx<8LGD|NL^HOwMbIhRMr6+gQ$n z$QbOfoPT3l5rg{eO>DO>VIn!5Rge5qUD*pZP3XEG70O~b+m^~6IH{zir*(hjjumT?HZ15`uN79ppw7MWhwRj;G6zmJ zX}t>p31G2LNNZm)gL*#D!l%o%LhK@2Pu*plvu7pO)Rj)DzqfKt&HQjsOG`^nG(I#& z>m8U?E?O@7-eGByRLu%5(W#zGlU4=%T;=4N8nkjp$cm5{t&n?;t*5>`I2-DtRW52D z`Y}^06p>c3F!~oyse=C}`u~=Lfl0?EtEOln)H`V4z<_C!bpSXi?Gf qAj6e=CNo>yoMw7sni(PVjlVP7(D7f?IZe literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanox/amount.png b/tests/snapshots/nanox_transfer_ethereum_clone/00001.png similarity index 100% rename from tests/snapshots/send_etc/nanox/amount.png rename to tests/snapshots/nanox_transfer_ethereum_clone/00001.png diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00002.png b/tests/snapshots/nanox_transfer_ethereum_clone/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4228ae193adbfaa0a04cbc0fd31351cfaa89582b GIT binary patch literal 1298 zcmY*Ze@t6d6s}XiJYkra=ZX#6AI>egH6v}4i8`XREKsc7YkObI5>`!<2LGv0vMF8X z0B2cjMWgj*U>4wES>G#73C)I(u`RefOy2&$NMd9VaV#})nIkl2quMdgZBb+M+TLI1 zp6`6$cizXGwXuSEj!~&p73QV}JN);+_w^@B;rE9hySr7YCzi|&^|<4>J@2q{=p8P3b-rM=>x0T;ip1ToRoNRq}&t^xiGB zVo12&E4E1Gtd&!UqEeP_jHctGS(KVp!z2NLRmddcjV5^{ zols-<+?+aJjCky}L4Ule@jclvH0e@7EHUCw?KuFn_%B_D$0_Cd6d zCergsd{5#6F{78)NftJ$aFeiCN+f!t1qE3&9$1?Ib@m+!^i~SjhS|P6>>uTEK&z;MQ57jk?bHK61k%i7J-cMusPGtNou?gM9&xy5RY|I63So*X$~pRvnUAqj2bh4 zoJQEGi7;d_XqQ@ic~0m&*^b!7`AWpbA2%h~c$*=AHlQqT2C=d@=+*B8u zuAYjL4>KeP*FiP|-7kvP2dWg=x&WxETtiq$y9CODSPs~!KA4VxuyyC8i_Y?vkiu;* zN0mAhED%Qn=%6iiNbrbiyj21wz#9gTc>%QeStk2|`9p7v6-^ffR?@Hz{DG0VK?Gu5 zqu$v36mYyhuEs%4YxE7BsQv!e=hm}R#kM&XFtHGRSAu87p_69Q+Ok;ZXNrLu+I1pR0cJ4C zv1~P5|LRP3t>AhvnFwg1o0rJrg}&61M#>We^nkBk{t6oMSip~Hlj)>Wq*(@c!`)AH m+&AN~#eOH!)< literal 0 HcmV?d00001 diff --git a/tests/snapshots/send_etc/nanox/fees.png b/tests/snapshots/nanox_transfer_ethereum_clone/00003.png similarity index 100% rename from tests/snapshots/send_etc/nanox/fees.png rename to tests/snapshots/nanox_transfer_ethereum_clone/00003.png diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00004.png b/tests/snapshots/nanox_transfer_ethereum_clone/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cb8f9dc97401fd76908866c585e2855970e054 GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|`Dhba4!+V0?R!F;Cf*f#Kl2 zz`9HS>x1^Ee)QO$Vfbu^0!v}qD!w`k`M$>q(WeXTJ`~u@;XhuuVeMlEKe= zblsz=UEx}KqN4T7AKeXEai{i!%Tgzxia)bM_ATa`n%*oPvTsvYch@PPsOZ%25IgUu zb64ysVo=Xt1~b`u>dHrcsjGGb&(xZ?G6v}P_fHu7w#{EPBV^y~gWI+M5wpe3X{I-( znE_FRgX_`ywTm8U1B3SWgYMNkf_H|j2#E>N13ADC7-B&0K=|*IJ{(=SVug=rxv188 zEw!of3l|juJplBIck8LmK(EQxd^j3f6LvH`)JIEndRKht$2_|qhkz$*-qD4tTGeO+0_=QHHdzz8l2yrP6@|$#y XzklTVrji}Nw8!A->gTe~DWM4f-qkj) literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_transfer_ethereum_clone/00005.png b/tests/snapshots/nanox_transfer_ethereum_clone/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%7Zd@yx<8LGD|NL^HOwMbIhRMr6+gQ$n z$QbOfoPT3l5rg{eO>DO>VIn!5Rge5qUD*pZP3XEG70O~b+m^~6IH{zir*(hjjumT?HZ15`uN79ppw7MWhwRj;G6zmJ zX}t>p31G2LNNZm)gL*#D!l%o%LhK@2Pu*plvu7pO)Rj)DzqfKt&HQjsOG`^nG(I#& z>m8U?E?O@7-eGByRLu%5(W#zGlU4=%T;=4N8nkjp$cm5{t&n?;t*5>`I2-DtRW52D z`Y}^06p>c3F!~oyse=C}`u~=Lfl0?EtEOln)H`V4z<_C!bpSXi?Gf qAj6e=CNo>yoMw7sni(PVjlVP7(D7f?IZe literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/amount_palm.png b/tests/snapshots/nanox_transfer_palm_network/00001.png similarity index 100% rename from tests/snapshots/chainid/nanox/amount_palm.png rename to tests/snapshots/nanox_transfer_palm_network/00001.png diff --git a/tests/snapshots/nanox_transfer_palm_network/00002.png b/tests/snapshots/nanox_transfer_palm_network/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..4228ae193adbfaa0a04cbc0fd31351cfaa89582b GIT binary patch literal 1298 zcmY*Ze@t6d6s}XiJYkra=ZX#6AI>egH6v}4i8`XREKsc7YkObI5>`!<2LGv0vMF8X z0B2cjMWgj*U>4wES>G#73C)I(u`RefOy2&$NMd9VaV#})nIkl2quMdgZBb+M+TLI1 zp6`6$cizXGwXuSEj!~&p73QV}JN);+_w^@B;rE9hySr7YCzi|&^|<4>J@2q{=p8P3b-rM=>x0T;ip1ToRoNRq}&t^xiGB zVo12&E4E1Gtd&!UqEeP_jHctGS(KVp!z2NLRmddcjV5^{ zols-<+?+aJjCky}L4Ule@jclvH0e@7EHUCw?KuFn_%B_D$0_Cd6d zCergsd{5#6F{78)NftJ$aFeiCN+f!t1qE3&9$1?Ib@m+!^i~SjhS|P6>>uTEK&z;MQ57jk?bHK61k%i7J-cMusPGtNou?gM9&xy5RY|I63So*X$~pRvnUAqj2bh4 zoJQEGi7;d_XqQ@ic~0m&*^b!7`AWpbA2%h~c$*=AHlQqT2C=d@=+*B8u zuAYjL4>KeP*FiP|-7kvP2dWg=x&WxETtiq$y9CODSPs~!KA4VxuyyC8i_Y?vkiu;* zN0mAhED%Qn=%6iiNbrbiyj21wz#9gTc>%QeStk2|`9p7v6-^ffR?@Hz{DG0VK?Gu5 zqu$v36mYyhuEs%4YxE7BsQv!e=hm}R#kM&XFtHGRSAu87p_69Q+Ok;ZXNrLu+I1pR0cJ4C zv1~P5|LRP3t>AhvnFwg1o0rJrg}&61M#>We^nkBk{t6oMSip~Hlj)>Wq*(@c!`)AH m+&AN~#eOH!)< literal 0 HcmV?d00001 diff --git a/tests/snapshots/chainid/nanox/palm.png b/tests/snapshots/nanox_transfer_palm_network/00003.png similarity index 100% rename from tests/snapshots/chainid/nanox/palm.png rename to tests/snapshots/nanox_transfer_palm_network/00003.png diff --git a/tests/snapshots/chainid/nanox/fees_palm.png b/tests/snapshots/nanox_transfer_palm_network/00004.png similarity index 100% rename from tests/snapshots/chainid/nanox/fees_palm.png rename to tests/snapshots/nanox_transfer_palm_network/00004.png diff --git a/tests/snapshots/nanox_transfer_palm_network/00005.png b/tests/snapshots/nanox_transfer_palm_network/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cb8f9dc97401fd76908866c585e2855970e054 GIT binary patch literal 674 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|`Dhba4!+V0?R!F;Cf*f#Kl2 zz`9HS>x1^Ee)QO$Vfbu^0!v}qD!w`k`M$>q(WeXTJ`~u@;XhuuVeMlEKe= zblsz=UEx}KqN4T7AKeXEai{i!%Tgzxia)bM_ATa`n%*oPvTsvYch@PPsOZ%25IgUu zb64ysVo=Xt1~b`u>dHrcsjGGb&(xZ?G6v}P_fHu7w#{EPBV^y~gWI+M5wpe3X{I-( znE_FRgX_`ywTm8U1B3SWgYMNkf_H|j2#E>N13ADC7-B&0K=|*IJ{(=SVug=rxv188 zEw!of3l|juJplBIck8LmK(EQxd^j3f6LvH`)JIEndRKht$2_|qhkz$*-qD4tTGeO+0_=QHHdzz8l2yrP6@|$#y XzklTVrji}Nw8!A->gTe~DWM4f-qkj) literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_transfer_palm_network/00006.png b/tests/snapshots/nanox_transfer_palm_network/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB%RhIwN0-k_vueF+p48OEXQk*4S>p%ao#64U^PtVOjQK$*3;K zmYrzmYHn-ZO;)}HBSkS&5T~D{=A1EMkA`us)bF}8SKh0 zM8WN&!8@r7>npP7>n`?JCwrb$z1=<({CMzF)rS|AsmZmGu^;En4W}2+vSh1$CzToI zrM`~VEM-P@ZTb7jfq~J=%BEKn@gBE4(O`($SeB6`8l!ghwJgz*$%KS9ykBwPx`-8w z7NrLp({J+rVslp0ay~?ty_E8=q8g^>_~SNKU1Syxj2+oPwTP}vrsvq>>#RD`D&k&t z)Pz4e`|ip8mhw0Ml+^7_&Uw%Umq}XCv1@{oKF2|WBQN6* z?#MXt*RyRjI5aN!J>h=fgzQW-S(fOEQSiK;S3=I5eCyCI35JqxN4M}psF4f(Sl#v!AE4>>{0G(>j;OG$RGG005gJg4Nm79D;PSE?JKt)jsy zdS$x39~#p=hrQvF2$wx6R+jx8XPB*y*6jc0d_JyUPn7T5xXcDW7@;oG75WN}T>S&J Clc)0l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png b/tests/snapshots/nanox_try_to_blind_sign_with_setting_disabled/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/approve/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_approve_dai_tokens', [7, 0]); -test("Approve DAI tokens nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); + await expect(tx).resolves.toEqual({ + "r": "92243511396b65a4faa735a5472ea99b3ce0f7f2338eab426206730bc0ddc57f", + "s": "161bc0f861064d840de4f4304cfd19a571017e62df7d8f70cf605c0f025593b6", + "v": "25", + }); +})); - let tmpPath = getTmpPath(expect.getState().currentTestName); +test('[Nano X] Approve DAI tokens', zemu("nanox", async (sim, eth) => { - try { - await sim.start(sim_options_nanos); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080', + ); - let transport = await sim.getTransport(); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_approve_dai_tokens', [5, 0]); - // Token provisioning - let buffer = Buffer.from("034441496B175474E89094C44DA98B954EEDEAC495271D0F00000012000000013045022100B3AA979633284EB0F55459099333AB92CF06FDD58DC90E9C070000C8E968864C02207B10EC7D6609F51DDA53D083A6E165A0ABF3A77E13250E6F260772809B49AFF5", "hex"); - let tx = transport.send(0xe0, 0x0a, 0x00, 0x00, buffer); - - // Send transaction - buffer = Buffer.from("058000002C8000003C800000010000000000000000F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Type - filename = "type.png"; - await sim.clickRight(tmpPath + filename); - const type = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_type = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(type).toMatchSnapshot(expected_type); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([37, 146, 36, 53, 17, 57, 107, 101, 164, 250, 167, 53, 165, 71, 46, 169, 155, 60, 224, 247, 242, 51, 142, 171, 66, 98, 6, 115, 11, 192, 221, 197, 127, 22, 27, 192, 248, 97, 6, 77, 132, 13, 228, 244, 48, 76, 253, 25, 165, 113, 1, 126, 98, 223, 125, 143, 112, 207, 96, 92, 15, 2, 85, 147, 182, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - -test("Approve DAI token nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - // Token provisioning - let buffer = Buffer.from("034441496B175474E89094C44DA98B954EEDEAC495271D0F00000012000000013045022100B3AA979633284EB0F55459099333AB92CF06FDD58DC90E9C070000C8E968864C02207B10EC7D6609F51DDA53D083A6E165A0ABF3A77E13250E6F260772809B49AFF5", "hex"); - let tx = transport.send(0xe0, 0x0a, 0x00, 0x00, buffer); - - // Send transaction - buffer = Buffer.from("058000002C8000003C800000010000000000000000F869468506A8B15E0082EBEB946B175474E89094C44DA98B954EEDEAC495271D0F80B844095EA7B30000000000000000000000007D2768DE32B0B80B7A3454C06BDAC94A69DDC7A9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Type - filename = "type.png"; - await sim.clickRight(tmpPath + filename); - const type = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_type = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(type).toMatchSnapshot(expected_type); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([37, 146, 36, 53, 17, 57, 107, 101, 164, 250, 167, 53, 165, 71, 46, 169, 155, 60, 224, 247, 242, 51, 142, 171, 66, 98, 6, 115, 11, 192, 221, 197, 127, 22, 27, 192, 248, 97, 6, 77, 132, 13, 228, 244, 48, 76, 253, 25, 165, 113, 1, 126, 98, 223, 125, 143, 112, 207, 96, 92, 15, 2, 85, 147, 182, 144, 0]) - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "92243511396b65a4faa735a5472ea99b3ce0f7f2338eab426206730bc0ddc57f", + "s": "161bc0f861064d840de4f4304cfd19a571017e62df7d8f70cf605c0f025593b6", + "v": "25", + }); +})); diff --git a/tests/src/blind_compound_deposit.test.js b/tests/src/blind_compound_deposit.test.js new file mode 100644 index 0000000..537ed8d --- /dev/null +++ b/tests/src/blind_compound_deposit.test.js @@ -0,0 +1,37 @@ +import "core-js/stable"; +import "regenerator-runtime/runtime"; +import { waitForAppScreen, zemu } from './test.fixture'; + +test('[Nano S] Deposit ETH on compound, blind sign', zemu("nanos", async (sim, eth) => { + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f897430000000000000000000000000000000000000000000000000000000000000000018080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_deposit_eth_compound_blind', [7, 0]); + + await expect(tx).resolves.toEqual({ + "r": "b5ae3a011eb50e7d1fe9f5e6f6d91ca9f4dfca5f73805fc4866d49e72ead2f5c", + "s": "3c6e55db5925586bb58e434b58b2c04756f662131597f98c1aa2418b16992b81", + "v": "26", + }); +})); + +test('[Nano X] Deposit ETH on compound, blind sign', zemu("nanox", async (sim, eth) => { + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f897430000000000000000000000000000000000000000000000000000000000000000018080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_deposit_eth_compound_blind', [5, 0]); + + await expect(tx).resolves.toEqual({ + "r": "b5ae3a011eb50e7d1fe9f5e6f6d91ca9f4dfca5f73805fc4866d49e72ead2f5c", + "s": "3c6e55db5925586bb58e434b58b2c04756f662131597f98c1aa2418b16992b81", + "v": "26", + }); +})); diff --git a/tests/src/chainid.test.js b/tests/src/chainid.test.js index e62da55..7461c83 100644 --- a/tests/src/chainid.test.js +++ b/tests/src/chainid.test.js @@ -1,370 +1,71 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer on network 112233445566 on Ethereum', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/chainid/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_112233445566_network', [9, 0]); -test("Transfer on network 112233445566 on Ethereum nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); + await expect(tx).resolves.toEqual({ + "r": "509981d8dfb66757e25ff47c009b9b5bc5db0f169473e4735f5212b144f1c069", + "s": "5db989d81025de3c846e41a9ce01a3f9fd0982e2d827f1b88ffc95d73a48d04c", + "v": "344344f19f", + }); +})); - try { - await sim.start(sim_options_nanos); +test('[Nano S] Transfer on palm network on Ethereum', zemu("nanos", async (sim, eth) => { - let transport = await sim.getTransport(); - let eth = new Eth(transport); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080', + ); - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080" - ) - let filename; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_palm_network', [9, 0]); - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); + await expect(tx).resolves.toEqual({ + "r": "946700c4972b3da24ddaa95e590ad25a8f905da62e2bd053285a4cc17f93f490", + "s": "3698e84564e58477a49f7a9cea572ef5d672a5538db08f3ee42df5eb75a1b907", + "v": "0542b8613d", + }); +})); - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); +test('[Nano X] Transfer on network 112233445566 on Ethereum', zemu("nanox", async (sim, eth) => { - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080', + ); - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_112233445566_network', [5, 0]); - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); + await expect(tx).resolves.toEqual({ + "r": "509981d8dfb66757e25ff47c009b9b5bc5db0f169473e4735f5212b144f1c069", + "s": "5db989d81025de3c846e41a9ce01a3f9fd0982e2d827f1b88ffc95d73a48d04c", + "v": "344344f19f", + }); +})); - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); +test('[Nano X] Transfer on palm network on Ethereum', zemu("nanox", async (sim, eth) => { - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080', + ); - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(network).toMatchSnapshot(expected_network); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_palm_network', [5, 0]); - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "31fca443b3cad62f3ce18e287f3cf4892ac2669379cc21b5cf198561f0511d1e", - "s": "3cf21485cd8b86e1acddbcc641e16a3efad18aaeb5ae96a650f1a8b291078494", - "v": "344344f1a0", - } - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on palm network on Ethereum nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - let eth = new Eth(transport); - - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080" - ); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1_palm.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Network - filename = "palm.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees_palm.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "f9b5d903c47c34027156e869bda5aa002233d6cca583ad53d125612fc0795f3b", - "s": "00da038129414e5ae6f7c1529c6067e82484e3694c84c16d575e77162f631c27", - "v": "0542b8613d", - } - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on network 112233445566 on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let eth = new Eth(transport); - - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf6181880851a21a278be8080" - ) - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "31fca443b3cad62f3ce18e287f3cf4892ac2669379cc21b5cf198561f0511d1e", - "s": "3cf21485cd8b86e1acddbcc641e16a3efad18aaeb5ae96a650f1a8b291078494", - "v": "344344f1a0", - } - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on palm network on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let eth = new Eth(transport); - - // Send transaction - let tx = eth.signTransaction( - "44'/60'/0'/0/0", - "f044850306dc4200825208945a321744667052affa8386ed49e00ef223cbffc3876f9c9e7bf61818808502a15c308d8080" - ); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount_palm.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network - filename = "palm.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees_palm.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - { - "r": "f9b5d903c47c34027156e869bda5aa002233d6cca583ad53d125612fc0795f3b", - "s": "00da038129414e5ae6f7c1529c6067e82484e3694c84c16d575e77162f631c27", - "v": "0542b8613d", - } - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "946700c4972b3da24ddaa95e590ad25a8f905da62e2bd053285a4cc17f93f490", + "s": "3698e84564e58477a49f7a9cea572ef5d672a5538db08f3ee42df5eb75a1b907", + "v": "0542b8613d", + }); +})); \ No newline at end of file diff --git a/tests/src/contract_data_warning.test.js b/tests/src/contract_data_warning.test.js new file mode 100644 index 0000000..33fd434 --- /dev/null +++ b/tests/src/contract_data_warning.test.js @@ -0,0 +1,38 @@ +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +import { expect } from "../jest"; +import { TransportStatusError } from "@ledgerhq/errors"; +import { waitForAppScreen, zemu } from './test.fixture'; +import Zemu from '@zondax/zemu'; + +test('[Nano S] Try to blind sign with setting disabled', zemu("nanos", async (sim, eth) => { + // disable blind signing + await sim.navigateAndCompareSnapshots('.', 'nanos_disable_blind_signing', [2, 0, 0, 3, 0]); + + // we can't use eth.signTransaction because it detects that contract data is disabled and fails early + let transport = await sim.getTransport(); + let buffer = Buffer.from("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080", "hex"); + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + + await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); + + await Zemu.sleep(1000); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_try_to_blind_sign_with_setting_disabled', [1, 0]); +})); + +test('[Nano X] Try to blind sign with setting disabled', zemu("nanox", async (sim, eth) => { + // disable blind signing + await sim.navigateAndCompareSnapshots('.', 'nanox_disable_blind_signing', [2, 0, 0, 3, 0]); + + // we can't use eth.signTransaction because it detects that contract data is disabled and fails early + let transport = await sim.getTransport(); + let buffer = Buffer.from("058000002c8000003c800000010000000000000000f849208506fc23ac008303dc3194f650c3d88d12db855b8bf7d11be6c55a4e07dcc980a4a1712d6800000000000000000000000000000000000000000000000000000000000acbc7018080", "hex"); + let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + + await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); + + await Zemu.sleep(1000); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_try_to_blind_sign_with_setting_disabled', [0]); +})); \ No newline at end of file diff --git a/tests/src/deposit.test.js b/tests/src/deposit.test.js deleted file mode 100644 index 2aa054d..0000000 --- a/tests/src/deposit.test.js +++ /dev/null @@ -1,171 +0,0 @@ -import "core-js/stable"; -import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; - -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); - -// Adapt this prefix. -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/deposit/"; - -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; - -test("Deposit ETH nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002c8000003c800000010000000000000000f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f8974300000000000000000000000000000000", "hex"); - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - buffer = Buffer.from("00000000000000000000000000000000018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x80, 0x00, buffer); - - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Data present - filename = "data_present.png"; - await sim.clickRight(tmpPath + filename); - const data_present = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_data_present = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(data_present).toMatchSnapshot(expected_data_present); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([38, 181, 174, 58, 1, 30, 181, 14, 125, 31, 233, 245, 230, 246, 217, 28, 169, 244, 223, 202, 95, 115, 128, 95, 196, 134, 109, 73, 231, 46, 173, 47, 92, 60, 110, 85, 219, 89, 37, 88, 107, 181, 142, 67, 75, 88, 178, 192, 71, 86, 246, 98, 19, 21, 151, 249, 140, 26, 162, 65, 139, 22, 153, 43, 129, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - -test("Deposit ETH nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002c8000003c800000010000000000000000f8924685028fa6ae008306599594cc9a0b7c43dc2a5f023bb9b738e45b0ef6b06e0488016345785d8a0000b864474cf53d0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a900000000000000000000000070bc641723fad48be2df6cf63dc6270ee2f8974300000000000000000000000000000000", "hex"); - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - buffer = Buffer.from("00000000000000000000000000000000018080", "hex"); - tx = transport.send(0xe0, 0x04, 0x80, 0x00, buffer); - - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Data present - filename = "data_present.png"; - await sim.clickRight(tmpPath + filename); - const data_present = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_data_present = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(data_present).toMatchSnapshot(expected_data_present); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([38, 181, 174, 58, 1, 30, 181, 14, 125, 31, 233, 245, 230, 246, 217, 28, 169, 244, 223, 202, 95, 115, 128, 95, 196, 134, 109, 73, 231, 46, 173, 47, 92, 60, 110, 85, 219, 89, 37, 88, 107, 181, 142, 67, 75, 88, 178, 192, 71, 86, 246, 98, 19, 21, 151, 249, 140, 26, 162, 65, 139, 22, 153, 43, 129, 144, 0]) - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file diff --git a/tests/src/eip1559.test.js b/tests/src/eip1559.test.js index 4ad9427..10831c6 100644 --- a/tests/src/eip1559.test.js +++ b/tests/src/eip1559.test.js @@ -1,152 +1,39 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer eip1559', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/eip1559/"; + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + '02f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_eip1559', [6, 0]); -test("Transfer nanos eip1559", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); + await expect(tx).resolves.toEqual({ + "r": "3d6dfabc6c52374bfa34cb2c433856a0bcd9484870dd1b50249f7164a5fce052", + "s": "0548a774dd0b63930d83cb2e1a836fe3ef24444e8b758b00585d9a076c0e98a8", + "v": "01" + }); - try { - await sim.start(sim_options_nanos); +})); - let transport = await sim.getTransport(); +test('[Nano X] Transfer eip1559', zemu("nanox", async (sim, eth) => { - // From this test: https://github.com/ethereum/tests/blob/5d534e37b80e9310e8c7751f805ca481a451123e/GeneralStateTests/stEIP1559/outOfFunds.json#L35 - let buffer = Buffer.from("058000002c8000003c80000000000000000000000002f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830", "hex"); + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + '02f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830', + ); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_eip1559', [4, 0]); - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); + await expect(tx).resolves.toEqual({ + "r": "3d6dfabc6c52374bfa34cb2c433856a0bcd9484870dd1b50249f7164a5fce052", + "s": "0548a774dd0b63930d83cb2e1a836fe3ef24444e8b758b00585d9a076c0e98a8", + "v": "01" + }); - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([1, 61, 109, 250, 188, 108, 82, 55, 75, 250, 52, 203, 44, 67, 56, 86, 160, 188, 217, 72, 72, 112, 221, 27, 80, 36, 159, 113, 100, 165, 252, 224, 82, 5, 72, 167, 116, 221, 11, 99, 147, 13, 131, 203, 46, 26, 131, 111, 227, 239, 36, 68, 78, 139, 117, 139, 0, 88, 93, 154, 7, 108, 14, 152, 168, 144, 0])); - } finally { - await sim.close(); - } -}); - -test("Transfer nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - // From this test: https://github.com/ethereum/tests/blob/5d534e37b80e9310e8c7751f805ca481a451123e/GeneralStateTests/stEIP1559/outOfFunds.json#L35 - let buffer = Buffer.from("058000002c8000003c80000000000000000000000002f87001018502540be4008502540be40086246139ca800094cccccccccccccccccccccccccccccccccccccccc8000c001a0e07fb8a64ea3786c9a6649e54429e2786af3ea31c6d06165346678cf8ce44f9ba00e4a0526db1e905b7164a858fd5ebd2f1759e22e6955499448bd276a6aa62830", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([1, 61, 109, 250, 188, 108, 82, 55, 75, 250, 52, 203, 44, 67, 56, 86, 160, 188, 217, 72, 72, 112, 221, 27, 80, 36, 159, 113, 100, 165, 252, 224, 82, 5, 72, 167, 116, 221, 11, 99, 147, 13, 131, 203, 46, 26, 131, 111, 227, 239, 36, 68, 78, 139, 117, 139, 0, 88, 93, 154, 7, 108, 14, 152, 168, 144, 0])); - } finally { - await sim.close(); - } -}); \ No newline at end of file +})); \ No newline at end of file diff --git a/tests/src/generic.js b/tests/src/generic.js deleted file mode 100644 index dff7566..0000000 --- a/tests/src/generic.js +++ /dev/null @@ -1,53 +0,0 @@ -import fs from "fs"; - -const sim_options_nanos = { - model: "nanos", - logging: true, - start_delay: 2000, - X11: true, - custom: "", -}; - -const sim_options_nanox = { - model: "nanox", - logging: true, - start_delay: 2000, - X11: true, - custom: "", -}; - -const Resolve = require("path").resolve; -const NANOS_ELF_PATH = Resolve("elfs/ethereum_nanos.elf"); -const NANOX_ELF_PATH = Resolve("elfs/ethereum_nanox.elf"); - -const NANOS_ETH_LIB = { "Ethereum": NANOS_ELF_PATH }; -const NANOX_ETH_LIB = { "Ethereum": NANOX_ELF_PATH }; - -const NANOS_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanos.elf"); -const NANOX_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanox.elf"); - -const TIMEOUT = 1000000; - -const getTmpPath = (testName) => { - let date = new Date(); - let tmpPath = `snapshots/tmp/${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}@${testName}/`; - fs.mkdir(tmpPath, { recursive:true }, (err) => { - if(err) { - console.log("couldn't create tmp folder at path: " + tmpPath) - } - }); - return tmpPath; -} - -module.exports = { - NANOS_ELF_PATH, - NANOX_ELF_PATH, - NANOS_ETH_LIB, - NANOX_ETH_LIB, - NANOS_CLONE_ELF_PATH, - NANOX_CLONE_ELF_PATH, - sim_options_nanos, - sim_options_nanox, - TIMEOUT, - getTmpPath, -} \ No newline at end of file diff --git a/tests/src/send.test.js b/tests/src/send.test.js index 1ba03de..b71ad53 100644 --- a/tests/src/send.test.js +++ b/tests/src/send.test.js @@ -1,332 +1,71 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer Ether on Ethereum app', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_ethereum', [8, 0]); -test("Transfer Ether on Ethereum app nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); + await expect(tx).resolves.toEqual({ + "r": "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49", + "s": "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd", + "v": "26", + }); +})); - try { - await sim.start(sim_options_nanos); +test('[Nano S] Transfer Ether on network 5234 on Ethereum app', zemu("nanos", async (sim, eth) => { - let transport = await sim.getTransport(); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080", "hex"); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_ethereum_5234_network', [9, 0]); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; + await expect(tx).resolves.toEqual({ + "r": "07a7982dfd16360c96a03467877d0cf9c36f799deff4dace250cdb18e28a3b90", + "s": "773318a93da2e32c1cf308ddd6add1e8c0d285973e541520a05fb4dc720e4fb1", + "v": "2908", + }); +})); - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); +test('[Nano X] Transfer Ether on Ethereum app', zemu("nanox", async (sim, eth) => { - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080', + ); - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_ethereum', [4, 0]); - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); + await expect(tx).resolves.toEqual({ + "r": "6f389d15320f0501383526ed03de917c14212716f09a262dbc98431086a5db49", + "s": "0dc994b7b97230bb35fdf6fec2f4d8ff4cfb8bfeb2a652c364c738ff033c05dd", + "v": "26", + }); +})); - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); +test('[Nano X] Transfer Ether on network 5234 on Ethereum app', zemu("nanox", async (sim, eth) => { - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_ethereum_5234_network', [5, 0]); - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on network 5234 on Ethereum nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from("08f3449bbc245669e26dd076986e11aa3117e2405ffe2ddc7a7e220f81326fbd91150515605c78119367be311345e9ff40c4e4ddb9ec0fd81f37035c3828f4c8b29000", 'hex') - ); - } finally { - await sim.close(); - } -}); - -test("Transfer Ether on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880018080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([ 38, 111, 56, 157, 21, 50, 15, 5, 1, 56, 53, 38, 237, 3, 222, 145, 124, 20, 33, 39, 22, 240, 154, 38, 45, 188, 152, 67, 16, 134, 165, 219, 73, 13, 201, 148, 183, 185, 114, 48, 187, 53, 253, 246, 254, 194, 244, 216, 255, 76, 251, 139, 254, 178, 166, 82, 195, 100, 199, 56, 255, 3, 60, 5, 221, 144, 0]) - ); - } finally { - await sim.close(); - } -}); - - -test("Transfer on network 5234 on Ethereum nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const network = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_network = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(network).toMatchSnapshot(expected_network); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from("08f3449bbc245669e26dd076986e11aa3117e2405ffe2ddc7a7e220f81326fbd91150515605c78119367be311345e9ff40c4e4ddb9ec0fd81f37035c3828f4c8b29000", 'hex') - ); - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "07a7982dfd16360c96a03467877d0cf9c36f799deff4dace250cdb18e28a3b90", + "s": "773318a93da2e32c1cf308ddd6add1e8c0d285973e541520a05fb4dc720e4fb1", + "v": "2908", + }); +})); diff --git a/tests/src/send_bsc.test.js b/tests/src/send_bsc.test.js index 8339b69..4e1bfa9 100644 --- a/tests/src/send_bsc.test.js +++ b/tests/src/send_bsc.test.js @@ -1,182 +1,37 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; -import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; -import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; -import { expect } from "../jest"; +import { waitForAppScreen, zemu } from './test.fixture'; -const {NANOS_ELF_PATH, NANOX_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +test('[Nano S] Transfer bsc', zemu("nanos", async (sim, eth) => { -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send_bsc/"; + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080', + ); -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_bsc', [9, 0]); + await expect(tx).resolves.toEqual({ + "r": "f667cc34e9815df4f052fb3463cdbe355fff5c1acf4e919b3539806521a059ad", + "s": "6b35492b7108d9d9e1cc7aede536ed6b3173197b56dd873cbc3b43e041d6f407", + "v": "93", + }); +})); -test("Transfer bsc nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); +test('[Nano X] Transfer bsc', zemu("nanox", async (sim, eth) => { - try { - await sim.start(sim_options_nanos); + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080', + ); - let transport = await sim.getTransport(); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_bsc', [5, 0]); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Network name - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const chainid = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_chainid = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(chainid).toMatchSnapshot(expected_chainid); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([147, 246, 103, 204, 52, 233, 129, 93, 244, 240, 82, 251, 52, 99, 205, 190, 53, 95, 255, 92, 26, 207, 78, 145, 155, 53, 57, 128, 101, 33, 160, 89, 173, 107, 53, 73, 43, 113, 8, 217, 217, 225, 204, 122, 237, 229, 54, 237, 107, 49, 115, 25, 123, 86, 221, 135, 60, 188, 59, 67, 224, 65, 214, 244, 7, 144, 0]), - ); - - } finally { - await sim.close(); - } -}); - -test("Transfer bsc nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_ELF_PATH); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB0185012A05F200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF6181880388080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Network name - filename = "network.png"; - await sim.clickRight(tmpPath + filename); - const chainid = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_chainid = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(chainid).toMatchSnapshot(expected_chainid); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from([147, 246, 103, 204, 52, 233, 129, 93, 244, 240, 82, 251, 52, 99, 205, 190, 53, 95, 255, 92, 26, 207, 78, 145, 155, 53, 57, 128, 101, 33, 160, 89, 173, 107, 53, 73, 43, 113, 8, 217, 217, 225, 204, 122, 237, 229, 54, 237, 107, 49, 115, 25, 123, 86, 221, 135, 60, 188, 59, 67, 224, 65, 214, 244, 7, 144, 0]), - ); - - } finally { - await sim.close(); - } -}); \ No newline at end of file + await expect(tx).resolves.toEqual({ + "r": "f667cc34e9815df4f052fb3463cdbe355fff5c1acf4e919b3539806521a059ad", + "s": "6b35492b7108d9d9e1cc7aede536ed6b3173197b56dd873cbc3b43e041d6f407", + "v": "93", + }); +})); \ No newline at end of file diff --git a/tests/src/send_etc.test.js b/tests/src/send_etc.test.js index 0407144..5a2d76c 100644 --- a/tests/src/send_etc.test.js +++ b/tests/src/send_etc.test.js @@ -1,109 +1,13 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; import Eth from "@ledgerhq/hw-app-eth"; -import { byContractAddress } from "@ledgerhq/hw-app-eth/erc20"; import Zemu from "@zondax/zemu"; -import { TransportStatusError } from "@ledgerhq/errors"; +import { EthAppPleaseEnableContractData } from "@ledgerhq/errors"; import { expect } from "../jest"; -const {NANOS_ETH_LIB, NANOX_ETH_LIB, NANOS_CLONE_ELF_PATH, NANOX_CLONE_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT, getTmpPath} = require("generic.js"); +import { waitForAppScreen, NANOS_ETH_LIB, NANOX_ETH_LIB, NANOS_CLONE_ELF_PATH, NANOX_CLONE_ELF_PATH, sim_options_nanos, sim_options_nanox, TIMEOUT} from './test.fixture'; -const ORIGINAL_SNAPSHOT_PATH_PREFIX = "snapshots/send_etc/"; - -const ORIGINAL_SNAPSHOT_PATH_NANOS = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanos/"; -const ORIGINAL_SNAPSHOT_PATH_NANOX = ORIGINAL_SNAPSHOT_PATH_PREFIX + "nanox/"; - - -test("Transfer on Ethereum clone app nanos", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOS_CLONE_ELF_PATH, NANOS_ETH_LIB); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanos); - - let transport = await sim.getTransport(); - - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount 1/3 - filename = "amount_1.png"; - await sim.clickRight(tmpPath + filename); - const amount_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_1).toMatchSnapshot(expected_amount_1); - - // Amount 2/3 - filename = "amount_2.png"; - await sim.clickRight(tmpPath + filename); - const amount_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_2).toMatchSnapshot(expected_amount_2); - - // Amount 3/3 - filename = "amount_3.png"; - await sim.clickRight(tmpPath + filename); - const amount_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(amount_3).toMatchSnapshot(expected_amount_3); - - // Address 1/3 - filename = "address_1.png"; - await sim.clickRight(tmpPath + filename); - const address_1 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_1 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_1).toMatchSnapshot(expected_address_1); - - // Address 2/3 - filename = "address_2.png"; - await sim.clickRight(tmpPath + filename); - const address_2 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_2 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_2).toMatchSnapshot(expected_address_2); - - // Address 3/3 - filename = "address_3.png"; - await sim.clickRight(tmpPath + filename); - const address_3 = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address_3 = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(address_3).toMatchSnapshot(expected_address_3); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOS + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - await expect(tx).resolves.toEqual( - Buffer.from("9e52b80e10cb82f3dc8345005e3da3f9cae1fb3f2b9a5df05b7cedba786c685fed381875af27d121beaa9efd8a7450975f9d45a26ba5aa331b7a8b26bcce95e6d09000", 'hex') - ); - } finally { - await sim.close(); - } -}); - -test("Transfer on network 5234 on Ethereum clone nanos", async () => { +test("[Nano S] Transfer on Ethereum clone app", async () => { jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOS_CLONE_ELF_PATH, NANOS_ETH_LIB); @@ -112,81 +16,51 @@ test("Transfer on network 5234 on Ethereum clone nanos", async () => { let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); + const eth = new Eth(transport); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - - await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); - - } finally { - await sim.close(); - } -}); - -test("Transfer on Ethereum clone nanox", async () => { - jest.setTimeout(TIMEOUT); - const sim = new Zemu(NANOX_CLONE_ELF_PATH, NANOX_ETH_LIB); - let tmpPath = getTmpPath(expect.getState().currentTestName); - - try { - await sim.start(sim_options_nanox); - - let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080", "hex"); - - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); - let filename; - - await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); - // Review tx - filename = "review.png"; - await sim.snapshot(tmpPath + filename); - const review = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_review = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(review).toMatchSnapshot(expected_review); - - // Amount - filename = "amount.png"; - await sim.clickRight(tmpPath + filename); - const amount = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_amount = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(amount).toMatchSnapshot(expected_amount); - - // Address - filename = "address.png"; - await sim.clickRight(tmpPath + filename); - const address = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_address = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(address).toMatchSnapshot(expected_address); - - // Max Fees - filename = "fees.png"; - await sim.clickRight(tmpPath + filename); - const fees = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_fees = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(fees).toMatchSnapshot(expected_fees); - - // Accept - filename = "accept.png"; - await sim.clickRight(tmpPath + filename); - const accept = Zemu.LoadPng2RGB(tmpPath + filename); - const expected_accept = Zemu.LoadPng2RGB(ORIGINAL_SNAPSHOT_PATH_NANOX + filename); - expect(accept).toMatchSnapshot(expected_accept); - - await sim.clickBoth(); - - await expect(tx).resolves.toEqual( - Buffer.from("9e52b80e10cb82f3dc8345005e3da3f9cae1fb3f2b9a5df05b7cedba786c685fed381875af27d121beaa9efd8a7450975f9d45a26ba5aa331b7a8b26bcce95e6d09000", 'hex') + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080', ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_transfer_ethereum_clone', [8, 0]); + + await expect(tx).resolves.toEqual({ + "r": "60df850d297e355596f87dc313a742032de4b59c5579186b3d59bdf31402fec0", + "s": "23c3a2beacabc1943d487a2e1d545e4c46c718b1e70e9d1c11a98828c9338927", + "v": "9e", + }); } finally { await sim.close(); } }); +test("[Nano S] Transfer on network 5234 on Ethereum clone", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOS_CLONE_ELF_PATH, NANOS_ETH_LIB); -test("Transfer on network 5234 on Ethereum clone nanox", async () => { + try { + await sim.start(sim_options_nanos); + + let transport = await sim.getTransport(); + + const eth = new Eth(transport); + + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); + + await expect(tx).rejects.toEqual(new EthAppPleaseEnableContractData( + "Please enable Contract data on the Ethereum app Settings" + )); + } finally { + await sim.close(); + } +}); + +test("[Nano X] Transfer on Ethereum clone app", async () => { jest.setTimeout(TIMEOUT); const sim = new Zemu(NANOX_CLONE_ELF_PATH, NANOX_ETH_LIB); @@ -195,12 +69,45 @@ test("Transfer on network 5234 on Ethereum clone nanox", async () => { let transport = await sim.getTransport(); - let buffer = Buffer.from("058000002C8000003C800000010000000000000000EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080", "hex"); + const eth = new Eth(transport); - // Send transaction - let tx = transport.send(0xe0, 0x04, 0x00, 0x00, buffer); + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'EB44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818803D8080', + ); - await expect(tx).rejects.toEqual(new TransportStatusError(0x6a80)); + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_transfer_ethereum_clone', [4, 0]); + + await expect(tx).resolves.toEqual({ + "r": "60df850d297e355596f87dc313a742032de4b59c5579186b3d59bdf31402fec0", + "s": "23c3a2beacabc1943d487a2e1d545e4c46c718b1e70e9d1c11a98828c9338927", + "v": "9e", + }); + } finally { + await sim.close(); + } +}); + +test("[Nano X] Transfer on network 5234 on Ethereum clone", async () => { + jest.setTimeout(TIMEOUT); + const sim = new Zemu(NANOX_CLONE_ELF_PATH, NANOX_ETH_LIB); + + try { + await sim.start(sim_options_nanox); + + let transport = await sim.getTransport(); + + const eth = new Eth(transport); + + const tx = eth.signTransaction( + "44'/60'/0'/0/0", + 'ED44850306DC4200825208945A321744667052AFFA8386ED49E00EF223CBFFC3876F9C9E7BF61818808214728080', + ); + + await expect(tx).rejects.toEqual(new EthAppPleaseEnableContractData( + "Please enable Contract data on the Ethereum app Settings" + )); } finally { await sim.close(); } diff --git a/tests/src/test.fixture.js b/tests/src/test.fixture.js new file mode 100644 index 0000000..fcad8f7 --- /dev/null +++ b/tests/src/test.fixture.js @@ -0,0 +1,75 @@ +import Zemu from '@zondax/zemu'; +import Eth from '@ledgerhq/hw-app-eth'; + +const transactionUploadDelay = 60000; + +async function waitForAppScreen(sim) { + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot(), transactionUploadDelay); +} + +const sim_options_nanos = { + model: 'nanos', + logging: true, + X11: true, + startDelay: 5000, + custom: '', +}; + +const sim_options_nanox = { + model: 'nanox', + logging: true, + X11: true, + startDelay: 5000, + custom: '', +}; + +const Resolve = require('path').resolve; + +const NANOS_ELF_PATH = Resolve('elfs/ethereum_nanos.elf'); +const NANOX_ELF_PATH = Resolve('elfs/ethereum_nanox.elf'); + +const NANOS_ETH_LIB = { "Ethereum": NANOS_ELF_PATH }; +const NANOX_ETH_LIB = { "Ethereum": NANOX_ELF_PATH }; + +const NANOS_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanos.elf"); +const NANOX_CLONE_ELF_PATH = Resolve("elfs/ethereum_classic_nanox.elf"); + +const TIMEOUT = 1000000; + +function zemu(device, func) { + return async () => { + jest.setTimeout(TIMEOUT); + let zemu_args; + let sim_options; + if(device === "nanos") { + zemu_args = [NANOS_ELF_PATH]; + sim_options = sim_options_nanos; + } + else { + zemu_args = [NANOX_ELF_PATH]; + sim_options = sim_options_nanox; + } + const sim = new Zemu(...zemu_args); + try { + await sim.start(sim_options); + const transport = await sim.getTransport(); + await func(sim, new Eth(transport)); + } finally { + await sim.close(); + } + }; +} + +module.exports = { + zemu, + waitForAppScreen, + NANOS_ELF_PATH, + NANOX_ELF_PATH, + NANOS_ETH_LIB, + NANOX_ETH_LIB, + NANOS_CLONE_ELF_PATH, + NANOX_CLONE_ELF_PATH, + sim_options_nanos, + sim_options_nanox, + TIMEOUT +} \ No newline at end of file From fb7204fb6cc136e3218cf52c6402ffb231ca2c11 Mon Sep 17 00:00:00 2001 From: Jean P <10632523+TamtamHero@users.noreply.github.com> Date: Wed, 29 Sep 2021 18:39:10 +0200 Subject: [PATCH 7/9] Fix fees overwrite in starkware plugin (#198) * increase display buffer size to handle Starkware master key and control size when using snprintf * Bump version 1.9.6 * Fix broken tests * Add first starkware tests * Add some constants for starkware * Update CHANGELOG.md --- CHANGELOG.md | 6 ++ Makefile | 2 +- src/shared_context.h | 2 +- src_plugins/starkware/starkware_plugin.c | 47 ++++++++++--- .../nanos_disable_blind_signing/00001.png | Bin 446 -> 344 bytes .../nanos_starkware_usdt_deposit/00000.png | Bin 0 -> 541 bytes .../nanos_starkware_usdt_deposit/00001.png | Bin 0 -> 530 bytes .../nanos_starkware_usdt_deposit/00002.png | Bin 0 -> 829 bytes .../nanos_starkware_usdt_deposit/00003.png | Bin 0 -> 809 bytes .../nanos_starkware_usdt_deposit/00004.png | Bin 0 -> 622 bytes .../nanos_starkware_usdt_deposit/00005.png | Bin 0 -> 774 bytes .../nanos_starkware_usdt_deposit/00006.png | Bin 0 -> 882 bytes .../nanos_starkware_usdt_deposit/00007.png | Bin 0 -> 884 bytes .../nanos_starkware_usdt_deposit/00008.png | Bin 0 -> 759 bytes .../nanos_starkware_usdt_deposit/00009.png | Bin 0 -> 452 bytes .../nanos_starkware_usdt_deposit/00010.png | Bin 0 -> 458 bytes .../nanos_starkware_usdt_deposit/00011.png | Bin 0 -> 401 bytes .../nanos_starkware_usdt_deposit/00012.png | Bin 0 -> 586 bytes .../nanos_starkware_usdt_deposit/00013.png | Bin 0 -> 582 bytes .../nanos_starkware_usdt_deposit/00014.png | Bin 0 -> 531 bytes .../nanox_disable_blind_signing/00001.png | Bin 539 -> 439 bytes .../nanox_starkware_usdt_deposit/00000.png | Bin 0 -> 636 bytes .../nanox_starkware_usdt_deposit/00001.png | Bin 0 -> 651 bytes .../nanox_starkware_usdt_deposit/00002.png | Bin 0 -> 1240 bytes .../nanox_starkware_usdt_deposit/00003.png | Bin 0 -> 1557 bytes .../nanox_starkware_usdt_deposit/00004.png | Bin 0 -> 914 bytes .../nanox_starkware_usdt_deposit/00005.png | Bin 0 -> 588 bytes .../nanox_starkware_usdt_deposit/00006.png | Bin 0 -> 568 bytes .../nanox_starkware_usdt_deposit/00007.png | Bin 0 -> 511 bytes .../nanox_starkware_usdt_deposit/00008.png | Bin 0 -> 716 bytes .../nanox_starkware_usdt_deposit/00009.png | Bin 0 -> 674 bytes .../nanox_starkware_usdt_deposit/00010.png | Bin 0 -> 628 bytes tests/src/contract_data_warning.test.js | 4 +- tests/src/starkware.test.js | 65 ++++++++++++++++++ 34 files changed, 112 insertions(+), 14 deletions(-) create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00000.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00001.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00002.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00003.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00004.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00005.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00006.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00007.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00008.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00009.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00010.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00011.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00012.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00013.png create mode 100644 tests/snapshots/nanos_starkware_usdt_deposit/00014.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00000.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00001.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00002.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00003.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00004.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00005.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00006.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00007.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00008.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00009.png create mode 100644 tests/snapshots/nanox_starkware_usdt_deposit/00010.png create mode 100644 tests/src/starkware.test.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 998ed50..f9e6b82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [1.9.6](https://github.com/ledgerhq/app-ethereum/compare/1.9.5...1.9.6) - 2021-9-29 + +### Fixed + +- Fixed a bug where fees displayed were wrong on Starkware transactions + ## [1.9.5](https://github.com/ledgerhq/app-ethereum/compare/1.9.4...1.9.5) - 2021-9-27 ### Changed diff --git a/Makefile b/Makefile index 06a0e6a..25f8b61 100755 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ APP_LOAD_PARAMS += --path "1517992542'/1101353413'" APPVERSION_M=1 APPVERSION_N=9 -APPVERSION_P=5 +APPVERSION_P=6 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION) diff --git a/src/shared_context.h b/src/shared_context.h index 8631c35..09aa7d4 100644 --- a/src/shared_context.h +++ b/src/shared_context.h @@ -166,7 +166,7 @@ typedef enum { typedef struct txStringProperties_t { char fullAddress[43]; - char fullAmount[50]; + char fullAmount[67]; char maxFee[50]; char nonce[8]; // 10M tx per account ought to be enough for everybody char network_name[NETWORK_STRING_MAX_SIZE]; diff --git a/src_plugins/starkware/starkware_plugin.c b/src_plugins/starkware/starkware_plugin.c index 872ea0d..31abfb5 100644 --- a/src_plugins/starkware/starkware_plugin.c +++ b/src_plugins/starkware/starkware_plugin.c @@ -167,6 +167,9 @@ typedef struct starkware_parameters_t { } starkware_parameters_t; +#define STARK_KEY_LENGTH (2 + length * 2 + 1) +#define VAULT_ID_LENGTH 10 + bool is_deversify_contract(const uint8_t *address) { uint32_t offset = 0; uint8_t i; @@ -271,12 +274,21 @@ bool starkware_verify_nft_token_id(uint8_t *tokenId) { return true; } -void starkware_print_vault_id(uint32_t vaultId, char *destination) { - snprintf(destination, 10, "%d", vaultId); +void starkware_print_vault_id(uint32_t vaultId, char *destination, size_t max_length) { + if (VAULT_ID_LENGTH > max_length) { + os_sched_exit(EXCEPTION_OVERFLOW); + } + snprintf(destination, max_length, "%d", vaultId); } -void starkware_print_stark_key(uint8_t *starkKey, char *destination) { - snprintf(destination, 70, "0x%.*H", 32, starkKey); +void starkware_print_stark_key(uint8_t *starkKey, + size_t length, + char *destination, + size_t max_length) { + if (STARK_KEY_LENGTH > max_length) { + os_sched_exit(EXCEPTION_OVERFLOW); + } + snprintf(destination, max_length, "0x%.*H", length, starkKey); } // TODO : rewrite as independant code @@ -741,7 +753,10 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_WITHDRAW_NFT: case STARKWARE_WITHDRAW_NFT_TO: strlcpy(msg->title, "Master Account", msg->titleLength); - starkware_print_stark_key(context->starkKey, msg->msg); + starkware_print_stark_key(context->starkKey, + sizeof(context->starkKey), + msg->msg, + msg->msgLength); break; default: PRINTF("Unexpected screen %d for %d\n", @@ -758,7 +773,10 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN: case STARKWARE_REGISTER_AND_DEPOSIT_ETH: strlcpy(msg->title, "Master Account", msg->titleLength); - starkware_print_stark_key(context->starkKey, msg->msg); + starkware_print_stark_key(context->starkKey, + sizeof(context->starkKey), + msg->msg, + msg->msgLength); break; case STARKWARE_DEPOSIT_TOKEN: @@ -772,7 +790,9 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_DEPOSIT_NFT: case STARKWARE_DEPOSIT_NFT_RECLAIM: strlcpy(msg->title, "Token Account", msg->titleLength); - starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg); + starkware_print_vault_id(U4BE(context->vaultId, 0), + msg->msg, + msg->msgLength); break; case STARKWARE_WITHDRAW: case STARKWARE_WITHDRAW_NFT: @@ -806,7 +826,9 @@ void starkware_plugin_call(int message, void *parameters) { switch (context->selectorIndex) { case STARKWARE_ESCAPE: strlcpy(msg->title, "Token Account", msg->titleLength); - starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg); + starkware_print_vault_id(U4BE(context->vaultId, 0), + msg->msg, + msg->msgLength); break; case STARKWARE_DEPOSIT_TOKEN: case STARKWARE_DEPOSIT_ETH: @@ -839,7 +861,9 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN: case STARKWARE_REGISTER_AND_DEPOSIT_ETH: strlcpy(msg->title, "Token Account", msg->titleLength); - starkware_print_vault_id(U4BE(context->vaultId, 0), msg->msg); + starkware_print_vault_id(U4BE(context->vaultId, 0), + msg->msg, + msg->msgLength); break; default: @@ -858,7 +882,10 @@ void starkware_plugin_call(int message, void *parameters) { case STARKWARE_DEPOSIT_NFT: case STARKWARE_DEPOSIT_NFT_RECLAIM: strlcpy(msg->title, "TokenID", msg->titleLength); - starkware_print_stark_key(dataContext.tokenContext.quantum, msg->msg); + starkware_print_stark_key(dataContext.tokenContext.quantum, + sizeof(dataContext.tokenContext.quantum), + msg->msg, + msg->msgLength); break; case STARKWARE_REGISTER_AND_DEPOSIT_TOKEN: diff --git a/tests/snapshots/nanos_disable_blind_signing/00001.png b/tests/snapshots/nanos_disable_blind_signing/00001.png index 78f3ae440fd061fe3cd225eff7e875fba929eacf..29a6bd33223391861f4cf659bdbf31ac9392613e 100644 GIT binary patch delta 317 zcmV-D0mA;i1K0wPB!3@CL_t(|0qwy-ZW}=m1i`F<`~MHFLuoPa5)?_x_I0`=#BaGs zV)UY1xag9LBt{?wd5Gz3(M`;on64I`#QafA zM~g0E{wk)M#b`}H=p^PN6&)?QQh|!@7N5k7!^C{Dcol<+aeo*U#Jmy^ZZW7B2a7?) zZE=f1#WoT6&vBiw<1ccGnVzl-J_1AjK<)w^r P00000NkvXXu0mjf$-9Xo delta 420 zcmcb?w2yg$N`0%Ri(^Oy;=W-a`vqP}e@2S@qDMU!6!l^Ff^?ea@wWxuUGbE?c4m80A< z^;nITyh!o*=(NoH;z=G&wwa1R0g04%OANb3=JFWDb}7~$Rh3M!^SXGlL^E!Q!?SgK z?_AnMfJ!_Jm;CT})-E#l48Nw{Qin7)_RSN2ib@9YXikXqO=dIt@4_~-KSl54nMH-> zM$KmwE-zJJ)!gUh$OUx9^pssdeLgHL<(d<2s!d{=S>6j~DLZ$S_ojoyRGquhd)q}$ z!gta#M272s~Z=T-G@yGywooXu043 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00000.png b/tests/snapshots/nanos_starkware_usdt_deposit/00000.png new file mode 100644 index 0000000000000000000000000000000000000000..2994983f84cf76ab587bac356d5afe297c0e0632 GIT binary patch literal 541 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcyxba4!+V0?SfW}LV) zm52AlpJ_b2>@)W(0ade0N=>L#7k{_%p*K+Izf)VA1-(C=WRZ-BymEd z+ycg#=gr>vKI=O3DZ$93W?LaYQ1QY>pxO%?Y&v*&<#TnOD>)zbXF6qTB9pT3N&!&M z3dWi9&EBnj=ymuLi`0al9u7OFx80vqnaz8`W+_{Wop8XrwTVif&jYR3;ytm)i1F!7 zQ=gO!i4>qCfqpe|KCDm-Wb*LtR{=T`$TJ28kKEHk+7p0Y?mPqLwy~wK0ofM}OcabW z9iDmf0+pZOF#@XZFL)Sha%TzS%!Lnq%!RyR`IX+l PXlL+r^>bP0l+XkKp5EPW literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00001.png b/tests/snapshots/nanos_starkware_usdt_deposit/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..888cad3103b076c369cece22dc895a9529a68685 GIT binary patch literal 530 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfiWqba4!+V0?QpvhR)ugY!Xm z$36cWe>$G-EL;>4>$ZKmp_g~d4}bGXJ7T+cB`)>_G1?n8Wp|dq%gw**VVNe= zsf#8x3ZMN=6^cu=-BmYVZa8DFYz*YNXs2H_ILX6nZDh?m`OFm%^TY)M6CNY?O+{|J zCqNRx%tp@4Aae2AN^ z88cFrwRxsZT9`O#rj**u=~8Snl?4Ol0qwKmJrNVcY;;}>#Icr?l$xh&ljZQNEXc^j zMkrukHjv54d!lChhh`q$?URAr_EvWzlRJK^7-zaOo!ZQna?j~--x>K#hi64n6DqfT z>N*oW@#g}@nYYDH?%7o2!s~ok!5OIFg2Bl*CJGQ|16^+N2I$JkAkjUmrz&SS0A0p7 z(=!d|R*+uDHnx-u2QZN~VWw1B$}+Z;wzl$ZpWXo}$7f61^nvb}Zdwz0SWri%^~~~= z2|uUs@a}hIo9Ta2q4|t;^bRdaDK$x{36el#o}CH17kk*>l*h>V@c(rWgN;mljNW@W v?2Ns3=O9S_<9jB5r@S3j3^P6KbN)E#1TCV~2g+*XRHn>shwaGHu*#%y%18B)tZDTa=q8@h?} zo5MbwrA`GCEI|-OPU4aabbghHv_Xgc5e`NuB-ne4NVvP_{k`|T_j{h_{at&hL5oD8 zQ9K?G(G{u70PS!~&x_!>E3+o^cmknLombJs|G9jl@s{qQdbwQq;WTnbi#)o!>5rLn zgo-H*d)X=sKh*$8@wC5-@6ZrK@ko=Ae`QlyqXDdQ>|a1CXN z!xU*4gabq>QowdZBlPY1FSLv3j7FS{Z-#za#GW>?64ZSYE_^_QyFGlelY#a$gl<6H z^ITOoyp$k%0rtj!U4T8QkHehsp_2)Dt&SS+fres=LKC*_jK-{xhP?9HPR7!dLatk5 z$#>sYlF-F$32NLTTRyF+D486$RO1h})A80xKk#uf!0}R#$FyP1kf1Rn5Ci@KY=|f{ zgZhMs)fR+~f92(qCF^#^fx4RySGdfgM1t;%OZUN$VaLw&6N$E7B5@WZ3;}>Q{~@I36cc~-63mzhWS?1qaVj>4|2+nw zT_QYp)6Q5_Ah$q(amMh;)NmeVQN@|X)l4g*$x%KDv@I$YjDsSG`$hQKB8VYh^P;JO z@&#+Kwowso{7fEtP4wPdKB?TEp-(C)nXMNj=m}syCGP^W=xk7%(GB}#KWBVaF}WW6 z5#Dw$uu`>VXUY{W5vrkTVK(=&Lf-I}uP6EBc=uPBP>Qgx=ITFgf6o@@h@R4z!yw~U zOQ3MfM5n=o061g9;GTzuYjBn-BUb%&FEbb3iyecH13{l5-niRN>3^Sd95jbXF>5*r+VyTDK)CN@6LtvQEZK zZU)LxXhZCUkuK~HLqp{VPP@|Co0=Ae4YC}Pf0$v>GyCK2c%I+$@_D|`{T#)Gc~~eB zDv?MqQ-1DI_}bx7Y(wEar>u^XNJ3Ukxj7~E$jaEsnsep|{a9SctE;2Gi^CJg$qSz-5$;;alGQK%t>n8QObgQ%Qiqf%Ao3`50LsRcSRTI04!}(+6SWV4ZpXGfhetFEskI>mrBY0-Sv+VZlT%bUeqFA4N`JQ1`$qa3eabz;Y8W4 z`e;2L7=w&2qumrell2g#{>Eo1rtI<*Bd;6)6JW|Rs~sY(LvaF>6Q)3}9EJ(g1_g{F1;v2RE+;j^9t5Z8!Gd7KsvD(P zcR5H5X~Au7C8fWyiyTV57EaYHJ;GNzhSQ8_qeY27U__vB&BC}~4*05Fa_9msK@mI#+I)sFSOAWS#6gcCVah9PMj+?cpYHh4HFs^{ kSSA#c)fKIb1|I#9p$Vralv0O-M0EjyzS&8iSbvA&y`#=_LTYN>|mMQeXdHa^RS&x%>`q= z-AW5=RwcSV(=}1pe5v7#{pE%;7Yt6`$#7_E^GwTfcqXVWch%s;pIK}vb*{`t@j#LN z3dW{jbi#-Cgw5+C#wq)*7@YLs)i!cIe8J!ZQ1^umO2(#lG9*&+PF!d>)7vIGb77(@ z*t{7j|H9Sd7BbFU$v6{aJe#D{gvg0AQ1*Wp4$N@F30h!Cg8_Wzeua_+)Op0yh zZXot-13KZ=5$nt!p++FLe%R6`KM|-MYyyy|yw+K+Y;3Y;%9#rv1ZI|R_|Vg~UETR` z+}w&OJiI18M$J6Dlh157k5M_$sh2(&NJ^>A6a^clHWTQ!sZgIY zo!ZKl!l!?w;mrCBhiB{9Qr79lWIH_DU}$6#BOIV7HNi3`g4sx%Tb%cVjG13sTX!qB zq!gd@^@cM?54jte$e68SoY~JZC7bueo?f7lOA{x|1X?t;&GDHxPzdPTb(|W}z%aki zz{7i@2B>%;BhV2)Lk=r!X624n`>bqKZmO_ZRsGwl#0fvAv88NFOY{cHi%F(r+}PZ@ z7U(8bsWvvLwl-ahjjTWud(L<<8$}l+X#;K94aBy>0eri+7Tnm{dU&0#Oj+*34cXl7 bvA>y(O#h`TzfnI0Oh*i!u6{1-oD!M>vvoVU9VDDCChXwG`i%fw&$F{cv5IG_QNkA9<6SPPUYcANMnUOkqoT zm*tRl@xyk#n(1xQM$U&-oDW|xIKjg^`OF1_lQNeKPC}VJyeEK&hu1u%t!-iAgr5`6 zDDs}T@WEWq#;J`h1&A_cq$~rPFqsFgkT2WenH#f_xzvQ2QWJiP%v{MRnUVpttl^Ba z)P$YhKs|Pk50z*B2w*m@bU3`IvCWm4x0_8$jMqd590waRa7#P{hS2-mJ3!BX+`e0C0?@%L!Hzj`!N62u zbA|)Z^+0cn@t#m{K76I&%py=I&XAfAX#&y^%xu&R_9!S88+eRNfRUsFHpKJUyk2)x zAKu+5d=o8Qo(ar!hB4M}D6Gm9ms52mdKI;Vst0OJ)pfB*mh literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00006.png b/tests/snapshots/nanos_starkware_usdt_deposit/00006.png new file mode 100644 index 0000000000000000000000000000000000000000..d7891ee9aae3abcb876a0b88dfddc43f9acd5eb6 GIT binary patch literal 882 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfdzsx;TbZFupw)=qDX5;&L%| zTJ}HYb^TS>u0Gc272Y8b!0h z6AI3U9hr^FrT$%;dj3*@!e$d5NvUaVu4$PPAbpjS+Z2I9GnXcw=mBf@KHPZb(gvX6 z^2>lm{5v-F`-FvzGnWF{ZD%qpCP*5YC>Tpkh?L?>xwnRKW;0s~pVS0N-V-?!frNrH z$f60A)7et$yxZ7P%3^-%@YY{xIMXe4Zwcc}SD?^7h$H7eJym`3!iE!nrk%NDkTQ)e z<)6p1vr_xEvZcgb*6$-T#?_A3F6lXpuqsnO;=vB&G#0>+u&cYT^E^$zGXNs9ltz!fE9f;nU01XA9;^m;g1|e(S6FOjYC(|Jf zjGp-cqZ*8WfgA}&plAm=7>I!33ODNWB<|(yWlz6+HPtbSmJ*wJJ>~|`)7#imwgKI~ zmT_h-Fut-K(xRD-Zc9zLsRRtY=#&WyADW7n0o{Nhe+{g4UlaFwpevwyAYusPYDAe% zc>~jg+hHYR(y6vHjv#$)XR=wQTt2+3pejS$kN@qVmkVPpY_|Zt@=bo%i@60CuCiK(Ys=y7fLnfmfahn$-Qxm*C||EFylxY2zYX4@jEA+sn)`qD#FIT#8?#t4 zTt{u5bbf#B-@BLY3lv>Vt>sJ?NI8>GzRI#}f;?q7j z_=0hvJ2(}nwyMJ=BHAFL?IXL%OlL2_T6PMBG8JITnWVZ00P9enfBnuAZRAN7V_5Rlk$5iCk11JMe$NJPVz z^=BhSnn`qjeJCS)d5b!H!rhY-wUHhZER($wJq5~<+w2fZ(_^94bCJtrCCutI1>_n| z5g8}gT-Kr{WRyh4!diI7PnO+5ls+8*WypYz*s3-wh2P!~Y|_;Y2S3vgKT2<{5Yfq`CJYF$WmjU57c$2>pM!4>{t>Yc<20a; z#g&*Yj)5d_hZwvy$Kttl*b2w3fB<`ii(ra>oj_~V$+hOlBU1#M3cJ?UFFrE`w$@c_ zyH!fhLuCz2a0a}8{I7tcTpfO=4}3#4nBEb<_)!Nu+Xwbjp_h3rwg)Jv<}9-lCT2}V z{b-PqOdqnZq>O5?EAz0HYtDc}d;FmNKiPcA7)z<$aB_zH7MnFQNxAJ0c}MaVUhN6q XZ9ctG{-nDS{w9H5SE`-7Sl9IzEEjAx literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00008.png b/tests/snapshots/nanos_starkware_usdt_deposit/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..a0286ffbe6abcbfb5db246d45e2d15d347faf991 GIT binary patch literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi@&ba4!+V0?Qpu;^A4gUdl< zt+fB#^ZF~Vto;#|lHyROD6ly1qxX50!V3LYlId2jXR7eMcXqJM?mkzg)_J%(;)m~f zi#=0Y<5d(nJ!@7rwsG^C*u);TU;NOUcea$7=^B$e*$;0@{p(;$$*7Rz-EEqaL2AZEc=yZ3`18NJ^>AT$niN=F-GTQ07dj2|y$XRs&S9b0wps)VoU!JiPZy zlk_D)G82FrW&-8afJ~^;vTTR6rHnJDvZX9zOL?bcY^u=A!+Rno11!4RRAIAc8(T`A zNy%_{b{vQW{c75Ic$?3F9Rf7+=cF@vy#Ln#U6>GW&0i@{i~%WL{41D2sC>}3dos` zK!2t!eHbmpHWTaupo!Cg4pdxFbFJab!$zqImB8Q$1KOGMa5Gy9pM4Jx?|e=Td8rAO ze-e04)I|Ka094jKdEvvuhu9^h`0QhtjpW7Z)SVAMYzO+IoO}Ms3m?KwE);|wZe^2N zm$l=9!{Ja~ajA?Qs~$Qr^M;%L5e1sEZG-Exhf))OZt(@m;iv0+&rE9#zuEu{f)j6m zZiG^sb@wb{O96%Qb~qJx@X*7xx_f4|Eo^LC_;48>D$;L{6ezgzCPijCJX1qs&U<=f z^N9-vC+_&RwK+b^Gcw^ZDxVCB`PraYSuGU6m!JLc!!UobS-amZF#P&+G6jHv3i{-v3j0 zj83e1)%o6`4QQjU5zy-Q*BZ_MWlktKA69AR;hoF_5)|i^zf>^kXAaY;y=*Dl*e^Al z*?SPoQg%MP_uyKPn5y&PwFftYSnAG)Hy<>Xl-kCAz2VH}gSsHr)rK=`586sfO}pT5 zSV(HZPV0dFNU0vItGYc3y44$rj JF6*2UngD(I!Hxg` literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00010.png b/tests/snapshots/nanos_starkware_usdt_deposit/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..c81ed09b2c3aa6d8ae5592933598a1923fa479a1 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfdN^ba4!+V0?QpFz>blgY!Z6 zgM0or{yfO#w0DCHyT>JltxM(#)|aYwzKpses=apCq$4G=Os7`qMuCK+#NIm@A~ZTrOn7xQyV65ZR{9Mdu+Qrg%+$c)$8Xm*?LVYg=*d2@QtTxdA6 zEHT3&EyLlNH%NNILdKbkBQ0hD6&jiN*q1-=D5fh^CH7d~V>T*o-`<&%_*9nm`` zFHE%B$(Hg?Ozz|bgSjEhM*S>P(s@tpnaY+@CN<%v$(s{7Qg#z0fw*#IqVngU!wR3n zq$X6BJrXZo8eY|eCe#yk_~+U<&;PaP`B1cg>*FkSWs!6bF-780-+fi4T*=4IH9NEUl`1FDpnALW0vfPbnN(;^` zVw@??d!lAFTS}VA4Bx}@**Er?&FJOf-G9Y_nRj_xFf*^oo{Wl%1(^#P+r)WIE`0Dj z>|?iMGFyrtuezkvgqPocCcJ!71tWhlm#1^*ht%$C~UqvhliKHnO#z9+w5$IXNezxro3Gy zHKEe1Lf!eWkW@y56SL8KmMNm93dLCtX|Bz=naGIg)G8@Iqt!wI+fsSAEk#Cu8J1p| Wb2Ie5kUcP{89ZJ6T-G@yGywq6GoOtB literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00012.png b/tests/snapshots/nanos_starkware_usdt_deposit/00012.png new file mode 100644 index 0000000000000000000000000000000000000000..a595174e9ba0d5bd72fbd279e3b5e68893985f0c GIT binary patch literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfa*vx;TbZFupx_G4C;(i1R_` zgMa?>KV!bW1ex$#5(vg=DSG3oaT-ElR)9384Gpl=Dm1^f@L!CP> zM3*}Y2Gs3pQ`~&fAm!iYHg==x@`qo{XD;5kL7i9HXffl=iw$R{o2*F*Z zF%{|{vE?alho_&kQT;sS3^T}3|Lp}VyeAZ#4{x8a@Zs{^8_aq2RhRuycFCdd8WT&z-nXkpD1@*=YIPNedrdJJimW;%BYye7L=p-^gT6 z**eCV{M_49GA!PPFdJ=WnNrPrVvoz=wlf(O3dT|sZe}<ZR03E0;33RMi8!&z* zElfPI1}^m9*TGWu+M$;h#QfT~6mdKI;Vst E02#yn*#H0l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanos_starkware_usdt_deposit/00013.png b/tests/snapshots/nanos_starkware_usdt_deposit/00013.png new file mode 100644 index 0000000000000000000000000000000000000000..3158ea690450f2b8c85c12004b002b02e7b02539 GIT binary patch literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfj3Yx;TbZFupw)IO&lagUi8i zu2=uq*Yz9Se)!g*VK4JBV-C&WKWoz`S-k14IyUoMm0IWFIu4EW+>4RtRSIvkw{qJ) z-k{BNYMKd;QTzYAL~p5OZSof#4llR(=qVMJ($*$Ab77)uTE-4V=fhVFPUOsN*u=_P zev*f``Ha_Lh0T`?P5_w@bmoG=iJGR?wG$oFmOfn9wp(f$o7BG*4~6I6nAJ9Y(#_4S zx*0Q4Cd`zYu+#gQ-puxsHA;+6txb81;;$K;SOc`)`Eb{n3mcS-P1XR-G*4O9=9zYy zWlA>hi9IogRX%T%Vw>52vEj_tR;Wnvk2E8bnCKl>8qOS+%J|{VJNeAR_7fKhJRN>6 zWt_R(#K%Y*B*bf?@cHzid?OPZ*R-q|Qfe~~OJ_JdGiQ7n#BAiBxx@R}2R5LKwiNib zwJkq!XF{bkuSv~rHmSN0W~1w3?WueMPz z$jMOtJF#s}Y?8nbo644w2lP(7Qu7&Lh$$GG`0$>%lOd6E?`G%PjEacEho#sgfuXFQ zeWOb_8W?6gy!z_Ez}=wqxl_z;<{4*T7^Tcp+APW)4b*$#gTTy%593WQI2=|m1}X&# zr~*UES~!4j_tt_NTU!sW)0HX9eYhc;yFK@KDXZ;sPq04($@Y}pt$UkYuJ7O_vMLEmi+4c;Fw95@=>aR7Nxv47?$ZTZtr_3n+(gx*XR_$~kWo+{1#Gb1SXD%3= zxUfOl`S7wtWoKq1=fesh37M0pZl2)bJ;7rH6tf4a>N|5`!^DM*Gq+1kkOZQXHnx<$ zq^B8D6K1Bx%Ze~iP)OohG zIi_9y5O&xt%^k>mro%ENocDx`AG1-use^*|uq^-bNuC4jCC(rnYh>Cs(MmB?|tDnm{ Hr-UW|v$x^l literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_disable_blind_signing/00001.png b/tests/snapshots/nanox_disable_blind_signing/00001.png index 77762c6bf76e670cc4a9724c3e4841a7ed6e8af8..bf49b96764da67bae018e60d4670bcc3af40f6e9 100644 GIT binary patch literal 439 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_8Cba4!+V0?SBHMI{n>HXexE$Pd~hO?>f&+dA2I;#7k z^T(ukiM2Wj#<#TGvX5r0l~^mfcx%#@u%2sO7o!ZLw9y5Rg@jmX&kCwsQ4(sh$>L9*Lc27jyq$!sK>FFW9_wh$*Gc&7q{{i&M$5Az zbWeciA&X$4kT}u!kVyvTrm;+Q|ES8T^*9G8DWX4Vfzi1olUl-$&Q@8`vw4Ne!@Epo zi`T}>cs-33`qz3&mvedafoBF<+f{5r@;raU0~vFcWq7$hUAE{`K;X`mHX$K?K|S)S z4=1*$%vl2SkBkPVxv1#WXrX&6RUWE)?pV2EP734f!z=GhGT5gr<#EV2wPt(6*^JdN g^|<_x94LR;;y*9t>|4WQ28<8}Pgg&ebxsLQ0KCJ$1ONa4 literal 539 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|@XY>Eakt!T9!IV3)L~2*bfQ zPUa_n%WIxjT78iBmSggnP4d>U`i~xLe}1}9rf09rdGWZu>0oxP%z??%pMO62@l%au zU-QQHqqCoLCu_5RNXf}I+_p_3I=W}A?y+lP$=Tf-w;sK5D=8-zhw#VdkdPQHt$*I4 zqPr^${yCr=^dU1by^-8d4avGbAQNPgF}(eCqs^LSa#L(W${lmp&2} zo%%jxPKclAd##YVRqXa1Uam)7mp%&mC_8n%mY-I9Xid<(h|Hz>n&pqN3_k{eh;bPo2Nw(PZX|Ps^NA@A$W# z+I@63*VICPEz$R4`$JdsR0przp;H&UQsR5q!lKAMfj~yc!cTc0TfL6%n9enIJ>P?q zyrFYK_5~LP{RH{ruFZ~xTvNN=hpd>R6=D~-bMsN&l|B1EC;SOK>iRTKE@#anf1uyW zza#`}P49{YhM8Q>5+|Ui19yUS=xLRgF!&$aMnphj58t=qn_u6(yH}U>7%7Zd@yx<8LGD|NL^HOwMbIhRMr6+gQ$n z$QbOfoPT3l5rg{eO>DO>VIn!5Rge5qUD*pZP3XEG70O~b+m^~6IH{zir*(hjjumT?HZ15`uN79ppw7MWhwRj;G6zmJ zX}t>p31G2LNNZm)gL*#D!l%o%LhK@2Pu*plvu7pO)Rj)DzqfKt&HQjsOG`^nG(I#& z>m8U?E?O@7-eGByRLu%5(W#zGlU4=%T;=4N8nkjp$cm5{t&n?;t*5>`I2-DtRW52D z`Y}^06p>c3F!~oyse=C}`u~=Lfl0?EtEOln)H`V4z<_C!bpSXi?Gf qAj6e=CNo>yoMw7sni(PVjlVP7(D7f?IZe literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00001.png b/tests/snapshots/nanox_starkware_usdt_deposit/00001.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ca56bcb444404e2f79effe6511249c799fba52 GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|X4~bgu zLY8%fYfbO!KDG3bU+StEAzFGMDT$g1U7oI~t9Areh8nK)5nUe=vd{hLqD7zdR20nD*^K_v#(NKh3p5 zw%OZOFl(&`GU}fnlwLJMOKobG_0*M*78Qjr3|d&UGGJ%O3b2vlAi+xgQt2L?j)wS?$fR7diTQA(}L-mQ5JOk@n6u6{1-oD!M<0$4iN literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00002.png b/tests/snapshots/nanox_starkware_usdt_deposit/00002.png new file mode 100644 index 0000000000000000000000000000000000000000..0329541e3e2f0c94f0a7cebf7ec69261fee75be1 GIT binary patch literal 1240 zcmZuxeP~-%6pv!vi0jxGuidO#a17+OROg_ZS;n?}tZg>i_ug)oR@SPKSV7miGO(eg zErU1lwIQOsj)A7l3t8@4U7ii2q_o+ba&)CMgQseVRgTYYRP;cX59)$mq&CkO4^DhGf2E#L>4Ys4W=cz|GhrEj| z+YC3$0w+xCpPR~l+j@V~w(t9|O}apRC_YB&OmI&b?B8fA-LHFx& zVULhu`WAlG2pzWC?QXo%Oook8FJlGUd`r49mOR9u!^ho9Pm`wd3W+(>RcJ))n9iI> z7j%-_Q5YFCH<>OcGj*v2+`mccVDn$r`s>{o<7yOi5wiu%nK~GjPVQnD#tK&7MV*jb zD+H;Ve8_77w^nI{4vsJ)mV>BV;9DEB1p-twBRhn<0r^U za{(lsLarvaLeGbEz&8RM03>=)*XCgbov`^6blk-trk6oMi}*^;zVSF{No}tH&Xt^~uXBR_(`nC9#+usBpnJ^|q%Y*+JT^gh0^xcvvi7nB z#ez6K8h36iiYWzaois4GSsye?9b_lN1e5Dymei%lnrxJ~K;~dGF%RibAnx>F#U}{= zLE+Jasv#0=w`*)G$^ynf6o>^zQoEUd69eZ(s?cLd16EVcK=m=%PBdBAUZU^C;~(pWchFFYA?{WwY$!@(w}Yjes2$ zYAVh_ORSByJTl n-KNQzOF+i$|L+|5gk&pM6K3+}TYp92i)CoAH`*eWch3I};@3dg literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00003.png b/tests/snapshots/nanox_starkware_usdt_deposit/00003.png new file mode 100644 index 0000000000000000000000000000000000000000..51b084fa13b65167395f1406ebc573de8c7d5d9e GIT binary patch literal 1557 zcmb7Ee@Gj56u%;CM`)2TF4gJc#>NWY%8C`VQe)TCOSBoy-T6JDQ0$g2ld+m%_CvP> zo@@HlKgL{N0bP_4GdX;!rex=&R58!p)55&+gh-eE9o&&!!FO(X`?0uE{$Y zV)UxJ?qcoF#zmu{&^ht?sbALz=Pe%+R_B4Ym$EmjoCj70thgLmRB81V-YsrPIx#Nz zqqYicQl%)CJ#Q>+U6PX4a0}}BLJ)q!rM!oBfF&ETWrnI>mKkNOQ5{Wikq{TjsY3@5 zMtzAcep%@kj9@31ll4Kn+^-V_I%rpl&`D+ORX8#+vsQpH_!$xsOslqF*kaP6wxdBb zEchkqAnFr@gj|FI$*@i|iZtz*u*>BLeP?mt(s*VUz5utCDJ`fjuu6g_?75VDfh<#) zb?;aaGL!WwVc==xMsBj6PBl6vlKlc)*oE;`Nl4GdDJS>?Z|S`i*JTs!xrPMlv1QI2;`g{V}vi&JLi z*UY}eO8PPvIlWOIOlG^rnAWNfFmifBz{Y_BaJU$xQorq}U8jJQz|CRdZz_9K;gUMXspz!hu-tXdl37$kY ze%t2AG!*xdr{StlH({M(BB3at9kg2=KsAfje;O!8&_K7jK?9&6J=h<6@+EJW*?bJOCXaNX7Fq`_Ac)*ud0&>;XZ;2Y2&27Cu| z5I@R53pi)FZQ*)zDLWBn*2i^X8sPkWV3Dc7HgNO6(uhHN~dBWYSBk(9vW&GQr|da|J>sb)?$41$5H^hutJ<2M*yI(5?IO yP|K%MZXD%taCIa%KevfWZ4Nl{F@CVSUud2@cc-oF?jJDji6;7Z!#MTYCw~D-Cc}vU literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00004.png b/tests/snapshots/nanox_starkware_usdt_deposit/00004.png new file mode 100644 index 0000000000000000000000000000000000000000..214f33048e00126fcd09337eff8e51631b6020d7 GIT binary patch literal 914 zcmbu8Ur19?9LKL2qXt7F?u$bAA@bq03YARJ{4-o@Y3Avh0l3E`;pnNHF@8 z;58AAAY+Y`f&d4TI>YNOS=!-zG$QWf*#rE+`K7 zPDK3a0;anIx{&vRJ8+KtbcQ+JWbyzfgsEaTl3^ObCG34vNwTERumk|=;`e&D>}mx( zM;ahpp?G736yryjlUgZvwmC%BSkXYePewc_gRKSdS3Px6YLXk~RWEhQy|RUFW%Cb| zFW*K8$@>8qy@kr*@WrK_>{zirwo9B9LMGD`#1Bl_KHIU_Ip~Df^s$#JdqItavm}h& zl#+O@yoZ8W`UXr>X5~-OHpNuYrxqua>dGcc&})^lC>vIy7>;~<7jL0ZW6vm6vbOSu zJnOf8SItx$tfvQ2HS{WMyU=w+!ma)&_D1g_A3_G;1Yi&Cg(5ywHS>L5+UzLS=>yS{ zh{=IY(6~M|E7Hsc762OjYvYn$z{8R*Ca|DiDr*xQ@*BkU9|ia{(&19XCU!G-sY8x$Ks={u0noK*3|O0&%v2g7utAkipmz3*Lq7k)$A>yj zv7o&xQADwJdih=_Tyc#jYkM-c?&{wb#U>SWS8>Y!73@s&9bMhky3F_VtuaP@Y0-0C G)r~(`P^Sj~ literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00005.png b/tests/snapshots/nanox_starkware_usdt_deposit/00005.png new file mode 100644 index 0000000000000000000000000000000000000000..b062f58897b19c561098658028363ddd81288ed8 GIT binary patch literal 588 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU| zC;Wf?_kXqhhnqliqz?z@;W)QdRzF_WSoSsN>K^}j==8^;eKN-nZtG*VsI)vk`SDY* z3~%%7&#k$d>;;>2vp4AGZqR+po*(kjp;t>!%O9w~`{>+LAq#^F1AhvOmTLurc!hyGLwvMECqu+n?f`P$8~jiM349Da z8ZJ7y3#evgz|W~&>$UWNJRsL_<%$(PUkmGd4K{E+ z(DGnc*Q4_TcCNUy(nnMjWJzG4A&@!wRJf?te(%&(D=MZlTil#xdSjXyGKz?BJ$j0* zdsRT>-Go3bX`XFMdErPdBxnB8M<*HQ+zDBcGk>|$)4YPEakt!T9zdW7lmD28M&z z9?bvpfBu#Hi;)|c5@l{YVT!C=mi74bzb(1ar(?GL?Ogsgv;Nk$-c&j14WGBXx4wND zEF;4v{#*ETh*?7V%xeiVZvoMRHZ84b|MLrsMVEKYU$p2^o?OiYuBlzkUPnEjh7<-_ zhRTF!@oBXKg(iC)UHNE15qq=r%8Jm!(1k@S0xClb11v*o!dp*GJ>}{8RFBPk$)Zo{ zTK87YxY#VcD&k+?LEn%$At8RE_m_U^JJrKxzPKppr?6IgSM#aWTvOi%S%!q%Im-4% z=dzSeurv~?E)W*g3Ks<`)Sl{mRC{VL5SIg;@g8W}y9Wo^11sI1u5x<10O*9DQ@N%( zx1Iv3X+7m{9Qkjw$T~K0QLWSIK`VDi)vOGN zw43d9H1mV&(xjg`qFT!jwt5}?G!vvqKSXQV`JjcLvY5-JW%5p2NpJz4&ZucvG8 RPhg5*@O1TaS?83{1ONg_{6qi% literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00007.png b/tests/snapshots/nanox_starkware_usdt_deposit/00007.png new file mode 100644 index 0000000000000000000000000000000000000000..882d04d8da99c1d2e7fbf931efeed90f4d733d48 GIT binary patch literal 511 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|>Av>Eakt!T9!IVApF80oQ}U zp6{Q$tM^RTl@i_JVA5v(Z}U{ijXz4~T#M?7yH@yUi{J6gwMSnhGqNv#Y!R{i@s?{z zUjpvPsJm%%TS(-JF5a57<=f%*;GHUo!8a#;@C@0eQq%qDVMxfaZ2KC)sVaLG6-{TE z+I=ck$ZV=E=j>C{T6~{QYU%b80xG<-GRN~r%2DPOIi4PemQ8B$7Me5xD6J1y==W4~ zYJOl%r%H}ixt6%-)c@X37Zol4)CDwc(g!agySx1SlUhE`d(^G+aJ|YNZO-W`Di0^M z=yI-Cc^E%w!^)anj~Ic}iWM;+a*s0D`tp@En^MGK|u8%RZX1R${Ga@5&V= zVJ1r_wWzEp3GKOtBw6A3^yQ=lizc-!53WpQWH;CHlsLb5Qp@f~ZmOJ*XHHsB6#gg3 z^H9Y$l@&2v@ty&a=RqDRoXj%yqmP#74()#)O{XfvrmFne+R%J449P}Nz=fgM1at<` bf`8e=j812?ONnd-Ml6G;tDnm{r-UW|Ga%-q literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00008.png b/tests/snapshots/nanox_starkware_usdt_deposit/00008.png new file mode 100644 index 0000000000000000000000000000000000000000..7d242219e1dd5f36cfda88a4783689d1e41a0f58 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|^c;>Eakt!T9zdW1h4*1H(aE zC;OZK?KAH$>dN5Tv8wEmm|sHo9LpaM{}srv-;V10&CGxN@ZX0PeA`N84$N);{rB9* zf_jU-=3L(9?%&L}gZLht+qUN5wk<#;9UpSk^Jz$7&`%xF^C59}d*8~3gcUuOUJRK@rtjeDn!0L6$h}3M=5=)iA6>G@DAY%Eau-nb z(nX&_?^ZC1z7JfvVn#@v8_?)gJ62hQ?pdA$)R|XPs3odC6{N)|^bem_IFOUBCAyqz z>iV<~z9E0)MJJyM`5376KJcfg=+yOZj+rkH3jDa{k*=tg{KBBX!l0QUT3UWu!9dr9 zmoSuXOXc0R6dB$9aaLD&Ep{=LZhpgDM-0A76q@bNZ=dROIo4UHo6PbJe z?J@ZUpL|kR1^na@wGaNd#%bxJRZc+eOs$Y*TvJzKW!}&HprjRYFL)tPW2*VThOWt{ z+(T+YT2EDLg>0+e{gHjepKzepZaz0x1^Ee)QO$Vfbu^0!v}qD!w`k`M$>q(WeXTJ`~u@;XhuuVeMlEKe= zblsz=UEx}KqN4T7AKeXEai{i!%Tgzxia)bM_ATa`n%*oPvTsvYch@PPsOZ%25IgUu zb64ysVo=Xt1~b`u>dHrcsjGGb&(xZ?G6v}P_fHu7w#{EPBV^y~gWI+M5wpe3X{I-( znE_FRgX_`ywTm8U1B3SWgYMNkf_H|j2#E>N13ADC7-B&0K=|*IJ{(=SVug=rxv188 zEw!of3l|juJplBIck8LmK(EQxd^j3f6LvH`)JIEndRKht$2_|qhkz$*-qD4tTGeO+0_=QHHdzz8l2yrP6@|$#y XzklTVrji}Nw8!A->gTe~DWM4f-qkj) literal 0 HcmV?d00001 diff --git a/tests/snapshots/nanox_starkware_usdt_deposit/00010.png b/tests/snapshots/nanox_starkware_usdt_deposit/00010.png new file mode 100644 index 0000000000000000000000000000000000000000..7a77cb1234495ce3418c44945e3e8e8d33244c1a GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!3HERU8}EWU|_QLba4!+V0?R!u}j*Lf#IOs z!}(wS&%cuYu~MNa@uRBZo2NP6q3rf| z9slvd4Qmq%3hNW1Pch!PInDIOG&7P=MWE>YrAe!P@QKb(_|T*kqP1`Ksrf5*1pQ<& zzvppu>Zy>zrJsCSPlXt+42fA8GDpi#OH?cP=n|vQn3a1bN$0zzt_qkLvW#o${FMPa zgJy!I&xfq=5!IS}DrDg&t-L)mxTa3_YCUy7XyYVl{S}Y?FDY8}qr^OJ!l{srf6Mc1 z0vCST9=ZZ(^oluJYExHtc|Hvf0WyM*8jGq=)t(CEUkzDNQ_4`Trxg+x*m}xXRO|Ns z)d4%DVnSBr%=cXSDC>iB>#1)yL$sCw0|ms~sTH#9V5`^BZ!@(**0IH}2+5hh)amK! zgTh+t*F5?k^sz5wp5z|Isc)e33ice0m%!6##_ z;MP+slYssL`f%l=B|!^|Rs~d=o7*|Go_fFP$EqY(^Luknt#o=?zQSg4(W;1}51dzo z{PEQi71etG;@IrfGeYWImx8qK3tIUjguNjBcQQ~WYlH6FW8d6?VfFqE!@Hc*QaRqz dB% { // disable blind signing - await sim.navigateAndCompareSnapshots('.', 'nanos_disable_blind_signing', [2, 0, 0, 3, 0]); + await sim.navigateAndCompareSnapshots('.', 'nanos_disable_blind_signing', [-2, 0, 0, 3, 0]); // we can't use eth.signTransaction because it detects that contract data is disabled and fails early let transport = await sim.getTransport(); @@ -23,7 +23,7 @@ test('[Nano S] Try to blind sign with setting disabled', zemu("nanos", async (si test('[Nano X] Try to blind sign with setting disabled', zemu("nanox", async (sim, eth) => { // disable blind signing - await sim.navigateAndCompareSnapshots('.', 'nanox_disable_blind_signing', [2, 0, 0, 3, 0]); + await sim.navigateAndCompareSnapshots('.', 'nanox_disable_blind_signing', [-2, 0, 0, 3, 0]); // we can't use eth.signTransaction because it detects that contract data is disabled and fails early let transport = await sim.getTransport(); diff --git a/tests/src/starkware.test.js b/tests/src/starkware.test.js new file mode 100644 index 0000000..84bb16e --- /dev/null +++ b/tests/src/starkware.test.js @@ -0,0 +1,65 @@ +import "core-js/stable"; +import "regenerator-runtime/runtime"; +import { waitForAppScreen, zemu } from './test.fixture'; +import { byContractAddressAndChainId } from '@ledgerhq/hw-app-eth/erc20' +import { BigNumber } from "bignumber.js"; + +test('[Nano S] Transfer Ether on Ethereum app', zemu("nanos", async (sim, eth) => { + + // Provide USDT token info to the app + const usdt_info = byContractAddressAndChainId("0xdac17f958d2ee523a2206206994597c13d831ec7", 1); + await eth.provideERC20TokenInformation(usdt_info); + + // Provide Stark quantum + const quantization = new BigNumber(1); + await eth.starkProvideQuantum_v2( + "0xdac17f958d2ee523a2206206994597c13d831ec7", + "erc20", + quantization, + null + ) + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8b5018a0472698b413b43200000825208940102030405060708090a0b0c0d0e0f1011121314872bd72a24874000b8842505c3d9010101010101010102020202020202020303030303030303040404040404040402ce625e94458d39dd0bf3b45a843544dd4a14b8169045a3a3d15aa564b936c500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000030d40808080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanos_starkware_usdt_deposit', [13, 0]); + + await expect(tx).resolves.toEqual({ + "r": "14c368c0d32e399470d6113cf796c5f4cd70300766337d8b0ba71ecad21b3d52", + "s": "4207c027959e84fc2242a1f4fd955603f137ba28f67268ffc91fef5d65071b0a", + "v": "1c", + }); +})); + +test('[Nano X] Transfer Ether on Ethereum app', zemu("nanox", async (sim, eth) => { + + // Provide USDT token info to the app + const usdt_info = byContractAddressAndChainId("0xdac17f958d2ee523a2206206994597c13d831ec7", 1); + await eth.provideERC20TokenInformation(usdt_info); + + // Provide Stark quantum + const quantization = new BigNumber(1); + await eth.starkProvideQuantum_v2( + "0xdac17f958d2ee523a2206206994597c13d831ec7", + "erc20", + quantization, + null + ) + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f8b5018a0472698b413b43200000825208940102030405060708090a0b0c0d0e0f1011121314872bd72a24874000b8842505c3d9010101010101010102020202020202020303030303030303040404040404040402ce625e94458d39dd0bf3b45a843544dd4a14b8169045a3a3d15aa564b936c500000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000030d40808080', + ); + + await waitForAppScreen(sim); + await sim.navigateAndCompareSnapshots('.', 'nanox_starkware_usdt_deposit', [9, 0]); + + await expect(tx).resolves.toEqual({ + "r": "14c368c0d32e399470d6113cf796c5f4cd70300766337d8b0ba71ecad21b3d52", + "s": "4207c027959e84fc2242a1f4fd955603f137ba28f67268ffc91fef5d65071b0a", + "v": "1c", + }); +})); From 408805f7519d82fb0d6530c23325b228f2e07c5c Mon Sep 17 00:00:00 2001 From: Jean P <10632523+TamtamHero@users.noreply.github.com> Date: Mon, 4 Oct 2021 11:26:01 +0200 Subject: [PATCH 8/9] Fix big amounts (#199) * Fix wrong display of amounts >= 2^87 * Add test to check that amounts >= 2^87 make the app throw * Bump v1.9.7 and update changelog --- CHANGELOG.md | 6 ++++++ Makefile | 2 +- src/utils.c | 19 ++++++++++--------- src_features/signTx/logic_signTx.c | 2 +- tests/src/send.test.js | 11 +++++++++++ 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9e6b82..fba9db8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [1.9.7](https://github.com/ledgerhq/app-ethereum/compare/1.9.6...1.9.7) - 2021-9-30 + +### Fixed + +- Fixed a bug where amounts displayed where wrong when the amount was huge (>=2^87) + ## [1.9.6](https://github.com/ledgerhq/app-ethereum/compare/1.9.5...1.9.6) - 2021-9-29 ### Fixed diff --git a/Makefile b/Makefile index 25f8b61..02e600a 100755 --- a/Makefile +++ b/Makefile @@ -30,7 +30,7 @@ APP_LOAD_PARAMS += --path "1517992542'/1101353413'" APPVERSION_M=1 APPVERSION_N=9 -APPVERSION_P=6 +APPVERSION_P=7 APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P) APP_LOAD_FLAGS= --appFlags 0x240 --dep Ethereum:$(APPVERSION) diff --git a/src/utils.c b/src/utils.c index 5048119..40575da 100644 --- a/src/utils.c +++ b/src/utils.c @@ -118,10 +118,8 @@ void amountToString(const uint8_t *amount, uint8_t out_buffer_size) { char tmp_buffer[100] = {0}; - bool success = uint256_to_decimal(amount, amount_size, tmp_buffer, sizeof(tmp_buffer)); - - if (!success) { - THROW(0x6504); + if (uint256_to_decimal(amount, amount_size, tmp_buffer, sizeof(tmp_buffer)) == false) { + THROW(EXCEPTION_OVERFLOW); } uint8_t amount_len = strnlen(tmp_buffer, sizeof(tmp_buffer)); @@ -129,11 +127,14 @@ void amountToString(const uint8_t *amount, memcpy(out_buffer, ticker, MIN(out_buffer_size, ticker_len)); - adjustDecimals(tmp_buffer, - amount_len, - out_buffer + ticker_len, - out_buffer_size - ticker_len - 1, - decimals); + if (adjustDecimals(tmp_buffer, + amount_len, + out_buffer + ticker_len, + out_buffer_size - ticker_len - 1, + decimals) == false) { + THROW(EXCEPTION_OVERFLOW); + } + out_buffer[out_buffer_size - 1] = '\0'; } diff --git a/src_features/signTx/logic_signTx.c b/src_features/signTx/logic_signTx.c index 7ebdb2f..ad0a1f6 100644 --- a/src_features/signTx/logic_signTx.c +++ b/src_features/signTx/logic_signTx.c @@ -440,7 +440,7 @@ void finalizeParsing(bool direct) { displayBuffer, sizeof(displayBuffer)); compareOrCopy(strings.common.fullAmount, - sizeof(strings.common.fullAddress), + sizeof(strings.common.fullAmount), displayBuffer, called_from_swap); } diff --git a/tests/src/send.test.js b/tests/src/send.test.js index b71ad53..cb82ef4 100644 --- a/tests/src/send.test.js +++ b/tests/src/send.test.js @@ -1,6 +1,7 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; import { waitForAppScreen, zemu } from './test.fixture'; +import { TransportStatusError } from "@ledgerhq/errors"; test('[Nano S] Transfer Ether on Ethereum app', zemu("nanos", async (sim, eth) => { @@ -19,6 +20,16 @@ test('[Nano S] Transfer Ether on Ethereum app', zemu("nanos", async (sim, eth) = }); })); +test('[Nano S] Transfer amount >= 2^87 Eth on Ethereum app should fail', zemu("nanos", async (sim, eth) => { + + const tx = eth.signTransaction( + "44'/60'/1'/0/0", + 'f83f268e02cc9be5c53ea44bd43c289dcddc82520894dac17f958d2ee523a2206206994597c13d831ec7928db8b0861b8f7fe5df83cd553a829878000080018080', + ); + + await expect(tx).rejects.toEqual(new TransportStatusError(0x6807)); +})); + test('[Nano S] Transfer Ether on network 5234 on Ethereum app', zemu("nanos", async (sim, eth) => { const tx = eth.signTransaction( From c8b5ad4af61245c8b1b4110b1f8bea6bede702ee Mon Sep 17 00:00:00 2001 From: TamtamHero <10632523+TamtamHero@users.noreply.github.com> Date: Mon, 4 Oct 2021 12:04:44 +0200 Subject: [PATCH 9/9] Update sdk deps --- ethereum-plugin-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ethereum-plugin-sdk b/ethereum-plugin-sdk index 3d9433e..116ca51 160000 --- a/ethereum-plugin-sdk +++ b/ethereum-plugin-sdk @@ -1 +1 @@ -Subproject commit 3d9433e3a0e4c034938f767fe8be928d554536de +Subproject commit 116ca51519756ab1b0dfaecf2affabeee35ba6b4