bool deser_peer(unsigned int protover, struct peer *peer, struct const_buffer *buf) { peer_free(peer); if (!deser_bp_addr(protover, &peer->addr, buf)) return false; if (!deser_s64(&peer->last_ok, buf)) return false; if (!deser_u32(&peer->n_ok, buf)) return false; if (!deser_s64(&peer->last_fail, buf)) return false; if (!deser_u32(&peer->n_fail, buf)) return false; return true; }
btc_bool btc_tx_out_deserialize(btc_tx_out* tx_out, struct const_buffer* buf) { if (!deser_s64(&tx_out->value, buf)) return false; if (!deser_varstr(&tx_out->script_pubkey, buf)) return false; return true; }
bool deser_msg_version(struct msg_version *mv, struct const_buffer *buf) { memset(mv, 0, sizeof(*mv)); if (!deser_u32(&mv->nVersion, buf)) return false; if (mv->nVersion == 10300) mv->nVersion = 300; if (!deser_u64(&mv->nServices, buf)) return false; if (!deser_s64(&mv->nTime, buf)) return false; if (!deser_bp_addr(MIN_PROTO_VERSION, &mv->addrTo, buf)) return false; if (mv->nVersion >= 106) { if (!deser_bp_addr(MIN_PROTO_VERSION, &mv->addrFrom, buf)) return false; if (!deser_u64(&mv->nonce, buf)) return false; if (!deser_str(mv->strSubVer, buf, sizeof(mv->strSubVer))) return false; if (mv->nVersion >= 209) if (!deser_u32(&mv->nStartingHeight, buf)) return false; } return true; }