Esempio n. 1
0
 def test_UV_TR_001_004_to_008_011_to_017_VS_EP_001(self, new_genesis_env, clients_consensus):
     new_genesis_env.deploy_all()
     pip = clients_consensus[0].pip
     submitvpandvote(clients_consensus[:3])
     proposalinfo_version = pip.get_effect_proposal_info_of_vote()
     log.info('Get version proposal information {}'.format(proposalinfo_version))
     wait_block_number(pip.node, proposalinfo_version.get('ActiveBlock'))
     assert pip.get_status_of_proposal(proposalinfo_version.get('ProposalID')) == 5
     assert pip.chain_version == pip.cfg.version5
     assert pip.get_accuverifiers_count(proposalinfo_version.get('ProposalID')) == [4, 3, 0, 0]
     submittpandvote(clients_consensus[:2], 1, 2)
     submitcppandvote(clients_consensus[:2], [1, 2])
     proposalinfo_param = pip.get_effect_proposal_info_of_vote(pip.cfg.param_proposal)
     log.info('Get param proposal information {}'.format(proposalinfo_param))
     result = pip.vote(pip.node.node_id, proposalinfo_param.get('ProposalID'), pip.cfg.vote_option_yeas,
                       pip.node.staking_address, transaction_cfg=pip.cfg.transaction_cfg)
     log.info('Vote param proposal result : {}'.format(result))
     assert_code(result, 0)
     result = replace_version_declare(pip, pip.cfg.PLATON_NEW_BIN0, pip.cfg.version0)
     assert_code(result, 302028)
     result = replace_version_declare(pip, pip.cfg.PLATON_NEW_BIN, pip.cfg.version5)
     assert_code(result, 0)
     verifier_node_version(pip, pip.cfg.version5)
     result = replace_version_declare(pip, pip.cfg.PLATON_NEW_BIN4, pip.cfg.version4)
     assert_code(result, 0)
     verifier_node_version(pip, pip.cfg.version4)
     result = replace_version_declare(pip, pip.cfg.PLATON_NEW_BIN6, pip.cfg.version6)
     assert_code(result, 0)
     verifier_node_version(pip, pip.cfg.version6)
     result = pip.pip.listProposal()
     log.info('Interface listProposal result : {}'.format(result))
     assert_code(result, 0)
     result = pip.pip.getProposal(proposalinfo_version.get('ProposalID'))
     log.info('Interface getProposal result : {}'.format(result))
     assert_code(result, 0)
Esempio n. 2
0
    def test_AC_IN_003_008_010(self, new_genesis_env, clients_consensus):
        genesis = from_dict(data_class=Genesis, data=new_genesis_env.genesis_config)
        genesis.economicModel.gov.textProposalVoteDurationSeconds = 120
        new_genesis_env.set_genesis(genesis.to_dict())
        new_genesis_env.deploy_all()
        pip = clients_consensus[-1].pip
        submittpandvote(clients_consensus, 1, 2, 3, 1)
        proposalinfo = pip.get_effect_proposal_info_of_vote(pip.cfg.text_proposal)
        log.info('Get text proposal information : {}'.format(proposalinfo))
        assert pip.get_accuverifiers_count(proposalinfo.get('ProposalID')) == [4, 2, 1, 1]
        log.info('Stop the node {}'.format(clients_consensus[0].node.node_id))
        clients_consensus[0].node.stop()
        pip.economic.wait_consensus(pip.node, 2)
        assert pip.get_accuverifiers_count(proposalinfo.get('ProposalID')) == [4, 2, 1, 1]

        report_information = mock_duplicate_sign(1, clients_consensus[1].node.nodekey,
                                                 clients_consensus[1].node.blsprikey, 41)
        log.info("Report information: {}".format(report_information))
        address, _ = pip.economic.account.generate_account(pip.node.web3, 10 ** 18 * 1000)
        result = clients_consensus[-1].duplicatesign.reportDuplicateSign(1, report_information, address)
        log.info('Node duplicate block result : {}'.format(result))
        assert_code(result, 0)
        assert pip.get_accuverifiers_count(proposalinfo.get('ProposalID')) == [4, 2, 0, 1]

        report_information = mock_duplicate_sign(2, clients_consensus[2].node.nodekey,
                                                 clients_consensus[2].node.blsprikey, 41)
        log.info("Report information: {}".format(report_information))
        address, _ = pip.economic.account.generate_account(pip.node.web3, 10 ** 18 * 1000)
        result = clients_consensus[-1].duplicatesign.reportDuplicateSign(2, report_information, address)
        log.info('Node duplicate block result : {}'.format(result))
        assert_code(result, 0)
        assert pip.get_accuverifiers_count(proposalinfo.get('ProposalID')) == [4, 2, 0, 0]
Esempio n. 3
0
 def test_VO_TER_003_VO_TER_007_VO_TER_005_PP_VO_013(self, no_vp_proposal, client_candidate_obj, client_verifier_obj):
     ca_pip_obj = client_candidate_obj.pip
     ve_pip_obj = client_verifier_obj.pip
     submittpandvote([client_verifier_obj], 2)
     submitvpandvote([client_verifier_obj], votingrounds=1)
     proposalinfo_version = ve_pip_obj.get_effect_proposal_info_of_vote()
     log.info('Version proposal information {}'.format(proposalinfo_version))
     result = version_proposal_vote(ca_pip_obj)
     assert_code(result, 302022)
     result = proposal_vote(ca_pip_obj, proposaltype=ca_pip_obj.cfg.text_proposal)
     assert_code(result, 302022)
     wait_block_number(ca_pip_obj.node, proposalinfo_version.get('EndVotingBlock'))
     submitcppandvote([client_verifier_obj], [2])
     result = proposal_vote(ca_pip_obj, proposaltype=ca_pip_obj.cfg.param_proposal)
     assert_code(result, 302022)
     result = proposal_vote(ca_pip_obj, proposaltype=ca_pip_obj.cfg.cancel_proposal)
     assert_code(result, 302022)
Esempio n. 4
0
    def test_UP_TE_007(self, new_genesis_env, client_con_list_obj):
        genesis = from_dict(data_class=Genesis, data=new_genesis_env.genesis_config)
        genesis.economicModel.gov.textProposalSupportRate = 0.332
        genesis.economicModel.gov.textProposalVoteRate = 0.75
        genesis.economicModel.gov.textProposalVoteDurationSeconds = 40
        new_genesis_env.set_genesis(genesis.to_dict())
        new_genesis_env.deploy_all()
        submittpandvote(client_con_list_obj[:3], 1, 2, 3)
        pip_obj = client_con_list_obj[0].pip
        proposalinfo = pip_obj.get_effect_proposal_info_of_vote(pip_obj.cfg.text_proposal)
        log.info('Get text proposal information {}'.format(proposalinfo))

        assert pip_obj.get_accuverifiers_count(proposalinfo.get('ProposalID')) == [4, 1, 1, 1]
        wait_block_number(client_con_list_obj[1].node, proposalinfo.get('EndVotingBlock'))
        assert_code(pip_obj.get_yeas_of_proposal(proposalinfo.get('ProposalID')), 1)
        assert_code(pip_obj.get_nays_of_proposal(proposalinfo.get('ProposalID')), 1)
        assert_code(pip_obj.get_abstentions_of_proposal(proposalinfo.get('ProposalID')), 1)
        assert_code(pip_obj.get_accu_verifiers_of_proposal(proposalinfo.get('ProposalID')), len(client_con_list_obj))
        assert_code(pip_obj.get_status_of_proposal(proposalinfo.get('ProposalID')), 3)
Esempio n. 5
0
 def test_UP_TE_007(self, new_genesis_env, clients_consensus):
     update_setting_rate(new_genesis_env, 1, 40, 3330, 7500)
     submittpandvote(clients_consensus[:3], 1, 2, 3)
     verify_proposal_status(clients_consensus, proposaltype=1, status=3)