コード例 #1
0
    def setUp(self):
        for role in self.roles:
            try:
                # check if the role exists by get_balance
                role.delete()
            finally:
                result, message = role.create()
                self.assertEqual(result, 0, message)

        # register did for role A~F, if not registered
        for role in self.roles[:-1]:
            ec, message = mvs_rpc.list_dids(role.name, role.password)
            if ec == 0 and len(message['dids']) > 0:
                pass
            else:
                if role != Alice:
                    Alice.send_etp(role.mainaddress(), 10**8)
                    Alice.mining()
                ec, message = role.register_did()
                self.assertEqual(ec, 0,
                                 "error: {}, message: {}".format(ec, message))
                Alice.mining()

        if self.need_mine:
            # mine to clear the tx pool
            Alice.mining()

            # record current height
            _, (hash, height) = mvs_rpc.getblockheader()
            print "current block height=[%s], hash=[%s]" % (height, hash)
コード例 #2
0
    def setUp(self):
        MVSTestCaseBase.setUp(self)
        self.group_ABC = [Alice, Bob, Cindy]
        self.group_DEF = [Dale, Eric, Frank]
        self.addr_ABC = common.create_multisig_address(self.group_ABC, 2)
        self.addr_DEF = common.create_multisig_address(self.group_DEF, 2)

        # register did if not registered
        self.did_ABC = "Alice.Bob.Cindy@DIID"
        self.did_DEF = "Dale.Eric.Frank@DIID"

        for roles, addr, attr_name in [
            (self.group_ABC, self.addr_ABC, "did_ABC"),
            (self.group_DEF, self.addr_DEF, "did_DEF")
        ]:
            ec, message = mvs_rpc.list_dids(roles[-1].name, roles[-1].password)
            self.assertEqual(ec, 0, message)
            for did_info in message['dids']:
                if did_info["address"] == addr:
                    setattr(self, attr_name, did_info["symbol"])
                    break
            else:
                # not issued
                Alice.send_etp(addr, 10**8)
                Alice.mining()

                did_symbol = getattr(self, attr_name)

                ec, tx = mvs_rpc.register_did(roles[0].name, roles[0].password,
                                              addr, did_symbol)
                self.assertEqual(ec, 0, tx)
                ec, tx = mvs_rpc.sign_multisigtx(roles[1].name,
                                                 roles[1].password, tx, True)
                self.assertEqual(ec, 0, tx)
                Alice.mining()
コード例 #3
0
ファイル: Roles.py プロジェクト: wdyoschina/metaverse
    def didaddress(self):
        if None == self.did_address:
            ec, message = mvs_rpc.list_dids(self.name, self.password)
            assert (ec == 0)
            if message:
                dids = [MOCs.Did.init(i) for i in message if i]
                found_dids = filter(lambda a: a.symbol == self.did_symbol, dids)
                assert(len(found_dids) == 1)
                self.did_address = found_dids[0].address

        return self.did_address
コード例 #4
0
    def test_7_change_did(self):
        '''modify did between Zac's addresses'''
        temp_did = "ZAC.DIID@" + common.get_timestamp()
        Alice.send_etp(Zac.mainaddress(), 10**8)
        Alice.mining()
        ec, message = mvs_rpc.register_did(Zac.name, Zac.password,
                                           Zac.mainaddress(), temp_did)
        self.assertEqual(ec, 0, message)
        Alice.mining()

        # no enough balance, unspent = 0, payment = 10000
        ec, message = mvs_rpc.change_did(Zac.name, Zac.password,
                                         Zac.addresslist[1], temp_did)
        self.assertEqual(ec, 3302, message)

        Alice.send_etp(Zac.addresslist[1], 10**4)
        Alice.mining()

        ec, message = mvs_rpc.change_did(Zac.name, Zac.password,
                                         Zac.addresslist[1], temp_did)
        self.assertEqual(ec, 0, message)
        Alice.mining()

        ec, message = mvs_rpc.list_dids(Zac.name, Zac.password)
        self.assertEqual(ec, 0, message)

        self.assertEqual(message['dids'][0]['symbol'], temp_did, message)
        self.assertEqual(message['dids'][0]['address'], Zac.addresslist[1],
                         message)

        # confirm the modification procedure by list_didaddresses
        ec, message = mvs_rpc.list_didaddresses(temp_did)
        self.assertEqual(ec, 0, message)

        self.assertEqual(message['addresses'][0]["address"],
                         Zac.addresslist[1])
        self.assertEqual(message['addresses'][0]["status"], "current")

        self.assertEqual(message['addresses'][1]["address"],
                         Zac.addresslist[0])
        self.assertEqual(message['addresses'][1]["status"], "history")