bool CBInitInventoryBroadcastFromData(CBInventoryBroadcast * self,CBByteArray * data,CBEvents * events){ self->itemNum = 0; self->items = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, events)) return false; return true; }
bool CBInitNetworkAddressFromData(CBNetworkAddress * self, CBByteArray * data, bool isPublic){ self->ip = NULL; self->bucketSet = false; if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }
bool CBInitChainDescriptorFromData(CBChainDescriptor * self,CBByteArray * data,void (*logError)(char *,...)){ self->hashNum = 0; self->hashes = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, logError)) return false; return true; }
bool CBInitTransactionInputFromData(CBTransactionInput * self, CBByteArray * data,void (*onErrorReceived)(CBError error,char *,...)){ self->scriptObject = NULL; self->prevOut.hash = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, onErrorReceived)) return false; return true; }
void CBInitInventoryFromData(CBInventory * self, CBByteArray * data) { self->itemNum = 0; self->itemFront = NULL; CBInitMessageByData(CBGetMessage(self), data); }
bool CBInitInventoryBroadcastFromData(CBInventoryBroadcast * self,CBByteArray * data,void (*onErrorReceived)(CBError error,char *,...)){ self->itemNum = 0; self->items = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, onErrorReceived)) return false; return true; }
bool CBInitBlockHeadersFromData(CBBlockHeaders * self,CBByteArray * data,void (*logError)(char *,...)) { self->headerNum = 0; self->blockHeaders = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, logError)) return false; return true; }
bool CBInitBlockHeadersFromData(CBBlockHeaders * self, CBByteArray * data) { self->headerNum = 0; self->blockHeaders = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }
bool CBInitAddressBroadcastFromData(CBAddressBroadcast * self,bool timeStamps,CBByteArray * data,void (*onErrorReceived)(CBError error,char *,...)){ self->timeStamps = timeStamps; self->addrNum = 0; self->addresses = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, onErrorReceived)) return false; return true; }
bool CBInitAddressBroadcastFromData(CBAddressBroadcast * self, bool timeStamps, CBByteArray * data){ self->timeStamps = timeStamps; self->addrNum = 0; self->addresses = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }
bool CBInitVersionFromData(CBVersion * self,CBByteArray * data,void (*logError)(char *,...)){ self->addRecv = NULL; self->userAgent = NULL; self->addSource = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, logError)) return false; return true; }
bool CBInitTransactionFromData(CBTransaction * self, CBByteArray * data){ self->inputNum = 0; self->outputNum = 0; self->inputs = NULL; self->outputs = NULL; self->hashSet = false; if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }
bool CBInitBlockFromData(CBBlock * self, CBByteArray * data){ self->prevBlockHash = NULL; self->merkleRoot = NULL; self->transactions = NULL; self->transactionNum = 0; self->hashSet = false; memset(self->hash, 0, 32); if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }
void BRSendPong(BRConnection *c, CBByteArray *nonce, uint32_t length) { if (length != 8) { fprintf(stderr, "Ping nonce size %d not 8\n", length); exit(1); } printf("Sending pong reply\n"); CBMessage *m = CBNewMessageByObject(); CBInitMessageByData(m, nonce); BRSendMessage(c, m, "pong"); CBFreeMessage(m); }
void BRSendPing(BRConnection *c) { printf("Sending ping\n"); CBMessage *m = CBNewMessageByObject(); uint64_t nonce = rand(); CBByteArray *ba = CBNewByteArrayWithDataCopy((uint8_t *) &nonce, 8); CBInitMessageByData(m, ba); BRSendMessage(c, m, "ping"); CBReleaseObject(ba); CBFreeMessage(m); }
void CBInitAlertFromData(CBAlert * self, CBByteArray * data) { self->setCancel = NULL; self->userAgents = NULL; self->hiddenComment = NULL; self->displayedComment = NULL; self->reserved = NULL; self->signature = NULL; self->payload = NULL; CBInitMessageByData(CBGetMessage(self), data); }
bool CBInitBlockGenesis(CBBlock * self){ CBByteArray * data = CBNewByteArrayWithDataCopy((uint8_t [285]){0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xA3, 0xED, 0xFD, 0x7A, 0x7B, 0x12, 0xB2, 0x7A, 0xC7, 0x2C, 0x3E, 0x67, 0x76, 0x8F, 0x61, 0x7F, 0xC8, 0x1B, 0xC3, 0x88, 0x8A, 0x51, 0x32, 0x3A, 0x9F, 0xB8, 0xAA, 0x4B, 0x1E, 0x5E, 0x4A, 0x29, 0xAB, 0x5F, 0x49, 0xFF, 0xFF, 0x00, 0x1D, 0x1D, 0xAC, 0x2B, 0x7C, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x4D, 0x04, 0xFF, 0xFF, 0x00, 0x1D, 0x01, 0x04, 0x45, 0x54, 0x68, 0x65, 0x20, 0x54, 0x69, 0x6D, 0x65, 0x73, 0x20, 0x30, 0x33, 0x2F, 0x4A, 0x61, 0x6E, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x20, 0x43, 0x68, 0x61, 0x6E, 0x63, 0x65, 0x6C, 0x6C, 0x6F, 0x72, 0x20, 0x6F, 0x6E, 0x20, 0x62, 0x72, 0x69, 0x6E, 0x6B, 0x20, 0x6F, 0x66, 0x20, 0x73, 0x65, 0x63, 0x6F, 0x6E, 0x64, 0x20, 0x62, 0x61, 0x69, 0x6C, 0x6F, 0x75, 0x74, 0x20, 0x66, 0x6F, 0x72, 0x20, 0x62, 0x61, 0x6E, 0x6B, 0x73, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xF2, 0x05, 0x2A, 0x01, 0x00, 0x00, 0x00, 0x43, 0x41, 0x04, 0x67, 0x8A, 0xFD, 0xB0, 0xFE, 0x55, 0x48, 0x27, 0x19, 0x67, 0xF1, 0xA6, 0x71, 0x30, 0xB7, 0x10, 0x5C, 0xD6, 0xA8, 0x28, 0xE0, 0x39, 0x09, 0xA6, 0x79, 0x62, 0xE0, 0xEA, 0x1F, 0x61, 0xDE, 0xB6, 0x49, 0xF6, 0xBC, 0x3F, 0x4C, 0xEF, 0x38, 0xC4, 0xF3, 0x55, 0x04, 0xE5, 0x1E, 0xC1, 0x12, 0xDE, 0x5C, 0x38, 0x4D, 0xF7, 0xBA, 0x0B, 0x8D, 0x57, 0x8A, 0x4C, 0x70, 0x2B, 0x6B, 0xF1, 0x1D, 0x5F, 0xAC, 0x00, 0x00, 0x00, 0x00}, 285); if (NOT data) return false; uint8_t genesisHash[32] = {0x6F, 0xE2, 0x8C, 0x0A, 0xB6, 0xF1, 0xB3, 0x72, 0xC1, 0xA6, 0xA2, 0x46, 0xAE, 0x63, 0xF7, 0x4F, 0x93, 0x1E, 0x83, 0x65, 0xE1, 0x5A, 0x08, 0x9C, 0x68, 0xD6, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00}; memcpy(self->hash, genesisHash, 32); self->hashSet = true; if (NOT CBInitMessageByData(CBGetMessage(self), data)){ CBReleaseObject(data); CBReleaseObject(self->hash); return false; } CBReleaseObject(data); CBBlockDeserialise(self, true); return true; }
void CBInitPingPongFromData(CBPingPong * self, CBByteArray * data) { CBInitMessageByData(CBGetMessage(self), data); }
bool CBInitTransactionOutputFromData(CBTransactionOutput * self, CBByteArray * data){ self->scriptObject = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }
void CBInitNetworkAddressFromData(CBNetworkAddress * self, CBByteArray * data, bool isPublic){ self->ip = NULL; self->bucketSet = false; CBInitMessageByData(CBGetMessage(self), data); }
void CBInitTransactionInputFromData(CBTransactionInput * self, CBByteArray * data){ self->scriptObject = NULL; self->prevOut.hash = NULL; CBInitMessageByData(CBGetMessage(self), data); }
void CBInitChainDescriptorFromData(CBChainDescriptor * self, CBByteArray * data){ self->hashNum = 0; self->hashes = NULL; CBInitMessageByData(CBGetMessage(self), data); }
void CBInitBlockHeadersFromData(CBBlockHeaders * self, CBByteArray * data){ self->headerNum = 0; CBInitMessageByData(CBGetMessage(self), data); }
bool CBInitInventoryItemFromData(CBInventoryItem * self,CBByteArray * data,void (*logError)(char *,...)){ self->hash = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data, logError)) return false; return true; }
void CBInitNetworkAddressListFromData(CBNetworkAddressList * self, bool timeStamps, CBByteArray * data){ self->timeStamps = timeStamps; self->addrNum = 0; self->addresses = NULL; CBInitMessageByData(CBGetMessage(self), data); }
bool CBInitInventoryItemFromData(CBInventoryItem * self, CBByteArray * data){ self->hash = NULL; if (NOT CBInitMessageByData(CBGetMessage(self), data)) return false; return true; }