/*
* Follow the Bitcoin
* Copyright (C) 2014 Danno Ferrin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package com.shemnon.btc.bitcore;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
*
* Created by shemnon on 2 Mar 2014.
*/
public class BCTxTest {
static final double SUB_SATOSHI = Math.nextDown(0.000_000_01D);
@Test
public void testParse424242() {
BCTx txInfo = BCTx.fromJson("{\"txid\":\"3a1b9e330d32fef1ee42f8e86420d2be978bbe0dc5862f17da9027cf9e11f8c4\",\"version\":1,\"locktime\":0,\"vin\":[{\"txid\":\"b1a62f2a187ba62fb96b4b1fa88fb3e3fa463b90acae9a8de479b402e247a53b\",\"vout\":1,\"scriptSig\":{\"asm\":\"3046022100c18215971b13b83c171a77be75ed6b31917b5faea7fa6ab3297bac943b36fbbc022100fb2e1a50d9da98d00bb4592c463a3b8955db199edf8dd3f450cf95a0ea5bc6ef01 04406289e738f4af892ff13f475b3916ddf6c903986469fbae09a9ceb0f464d13b1cb6f405b422f83ed6b3b61907af3e426d4beef1fbfd7f74f60d0a439b5a104e\"},\"sequence\":4294967295,\"n\":0,\"addr\":\"17dxcM1cdeXPL1rZNJDAFwU2C4H9Xf5VqR\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"18f6f19fba6ee4ea4ac465b4314409dccd06a1634ae1f2e27aa601e99be8d740\",\"vout\":1,\"scriptSig\":{\"asm\":\"304502206b746206cdbe2b782210af05007cbca84872a08244fc3cb4fa9b2636df7d6e0b022100f500472f6f8937e070cab85e6b662a935211ca1af5f7bb6b37c464cdac220cdd01 04d01c47796cd81f469056ddbdafa272731f880cdb4c69a0a34aee93fb27345c331788d8c165d415d8f56d5fa72765d12050a1358f093153936fb3af282ebdb25d\"},\"sequence\":4294967295,\"n\":1,\"addr\":\"19H4PcfyPCw8FUh5J1pma5Bb9w2srhYcQ4\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"d180ef792756fedb3701a625e8761faa78aff6d8390c6ee88f0c2547f766c80f\",\"vout\":1,\"scriptSig\":{\"asm\":\"304502206ca736dbc5aaf2c7815265406a5524789a45e35f973c3878ad35882124e93ab1022100a902023a2471d5a0bb35be16ad1e860c42f4240807fcf1711ce8f1c5cf00162b01 043d86a9d8c57eaa2a2ae40fc491d48d33c61e78973f71a183a1a35c120e0581c326afb27cd742d8d023b62161e542ac2bbdef3974e29488bbc4f1d26861bb0295\"},\"sequence\":4294967295,\"n\":2,\"addr\":\"1LfddcwiNnJ7Hk3KpBv5AfcTMD1fCahLqY\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"417c60af2b8dd57462c929c57b8fa6b7ef688ac5459e1219a624f86e734d304e\",\"vout\":1,\"scriptSig\":{\"asm\":\"3046022100defb79d2d5e02dffc8af7ffdd87d52c2fd676421dc41056b0087f5ec5a5014230221009af00419ca5d61c92fe9499c9cdc8468be5f559bc5e7168fbeb6dec1298ca84201 04923fa2e9b8d0360f6b184b230a8e28ee15729e2380f554731f877d3d3f01f8c65bc768b41030c05e4456dd0da8c2e460c865f829b79f763cb54d60140aff8544\"},\"sequence\":4294967295,\"n\":3,\"addr\":\"15oGga9EJ7BzdZxFnEcDxQDZvh1dHZ6Zco\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"dd7da6014761106e3cde3ea654ab0ba02efec042f0cb0941bce03c16e7b3776a\",\"vout\":1,\"scriptSig\":{\"asm\":\"3045022100fee2be4327a6ca8367bea2be8ce973b564cf8b03cf2e0db2eec86bb098c1e63302206c16321bc635e7d0423a8d4c53006b43240689398a700d35632cc06ace27322a01 0480dd32df45bbd507ed31a719cb5f355682d474a37c209c2430d07156fc60e2d9b638f29ee0c6b7f533970fac8595bba552257a82f45dd61aac93d582ece49953\"},\"sequence\":4294967295,\"n\":4,\"addr\":\"1FfsbQntU2BAkVy2xaaRpSmLEDMEUwPbG1\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"981327361763c3dffa934e9c7995f27cf680de32e3afcb3fb6401485e3083581\",\"vout\":1,\"scriptSig\":{\"asm\":\"3044022077093416cfa5bfc75bc791d93263ade37fef4afbc0f9cb6c3af551f09d8af51902204197c30acc605cbe9cd04c75688eaf4a63128a1a4ba96509fa125ba78d406f5c01 048ec93a3c9face92d497833e106226ccb391f57dd5715920cb0d59ad09dbc01222e9c40a11f09e7822e1846792fd9fe6455859e662ff7f3e128d2e9d06a99fc9d\"},\"sequence\":4294967295,\"n\":5,\"addr\":\"1MtyGxTeWmjNhXyBf85JPKL5vrhTRJ7HnD\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"89ff26e574c0b7d143ff333e09d05ce7bde9c5e39cd0136d198f47fc4cde928e\",\"vout\":1,\"scriptSig\":{\"asm\":\"304502200f00398b87c9a72317e17c3cce58ca1e6b621f85083be1f4497573f35bb8b6e7022100805a02f8c1b0510ae7fcf28bd053cd263d6dae978ad8c15d03a1fb47687aaa8101 0467410809f679c093df46119c3e5cb490dccfb0e93cf6ac1c31b4dc485cec1f181af98d2cfc3d93e611e1c65ce33b08abce87513061909377fb03715064d8c6eb\"},\"sequence\":4294967295,\"n\":6,\"addr\":\"14yX4kRDME61BbM7DMnuv1PKUtk8K65J4y\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null},{\"txid\":\"0fe90c93606e20658f6ec200b909e7792cbd531c82e883610aad78e952f2359b\",\"vout\":1,\"scriptSig\":{\"asm\":\"304402202c0d331b5dab0d6ddfc03b1ff13b1857f476671099e70e72cc1e8631676ad91102204e2bec31f3ad582e0fbbf326903de1597b9b2bd9413245cce32c5d9cceda32d601 04c27a852aca7288d88364ac7292dae7280507dac52333729f7ba3c48ea3e55b28bf7d2d4aa2e4cdba79af9e3567cb82d53cf04a5c07f76cd76bce7aea2bc38a07\"},\"sequence\":4294967295,\"n\":7,\"addr\":\"191sZm1o7WZ1baNqUmRow6RPo293gbeJLW\",\"valueSat\":4200000000000,\"value\":42000,\"doubleSpentTxID\":null},{\"txid\":\"d6a5607171c7fc5ba1254503be8b25766276f9bb9d39cf1ec65027df956e45d7\",\"vout\":1,\"scriptSig\":{\"asm\":\"30450220160a9498c262e667ca4bfa10f9a9a402c4fabd1bbc571dc23b062c05f490e004022100b7c13648aa5fe4b6d920a670a1cedd01ce45a5ee9c6ab7cb88d1123aaca7a8d001 04e515a835ee55a93ae47b57818bddc2c04c22262245d22761b8572c78981f50d29add989954435ff6bcc17607ab1fd5b290af2d1777731f21914ffbe3b73f9737\"},\"sequence\":4294967295,\"n\":8,\"addr\":\"1Q4EpJ6eaXDV1mEHx7JgupBuGNi4GBcMbV\",\"valueSat\":5000000000000,\"value\":50000,\"doubleSpentTxID\":null}],\"vout\":[{\"value\":17757.57575758,\"n\":0,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 ba719365435117b92a4492e086057ade4e80047b OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1Hzpk4eXTbrAfmH2noWrkrgxo6ewH6qncd\"]},\"spentTxId\":\"71f48f62618b991248e47d66ab2a16d6c59e7336a94e85a9fa85bafc777c9e52\",\"spentIndex\":7,\"spentTs\":1314412166},{\"value\":424242.42424242,\"n\":1,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 070d550bc5bc843149410b8863b5b72857d91439 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1eHhgW6vquBYhwMPhQ668HPjxTtpvZGPC\"]},\"spentTxId\":\"7a2a6f66e87ed4e72d85ba7a82eda1572605c3330c461e171f58d7ff2763ac63\",\"spentIndex\":0,\"spentTs\":1310996729}],\"blockhash\":\"00000000000004bea72d0f390194b08162665a4fc99469c576338cd37164a15a\",\"confirmations\":158179,\"time\":1308811815,\"blocktime\":1308811815,\"valueOut\":442000,\"size\":1698,\"firstSeenTs\":1308811815,\"valueIn\":442000,\"fees\":0}");
assertEquals(442000, txInfo.getInputValue(), SUB_SATOSHI);
assertEquals(442000, txInfo.getOutputValue(), SUB_SATOSHI);
assertEquals(0, txInfo.getFeePaid(), SUB_SATOSHI);
assertEquals(442_000_000_000_00L, txInfo.getInputValueSatoshi());
assertEquals(442_000_000_000_00L, txInfo.getOutputValueSatoshi());
assertEquals(0L, txInfo.getFeePaidSatoshi());
assertEquals(1775757575758L, txInfo.getOutputs().get(0).getValueSatoshi());
assertEquals(17757.57575758, txInfo.getOutputs().get(0).getValue(), SUB_SATOSHI);
assertEquals(424242.42424242, txInfo.getOutputs().get(1).getValue(), SUB_SATOSHI);
assertEquals(42424242424242L, txInfo.getOutputs().get(1).getValueSatoshi());
}
@Test
public void testParseFeeTrans() {
BCTx txInfo = BCTx.fromJson("{\"txid\":\"103bb04aa6da1bc6878295f4f520202fee3c68328e8a984cc572d67e2b9ab1f0\",\"version\":1,\"locktime\":0,\"vin\":[{\"txid\":\"b7133f3c888b8939fcbe908039158b4aa7d9a2064d747b869d608828599a4f10\",\"vout\":19,\"scriptSig\":{\"asm\":\"30440220016e9fb6460d5aca2deafb53d4dc12fc5fcc371cfc2c962b4370bf81e41ba5c702203680a1d42e357ca1b1f1bfa2c57ab4641a91ba9ab20f2d02bb1350181ed7904601 045c6a617a18f9a10143782fc8a8fc9999c7379323cd42f8ff9880b5fbbdda023ed649edc4c1fc7daa2b69ca8b9c1f3eb9150d7c22930fdbca17712781bbc797f4\"},\"sequence\":4294967295,\"n\":0,\"addr\":\"1LFrDULxpGCFLN61miVjoGw59JNQZ6PxU8\",\"valueSat\":128988620,\"value\":1.2898862,\"doubleSpentTxID\":null},{\"txid\":\"9755b2db4aa653e6786bf613b12bf7349b4f97aa2b40908ab986ac0be7c5c231\",\"vout\":0,\"scriptSig\":{\"asm\":\"304502200f6bc271fba8e8efcff48f3fb38f50f47d67659e74ebf0236caf56bdefa4c627022100dd6c9383fa4a5c301c5e9adccd64dcfd6eddbeabb05c8574d8a3acdc0bad2e0a01 045522057fa63de48d7fa33da8afdbe8c1b625613204ac7c698013c78a07ae83994a349dfa3b4095d5f0d9cdeae44d0f4cd8524e48ac0cffbb2ad179fd1f536669\"},\"sequence\":4294967295,\"n\":1,\"addr\":\"1Pm3k1dhJ2ZCUTBvX5YiqyjPCVfc2r2ajL\",\"valueSat\":81786209,\"value\":0.81786209,\"doubleSpentTxID\":null},{\"txid\":\"df49a706ca602e599a30f8f4027cffa80d65c2d1244b9490c1a660558d6e5736\",\"vout\":8,\"scriptSig\":{\"asm\":\"304502201ffa9fa1f41a5bef0562a2687e986d8ab9add59a1773426e9e12a82efdd95793022100c4ad8d27f47675576eaadedd5b6068600daa905d35d0e51694f8e4ea614cf27d01 04833f6bba1f5bd5873c9bdb5d75c1065edeb82d76abb47b4851de12615456804246ef3d85d0a611b8741a5a532255413d4bf33c9c0aa07ce4db1841c6e74a7b76\"},\"sequence\":4294967295,\"n\":2,\"addr\":\"19gtnRui6L2ucJFM4G41XKmPpMCXp1Pyq4\",\"valueSat\":127753590,\"value\":1.2775359,\"doubleSpentTxID\":null},{\"txid\":\"134f4b2176d5d690a7914197cbe80a379d06ed1da835a580e09f7b660e92261b\",\"vout\":8,\"scriptSig\":{\"asm\":\"3045022100d88aee3fb42066e54b9476707a3956a2bf366456b4ba1bda0d4b8344ecf03eec022073c5bb6f616395b1617769e57233bad49cbd7f77b53bb104063ddc4a3f7bda0801 049eda81983c2c69dabe8b03bb4d6fdd5f728fd14ecc60d8dbf96e49b6e9802b0c9f39f8280a98d5ae62606fda7db020045a197dbb3b253cf258270acb68608351\"},\"sequence\":4294967295,\"n\":3,\"addr\":\"1PdCBSyDBKoWPUTrVRfYmJmm4vU3vLrCTd\",\"valueSat\":6000000,\"value\":0.06,\"doubleSpentTxID\":null},{\"txid\":\"134f4b2176d5d690a7914197cbe80a379d06ed1da835a580e09f7b660e92261b\",\"vout\":10,\"scriptSig\":{\"asm\":\"3046022100a30416fa3232999ba2816cbc26645410d7469482008713865aadbc0f310d3523022100e2d3265a1e884f1f075fb9272950f7fc696baba8665aecaa15d8bc0d9730ca1301 044b6a0a921e8e2a9114aa66b07b5fcec01e2300609c74a7870aad6832e911f78cb7af997cf96c41ccf80965520b6b6e1018e7b284ef9b05e34ce1484fe717bf48\"},\"sequence\":4294967295,\"n\":4,\"addr\":\"1CLFRYyqRbCju1LjWyyq72xsL7ZHt1ibQ5\",\"valueSat\":13667224,\"value\":0.13667224,\"doubleSpentTxID\":null},{\"txid\":\"9755b2db4aa653e6786bf613b12bf7349b4f97aa2b40908ab986ac0be7c5c231\",\"vout\":6,\"scriptSig\":{\"asm\":\"304502207a597e83810a10df0f3dd7adf636be903d689bfdaad093a40d998fbf4e8d721e022100bc1471a841ebcca752562e179cff7ee832ed86efea9093f8ac301302c5347bcb01 030e477d420a738e5c6a8ce181887f9cfde120e156a26d5618214e8c39dccb062c\"},\"sequence\":4294967295,\"n\":5,\"addr\":\"16atfQSbR1DDiwQ1eJmQdCDFUvemSzr6JQ\",\"valueSat\":66432334,\"value\":0.66432334,\"doubleSpentTxID\":null},{\"txid\":\"e5ba96df75a9a9f80fdf96a4c7375df38b23f34238b41d3a7e29604fb32752b1\",\"vout\":10,\"scriptSig\":{\"asm\":\"3045022100e133945fda8fad9d2a8eb00fd27ce4673aae0fedc2ec705f22562dd4d75e5b0b02204122f5e52002bf516251a89b198f561c87d2f5ab3e25f0d155d59a9bc3bfce1801 04c54b97b547095734d85083f6c8d55831ab6b9a019bf4d5d594a9481606a577c4eac340377749ab0c71062ed33014a34484bac7d8e69fd58eec3306aefbebd6ab\"},\"sequence\":4294967295,\"n\":6,\"addr\":\"17z9BopWZqWM3T9hAB8MG14aQ8f2ctjTxq\",\"valueSat\":23064531,\"value\":0.23064531,\"doubleSpentTxID\":null},{\"txid\":\"d4bfd1d34d9256e2e578bed723f558466eaf8ab7f6cf37cf8ffb5483cbb726ac\",\"vout\":10,\"scriptSig\":{\"asm\":\"3045022100908b23487d45e950214bf0d2b68fd1c23eb29949f624dc92fff1dffb31907da802200824441a5f69f3e975f45d2c70b6491793c33bc4c1533e56ee274de56900ca6501 04bf685e5238612c530be19bc523d69faa9336cd46193a32d448a1b06bae6fa58784944cd9470c3b687eec056144740f856d124099b63aa5a15ce4240acdefbcb4\"},\"sequence\":4294967295,\"n\":7,\"addr\":\"1NpX27L2euokQquyvMQDXXFAbwFxpQPsBM\",\"valueSat\":19200397,\"value\":0.19200397,\"doubleSpentTxID\":null},{\"txid\":\"8839cc63f0891b2c1e4e12b7306b0e2f68fe54fa2e7168b5bcaf57257ceacf06\",\"vout\":10,\"scriptSig\":{\"asm\":\"3044022036311485195deb0c3de1661dafa4c4be135fc2ee8477a337094e4e489094b8cd02202295c0b5a907a25422d7436d21fad237627bc4b7ab66060cfc439c49da86965901 02fe79faf43d61b67868d7eed7640d197bea52053374b87c7e5cb42d20a06fb854\"},\"sequence\":4294967295,\"n\":8,\"addr\":\"1FPAYJxL539xqwXZH9quwjivcCvT4w8byD\",\"valueSat\":9100000,\"value\":0.091,\"doubleSpentTxID\":null},{\"txid\":\"e5ba96df75a9a9f80fdf96a4c7375df38b23f34238b41d3a7e29604fb32752b1\",\"vout\":2,\"scriptSig\":{\"asm\":\"3046022100b8d589bd16c381a2201f352cddd6ae2285af18efcf4dc8346f2b8a92fede589a022100a0a1fd29f7f3c49f347bc72c7dc81827e64d7fd3b30209be516e42506d28c3dc01 04ef43455eefbdb9d44b23f3ab3fe8cc10966d0c0269bdfa02c05a2ff50f286a78b2832660cc6b7036162829dd5dd8e7145abfb1cb74af773761548c027dbf5c18\"},\"sequence\":4294967295,\"n\":9,\"addr\":\"14KGz2gxx5N4kszMKe8UXcVbyNe9jsXzPJ\",\"valueSat\":4864531,\"value\":0.04864531,\"doubleSpentTxID\":null},{\"txid\":\"8882a9f564585bc9f8419d2ae12e0546892e6ca1b401d0d81b66ca4aaf4fb86e\",\"vout\":3,\"scriptSig\":{\"asm\":\"3045022068c87f324116466d69f0f01bb5611f651a2cef9452bbe283003bca007a882e9c02210082eb3a91ee950c3c4dd02aa723ef48404721cf4eebf16fbcdab9d7167f8eadac01 04bf81cac54fc1a67d2dacd953210c1503f0919e3dc96e668b4412710d00bdee49672e86c48123a8822f60d5265ab3a9d3be640bec2e57f32ad037cfff8bd9ccc2\"},\"sequence\":4294967295,\"n\":10,\"addr\":\"1NS1jBm1zcHuL6yAZyk9yDgyznHwSBPo8Z\",\"valueSat\":129591664,\"value\":1.29591664,\"doubleSpentTxID\":null},{\"txid\":\"f8962bfe8ddad1e11e619f218d17a2cef2d098a88dd1a284d1d40c620d7477af\",\"vout\":0,\"scriptSig\":{\"asm\":\"304502205ac2c0b0570d73bdaa4d81ec34365f655b12273a1dd89538496bb5536b45597c022100bc936fd11d55e1552cbea1e7dc18cfc41617809dcaed6ef376944031ffb7034b01 022621590883bb6e64408a69a563d3403803c9d1737a1877bb9fee9be886c06641\"},\"sequence\":4294967295,\"n\":11,\"addr\":\"1PBWqwfKemMiETe7Xy1NoMF3919KnT8Kq3\",\"valueSat\":15100000,\"value\":0.151,\"doubleSpentTxID\":null},{\"txid\":\"01c1500773cfd1411af34e197d12fe263cfa8d384cd5fc92f9fa0ab464037769\",\"vout\":5,\"scriptSig\":{\"asm\":\"30450220384fc251de45fd820f2f1fa279fbe9a768c6dff96f54e912b29f280620e97b7c022100e503f7be2c2363edd70dd7f05a89159fb8a0c6e579d5deae823c6c6417af762201 0385300d4be11ee2286a80580b2c40cef7aa901803508f7c2337d83e6cb6fe93a3\"},\"sequence\":4294967295,\"n\":12,\"addr\":\"1Hxjmqe2zhahhSiYyV91UwStmM4op4MMPr\",\"valueSat\":129220711,\"value\":1.29220711,\"doubleSpentTxID\":null},{\"txid\":\"134f4b2176d5d690a7914197cbe80a379d06ed1da835a580e09f7b660e92261b\",\"vout\":4,\"scriptSig\":{\"asm\":\"3046022100e3ecd7a4e766415ba81587cc182dc629bee10cc9b022bd453c1c5278045c420d022100abfef2d175093b0944661f6bb69263260c09520a597dfabea7dc901149a5544401 042b1bbcc77b32f410ecc314a2079343ce584a546043a9a26fae0d4d0dc4a5d068a2acc4a7e1b14bc5704da963985333c70a0963fcc9463ab1c012e9a81858582b\"},\"sequence\":4294967295,\"n\":13,\"addr\":\"1DdZHcmm7T9ZXeMxb8mcpCJE97ZS1ofWPa\",\"valueSat\":8000000,\"value\":0.08,\"doubleSpentTxID\":null}],\"vout\":[{\"value\":0.50500877,\"n\":0,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 5dd612d10b52fe044943fedce67de95b89e774d7 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"19ZAHvpYb2RWrjFfAVeecaFrchdeTiCFaZ\"]},\"spentTxId\":\"e8e2e7ea5bac0dd830520e61d6fc41892eab8edf2b63dabb8123bfb81b1d1475\",\"spentIndex\":10,\"spentTs\":1393688701},{\"value\":0.49739434,\"n\":1,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 b79ad531cc3738fcc299d1c5f0d3b68882bde876 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1Hjp95QJYQ8wC5Q2Akvy5HZcRVLAUtUzZ9\"]},\"spentTxId\":\"e8e2e7ea5bac0dd830520e61d6fc41892eab8edf2b63dabb8123bfb81b1d1475\",\"spentIndex\":12,\"spentTs\":1393688701},{\"value\":0.48155296,\"n\":2,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 cf2c6aa38a3082ef7258c12a0948c67a55b9c11a OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1KtS5pso6nQeMCetnG9Bkh21bwkcxaXp6e\"]},\"spentTxId\":\"8ff9cef388070f869c75db0c19da6e8fa4029dd4dbebe4f7d5e2cbd392e97acb\",\"spentIndex\":4,\"spentTs\":1393687541},{\"value\":0.0909,\"n\":3,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 28659e2ccc4dc176dbde651beb697c3e849bf69c OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"14gbmCzGKPTANHPGbL6j9ukCzALXtuNNjy\"]},\"spentTxId\":\"ec24dab6bca08e491228651739614729962ee94d3ebadc5c3dca5a6f041e4212\",\"spentIndex\":11,\"spentTs\":1393687541},{\"value\":0.51908381,\"n\":4,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 68a6c13cd8d691658cfcd7a5e29641a1ad5ffece OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1AYM3HCuSAWjKorchg6e9udHMXmnUgcjoN\"]},\"spentTxId\":\"76be097ce790fa0e8f010a612fbf2d2e41b0654cc8c0b65acd6c3c5cf6bc8713\",\"spentIndex\":6,\"spentTs\":1393688701},{\"value\":0.12597095,\"n\":5,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 8efe190e1a3fbb6e7a52af73b4e9553f619f71cc OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1E35MGdjbNVzJPud4SWGgwpzE1WAwsMLQg\"]},\"spentTxId\":\"f02f503a90d6b8908d7f6c2b4504dcdae8fad12447a1171c5ff44883b1e4fe37\",\"spentIndex\":0,\"spentTs\":1393687541},{\"value\":0.50627734,\"n\":6,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 f49878864d5c73a0083a0658d718ae890206b8a2 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1PJJXfUws6vCfU8avhc3YcDUkiZtcSxHgN\"]},\"spentTxId\":\"3ccf6221ce22a8fadcb76d24aae11d12e5f503d9c991639001a41e067577d463\",\"spentIndex\":16,\"spentTs\":1393687541},{\"value\":0.44482037,\"n\":7,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 5787cda194c86d6eef221d0d49834084a20a346f OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"18ypUTvkP5CckHUCi4DcGd6bjXcjGUxvs9\"]},\"spentTxId\":\"0a40169b51a12ed0546e715dd528da8cfaf449070d51b1b12d6fb8fa0c7c0d2a\",\"spentIndex\":19,\"spentTs\":1393687488},{\"value\":0.51006008,\"n\":8,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 b997c9b3f70417b663bcc96c884b824871ca458b OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1HvKqu2QeAZw75jUMhzyqRBHmqjGWkkiS3\"]},\"spentTxId\":\"76be097ce790fa0e8f010a612fbf2d2e41b0654cc8c0b65acd6c3c5cf6bc8713\",\"spentIndex\":5,\"spentTs\":1393688701},{\"value\":0.53098772,\"n\":9,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 35b0378a03f1ff151564597b579f168fc2c4646f OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"15tsuwFS7vZpxvbMy2nBHd7bL4mxxgw2Af\"]},\"spentTxId\":\"058146332d8a07bdcb4b847e5f0d845ca2e320401e90b2b5b6c81b8619066799\",\"spentIndex\":16,\"spentTs\":1393687488},{\"value\":0.45271483,\"n\":10,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 bf8f87745ac650aaf48bf21a5642d3fd0e55dece OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1JTt1Dd9Xp6ZZVQ71qnfrips3H4Vq8Ho6D\"]},\"spentTxId\":\"0a40169b51a12ed0546e715dd528da8cfaf449070d51b1b12d6fb8fa0c7c0d2a\",\"spentIndex\":2,\"spentTs\":1393687488},{\"value\":0.4907974,\"n\":11,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 f628542bb7a2710fe3496ca6ac781f1097fa440a OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1PSZYHTyVSWPFcBvpDg4LnuWuC51tYejjB\"]},\"spentTxId\":\"8ff9cef388070f869c75db0c19da6e8fa4029dd4dbebe4f7d5e2cbd392e97acb\",\"spentIndex\":9,\"spentTs\":1393687541},{\"value\":0.5102868,\"n\":12,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 f0ebda8c22726e3263484e50e507ef10f7cda996 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1NxsiScxBzzmw3xzKDKpwMGTBvNtmPNa59\"]},\"spentTxId\":\"76be097ce790fa0e8f010a612fbf2d2e41b0654cc8c0b65acd6c3c5cf6bc8713\",\"spentIndex\":27,\"spentTs\":1393688701},{\"value\":0.50973507,\"n\":13,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 7f1cba1ac49a3905ccff9f66e01816b1bf951682 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1Cb7EM9eFqTXmcPBWLunLSJPD9Lh6cRhyk\"]},\"spentTxId\":\"8ff9cef388070f869c75db0c19da6e8fa4029dd4dbebe4f7d5e2cbd392e97acb\",\"spentIndex\":0,\"spentTs\":1393687541},{\"value\":0.47463101,\"n\":14,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 f1b15f0fe91edb9a889ede32f34b230ab6d01a2e OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"1P2xLD3XPfhCazs4wDQMMNhSDnJ5Mybsy1\"]},\"spentTxId\":\"e8e2e7ea5bac0dd830520e61d6fc41892eab8edf2b63dabb8123bfb81b1d1475\",\"spentIndex\":23,\"spentTs\":1393688701},{\"value\":0.52879364,\"n\":15,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 5f26ef45a4326194568dc80a84e83d19c441e900 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"19g7qTAyi7GRG8YtnBvk84m1LEVEJNPXJH\"]},\"spentTxId\":\"2cc13b9e9047699cb33bcb4f5a66baa55550edb19610ad5daafcb491c4715dbd\",\"spentIndex\":9,\"spentTs\":1393688078},{\"value\":0.44828302,\"n\":16,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 56e79368f6b09a9c4b649785bc4c4be2d8d5f846 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"18vWXfiTGAL2KMMt43LALYaPbAtnhM63kR\"]},\"spentTxId\":\"0a40169b51a12ed0546e715dd528da8cfaf449070d51b1b12d6fb8fa0c7c0d2a\",\"spentIndex\":26,\"spentTs\":1393687488}],\"blockhash\":\"0000000000000000c4dd47709475386111d6921976c1af121b524e709c7e1927\",\"confirmations\":2473,\"time\":1393687541,\"blocktime\":1393687541,\"valueOut\":7.62729811,\"size\":2981,\"firstSeenTs\":1393687541,\"valueIn\":7.62769811,\"fees\":0.0004}");
assertEquals(7.62769811, txInfo.getInputValue(), SUB_SATOSHI);
assertEquals(7.62729811, txInfo.getOutputValue(), SUB_SATOSHI);
assertEquals(0.0004, txInfo.getFeePaid(), SUB_SATOSHI);
assertEquals(7_627_698_11L, txInfo.getInputValueSatoshi());
assertEquals(7_627_298_11L, txInfo.getOutputValueSatoshi());
assertEquals( 400_00L, txInfo.getFeePaidSatoshi());
}
@Test
public void testParseCoinbase() {
System.out.println("cb");
BCTx txInfo = BCTx.fromJson("{\"txid\":\"7e2a3076461d852112e53d42e424bb31fcb2c760560d8a6c4bd1e546d8c0e7e9\",\"version\":1,\"locktime\":0,\"vin\":[{\"coinbase\":\"03c76604040009299d59124d696e656420627920425443204775696c642cfabe6d6d13f04baf3fb34a953c8228454bb1748e85aaf22230fe685c9182f444c989b1e80100000000000000080028342200000151\",\"sequence\":4294967295,\"n\":0}],\"vout\":[{\"value\":25.10897664,\"n\":0,\"scriptPubKey\":{\"asm\":\"OP_DUP OP_HASH160 27a1f12771de5cc3b73941664b2537c15316be43 OP_EQUALVERIFY OP_CHECKSIG\",\"reqSigs\":1,\"type\":\"pubkeyhash\",\"addresses\":[\"14cZMQk89mRYQkDEj8Rn25AnGoBi5H6uer\"]},\"spentTxId\":\"c9824c21d93dfb21579a07990e3d7497ec29bc284fc00ed222395e6dc783e49a\",\"spentIndex\":0,\"spentTs\":1393873975}],\"blockhash\":\"0000000000000000c4dd47709475386111d6921976c1af121b524e709c7e1927\",\"confirmations\":2473,\"time\":1393687541,\"blocktime\":1393687541,\"isCoinBase\":true,\"valueOut\":25.10897664,\"size\":168}");
assertEquals(0, txInfo.getInputValue(), SUB_SATOSHI);
assertEquals(25.10897664, txInfo.getOutputValue(), SUB_SATOSHI);
assertEquals(0, txInfo.getFeePaid(), SUB_SATOSHI);
assertEquals(0L, txInfo.getInputValueSatoshi());
assertEquals(25_108_976_64L, txInfo.getOutputValueSatoshi());
assertEquals(0L, txInfo.getFeePaidSatoshi());
assertEquals(txInfo.getInputs().size(), 0);
assertEquals(txInfo.getOutputs().size(), 1);
}
}