コード例 #1
0
ファイル: Node.py プロジェクト: trucoin/trucoin-core
    def load_node_json(self):
        if not path.exists("node_data.json"):
            create_file = open("node_data.json", "x")
            create_file.close()
        read_file = open("node_data.json", "r")
        raw = read_file.read()
        if len(raw) == 0:
            addr = Address()
            add_data = addr.export()
            my_node = {**add_data, 'address': addr.get_public_address()}
            write_file = open("node_data.json", 'w')
            write_file.write(json.dumps(my_node))
            write_file.close()

            return my_node
        else:
            try:
                my_node = json.loads(raw)
                return my_node
            except ValueError:
                print(
                    'Error: The json is malformed in node_data.json. Please fix the file or delete it.\n(Note: Deleting this file will cause your node main wallet signing key to be lost.)'
                )
                exit()
            read_file.close()
コード例 #2
0
ファイル: Vote.py プロジェクト: trucoin/trucoin-core
 def sign_vote(self, sk, vk):
     add = Address()
     add.load(sk, vk)
     self.script_sig = add.sign_message(
         json.dumps({
             "ip_address": self.ip_address,
             "representative": self.representative
         }))
     self.vk = vk
コード例 #3
0
ファイル: Transaction.py プロジェクト: trucoin/trucoin-core
 def verify_transaction(self):
     for i, input in enumerate(self.input):
         address = Address()
         if address.verify_signature(input['prev_out']['script'],
                                     self.verifyingkey):
             continue
         else:
             return False
     return True
コード例 #4
0
def create_tx(addr):
    add_data = {
        "address":
        "1d3f347aada53547142da8edea5e0019e6ef31bb15",
        "vk":
        "-----BEGIN PUBLIC KEY-----\nMEkwEwYHKoZIzj0CAQYIKoZIzj0DAQEDMgAEHxzkpgh/lqgd1/rb7d+D+srhlhzG\ncOAveBQafVnHkffNR2aCiFHVQZKzhyO7iC/p\n-----END PUBLIC KEY-----\n",
        "sk":
        "-----BEGIN EC PRIVATE KEY-----\nMF8CAQEEGKtkXJ8xlejSSOl4mzNTYiXmb70wRByW1aAKBggqhkjOPQMBAaE0AzIA\nBB8c5KYIf5aoHdf62+3fg/rK4ZYcxnDgL3gUGn1Zx5H3zUdmgohR1UGSs4cju4gv\n6Q==\n-----END EC PRIVATE KEY-----\n"
    }
    tx = Transaction()
    add = Address()
    add.load(add_data["sk"], add_data["vk"])
    # print(addr)
    tx.inputs = []
    tx.inputs.append(
        TransactionInput.from_json({
            'previous_tx':
            "16e8dab3a9185d5329fac9cfdc0a81c7817826f701e747cb3751878061e4dc8c",
            'index':
            0,
            'scriptSig': [
                add.sign_message(
                    json.dumps({
                        'previous_tx':
                        "16e8dab3a9185d5329fac9cfdc0a81c7817826f701e747cb3751878061e4dc8c",
                        'index': 0
                    }).encode("utf-8")).hex()
            ],
            'address':
            addr,
            'verifying_key': [add_data["vk"]]
        }))
    tx.outputs.append(
        TransactionOutput.from_json({
            'address': "yikgyyf67rr68t887tfc",
            'value': 25,
            'n': 0
        }))
    tx.generate_hash()
    txf = tx.to_json()
    # print(txf['inputs'][0]['address'])
    return txf
コード例 #5
0
ファイル: addblock.py プロジェクト: trucoin/trucoin-core
def create_fake_transaction(address: Address):
    tmp_tx = Transaction()
    add = Address()
    add.load(add_data["sk"], add_data["vk"])

    tmp_tx.inputs.append(TransactionInput.from_json({
        'previous_tx': "16e8dab3a9185d5329fac9cfdc0a81c7817826f701e747cb3751878061e4dc8c",
        'index': 0,
        'scriptSig': [add.sign_message(json.dumps({
            'previous_tx': "16e8dab3a9185d5329fac9cfdc0a81c7817826f701e747cb3751878061e4dc8c",
            'index': 0
        }).encode("utf-8")).hex()],
        'address': add_data["address"],
        'verifying_key': [add_data["vk"]]
    }))
    tmp_tx.outputs.append(TransactionOutput.from_json({
        'address': "12345",
        'value': 25,
        'n': 0
    }))
    tmp_tx.generate_hash()

    return tmp_tx
コード例 #6
0
ファイル: genaddress.py プロジェクト: trucoin/trucoin-core
from trucoin.Address import Address
add = Address()
pub_address = add.get_public_address()
keys = add.export()
print(pub_address)
print(keys)
コード例 #7
0
ファイル: addblock.py プロジェクト: trucoin/trucoin-core
        'verifying_key': [add_data["vk"]]
    }))
    tmp_tx.outputs.append(TransactionOutput.from_json({
        'address': "12345",
        'value': 25,
        'n': 0
    }))
    tmp_tx.generate_hash()

    return tmp_tx


if __name__ == "__main__":
    # Push 10 random addresses
    for i in range(10):
        tmp_addr = Address()
        global_addresses.append(tmp_addr)

    redis_client = redis.Redis(host='localhost', port=6379, db=0)
    # Clean the whole database
    # redis_client.delete("chain")

    # Add genesis block
    # redis_client.rpush("chain", json.dumps({
    #     "hash": "16e8dab3a9185d5329fac9cfdc0a81c7817826f701e747cb3751878061e4dc8c",
    #     "timestamp": 1599401715.846563,
    #     "transactions": [{
    #         "timestamp": 1599401715.846347,
    #         "version": "0.0.1",
    #         "inputs": [],
    #         "outputs": [
コード例 #8
0
 def gen_addr(self):
     add = Address()
     print(add.get_public_address())
コード例 #9
0
 def gen_words(self):
     add = Address()
     print(add.gen_words())
コード例 #10
0
 def sign_verif(self):
     add = Address()
     sgn = add.sign_message("hello world")
     res = add.verify_signature("hello world", sgn)
     self.assertEqual(res, True)