示例#1
0
    def testOutput(self):
        op1 = Transaction.Output(5, alicePublicKey)
        op2 = Transaction.Output(5, bobPublicKey)
        op3 = Transaction.Output(5, alicePublicKey)

        assert op1 != op2

        assert hash(op1) == hash(op3)

        assert hash(op2) != hash(op3)
示例#2
0
    def testTransaction(self):
        tx = Transaction()

        tx.addInput(b'genesis', 0)
        assert tx.numInputs() == 1

        opGenesis = Transaction.Output(5, genesisPublicKey)
        tx.addOutput(opGenesis.value, opGenesis.address)
        tx.addOutput(5, alicePublicKey)
        tx.addOutput(10, bobPublicKey)
        assert tx.numOutputs() == 3

        tx.removeInput(0)
        assert tx.numInputs() == 0

        tx.addInput(b'genesis', 0)
        signature0 = sign(genesisPrivateKey, tx, 0)
        tx.addSignature(signature0, 0)
        tx.finalize()

        print(tx.hash)
        print(hash(tx.getInput(0)))
        print(tx.getInput(0).to_dict())
        print(hash(tx.getOutput(0)))
        print(tx.getOutput(0).to_dict())

        print(verify(genesisPublicKey, binascii.hexlify(signature0).decode('ascii'), tx.getRawDataToSign(0)))
示例#3
0
    def testTransaction(self):
        tx = Transaction()

        tx.addInput(b'genesis', 0)
        assert tx.numInputs() == 1

        opGenesis = Transaction.Output(5, genesisPublicKey)
        tx.addOutput(opGenesis.value, opGenesis.address)
        tx.addOutput(5, alicePublicKey)
        tx.addOutput(10, bobPublicKey)
        assert tx.numOutputs() == 3

        tx.removeInput(0)
        assert tx.numInputs() == 0

        tx.addInput(b'genesis', 0)
        signature0 = sign(genesisPrivateKey, tx, 0)
        tx.addSignature(signature0, 0)
        tx.finalize()