Exemplo n.º 1
0
    def NewUTXOTransaction(self, source, dest, amount, fso):
        #新建一个交易
        inputs = list()
        outputs = list()
        acc, validOutPuts = fso
        dest = Crypt.AtoPHK(dest)
        if acc < amount:
            Log.Panic("ERROR: Not enough funds!")
            return None
        else:
            #创建一个输入列表
            for txid in validOutPuts.keys():
                outs = validOutPuts[txid]
                for out in outs:
                    input = TranInput(txid, out, None, source)
                    inputs.append(input)

            #创建一个输出列表
            #只能有两个输出
            outputs.append(TranOutput(amount, dest))  #转给对方
            if acc > amount:
                outputs.append(
                    TranOutput(acc - amount, Crypt.getHashPubKey(source)))  #找零
            tx = Transaction(None, inputs, outputs)
            tx.SetID()
            return tx
Exemplo n.º 2
0
 def creatblock(self):
     """
     创建创世区块
     :param dest:自己的地址
     :return:
     """
     dest = Crypt.AtoPHK(Wallet().Address)
     tx = self.NewCoinbaseTX(dest)
     # 创世区块
     block = Block(tx.getresult())
     self.db.put(block.Headers.gethash(), str(block))
     self.db.put("l", block.Headers.gethash())
     block.getstring()