Skip to content
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

change(rpc): Populate blockcommitmenthash and defaultroot fields in the getblocktemplate RPC #5751

Merged
merged 13 commits into from
Dec 7, 2022

Conversation

oxarbitrage
Copy link
Contributor

@oxarbitrage oxarbitrage commented Nov 30, 2022

Motivation

We want to populate the missing fields of the getblocktemplate rpc call.

Closes #5579 and closes #5455

Depends-On: #5761, #5747

Solution

Get needed data.

Review

I think anyone can review, @teor2345 maybe will want to take a look.

Reviewer Checklist

  • Will the PR name make sense to users?
    • Does it need extra CHANGELOG info? (new features, breaking changes, large changes)
  • Are the PR labels correct?
  • Does the code do what the ticket and PR says?
  • How do you know it works? Does it have tests?

@codecov
Copy link

codecov bot commented Nov 30, 2022

Codecov Report

Merging #5751 (8c8b1d0) into main (cc6ff0f) will increase coverage by 0.02%.
The diff coverage is 50.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5751      +/-   ##
==========================================
+ Coverage   78.73%   78.76%   +0.02%     
==========================================
  Files         307      307              
  Lines       38730    38737       +7     
==========================================
+ Hits        30496    30512      +16     
+ Misses       8234     8225       -9     

Copy link
Collaborator

@teor2345 teor2345 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I had a quick skim of the code, and it looks good. I'll have a better look at this tomorrow, I was mainly fixing tests today.

Since we're getting the height, hash, and history tree from the database, they could come from different tip blocks. So we'll need to do a consistency check - the easiest way is to check that the tip is the same before and after all the database queries.

If you'd like to get started on the consistency check, we'll need something like this:

/// Returns the total transparent balance for the supplied [`transparent::Address`]es.
///
/// If the addresses do not exist in the non-finalized `chain` or finalized `db`, returns zero.
pub fn transparent_balance(
chain: Option<Arc<Chain>>,
db: &ZebraDb,
addresses: HashSet<transparent::Address>,
) -> Result<Amount<NonNegative>, BoxError> {
let mut balance_result = finalized_transparent_balance(db, &addresses);
// Retry the finalized balance query if it was interrupted by a finalizing block
for _ in 0..FINALIZED_ADDRESS_INDEX_RETRIES {
if balance_result.is_ok() {
break;
}
balance_result = finalized_transparent_balance(db, &addresses);
}
let (mut balance, finalized_tip) = balance_result?;
// Apply the non-finalized balance changes
if let Some(chain) = chain {
let chain_balance_change =
chain_transparent_balance_change(chain, &addresses, finalized_tip);
balance = apply_balance_change(balance, chain_balance_change).expect(
"unexpected amount overflow: value balances are valid, so partial sum should be valid",
);
}
Ok(balance)
}
/// Returns the total transparent balance for `addresses` in the finalized chain,
/// and the finalized tip height the balances were queried at.
///
/// If the addresses do not exist in the finalized `db`, returns zero.
//
// TODO: turn the return type into a struct?
fn finalized_transparent_balance(
db: &ZebraDb,
addresses: &HashSet<transparent::Address>,
) -> Result<(Amount<NonNegative>, Option<Height>), BoxError> {
// # Correctness
//
// The StateService can commit additional blocks while we are querying address balances.
// Check if the finalized state changed while we were querying it
let original_finalized_tip = db.tip();
let finalized_balance = db.partial_finalized_transparent_balance(addresses);
let finalized_tip = db.tip();
if original_finalized_tip != finalized_tip {
// Correctness: Some balances might be from before the block, and some after
return Err("unable to get balance: state was committing a block".into());
}
let finalized_tip = finalized_tip.map(|(height, _hash)| height);
Ok((finalized_balance, finalized_tip))
}

@teor2345
Copy link
Collaborator

teor2345 commented Dec 1, 2022

Yep, this all looks good, apart from my questions above.

When it's ready, I'd also like to see a unit test, or the output of a manual comparison with zcashd. Our zcash-rpc-diff script will do all the necessary checks for you.

Can you also tag this PR with a priority and the RPC tag, and set yourself as the owner?

@oxarbitrage oxarbitrage self-assigned this Dec 1, 2022
@oxarbitrage oxarbitrage added P-Medium ⚡ A-rpc Area: Remote Procedure Call interfaces labels Dec 1, 2022
Copy link
Collaborator

@teor2345 teor2345 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, looks good!

I found some state accesses outside the tip check, let me know if you want help moving them.

zebra-state/src/service/read/difficulty.rs Outdated Show resolved Hide resolved
zebra-state/src/service/read/difficulty.rs Outdated Show resolved Hide resolved
zebra-state/src/service/read/difficulty.rs Outdated Show resolved Hide resolved
@oxarbitrage
Copy link
Contributor Author

Synchronizing zcashd and zebrad to do a manual diff test.

@oxarbitrage
Copy link
Contributor Author

Synchronizing zcashd and zebrad to do a manual diff test.

Actually, i think this test can be done in the context of #5686

@teor2345
Copy link
Collaborator

teor2345 commented Dec 5, 2022

Synchronizing zcashd and zebrad to do a manual diff test.

Actually, i think this test can be done in the context of #5686

We won't know if this PR works until we test it. We already have a test that will run it and check for errors, and another test that takes a snapshot.

But we need to check we've calculated the new fields correctly before it merges. That way, we don't have to fix it later during other tests, like I had to in PR #5761.

Since it's a manual test, we need to do it for every significant change. (If it was an automatic test, we could just add it to CI once, and it would catch any mistakes.)

@oxarbitrage
Copy link
Contributor Author

I will do the test, no problem. just need to have zcashd and zebrad in sync which should happen soon.

@teor2345

This comment was marked as resolved.

@teor2345 teor2345 self-assigned this Dec 5, 2022
@oxarbitrage
Copy link
Contributor Author

We have several differences, most of them looks expected as we have different transactions which crates differences in the coinbase. blockcommitmentshash and authdataroot among others.

There are a few that might require further analysis in the context of #5686

In this PR we are particularly interested in chainhistoryroot. It seems we have this field right as there is no difference in different tries.

Test 1:

$ ./zcash-rpc-diff 6666 getblocktemplate
Checking first node release info...
Checking second node release info...
Connected to zebrad (port 6666) and zcashd (./zcash-cli zcash.conf port).

Checking zebrad network and tip height...
Checking zcashd network and tip height...

Request:
getblocktemplate

Querying zebrad main chain at height >=1903632...

real	0m0,002s
user	0m0,000s
sys	0m0,002s

Querying zcashd main chain at height >=1903632...

real	0m0,073s
user	0m0,002s
sys	0m0,000s


Response diff between zcashd and zebrad:
--- /tmp/tmp.m2cRtCZVc3.rpc-diff/zebrad-main-1903632-getblocktemplate.json	2022-12-06 12:16:43.553694712 -0300
+++ /tmp/tmp.m2cRtCZVc3.rpc-diff/zcashd-main-1903632-getblocktemplate.json	2022-12-06 12:16:43.629690511 -0300
@@ -1,39 +1,31 @@
 {
   "capabilities": [
+    "proposal"
   ],
   "version": 4,
   "previousblockhash": "0000000000febb879ef64a8447f886f325e41bf1b2e82ac8ae0a151005c2a583",
-  "blockcommitmentshash": "893394adf21f784066da4b3da7c0f5fc9b4063a31ea58c63bab87ad276b23040",
-  "lightclientroothash": "893394adf21f784066da4b3da7c0f5fc9b4063a31ea58c63bab87ad276b23040",
-  "finalsaplingroothash": "893394adf21f784066da4b3da7c0f5fc9b4063a31ea58c63bab87ad276b23040",
+  "blockcommitmentshash": "42f88acf065e46ca8dc75bf389a2f46f3831a7c899ac86aec3bc4658193c6cba",
+  "lightclientroothash": "42f88acf065e46ca8dc75bf389a2f46f3831a7c899ac86aec3bc4658193c6cba",
+  "finalsaplingroothash": "42f88acf065e46ca8dc75bf389a2f46f3831a7c899ac86aec3bc4658193c6cba",
   "defaultroots": {
-    "merkleroot": "8d44b1edcaf9ea9a39bac4770261b4e8bf61eff910bc7866e483e9f7f3628579",
+    "merkleroot": "213cf6b34ee82ffb5a20e6f6fec5ca9590adb99ee914aa5d9967205d0b0d9e77",
     "chainhistoryroot": "8e65470d2ed87cfb2d41c5d8cdb22cd5c938c5fd4e64ebace67693215ff1527c",
-    "authdataroot": "46c4617dac060f1c7995da50e8999845cefeb62ac3c20335b61840950a173b86",
-    "blockcommitmentshash": "893394adf21f784066da4b3da7c0f5fc9b4063a31ea58c63bab87ad276b23040"
+    "authdataroot": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+    "blockcommitmentshash": "42f88acf065e46ca8dc75bf389a2f46f3831a7c899ac86aec3bc4658193c6cba"
   },
   "transactions": [
-    {
-      "data": "0400008085202f8901fe89da201a9bbf6af4659e2eed916e24cea5f5433e3932616e9ed8c6e4cc62ae010000006b483045022100dbf6799eb9fa85d6b5808e2b74df4845852560d0044c3cfe2ab27792a5a390c602206ad9e6aa61539989836e376058e8ea39be2539d646329736a9a93b43e958e9c2012103bab458e14f28138b5c574161d44a80b1f4e8e1ea1d86b68d130fefc9c2fa5555ffffffff02d0720300000000001976a91427a52b18bcc7b92b64cb62a327132f52b1e5c24e88acbe4f0300000000001976a914fe159160623bf775cd614b57869d180e44d929c288ac00000000390c1d000000000000000000000000",
-      "hash": "d7ad7f3121423ca4f1287113ebaa38b59191a040ef886e82f87232e5c7e9bf3f",
-      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
-      "depends": [
-      ],
-      "fee": 488,
-      "sigops": 2,
-      "required": false
-    }
   ],
   "coinbasetxn": {
-    "data": "050000800a27a726b4d0d6c200000000110c1d00010000000000000000000000000000000000000000000000000000000000000000ffffffff0403110c1d0000000004286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908738c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b891298768b4e60e0000000017a9140579e6348f398c5e78611da902ca457885cda23987000000",
-    "hash": "f0e4421c6e99e1789a04e7064c27e044563184cfabe4921fb264f8cccd878c48",
-    "authdigest": "56492e079a2fddf8097addcc73ddadfeffdd770cb779f23c3edb9f7a2efc5ad0",
+    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff0503110c1d00ffffffff0480b2e60e000000001976a91452f3c60cc1d3eaccd6f23d215ffbade0e2c2767b88ac38c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b8912987286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908700000000110c1d000000000000000000000000",
+    "hash": "213cf6b34ee82ffb5a20e6f6fec5ca9590adb99ee914aa5d9967205d0b0d9e77",
+    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
     "depends": [
     ],
-    "fee": -488,
-    "sigops": 0,
+    "fee": 0,
+    "sigops": 1,
     "required": true
   },
+  "longpollid": "0000000000febb879ef64a8447f886f325e41bf1b2e82ac8ae0a151005c2a583216",
   "target": "00000000019a1a00000000000000000000000000000000000000000000000000",
   "mintime": 1670339392,
   "mutable": [
@@ -46,6 +38,5 @@
   "sizelimit": 2000000,
   "curtime": 1670339803,
   "bits": "1c019a1a",
-  "height": 1903633,
-  "maxtime": 1670344791
+  "height": 1903633
 }
$ 

Test 2:

$ ./zcash-rpc-diff 6666 getblocktemplate
Checking first node release info...
Checking second node release info...
Connected to zebrad (port 6666) and zcashd (./zcash-cli zcash.conf port).

Checking zebrad network and tip height...
Checking zcashd network and tip height...

Request:
getblocktemplate

Querying zebrad main chain at height >=1903667...

real	0m0,008s
user	0m0,000s
sys	0m0,006s

Querying zcashd main chain at height >=1903667...

real	0m0,060s
user	0m0,002s
sys	0m0,000s


Response diff between zcashd and zebrad:
--- /tmp/tmp.cONUcawVnC.rpc-diff/zebrad-main-1903667-getblocktemplate.json	2022-12-06 12:53:34.510991271 -0300
+++ /tmp/tmp.cONUcawVnC.rpc-diff/zcashd-main-1903667-getblocktemplate.json	2022-12-06 12:53:34.570987963 -0300
@@ -1,16 +1,17 @@
 {
   "capabilities": [
+    "proposal"
   ],
   "version": 4,
   "previousblockhash": "000000000144b0cd280c0cc9b99f68efb274cde3f004438e185942681fd6f940",
-  "blockcommitmentshash": "b81b9aa9f309e6c43ad2a7321428fee72abd17eed7936aa9c33d253023b567b7",
-  "lightclientroothash": "b81b9aa9f309e6c43ad2a7321428fee72abd17eed7936aa9c33d253023b567b7",
-  "finalsaplingroothash": "b81b9aa9f309e6c43ad2a7321428fee72abd17eed7936aa9c33d253023b567b7",
+  "blockcommitmentshash": "8f74fe996baf99ec0f7cf385c23bae05db9c144d73e9c56b31dcbe0151e2b596",
+  "lightclientroothash": "8f74fe996baf99ec0f7cf385c23bae05db9c144d73e9c56b31dcbe0151e2b596",
+  "finalsaplingroothash": "8f74fe996baf99ec0f7cf385c23bae05db9c144d73e9c56b31dcbe0151e2b596",
   "defaultroots": {
-    "merkleroot": "baf78fd7f081d53dbbf51623cd65c907d4931e491d15b5df82d2b85cc282650a",
+    "merkleroot": "551d57f7b347628272744677fb6ea7b5aa5f98d3b5a6a2d9ed87cff1fdd5aa66",
     "chainhistoryroot": "5e0efd669524de70620dbf4c46101c9c2d9445b7fc88ba660994573a96defd9f",
-    "authdataroot": "de4077e5fb0cbb684cb40acaf15bc29bed6d0735ee02908d127d57b8b090c5bc",
-    "blockcommitmentshash": "b81b9aa9f309e6c43ad2a7321428fee72abd17eed7936aa9c33d253023b567b7"
+    "authdataroot": "d4ac15b68ab2a886d18bb2e155bb5e2f8135201ca391a3ea03c61eb833c14fff",
+    "blockcommitmentshash": "8f74fe996baf99ec0f7cf385c23bae05db9c144d73e9c56b31dcbe0151e2b596"
   },
   "transactions": [
     {
@@ -20,8 +21,7 @@
       "depends": [
       ],
       "fee": 2450,
-      "sigops": 2,
-      "required": false
+      "sigops": 2
     },
     {
       "data": "0400008085202f89017c1352a9780405ae797708d542c5093b42ee0913e5d10611cbcb91298ab47cee000000006b483045022100f682cdd13486ac9dc43166a72ed0e16fbacde153789c41597ba99eb9afabe64202206e63f89d2349c833ccb592ecb27c0d4fd2117657cf4bba75a0af3df1b5619aea01210292c0ef6bfea437294b66bd0f0917da9acabf1e26af8d80b2667be7e6c80743b2ffffffff05905c4000000000001976a9147211f9dd632699d7c1725a95bdc07b26ea517ed688acd83b0500000000001976a9145a4fe231ff2fd6e65ed86cbbdb19240166f9938f88ac30e76a00000000001976a9146c2d1d45bc20f9c878b90389e7b45533d5a0537d88aca0cd0a00000000001976a91442256fa3991aed3657e1e42526f6e5dd460f7b3c88ac3052c505000000001976a9140435d25f652160e5c6c8d1eb354754189f739a2888ac000000005c0c1d000000000000000000000000",
@@ -30,20 +30,20 @@
       "depends": [
       ],
       "fee": 694,
-      "sigops": 5,
-      "required": false
+      "sigops": 5
     }
   ],
   "coinbasetxn": {
-    "data": "050000800a27a726b4d0d6c200000000340c1d00010000000000000000000000000000000000000000000000000000000000000000ffffffff0403340c1d0000000004286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908738c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b8912987c8bee60e0000000017a9140579e6348f398c5e78611da902ca457885cda23987000000",
-    "hash": "f5355fa9bcdba2936cfacb93cb8e19a34efa3872f3e4688dcb452bc038f7c1a6",
-    "authdigest": "78f4d20065152f4d9fa05aaaa68a28be59049100327c3022558b363428d33b3e",
+    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff0503340c1d00ffffffff04c8bee60e000000001976a9145f0d2f64cd28c7e8d1b9d41ff86498f1621802a188ac38c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b8912987286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908700000000340c1d000000000000000000000000",
+    "hash": "774782949066ea8db2f8757aa3488601f52e19d549bcb8b20a6a1db697ce677e",
+    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
     "depends": [
     ],
     "fee": -3144,
-    "sigops": 0,
+    "sigops": 1,
     "required": true
   },
+  "longpollid": "000000000144b0cd280c0cc9b99f68efb274cde3f004438e185942681fd6f940435",
   "target": "00000000015f2200000000000000000000000000000000000000000000000000",
   "mintime": 1670341627,
   "mutable": [
@@ -56,6 +56,5 @@
   "sizelimit": 2000000,
   "curtime": 1670342014,
   "bits": "1c015f22",
-  "height": 1903668,
-  "maxtime": 1670347026
+  "height": 1903668
 }
$ 

Test 3:

$ ./zcash-rpc-diff 6666 getblocktemplate
Checking first node release info...
Checking second node release info...
Connected to zebrad (port 6666) and zcashd (./zcash-cli zcash.conf port).

Checking zebrad network and tip height...
Checking zcashd network and tip height...

Request:
getblocktemplate

Querying zebrad main chain at height >=1903673...

real	0m0,006s
user	0m0,005s
sys	0m0,000s

Querying zcashd main chain at height >=1903673...

real	0m0,065s
user	0m0,003s
sys	0m0,000s


Response diff between zcashd and zebrad:
--- /tmp/tmp.oVuoqVX5BK.rpc-diff/zebrad-main-1903673-getblocktemplate.json	2022-12-06 13:00:47.927131390 -0300
+++ /tmp/tmp.oVuoqVX5BK.rpc-diff/zcashd-main-1903673-getblocktemplate.json	2022-12-06 13:00:47.991127915 -0300
@@ -1,47 +1,45 @@
 {
   "capabilities": [
+    "proposal"
   ],
   "version": 4,
   "previousblockhash": "000000000086a3252dfc00b2a7bf370910491380279614b87c4015433565a3f3",
-  "blockcommitmentshash": "703d9483b57df728b079db17239f0336a99de4edb4fa19e3a23c618a5eed9d0b",
-  "lightclientroothash": "703d9483b57df728b079db17239f0336a99de4edb4fa19e3a23c618a5eed9d0b",
-  "finalsaplingroothash": "703d9483b57df728b079db17239f0336a99de4edb4fa19e3a23c618a5eed9d0b",
+  "blockcommitmentshash": "3803c3e79289ed357dc9f5f463e2dc7d4104cabf7b8f8c90020adbb306b7a57c",
+  "lightclientroothash": "3803c3e79289ed357dc9f5f463e2dc7d4104cabf7b8f8c90020adbb306b7a57c",
+  "finalsaplingroothash": "3803c3e79289ed357dc9f5f463e2dc7d4104cabf7b8f8c90020adbb306b7a57c",
   "defaultroots": {
-    "merkleroot": "db358c7d9dff8cf1e1563f8b1352f0f594bb3e056a76c11d768917497f132b7f",
+    "merkleroot": "9ee3cdfe6001e315948a43940c931c8119d550558d9c2da05518f6092656a241",
     "chainhistoryroot": "b6b97e2c6788da1dba4513a68e54f869eaa4451f6ee9b257b81a793a8310c412",
-    "authdataroot": "388c6aee3ea8fb6f8ac5488e77527f804f82c8550e1c6306e57d434a871c29ad",
-    "blockcommitmentshash": "703d9483b57df728b079db17239f0336a99de4edb4fa19e3a23c618a5eed9d0b"
+    "authdataroot": "783127c5ae7907341852424b15d37dd82e6dcc2f2c3e00618a513f2c70b0e06c",
+    "blockcommitmentshash": "3803c3e79289ed357dc9f5f463e2dc7d4104cabf7b8f8c90020adbb306b7a57c"
   },
   "transactions": [
     {
-      "data": "0400008085202f8903503e97a024568b72098f33c6896651bdff2d1c68117493389a6d377e914ec956000000006a47304402205519ce22f6062bd611ca0f421e7e707aa513c8d15208ccce746564b067a1ddc102203db487493b61f5a3cf956ea57d7c1251aab82a452f21af5c176daa5ef1cb0c26012103fc5702bb4e8880e3b19714b6172fbf44e99c549eef50ea992828f882e8754737ffffffff825b53cfa8a857967f102c146955c6993a0734586a25a73ea29fe57517d812e1000000006a4730440220432e7c8da6dfa93447351c256b1b27c8a16e4bfbc15742b6dd43ff6d4691007c02207572a7f01d63ac57d1eac7db51cecd6d7548abaaf1da7a25fae710dc2abce3c6012103fc5702bb4e8880e3b19714b6172fbf44e99c549eef50ea992828f882e8754737ffffffffdd3a676007653c0e08e03c4d875d0ed011627e71d72dc3575dd985ea71ea201e000000006b483045022100bc57906ed60b02fc5dd95aad2babd1f2be982be527a7f4e2674ce7b5de9bb2e202206a9dd03d0ac293a8c5c2889452aa32db8a064562062d3f98a97ed2338d9727cf01210208e1d1e91f2760040ed8816b12a91d098d5784cea6a98dfb7b29f3d8ac56d3bbffffffff011c46ee0e000000001976a91429ba50d6a4fad5c61b69d9eebeb8da539891e0c188ac000000005d0c1d000000000000000000000000",
-      "hash": "52fd42262a8271baacd513c68f21418a592d69fa8c38648c9953b2a4549846d7",
+      "data": "0400008085202f8907a5855fe60529318f923f2fd649a33a2ecef0c5b3543a827d9d5360260ba867e4010000006a47304402200c91cda68ff6d204706c59fd78de98877ccd95711370b19bab041136b28ed9170220492d003d9229de913f04b752d3db796cec32117e049248092f6466c18ed7184301210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffccb5efc2795f2232d7bb3a8dac55c7f9892ba893771b0ea9f75f8267fe2597b50a0000006a47304402203ba8d8a4648738308a09c4804346871744d32e6151b2d6b19ad939f7c0bc3b1f0220774979d565f494cf225d8149e599eddd004522cfc319b5700c69a5468002a4b001210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff1ffb9fe5bc4c6576965c33eaeb7e8df0155d2e8e4aa40ec86ebd5d793e4e9e1f010000006b48304502210092776a9071fbcd27908d1353dc2b9d83d9202aaedafc27847f35129018ff740602200e752630507f3905bbb81c91c23f552056dc360f2a9e2adbf15752af8c832e0e01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff159d530349ad9b823de66fc621963169d50b9c8d023051fad5a08f01e9e95c9c020000006a473044022073978a2b88258b5f00635c84eb8fb7d40ae26e8c7c7a08839b38e0683aea442f0220078d1d5bfbaafee528e42ba20241c5d019d143973a837d9dfd91145633c77aff01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff7528cb44e0e94482541efb5faf29efbd1056707cfdd98d80b9c89f3a53633e39020000006b483045022100d267378b6aa64c0db2b434cb56757517cfa3e323d064f0780472a96f76f0488602206c27684ec5781228a3b9127808f06dab2e05773ae34974211a199fa0e9104dd401210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff75f3ee88e02bbf98fece97f13b68cc4473ca355c8185de8d0565dc60353bd6550000000069463043021f5b51c0c3e3a317454c46dd4a3ced053a1d03f1d678c3176c0202010f86d0e4022035344480e52a49d8746abdfa5f8da9b798477d67cda24bd067140a196c9ea4b201210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffcfe6baa65a49a2f5b3cef29b71ea19fa892667c5762b015953cd16396664e8ce000000006a4730440220547d248a2a8fd4af1484b222a55c09c857e237a7df2d0b848be4c757d3ccd0bf02207ca26fdc9b76ea9cc92bb4d01c8c5f51a93115df8bf729800fab1d04d7ebfad901210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02bda4c342000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88acd7d80200000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
+      "hash": "460fdf6952a251a9a703efecd58ef6299b57f5c91ffe980347ee3ed9f9a54d1a",
       "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 26100,
-      "sigops": 1,
-      "required": false
+      "fee": 10000,
+      "sigops": 2
     },
     {
-      "data": "0400008085202f8906ef0768c853e4c8f3d09584708f845ad9656545284a88d283c9eb817ef1469605010000006b483045022100f31d6111eb3a52ceff55220a8008e6cb296f7339d40bef92b037ce2eee22eb3602205cc812c53c438cee304766a0355a5a49cd65fef3c61d8e707b960447803f5e8b01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff5c25f729f3ac25645813697e83835bad757b3e934803c5361762764d901876d4010000006a47304402205c6430e91bdc76b798a80b93165a2eae15ed47efd5910d534f800f1025b77136022014997ce5bf5fa2cf723dc83ae0111abfae9bcfbe0e4e05e8efd89288ff49865b01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffd9b92b7391515e975f93ff8c694e1309ba718c1b06addf8a5a55a686a70b4251020000006a47304402207943750b05df75d07269109167f992d950bb98fac60f43e33efa07acc63ab454022010099a51c23a21f5037669e1c10e9313d080a56e35be4cdb21466280580055b901210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff55f17d49ca4bfca21a7c8483ac2d2aa2c78b68cc2a5a481d3855e2dfbb4a60a4010000006a473044022035aca23049c8e2be304b761bcf8b85c095fd7d08547216c5afcfff0351ef01f50220224281f5a4fa19d47fa7e224be1677ecf188ab6bae24d117afa816733e80023e01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff35510d35a8b0b38a7f50e1750bc5722ce7ffed65fae29bc2f3dbb6c7c5a5fec3010000006a473044022075cbaebb7ec8b323487fe0740e44b6ab6f7e09c2b4a5f3b1224c6f331b35a7d502201c7b2f7d210f9c19e67855b1f20ffad81aed9ceeee5780469e51d7e31efcb1f601210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59fffffffffaa2de61bd758c6ffbf12dfae6e5948512be910fcf7b9b94dfc3ff9fd8199caa000000006a473044022031bf6454c3b3c5d02cf09392f9b293019ed7a4602403629430d0420d5c927f3502200e500b9d9f0e6c560e6c630d9c8e632dac7f87e336aa1cbcd3078b45a69aae2d01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02ae9e3d09000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac30690300000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
-      "hash": "a850b2c4fba6558f6c9d9c6083f4cb09f4710f52da2b462405836bc55daf8806",
+      "data": "0400008085202f89047fc49a3ae3427fc96291f465ea86d89f9846731651be787955c5b7b32718a454010000006b483045022100ef3323cfd95bdf0151c507f592696832da899911ee6ac8a00e52f5b2fe80bf780220145b60c8d8e5112c77b28e2d4086c0b7e01ce754febb9fbcb75fd2d499cfabe101210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffaa54b14f174c27eb6a211628a3f8a681704c6ad9575d5afe580d906e4b4b3874010000006a47304402201e68012dd91f4d44489432dc87d356d68428603c48ee62cafcef0bb1ebe26eda0220191737483b188bb327857ce2523c8dbac5f390c4506d18ce5cb2a2a938a8bc1501210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02b9cbae6157f3561f6e1d6ddccf5e6024a618713ec4240724734ff5fe54d0ee010000006a47304402203e24dae4f3fb247f237121f75f69913015fcf909518eeb1373eb54fc0189f7cb02207311bc7d8d4b0f17f3cec3f58bdfefc8cc67597d8f78dae936ccab89a7baad5301210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffeb7e46bfd2445ae55781ae9e71c8946e6c865479804b99c5b97d045368307330000000006a4730440220052e4df8f28d4ca9e05fc8a299d9a1f1f5736d31d81a7ee720b6d061b8b7b75e022000903217af8d25117c7987bdc4eb0f6b01c6c209a05eaf9fd00d3fa324f8684e01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02b9c0201a000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac41090100000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
+      "hash": "a9b4852f551397d42fa05c88f7a585a6b24e0613534bfee8b8e0cf51cea09a3d",
       "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
       "fee": 10000,
-      "sigops": 2,
-      "required": false
+      "sigops": 2
     },
     {
-      "data": "0400008085202f89019360869e3cbecc37ff37a6426a679c283a950059064b0e1dea4457a2adcdd754010000006b4830450221008807aebc3806d1c4565487dc7c3ad2be983cd6f210382529de7659c4dcdf8fc0022059f87b687b5f6822f44c09a994e8bf3c1daee56cc64ca7f8d78894beeebeb7df012102de03cd1306c49d5bdb9038a1d7f47cd7832115f8a67c16e966a1461b011ed04bfeffffff0289730700000000001976a914308cfe5be24effbea0989a67197329848c02536f88ac1dc71400000000001976a9144caa96c2935033e2dc4d522782a4c2440646fe5c88ac2f0c1d00620c1d000000000000000000000000",
-      "hash": "c0251718a0add85cebd69a822f8af0e06b8666139ff3eeb6513f69cec48e3d13",
+      "data": "0400008085202f8906ef0768c853e4c8f3d09584708f845ad9656545284a88d283c9eb817ef1469605010000006b483045022100f31d6111eb3a52ceff55220a8008e6cb296f7339d40bef92b037ce2eee22eb3602205cc812c53c438cee304766a0355a5a49cd65fef3c61d8e707b960447803f5e8b01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff5c25f729f3ac25645813697e83835bad757b3e934803c5361762764d901876d4010000006a47304402205c6430e91bdc76b798a80b93165a2eae15ed47efd5910d534f800f1025b77136022014997ce5bf5fa2cf723dc83ae0111abfae9bcfbe0e4e05e8efd89288ff49865b01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffd9b92b7391515e975f93ff8c694e1309ba718c1b06addf8a5a55a686a70b4251020000006a47304402207943750b05df75d07269109167f992d950bb98fac60f43e33efa07acc63ab454022010099a51c23a21f5037669e1c10e9313d080a56e35be4cdb21466280580055b901210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff55f17d49ca4bfca21a7c8483ac2d2aa2c78b68cc2a5a481d3855e2dfbb4a60a4010000006a473044022035aca23049c8e2be304b761bcf8b85c095fd7d08547216c5afcfff0351ef01f50220224281f5a4fa19d47fa7e224be1677ecf188ab6bae24d117afa816733e80023e01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff35510d35a8b0b38a7f50e1750bc5722ce7ffed65fae29bc2f3dbb6c7c5a5fec3010000006a473044022075cbaebb7ec8b323487fe0740e44b6ab6f7e09c2b4a5f3b1224c6f331b35a7d502201c7b2f7d210f9c19e67855b1f20ffad81aed9ceeee5780469e51d7e31efcb1f601210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59fffffffffaa2de61bd758c6ffbf12dfae6e5948512be910fcf7b9b94dfc3ff9fd8199caa000000006a473044022031bf6454c3b3c5d02cf09392f9b293019ed7a4602403629430d0420d5c927f3502200e500b9d9f0e6c560e6c630d9c8e632dac7f87e336aa1cbcd3078b45a69aae2d01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02ae9e3d09000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac30690300000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
+      "hash": "a850b2c4fba6558f6c9d9c6083f4cb09f4710f52da2b462405836bc55daf8806",
       "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 489,
-      "sigops": 2,
-      "required": false
+      "fee": 10000,
+      "sigops": 2
     },
     {
       "data": "0400008085202f8904fa194674d9513c8a8c4825845b98745797e817758d6a09f7103f52b32064945b010000006b483045022100d35c97dc255d2a3d6d40850fc01d23c40f3aa268b30952bd4e6d7ecf1716680e0220469dd478fe1788597a8f42ad4d723012cf3b1c2a14101c480ef06b127b73d8c301210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffae3a7b14e722ef9d96c7cc89dc7310da733a056b5cfe5ecc9da0288f2fcff897010000006a47304402207e237b2cd0fe53b9e7c972d5ce63ee6e4f40184bb474ecc409da4bfcf9eb2d2202202627c129a7652aa945191550f5dcfc9838a33de562aedd770ab1504d8602ac9f01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffd9b9b062b142040ed862f6ea4b7831a1d14c7162eabb09fa1fbfbf7d47dbe781010000006a473044022043327e1fdbcacc2a12c0952b0c92d824d7852479deb34e53caf102c228d6f99602202d806e44f3036a47bc1839937c7e5c3a2b8486debc00e2cc809da1119713e7c901210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffd45712dce568325acdb8be017f4d92c8a7ccb66053b92e5776e2983a961ff2d2000000006a473044022024a23df38ecf6b7db61b769338adfff323cc013a4effd587145548f20c87982c022068cca626bc9d72784fa0ff108e5c42089db5706b003759b08debbed2d13069cd01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02f9568e11000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88aca0980100000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
@@ -50,68 +48,61 @@
       "depends": [
       ],
       "fee": 10000,
-      "sigops": 2,
-      "required": false
+      "sigops": 2
     },
     {
-      "data": "0400008085202f8901bc725f4a008b383f1a11be2f5fa3f39b6b836a9dd4d416b2be6c96d9733605db010000006a4730440220686f626a12beea50fd80f906485ba5c5f2e0ba2cacb610870360f843e935945302206d36e7cca67f909fd99150e5f73779939eb6c3d8080e7113da6bb353af39f9780121038d868b42c608f930b03616d36ad448de136243220d3059c978ea4971d004b7f2feffffff0177523615000000001976a91415961e1bc249bffcf9d70eb1ceca3d0ff9fce93888ac00000000000000000000000000000000000000",
-      "hash": "eb5a764f1bdcfdd138cb476b260a3f58c1d53ee05d1b1e3afb47c9660187dd41",
+      "data": "0400008085202f8903503e97a024568b72098f33c6896651bdff2d1c68117493389a6d377e914ec956000000006a47304402205519ce22f6062bd611ca0f421e7e707aa513c8d15208ccce746564b067a1ddc102203db487493b61f5a3cf956ea57d7c1251aab82a452f21af5c176daa5ef1cb0c26012103fc5702bb4e8880e3b19714b6172fbf44e99c549eef50ea992828f882e8754737ffffffff825b53cfa8a857967f102c146955c6993a0734586a25a73ea29fe57517d812e1000000006a4730440220432e7c8da6dfa93447351c256b1b27c8a16e4bfbc15742b6dd43ff6d4691007c02207572a7f01d63ac57d1eac7db51cecd6d7548abaaf1da7a25fae710dc2abce3c6012103fc5702bb4e8880e3b19714b6172fbf44e99c549eef50ea992828f882e8754737ffffffffdd3a676007653c0e08e03c4d875d0ed011627e71d72dc3575dd985ea71ea201e000000006b483045022100bc57906ed60b02fc5dd95aad2babd1f2be982be527a7f4e2674ce7b5de9bb2e202206a9dd03d0ac293a8c5c2889452aa32db8a064562062d3f98a97ed2338d9727cf01210208e1d1e91f2760040ed8816b12a91d098d5784cea6a98dfb7b29f3d8ac56d3bbffffffff011c46ee0e000000001976a91429ba50d6a4fad5c61b69d9eebeb8da539891e0c188ac000000005d0c1d000000000000000000000000",
+      "hash": "52fd42262a8271baacd513c68f21418a592d69fa8c38648c9953b2a4549846d7",
       "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 1920,
-      "sigops": 1,
-      "required": false
+      "fee": 26100,
+      "sigops": 1
     },
     {
-      "data": "050000800a27a726b4d0d6c2000000004e0c1d00000154b96c180000000017a9142199227b174b43a902c92f799dfe3e453e351f4c87013f0a8a6918627cc7bdb5652770f7ae74706e29ab65ed22ffa71272d699f73fc59fca877ae038ef757f3fe232eaf45412da3ee5c8b0031163310a63e606f1998f910b919a21a88d38a0c1a050eb91a69b665d6aea985e7d04718a86ce3b1551a30273c6b2f715a8a6755df875d96be8a01ca0f4f76c6b7eda0b8f5a7b9d24c2f9ad8ed673772f35dcb24d6a0f4c52e2a6852cabcaee2ce09156d001f1b17fe79c5fc3d849ab17cbfcdd6c87eb5aa1778bfe8ffd1dfb0ef75079be4b98acb762e4923c7d30fb0102f377f7f4bc183bb2e137ea20ece347843dff677a8748635d614326c2d29b3cc58d74cf9a8b95bfa9fe88f65de26de6cad5c0c9d5e06a05b28c9c2186b81f2d4b5367323e94bd8f865857b79f5dc6231b171a39edc1e3bb50e592be0e2c42bb75a64d7ad233b855a5402fc920a557e9974579b1b31ccb2bc1a9b8d56dcd1ab4805f7e203c5581ee57054b51b59f23a56aeb3f64461db680e780204afbcec4fea28e90c45c0447139af490044eabf353116d85127583af5b9590272f90152bb80ce81d70c7cfb77d64d9ad1780e6363305d907b15fa34b63f956c18b47d4f3bfe7ee3aba2a2977fac016392d624288a8cadaf84dfb1d98b31b8a69b22704c7cda7ba5604dd0acc5339b4b176af8b44dcd922a1c6a8bdb0cefe1964d52c8ccd015887f4422f8716cea82cd0b3aa3629febee32c0af19c5debcc29cca4cf10bc15a68b18a7a769e99140d22f1dea54fddff9a39a28341d3a3c69f84d8442ea5b3a9736263b7837ddadd4513aae54de97656360cec4acfe02d18bcdf0e7195746cfa6986ad5bf660ef49d6db52d76bbba516ea3b74e8e52aacc98eedf5d3fe1e345bb67de03d9b22c44d100d78625e4cc6138f9f5ce78405d5850d74b1d87d5d92da566df4a1fc2aae2d96dff58fffa3e0e7d33cacd0e1f7ef97331172fcba77c4df731dd24041206701e2033da29ce492e15943e3d3835203da4e87d869cc9a77bea14c9ca6f4e261e5176482d8c4e2ef99a739fcad89375faa17df470ec5d3745631518e8c565ee398054c91c4f97865bb92c932204fdab605da91a3da4f90b6f0c4c3657b9039563a5fab04bca5e3bca905277296df8acfd9f3815d2c5e351f7521d22a05239fc544b45e2e353976a3ca6815205919fe0f76dd606e5e32c8aaa7494538fcb09ebe5f3cfff1ad8f251bc194a35969a82ad5563c7d44bc9ebecac6065b9723f321458d6b78999eb1d1038454cb7f1e659d7937efec7fb766b3d2bae2f2fbe2411a7ee2fd753caa3d74a8cd275b5e62e8bea07990fdce3369e390e16b7e680ef6ab751ceb5f68b3c73c893f3018fc3e5ed07ae3a8a7b177423607c992a505663b00f9177176d45fb0f798d9b243251e526d3fcba3172ca5edd2bfffce40dbe893eb212df59f52bc6201ee6bd2fb0a278f0152a675bbc8c23eb6e247b7371a765a07e5d56105c128957de6abcb1bcc48503f5b060d550abc7e8daf0aadddd7ff99705083892e91c776c64a6fef90feacd9a815a62801fab5c33ca9c248661c076e04e90f5f77b06e1351f5a1cd233054de12a984974e90da69e0d6e9c14f82a20a9612a9c788ea1889f0b2f56f8d79d74136f6ddef0fe913df7740778a5966574891bf0c3d86001345ee5c56b25c1c799827f51b098116c59960e02ae7c008ad0c7f65752173a0c590481aa9e488dd200ba9243040a85ae1d69f5f50727868d83a2014277cb60d3f14e12d3368ea522e11ec3facf70431dad43e548faa8b7acfdd91ac84cb0e379659d677d0c823694c53444c59b076b113f60d2320dd61aca51cedee6926a90e74c87710cf69dedf85cce073afb3fd4f675f569c889769a56061e0418e4bdcbf8e0040723347bdd80ec1cde8af28dea15c7e5ed90e163aa1a5ef5c7dda8fe371e2a613a5d814b8ace35130808a04ac208800fd4b93c3bf9f0ecd9eaaf7c7ca81f72af01f5c7b1cb5f6574cec4f99834d67574798b3056ea4711d4c4abf9f93aa64260e8f44776b17e05c837713fef1fddf99e7ff7587a5703754fed132b3a0e796f380102592b82de49710876515c3026665d9eac76c02a72b4664169f0ca9f76524435e1e694118613410899ed067429a6a81fd87d85183dcabfdcd102f4e5b4d3fc69d34fbbbd306f3886100b215a01b74a0bd23ebad595b713a33aa82e75eb30a4f831f70b0d38e9bad39aec498f99996754d31a193652bb68a2ed7a05d9959acc9641acd5f90cf4f9567d89e9ce519add804e62d27e3cbd6c1800000000849d80436f3d8f64207eec727f6d536bcc8161b9cce56c8630c2d924adcf9b41ab30581e50027005777450b2344d79e2ff11a9a8412b48e558d8212f05df4c808661e415de452718c649ec3844e517c594f21f943813d4497f40ae7aceffad0e4118905ecff255d9055ba2aaa0f838d6767888d52ea9675bd7e049cb56150f801771e8230c4c1bdbf8ed532f1de89d881cbc4e4e1bce926005c5c445851ee1b034aaf24a0c011460475efa07b5b5146780744f8eaad8dc9d17a931b433bf8099eceba43ef46cc9aaa10fc614b3f050bf7b63dd8fa2d03ebdefccb3f10fdd6d564612093a72b0f73ca8739f427e92924fe00b5692b8c00f969b1023e44808dfc7fa487a64ad8b131d424521109fb872ff190b9eba344a84d64de795542f63760583b9ee194a2e379da8855c92f22e34a38bf5cd7a7d5df77b4c9933fe2f585d4e61f45f7140899765878145cc7585bed595cf57a7e4bdde1a6dfeb6f6dddb1c05a5ecaad728221750eeaa12c537ef9f31bd73b0bfdcf2dcc31decb641652699700121d74d9e33795a02f9768fc76dd7deb1cd21267177af50bdd3bc3346120762c8fb3e09a6d1532c7eadf4f5c02ab57ba24f42fc299f6d6a9432de80123ef3414856503f2aef28b3079a3a4db3b1c9d68df7ac6066e6efb7b0664e24816269a8a575efba36dc8ba65a8798b3f16a0613c908211409df310cf52a427c3ce8f60970246f0a4112dbd11a4b0d924b018a8fb9eb8d62d5eab3ba813faddefd52632121ce8cea6947cfc7753a57d242266262575779cd065a3ea5817ad8c166a26d6815266b1674f0e4bca632679b1bd58eae5e6aae91759f1a9f2385258ffa3bcec875eb025503b3aa10854b138ce74a634b8e46b9e5ce40be90a083022516d6f1e6290fc66d3311b3677602c50247cdd841a455c0755304d0a359e7f1d55a11cedf885acc22956dddd7d701d72f9b86e90a1ff6e70097dfeadf1ea2f2d22c4c158e03e23ab2e18fe231287920fe98cc5a0e8e55b7274a66799049f249881a1d770800",
-      "hash": "1ee88c404cb89e7f5ea415732e76c641a0bf6ac517c128bc969c92daf271626b",
-      "authdigest": "9976ecce1da0313df3f677217c9a55679c808adeeb58ca5db89986848adb7555",
+      "data": "0400008085202f8901bc725f4a008b383f1a11be2f5fa3f39b6b836a9dd4d416b2be6c96d9733605db010000006a4730440220686f626a12beea50fd80f906485ba5c5f2e0ba2cacb610870360f843e935945302206d36e7cca67f909fd99150e5f73779939eb6c3d8080e7113da6bb353af39f9780121038d868b42c608f930b03616d36ad448de136243220d3059c978ea4971d004b7f2feffffff0177523615000000001976a91415961e1bc249bffcf9d70eb1ceca3d0ff9fce93888ac00000000000000000000000000000000000000",
+      "hash": "eb5a764f1bdcfdd138cb476b260a3f58c1d53ee05d1b1e3afb47c9660187dd41",
+      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 1000,
-      "sigops": 0,
-      "required": false
+      "fee": 1920,
+      "sigops": 1
     },
     {
-      "data": "0400008085202f8907a5855fe60529318f923f2fd649a33a2ecef0c5b3543a827d9d5360260ba867e4010000006a47304402200c91cda68ff6d204706c59fd78de98877ccd95711370b19bab041136b28ed9170220492d003d9229de913f04b752d3db796cec32117e049248092f6466c18ed7184301210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffccb5efc2795f2232d7bb3a8dac55c7f9892ba893771b0ea9f75f8267fe2597b50a0000006a47304402203ba8d8a4648738308a09c4804346871744d32e6151b2d6b19ad939f7c0bc3b1f0220774979d565f494cf225d8149e599eddd004522cfc319b5700c69a5468002a4b001210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff1ffb9fe5bc4c6576965c33eaeb7e8df0155d2e8e4aa40ec86ebd5d793e4e9e1f010000006b48304502210092776a9071fbcd27908d1353dc2b9d83d9202aaedafc27847f35129018ff740602200e752630507f3905bbb81c91c23f552056dc360f2a9e2adbf15752af8c832e0e01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff159d530349ad9b823de66fc621963169d50b9c8d023051fad5a08f01e9e95c9c020000006a473044022073978a2b88258b5f00635c84eb8fb7d40ae26e8c7c7a08839b38e0683aea442f0220078d1d5bfbaafee528e42ba20241c5d019d143973a837d9dfd91145633c77aff01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff7528cb44e0e94482541efb5faf29efbd1056707cfdd98d80b9c89f3a53633e39020000006b483045022100d267378b6aa64c0db2b434cb56757517cfa3e323d064f0780472a96f76f0488602206c27684ec5781228a3b9127808f06dab2e05773ae34974211a199fa0e9104dd401210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff75f3ee88e02bbf98fece97f13b68cc4473ca355c8185de8d0565dc60353bd6550000000069463043021f5b51c0c3e3a317454c46dd4a3ced053a1d03f1d678c3176c0202010f86d0e4022035344480e52a49d8746abdfa5f8da9b798477d67cda24bd067140a196c9ea4b201210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffcfe6baa65a49a2f5b3cef29b71ea19fa892667c5762b015953cd16396664e8ce000000006a4730440220547d248a2a8fd4af1484b222a55c09c857e237a7df2d0b848be4c757d3ccd0bf02207ca26fdc9b76ea9cc92bb4d01c8c5f51a93115df8bf729800fab1d04d7ebfad901210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02bda4c342000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88acd7d80200000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
-      "hash": "460fdf6952a251a9a703efecd58ef6299b57f5c91ffe980347ee3ed9f9a54d1a",
+      "data": "0400008085202f890144074137d5f480027d6cd067d98119cbd8ceface97e5c1ad2234d532d2ee9d70210000006b483045022100a28dba95b453df881a57f7422f061e1f696380d1110f386d0d62fa77aca1df8a02203520ad527350009080108aa967c86905c9d391222a01b8d4e7553ccaf5702a08012103eb9f013861d095dea691212bacc83f2df4ce87bd803d4aaf979ba1d50cd4286cfeffffff22fe010000000000001976a914e391b533f76746fbe5c789d0cf8b643c1e97313b88aca8200000000000001976a914470bb1962cd7a79fa938debf10bdf1be7c7b451d88ac7c150000000000001976a914221e1fd33efc31cdd5a0eff182ae33dd2d48681488acbc160000000000001976a91407e539fe45fb41130478d743f0d07ec34444e41888acc0030000000000001976a914403c130cb503fd259cfa68505518c23e962ea45a88acac030000000000001976a914c30d00ca4f5d03c146316e9f86109cd088643fed88acde210000000000001976a914f8342e0f3972f7a5f59015e800a142a0d43d742888acdc3c0000000000001976a914796fed76afa580c2b45fd11468e246fc85d5c94488ac8a1b0000000000001976a9144b3d5f1af5b7eda709635fcd4c25abe0e7f7bffd88ac30020000000000001976a9144de842ff5d0e3d28ae44849a619bd9b78f3a931388ac9e1b0000000000001976a914c508d2b910021ab3a0b76f2eb3daec2080588e5688ac4a290000000000001976a914a7ef608f8119a229280f8874113e9159313e906888ac4c1d0000000000001976a914d1c3d39f697712cf3ccbdf886faab8086bbb027688ac12820000000000001976a91460c0108ccfd3ab02c5dc3567de6e2512e67ee22888acfc440000000000001976a914447b277bb4862b77e6aea3b5dd079bf27a8a9ad888ac2e130000000000001976a9143268578d59df5e42ed42ac15f3b43c9189a6499a88ac40290000000000001976a914755711eeec94a165e4349b90d3804a42037ce89788acfe010000000000001976a9148beab96e2b15ceab6135b129d6868734cb34ed1b88acd6010000000000001976a91492682838d37a3204d631ae91d3fbc524c72f646488ac1b4d4840000000001976a91437b5617711e6b6fd8b576aeec53214d554d9cd0888acd8450000000000001976a9147ae4eda80195e5cadaa7d8b696c9e15cab02d55788acea010000000000001976a914f0d92ae09bab17ddce5054b15314019214b8b29f88ac5c030000000000001976a914851d97da39f9be012711ec7538e9fcfba51eb93c88acc3ca0000000000001976a91457fea0212945aad25c284071f43cb555e562496e88acc8320000000000001976a914560710f70b96c2c532cf618eaba0282b927aaf3f88ac1c250000000000001976a91451a6ddd5bcc9bfc2a0cfb7f62c61dc3b507abca888ac3c230000000000001976a914750ec752e624b0e81f941784864bfbecb506f9ae88aca4290000000000001976a9141b873562a7b564e307f024c83cd5f2f07592ed6888ace7ce0000000000001976a9146e9152fd2aefae6260c87ea655a150cb2f3e5abb88ac1c250000000000001976a9142debe7b67e761f4ea4e5005fc71c33d85e5157cf88acee820000000000001976a914cf1418d90701ee1a6e3b0ff3b24a344ff66ad30b88ac84210000000000001976a9148d03f386a8efa7667b5ee5538d7740dbb1f4514b88ac8a020000000000001976a91450257b7a6d65790626dcccb64354250c4cdc648a88ac62020000000000001976a9148e5ba0ae683d9f6834a8b1c1ef55e2f067a529a888ac2f0c1d00620c1d000000000000000000000000",
+      "hash": "c94cd2564d3a23adfa3c8c2e620fe5df2aeae6bbef02f2d685b7ca9914356866",
       "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 10000,
-      "sigops": 2,
-      "required": false
+      "fee": 2663,
+      "sigops": 34
     },
     {
-      "data": "0400008085202f89047fc49a3ae3427fc96291f465ea86d89f9846731651be787955c5b7b32718a454010000006b483045022100ef3323cfd95bdf0151c507f592696832da899911ee6ac8a00e52f5b2fe80bf780220145b60c8d8e5112c77b28e2d4086c0b7e01ce754febb9fbcb75fd2d499cfabe101210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffaa54b14f174c27eb6a211628a3f8a681704c6ad9575d5afe580d906e4b4b3874010000006a47304402201e68012dd91f4d44489432dc87d356d68428603c48ee62cafcef0bb1ebe26eda0220191737483b188bb327857ce2523c8dbac5f390c4506d18ce5cb2a2a938a8bc1501210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02b9cbae6157f3561f6e1d6ddccf5e6024a618713ec4240724734ff5fe54d0ee010000006a47304402203e24dae4f3fb247f237121f75f69913015fcf909518eeb1373eb54fc0189f7cb02207311bc7d8d4b0f17f3cec3f58bdfefc8cc67597d8f78dae936ccab89a7baad5301210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffffeb7e46bfd2445ae55781ae9e71c8946e6c865479804b99c5b97d045368307330000000006a4730440220052e4df8f28d4ca9e05fc8a299d9a1f1f5736d31d81a7ee720b6d061b8b7b75e022000903217af8d25117c7987bdc4eb0f6b01c6c209a05eaf9fd00d3fa324f8684e01210294e95e927508f6a6cde79a068358b90b10a1c6bf9d3a61f0e711c945efa3bd59ffffffff02b9c0201a000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac41090100000000001976a9143baf2c65ae0c9171d40b988df1459ebee092224b88ac00000000000000000000000000000000000000",
-      "hash": "a9b4852f551397d42fa05c88f7a585a6b24e0613534bfee8b8e0cf51cea09a3d",
+      "data": "0400008085202f89019360869e3cbecc37ff37a6426a679c283a950059064b0e1dea4457a2adcdd754010000006b4830450221008807aebc3806d1c4565487dc7c3ad2be983cd6f210382529de7659c4dcdf8fc0022059f87b687b5f6822f44c09a994e8bf3c1daee56cc64ca7f8d78894beeebeb7df012102de03cd1306c49d5bdb9038a1d7f47cd7832115f8a67c16e966a1461b011ed04bfeffffff0289730700000000001976a914308cfe5be24effbea0989a67197329848c02536f88ac1dc71400000000001976a9144caa96c2935033e2dc4d522782a4c2440646fe5c88ac2f0c1d00620c1d000000000000000000000000",
+      "hash": "c0251718a0add85cebd69a822f8af0e06b8666139ff3eeb6513f69cec48e3d13",
       "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 10000,
-      "sigops": 2,
-      "required": false
+      "fee": 489,
+      "sigops": 2
     },
     {
-      "data": "050000800a27a726b4d0d6c2000000004d0c1d00000120b54503000000001976a914cc74b64ff50786c730f5de3b080ec2ca19d9c93b88ac015cc71b67e566072b53719413d210e17aa4852a93bc5c9b616c47220eea40bc08c40ffec11cd68f28cc5c18941277acc5fa75252ecd265e9e9fdf6ef6257f04e74ee8d21967ba0f4bf9ff2f95c28018bd6f3a68d6d0b49d8c601f6b8db7423ef302593924764e215c80b36fe357a7dd5b2cfdefdf816c6654334bc41b3d0bc0bd85fd13a78f694582333ef7735dc80833afa80b2ed71bf78034c72cf0a45e0e8514e62d737b36f07c348186af917fd201dde9716d3ff5ad40f071ee07b789354294975f45ec3c2979157f1ff11dc29ad61e7245125658ec5808b8e5a0a5e9672d7c3e4f6cdcbd7c6621c9b691befcdaac3c7331f5c3a296c1f406350b435300ed43f9a31842fb3a352b730ac1330c0ee75445240c6201cd70958cdcca611ce456b2dd02335707928d9e872072a2dd804c0ea05d0a0f37bc470c7ef2e713dfe3c236c615659c9de9dfd8288905ac563e2e374baa32e70c1d4dcaef2bde5f2bd2e1235977368bc15a5ec48bd7ce16c9cd0d4d51b8b450da89bb8dee2dd8bd39917403c8db49fe94af91a558da42db08aff9c1a50dd29f5fbb1c431be7c113acc62a4c53e8343ad1997d3c7a76d65acfb54f66f21ef732e20146fb2b533f451b26dfdb0efe46eec92e42be74052038111d7b534700db251992dd47df2b503dc15ae75c9ddad0f8ad49c465707d521f1d1cab9fd41be5ab447f912b0857af72b6f39fcd882be8862b072fc96adc0901cdb1c5d281904e182f33c8669ee390af5ddbb321c5cbe9f5e00277bea251508cdfde3cec501a210d3f24085164ce27184a2d31496abb23fc974bd333dada9a4cdc2b37d025598e2ed8c4815bb8d1804b2180d7319ff56be50b4433c8fab8d6e10e3ef0d3ac01c78d7b1c0d3d068f77f1e1556b7fadae76ea5ccb109cf488a996efe858cc839f6b23437cecac16d051c64ef618597336458899eaaefcdd467d65f35def7796c66582f048c381bbe12dcae1cac287495acae07995eff0cf3d2c9cc6e7c68b05f6d5e84178f758f2d423662f1587c782444014bcb9bb180b03585a0253c55591be17f414db013e8e34cf9f254c319aafa065fff6480de924ce0971a1cbd3df7cb46ed3f86610654f0673c18ad5cad9174bd8357d7383442a3f44044cacda72fc54294b43f62d5c6907914cb12b239afdbacc34bd69ad11ba556e2ed2059b9cd18787a81222ef49766df1c4f924ba1564c6e747007f0d5f4eb067159538208a2e60bf603c2c04c4b669479f1a301bac3b4835fb3a5bae6fee5117783f4fd4df166f883758be3895258b4a45b5fbfcc137e8cf84d61e227cda2bdc63d0f16bc8044db4e9cd08702a8d1ef0825a521915c7a5eb8c621e62da3aac00ea66456ef20504098a4306b6679dada4c46f3d5f83c71492e7613206bca6c208f2ef3544b02f38df0390583507e72de639e55e1be7b30a739eaa5b2f771860ee1650b00c5e48cead73cf32f93ac7f16cfabdbb9e9efd5205fe161fb9a1e33efda3fff6c5e53988d846c3dd25903db1d2214aac8096ce524bb4839dfaf1a179e430b7479ee83ac50e53b8705c14d16445e2939bf0b63f3b534a227a36dbf1fd3ac456c56633e34e2d077215b769821605817cbd06f3ee2fce5ec30adc5b21ece503e641269c3fc065ddbf4bc85076809999c5045baec4bf9f73643a4bddba6cb954b55086492ad994f48e5042f3111e34d952e7f5f5f08d1d15ff7fff31a9a347c2fbec2335dd4a85a0174f7f3b65071c4094a8af4a8ac7c65eb4b1f2f04142920ed5b87c5e9409479088be3891f9ca4641df31bc3886c92baa7dae59f58f8a3777b29e0b40a5aadbaa63500266a854bb9236d49b48075041b74ffc2c6999f43118c11d62b998fb4566bb7107e42cb3f8b5c2df037779404bf8aac7a8fd8e628292d85aa364acc653c0c11252bc10789dbdcbd9576f47ebbd32bd4e176067e357ec4078128fa93b306fa130d930d95ee5b2462f8a13d61aea6a7e375b0a828a3eb879f58c73eca6b642ca692e31e7dcba7ff098a1d82be28e58b61a7fbe5513aba10c75e69292ad2a3601804eb4c32f13be81c599375dcf99060c1551d20ab976ca67f10540da2ce750229d264494422d08f5b91cc19b1573761037b15b1a4f26d154ebfcea8729d9bb28eb865ebf4a15476bb716b0812a03d078c20e7fee59699cd4e24fa081cf6cd4c640451617ecd0d0f2e7e20006fc4c2995c18ef53739c1508b39d74efadc64a855bbf1d38b72e8a4acc2abf11b1aeebf473c666108b9450300000000849d80436f3d8f64207eec727f6d536bcc8161b9cce56c8630c2d924adcf9b41b73ae156626c38fa7277c9146cfca6db19e7f3cb5025c675829cc2a66b0e45192523eb22e703ff395c9c0b159b4614f4a4fff11d968c6e174b97e0f93f4444724251dc7ffbcc2ae7d7ef01c08b786bce855d6812f1ba93087fd56a7c321fa41606fb08a2d0c1d746ab53b0cc4cdb21964403aed2c88038ac748de7a3ef23aedbc80fee8d60aba3a85d0312c323364b749887413ac58de9ae5c87c37011ff04a04e84b22184b3d224c8b29c932f92b86d4eaeaacd953783d5e8975aa7d76ecfcfdb02609273eff9bfdd43f8c6c827e7c63e2a31c783cf76ab15f2682d06c7c3b43a6d2a58c063ff2b2cddf3ffb1aeda649d14ed1ec077a47ce52f50af53b6fc0b9652c36ab12c2ae9f199b0ee5026f387ae64771dd8e91038d5c604e7bc959cbc2f3fad021e42e06c5f7dca22b1bc8e4888e8d2a76f1b3a93793ffd1ed151b3bd308ee2ebbd7c9139f384f521b929e8e64bd29d6b17df4b9931d38f12fb4eaf990fbe62ec3342a945ee5fe4492df72fc1a2133fb57de862e07d63f4cb82980be61502c4903a0747193908f8452773f82980a937f8d3d3a69b7c986f04d2bf669e0c421d77214d7d68a6a6047c0b304ac54478cc06e20512ade4145e51cc078bd4a758aecb640377bd4b0a608c5dc705c1196c28718cd878f577ab69f92f64bc919425a75e7648d8b068f114b6d33bc213a49532944702e7923fa5d9625a203da428d6931c9a9eab37f0e0fab0d7415776b332cbc6dce27d7397cccc1f1fc3e7db0dc58d9dd62db692534d706086553dd40bdec48bda75b6298e6d66c89d30beae83ac1a4aba6c2e96fa46e5715292340ab62a4c3e9e91d286d0b9d1fcae65175f930c1caf5e7ac4bcdeb0ea641353e55b2339c2be03fe1eb0bec11ac44a0c98094cb31ea89d1bf20fcef914bb72112ba1a83debe29cb4b893752a3da5722d4c406d151cf396b9506c03d931eb31a5c6edc41228fce813de07cdde7e510e0d1c0600",
-      "hash": "76d91101e90baa883cb323235212d78d0f6f209f5b128f8753c91fbaca5bc697",
-      "authdigest": "dfbff1876c225955bf06c415970cc8a23fae854bf414d3d77f08a7d12195db18",
+      "data": "0400008085202f890a3ecf94a9d103d66040e4659bcd5d819f3f32d06ed546a726dd9c03006990f067000000006a47304402200161d4cf8a21de9ca222386ff0cf825957fa01a7c4934158d26d2e2a2d039c4302202c29787e5269f4a6fad96ca06191fb036c92201a12ae45c15396c3d10fb45a19012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff5e1d0a6b2a3c4e5a34cc619a1879c426f06a8c4daec6c6f15c9588f4a39d90c6000000006b483045022100f6a6014cf93d4a6c05270d7668b9ab27cc98bd78546503350705f14bcdb8f8b50220147db43db7506ad1919b6079f32346783b7aa50607b482f4aa6f5fa0a3ebe2c6012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff12b1eef5bec42a2e412e00a7bc56d46f12bd88961998fb65b94ab38a919cb72e000000006b483045022100a21bd04a70e7e8a0b2cbb064830c5300f8d97e4a6e58fb8459c48f3343fd87210220386d6557a97b8440fcb5cd4bca2c641b935fe2bb922143db57c6485f32b3137a012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff80c0804ad1e3521a7ef646afc52548a17be8a3b43dc6b224e946312f89e4989c000000006b483045022100cf0b8f07d05a7ea199ca07a773930dc46fc34b5a9fda723110bbe2662f54b240022015f31ad8b562cc5a7c9502f40523d4ad23ace328ab4294b6013b9c5e3fefcf0a012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffffe531bc679c45bd9cd1ad591042077ac14569572e1f96d0ac7d702963aa9dc481000000006b483045022100aa47a9b466fe53cb318006dd5c84d83909f84f57d4e87052005657daa8a47f0302207f6920ec1aa4eaac49007d7cac9effd194240c5cec99f9d6f2a523b47211df01012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff6edda2273da5c7fcb92040430462830a5675d8c3226fd88243ef1e864996660a000000006b483045022100eb77f459ad5e44ee1e01444a0b4fdb16d7170eddb5f2dc9e048b2ea5b40961ac02203936b63aa95fec405641f7ecae374e050157fc178beb6d6a28cc08a2d374f07c012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffffbf96540c13f81cb549fa47ef376641c87d06a574f52d20f77bc3585d1cd5f89e000000006b4830450221008393c5c0693813e4f2050271655b4d5df56e19e280965dd32f8320989d5146aa02202fc7dce320d49857fe14597a06b65a9d6f7ec1268457cfe3b031b3d450c76a32012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff40a0d65379d5edd0fe807ec66bceb60895d2ecfe087da77b0e45ebaf7d90e20f000000006b48304502210095dcfffb56c5e90df931fb09c810ee66d3b72c31ae3460c51e8cd29c49afb372022042031f5fa6d9fea0a5f7b29b730974207e8f99b3dc29943ad00cfb6577384859012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff0a1ecfdaeff6c8657436dabe09e9c41b89aaaece88376d3c85297af36a01af26000000006a473044022064e07a7f26660ff912c1b936a08a90aba1de8fb607240c5219f5abb5a3fead8102201612f62a21ca9e949914c0467b50ef4098e3fa8fe8198f943efe1e9449b73bf7012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffffab584ec6eb138b2742ee40bbd18e8fe4db2da94336937f2c79ff6b5d810ee93a000000006a473044022016e039053b3fea8022a87d263e0be48887d74f5a80217ab0da6b40cd543061fa0220135e4667262cf36177ef7bd5c41c8b785c72fe6c8153791a9898dc990fb54284012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff01d5510300000000001976a9149f68dd83709ae1bc8bc91d7068f1d4d6418470b688ac00000000000000000000000000000000000000",
+      "hash": "89b0567bd5bdb3164336779fa3351978b956e0e84cdb6d77aa772be0594db4b2",
+      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
       "depends": [
       ],
-      "fee": 1000,
-      "sigops": 1,
-      "required": false
+      "fee": 1544,
+      "sigops": 1
     },
     {
-      "data": "0400008085202f890144074137d5f480027d6cd067d98119cbd8ceface97e5c1ad2234d532d2ee9d70210000006b483045022100a28dba95b453df881a57f7422f061e1f696380d1110f386d0d62fa77aca1df8a02203520ad527350009080108aa967c86905c9d391222a01b8d4e7553ccaf5702a08012103eb9f013861d095dea691212bacc83f2df4ce87bd803d4aaf979ba1d50cd4286cfeffffff22fe010000000000001976a914e391b533f76746fbe5c789d0cf8b643c1e97313b88aca8200000000000001976a914470bb1962cd7a79fa938debf10bdf1be7c7b451d88ac7c150000000000001976a914221e1fd33efc31cdd5a0eff182ae33dd2d48681488acbc160000000000001976a91407e539fe45fb41130478d743f0d07ec34444e41888acc0030000000000001976a914403c130cb503fd259cfa68505518c23e962ea45a88acac030000000000001976a914c30d00ca4f5d03c146316e9f86109cd088643fed88acde210000000000001976a914f8342e0f3972f7a5f59015e800a142a0d43d742888acdc3c0000000000001976a914796fed76afa580c2b45fd11468e246fc85d5c94488ac8a1b0000000000001976a9144b3d5f1af5b7eda709635fcd4c25abe0e7f7bffd88ac30020000000000001976a9144de842ff5d0e3d28ae44849a619bd9b78f3a931388ac9e1b0000000000001976a914c508d2b910021ab3a0b76f2eb3daec2080588e5688ac4a290000000000001976a914a7ef608f8119a229280f8874113e9159313e906888ac4c1d0000000000001976a914d1c3d39f697712cf3ccbdf886faab8086bbb027688ac12820000000000001976a91460c0108ccfd3ab02c5dc3567de6e2512e67ee22888acfc440000000000001976a914447b277bb4862b77e6aea3b5dd079bf27a8a9ad888ac2e130000000000001976a9143268578d59df5e42ed42ac15f3b43c9189a6499a88ac40290000000000001976a914755711eeec94a165e4349b90d3804a42037ce89788acfe010000000000001976a9148beab96e2b15ceab6135b129d6868734cb34ed1b88acd6010000000000001976a91492682838d37a3204d631ae91d3fbc524c72f646488ac1b4d4840000000001976a91437b5617711e6b6fd8b576aeec53214d554d9cd0888acd8450000000000001976a9147ae4eda80195e5cadaa7d8b696c9e15cab02d55788acea010000000000001976a914f0d92ae09bab17ddce5054b15314019214b8b29f88ac5c030000000000001976a914851d97da39f9be012711ec7538e9fcfba51eb93c88acc3ca0000000000001976a91457fea0212945aad25c284071f43cb555e562496e88acc8320000000000001976a914560710f70b96c2c532cf618eaba0282b927aaf3f88ac1c250000000000001976a91451a6ddd5bcc9bfc2a0cfb7f62c61dc3b507abca888ac3c230000000000001976a914750ec752e624b0e81f941784864bfbecb506f9ae88aca4290000000000001976a9141b873562a7b564e307f024c83cd5f2f07592ed6888ace7ce0000000000001976a9146e9152fd2aefae6260c87ea655a150cb2f3e5abb88ac1c250000000000001976a9142debe7b67e761f4ea4e5005fc71c33d85e5157cf88acee820000000000001976a914cf1418d90701ee1a6e3b0ff3b24a344ff66ad30b88ac84210000000000001976a9148d03f386a8efa7667b5ee5538d7740dbb1f4514b88ac8a020000000000001976a91450257b7a6d65790626dcccb64354250c4cdc648a88ac62020000000000001976a9148e5ba0ae683d9f6834a8b1c1ef55e2f067a529a888ac2f0c1d00620c1d000000000000000000000000",
-      "hash": "c94cd2564d3a23adfa3c8c2e620fe5df2aeae6bbef02f2d685b7ca9914356866",
-      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+      "data": "050000800a27a726b4d0d6c2000000004e0c1d00000154b96c180000000017a9142199227b174b43a902c92f799dfe3e453e351f4c87013f0a8a6918627cc7bdb5652770f7ae74706e29ab65ed22ffa71272d699f73fc59fca877ae038ef757f3fe232eaf45412da3ee5c8b0031163310a63e606f1998f910b919a21a88d38a0c1a050eb91a69b665d6aea985e7d04718a86ce3b1551a30273c6b2f715a8a6755df875d96be8a01ca0f4f76c6b7eda0b8f5a7b9d24c2f9ad8ed673772f35dcb24d6a0f4c52e2a6852cabcaee2ce09156d001f1b17fe79c5fc3d849ab17cbfcdd6c87eb5aa1778bfe8ffd1dfb0ef75079be4b98acb762e4923c7d30fb0102f377f7f4bc183bb2e137ea20ece347843dff677a8748635d614326c2d29b3cc58d74cf9a8b95bfa9fe88f65de26de6cad5c0c9d5e06a05b28c9c2186b81f2d4b5367323e94bd8f865857b79f5dc6231b171a39edc1e3bb50e592be0e2c42bb75a64d7ad233b855a5402fc920a557e9974579b1b31ccb2bc1a9b8d56dcd1ab4805f7e203c5581ee57054b51b59f23a56aeb3f64461db680e780204afbcec4fea28e90c45c0447139af490044eabf353116d85127583af5b9590272f90152bb80ce81d70c7cfb77d64d9ad1780e6363305d907b15fa34b63f956c18b47d4f3bfe7ee3aba2a2977fac016392d624288a8cadaf84dfb1d98b31b8a69b22704c7cda7ba5604dd0acc5339b4b176af8b44dcd922a1c6a8bdb0cefe1964d52c8ccd015887f4422f8716cea82cd0b3aa3629febee32c0af19c5debcc29cca4cf10bc15a68b18a7a769e99140d22f1dea54fddff9a39a28341d3a3c69f84d8442ea5b3a9736263b7837ddadd4513aae54de97656360cec4acfe02d18bcdf0e7195746cfa6986ad5bf660ef49d6db52d76bbba516ea3b74e8e52aacc98eedf5d3fe1e345bb67de03d9b22c44d100d78625e4cc6138f9f5ce78405d5850d74b1d87d5d92da566df4a1fc2aae2d96dff58fffa3e0e7d33cacd0e1f7ef97331172fcba77c4df731dd24041206701e2033da29ce492e15943e3d3835203da4e87d869cc9a77bea14c9ca6f4e261e5176482d8c4e2ef99a739fcad89375faa17df470ec5d3745631518e8c565ee398054c91c4f97865bb92c932204fdab605da91a3da4f90b6f0c4c3657b9039563a5fab04bca5e3bca905277296df8acfd9f3815d2c5e351f7521d22a05239fc544b45e2e353976a3ca6815205919fe0f76dd606e5e32c8aaa7494538fcb09ebe5f3cfff1ad8f251bc194a35969a82ad5563c7d44bc9ebecac6065b9723f321458d6b78999eb1d1038454cb7f1e659d7937efec7fb766b3d2bae2f2fbe2411a7ee2fd753caa3d74a8cd275b5e62e8bea07990fdce3369e390e16b7e680ef6ab751ceb5f68b3c73c893f3018fc3e5ed07ae3a8a7b177423607c992a505663b00f9177176d45fb0f798d9b243251e526d3fcba3172ca5edd2bfffce40dbe893eb212df59f52bc6201ee6bd2fb0a278f0152a675bbc8c23eb6e247b7371a765a07e5d56105c128957de6abcb1bcc48503f5b060d550abc7e8daf0aadddd7ff99705083892e91c776c64a6fef90feacd9a815a62801fab5c33ca9c248661c076e04e90f5f77b06e1351f5a1cd233054de12a984974e90da69e0d6e9c14f82a20a9612a9c788ea1889f0b2f56f8d79d74136f6ddef0fe913df7740778a5966574891bf0c3d86001345ee5c56b25c1c799827f51b098116c59960e02ae7c008ad0c7f65752173a0c590481aa9e488dd200ba9243040a85ae1d69f5f50727868d83a2014277cb60d3f14e12d3368ea522e11ec3facf70431dad43e548faa8b7acfdd91ac84cb0e379659d677d0c823694c53444c59b076b113f60d2320dd61aca51cedee6926a90e74c87710cf69dedf85cce073afb3fd4f675f569c889769a56061e0418e4bdcbf8e0040723347bdd80ec1cde8af28dea15c7e5ed90e163aa1a5ef5c7dda8fe371e2a613a5d814b8ace35130808a04ac208800fd4b93c3bf9f0ecd9eaaf7c7ca81f72af01f5c7b1cb5f6574cec4f99834d67574798b3056ea4711d4c4abf9f93aa64260e8f44776b17e05c837713fef1fddf99e7ff7587a5703754fed132b3a0e796f380102592b82de49710876515c3026665d9eac76c02a72b4664169f0ca9f76524435e1e694118613410899ed067429a6a81fd87d85183dcabfdcd102f4e5b4d3fc69d34fbbbd306f3886100b215a01b74a0bd23ebad595b713a33aa82e75eb30a4f831f70b0d38e9bad39aec498f99996754d31a193652bb68a2ed7a05d9959acc9641acd5f90cf4f9567d89e9ce519add804e62d27e3cbd6c1800000000849d80436f3d8f64207eec727f6d536bcc8161b9cce56c8630c2d924adcf9b41ab30581e50027005777450b2344d79e2ff11a9a8412b48e558d8212f05df4c808661e415de452718c649ec3844e517c594f21f943813d4497f40ae7aceffad0e4118905ecff255d9055ba2aaa0f838d6767888d52ea9675bd7e049cb56150f801771e8230c4c1bdbf8ed532f1de89d881cbc4e4e1bce926005c5c445851ee1b034aaf24a0c011460475efa07b5b5146780744f8eaad8dc9d17a931b433bf8099eceba43ef46cc9aaa10fc614b3f050bf7b63dd8fa2d03ebdefccb3f10fdd6d564612093a72b0f73ca8739f427e92924fe00b5692b8c00f969b1023e44808dfc7fa487a64ad8b131d424521109fb872ff190b9eba344a84d64de795542f63760583b9ee194a2e379da8855c92f22e34a38bf5cd7a7d5df77b4c9933fe2f585d4e61f45f7140899765878145cc7585bed595cf57a7e4bdde1a6dfeb6f6dddb1c05a5ecaad728221750eeaa12c537ef9f31bd73b0bfdcf2dcc31decb641652699700121d74d9e33795a02f9768fc76dd7deb1cd21267177af50bdd3bc3346120762c8fb3e09a6d1532c7eadf4f5c02ab57ba24f42fc299f6d6a9432de80123ef3414856503f2aef28b3079a3a4db3b1c9d68df7ac6066e6efb7b0664e24816269a8a575efba36dc8ba65a8798b3f16a0613c908211409df310cf52a427c3ce8f60970246f0a4112dbd11a4b0d924b018a8fb9eb8d62d5eab3ba813faddefd52632121ce8cea6947cfc7753a57d242266262575779cd065a3ea5817ad8c166a26d6815266b1674f0e4bca632679b1bd58eae5e6aae91759f1a9f2385258ffa3bcec875eb025503b3aa10854b138ce74a634b8e46b9e5ce40be90a083022516d6f1e6290fc66d3311b3677602c50247cdd841a455c0755304d0a359e7f1d55a11cedf885acc22956dddd7d701d72f9b86e90a1ff6e70097dfeadf1ea2f2d22c4c158e03e23ab2e18fe231287920fe98cc5a0e8e55b7274a66799049f249881a1d770800",
+      "hash": "1ee88c404cb89e7f5ea415732e76c641a0bf6ac517c128bc969c92daf271626b",
+      "authdigest": "9976ecce1da0313df3f677217c9a55679c808adeeb58ca5db89986848adb7555",
       "depends": [
       ],
-      "fee": 2663,
-      "sigops": 34,
-      "required": false
+      "fee": 1000,
+      "sigops": 0
     },
     {
       "data": "050000800a27a726b4d0d6c2000000004d0c1d0000013104021c000000001976a914eaf5110d8671492be81a97223890e9a2338d5a2188ac01bde7ea2755aada40bb702eb065ef47a83fb8337523c97f5e029f1b8953560f60296ff6886d4c6bccb4ee907ec3640acac237565b00b6112577de2a0ddae4f695c3c19b620e57eae2f352f2d031a6c46bf38a410399ce3d96e8bea8fc1fc84835029d6a8b2500a08aa49aedf014c480e754749a61444c7cd41e76c3b4ab0ff9c05512f68981f8d962f146f2c35ae870194ff81019795ce54604f85378e9cc466d51a8cf296c8b088ca526316951eceac3bdfe78f0249c5251433332d00ca518f3e3225175074e812b92c236793e4791c5321301e3d72ab6f37e3ca7e52d6ee567634ecc91c531ad55f2ee0563f9bc339fd29efae7487adf2f0a14e0763469a626186a1daaecdeb9a21a7ef5c57c17bcb53ecf52d5b60d19a88b98f062cb257f7d359fdf3b9679cbc6f18263e987b9e825e1fcf3e906abf60ab04043f502e3e1ba717b3144ace8bc9038d28a9b2435b4ff10c80bb8e7e3cdcee88a1b6cc04a4d4beb2ae6eacd0536d28b7dc15cbf1091b56b93c3cd54d298d247756afe3e6973bed7f9e7b52f2168309e000303c1740f14eb6dc3f74e403dc96c5710d0394b86310d5eb3e4e392ca3cc59e0c2153b80444bd101b2f326e108e4b10c4837dda808ef1a469ad6c2ecb39a17ba1616f964542a06d3b3e504414c8f8c240d49ddf23588945d53aabf6a39df1f72727ba5cc693ed2f8e900750603ed1761a7cb85b69f9b8f8c84224a055151f7337a7a8ee559bb15657a9fc80b6afb705cffb2a09c80d7bffc92e0fa43748ec8f85f38c660d2c661fea3a049987acd51304b734fc37e5a615ba1d46ce0e6be2eb7865cdae37a7be1573d35dfc85f7f85cb9cf7648d0b12ac4a84bf4007c14b7815c60faaed4f080504430e6bfeb5c46c0ae16f1099b4797198cd4b9cd083cff0d698d66bbc9bcfdb8c58b89dd1a36aa316e32db11dd5cf21756563bca21ef3716b6e6694ec3e525bfb2dd25d545e1b59dc2415837c1c5d27f54b6aa974d9f91227a6aa0a90b64f88c6e9ce53ef352f3bbf7171d8ea8a7243ae0be68d596b238fa0e43b256887a93cce6b9d965b580ded16fb842e56c24a57d045373ffc17097be5f147481c59d36d82aa230a7e5e36f73845f0d7ec7a7d74fea7db58d4e7fcfa5e26db38fe69f4b296f4f8e42d6eb78744d3cda028e943df3936644f1448f9afaf8e1d19885a62bee35fe8e509053fc713fcd3e9dd5c02213d4925640ea7501b0c19d2788ea41a110c12fbd2f0e80d6f96296cd61412bd63582225b6e80d9dc3bdefceafa5839c5a41beb22f86eadab93aa3e757560d979ec84874cb2478f356900a9dbbdcd6725cc18d0a983cc34fc7169da3b2a03f740f1f3af4a74ddd6210a0beaab7b7f1ca229fbe3efb427be436673596764a406af1f02601d475b03fa57d00ad348283bd44083532fd4aa772233f540e70dfade55f1901cda4e509ef8bfbc6de2a7f4023fdc7ff859cc4fd251486f6711574babfa9f1059cd93b8ad339e9603a40e6a1c3457a3d7f1bdad3bc631eb470adcbc5f2db18c8841fc58f2a6929aaab163fa10c259a4e5e970f3205b89d727fc47c9f0cf92c3620eddbc4d5f54d7c4949686f17cea6c5ff16a7f6d21f1de206c962a7ad50b0467d0188c35ba8f85562d802d8c2a6ff5c6c0fc06e99e56b5c25a225b85d1feef6f465c6849ed488de0b1d61add037d68384f793f00d2650fd29e2f8cf5c1e380a087a540839ed3e933a0dfa9aadb7ea31097ac12b3dc9ea00f7eba1c44369caf84fbb5f03f2e03f7d25822636f50585721ff24d1188f9e17fa030f6d5ecce11f3d22d629d4d8b3a1b42033f1219efb2ebf8c2ae852d34773a44fc9c7c5caa4a1f10bb01859ca11c4a67e6f4206c8eae14f650db3311e13f8ede56c8d05f1da007de2106fd2fd69d2c3c5ee3a90cc36d9960f3f06eb1c7bcd84b096b9a170177b06ad145fe09a8ddb621378a0f61b47bd41655e6bbb848a4d96c1756b751b37623086e55802f52efc9305f2531f1235b662a25d4ff942e43d3a69c83735334d6752a445bdd6216105be4f6d1c3bf89e098eb90b145e9b848d7250d9b3135c824f4b52da16bc7703994c8a3d7b327db74b2e05f66327465ea96de2b37201362673b16348771f5900f93f3a5955aeff1db3aa1dbd16bed12905169af0ffb86d2aad9ba871fef554506e36cdfb1fa1871092a2a2883e995106893d1315c6cffc3972ff34a6aa94abd97e901b66f7d46ae317329de1c3604b86c78016b8cd15afc9c53eb547916ca11908021c00000000849d80436f3d8f64207eec727f6d536bcc8161b9cce56c8630c2d924adcf9b419322a514f1fa650d1ebd91416af8a5f767198877be2427e471e67511c57cedaf564c06405b1fc28754a9428317dbdaedb0c34d62ea3162f368915404c3592aa2e509c27cf35154019d7d92b42548a23bc85f1dddc1f1b3c8778a9c87c60fc3b318682d7662fe26e3475811c4c3f0ba4fe4e6899318c67f9a5a4bcf9f7677afb955e81521a432d3b017a0bf86f93f6121b42113ff0c09919457b67a8bfcf67cdbc7cdf780e02c8b4710ecbdc9697887bdeca6c769d4a8752dec479924838d8413216e4eb6483facf7887515b2d06fea3f2eae4bd0e41d2613e2f9f3d5478f229ff56b58fb2a2cbb4ef051a096ce349909e2469f5e19da73744b4eed11f5be9d098002d46e2e4b27eccf36e553ae583937f8f56d6240a4154cf54019cac59db9e14257b1607865374a2ed66a5f26ccdcf68a02b1b3008d557a407f3f0264e2def24ba26caa97a6c8309f1f722d9c636b81e40b8de2f68d1ce2b790fa038bf8c4411740689b9c87d73d61115b535978092bb7a7526862ec6c8db8d45d1d482c199cb25696ad8f14b085becf5247d32fe245954c4939773201b3840daa69c9b29a9b6a78570f2d818286e1bb1abf4886adc3c5e922d3524bd47571ed6e7f9e46c80192eff06b7ca7dcd384fe57095cf380bcf72d1e17d534ad4e4f816986e997711187706ef2562979257d6e1c5b61e1ae08892a23f875ffa5f4c9ede551cd895f266c45145ceebce79790c9392baaaf32d53ccb5a4b29f277bfa864e62b774b65480d24280edb2e4faab1bbfe0a46539a5bf508356ec43d44696b48357978ca8677e0a30299ef90ff4c310e0a66bd78aa098f1c06a1e08340e36cc472a8bd76c95f1086bd71065fb4395b27f9705373c2dcfdff885de49c2402b11ca92212405958e24ba9b54d2802cab05e6fa1ceeae67753eb0db017b48b5f0128338efcc6e0c07adc0dc4e06d212ee4e7cdff54d147361b4bb3b49013c35fb6f1eadbd9e1490c00",
@@ -120,30 +111,29 @@
       "depends": [
       ],
       "fee": 1000,
-      "sigops": 1,
-      "required": false
+      "sigops": 1
     },
     {
-      "data": "0400008085202f890a3ecf94a9d103d66040e4659bcd5d819f3f32d06ed546a726dd9c03006990f067000000006a47304402200161d4cf8a21de9ca222386ff0cf825957fa01a7c4934158d26d2e2a2d039c4302202c29787e5269f4a6fad96ca06191fb036c92201a12ae45c15396c3d10fb45a19012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff5e1d0a6b2a3c4e5a34cc619a1879c426f06a8c4daec6c6f15c9588f4a39d90c6000000006b483045022100f6a6014cf93d4a6c05270d7668b9ab27cc98bd78546503350705f14bcdb8f8b50220147db43db7506ad1919b6079f32346783b7aa50607b482f4aa6f5fa0a3ebe2c6012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff12b1eef5bec42a2e412e00a7bc56d46f12bd88961998fb65b94ab38a919cb72e000000006b483045022100a21bd04a70e7e8a0b2cbb064830c5300f8d97e4a6e58fb8459c48f3343fd87210220386d6557a97b8440fcb5cd4bca2c641b935fe2bb922143db57c6485f32b3137a012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff80c0804ad1e3521a7ef646afc52548a17be8a3b43dc6b224e946312f89e4989c000000006b483045022100cf0b8f07d05a7ea199ca07a773930dc46fc34b5a9fda723110bbe2662f54b240022015f31ad8b562cc5a7c9502f40523d4ad23ace328ab4294b6013b9c5e3fefcf0a012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffffe531bc679c45bd9cd1ad591042077ac14569572e1f96d0ac7d702963aa9dc481000000006b483045022100aa47a9b466fe53cb318006dd5c84d83909f84f57d4e87052005657daa8a47f0302207f6920ec1aa4eaac49007d7cac9effd194240c5cec99f9d6f2a523b47211df01012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff6edda2273da5c7fcb92040430462830a5675d8c3226fd88243ef1e864996660a000000006b483045022100eb77f459ad5e44ee1e01444a0b4fdb16d7170eddb5f2dc9e048b2ea5b40961ac02203936b63aa95fec405641f7ecae374e050157fc178beb6d6a28cc08a2d374f07c012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffffbf96540c13f81cb549fa47ef376641c87d06a574f52d20f77bc3585d1cd5f89e000000006b4830450221008393c5c0693813e4f2050271655b4d5df56e19e280965dd32f8320989d5146aa02202fc7dce320d49857fe14597a06b65a9d6f7ec1268457cfe3b031b3d450c76a32012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff40a0d65379d5edd0fe807ec66bceb60895d2ecfe087da77b0e45ebaf7d90e20f000000006b48304502210095dcfffb56c5e90df931fb09c810ee66d3b72c31ae3460c51e8cd29c49afb372022042031f5fa6d9fea0a5f7b29b730974207e8f99b3dc29943ad00cfb6577384859012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff0a1ecfdaeff6c8657436dabe09e9c41b89aaaece88376d3c85297af36a01af26000000006a473044022064e07a7f26660ff912c1b936a08a90aba1de8fb607240c5219f5abb5a3fead8102201612f62a21ca9e949914c0467b50ef4098e3fa8fe8198f943efe1e9449b73bf7012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffffab584ec6eb138b2742ee40bbd18e8fe4db2da94336937f2c79ff6b5d810ee93a000000006a473044022016e039053b3fea8022a87d263e0be48887d74f5a80217ab0da6b40cd543061fa0220135e4667262cf36177ef7bd5c41c8b785c72fe6c8153791a9898dc990fb54284012103d5619b12b9b0135a0979e37c9dd6f550e33012d96c94f5aa59303b743d9f5b5effffffff01d5510300000000001976a9149f68dd83709ae1bc8bc91d7068f1d4d6418470b688ac00000000000000000000000000000000000000",
-      "hash": "89b0567bd5bdb3164336779fa3351978b956e0e84cdb6d77aa772be0594db4b2",
-      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+      "data": "050000800a27a726b4d0d6c2000000004d0c1d00000120b54503000000001976a914cc74b64ff50786c730f5de3b080ec2ca19d9c93b88ac015cc71b67e566072b53719413d210e17aa4852a93bc5c9b616c47220eea40bc08c40ffec11cd68f28cc5c18941277acc5fa75252ecd265e9e9fdf6ef6257f04e74ee8d21967ba0f4bf9ff2f95c28018bd6f3a68d6d0b49d8c601f6b8db7423ef302593924764e215c80b36fe357a7dd5b2cfdefdf816c6654334bc41b3d0bc0bd85fd13a78f694582333ef7735dc80833afa80b2ed71bf78034c72cf0a45e0e8514e62d737b36f07c348186af917fd201dde9716d3ff5ad40f071ee07b789354294975f45ec3c2979157f1ff11dc29ad61e7245125658ec5808b8e5a0a5e9672d7c3e4f6cdcbd7c6621c9b691befcdaac3c7331f5c3a296c1f406350b435300ed43f9a31842fb3a352b730ac1330c0ee75445240c6201cd70958cdcca611ce456b2dd02335707928d9e872072a2dd804c0ea05d0a0f37bc470c7ef2e713dfe3c236c615659c9de9dfd8288905ac563e2e374baa32e70c1d4dcaef2bde5f2bd2e1235977368bc15a5ec48bd7ce16c9cd0d4d51b8b450da89bb8dee2dd8bd39917403c8db49fe94af91a558da42db08aff9c1a50dd29f5fbb1c431be7c113acc62a4c53e8343ad1997d3c7a76d65acfb54f66f21ef732e20146fb2b533f451b26dfdb0efe46eec92e42be74052038111d7b534700db251992dd47df2b503dc15ae75c9ddad0f8ad49c465707d521f1d1cab9fd41be5ab447f912b0857af72b6f39fcd882be8862b072fc96adc0901cdb1c5d281904e182f33c8669ee390af5ddbb321c5cbe9f5e00277bea251508cdfde3cec501a210d3f24085164ce27184a2d31496abb23fc974bd333dada9a4cdc2b37d025598e2ed8c4815bb8d1804b2180d7319ff56be50b4433c8fab8d6e10e3ef0d3ac01c78d7b1c0d3d068f77f1e1556b7fadae76ea5ccb109cf488a996efe858cc839f6b23437cecac16d051c64ef618597336458899eaaefcdd467d65f35def7796c66582f048c381bbe12dcae1cac287495acae07995eff0cf3d2c9cc6e7c68b05f6d5e84178f758f2d423662f1587c782444014bcb9bb180b03585a0253c55591be17f414db013e8e34cf9f254c319aafa065fff6480de924ce0971a1cbd3df7cb46ed3f86610654f0673c18ad5cad9174bd8357d7383442a3f44044cacda72fc54294b43f62d5c6907914cb12b239afdbacc34bd69ad11ba556e2ed2059b9cd18787a81222ef49766df1c4f924ba1564c6e747007f0d5f4eb067159538208a2e60bf603c2c04c4b669479f1a301bac3b4835fb3a5bae6fee5117783f4fd4df166f883758be3895258b4a45b5fbfcc137e8cf84d61e227cda2bdc63d0f16bc8044db4e9cd08702a8d1ef0825a521915c7a5eb8c621e62da3aac00ea66456ef20504098a4306b6679dada4c46f3d5f83c71492e7613206bca6c208f2ef3544b02f38df0390583507e72de639e55e1be7b30a739eaa5b2f771860ee1650b00c5e48cead73cf32f93ac7f16cfabdbb9e9efd5205fe161fb9a1e33efda3fff6c5e53988d846c3dd25903db1d2214aac8096ce524bb4839dfaf1a179e430b7479ee83ac50e53b8705c14d16445e2939bf0b63f3b534a227a36dbf1fd3ac456c56633e34e2d077215b769821605817cbd06f3ee2fce5ec30adc5b21ece503e641269c3fc065ddbf4bc85076809999c5045baec4bf9f73643a4bddba6cb954b55086492ad994f48e5042f3111e34d952e7f5f5f08d1d15ff7fff31a9a347c2fbec2335dd4a85a0174f7f3b65071c4094a8af4a8ac7c65eb4b1f2f04142920ed5b87c5e9409479088be3891f9ca4641df31bc3886c92baa7dae59f58f8a3777b29e0b40a5aadbaa63500266a854bb9236d49b48075041b74ffc2c6999f43118c11d62b998fb4566bb7107e42cb3f8b5c2df037779404bf8aac7a8fd8e628292d85aa364acc653c0c11252bc10789dbdcbd9576f47ebbd32bd4e176067e357ec4078128fa93b306fa130d930d95ee5b2462f8a13d61aea6a7e375b0a828a3eb879f58c73eca6b642ca692e31e7dcba7ff098a1d82be28e58b61a7fbe5513aba10c75e69292ad2a3601804eb4c32f13be81c599375dcf99060c1551d20ab976ca67f10540da2ce750229d264494422d08f5b91cc19b1573761037b15b1a4f26d154ebfcea8729d9bb28eb865ebf4a15476bb716b0812a03d078c20e7fee59699cd4e24fa081cf6cd4c640451617ecd0d0f2e7e20006fc4c2995c18ef53739c1508b39d74efadc64a855bbf1d38b72e8a4acc2abf11b1aeebf473c666108b9450300000000849d80436f3d8f64207eec727f6d536bcc8161b9cce56c8630c2d924adcf9b41b73ae156626c38fa7277c9146cfca6db19e7f3cb5025c675829cc2a66b0e45192523eb22e703ff395c9c0b159b4614f4a4fff11d968c6e174b97e0f93f4444724251dc7ffbcc2ae7d7ef01c08b786bce855d6812f1ba93087fd56a7c321fa41606fb08a2d0c1d746ab53b0cc4cdb21964403aed2c88038ac748de7a3ef23aedbc80fee8d60aba3a85d0312c323364b749887413ac58de9ae5c87c37011ff04a04e84b22184b3d224c8b29c932f92b86d4eaeaacd953783d5e8975aa7d76ecfcfdb02609273eff9bfdd43f8c6c827e7c63e2a31c783cf76ab15f2682d06c7c3b43a6d2a58c063ff2b2cddf3ffb1aeda649d14ed1ec077a47ce52f50af53b6fc0b9652c36ab12c2ae9f199b0ee5026f387ae64771dd8e91038d5c604e7bc959cbc2f3fad021e42e06c5f7dca22b1bc8e4888e8d2a76f1b3a93793ffd1ed151b3bd308ee2ebbd7c9139f384f521b929e8e64bd29d6b17df4b9931d38f12fb4eaf990fbe62ec3342a945ee5fe4492df72fc1a2133fb57de862e07d63f4cb82980be61502c4903a0747193908f8452773f82980a937f8d3d3a69b7c986f04d2bf669e0c421d77214d7d68a6a6047c0b304ac54478cc06e20512ade4145e51cc078bd4a758aecb640377bd4b0a608c5dc705c1196c28718cd878f577ab69f92f64bc919425a75e7648d8b068f114b6d33bc213a49532944702e7923fa5d9625a203da428d6931c9a9eab37f0e0fab0d7415776b332cbc6dce27d7397cccc1f1fc3e7db0dc58d9dd62db692534d706086553dd40bdec48bda75b6298e6d66c89d30beae83ac1a4aba6c2e96fa46e5715292340ab62a4c3e9e91d286d0b9d1fcae65175f930c1caf5e7ac4bcdeb0ea641353e55b2339c2be03fe1eb0bec11ac44a0c98094cb31ea89d1bf20fcef914bb72112ba1a83debe29cb4b893752a3da5722d4c406d151cf396b9506c03d931eb31a5c6edc41228fce813de07cdde7e510e0d1c0600",
+      "hash": "76d91101e90baa883cb323235212d78d0f6f209f5b128f8753c91fbaca5bc697",
+      "authdigest": "dfbff1876c225955bf06c415970cc8a23fae854bf414d3d77f08a7d12195db18",
       "depends": [
       ],
-      "fee": 1544,
-      "sigops": 1,
-      "required": false
+      "fee": 1000,
+      "sigops": 1
     }
   ],
   "coinbasetxn": {
-    "data": "050000800a27a726b4d0d6c2000000003a0c1d00010000000000000000000000000000000000000000000000000000000000000000ffffffff04033a0c1d0000000004286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c908738c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b891298744dae70e0000000017a9140579e6348f398c5e78611da902ca457885cda23987000000",
-    "hash": "ffb55ee52942a4094c0de1754c1b32dcd02c265fcd0af2f5e91b99cb21c9ca05",
-    "authdigest": "02554d17309b918a34204b4e2604a0f744730d250f8049e5ccc8dc37a4263596",
+    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff05033a0c1d00ffffffff0444dae70e000000001976a914ecc3a933c338b7d2946062910696e5f9aa41ab0d88ac38c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b8912987286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c9087000000003a0c1d000000000000000000000000",
+    "hash": "f1849b65a4edee91269ab443552d8d6cf3880911f153d75cd68a436460934db6",
+    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
     "depends": [
     ],
     "fee": -75716,
-    "sigops": 0,
+    "sigops": 1,
     "required": true
   },
+  "longpollid": "000000000086a3252dfc00b2a7bf370910491380279614b87c4015433565a3f3469",
   "target": "00000000015ba600000000000000000000000000000000000000000000000000",
   "mintime": 1670342198,
   "mutable": [
@@ -156,6 +146,5 @@
   "sizelimit": 2000000,
   "curtime": 1670342447,
   "bits": "1c015ba6",
-  "height": 1903674,
-  "maxtime": 1670347597
+  "height": 1903674
 }
$ 

@teor2345 teor2345 added A-consensus Area: Consensus rule updates C-enhancement Category: This is an improvement A-state Area: State / database changes A-concurrency Area: Async code, needs extra work to make it work properly. labels Dec 6, 2022
@teor2345 teor2345 marked this pull request as ready for review December 7, 2022 00:27
@teor2345 teor2345 requested a review from a team as a code owner December 7, 2022 00:27
@teor2345 teor2345 requested review from arya2 and removed request for a team December 7, 2022 00:27
@teor2345 teor2345 changed the title Populate blockcommitmenthash and defaultroot missing fields change(rpc): Populate blockcommitmenthash and defaultroot missing fields Dec 7, 2022
@teor2345 teor2345 changed the title change(rpc): Populate blockcommitmenthash and defaultroot missing fields change(rpc): Populate blockcommitmenthash and defaultroot fields in the getblocktemplate RPC Dec 7, 2022
@teor2345
Copy link
Collaborator

teor2345 commented Dec 7, 2022

Here's zcash-rpc-diff (port) getblocktemplate with commit 8c8b1d0:

Checking first node release info...                                                                                                                                                            
Checking second node release info...                                                                                                                                                           
Connected to zebrad (port 28232) and zcashd (zcash-cli zcash.conf port).                                                                                                                       
                                                                                                                                                                                               
Checking zebrad network and tip height...                                                                                                                                                      
Checking zcashd network and tip height...                                                                                                                                                      
                                                                                                                                                                                               
Request:                                                                                                                                                                                       
getblocktemplate                                                                                                                                                                               
                                                                                               
Querying zebrad main chain at height >=1904187...                                       
                                               
real    0m0.008s
user    0m0.005s   
sys     0m0.002s  
                                               
Querying zcashd main chain at height >=1904187...
                                               
real    0m0.008s                                                                                                                                                                               
user    0m0.004s                                                                                                                                                                               
sys     0m0.003s              
                                                                                               
                                                                                               
Response diff between zcashd and zebrad:                                                                                                                                                       
--- /run/user/1000/tmp.hDVNCatQbm.rpc-diff/zebrad-main-1904187-getblocktemplate.json    2022-12-07 12:45:47.938249268 +1000                                                                    
+++ /run/user/1000/tmp.hDVNCatQbm.rpc-diff/zcashd-main-1904187-getblocktemplate.json    2022-12-07 12:45:47.946249203 +1000
@@ -1,29 +1,40 @@                                                                              
 {                                                                                             
   "capabilities": [
+    "proposal"
   ],         
   "version": 4, 
   "previousblockhash": "00000000010bb1122f660c11e73ef4c728b9fe1f039373359c40d60e1b0e80b6",
-  "blockcommitmentshash": "96a8187c2209133ddea7f0689c872101188f9a79d51759678524f554426c5102",
-  "lightclientroothash": "96a8187c2209133ddea7f0689c872101188f9a79d51759678524f554426c5102",
-  "finalsaplingroothash": "96a8187c2209133ddea7f0689c872101188f9a79d51759678524f554426c5102",
+  "blockcommitmentshash": "af4b2acee3115d5a821cd3be5e4db945135efffb36221989806a9ce7ee1d3257",
+  "lightclientroothash": "af4b2acee3115d5a821cd3be5e4db945135efffb36221989806a9ce7ee1d3257",
+  "finalsaplingroothash": "af4b2acee3115d5a821cd3be5e4db945135efffb36221989806a9ce7ee1d3257",
   "defaultroots": {
-    "merkleroot": "0186d7edac6a0eb283e8b4fa909e70de14d058f6a99883a639215f6f62e42f44",
+    "merkleroot": "5278f3cfdd0576077715411f96d1d5e8be32fe16fc139b277a1c7c3e9b3d335a",
     "chainhistoryroot": "af8ef31b06831a2b3af53c2ce05ab0378ea84c61269b89184f97c1d79a2081c1",
-    "authdataroot": "cc14bc5aab7e8fcc5d5c7ead25badcb3853e0d761a745f89892524ad1c48ddca",
-    "blockcommitmentshash": "96a8187c2209133ddea7f0689c872101188f9a79d51759678524f554426c5102" 
+    "authdataroot": "ad52724e37f52c500d815c47e0abd56a5caa0e0910a8feb4dfc8ed9deba4040e",
+    "blockcommitmentshash": "af4b2acee3115d5a821cd3be5e4db945135efffb36221989806a9ce7ee1d3257" 
   },                                                                                                                                                                                          
   "transactions": [                                                                                                                                                                           
+    {                                                                                                                                                                                         
+      "data": "0400008085202f890780f072ece1d9adb92fb5fa60fd38670463f626b0b7d7184c33224ee458f53b3ed80000006a47304402204965cd8ae1820bd04ba3264c1a203847ac50cb31f169bf13dd4f9f0bd3115c77022008bf5
9153d6d93becc92faf69ffa2c60b1f2b5ba7dd8058834c244d4fd8ad62301210292538653de3251ea345debf77b78aff957a0ea7756a748bc10cd2224031cbb80feffffff4d5e683d50331d6550000e1479c0e5407c65c85b7b3c7e408a33db
22241283f0010000006a47304402200d2327f6b87a57e671b60cbcf2dcb92d82269b6d840fc78bc3b682d926d8fc71022033d3a0193920743cec9478054c09cf4cf198833cb66661b6de3dcd275a99162f012103afd2d49e87b73c514cb275e
32aec4a7bd1de9117e4d3f6f3e9648c8f7f1adbd5feffffff4d5e683d50331d6550000e1479c0e5407c65c85b7b3c7e408a33db22241283f0080000006a47304402207a7be5e4bc63e645999644636dd5c18b06adcd57a136a3c575ada7917c
850922022054e2a67878d7353c551fca45f111c347826bf1f67c6ff57bd16b97d7e4215c77012102908ee36dcf44c2634b01602fbc1688b5facc37c036df8c32251edc24612a8ad8feffffff4d5e683d50331d6550000e1479c0e5407c65c85
b7b3c7e408a33db22241283f0220000006b4830450221009dd74ed88bd6a245369592f882193a598f7a3aacc25e306c9a63941c9353105c022048c0edf912c95f31685fcc8e9b04077f9df84444428fd07d21d96a52dac6f7eb0121026e9dc8
0ee55ea70bf3e3f452601188449f9fe78e3142ac6777a46e943b9d97bbfeffffff4d5e683d50331d6550000e1479c0e5407c65c85b7b3c7e408a33db22241283f0280000006b483045022100b2c5324659aebdb21f3e5d1c9002cf9aa53e34e
7e3ed2713dc2bd6ada6d58c6c02200e6c32f255bcf8a427da4801d404ac36db70247502710a6bd572c3faa163d8830121022aba77019d30bb26651cd0cc4036f4f5b2ab67956a82e1f714282315f616a0b9feffffff4d5e683d50331d655000
0e1479c0e5407c65c85b7b3c7e408a33db22241283f02e0000006a47304402200eebf7edf8ed7e1a859300f7d429a133c5976ed22c1481c512be7fada5d924ff02202bf205dd167f4a197012a4219867331a03db00a793e50766bcd325bbd75
8bb280121021eaee20ee7fe573c4e74971d36d9f4759f03f6b8ac4c988df449130ed90d3876feffffff5d8418daef69684ad75d5f8226d0c5804c46dd04f1f0dcc904b77867edbf6700010000006a473044022050d79192b5fffddb9dec5243
112ad53439039092518ac101bee7033398ce2ea002203db9b6cb7c5f7ba715f7037b8fc05f97b60aa0f50d8b6d40c01e7491e9ca0f560121037e8aa0b23d4e3495a06c8d061d86337e8940a1cbfd328d9da08c64967c7ca56ffeffffff02404
20f00000000001976a9144f3f346815c38d219fd58c06ab0af166aadb84dc88ac056a0000000000001976a914dd740c9155bf641c946ade0a89c9efd9abdfc68e88ac2f0e1d00620e1d000000000000000000000000",
+      "hash": "60ff08345817ae2ecbf3a0633cf03d3a0a129d8b3adde891665397ab53eb5527",
+      "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+      "depends": [
+      ],
+      "fee": 1277,
+      "sigops": 2
+    }
   ],
   "coinbasetxn": {
-    "data": "050000800a27a726b4d0d6c2000000003c0e1d00010000000000000000000000000000000000000000000000000000000000000000ffffffff04033c0e1d0000000004286bee000000000017a914d45cb1adffb5215a42720
532a076f02c7c778c908738c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b891298780b2e60e0000000017a914d45cb1adffb5215a4272
0532a076f02c7c778c9087000000",
-    "hash": "0186d7edac6a0eb283e8b4fa909e70de14d058f6a99883a639215f6f62e42f44",
-    "authdigest": "cc14bc5aab7e8fcc5d5c7ead25badcb3853e0d761a745f89892524ad1c48ddca",
+    "data": "0400008085202f89010000000000000000000000000000000000000000000000000000000000000000ffffffff05033c0e1d00ffffffff047db7e60e000000001976a91404c0421bf2c45530f0ec950d4c9c1d3f4b8d1a6a8
8ac38c94d010000000017a914782879ddb585bc8a31e0d50635f20a505ea28a548740787d010000000017a914931fec54c1fea86e574462cc32013f5400b8912987286bee000000000017a914d45cb1adffb5215a42720532a076f02c7c778c
9087000000003c0e1d000000000000000000000000",
+    "hash": "c8ed8a14c9c9efc0a2f6e856794a3988bf37fb7665c82b42c61cbf41e2d439c3",
+    "authdigest": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
     "depends": [
     ],
-    "fee": 0,
-    "sigops": 0,
+    "fee": -1277,
+    "sigops": 1,
     "required": true
   },
+  "longpollid": "00000000010bb1122f660c11e73ef4c728b9fe1f039373359c40d60e1b0e80b691375",
   "target": "0000000001420600000000000000000000000000000000000000000000000000",
   "mintime": 1670380592,
   "mutable": [
@@ -36,6 +47,5 @@
   "sizelimit": 2000000,
   "curtime": 1670381147,
   "bits": "1c014206",
-  "height": 1904188,
-  "maxtime": 1670385991
+  "height": 1904188
 }

I can explain all the differences, and the blockcommitmentshash is the same, so I'm happy with this change.

arya2
arya2 previously approved these changes Dec 7, 2022
Copy link
Contributor

@arya2 arya2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

We might want to cancel/restart template generation if the chain tip changes before the it's ready instead of the consistency check in relevant_chain_and_history_tree when adding support for long polling.

@arya2 arya2 dismissed their stale review December 7, 2022 03:57

Wait it's getting mempool transactions after the ChainInfo state request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-concurrency Area: Async code, needs extra work to make it work properly. A-consensus Area: Consensus rule updates A-rpc Area: Remote Procedure Call interfaces A-state Area: State / database changes C-enhancement Category: This is an improvement
Projects
None yet
3 participants