コード例 #1
0
 def test_Public_Conversion(self):
     privateKey = Wallet_Create(save=False)
     publicKey1 = privateKey.publicKey()
     pem = publicKey1.toPem()
     publicKey2 = PublicKey.fromPem(pem)
     self.assertEqual(publicKey1.point.x, publicKey2.point.x)
     self.assertEqual(publicKey1.point.y, publicKey2.point.y)
     self.assertEqual(publicKey1.curve, publicKey2.curve)
コード例 #2
0
    def test_Private_Pem_Conversion(self):

        password = "******"

        temp_private_key_class = Wallet_Create(password, save=False)
        pem = temp_private_key_class.toPem()
        privateKey2 = PrivateKey.fromPem(pem)
        self.assertEqual(temp_private_key_class.secret, privateKey2.secret)
        self.assertEqual(temp_private_key_class.curve, privateKey2.curve)
コード例 #3
0
    def test_node_connection_saving_and_unl(self):

        password = "******"

        temp_private_key = Wallet_Create(password)

        node_1 = ndstart("127.0.0.1", 10001)

        temp_private_key2 = Wallet_Create(password)

        node_2 = ndstart("127.0.0.1", 10002)

        save_new_unl_node(node_1.id)
        save_new_unl_node(node_2.id)

        ndconnect("127.0.0.1", 10001)

        finded_node = False
        in_unl_list = False
        get_as_node = False

        nodes_list = get_connected_node()

        for element in nodes_list:
            if element == node_1.id or element == node_2.id:
                finded_node = True

                temp_unl_node_list = get_unl_nodes()
                temp_get_as_node_type = get_as_node_type(temp_unl_node_list)
                for unl_element in temp_unl_node_list:
                    if unl_element == node_1.id or unl_element == node_2.id:
                        for node_element_of_unl in temp_get_as_node_type:
                            if node_1.host == node_element_of_unl.host or node_2 == node_element_of_unl.host:
                                if node_1.port == node_element_of_unl.port or node_2 == node_element_of_unl.port:
                                    get_as_node = True
                        in_unl_list = True
                        unl_node_delete(unl_element)
                connected_node_delete(element)

        node_1.stop()
        node_2.stop()

        saved_wallets = get_saved_wallet()

        for each_wallet in saved_wallets:
            if temp_private_key == saved_wallets[each_wallet][
                    "privatekey"] or temp_private_key2 == saved_wallets[
                        each_wallet]["privatekey"]:
                Wallet_Delete(each_wallet)

        self.assertEqual(finded_node, True,
                         "Problem on connection saving system.")
        self.assertEqual(in_unl_list, True,
                         "Problem on UNL node saving system.")
        self.assertEqual(get_as_node, True,
                         "Problem on UNL get as node system.")
コード例 #4
0
    def test_saving_and_importing_the_wallet(self):
        temp_private_key_class = Wallet_Create()
        temp_private_key = temp_private_key_class.toPem().replace('\n', '')

        saved_wallets = get_saved_wallet()

        result = False
        for each_wallet in saved_wallets:
            if temp_private_key == (each_wallet[1]).replace('\n', ''):
                if temp_private_key == (Wallet_Import((saved_wallets.index(each_wallet)),1)).replace('\n', ''):
                    result = True
                    Wallet_Delete(each_wallet)
                    break

        result = True if "PRIVATE" in temp_private_key else False
        self.assertEqual(result, True, "A problem on the saving and importing the wallet.")
コード例 #5
0
    def test_saving_and_importing_and_deleting_the_wallet(self):

        password = "******"

        temp_private_key = Wallet_Create(password)

        saved_wallets = get_saved_wallet()

        result = False
        for each_wallet in saved_wallets:
            if temp_private_key == (saved_wallets[each_wallet]["privatekey"]):
                if temp_private_key == (Wallet_Import(each_wallet, 1,
                                                      password)):

                    Wallet_Delete(each_wallet)
                    result = True if each_wallet not in get_saved_wallet(
                    ) else False
                    break
                elif decrypt(temp_private_key, password) == (Wallet_Import(
                        each_wallet, 1, password)):
                    Wallet_Delete(each_wallet)
                    result = True if each_wallet not in get_saved_wallet(
                    ) else False
                    break

        self.assertEqual(result, True,
                         "A problem on the saving and importing the wallet.")
コード例 #6
0
    def create_the_wallet(self, widget):
        text_list = []
        for obj in self.wallet_alert_dialog.content_cls.children:
            for sub_obj in obj.children:
                Wallet_Create(sub_obj.text)
                self.dismiss_wallet_alert_dialog(widget)

                sub_obj.text = ""
コード例 #7
0
    def test_saving_and_importing_and_deleting_the_wallet(self):
        temp_private_key_class = Wallet_Create()
        temp_private_key = temp_private_key_class.toPem()

        saved_wallets = get_saved_wallet()

        result = False
        for each_wallet in saved_wallets:
            if temp_private_key == (saved_wallets[each_wallet]["privatekey"]):
                if temp_private_key == (Wallet_Import(
                        each_wallet, 1)) and "PRIVATE" in temp_private_key:
                    Wallet_Delete(each_wallet)
                    result = True if each_wallet not in get_saved_wallet(
                    ) else False
                    break

        self.assertEqual(result, True,
                         "A problem on the saving and importing the wallet.")
コード例 #8
0
def create_a_wallet(password=None):
    """
    Creates a wallet.
    """

    if password is None:
        password = getpass("Password: ")
    Wallet_Create(password)
    del password
コード例 #9
0
def menu():
    """
    The main structure of the cli mode, this function prints the menu, 
    listens to the entries, makes the directions.
    """

    while True:
        show_menu()
        choices_input = question_maker(mode="main")

        if choices_input == "connectmainnetwork":
            connect_to_main_network()
        if choices_input == "cw":
            Wallet_Create()
        if choices_input == "sc":
            temp_coin_amount = input("Coin Amount (ex. 1.0): ")
            type_control = False
            try:
                float(temp_coin_amount)
                type_control = True
            except:
                print("This is not float coin amount.")

            if type_control and not float(temp_coin_amount) < GetBlock().minumum_transfer_amount:
                send_coin(float(temp_coin_amount), input("Please write receiver adress: "))

        if choices_input == "gb":
            print(GetBalance(Wallet_Import(0,0), GetBlock()))
            print(Wallet_Import(0,3))
        if choices_input == "help":
            show_menu()
        if choices_input == "ndstart":
            ndstart(str(input("ip: ")), int(input("port: ")))
        if choices_input == "ndstop":
            ndstop()
        if choices_input == "ndconnect":
            ndconnect(str(input("node ip: ")), int(input("node port: ")))

        if choices_input == "ndconnectmixdb":
            ndconnectmixdb()
        if choices_input == "ndnewunl":
            save_new_unl_node(input("Please write ID of the node: "))
        if choices_input == "testmodeon":
            test_mode(True)
        if choices_input == "testmodeoff":
            test_mode(False)
        if choices_input == "debugmodeon":
            debug_mode(True)
            # from node.myownp2pn import mynode
            # mynode.main_node.debug = True
        if choices_input == "debugmodeoff":
            debug_mode(False)
            # from node.myownp2pn import mynode
            # mynode.main_node.debug = False

        if choices_input == "getfullnodelist":
            GetNodeList()
        if choices_input == "getblock":
            if the_settings()["test_mode"]:
                CreateBlock()
            else:
                GetBlockFromOtherNode()



        if choices_input == "0":
            exit()
コード例 #10
0
 def Wallet_Create(self):
     Wallet_Create()
     self.show_wallet_alert_dialog()
コード例 #11
0
ファイル: cli.py プロジェクト: cpyberry/Decentra-Network
def menu():
    """
    The main structure of the cli mode, this function prints the menu, 
    listens to the entries, makes the directions.
    """

    while True:
        show_menu()
        choices_input = question_maker(mode="main")

        if choices_input == "w":
            all_wallets = list(get_saved_wallet())
            if not len(all_wallets) == 0:

                current_wallet = the_settings()["wallet"]
                for wallet in all_wallets:
                    number = str(all_wallets.index(wallet))
                    address = Wallet_Import(all_wallets.index(wallet),3)
                    if not current_wallet == number:
                        print(menu_maker(menu_number=number, menu_text=address))
                    else:
                        print(menu_maker(menu_number=number, menu_text=address + " - CURRENTLY USED"))

                while True:
                    try:
                        new_wallet = input("Please select wallet: ")
                        if int(new_wallet) in list(range(len(all_wallets))):
                            change_wallet(new_wallet)
                            break
                        else:
                            print("There is no such wallet")
                    except:
                        print("This is not a number")
            else:
                print("There is no wallet")




        if choices_input == "connectmainnetwork":
            connect_to_main_network()
        if choices_input == "cw":
            Wallet_Create()
        if choices_input == "sc":
            temp_coin_amount = input("Coin Amount (ex. 1.0): ")
            type_control = False
            try:
                float(temp_coin_amount)
                type_control = True
            except:
                print("This is not float coin amount.")

            if type_control and not float(temp_coin_amount) < GetBlock().minumum_transfer_amount:
                send_coin(float(temp_coin_amount), input("Please write receiver adress: "))

        if choices_input == "gb":
            print(GetBalance(Wallet_Import(-1,0), GetBlock()))
        if choices_input == "help":
            show_menu()
        if choices_input == "ndstart":
            ndstart(str(input("ip: ")), int(input("port: ")))
        if choices_input == "ndstop":
            ndstop()
        if choices_input == "ndconnect":
            ndconnect(str(input("node ip: ")), int(input("node port: ")))

        if choices_input == "ndconnectmixdb":
            ndconnectmixdb()
        if choices_input == "ndnewunl":
            save_new_unl_node(input("Please write ID of the node: "))
        if choices_input == "testmodeon":
            test_mode(True)
        if choices_input == "testmodeoff":
            test_mode(False)
        if choices_input == "debugmodeon":
            debug_mode(True)
            # from node.myownp2pn import mynode
            # mynode.main_node.debug = True
        if choices_input == "debugmodeoff":
            debug_mode(False)
            # from node.myownp2pn import mynode
            # mynode.main_node.debug = False

        if choices_input == "getfullnodelist":
            GetNodeList()
        if choices_input == "getblock":
            if the_settings()["test_mode"]:
                CreateBlock()
            else:
                GetBlockFromOtherNode()



        if choices_input == "0":
            exit()