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
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()