def insertInput(self, input_): """Inserts an input into the database. Does not commit database modification. @param input_ Input object. """ query = ' INSERT INTO inputs (transaction_id, transaction_hash, transaction_index, coinbase, sequence_number, script) \ VALUES (%s, %s, %s, %s, %s, %s)' self.executeQuery(query, (\ self.lastId, \ binaryRead.strToHex(input_.transactionHash), \ binaryRead.uIntToStr(input_.transactionIndex), \ input_.isCoinbase, \ binaryRead.uIntToStr(input_.sequenceNumber), \ binaryRead.strToHex(input_.scriptData)))
def insertTransaction(self, transaction): """Inserts a transaction into the database. Does not commit database modification. Sets lastId attribute of DatabaseWrapper to the value of the inserted transaction ID. @param transaction Transaction object. """ query = ' INSERT INTO transactions (block_id, version, input_count, output_count, locktime, transaction_hash) \ VALUES (%s, %s, %s, %s, %s, %s) RETURNING id' self.executeQuery(query, (\ str(transaction.blockNumber), \ binaryRead.uIntToStr(transaction.transactionVersion), \ str(transaction.inputCount), \ str(transaction.outputCount), \ binaryRead.uIntToStr(transaction.lockTime), \ transaction.transactionHash)) self.setLastId()
def insertBlock(self, block): """Inserts a block into the database. Does not commit database modification. @param block Block object. """ query = ' INSERT INTO blocks (id, magic_id, length, version, previous_block_hash, merkle_root, target_difficulty, nonce, block_hash, file_name, real_size, block_timestamp) \ VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' self.executeQuery(query, (\ str(block.blockNumber), \ binaryRead.strToHex(block.blockHeader.magicID), \ binaryRead.uIntToStr(block.blockHeader.length), \ binaryRead.uIntToStr(block.blockHeader.version), \ binaryRead.strToHex(block.blockHeader.previousBlockHash), \ binaryRead.strToHex(block.blockHeader.merkleRoot), \ binaryRead.uIntToStr(block.blockHeader.targetDifficulty), \ binaryRead.uIntToStr(block.blockHeader.nonce), \ block.blockHeader.blockHash, \ block.fileName, \ block.realSize, \ binaryRead.binaryToTime(block.blockHeader.timestamp)))