func NewQdbRecStatic(key qdb.KeyType, dat []byte) *QdbRec { var off, n, i int var u64, idx uint64 binary.LittleEndian.PutUint64(sta_rec.TxID[:8], uint64(key)) copy(sta_rec.TxID[8:], dat[:24]) off = 24 u64, n = btc.VULe(dat[off:]) off += n sta_rec.InBlock = uint32(u64) u64, n = btc.VULe(dat[off:]) off += n sta_rec.Coinbase = (u64 & 1) != 0 u64 >>= 1 if len(rec_outs) < int(u64) { rec_outs = make([]*QdbTxOut, u64) rec_pool = make([]QdbTxOut, u64) } sta_rec.Outs = rec_outs[:u64] for i := range sta_rec.Outs { sta_rec.Outs[i] = nil } for off < len(dat) { idx, n = btc.VULe(dat[off:]) off += n sta_rec.Outs[idx] = &rec_pool[idx] u64, n = btc.VULe(dat[off:]) off += n sta_rec.Outs[idx].Value = uint64(u64) i, n = btc.VLen(dat[off:]) off += n sta_rec.Outs[idx].PKScr = dat[off : off+i] off += i } return &sta_rec }
func NewQdbRec(key qdb.KeyType, dat []byte) *QdbRec { var off, n, i int var u64, idx uint64 var rec QdbRec binary.LittleEndian.PutUint64(rec.TxID[:8], uint64(key)) copy(rec.TxID[8:], dat[:24]) off = 24 u64, n = btc.VULe(dat[off:]) off += n rec.InBlock = uint32(u64) u64, n = btc.VULe(dat[off:]) off += n rec.Coinbase = (u64 & 1) != 0 rec.Outs = make([]*QdbTxOut, u64>>1) for off < len(dat) { idx, n = btc.VULe(dat[off:]) off += n rec.Outs[idx] = new(QdbTxOut) u64, n = btc.VULe(dat[off:]) off += n rec.Outs[idx].Value = uint64(u64) i, n = btc.VLen(dat[off:]) off += n rec.Outs[idx].PKScr = dat[off : off+i] off += i } return &rec }