Пример #1
0
CBCompare CBTransactionCompare(CBAssociativeArray * foo, void * tx1, void * tx2){
	CBTransaction * tx1Obj = tx1;
	CBTransaction * tx2Obj = tx2;
	int res = memcmp(CBTransactionGetHash(tx1Obj), CBTransactionGetHash(tx2Obj), 32);
	if (res > 0)
		return CB_COMPARE_MORE_THAN;
	if (res == 0)
		return CB_COMPARE_EQUAL;
	return CB_COMPARE_LESS_THAN;
}
Пример #2
0
CBCompare CBTransactionPtrAndHashCompare(CBAssociativeArray * foo, void * hash, void * tx){
	CBTransaction ** txObj = tx;
	int res = memcmp((uint8_t *)hash, CBTransactionGetHash(*txObj), 32);
	if (res > 0)
		return CB_COMPARE_MORE_THAN;
	if (res == 0)
		return CB_COMPARE_EQUAL;
	return CB_COMPARE_LESS_THAN;
}
Пример #3
0
uint8_t * CBBlockCalculateMerkleRoot(CBBlock * self){
	uint8_t * txHashes = malloc(32 * self->transactionNum);
	if (NOT txHashes)
		return NULL;
	// Ensure serialisation of transactions and then add their hashes for the calculation
	for (uint32_t x = 0; x < self->transactionNum; x++)
		memcpy(txHashes + 32*x, CBTransactionGetHash(self->transactions[x]), 32);
	CBCalculateMerkleRoot(txHashes, self->transactionNum);
	return txHashes;
}