def test_deterministic_superblock_selection(go_list_superblocks): from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_superblocks: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) # highest hash wins if same -- so just order by hash sb = Superblock.find_highest_deterministic('542f4433e438bdd64697b8381fda1a7a9b7a111c3a4e32fad524d1821d820394') assert sb.object_hash == 'bc2834f357da7504138566727c838e6ada74d079e63b6104701f4f8eb05dae36'
def test_deterministic_superblock_selection(go_list_superblocks): from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_superblocks: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) # highest hash wins if same -- so just order by hash sb = Superblock.find_highest_deterministic('22a5f429c5ffb2b79b1b30c3ac30751284e3efa4e710bc7fd35fbe7456b1e485') assert sb.object_hash == 'bc2834f357da7504138566727c838e6ada74d079e63b6104701f4f8eb05dae36'
def test_approved_and_ranked(go_list_proposals): from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) prop_list = Proposal.approved_and_ranked(proposal_quorum=1, next_superblock_max_budget=60) assert prop_list[0].object_hash == u'dfd7d63979c0b62456b63d5fc5306dbec451180adee85876cbf5b28c69d1a86c' assert prop_list[1].object_hash == u'0523445762025b2e01a2cd34f1d10f4816cf26ee1796167e5b029901e5873630'
def test_deterministic_superblock_selection(go_list_superblocks): from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_superblocks: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) # highest hash wins if same -- so just order by hash sb = Superblock.find_highest_deterministic( '5c7c28ddec8c1ad54b49f6f1e79369e7ccaf76f5ddc30e502569d674e458ccf3') assert sb.object_hash == 'bc2834f357da7504138566727c838e6ada74d079e63b6104701f4f8eb05dae36'
def test_approved_and_ranked(go_list_proposals): from sibcoind import SibcoinDaemon sibcoind = SibcoinDaemon.from_sibcoin_conf(config.sibcoin_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(sibcoind, item) prop_list = Proposal.approved_and_ranked(proposal_quorum=1, next_superblock_max_budget=60) assert prop_list[ 0].object_hash == u'7e38a64c2e5275b978e0075be2d87765b91f1bab75285de6818c00fb009465be'
def test_deterministic_superblock_creation(go_list_proposals): import dashlib from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) prop_list = Proposal.approved_and_ranked(dashd) sb = dashlib.create_superblock(dashd, prop_list, 72000) assert sb.event_block_height == 72000 assert sb.payment_addresses == 'yYe8KwyaUu5YswSYmB3q3ryx8XTUu9y7Ui|yYe8KwyaUu5YswSYmB3q3ryx8XTUu9y7Ui' assert sb.payment_amounts == '25.75000000|25.75000000' assert sb.hex_hash( ) == 'f740f95ef49b050f522ba2bda921819b72dbab7c622bfdd3786624e3fbf6e25f'
def test_deterministic_superblock_creation(go_list_proposals): import dashlib import misc from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) max_budget = 60 prop_list = Proposal.approved_and_ranked(proposal_quorum=1, next_superblock_max_budget=max_budget) sb = dashlib.create_superblock(prop_list, 72000, budget_max=max_budget, sb_epoch_time=misc.now()) assert sb.event_block_height == 72000 assert sb.payment_addresses == 'yYe8KwyaUu5YswSYmB3q3ryx8XTUu9y7Ui|yTC62huR4YQEPn9AJHjnQxxreHSbgAoatV' assert sb.payment_amounts == '25.75000000|32.01000000' assert sb.proposal_hashes == 'dfd7d63979c0b62456b63d5fc5306dbec451180adee85876cbf5b28c69d1a86c|0523445762025b2e01a2cd34f1d10f4816cf26ee1796167e5b029901e5873630' assert sb.hex_hash() == '5534e9fa4a51423820b9e19fa6d4770c12ea0a5663e8adff8223f5e8b6df641c'
def test_deterministic_superblock_creation(go_list_proposals): import dashlib import misc from sibcoind import SibcoinDaemon sibcoind = SibcoinDaemon.from_sibcoin_conf(config.sibcoin_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(sibcoind, item) max_budget = 60 prop_list = Proposal.approved_and_ranked(proposal_quorum=1, next_superblock_max_budget=max_budget) sb = dashlib.create_superblock(prop_list, 72000, budget_max=max_budget, sb_epoch_time=misc.now()) assert sb.event_block_height == 72000 assert sb.payment_addresses == 'seVNpH5rkau8dKhumiLF1BYspp2vf7Lkyb|sftsJedhmLqYBWPkbvpqksqsvS9pAbLaLS' assert sb.payment_amounts == '25.75000000|32.01000000' assert sb.proposal_hashes == 'dfd7d63979c0b62456b63d5fc5306dbec451180adee85876cbf5b28c69d1a86c|0523445762025b2e01a2cd34f1d10f4816cf26ee1796167e5b029901e5873630' assert sb.hex_hash() == '96887a5a2ea9201542f95209f5a9a26c2166107e760a21fceead68e00ae5a778'
def test_deterministic_superblock_creation(go_list_proposals): import dashlib import misc from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) max_budget = 60 prop_list = Proposal.approved_and_ranked(proposal_quorum=1, next_superblock_max_budget=max_budget) # MAX_GOVERNANCE_OBJECT_DATA_SIZE defined in governance-object.h maxgovobjdatasize = 16 * 1024 sb = dashlib.create_superblock(prop_list, 72000, max_budget, misc.now(), maxgovobjdatasize) assert sb.event_block_height == 72000 assert sb.payment_addresses == 'yYe8KwyaUu5YswSYmB3q3ryx8XTUu9y7Ui|yTC62huR4YQEPn9AJHjnQxxreHSbgAoatV' assert sb.payment_amounts == '25.75000000|32.01000000' assert sb.proposal_hashes == 'dfd7d63979c0b62456b63d5fc5306dbec451180adee85876cbf5b28c69d1a86c|0523445762025b2e01a2cd34f1d10f4816cf26ee1796167e5b029901e5873630' assert sb.hex_hash() == 'bb3f33ccf95415c396bd09d35325dbcbc7b067010d51c7ccf772a9e839c1e414'
def test_superblock_size_limit(go_list_proposals): import dashlib import misc from dashd import DashDaemon dashd = DashDaemon.from_dash_conf(config.dash_conf) for item in go_list_proposals: (go, subobj) = GovernanceObject.import_gobject_from_dashd(dashd, item) max_budget = 60 prop_list = Proposal.approved_and_ranked(proposal_quorum=1, next_superblock_max_budget=max_budget) maxgovobjdatasize = 469 sb = dashlib.create_superblock(prop_list, 72000, max_budget, misc.now(), maxgovobjdatasize) # two proposals in the list, but... assert len(prop_list) == 2 # only one should have been included in the SB, because the 2nd one is over the limit assert sb.event_block_height == 72000 assert sb.payment_addresses == 'yYe8KwyaUu5YswSYmB3q3ryx8XTUu9y7Ui' assert sb.payment_amounts == '25.75000000' assert sb.proposal_hashes == 'dfd7d63979c0b62456b63d5fc5306dbec451180adee85876cbf5b28c69d1a86c' assert sb.hex_hash() == '6b8cababf797644f1d62003e4cc68c1c40a8c1873c8a68ed0fc88772ea77cc44'