diff --git a/mm2src/coins/for_tests/DOC_HD_tx_history_fixtures.json b/mm2src/coins/for_tests/DOC_HD_tx_history_fixtures.json new file mode 100644 index 0000000000..947e9fc877 --- /dev/null +++ b/mm2src/coins/for_tests/DOC_HD_tx_history_fixtures.json @@ -0,0 +1,252 @@ +[ + { + "tx_hex": "0400008085202f89019544a044ee7940c9030e202bdf2556cc67ebf7a679018f9ffcad48997e996c25630000006b4830450221008f1b58e12b8f05dd8a3542edc6c1f512414a18e947b75be95972b23cfb1053aa02201b10d158d7583156839da4f6da9a05df4a0f261be16c2a67a661dd8ac303818c012102827cbda06abe83afc9957f43879c5b45bbc596c2378080cde44710feddf6b599feffffff65eb5b9c51000000001976a91400119164645e3c8734a85d0985775043206c5d5988ac884c9351000000001976a914dbdf6bd26c1cdbf15558a875fe1c71fde39806e588acc27b8851000000001976a91457dbcf6e34fba4fc9bb6534b077bc05910ccdef388ac20d36051000000001976a9140e0b93457d8c9a4a4eae1b8957d6fe3a6096271c88aca9cb5951000000001976a9145d81fec7689289850da3aafac308dea25f62abb088ac194e4251000000001976a9142c7e25e691858a372cadb6c423aa600891294adf88ac81443351000000001976a91464856896387d11dba6ac54725afc2086d9702cfe88acfdad1d51000000001976a9149b8fc09bcef640a67b4e5692d27f31628f9d5e4f88ac920c0f51000000001976a9143f75eac3a861cebfdfd118303b4db4e4183d045e88acfea70051000000001976a914907a0e46696113adc87cd2ef7e0ab628c7bce67388ac309cc950000000001976a914e5d8ab6e482ea5eabbc79d56534ccb19febc4bb288acbdb6c550000000001976a914fe0b2fdacfd0842be4247db13e98377742702d9488acdc69c350000000001976a914be1bba65a6cfac4c2ad8a1a374ee81dec4fc26e988ac7481c150000000001976a914ee6ef0cfe16cf01ec66b712120c1bafcf1b6225588acd706bf50000000001976a91454937fb957cd6b2cf24b05c28b999cec0306e79588ac981fbb50000000001976a914d10203dbe5f8576a0c10e338a17858cf7fc38a9d88ac981fbb50000000001976a9145a772341158f294cb5a86aab97bee854d784377c88ac981fbb50000000001976a9141e1c94fd8908b33971e1b650c91b0159a7991c4388ac6349b750000000001976a914e5663d584a31f1614eb1a4d5201f5e1e9b015fe288ac9862b450000000001976a914ea7b8f508244558211c7efb037b3fe00bf56ce6888ac3871b050000000001976a914d059cb52fa86410600eaafbac5e6fbf570a30d2b88ac3871b050000000001976a91489b78630b77beae9f50572520e0673d9f9efecf388ac3871b050000000001976a91439e6330611604be92d4c9fa5628a95dc4fcd880288ac3871b050000000001976a91436a79125a7b11ccacdcb644d3c8b2bd8fb0c203888acbeebad50000000001976a914393fc5c7cc14e3fe0b02f1725c9f5c2fe591eeca88ac512ca850000000001976a9148af0e6e3ecf9ec8e35f6d923876129392d06171a88ac91449950000000001976a91476c090276beb7bc604f76f5a91475d22d11852fe88ac9c449250000000001976a914e1e1e90f5e48d15de5d9e695a946320fc9d81ca088ac8d148950000000001976a914014d22617e75f0a6927fbbbb34a50e02b883f57188acf0577c50000000001976a914deb6190cadd4d9b38eddd81a5fc3df21733721a288ac0c607350000000001976a91422babf438f024155ba2ce056a831b10b530da8c088ac70d46a500000000017a9143006759c25a03f5289be9f05ee1b858283c0d5e28725635550000000001976a914bb35d537f7aff439e6f606451681cda7a9e1f05388acc2d74c50000000001976a91486b2dc76a4aab1c7d5a3d1e3b06cd55c8600ef7288acbb7a3f50000000001976a914bdf0b7ba28a0285b132f9f8af518e0cc4e6928cb88ace09a2c50000000001976a91464452bd328bccc1a29383011cf611113dc4afb7888ac4d3d2750000000001976a91426c20b0e51a1bda5fe7d67cb092a5c71a3ce1a3088ac70d21b50000000001976a9145187e26160bfe02b839457597504677c012acb1188aca0621750000000001976a91422024ba1cb2b53d25e37019a691671041db5fc1988ac7d0a1250000000001976a9146db8018ac41b54f7cba8740dfb69720db7736ae788accfcbf84f000000001976a9145c811518f65d70c24bd421939470740759800ddd88acb4cceb4f000000001976a914febe4190846d471a1584a05c53ee6092a92f0a2288ac11a0d54f000000001976a914f30b0323ea885fabe035d290dae99314d8d8c9ed88ac67afd34f000000001976a914d9b2a61924d3b206b939795ab05a4dfc0175597088acb751b94f000000001976a914e021263e72abff4c3ca4325075f814af43e568f688ac2917af4f000000001976a914ff661f373098f0212538f99c8f9d857ffde0f7e488ac5c817c4f000000001976a91482d277da3a1804ebf31911a7b3c010640dbb184288ac7f13794f000000001976a9149308e5abc49d9fc6d93373dddc483d8b4597048d88ac8ec0744f000000001976a9145b581ed40f9fc5a1561cfdfcfff7168a221b5aeb88ac74916b4f000000001976a914cddcf36ac3d33cbecbf4e72c5ca0bb449fb5eeb188ac00b5644f000000001976a914fb6310bcad73bff01a6e0d0ae55b73d4d8f8048d88ac00b5644f000000001976a914976e7ebf2a898135e39ac7d57531b07e65c63a1f88acc8bf414f000000001976a914e51f303a29a1afb69e09fed704335bf759b5978388ac7c82274f000000001976a914ade5cec3cda719f4eaeeaef4d212e9d848e33cf788ac1028254f000000001976a91436864142312af521f7e017ae55bd3a8dffd4ddfe88ac71b50d4f000000001976a91463accd7816c7a823ee7e9b60381c15077684a6b688acdad70b4f000000001976a914bedbe64661aa61e94c1dfb99851a696475e2f1f988acaa5cf54e000000001976a9149e032d4b0090a11dc40fe6c47601499a35d55fbb88ac294ee34e000000001976a914dd6c703e0ac56efaa507624dc5e30badbe8ba3b988acf089be4e000000001976a9143c7719101e620e11a49b1c9de36a43027069fb3488ac58048c4e000000001976a914a7d117393f030892da9089a1c074986046d4d1ca88ac7473884e000000001976a914c2e49d57412294a072b09c2277c7dac8a5532e5f88ac5a067e4e000000001976a914ac8420d6a684d6ad984e1a3630429f7530224e8c88ac7061674e000000001976a914fd084ad97ae0313bba5717acedfba629b8bd426988acd2a32a4e000000001976a914dfa72fa73b20c58342354e80904c44eac968473b88ac88fa064e000000001976a914c5f8f0dae60963b9868c4160bde949a7b59b460688acee4b014e000000001976a9147a02ef277409cd06c3001e176ad63b3dd764ddd688ac7ad8c84d000000001976a91421bcabed00babf83fa70dc58bded5fc72c0dc74588acdf2aa64d000000001976a914f688374529c0e35baa77394d73b7d89cbceab7ee88ac18697c4d000000001976a91490af39fbfb266c596ea7b5327a103374da5c6aec88ac3198774d000000001976a914f31b7d0f1a37b43f0d8708ab56db0e34158872dc88ac8df6744d000000001976a91420ecf5562ed504e3330984875fc8b4a85bba2ab888ac2f6a604d000000001976a9141e89f0ffa2065b88510b59bcfda491c590e9938388ac92345c4d000000001976a91404cd77faac11955a6c8d57ec320bf7c6949dc41488ac7756f54c000000001976a91421e20f0a21a6ea74504ec7b03560de471086baba88acbc76f34c000000001976a914f6b9b015ec458ebdcfcc215d664210ce1a721d4188ac16eaec4c000000001976a9149ca90cdc0907c4797db8d119fa66d10f32cf9eee88ac4536e54c000000001976a914f39faffa0abce060653476678cea8e2e5eb7ba2c88ac9da2ca4c0000000017a914b9053e5c14d319a16c653b604f3c3d708cc6445387b26aa24c000000001976a914ccf41559bd3583ebbf082f3434dc1ddd6737e6b488acd6de864c000000001976a914355e9ea170105bba94295cf6a4965e8a5b49cb9688aceffa664c000000001976a9142b5adc4ce302ad3ba167de7045a4180019a1aad388ac74904d4c000000001976a914ab164a6f7365b7afc9120fc8b8efc4739e6ced8e88ac8ab02a4c000000001976a914fe3e90764770e0fbee333e1efbdd3b4c9adfbd4788acb823284c000000001976a914e754d96556bd00b988a2aabb375e39bc60991ee588ac70711d4c000000001976a914d6a5d7032a3334292e4f79b0a3f80f86857d799488acd4d51c4c000000001976a91405152a18db02dc9e4f9f729533e8cd70c723da6388acba27174c000000001976a91430ba6860b2479c9500bdcc195d00512182071a0088ac09b8f84b000000001976a914004958b597e6120c23de7c0677cb295c9f547e6788accaedec4b000000001976a914c4161a53a1f3b9049207cce3b0bd2a3d08ac679a88acf498eb4b000000001976a914f1fedd086e8063df0afcfc02653d94daa9b9eed188ac0469e94b000000001976a914bc2b1177d0c011f17d36de1587ee177dac1aa0ba88ac4d96dc4b000000001976a9146ddec0405363b70d487e14d43095f8b6bd3688f688ace592ba4b000000001976a9143b4664f6c0b930e3932aeb18de34062ca266ee5f88acee26a74b000000001976a914dcb2819a9710b1309728ff63387f5ec82a8d75a888acffa4924b000000001976a9149d107fb12cda05bbe956f03a0bf6bec737e02cc788ac7dd8894b000000001976a914d1632a04ae05bed90ffab24b190b3be71b87339388acf5617a4b000000001976a9140a1f6f1481780f44cd28226b9c84269df4650ca188acc894754b000000001976a91481add3e4bf9b3d06c2af67eb2032a5940d7bd06388ac14b27b7087d262011976a91417de9c09609a231f34f99f2a1a56ea1ba93409c188ac24fd224b000000001976a914efabaa3e40a7e6eaa1c47488417eb0516ec534a788ac37683864590100000000000000000000000000", + "tx_hash": "071200b4b2967cfe3522b8a6713b8bdcd09f74a17d575fad87b4e97bc442f404", + "from": [ + "RAUNnd2eu1aEHBk7t48nvm1ZuB6dV35xSj" + ], + "to": [ + "R9HZ8A76dc8AVY2prhKdTJhGUJ5nsEeu1w", + "R9JhwioyQefWNB41NkLYafZBmcA9zP1gcK", + "R9Q5A6MBWvr9fWapmC8ZqsWjRTprwt8mQ4", + "R9iavVmNLKSa3TfPo2jgFToxx1Gdfcv4cN", + "R9k4p1Kp1E4vNdRy1yZgQbfZ8DaMJn3zyv", + "RACiVVyu7roWL3VBs8cDeW75ksbd3ggreq", + "RAZTQTzUn4NxYj46ArudGWLvK1Cih5CS4p", + "RBTQJ7FhwhR8or1xpWYShnz4j7EAU7tDHU", + "RC2QbBYtGZL7pZxCdKvXMEuCR7SnuqH2JB", + "RC4fbcBwSm6qc27H5ociebYsP9cX68WJR9", + "RCHHZotJv1Yyjd3RspV6m4daf7FR2HAsUE", + "RCMaPygJwofpCwYRbtMk6bYrguqwjbGW1x", + "RCNMBgc61JHiQ1YhN9Vs5y7EK251ZQBTNE", + "RCP1oXaki4UXrdc6y5CjRvyWVfrkBCBtkm", + "RCSpmTQCaonqcGDLn6fyf1KGgLCP6rBwtG", + "RCp8DAPLZQ359wPZG6NM3eerDMKLDfxi6t", + "RDERysCc4tPBEajUF87byr1vPWgJ6kmN5g", + "RDLSvsobHguvPLp1wiHBPGUg9dfrfJLtSQ", + "RDiqpZRFQbn4NdDpkhZZUesk4YRwTppaGB", + "RE9PEyJxBHQZfVYR9HfVD3nW5YdpTnSxNF", + "REFVQ51obEg4ZihgEdd7dftkeueQdFdJhh", + "REGBJdf93AVUeRCLVA48mevdJiqRccGnye", + "REVtzSsiu8NMimdXDwJEHRNkBiqX5AzcVA", + "REZLMyjSjDBR62KRAMzNiYbwz3ZT41XmVg", + "REgcGvRxzs9zo7JwFcovK6bVpiQpcfao3V", + "REnuJ6MntvU1Pkc5mWPMPDMh8XqA3m5KcK", + "RF4jud119JAcDFM5ZZk3yzsD7MNH3N7KPw", + "RGiHbTghzBj1GupWZzVpDvTxdcGzPhKKLJ", + "RGzPY2xZe6u98J8mm6rp71imgNNsRHAwMR", + "RHHkBtdYVqRe7sqhJKHqEQTeEWbBH29paA", + "RHXXccaDjrCSkrFu59VLrwdDGqgvrFtQf2", + "RHcB8goFaLNwBh91qsCoT1zbj9zPA54z88", + "RHiJsy5Zg2HcLUY6eSfWWfacJS5WgLoK7P", + "RHoceanFVZTqKmzfNG1vYAbdPfdT5ZN8dX", + "RJNDz3U7gDAQNYV3UxoZ7V1S1XJHCyYH8U", + "RJRNWoDho6X23Km58Gppahk8ZGk4B1W7Vq", + "RJShU61KY2tDGFjpETxfcynNTFWpJB62j5", + "RKHLAPUHKFVMhgVFTSfp2CE5GzKnWbAxKg", + "RKJ8aSBwtZFSKkRQVgPDSDhvvDWdvyd17A", + "RL76VfsBB9XoBzwatQSpEMzh3RrgdwXMpJ", + "RLQL2npjgCatuTvbJfcX9tRJqemzb8jMT6", + "RM6sV2J9uqAkiAVrK1erPEVNYzFvSb7qtY", + "RMCv43DkS7Cq7Kv4UnxLNFNSfTpQp6LiFw", + "RMZQtiPNuoUatUWLag3g1g57EowHyAUGRT", + "RMqNWHDjccyPKDkQFgX7Fi9t1kiN2cvbuW", + "RMwqv9VNBu7wjrEvQtMrYX7c6ddogyStBG", + "RNT7bisG6k2uYeUmLbRDvxnN7FnyKtTtLE", + "RNUDJ6CJyefAuPcXrFMfdXkBb7wCjpqFrj", + "RNge4uADWDtA5xLeBXx6pfBbC8rQF6apiw", + "RP5tUpLKvXtxPdDarmUNPw2kz7vu6fusxo", + "RPTj2LgEVwbMprHR261e1ej63YtApX6sn6", + "RPZY1Fu5hjn3SiWvdpkga4eDfNTZo5SZ8T", + "RPbfvzNW2LzLu2qu2MJofWnAERTiA8uhxa", + "RPggeZYc1tN2u95vHy93adqFZoXrzqqtBH", + "RQaXQRrz3sNFbYPo4QVFVxW96TaNibvZoS", + "RQspL7F2wMP9LNFRrxV87zsLPrGycGSCwx", + "RR1NawjEhvsVdpuSHtuBnFq5S3WHHsU9YJ", + "RR8gH27HJ44xgLy7mMaUGMCT9kmyK3Z8VD", + "RSM4vmCHJqd1b8DcToDWN8zutEVsrt1JGx", + "RSS8i1jvAg8Fvx8X6sVEbnNTuZb1U73tkC", + "RSbWA8VM2gzLZN2ZR4i8NzPujQqFc5hfeN", + "RScPgYgBwZPfLJDkVaSFK4xRULVRmWM3AH", + "RSgMtrEpm23t1SYX2ijscKQ3TgSdEM6ixi", + "RT3h39pgmsSJDVnSokT7VqZnvUp3TQB6WU", + "RT9zzr5UpdzZizC9UCe8HBmW4QTXrAoQ7q", + "RTKyR25iHoTgZ6N8XSVuybejGkUA9wv3io", + "RTxtKrvBd1h9yMHGwZNbqvmqyUXaZqVvGJ", + "RU3hHmvWhuBEJQ1BGhvFeHPQLWfmTekLzE", + "RUGrCRsTJu5x9AEovMJvZwdDQSxuhywPZb", + "RULKicpdqc77VLtVDK6eKFoFtLfJaLJMcQ", + "RUNL6erQZtxDYcz67eJxHaf1SrT1zYZajQ", + "RUr9MKqASwh7N5HJp8uLuWpadrZU27BKEM", + "RV8Git3q3TEBqTEVNvXJ6nWujweKNt86mb", + "RVKmi6uV4MCC7oJmmqmBGNv7i3BS6xvufG", + "RVQ8aYwU5fckN2mzfnmf3YKeEUjjn7JPbX", + "RVTyKM22LFEXixFCCe9JyR9kPKX8BfLRN4", + "RVanEUxUaumVoFvUcwkdyWjRUvaGW71hVT", + "RVfm3bFKsf42kakSgbkKmysXEdztWosp1X", + "RViH9kE8USTdnNWZMvom3k1v6fnQKSFfjH", + "RVsYkCxid9XggtkMhW1QJYuPWQ4Vb92Bce", + "RWAgBTC4hzkda6zB38tvPJpyPNApg2zkND", + "RWC9JBLutyP4zM9F7Rz2Uo5DAEtvxNnbdQ", + "RWEWNv7VKq2NSdNPmf4JzpLYwdsXq3WSzG", + "RWNMpFjXMRAERSQwwnciH4fJWKEV9jZtLT", + "RWf2DVT6yrh9AHeU9R6CB4qpKxssj5y2n4", + "RX1uoTubn4iLvtMveUxFr8HAppKzTdNCiF", + "RX8TDrhYePANad5HRt8b7YzUT58hpF72pJ", + "RXLkEy4T96TUyzSwVifhom3v1sDhFLqi26", + "RXSHUGzciEyCGmKpUk2dFaySNCiGSBVBvL", + "RXSdD4niTG7bMau3Mk4YdLLDLdeaPfeg4c", + "RXVMaQXtcZorqMApDC8TmvkwtKkibZeeCV", + "RXkjV9pjc7AicF363J6mhNLjxHvqSowxwG", + "RXmkkXJYGeRQnfKJHCxMFg4L4ons7ckaBJ", + "RYCQMrBHFZDXgAzE9aQocDLdrFHVzUijqe", + "RYM6yDMn8vdqtkYKLzY5dNe7p3T6YmMWvq", + "RYST7XGacQawwx6XanJnL1FikZvunj1i5K", + "RYTWfHVK5p8jeXye4rxcPB3W8Y9T5AV2U6", + "RYW9dU4SqsV9v9AkK319zCWhDYRLNdEiai", + "RYZcizLKQp7rfp7g48s1XFf2Ft13sMY5QP", + "bH7CsFFeouuXvSyRRprMkW9gq8ca5VoUsG", + "bVbZz3tP5NKptwD57iXuJoxzFeSA7HUA1S" + ], + "total_amount": "998737532.25880975", + "spent_by_me": "0", + "received_by_me": "13.15398", + "my_balance_change": "13.15398", + "block_height": 146, + "timestamp": 1681418505, + "fee_details": { + "type": "Utxo", + "coin": "DOC", + "amount": "0.00005" + }, + "coin": "DOC", + "internal_id": "071200b4b2967cfe3522b8a6713b8bdcd09f74a17d575fad87b4e97bc442f404", + "transaction_type": "StandardTransfer", + "memo": null + }, + { + "tx_hex": "0400008085202f8901370e8e48eb9658409715b42d78d257c6c8ccc62b9a44a88e1bc9f76693bc5263630000006b483045022100c68668ce5154ab738678d8c24921dc5cebdc9b1ab1e08af65e326c951d9a2e68022011b91ed495473c9ced1bd874d146ede660aff61b669811e99d6b58835cd97852012103e108fb04390c946355a4f8e3973a7242ea37399e48af6f877cd15ed80260be85feffffff658ba04a30000000001976a914e4390632464ceed0ab4270fe79ab8da172f4d13b88ac904b4530000000001976a91450641ab9097851085c1ade02887b0850770e83c888acd0474430000000001976a914a14171395bd978de6311d289bbc4699e8ca731f088ac087d3b30000000001976a914a27e6aacd2c5943ed1b32c35466a31b9f7c29b6488ac105f2430000000001976a9145dd5fd4a3da4770e6ec51f497177fa4beb84e3b588ac32f81e30000000001976a914c90f20d617c9c9b54c0097ad89295201332b166a88acc5240e300000000017a914cc9b96a7473df8a68753438bbaf3babcec996a9a877aac0330000000001976a9144a13f6e4d4ed52a86e8520f9ae40b8e12eaa58c888accc57ff2f000000001976a914ca3c9bb3248ac7feedffed6d1e323a2003e88ba388ac8293fa2f000000001976a914623153b584d7df10d95912c9b35385c8fbde493788ac1488e32f000000001976a91447a79d95b9dc7328c188ebc3031b8d785a68399788acf836d82f000000001976a9143b81c728b12261cf73103d53aa2980d53143b72d88ac78fed62f000000001976a914746fecca628da928b41ad95b463f335ce2930c4288ac28b1d32f000000001976a9148de304bcf0997b4dedf0940da03c81f62127c01e88acf650c22f000000001976a9146c4a8b69875b68825398b4bec2fc0d75a239728988ac2cc7b82f000000001976a914cf043edccbde2292701ddf6c53809a23cbdd10b788acc0e8ae2f000000001976a914653e70666cab9690909b5a1fcafff1df694de07888acb812ab2f000000001976a914472ca68e7acd52b99c30937294795eb6add0261088acf550a92f000000001976a914b16ab3a47859a5bec9ed917149cc07bfb8c12d3288ac78d09b2f000000001976a9140edecf9e25156deaacc9a3ecfb251c30b3d21b9188accf83862f000000001976a914bb3cef9a0d7e8619d12a20547714d5a818cb4fce88acd089712f000000001976a91447a0b3ac771e366528e9ae022ec624ea3c8faf6a88acfadd5a2f000000001976a91424a2c58d6b63d26e6f9448da4134d3b002d3608d88acfb0a592f000000001976a914a4431e15bdc550a437fa95ef847b51480987b5fd88ac181a582f000000001976a91489028f405d981928f7e55da026208374cb488c7a88acd7c1412f000000001976a91498bc706d35aad1fbadda610739c204e80d686f5d88acfcc12b2f000000001976a9143b06a7f59795e67ca70b00d6bfa0b05f6b45dd3788ac6cb5192f000000001976a9140312ac8ab576d089f8591b8a6d9d4259b5175f6b88ac7843102f000000001976a91446c8ecbf5e2f593c09105637d8ee4ad8f481cb8788ac823c022f000000001976a91480ff6014931e84f8ac606a5cb69b2213935d12d088acd249f82e000000001976a914cdee94238515d68e41a5331b7fd2e42373aeb6e088ac00edf72e0000000017a9141e20a2d463b2c56358fa312d3089e684f92fffc3873855f32e000000001976a9142b4d71e9cb0436be75c30cf80319153288915a1288ac8049f32e000000001976a914b591d089ee36906f96172761c78556f2f75953aa88ac1032f32e000000001976a914ac80d24af5e48e1276faee61bd954e6e09846fb688ac00b8eb2e000000001976a9140c9864e45ab6ae934ce8d228cd09b027e9d661ca88acde2ae82e000000001976a9148199b734d917d6e024bc2bd78d271e885c67500888ac251de72e000000001976a91419db924120ac36b1efcd6e329372d4907d678d0f88ac1d78c62e000000001976a914df5ecba83a17a58b94c8c82690f1a13b059f5b6788ac1d78c62e000000001976a914a0be1efd4046a1d06e277f650aab85bb50a2f78888ac0437c52e000000001976a91454a048eafd03c00358e3a1f83f83474f755c25c588ac1ef9c32e000000001976a91430b225b9c1f53bc0d9f073b0cfccaf2ce1daed4388ace4e3c22e000000001976a914f96097e763b75822bd7aecae76dca69ba1b1f13088acad79b42e000000001976a9144066b64de71b290df43e6b10b9b9cffee2cccdea88acfa3eb42e000000001976a91428e1603e94800bb2461c3fe20925e9af313f774788ac8915af2e000000001976a914ca158ce05bf3e70ad169902ca923c7fcfee15b8288acd15cab2e000000001976a91402bb11742965626d66839e3dbc00bdfe2ab3f2a988ac4299a92e000000001976a9142c4eea2e017267a078a7877c6e38d6749195051c88ac9ae1a52e000000001976a914089d7913c958614094395ea6cca56bc56105619188acd8fd9b2e000000001976a914d175aac3aa0e598fe3a15b7c73fbd318c42eb73b88ac7885882e000000001976a914d010fc4cb5f06586d4e35149ac1e240cad00769e88ac9ab9872e000000001976a914aff4f137072f70fdf12ebf8e1da4efe45719f26388ac1af37c2e000000001976a914229ed25184c0d921bef89c9268d65889b7c735b688ac1f707c2e000000001976a914ec13b8fec13e38673086a24c3ec8bc880c39899988ac89ff7b2e000000001976a91408296baf57f549e17b986c803fc59d7caa7e2a8988ac5b00762e000000001976a914af76fc53bbb41b0ee480fc32242e227fc24d281b88ac7dbc752e000000001976a9147e38d6576b2e02563752cc30a8dc778d0f2b87f388acf2bf702e000000001976a9143d1503c117270d3be0d7ae11481baea95b427e6388acd0dd692e000000001976a914c5403dfe7381514b7eda075d840d69fc5e2bfbb488acd0dd692e000000001976a91455b10311ea020628419969df2fdfd6de5e0befb088ac0c70692e000000001976a91478fb51fc11af250f5327891e161d3d09ca74de1c88ac1009682e000000001976a914a5ab2ba1d037b009f140840c9f57653a0a2d51ec88acf0ba672e000000001976a914e35b469abbb418cd117f68f0b07cddf12346f54c88acc7af672e000000001976a914c44d4de6cd137ba71b2f30be1d05e3427e8f232388acc4f5662e000000001976a914bf9286625d407d84050633abffb84c8bc8aaf60288ac2a50662e000000001976a914818b6e55ae9fa6f40ee766121be5a9ea0e5c3f3688acc0d4642e000000001976a9149e22a469bb009301ddb971b0889794c2f255da6788ac7b445f2e000000001976a914d958f4aea5d54f8654e9398a39935b8d4d1f61b188acf4505c2e000000001976a91494a2e92b1fda3d6e79e32462022c96070ceefff588aced4d5c2e000000001976a9146b1cced256575e3d29c388aead95315dbe19ad5288acf9955b2e000000001976a9140fd6a2abdc4b54cc1e5f92be5f0688e912f8853c88acd8d75a2e000000001976a914dfb2869d0b6d85e46d20ceec3150258d9872c88388ac03c85a2e000000001976a914e3afcafa124461134f5c50cab65d8dcf2427ffac88acc4c75a2e000000001976a9142e62a63c5b96c9126d02ae300a671397baf4f32088aca0c25a2e0000000017a91483dbed2774b9729398823cd2efd723edc558746687a0c25a2e0000000017a9147db51d4816ae870121c0b0f67b310532d06b155587a0c25a2e0000000017a91467aeaf03a84773c5903f8c358084dea483c4107087a0c25a2e0000000017a9144e5bf746ed968cd34d4fb0a7043e15e8183fe2f587a0c25a2e000000001976a914ffc5a9dca4401dbfd57f49ce94896ab24ccd2b3688aca0c25a2e000000001976a914feb0bab685bb1e29f0f41c490d94ca952547a11988aca0c25a2e000000001976a914fea18ff597dbfa935645d9f1ef5041737eee376c88aca0c25a2e000000001976a914fe929475335cd084032528eaae191058b0cf9e7a88aca0c25a2e000000001976a914fd89abeb94f760771505c04355b4b7e28b1a792988aca0c25a2e000000001976a914fd63fb17238dfccc1da898360ae3123b182f40c088aca0c25a2e000000001976a914fd59c9bfca724198798e3bf416d969c27c08261b88aca0c25a2e000000001976a914fd2609deb042a205dc3083b47f3ce1d92d39482988aca0c25a2e000000001976a914fcf6ecce595cdb0e8fc4bfe0ba7f7bef3087282188aca0c25a2e000000001976a914fbc86ce535f26a90f5bcdf8c98cb12e2a91e1c5c88aca0c25a2e000000001976a914fb774e8b36f0e7b74aea00175f85e1999ab9e3ea88aca0c25a2e000000001976a914fb574678a16f5be04c46c95ee0c65369cf71a34788aca0c25a2e000000001976a914fb0a0baa37b54e4fa1effffb346beaf424cc8cce88aca0c25a2e000000001976a914fa891ffcb0a11c76aa4f3d71facf78a590ae2b8288aca0c25a2e000000001976a914f9feb4a3aa9e50161d52c54bd55eb12210f09b8588aca0c25a2e000000001976a914f939ac0b52a54b498c91a3f7ba5eec80cf8d688488aca0c25a2e000000001976a914f8bdc2447132283a3507b37060ad1ae1156e1f2d88aca0c25a2e000000001976a914f81178ffaba06160ff713cb1f57ace80b2666c1088aca0c25a2e000000001976a914f68ba1678cbc97e22eb1a9edd9a234a03960eebb88aca0c25a2e000000001976a914f642c585d1d52614e873bed2af5a532971dd815588aca0c25a2e000000001976a914f606405494f7f15dd7f8d07d5fe9e5fe9e5ba97f88acc2b000c96cd162011976a914842a9258bacf0491f798d13a76afae991ca1351588aca0c25a2e000000001976a914f601c7ec754d89fdea640fd7d74d7085ece63c9d88ac37683864590100000000000000000000000000", + "tx_hash": "2f8b4178b56d0a9f0ad31afcbef6ff267a0bf655dcff72de530107a4c93407b6", + "from": [ + "R9tpBXKZa5cM3UAQsQjWp5j4Q1UkgzR4gZ" + ], + "to": [ + "R9XdXdBZpURHcXiDaT6GHgnhepD5hekMtz", + "R9ZSUanF8P1ucWo6ajpryeDhAJHL9jsNRx", + "RA2M71PZj82h2Q4QM5oKX7ow94MBoS2iW5", + "RA4k8TqzKB3m7aFytQAkaJTo46K8Xf7K7y", + "RARnkM3UGcVWqapKCnJRAQBTB9TRrAHci1", + "RAdpTP6nf3vk2aakdgA6RG2cqqBTjLr56o", + "RAiwLXQHNG7LGxwwJBBLa2LrJfFKDTm2Xz", + "RBdv1PnTRpsdJKVWbNXm7L8u1Xm7FBXJxF", + "RCSFK9rbnwmWZaDb4nHNGioXBaMoTiKmhT", + "RCcuPznoCewfUwaVL3HVTyRYB1UvD7TpPE", + "RD1M6ati1cawYu3X8KgqV2LAfbmF4mNTcz", + "RDE9ujdjYQ5EimxMxwpJd4t7CdwAqCVbTm", + "RDKUM3tM328biZC75FcuVz2Czu3APL9oMQ", + "RDWTLcni9dMz16KSxeFFwLBZ4RWR5m6iaj", + "RDifvcuZXNvvPGh6gK3EpSGYz3T7hfGMAr", + "REfHvJnHHWfRbJzu6BPPPT6wv9ZoNNkswg", + "REhqQxvveAARk8qEvfDyCGM8zpqCgtN11t", + "RErAULoZnBgT3XEAkMa7qWrm9tBP4YNF2K", + "RF9iNMehNgwjPfSxdUBhUeToDhVCr9ymNH", + "RFjU5SgqvA2LDZUkM9MTS7uaSRbxTPCV72", + "RFmXYWpPFC24EpnejKQwpU7bG8wesRodPJ", + "RFovZtwXCjAE8fAtB6xULQype7BVCQsxd1", + "RFp4rGbZPh6ZYc6aBTNMteCVEL91KsT5dX", + "RG2szs614CGnvSK4x1HsHxGsdrWampTFdm", + "RGcG4Ei5mPCHaGYvHfmqXLg9wBk7PFb8Co", + "RGzerR3niEJ2EUcfiMFZ2GCK51XzwmdzBF", + "RH6HZq7yHvLQES1xG7CcMMR6eYKpS4ct1t", + "RHqMGbqVdk8txXqne7wUwS6zduqxf5uQs8", + "RJEPPcc4yRzuhxSPHFpihEd4Y9A1dLh2P5", + "RJWX8EULEwMEaak9K2fmvcDpr9hRuWBUPj", + "RK3Ytedp7eAt3JxbDThpQ2EAD49X5eCs1i", + "RK9nMgWA5jwEEWss4pr9LeKopDy51q629G", + "RKtrYT7yN2ZgV8wqEj5c2EoZPMtB1gdjDR", + "RLJtEaBnSRBQDDi68zM4ZMhBpi5s4aY7Dz", + "RLnbJouZbzjNQJSQnRfqMrQ3sVaChJ49L6", + "RM3GVrjNGDVBaqJSk4WLCTAMcvuny8xvLG", + "RM6AH6cR9Ti5ogHSX7R5Ri7zfWXBZfpCKb", + "RM6TPcVhrDtRHk1NiMCwwbvH1mLCdnpcdm", + "RML2GmYtLpbcHxH234tZ9JGqJFdftD3aJ1", + "RMmdie2nx2fvSF2q5B6SQrbGzuwp7sNWW2", + "RNDRK5ydL7c4ca4s5oFjPrgzgbL1UMDzVU", + "RNq7F9akQsFw1nq6rRVCy4f24fKDFesh9B", + "RPCnXf4kRJcHAH8iEPYpmUUTG6BGKDUtFp", + "RPhLLowiL9qgVRHE85rtrziF2xvsWfWrju", + "RPw7x3vU1SmZoPcHpP4Ha8BupRExpaSXae", + "RPyqGQk8t9sVhFaSi9oCdcqWu77aWTXy7c", + "RQ6NzBKx3AevJauCfMrTSCHMcEkW5jfiwQ", + "RQFjJPBV2XbE2unBxs7wRX7p8jdcBr5ovc", + "RQPAdJGkY8eXpweKLhtbA3jxj23Ys9EALh", + "RR1JdBYW2dnHMgc1Gx27LfFiE1sMXRzW1S", + "RRGxsMWgcnsiiA9jrL7sXVwg2DQkx3rZWZ", + "RRKZkyL37MEDMcL7bkt59FC9brsFg3yn33", + "RRTHWEeWeqyzAGn3yNMmsr7jB4LFcEZ3Lu", + "RRqF4cYniMwYs66S4QDUUZ4GJQFQF69rBE", + "RSMDSHtX6f26fsi9dPY4WdCoF9zJygYLoE", + "RSk8ftPhRWN8n7sPiLq8vpz5NKUwNf2gcY", + "RTB98K3goXvaWqCY7roa8M7uZLU9UbgcX6", + "RTGA9vvJCuR8tpLntvNv4PEqnyuk3kL2HZ", + "RTcJ2ConuuyseVCSifjSLeXJ3JYKZuMchN", + "RThiPc9WM1CpREL9iKoW5PMHjXtau9WaDh", + "RTiXBQ1Xfad554je7XPKErVbRAX23SRrV4", + "RU44QaTc1CytYQGL9GGRs7CDHmzudZn6J7", + "RU9o3DDQkW52uSuYsDS7B5pT9yA2cpMvVk", + "RUFLybMiWpuv8kiyWMC2YViBnt8ZHWtZhH", + "RUNiGFwgVso4vicyuJyKAr67dmGd26uFa1", + "RV6RGu9XS24RE3dyfPYkvzTXo3DUMTn1uq", + "RVeGKoZLwVoYmMKSZZR2VZAZ1nuPch6L7e", + "RVfzdVBJo66qExMWcvWSV9uY6A7VASsGp5", + "RW1Lp1qVdJS3Yy1hr4BaULXVoHtvNdwAik", + "RW364N7iWW9GhBp88n3BXaWMaj2jZiYaNo", + "RW5vTN6kjSTUgXfR1CtwXZY77jjZu1dgEL", + "RWoTB98FD4bsCk9gt1XSjxj7ZRzCrUM9cg", + "RXhxSSzr8A4zwsuFJT6vCWxZFvwQEACLi7", + "RXi3o44fx45vSBbYmmHb1aPJd6cNSrbxzH", + "RXjJJ5PszpgHUAsc3PtCQfxeAwjGWVpiRW", + "RXkoaQJekHRTVdrauZBgvwuXHLapGZGRHR", + "RXtrb7Pyu4vv6o48FhvsTNnsBxsRsEKxvw", + "RXxQymQqTZ71aPGWDHTsi2zq5VtUrBcfUB", + "RXzyRQVvRTuK5UEUXTEjPzT8gHK3keE8WS", + "RY1n3hy7y2yaA5DEE2m3ngeuFMQn2aKfFz", + "RY53TYCYedZqw4hCkZyDJGsoQfGrvp2dsH", + "RY7uH5ijYuKoMY3T4z2PigQMEv6V5LGQxB", + "RYAZieHYFxJ8pxMWmikZons37XYtkWScK6", + "RYCAEf8DYzxiFv64YomAmVeaiFARCRDhnr", + "RYCpcFLshqKDornm9hyxKFy9btvWiwtPtx", + "RYEVnTtsjAAaBNo3MD7fTH78NPVK7XLck6", + "RYLkAWTgEHuq2G1brGR5FxVVbm62DPwt1E", + "RYMic1n9sDwwvMwRn3s6UV9rwBMMiLg9g5", + "RYNnbdkmc9fKMV9MbnG9PWCsf7oGmuT8F8", + "RYNzoqan9CQJJjMGmmkYAZuUbw4rtnVe88", + "RYPmxduQ7iozBtfd63cfDj1BRuv9qwgZdM", + "RYVFJntFkjgPGZ28eF41DEyQTBFSCQtymM", + "RYVZFnjJMwCursrayop7K793ienxXswLpz", + "RYVsRcQmTQiMP7kbZPmctDdBCJ2MjY3BJ3", + "RYbbBLPkktahqmWJNRFPZbRNHa88sPYxJ3", + "bFUa4aVz1QqDHMMqCzSHjFJCeSFELgYnqP", + "bKsba6eCwJifztKPjpFzLt9geve34ySY2Z", + "bNBVZDqAqFZsrjKkTZUDHXqPLjym66G1ZU", + "bQBx8Ft3yiZsvdZb42oavZfzKPAjZmyJt6", + "bQkUg7YBYVQkhBHHH4c58erctY5NnicbGM", + "bXP8vqnbWNcAZcLEv9VXTH6AJuc7BLRaPp" + ], + "total_amount": "998724855.46075177", + "spent_by_me": "0", + "received_by_me": "7.87696", + "my_balance_change": "7.87696", + "block_height": 146, + "timestamp": 1681418505, + "fee_details": { + "type": "Utxo", + "coin": "DOC", + "amount": "0.00005" + }, + "coin": "DOC", + "internal_id": "2f8b4178b56d0a9f0ad31afcbef6ff267a0bf655dcff72de530107a4c93407b6", + "transaction_type": "StandardTransfer", + "memo": null + } +] \ No newline at end of file diff --git a/mm2src/coins/for_tests/MORTY_HD_tx_history_fixtures.json b/mm2src/coins/for_tests/MORTY_HD_tx_history_fixtures.json deleted file mode 100644 index 1d35ebcfaa..0000000000 --- a/mm2src/coins/for_tests/MORTY_HD_tx_history_fixtures.json +++ /dev/null @@ -1,131 +0,0 @@ -[ - { - "tx_hex": "0400008085202f890189cb3d4e9d36a7c2c6bb1b76dcfc1ee7c9d3d83b364c50a3f3a791c5efb6f392030000006b483045022100a0b910ecbf5ed1c473507c3e1a5a06ad612c982d3204d2dc066bfbbeb39c5e400220559a82d151cbcdcb097786127f499863e0864662519a9caf758c929f1659bc34012102d09f2cb1693be9c0ea73bb48d45ce61805edd1c43590681b02f877206078a5b3ffffffff0400e1f505000000001976a914ab19b1f2bd2337a58c1b5d198468951ac42d796788ac00c2eb0b000000001976a914ab19b1f2bd2337a58c1b5d198468951ac42d796788aca01f791c000000001976a914ab19b1f2bd2337a58c1b5d198468951ac42d796788ac3091cce2e80000001976a91490a0d8ba62c339ade97a14e81b6f531de03fdbb288ac00000000000000000000000000000000000000", - "tx_hash": "6ca27dd058b939c98a33625b9f68eaeebca5a3058aec062647ca6fd7634bb339", - "from": [ - "RNTv4xTLLm26p3SvsQCBy9qNK7s1RgGYSB" - ], - "to": [ - "RNTv4xTLLm26p3SvsQCBy9qNK7s1RgGYSB", - "RQstQeTUEZLh6c3YWJDkeVTTQoZUsfvNCr" - ], - "total_amount": "10010.1518", - "spent_by_me": "0", - "received_by_me": "7.777", - "my_balance_change": "7.777", - "block_height": 1629306, - "timestamp": 1663619097, - "fee_details": { - "type": "Utxo", - "coin": "MORTY", - "amount": "0.0001" - }, - "coin": "MORTY", - "internal_id": "6ca27dd058b939c98a33625b9f68eaeebca5a3058aec062647ca6fd7634bb339", - "transaction_type": "StandardTransfer", - "confirmations": 4 - }, - { - "tx_hex": "0400008085202f89011b8746195a7e80172d948e1eb7f2d6710bd2ecbe7750e653bb8d345b940da55b030000006a4730440220482c7a7762977ed3a8afcf751b7413d5ef978f604e550eb4fd35199e1f4d52400220486fb4f3831a7f512dba1271a4f793e7050ea123bcb4922e3848bb18c7cac4c4012102d09f2cb1693be9c0ea73bb48d45ce61805edd1c43590681b02f877206078a5b3ffffffff0400e1f505000000001976a914bd658bdd369c8bb98ac837071639819e5f8dd3cb88ac00c2eb0b000000001976a914bd658bdd369c8bb98ac837071639819e5f8dd3cb88aca01f791c000000001976a914bd658bdd369c8bb98ac837071639819e5f8dd3cb88acf037389ce90000001976a91490a0d8ba62c339ade97a14e81b6f531de03fdbb288ac00000000000000000000000000000000000000", - "tx_hash": "70c62f42d65f9d71a8fb7f4560057b80dc2ecd9e4990621323faf1de9a53ca97", - "from": [ - "RNTv4xTLLm26p3SvsQCBy9qNK7s1RgGYSB" - ], - "to": [ - "RNTv4xTLLm26p3SvsQCBy9qNK7s1RgGYSB", - "RSYdSLRYWuzBson2GDbWBa632q2PmFnCaH" - ], - "total_amount": "10041.2602", - "spent_by_me": "0", - "received_by_me": "7.777", - "my_balance_change": "7.777", - "block_height": 1617702, - "timestamp": 1662914954, - "fee_details": { - "type": "Utxo", - "coin": "MORTY", - "amount": "0.0001" - }, - "coin": "MORTY", - "internal_id": "70c62f42d65f9d71a8fb7f4560057b80dc2ecd9e4990621323faf1de9a53ca97", - "transaction_type": "StandardTransfer", - "confirmations": 11603 - }, - { - "tx_hex": "0400008085202f890175fb4250e95dc0c89cd89a9487324aa8dd7a2f8fd8581fc90881567ca6be02bf000000006b483045022100be3e58c5d4dbe5ea35ab831d610b42bb1ae01fc0df1786f11cbe6969d8d45c6302207b8747b4012a6c4aefecf670eaf8d787445909ebd7775b85c77d723e9d6445a8012103f7f831c6fbe62b987e4b2f455e5b7f27375cf59b57eb3ffa9e122b2c9b395f6bffffffff0200e1f505000000001976a914c23136f831b15dd4522eb1c6eb4c5cd3abbfbe3b88aca8b66428000000001976a914bd658bdd369c8bb98ac837071639819e5f8dd3cb88ac00000000000000000000000000000000000000", - "tx_hash": "bd031dc681cdc63491fd71902c5960985127b04eb02211a1049bff0d0c8ebce3", - "from": [ - "RPj9JXUVnewWwVpxZDeqGB25qVqz5qJzwP" - ], - "to": [ - "RSYdSLRYWuzBson2GDbWBa632q2PmFnCaH", - "RSyz8EJaTzhkT6uZinAtHhFu5bfsvqcLqg" - ], - "total_amount": "7.77699", - "spent_by_me": "7.77699", - "received_by_me": "6.77689", - "my_balance_change": "-1.00010", - "block_height": 1499070, - "timestamp": 1655738171, - "fee_details": { - "type": "Utxo", - "coin": "MORTY", - "amount": "0.0001" - }, - "coin": "MORTY", - "internal_id": "bd031dc681cdc63491fd71902c5960985127b04eb02211a1049bff0d0c8ebce3", - "transaction_type": "StandardTransfer", - "confirmations": 130235 - }, - { - "tx_hex": "0400008085202f89038dea273bcc9194a80b19ea1a8ca076d3d00c590b4571808f10f3eee5aa38c07d000000006b483045022100ff31b7c36145dc9fa06346fe38b75b81273b41b7d236b900322154ba136799bb02204ddd253eb93e95c9d24f8e36a8a5a42022c63d6edd81c453f24cbb5db785037d012102d6a78b71b10459bd0757a614ca1eef62f4a65514225d10e95df31ee9cb23ffd5ffffffff8dea273bcc9194a80b19ea1a8ca076d3d00c590b4571808f10f3eee5aa38c07d010000006a47304402202d3e0fd3ce7b4753725adc0175a050c919f93b564682ffd8d65974c15996b3560220211b8120acb3ad80dbdd9160f639884f0e15c0c5703c86c069b3abe85cb6c4fd012102d6a78b71b10459bd0757a614ca1eef62f4a65514225d10e95df31ee9cb23ffd5ffffffff8dea273bcc9194a80b19ea1a8ca076d3d00c590b4571808f10f3eee5aa38c07d020000006b483045022100c788b064db34e961479393bad19d8c5f7d437b02c64c3172381fbe2b7d104efd022027167b2e5a6f29a7567e43b39a3d5b8f50c20767162ec29328067a6fcbd87409012102d6a78b71b10459bd0757a614ca1eef62f4a65514225d10e95df31ee9cb23ffd5ffffffff01b8be5a2e000000001976a9149e7a424abb2f341d655ce6af1143409edef4d55588acbdb1d661000000000000000000000000000000", - "tx_hash": "bf02bea67c568108c91f58d88f2f7adda84a3287949ad89cc8c05de95042fb75", - "from": [ - "RYM6yDMn8vdqtkYKLzY5dNe7p3T6YmMWvq" - ], - "to": [ - "RPj9JXUVnewWwVpxZDeqGB25qVqz5qJzwP" - ], - "total_amount": "7.777", - "spent_by_me": "7.777", - "received_by_me": "7.77699", - "my_balance_change": "-0.00001", - "block_height": 1263905, - "timestamp": 1641460263, - "fee_details": { - "type": "Utxo", - "coin": "MORTY", - "amount": "0.00001" - }, - "coin": "MORTY", - "internal_id": "bf02bea67c568108c91f58d88f2f7adda84a3287949ad89cc8c05de95042fb75", - "transaction_type": "StandardTransfer", - "confirmations": 365400 - }, - { - "tx_hex": "0400008085202f8901fe0ccc272929c811b20ab910f5478a99229a5304480b5897cf9507149a044c63030000006b483045022100c5b24fbd1ce11736760ebc0edccad6bde2dcbbff090528db4602a485a5ec645f02201340e5f818b9d7ab75e39abaacaa5d94c03fdb8e41698182eeff389a45c5ad15012102d09f2cb1693be9c0ea73bb48d45ce61805edd1c43590681b02f877206078a5b3ffffffff0400e1f505000000001976a914fd084ad97ae0313bba5717acedfba629b8bd426988ac00c2eb0b000000001976a914fd084ad97ae0313bba5717acedfba629b8bd426988aca01f791c000000001976a914fd084ad97ae0313bba5717acedfba629b8bd426988ac40053045260100001976a91490a0d8ba62c339ade97a14e81b6f531de03fdbb288ac00000000000000000000000000000000000000", - "tx_hash": "7dc038aae5eef3108f8071450b590cd0d376a08c1aea190ba89491cc3b27ea8d", - "from": [ - "RNTv4xTLLm26p3SvsQCBy9qNK7s1RgGYSB" - ], - "to": [ - "RNTv4xTLLm26p3SvsQCBy9qNK7s1RgGYSB", - "RYM6yDMn8vdqtkYKLzY5dNe7p3T6YmMWvq" - ], - "total_amount": "12646.5887", - "spent_by_me": "0", - "received_by_me": "7.777", - "my_balance_change": "7.777", - "block_height": 1263875, - "timestamp": 1641458818, - "fee_details": { - "type": "Utxo", - "coin": "MORTY", - "amount": "0.0001" - }, - "coin": "MORTY", - "internal_id": "7dc038aae5eef3108f8071450b590cd0d376a08c1aea190ba89491cc3b27ea8d", - "transaction_type": "StandardTransfer", - "confirmations": 365430 - } -] \ No newline at end of file diff --git a/mm2src/coins/qrc20/qrc20_tests.rs b/mm2src/coins/qrc20/qrc20_tests.rs index 912222d7bc..99e48690e7 100644 --- a/mm2src/coins/qrc20/qrc20_tests.rs +++ b/mm2src/coins/qrc20/qrc20_tests.rs @@ -3,7 +3,7 @@ use crate::{DexFee, TxFeeDetails, WaitForHTLCTxSpendArgs}; use common::{block_on, wait_until_sec, DEX_FEE_ADDR_RAW_PUBKEY}; use crypto::Secp256k1Secret; use itertools::Itertools; -use keys::{Address, AddressBuilder}; +use keys::Address; use mm2_core::mm_ctx::MmCtxBuilder; use mm2_number::bigdecimal::Zero; use rpc::v1::types::ToTxHash; @@ -13,8 +13,9 @@ use std::mem::discriminant; cfg_native!( use crate::utxo::rpc_clients::UnspentInfo; - use mocktopus::mocking::{MockResult, Mockable}; use chain::OutPoint; + use keys::AddressBuilder; + use mocktopus::mocking::{MockResult, Mockable}; ); const EXPECTED_TX_FEE: i64 = 1000; diff --git a/mm2src/coins/utxo/utxo_common_tests.rs b/mm2src/coins/utxo/utxo_common_tests.rs index 4a716182a7..56599fb06a 100644 --- a/mm2src/coins/utxo/utxo_common_tests.rs +++ b/mm2src/coins/utxo/utxo_common_tests.rs @@ -11,6 +11,7 @@ use crate::{compare_transaction_details, UtxoStandardCoin}; use common::custom_futures::repeatable::{Ready, Retry}; use common::executor::{spawn, Timer}; use common::jsonrpc_client::JsonRpcErrorType; +use common::log::info; use common::PagingOptionsEnum; use crypto::privkey::key_pair_from_seed; use itertools::Itertools; @@ -20,17 +21,16 @@ use std::convert::TryFrom; use std::num::NonZeroUsize; use std::time::Duration; -pub(super) const TEST_COIN_NAME: &str = "RICK"; -// Made-up hrp for rick to test p2wpkh script -pub(super) const TEST_COIN_HRP: &str = "rck"; +pub(super) const TEST_COIN_NAME: &str = "DOC"; +// Made-up hrp for DOC to test p2wpkh script +pub(super) const TEST_COIN_HRP: &str = "doc"; pub(super) const TEST_COIN_DECIMALS: u8 = 8; -const MORTY_HD_TX_HISTORY_STR: &str = include_str!("../for_tests/MORTY_HD_tx_history_fixtures.json"); +const DOC_HD_TX_HISTORY_STR: &str = include_str!("../for_tests/DOC_HD_tx_history_fixtures.json"); lazy_static! { - static ref MORTY_HD_TX_HISTORY: Vec = parse_tx_history(MORTY_HD_TX_HISTORY_STR); - static ref MORTY_HD_TX_HISTORY_MAP: HashMap = - parse_tx_history_map(MORTY_HD_TX_HISTORY_STR); + static ref DOC_HD_TX_HISTORY: Vec = parse_tx_history(DOC_HD_TX_HISTORY_STR); + static ref DOC_HD_TX_HISTORY_MAP: HashMap = parse_tx_history_map(DOC_HD_TX_HISTORY_STR); } fn parse_tx_history(history_str: &'static str) -> Vec { json::from_str(history_str).unwrap() } @@ -184,6 +184,7 @@ where repeatable!(async { let response = my_tx_history_v2_impl(ctx.clone(), coin, req.clone()).await.unwrap(); + info!("LIMIT: {}", response.transactions.len()); if response.transactions.len() >= expected_txs { return Ready(response); } @@ -195,11 +196,11 @@ where .unwrap() } -pub(super) fn get_morty_hd_transactions_ordered(tx_hashes: &[&str]) -> Vec { +pub(super) fn get_doc_hd_transactions_ordered(tx_hashes: &[&str]) -> Vec { tx_hashes .iter() .map(|tx_hash| { - MORTY_HD_TX_HISTORY_MAP + DOC_HD_TX_HISTORY_MAP .get(*tx_hash) .unwrap_or_else(|| panic!("No such {:?} TX in the file", tx_hash)) .clone() @@ -261,20 +262,20 @@ pub(super) async fn test_electrum_display_balances(rpc_client: &ElectrumClient) /// when [Trezor Daemon Emulator](https://github.com/trezor/trezord-go#emulator-support) is integrated. pub(super) async fn test_hd_utxo_tx_history_impl(rpc_client: ElectrumClient) { let ctx = mm_ctx_with_custom_db(); - let hd_account_for_test = UtxoHDAccount { account_id: 0, extended_pubkey: Secp256k1ExtendedPublicKey::from_str("xpub6DEHSksajpRPM59RPw7Eg6PKdU7E2ehxJWtYdrfQ6JFmMGBsrR6jA78ANCLgzKYm4s5UqQ4ydLEYPbh3TRVvn5oAZVtWfi4qJLMntpZ8uGJ").unwrap(), account_derivation_path: StandardHDPathToAccount::from_str("m/44'/141'/0'").unwrap(), - external_addresses_number: 11, - internal_addresses_number: 3, + external_addresses_number: 10, + internal_addresses_number: 0, derived_addresses: HDAddressesCache::default(), }; + let mut hd_accounts = HDAccountsMap::new(); hd_accounts.insert(0, hd_account_for_test); let mut fields = utxo_coin_fields_for_test(rpc_client.into(), None, false); - fields.conf.ticker = "MORTY".to_string(); + fields.conf.ticker = "DOC".to_string(); fields.derivation_method = DerivationMethod::HDWallet(UtxoHDWallet { hd_wallet_rmd160: "6d9d2b554d768232320587df75c4338ecc8bf37d".into(), hd_wallet_storage: HDWalletCoinStorage::default(), @@ -285,50 +286,49 @@ pub(super) async fn test_hd_utxo_tx_history_impl(rpc_client: ElectrumClient) { }); let coin = utxo_coin_from_fields(fields); - let current_balances = coin.my_addresses_balances().await.unwrap(); - let storage = TxHistoryStorageBuilder::new(&ctx).build().unwrap(); spawn(utxo_history_loop( coin.clone(), storage, ctx.metrics.clone(), - current_balances, + current_balances.clone(), )); let target = MyTxHistoryTarget::AccountId { account_id: 0 }; - let tx_history = wait_for_tx_history_finished(&ctx, &coin, target, 4, 30).await; + let tx_history = wait_for_tx_history_finished(&ctx, &coin, target, 1, 20).await; let actual: Vec<_> = tx_history.transactions.into_iter().map(|tx| tx.details).collect(); - let expected = get_morty_hd_transactions_ordered(&[ - "70c62f42d65f9d71a8fb7f4560057b80dc2ecd9e4990621323faf1de9a53ca97", - "bd031dc681cdc63491fd71902c5960985127b04eb02211a1049bff0d0c8ebce3", - "bf02bea67c568108c91f58d88f2f7adda84a3287949ad89cc8c05de95042fb75", - "7dc038aae5eef3108f8071450b590cd0d376a08c1aea190ba89491cc3b27ea8d", - ]); + let expected = + get_doc_hd_transactions_ordered(&["2f8b4178b56d0a9f0ad31afcbef6ff267a0bf655dcff72de530107a4c93407b6"]); assert_eq!(actual, expected); - // Activate new `RQstQeTUEZLh6c3YWJDkeVTTQoZUsfvNCr` address. + // Activate new `RYM6yDMn8vdqtkYKLzY5dNe7p3T6YmMWvq` address. match coin.as_ref().derivation_method { DerivationMethod::HDWallet(ref hd_wallet) => { let mut accounts = hd_wallet.accounts.lock().await; - accounts.get_mut(&0).unwrap().internal_addresses_number += 1 + accounts.get_mut(&0).unwrap().external_addresses_number += 1 }, _ => unimplemented!(), } + let storage = TxHistoryStorageBuilder::new(&ctx).build().unwrap(); + spawn(utxo_history_loop( + coin.clone(), + storage, + ctx.metrics.clone(), + current_balances, + )); + // Wait for the TX history loop to fetch Transactions of the activated address. let target = MyTxHistoryTarget::AccountId { account_id: 0 }; - let tx_history = wait_for_tx_history_finished(&ctx, &coin, target, 5, 60).await; + let tx_history = wait_for_tx_history_finished(&ctx, &coin, target, 2, 20).await; let actual: Vec<_> = tx_history.transactions.into_iter().map(|tx| tx.details).collect(); - let expected = get_morty_hd_transactions_ordered(&[ + let expected = get_doc_hd_transactions_ordered(&[ // New transaction: - "6ca27dd058b939c98a33625b9f68eaeebca5a3058aec062647ca6fd7634bb339", - "70c62f42d65f9d71a8fb7f4560057b80dc2ecd9e4990621323faf1de9a53ca97", - "bd031dc681cdc63491fd71902c5960985127b04eb02211a1049bff0d0c8ebce3", - "bf02bea67c568108c91f58d88f2f7adda84a3287949ad89cc8c05de95042fb75", - "7dc038aae5eef3108f8071450b590cd0d376a08c1aea190ba89491cc3b27ea8d", + "2f8b4178b56d0a9f0ad31afcbef6ff267a0bf655dcff72de530107a4c93407b6", + "071200b4b2967cfe3522b8a6713b8bdcd09f74a17d575fad87b4e97bc442f404", ]); assert_eq!(actual, expected); } diff --git a/mm2src/coins/utxo/utxo_wasm_tests.rs b/mm2src/coins/utxo/utxo_wasm_tests.rs index 9c11359d73..a33e1ba039 100644 --- a/mm2src/coins/utxo/utxo_wasm_tests.rs +++ b/mm2src/coins/utxo/utxo_wasm_tests.rs @@ -11,7 +11,7 @@ use wasm_bindgen_test::*; wasm_bindgen_test_configure!(run_in_browser); -const TEST_COIN_NAME: &str = "RICK"; +const TEST_COIN_NAME: &str = "DOC"; pub async fn electrum_client_for_test(servers: &[&str]) -> ElectrumClient { let ctx = MmCtxBuilder::default().into_mm_arc(); @@ -73,6 +73,6 @@ async fn test_electrum_display_balances() { #[wasm_bindgen_test] async fn test_hd_utxo_tx_history() { - let rpc_client = electrum_client_for_test(&["electrum1.cipig.net:30018", "electrum2.cipig.net:30018"]).await; + let rpc_client = electrum_client_for_test(DOC_ELECTRUM_ADDRS).await; utxo_common_tests::test_hd_utxo_tx_history_impl(rpc_client).await; }