Example #1
0
def filetotrans(filename):  # Verified working
    f = open(filename, "r")
    incount = int(block.readword(f.readline()))  # reading incount from the file
    outcount = int(block.readword(f.readline()))  # reading outcount from the file

    T = transaction(incount, outcount)  # create a new transaction object
    T.inlist = [inputtrans() for i in range(T.incount)]  # creating array inlist[]
    T.sign = block.readword(f.readline())
    T.hash = block.readword(f.readline())
    for i in range(T.incount):
        T.inlist[i].hash = block.readword(
            f.readline()
        )  # reading hash, n, sign and pub values from file ans storing it in inlist[i]
        T.inlist[i].n = int(block.readword(f.readline()))
        T.inlist[i].sign = block.readword(f.readline())
        T.inlist[i].pub = block.readword(f.readline())

    T.outlist = [outputtrans() for i in range(T.outcount)]  # creating array outlist[]
    for i in range(T.outcount):
        T.outlist[i].value = int(
            block.readword(f.readline())
        )  # reading value and addr values from file ans storing it in outlist[i]

        T.outlist[i].addr = block.readword(f.readline())

    f.close()
    return T
Example #2
0
def signtrans(node, filename):  # Verified working
    f = open(filename, "r")

    incount = int(block.readword(f.readline()))  # reading incount from the file
    outcount = int(block.readword(f.readline()))  # reading outcount from the file
    sign = block.readword(f.readline())

    T = transaction(incount, outcount)  # create a new transaction object
    T.hash = block.readword(f.readline())
    hashstr = str(T.incount) + str(T.outcount)
    transstr = str(T.incount) + str(T.outcount)
    T.inlist = [inputtrans() for i in range(T.incount)]  # creating array inlist[]
    for i in range(T.incount):
        T.inlist[i].hash = block.readword(
            f.readline()
        )  # reading hash, n, sign and pub values from file ans storing it in inlist[i]
        T.inlist[i].n = int(block.readword(f.readline()))
        T.inlist[i].sign = block.readword(f.readline())
        T.inlist[i].pub = block.readword(f.readline())
        # append each attribute of inlist[i] and sign it
        hashinstr = str(T.inlist[i].n) + str(T.inlist[i].pub)
        hashstr = hashstr + hashinstr
        # T.inlist[i].hash = gethash(hashinstr) #Commented out bcos validation was failing

        inliststr = str(T.inlist[i].hash) + str(T.inlist[i].n) + str(T.inlist[i].pub)
        T.inlist[i].sign = node.privatekey.sign(inliststr)
        # print T.inlist[i].sign

        transstr = transstr + str(T.inlist[i].hash) + str(T.inlist[i].n) + str(T.inlist[i].pub) + str(T.inlist[i].sign)

    T.outlist = [outputtrans() for i in range(T.outcount)]  # creating array outlist[]
    for i in range(T.outcount):
        T.outlist[i].value = int(
            block.readword(f.readline())
        )  # reading value and addr values from file ans storing it in outlist[i]
        T.outlist[i].addr = block.readword(f.readline())
        transstr = transstr + str(T.outlist[i].value) + str(T.outlist[i].addr)
        hashstr = hashstr + str(T.outlist[i].value) + str(T.outlist[i].addr)

        # T.hash = gethash(hashstr)	commented because of the difficulty in finding hash of the input transaction
    transstr = transstr + str(T.hash)
    T.sign = node.privatekey.sign(transstr)
    # print T.sign
    f.close
    transtofile(T, "signedtrans5.txt")