void CBInitInventory(CBInventory * self) { self->itemNum = 0; self->itemFront = NULL; CBInitMessageByObject(CBGetMessage(self)); }
bool CBInitBlockHeaders(CBBlockHeaders * self) { self->headerNum = 0; self->blockHeaders = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self))) return false; return true; }
void CBInitAlert(CBAlert * self, int32_t version, int64_t relayUntil, int64_t expiration, int32_t ID, int32_t cancel, int32_t minVer, int32_t maxVer, int32_t priority, CBByteArray * hiddenComment, CBByteArray * displayedComment, CBByteArray * reserved) { self->version = version; self->relayUntil = relayUntil; self->expiration = expiration; self->ID = ID; self->cancel = cancel; self->minVer = minVer; self->maxVer = maxVer; self->priority = priority; self->hiddenComment = hiddenComment; if (hiddenComment) CBRetainObject(hiddenComment); self->displayedComment = displayedComment; if (displayedComment) CBRetainObject(displayedComment); self->reserved = reserved; if (reserved) CBRetainObject(reserved); self->signature = NULL; self->payload = NULL; CBInitMessageByObject(CBGetMessage(self)); }
void CBInitTransactionInputTakeScriptAndHash(CBTransactionInput * self, CBScript * script, uint32_t sequence, CBByteArray * prevOutHash, uint32_t prevOutIndex){ self->scriptObject = script; self->prevOut.hash = prevOutHash; self->prevOut.index = prevOutIndex; self->sequence = sequence; CBInitMessageByObject(CBGetMessage(self)); }
bool CBInitInventoryBroadcast(CBInventoryBroadcast * self,CBEvents * events){ self->itemNum = 0; self->items = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self), events)) return false; return true; }
bool CBInitChainDescriptor(CBChainDescriptor * self,void (*logError)(char *,...)){ self->hashNum = 0; self->hashes = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self), logError)) return false; return true; }
bool CBInitBlockHeaders(CBBlockHeaders * self,void (*logError)(char *,...)) { self->headerNum = 0; self->blockHeaders = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self), logError)) return false; return true; }
bool CBInitInventoryBroadcast(CBInventoryBroadcast * self,void (*onErrorReceived)(CBError error,char *,...)){ self->itemNum = 0; self->items = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self), onErrorReceived)) return false; return true; }
bool CBInitNetworkAddress(CBNetworkAddress * self, uint64_t lastSeen, CBByteArray * ip, uint16_t port, CBVersionServices services, bool isPublic){ self->lastSeen = lastSeen; self->penalty = 0; self->ip = ip; self->isPublic = isPublic; if (NOT ip) { ip = CBNewByteArrayOfSize(16); if (NOT ip) return false; memset(CBByteArrayGetData(ip), 0, 16); self->type = CB_IP_INVALID; }else{ // Determine IP type self->type = CBGetIPType(CBByteArrayGetData(ip)); CBRetainObject(ip); } self->port = port; self->services = services; self->bucketSet = false; if (NOT CBInitMessageByObject(CBGetMessage(self))){ CBReleaseObject(ip); return false; } return true; }
bool CBInitInventoryItem(CBInventoryItem * self,CBInventoryItemType type,CBByteArray * hash,void (*logError)(char *,...)){ self->type = type; self->hash = hash; CBRetainObject(hash); if (NOT CBInitMessageByObject(CBGetMessage(self), logError)) return false; return true; }
bool CBInitAddressBroadcast(CBAddressBroadcast * self, bool timeStamps){ self->timeStamps = timeStamps; self->addrNum = 0; self->addresses = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self))) return false; return true; }
bool CBInitAddressBroadcast(CBAddressBroadcast * self,bool timeStamps,void (*onErrorReceived)(CBError error,char *,...)){ self->timeStamps = timeStamps; self->addrNum = 0; self->addresses = NULL; if (NOT CBInitMessageByObject(CBGetMessage(self), onErrorReceived)) return false; return true; }
bool CBInitInventoryItem(CBInventoryItem * self, CBInventoryItemType type, CBByteArray * hash){ self->type = type; self->hash = hash; CBRetainObject(hash); if (NOT CBInitMessageByObject(CBGetMessage(self))) return false; return true; }
bool CBInitUnsignedTransactionInput(CBTransactionInput * self,uint32_t sequence,CBByteArray * prevOutHash,uint32_t prevOutIndex,void (*onErrorReceived)(CBError error,char *,...)){ self->scriptObject = NULL; self->prevOut.hash = prevOutHash; CBRetainObject(prevOutHash); self->prevOut.index = prevOutIndex; self->sequence = sequence; if (NOT CBInitMessageByObject(CBGetMessage(self), onErrorReceived)) return false; return true; }
bool CBInitBlock(CBBlock * self){ self->prevBlockHash = NULL; self->merkleRoot = NULL; self->transactions = NULL; self->transactionNum = 0; self->hashSet = false; memset(self->hash, 0, 32); if (NOT CBInitMessageByObject(CBGetMessage(self))) return false; return true; }
bool CBInitTransactionOutput(CBTransactionOutput * self, uint64_t value, CBScript * script){ if (script){ self->scriptObject = script; CBRetainObject(script); }else self->scriptObject = NULL; self->value = value; if (NOT CBInitMessageByObject(CBGetMessage(self))) return false; return true; }
CBMessage * CBNewMessageByObject(void (*onErrorReceived)(CBError error,char *,...)){ CBMessage * self = malloc(sizeof(*self)); if (NOT self) { onErrorReceived(CB_ERROR_OUT_OF_MEMORY,"Cannot allocate %i bytes of memory in CBNewMessageByObject\n",sizeof(*self)); return NULL; } CBGetObject(self)->free = CBFreeMessage; if (CBInitMessageByObject(self,onErrorReceived)) return self; free(self); return NULL; }
bool CBInitTransaction(CBTransaction * self, uint32_t lockTime, uint32_t version){ self->lockTime = lockTime; self->inputNum = 0; self->outputNum = 0; self->inputs = NULL; self->outputs = NULL; self->version = version; self->hashSet = false; if (NOT CBInitMessageByObject(CBGetMessage(self))) return false; return true; }
bool CBInitVersion(CBVersion * self,int32_t version,CBVersionServices services,int64_t time,CBNetworkAddress * addRecv,CBNetworkAddress * addSource,uint64_t nonce,CBByteArray * userAgent,int32_t blockHeight,void (*logError)(char *,...)){ self->version = version; self->services = services; self->time = time; self->addRecv = addRecv; CBRetainObject(addRecv); self->addSource = addSource; CBRetainObject(addSource); self->nonce = nonce; self->userAgent = userAgent; CBRetainObject(userAgent); self->blockHeight = blockHeight; if (NOT CBInitMessageByObject(CBGetMessage(self), logError)) return false; return true; }
void CBInitPingPong(CBPingPong * self, long long int ID) { self->ID = ID; CBInitMessageByObject(CBGetMessage(self)); }
void CBInitChainDescriptor(CBChainDescriptor * self){ self->hashNum = 0; self->hashes = NULL; CBInitMessageByObject(CBGetMessage(self)); }
void CBInitNetworkAddressList(CBNetworkAddressList * self, bool timeStamps){ self->timeStamps = timeStamps; self->addrNum = 0; self->addresses = NULL; CBInitMessageByObject(CBGetMessage(self)); }
void CBInitBlockHeaders(CBBlockHeaders * self){ self->headerNum = 0; CBInitMessageByObject(CBGetMessage(self)); }