-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improve: binary encoding for wallet data #88
Conversation
Signed-off-by: wthrajat <rajatkhanduri290102@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK.
Any idea, how much size compression we achieved? |
28.72% compression! How was the test doneI have the find /path/to/temp-test-files \( -name ".bitcoin" -o -name "configs" \) -exec rm -rf {} + After filtering out, we get 31 files inside 20 sub-folders Before PRTotal size of all 31 After PRTotal size of all 31 Going by that we have achieved compression of 76,524 bytes, which represents a 28.72% decrease; noticeable difference in my opinion. |
Awesome!! now I think we can remove the whole serde_json dep in cargo.toml. Lets do it in this PR itself. Also mark the Readme roadmap milestone. |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## master #88 +/- ##
==========================================
- Coverage 69.54% 69.32% -0.22%
==========================================
Files 28 28
Lines 5808 5771 -37
==========================================
- Hits 4039 4001 -38
- Misses 1769 1770 +1 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 17d8508
Aims to fix #87
Now we are using binary encoding for writing wallet files; previously
.json
files were used which are human-readable out of the box.Now we cannot read the wallet files out of the box and will have to use
CBOR
tools like cbor.dev and cbor.me for debugging purposes.Example of a wallet file (out of many) before and after the PR is given below:
Before
Click to view
{"file_name":"maker16102","version":0,"network":"regtest","seedphrase":"pudding actor rib trophy festival scrap clerk gospel genuine nice issue daring","passphrase":"","external_index":0,"incoming_swapcoins":[{"my_privkey":"dd20b12421d22728734535b16f15297d6fa1a13cb7cedfe21266b4732d9b95e5","other_pubkey":"037a7bdf7cafa8fb50e463affd00ae3261cfd2f2bf167909049899a9da56ae771b","other_privkey":"92b9f4bd8ec31d29cae3bf6329bc9617fca9cb1fbeade06b66f5d58881b0dc36","contract_tx":{"version":2,"lock_time":0,"input":[{"previous_output":"ec5e40b5e2a8e0f2e47f5048651258d6487ab68bd28215e81f4cad08ba3ff508:0","script_sig":"","sequence":0,"witness":[]}],"output":[{"value":28016,"script_pubkey":"002051189e1a125e0869a192e90e6ea8810f4550a85de9d7844966b33dacc88c0b53"}]},"contract_redeemscript":"827ca914e72c34a16c087526a7b5947ccca2419c983d0846876321028b50eed70326dc30f9413e555774ab0bc891810204e2f6fba5bce56a74c7504601205167210346d74d4b513d786d9aacff8c9b944dcde0e287a621ac9a8a1defc0333a1c5a5200016068b2757b88ac","hashlock_privkey":"8fe73d015cb01fc2a78349a6b44fd4908790aad975851e40f38e6ffde4b623ba","funding_amount":29016,"others_contract_sig":"3045022100f27ddf1a06f0a809f6f2c0290c083aeb0249edcf3712a4013cbb49eaad9d73c2022072cd5ce7ad43ba92faf4fab124b523ab9da73fb80bfa0ce143294538d60b9bea","hash_preimage":[85,27,168,84,140,241,73,36,188,202,103,101,170,155,11,229,168,233,186,41,38,213,210,70,31,62,218,123,219,210,78,25]},{"my_privkey":"47cce522e8ee770dc3f66adfec1f8afce8ebcd2c4c2123ddcc5f844837f90043","other_pubkey":"023877681a076cf617fecefa22f052f91dac49bdaf3e82a9e27c458b071e944da2","other_privkey":"d368dbd0cc5572c6f2ee62c09bdcfc95bd4f4ef4f9d6bf007c9610e1a1e6f16d","contract_tx":{"version":2,"lock_time":0,"input":[{"previous_output":"856e89866ee5f987267d52cb0be0dba1c470aa88fb8f05fea68155674c85a922:1","script_sig":"","sequence":0,"witness":[]}],"output":[{"value":45797,"script_pubkey":"002052e776e090b83e7374d38322f3f3d15eafd18a42cda28509852674bc50ab4dec"}]},"contract_redeemscript":"827ca914e72c34a16c087526a7b5947ccca2419c983d08468763210256413ee5a8ba7f29a247cf90d80aa154cb5325c1363b946b913c7a8e54320e7001205167210364222a38a6c5178cad7f0eb4359dac793f3f7582117203134b88e77dcf87ba5900016068b2757b88ac","hashlock_privkey":"8147fe08b6cdf996bb74a04a4bd748735815a3c79adc85dc34237cc8879809dc","funding_amount":46797,"others_contract_sig":"304402200ce9be5c295817d13fc5f2d74bc8c556c3413d7f72a19b405933da951e698c3a02204ad706afb0c45f9028f3c77ce5d90aa97be2b7b31a4bf1af8ad06e2b7de38245","hash_preimage":[85,27,168,84,140,241,73,36,188,202,103,101,170,155,11,229,168,233,186,41,38,213,210,70,31,62,218,123,219,210,78,25]},{"my_privkey":"9d97b33216504b307b508a8058a38fe223d2e8bf6c81b57891c0259110560c12","other_pubkey":"03e4478f5a873a1cc56bdfeecaec8b467a09db78797ac6681464daa870a404b88f","other_privkey":"452ef3aa47a122231256f24b915c19505a5cc90654bd2d5d56c538555936ef97","contract_tx":{"version":2,"lock_time":0,"input":[{"previous_output":"ecb6ddd1590e2dd31d7e119759615d249db49c50653ce140101d8cab29408d63:0","script_sig":"","sequence":0,"witness":[]}],"output":[{"value":416071,"script_pubkey":"00207caff66487dca1f522509847529319dc6e69f05b28e1f734cf440c04c6a7dd25"}]},"contract_redeemscript":"827ca914e72c34a16c087526a7b5947ccca2419c983d084687632103cf5ff926028d72948ade0aa5a20c9e949ab5fb07e7b168219a01bd2b7b61087a0120516721039f2c2d56b359def059e30ae041aab73857a98861941c5b279b156754c220025c00016068b2757b88ac","hashlock_privkey":"064515149649f972c89ee8c21b46ca991dca072318a4bc1fa63c550cff4837b4","funding_amount":417071,"others_contract_sig":"30440220758008bb6afb08d39aebff5427a07d7fd5a07b723055d9b5e33e48edf28e6624022041cb98841ff1c398726ca8de471bbe65cbe0b88932d634f3f6031561c595484e","hash_preimage":[85,27,168,84,140,241,73,36,188,202,103,101,170,155,11,229,168,233,186,41,38,213,210,70,31,62,218,123,219,210,78,25]}],"outgoing_swapcoins":[{"my_privkey":"2748e867de7defe802439a9dcf8c0e6e6dc7789d710c0c91c14f8098176587f2","other_pubkey":"020454a50259c141ab00762dc813605c0088d5b639138c8fe241cb7b93821ae8e1","contract_tx":{"version":2,"lock_time":0,"input":[{"previous_output":"513c85f573dfe01b0a1320b615c0e80fb8e4ed4cf5c3230649b19fd9479cb3c3:1","script_sig":"","sequence":0,"witness":[]}],"output":[{"value":126301,"script_pubkey":"0020c05abd0c969fd209c7c3213d7e7f825f8b33ad4e8e263e2821bf4fb66b7ddebe"}]},"contract_redeemscript":"827ca914e72c34a16c087526a7b5947ccca2419c983d084687632102b21701ec7351335e653d128b00eb8b0f13e89b82585f4349bd48a685245171e90120516721038a5ebb4b1fbaf6ebf8788808e33b18872bcc3df78cb05c3588e48966de5ae2cf00013068b2757b88ac","timelock_privkey":"0761ae7fff03f91b3ee0a84991a8db75cbb6db8f1054788ece7b0fadfb1f08ca","funding_amount":127301,"others_contract_sig":"30450221009182bd72d52a89c664630ae233981cb43d8144c936362a00e6f7c26dbe23e1b0022028f68729b6aca2de3342383e320693939d08d2f8a6c87936ed87d470c2d97385","hash_preimage":null},{"my_privkey":"622e5981f7f5e0cc9b6f32093d4e35e39d4b7475a266889dcc95224a588f12c8","other_pubkey":"0251ac03c8d78280a917fac9d20e9de11394ea602f6470c0e0e8eada1d637e9828","contract_tx":{"version":2,"lock_time":0,"input":[{"previous_output":"8858cae967218debb3374970b18dd0839bc44da33786142718fa797c799011d9:0","script_sig":"","sequence":0,"witness":[]}],"output":[{"value":190762,"script_pubkey":"002031f0e355e3b242fdf5f895ecf13c19ff687ed0111adc3dc4bd5d78e1f8b2837f"}]},"contract_redeemscript":"827ca914e72c34a16c087526a7b5947ccca2419c983d084687632103668e776d22c5ecce24ea8932004c4c9eaf6d230a0bcc5a012dcff742ee52356c012051672103b4ea1f89ba0659dc180e2120836043c3c61238ed3f607b8f556b47b5af51614200013068b2757b88ac","timelock_privkey":"7f66c2f50e43e9bfdf995208b4aa2421c6330e19e790caf4f61e2994da0e8fce","funding_amount":191762,"others_contract_sig":"3045022100f77f2f5ced9a48ef3ad45ef212048ce127d0e0c39fbe755596e21670a2cf38d9022021f027b4e4eb2917d904e4139130d5ced604eae6172b6e2bcfc3f62dc140171a","hash_preimage":null},{"my_privkey":"f86a5830e91e10faac48f368a29522b00bda46a9a4342265cf1795d274f9269d","other_pubkey":"029152b0a71f1288474bbd0817a2952a7fde7684a6ea01cb63726f0bcdabef4cce","contract_tx":{"version":2,"lock_time":0,"input":[{"previous_output":"0c429480e51957c6855c52e3dd961888ad8c622767382bc5cf0426f94025d9c5:1","script_sig":"","sequence":0,"witness":[]}],"output":[{"value":165777,"script_pubkey":"00205befbc766c8a944b0a4913bc497309e21a7adb6540c04437333f31fb2170c8cd"}]},"contract_redeemscript":"827ca914e72c34a16c087526a7b5947ccca2419c983d0846876321026a69d1209e627756e2c4fea014ab5f58889b3310eb5e428aa7cea9989c991c2a012051672103427592e8e2fb4c6e7e8317bdb376c5a7d19453afc75d80ebc97d7e6dd98c965c00013068b2757b88ac","timelock_privkey":"89ae838cc65de51955d300fc333407b1bb3f442b776173bae9273c3f84a111e4","funding_amount":166777,"others_contract_sig":"3044022100bf3bb6f7da7c56d80ad88d916fb886fe9abf8d5eadd44ee302257397aac6b810021f3a595f29a502a4737ef365285e6eb85257fcf338b8981aed6ee839970d2e63","hash_preimage":null}],"prevout_to_contract_map":{}}
After (this
CBOR
data has been decoded using cbor.dev to make it readable)Click to view
{ "file_name": "maker16102", "version": 0, "network": "regtest", "seedphrase": "illegal correct weekend viable myth assume fence reason among sick trick elbow", "passphrase": "", "external_index": 0, "incoming_swapcoins": [ { "my_privkey": [ 220, 156, 123, 102, 153, 65, 115, 241, 197, 178, 253, 132, 192, 141, 136, 215, 21, 237, 196, 199, 131, 177, 63, 196, 218, 189, 226, 249, 90, 229, 223, 40 ], "other_pubkey": { "0": 2, "1": 61, "2": 122, "3": 40, "4": 140, "5": 0, "6": 20, "7": 254, "8": 203, "9": 84, "10": 180, "11": 173, "12": 147, "13": 89, "14": 151, "15": 212, "16": 40, "17": 82, "18": 62, "19": 61, "20": 70, "21": 146, "22": 229, "23": 71, "24": 186, "25": 67, "26": 147, "27": 133, "28": 155, "29": 69, "30": 47, "31": 163, "32": 223 }, "other_privkey": [ 91, 183, 252, 167, 48, 252, 213, 114, 253, 3, 218, 225, 97, 199, 188, 93, 111, 196, 197, 160, 132, 162, 31, 59, 92, 68, 4, 181, 238, 45, 174, 253 ], "contract_tx": { "version": 2, "lock_time": 0, "input": [ { "previous_output": { "txid": { "0": 174, "1": 122, "2": 17, "3": 131, "4": 20, "5": 221, "6": 23, "7": 16, "8": 165, "9": 159, "10": 136, "11": 85, "12": 74, "13": 186, "14": 62, "15": 78, "16": 85, "17": 159, "18": 185, "19": 121, "20": 221, "21": 160, "22": 177, "23": 65, "24": 239, "25": 222, "26": 167, "27": 95, "28": 142, "29": 115, "30": 43, "31": 233 }, "vout": 1 }, "script_sig": {}, "sequence": 0, "witness": [] } ], "output": [ { "value": 17222, "script_pubkey": { "0": 0, "1": 32, "2": 222, "3": 112, "4": 150, "5": 31, "6": 239, "7": 126, "8": 192, "9": 176, "10": 29, "11": 157, "12": 130, "13": 205, "14": 46, "15": 82, "16": 116, "17": 136, "18": 131, "19": 167, "20": 162, "21": 65, "22": 169, "23": 139, "24": 68, "25": 141, "26": 196, "27": 141, "28": 84, "29": 135, "30": 185, "31": 186, "32": 71, "33": 101 } } ] }, "contract_redeemscript": { "0": 130, "1": 124, "2": 169, "3": 20, "4": 220, "5": 166, "6": 28, "7": 105, "8": 108, "9": 70, "10": 101, "11": 237, "12": 155, "13": 31, "14": 89, "15": 217, "16": 3, "17": 163, "18": 76, "19": 2, "20": 68, "21": 86, "22": 101, "23": 225, "24": 135, "25": 99, "26": 33, "27": 3, "28": 48, "29": 243, "30": 207, "31": 34, "32": 172, "33": 17, "34": 74, "35": 81, "36": 224, "37": 44, "38": 109, "39": 15, "40": 234, "41": 29, "42": 192, "43": 244, "44": 253, "45": 108, "46": 10, "47": 234, "48": 200, "49": 5, "50": 170, "51": 212, "52": 202, "53": 164, "54": 9, "55": 173, "56": 159, "57": 245, "58": 199, "59": 253, "60": 1, "61": 32, "62": 81, "63": 103, "64": 33, "65": 2, "66": 83, "67": 193, "68": 175, "69": 51, "70": 188, "71": 160, "72": 154, "73": 72, "74": 172, "75": 145, "76": 6, "77": 140, "78": 195, "79": 165, "80": 38, "81": 65, "82": 138, "83": 238, "84": 226, "85": 238, "86": 79, "87": 114, "88": 165, "89": 15, "90": 107, "91": 91, "92": 74, "93": 73, "94": 249, "95": 238, "96": 10, "97": 61, "98": 0, "99": 2, "100": 144, "101": 0, "102": 104, "103": 178, "104": 117, "105": 123, "106": 136, "107": 172 }, "hashlock_privkey": [ 24, 193, 184, 77, 95, 186, 65, 96, 27, 220, 145, 247, 27, 232, 99, 134, 161, 202, 15, 132, 7, 72, 250, 231, 87, 36, 135, 134, 13, 116, 60, 28 ], "funding_amount": 18222, "others_contract_sig": { "0": 48, "1": 69, "2": 2, "3": 33, "4": 0, "5": 215, "6": 127, "7": 128, "8": 154, "9": 238, "10": 157, "11": 88, "12": 185, "13": 219, "14": 207, "15": 150, "16": 179, "17": 253, "18": 22, "19": 228, "20": 59, "21": 122, "22": 255, "23": 222, "24": 102, "25": 33, "26": 168, "27": 73, "28": 239, "29": 22, "30": 38, "31": 109, "32": 29, "33": 189, "34": 1, "35": 254, "36": 49, "37": 2, "38": 32, "39": 17, "40": 78, "41": 60, "42": 105, "43": 201, "44": 90, "45": 213, "46": 234, "47": 142, "48": 248, "49": 82, "50": 249, "51": 119, "52": 22, "53": 129, "54": 88, "55": 196, "56": 185, "57": 36, "58": 40, "59": 6, "60": 159, "61": 146, "62": 136, "63": 6, "64": 89, "65": 255, "66": 156, "67": 79, "68": 22, "69": 68, "70": 91 }, "hash_preimage": [ 106, 54, 151, 179, 46, 87, 58, 209, 165, 76, 52, 186, 126, 14, 92, 201, 66, 118, 214, 69, 222, 131, 25, 96, 119, 212, 123, 60, 53, 228, 17, 159 ] }, { "my_privkey": [ 74, 74, 203, 150, 216, 207, 106, 65, 49, 126, 64, 226, 40, 96, 171, 83, 229, 199, 181, 217, 197, 199, 221, 212, 68, 208, 193, 253, 143, 83, 83, 60 ], "other_pubkey": { "0": 3, "1": 30, "2": 181, "3": 45, "4": 142, "5": 48, "6": 105, "7": 171, "8": 17, "9": 106, "10": 243, "11": 147, "12": 61, "13": 246, "14": 117, "15": 241, "16": 51, "17": 101, "18": 12, "19": 84, "20": 220, "21": 245, "22": 106, "23": 104, "24": 166, "25": 4, "26": 90, "27": 123, "28": 70, "29": 85, "30": 34, "31": 213, "32": 23 }, "other_privkey": [ 52, 47, 0, 18, 157, 230, 130, 46, 195, 244, 90, 23, 210, 25, 47, 190, 247, 36, 249, 38, 139, 217, 229, 10, 235, 90, 95, 102, 164, 88, 242, 137 ], "contract_tx": { "version": 2, "lock_time": 0, "input": [ { "previous_output": { "txid": { "0": 233, "1": 156, "2": 249, "3": 196, "4": 48, "5": 92, "6": 176, "7": 86, "8": 153, "9": 152, "10": 166, "11": 103, "12": 108, "13": 1, "14": 35, "15": 254, "16": 57, "17": 122, "18": 94, "19": 110, "20": 176, "21": 17, "22": 150, "23": 73, "24": 113, "25": 204, "26": 110, "27": 229, "28": 231, "29": 78, "30": 204, "31": 185 }, "vout": 0 }, "script_sig": {}, "sequence": 0, "witness": [] } ], "output": [ { "value": 185026, "script_pubkey": { "0": 0, "1": 32, "2": 72, "3": 155, "4": 156, "5": 150, "6": 10, "7": 141, "8": 197, "9": 242, "10": 82, "11": 174, "12": 237, "13": 206, "14": 2, "15": 143, "16": 177, "17": 172, "18": 225, "19": 126, "20": 227, "21": 30, "22": 202, "23": 62, "24": 4, "25": 105, "26": 20, "27": 32, "28": 111, "29": 22, "30": 219, "31": 147, "32": 71, "33": 112 } } ] }, "contract_redeemscript": { "0": 130, "1": 124, "2": 169, "3": 20, "4": 220, "5": 166, "6": 28, "7": 105, "8": 108, "9": 70, "10": 101, "11": 237, "12": 155, "13": 31, "14": 89, "15": 217, "16": 3, "17": 163, "18": 76, "19": 2, "20": 68, "21": 86, "22": 101, "23": 225, "24": 135, "25": 99, "26": 33, "27": 2, "28": 153, "29": 94, "30": 235, "31": 220, "32": 174, "33": 196, "34": 104, "35": 54, "36": 176, "37": 93, "38": 42, "39": 127, "40": 4, "41": 43, "42": 63, "43": 60, "44": 14, "45": 156, "46": 184, "47": 127, "48": 123, "49": 65, "50": 54, "51": 208, "52": 91, "53": 127, "54": 37, "55": 103, "56": 170, "57": 15, "58": 118, "59": 181, "60": 1, "61": 32, "62": 81, "63": 103, "64": 33, "65": 3, "66": 255, "67": 203, "68": 114, "69": 220, "70": 219, "71": 205, "72": 60, "73": 58, "74": 192, "75": 13, "76": 182, "77": 202, "78": 240, "79": 116, "80": 225, "81": 57, "82": 6, "83": 192, "84": 128, "85": 218, "86": 196, "87": 0, "88": 119, "89": 57, "90": 72, "91": 99, "92": 205, "93": 190, "94": 238, "95": 195, "96": 141, "97": 11, "98": 0, "99": 2, "100": 144, "101": 0, "102": 104, "103": 178, "104": 117, "105": 123, "106": 136, "107": 172 }, "hashlock_privkey": [ 23, 135, 17, 218, 218, 190, 133, 210, 195, 33, 167, 25, 32, 97, 23, 111, 14, 208, 119, 177, 138, 142, 148, 213, 208, 183, 41, 227, 34, 141, 240, 247 ], "funding_amount": 186026, "others_contract_sig": { "0": 48, "1": 68, "2": 2, "3": 32, "4": 57, "5": 50, "6": 8, "7": 119, "8": 234, "9": 182, "10": 230, "11": 95, "12": 57, "13": 136, "14": 47, "15": 146, "16": 229, "17": 136, "18": 144, "19": 196, "20": 150, "21": 208, "22": 34, "23": 205, "24": 226, "25": 216, "26": 116, "27": 207, "28": 135, "29": 165, "30": 210, "31": 163, "32": 230, "33": 108, "34": 23, "35": 98, "36": 2, "37": 32, "38": 34, "39": 181, "40": 253, "41": 119, "42": 141, "43": 201, "44": 88, "45": 218, "46": 26, "47": 164, "48": 155, "49": 214, "50": 24, "51": 101, "52": 5, "53": 206, "54": 29, "55": 60, "56": 233, "57": 62, "58": 110, "59": 252, "60": 221, "61": 42, "62": 153, "63": 125, "64": 79, "65": 223, "66": 89, "67": 39, "68": 101, "69": 112 }, "hash_preimage": [ 106, 54, 151, 179, 46, 87, 58, 209, 165, 76, 52, 186, 126, 14, 92, 201, 66, 118, 214, 69, 222, 131, 25, 96, 119, 212, 123, 60, 53, 228, 17, 159 ] }, { "my_privkey": [ 101, 151, 248, 125, 188, 63, 46, 206, 73, 204, 151, 181, 86, 251, 12, 88, 19, 12, 156, 36, 169, 174, 93, 56, 220, 49, 10, 83, 164, 19, 174, 168 ], "other_pubkey": { "0": 2, "1": 136, "2": 195, "3": 87, "4": 129, "5": 70, "6": 126, "7": 78, "8": 141, "9": 244, "10": 165, "11": 110, "12": 225, "13": 153, "14": 72, "15": 50, "16": 92, "17": 25, "18": 20, "19": 233, "20": 51, "21": 87, "22": 58, "23": 213, "24": 83, "25": 221, "26": 151, "27": 199, "28": 132, "29": 78, "30": 103, "31": 75, "32": 160 }, "other_privkey": [ 149, 231, 44, 208, 180, 238, 139, 66, 63, 97, 44, 234, 112, 151, 238, 14, 107, 134, 201, 20, 30, 162, 251, 148, 130, 228, 245, 96, 76, 97, 186, 92 ], "contract_tx": { "version": 2, "lock_time": 0, "input": [ { "previous_output": { "txid": { "0": 230, "1": 160, "2": 105, "3": 234, "4": 252, "5": 176, "6": 237, "7": 33, "8": 211, "9": 56, "10": 92, "11": 76, "12": 137, "13": 6, "14": 1, "15": 81, "16": 204, "17": 128, "18": 176, "19": 155, "20": 175, "21": 75, "22": 49, "23": 16, "24": 62, "25": 134, "26": 62, "27": 116, "28": 62, "29": 232, "30": 112, "31": 169 }, "vout": 1 }, "script_sig": {}, "sequence": 0, "witness": [] } ], "output": [ { "value": 294752, "script_pubkey": { "0": 0, "1": 32, "2": 235, "3": 158, "4": 181, "5": 148, "6": 64, "7": 142, "8": 2, "9": 10, "10": 212, "11": 92, "12": 71, "13": 194, "14": 190, "15": 23, "16": 154, "17": 222, "18": 38, "19": 175, "20": 216, "21": 40, "22": 100, "23": 0, "24": 90, "25": 154, "26": 4, "27": 253, "28": 131, "29": 224, "30": 75, "31": 2, "32": 107, "33": 221 } } ] }, "contract_redeemscript": { "0": 130, "1": 124, "2": 169, "3": 20, "4": 220, "5": 166, "6": 28, "7": 105, "8": 108, "9": 70, "10": 101, "11": 237, "12": 155, "13": 31, "14": 89, "15": 217, "16": 3, "17": 163, "18": 76, "19": 2, "20": 68, "21": 86, "22": 101, "23": 225, "24": 135, "25": 99, "26": 33, "27": 2, "28": 196, "29": 20, "30": 157, "31": 210, "32": 186, "33": 135, "34": 11, "35": 137, "36": 240, "37": 205, "38": 107, "39": 25, "40": 11, "41": 75, "42": 22, "43": 99, "44": 227, "45": 150, "46": 254, "47": 29, "48": 91, "49": 252, "50": 71, "51": 246, "52": 212, "53": 200, "54": 210, "55": 139, "56": 31, "57": 217, "58": 50, "59": 90, "60": 1, "61": 32, "62": 81, "63": 103, "64": 33, "65": 2, "66": 208, "67": 251, "68": 55, "69": 71, "70": 129, "71": 139, "72": 56, "73": 231, "74": 165, "75": 229, "76": 186, "77": 128, "78": 6, "79": 8, "80": 33, "81": 178, "82": 235, "83": 194, "84": 156, "85": 237, "86": 90, "87": 19, "88": 226, "89": 154, "90": 131, "91": 208, "92": 16, "93": 147, "94": 106, "95": 254, "96": 137, "97": 85, "98": 0, "99": 2, "100": 144, "101": 0, "102": 104, "103": 178, "104": 117, "105": 123, "106": 136, "107": 172 }, "hashlock_privkey": [ 52, 131, 52, 119, 108, 104, 14, 49, 254, 100, 35, 5, 243, 191, 226, 228, 20, 248, 61, 10, 202, 77, 171, 3, 186, 199, 136, 9, 104, 227, 99, 203 ], "funding_amount": 295752, "others_contract_sig": { "0": 48, "1": 68, "2": 2, "3": 32, "4": 113, "5": 157, "6": 173, "7": 251, "8": 38, "9": 206, "10": 26, "11": 111, "12": 230, "13": 76, "14": 222, "15": 252, "16": 186, "17": 229, "18": 167, "19": 205, "20": 225, "21": 140, "22": 250, "23": 51, "24": 155, "25": 208, "26": 194, "27": 174, "28": 167, "29": 251, "30": 205, "31": 178, "32": 42, "33": 169, "34": 63, "35": 223, "36": 2, "37": 32, "38": 74, "39": 175, "40": 127, "41": 253, "42": 27, "43": 30, "44": 72, "45": 188, "46": 121, "47": 208, "48": 64, "49": 192, "50": 163, "51": 31, "52": 135, "53": 157, "54": 174, "55": 154, "56": 145, "57": 134, "58": 219, "59": 68, "60": 176, "61": 14, "62": 67, "63": 156, "64": 174, "65": 68, "66": 199, "67": 24, "68": 79, "69": 24 }, "hash_preimage": [ 106, 54, 151, 179, 46, 87, 58, 209, 165, 76, 52, 186, 126, 14, 92, 201, 66, 118, 214, 69, 222, 131, 25, 96, 119, 212, 123, 60, 53, 228, 17, 159 ] } ], "outgoing_swapcoins": [ { "my_privkey": [ 168, 179, 83, 203, 159, 132, 186, 146, 158, 82, 139, 205, 236, 114, 43, 35, 35, 161, 138, 249, 37, 78, 232, 61, 245, 58, 237, 82, 120, 10, 245, 64 ], "other_pubkey": { "0": 2, "1": 122, "2": 160, "3": 136, "4": 129, "5": 233, "6": 53, "7": 95, "8": 46, "9": 204, "10": 110, "11": 136, "12": 19, "13": 177, "14": 89, "15": 124, "16": 122, "17": 234, "18": 236, "19": 69, "20": 234, "21": 57, "22": 88, "23": 169, "24": 79, "25": 113, "26": 247, "27": 85, "28": 242, "29": 69, "30": 182, "31": 25, "32": 231 }, "contract_tx": { "version": 2, "lock_time": 0, "input": [ { "previous_output": { "txid": { "0": 252, "1": 45, "2": 112, "3": 89, "4": 237, "5": 229, "6": 24, "7": 46, "8": 0, "9": 59, "10": 221, "11": 97, "12": 68, "13": 122, "14": 30, "15": 19, "16": 243, "17": 90, "18": 165, "19": 130, "20": 245, "21": 21, "22": 33, "23": 190, "24": 203, "25": 42, "26": 48, "27": 146, "28": 190, "29": 188, "30": 190, "31": 202 }, "vout": 0 }, "script_sig": {}, "sequence": 0, "witness": [] } ], "output": [ { "value": 418855, "script_pubkey": { "0": 0, "1": 32, "2": 121, "3": 190, "4": 130, "5": 220, "6": 68, "7": 53, "8": 188, "9": 37, "10": 149, "11": 115, "12": 99, "13": 214, "14": 10, "15": 41, "16": 95, "17": 107, "18": 180, "19": 69, "20": 219, "21": 244, "22": 213, "23": 252, "24": 43, "25": 112, "26": 151, "27": 43, "28": 73, "29": 128, "30": 37, "31": 32, "32": 137, "33": 248 } } ] }, "contract_redeemscript": { "0": 130, "1": 124, "2": 169, "3": 20, "4": 220, "5": 166, "6": 28, "7": 105, "8": 108, "9": 70, "10": 101, "11": 237, "12": 155, "13": 31, "14": 89, "15": 217, "16": 3, "17": 163, "18": 76, "19": 2, "20": 68, "21": 86, "22": 101, "23": 225, "24": 135, "25": 99, "26": 33, "27": 2, "28": 50, "29": 41, "30": 195, "31": 153, "32": 62, "33": 108, "34": 174, "35": 30, "36": 51, "37": 52, "38": 241, "39": 23, "40": 35, "41": 139, "42": 153, "43": 108, "44": 22, "45": 192, "46": 109, "47": 84, "48": 211, "49": 212, "50": 61, "51": 2, "52": 71, "53": 153, "54": 142, "55": 192, "56": 17, "57": 49, "58": 129, "59": 228, "60": 1, "61": 32, "62": 81, "63": 103, "64": 33, "65": 2, "66": 19, "67": 245, "68": 86, "69": 131, "70": 127, "71": 158, "72": 225, "73": 249, "74": 171, "75": 160, "76": 99, "77": 179, "78": 205, "79": 242, "80": 152, "81": 202, "82": 50, "83": 82, "84": 138, "85": 234, "86": 210, "87": 131, "88": 69, "89": 110, "90": 69, "91": 85, "92": 116, "93": 113, "94": 112, "95": 83, "96": 73, "97": 242, "98": 0, "99": 1, "100": 96, "101": 104, "102": 178, "103": 117, "104": 123, "105": 136, "106": 172 }, "timelock_privkey": [ 66, 196, 202, 88, 211, 144, 253, 234, 159, 226, 206, 48, 122, 142, 66, 2, 31, 113, 147, 94, 97, 2, 123, 209, 69, 209, 67, 63, 242, 124, 141, 94 ], "funding_amount": 419855, "others_contract_sig": { "0": 48, "1": 69, "2": 2, "3": 33, "4": 0, "5": 241, "6": 186, "7": 196, "8": 106, "9": 54, "10": 164, "11": 189, "12": 22, "13": 87, "14": 254, "15": 204, "16": 64, "17": 221, "18": 91, "19": 205, "20": 236, "21": 254, "22": 219, "23": 181, "24": 127, "25": 31, "26": 120, "27": 3, "28": 79, "29": 232, "30": 151, "31": 146, "32": 35, "33": 169, "34": 228, "35": 167, "36": 247, "37": 2, "38": 32, "39": 43, "40": 124, "41": 231, "42": 210, "43": 68, "44": 170, "45": 59, "46": 122, "47": 182, "48": 227, "49": 43, "50": 142, "51": 246, "52": 240, "53": 242, "54": 27, "55": 164, "56": 216, "57": 114, "58": 169, "59": 157, "60": 177, "61": 13, "62": 240, "63": 24, "64": 90, "65": 191, "66": 20, "67": 196, "68": 63, "69": 200, "70": 70 }, "hash_preimage": null }, { "my_privkey": [ 141, 26, 148, 34, 40, 66, 80, 52, 238, 179, 245, 222, 70, 22, 96, 71, 183, 219, 70, 168, 93, 63, 9, 236, 40, 228, 94, 253, 63, 52, 35, 162 ], "other_pubkey": { "0": 2, "1": 94, "2": 164, "3": 136, "4": 140, "5": 109, "6": 67, "7": 29, "8": 113, "9": 182, "10": 174, "11": 165, "12": 234, "13": 49, "14": 11, "15": 54, "16": 112, "17": 12, "18": 220, "19": 219, "20": 233, "21": 104, "22": 124, "23": 46, "24": 35, "25": 79, "26": 100, "27": 106, "28": 110, "29": 167, "30": 61, "31": 86, "32": 148 }, "contract_tx": { "version": 2, "lock_time": 0, "input": [ { "previous_output": { "txid": { "0": 222, "1": 116, "2": 117, "3": 96, "4": 212, "5": 188, "6": 224, "7": 33, "8": 167, "9": 209, "10": 99, "11": 134, "12": 43, "13": 24, "14": 105, "15": 245, "16": 38, "17": 65, "18": 10, "19": 80, "20": 68, "21": 255, "22": 19, "23": 11, "24": 180, "25": 250, "26": 135, "27": 234, "28": 253, "29": 26, "30": 212, "31": 184 }, "vout": 1 }, "script_sig": {}, "sequence": 0, "witness": [] } ], "output": [ { "value": 38135, "script_pubkey": { "0": 0, "1": 32, "2": 154, "3": 210, "4": 248, "5": 43, "6": 56, "7": 32, "8": 63, "9": 241, "10": 68, "11": 241, "12": 197, "13": 93, "14": 4, "15": 235, "16": 139, "17": 218, "18": 64, "19": 191, "20": 34, "21": 217, "22": 68, "23": 225, "24": 124, "25": 173, "26": 111, "27": 111, "28": 138, "29": 175, "30": 115, "31": 12, "32": 58, "33": 33 } } ] }, "contract_redeemscript": { "0": 130, "1": 124, "2": 169, "3": 20, "4": 220, "5": 166, "6": 28, "7": 105, "8": 108, "9": 70, "10": 101, "11": 237, "12": 155, "13": 31, "14": 89, "15": 217, "16": 3, "17": 163, "18": 76, "19": 2, "20": 68, "21": 86, "22": 101, "23": 225, "24": 135, "25": 99, "26": 33, "27": 2, "28": 246, "29": 73, "30": 148, "31": 70, "32": 14, "33": 10, "34": 82, "35": 44, "36": 39, "37": 231, "38": 94, "39": 115, "40": 103, "41": 87, "42": 185, "43": 245, "44": 82, "45": 92, "46": 245, "47": 184, "48": 207, "49": 75, "50": 242, "51": 16, "52": 148, "53": 239, "54": 15, "55": 34, "56": 250, "57": 173, "58": 143, "59": 38, "60": 1, "61": 32, "62": 81, "63": 103, "64": 33, "65": 2, "66": 144, "67": 41, "68": 202, "69": 103, "70": 6, "71": 175, "72": 230, "73": 248, "74": 34, "75": 109, "76": 117, "77": 6, "78": 213, "79": 20, "80": 210, "81": 202, "82": 82, "83": 170, "84": 186, "85": 103, "86": 228, "87": 39, "88": 59, "89": 42, "90": 76, "91": 146, "92": 115, "93": 242, "94": 96, "95": 163, "96": 65, "97": 138, "98": 0, "99": 1, "100": 96, "101": 104, "102": 178, "103": 117, "104": 123, "105": 136, "106": 172 }, "timelock_privkey": [ 19, 125, 204, 227, 116, 97, 106, 31, 167, 96, 94, 65, 147, 180, 14, 19, 0, 203, 106, 8, 3, 19, 5, 150, 134, 80, 102, 132, 91, 38, 69, 20 ], "funding_amount": 39135, "others_contract_sig": { "0": 48, "1": 69, "2": 2, "3": 33, "4": 0, "5": 236, "6": 128, "7": 18, "8": 47, "9": 7, "10": 95, "11": 7, "12": 74, "13": 70, "14": 129, "15": 220, "16": 62, "17": 231, "18": 237, "19": 74, "20": 93, "21": 48, "22": 157, "23": 23, "24": 47, "25": 26, "26": 26, "27": 182, "28": 213, "29": 242, "30": 140, "31": 255, "32": 230, "33": 131, "34": 94, "35": 199, "36": 114, "37": 2, "38": 32, "39": 5, "40": 0, "41": 78, "42": 96, "43": 71, "44": 144, "45": 141, "46": 122, "47": 68, "48": 111, "49": 82, "50": 82, "51": 57, "52": 239, "53": 105, "54": 17, "55": 119, "56": 176, "57": 27, "58": 213, "59": 38, "60": 168, "61": 64, "62": 229, "63": 133, "64": 218, "65": 88, "66": 140, "67": 35, "68": 211, "69": 23, "70": 123 }, "hash_preimage": null }, { "my_privkey": [ 123, 201, 39, 210, 37, 230, 252, 190, 221, 16, 23, 63, 54, 237, 15, 214, 166, 91, 124, 66, 205, 138, 222, 7, 180, 28, 193, 186, 94, 206, 75, 23 ], "other_pubkey": { "0": 2, "1": 195, "2": 117, "3": 112, "4": 64, "5": 126, "6": 133, "7": 57, "8": 85, "9": 165, "10": 108, "11": 45, "12": 171, "13": 244, "14": 34, "15": 137, "16": 141, "17": 16, "18": 20, "19": 105, "20": 58, "21": 131, "22": 231, "23": 218, "24": 52, "25": 136, "26": 240, "27": 37, "28": 14, "29": 137, "30": 37, "31": 78, "32": 253 }, "contract_tx": { "version": 2, "lock_time": 0, "input": [ { "previous_output": { "txid": { "0": 183, "1": 237, "2": 153, "3": 145, "4": 94, "5": 22, "6": 228, "7": 26, "8": 34, "9": 65, "10": 20, "11": 67, "12": 224, "13": 241, "14": 52, "15": 109, "16": 142, "17": 195, "18": 153, "19": 165, "20": 91, "21": 75, "22": 249, "23": 152, "24": 70, "25": 151, "26": 31, "27": 61, "28": 90, "29": 188, "30": 176, "31": 69 }, "vout": 1 }, "script_sig": {}, "sequence": 0, "witness": [] } ], "output": [ { "value": 32894, "script_pubkey": { "0": 0, "1": 32, "2": 126, "3": 91, "4": 9, "5": 9, "6": 181, "7": 57, "8": 18, "9": 224, "10": 94, "11": 78, "12": 81, "13": 89, "14": 244, "15": 146, "16": 104, "17": 89, "18": 243, "19": 208, "20": 12, "21": 16, "22": 22, "23": 159, "24": 84, "25": 110, "26": 47, "27": 104, "28": 23, "29": 119, "30": 121, "31": 38, "32": 23, "33": 231 } } ] }, "contract_redeemscript": { "0": 130, "1": 124, "2": 169, "3": 20, "4": 220, "5": 166, "6": 28, "7": 105, "8": 108, "9": 70, "10": 101, "11": 237, "12": 155, "13": 31, "14": 89, "15": 217, "16": 3, "17": 163, "18": 76, "19": 2, "20": 68, "21": 86, "22": 101, "23": 225, "24": 135, "25": 99, "26": 33, "27": 3, "28": 94, "29": 85, "30": 156, "31": 192, "32": 28, "33": 93, "34": 103, "35": 108, "36": 23, "37": 191, "38": 169, "39": 36, "40": 188, "41": 249, "42": 249, "43": 171, "44": 127, "45": 87, "46": 149, "47": 112, "48": 64, "49": 147, "50": 83, "51": 159, "52": 204, "53": 86, "54": 151, "55": 184, "56": 193, "57": 63, "58": 87, "59": 154, "60": 1, "61": 32, "62": 81, "63": 103, "64": 33, "65": 2, "66": 226, "67": 172, "68": 88, "69": 83, "70": 243, "71": 193, "72": 216, "73": 99, "74": 207, "75": 3, "76": 102, "77": 105, "78": 61, "79": 39, "80": 228, "81": 208, "82": 52, "83": 85, "84": 124, "85": 226, "86": 148, "87": 75, "88": 249, "89": 253, "90": 238, "91": 124, "92": 23, "93": 116, "94": 222, "95": 93, "96": 149, "97": 74, "98": 0, "99": 1, "100": 96, "101": 104, "102": 178, "103": 117, "104": 123, "105": 136, "106": 172 }, "timelock_privkey": [ 91, 85, 224, 75, 150, 38, 53, 242, 54, 226, 205, 9, 248, 228, 168, 199, 13, 143, 226, 105, 164, 193, 140, 23, 235, 111, 121, 39, 11, 205, 139, 108 ], "funding_amount": 33894, "others_contract_sig": { "0": 48, "1": 68, "2": 2, "3": 32, "4": 2, "5": 64, "6": 80, "7": 94, "8": 162, "9": 26, "10": 219, "11": 38, "12": 41, "13": 244, "14": 178, "15": 71, "16": 27, "17": 159, "18": 65, "19": 195, "20": 205, "21": 203, "22": 163, "23": 204, "24": 36, "25": 193, "26": 80, "27": 253, "28": 25, "29": 2, "30": 222, "31": 188, "32": 95, "33": 167, "34": 181, "35": 14, "36": 2, "37": 32, "38": 107, "39": 127, "40": 37, "41": 97, "42": 85, "43": 184, "44": 63, "45": 241, "46": 83, "47": 56, "48": 13, "49": 197, "50": 107, "51": 113, "52": 23, "53": 20, "54": 136, "55": 29, "56": 97, "57": 195, "58": 69, "59": 27, "60": 228, "61": 68, "62": 91, "63": 46, "64": 104, "65": 127, "66": 115, "67": 53, "68": 255, "69": 116 }, "hash_preimage": null } ], "prevout_to_contract_map": {} }