Exemplo n.º 1
0
	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)))
Exemplo n.º 2
0
	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()
Exemplo n.º 3
0
	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)))