Export VarIntSerializeSize function.

This commit exports the VarIntSerializeSize function to provide callers
with an easy method to determine how many bytes it would take to serialize
the passed value as a variable length integer.
This commit is contained in:
Dave Collins 2014-03-03 18:43:09 -06:00
parent 1623818c12
commit b9c21bd518
4 changed files with 8 additions and 14 deletions

View file

@ -325,9 +325,9 @@ func writeVarInt(w io.Writer, pver uint32, val uint64) error {
return err
}
// varIntSerializeSize returns the number of bytes it would take to serialize
// VarIntSerializeSize returns the number of bytes it would take to serialize
// val as a variable length integer.
func varIntSerializeSize(val uint64) int {
func VarIntSerializeSize(val uint64) int {
// The value is small enough to be represented by itself, so it's
// just 1 byte.
if val < 0xfd {

View file

@ -352,9 +352,9 @@ func TestVarIntSerializeSize(t *testing.T) {
t.Logf("Running %d tests", len(tests))
for i, test := range tests {
serializedSize := btcwire.TstVarIntSerializeSize(test.val)
serializedSize := btcwire.VarIntSerializeSize(test.val)
if serializedSize != test.size {
t.Errorf("varIntSerializeSize #%d got: %d, want: %d", i,
t.Errorf("VarIntSerializeSize #%d got: %d, want: %d", i,
serializedSize, test.size)
continue
}

View file

@ -53,12 +53,6 @@ func TstWriteVarInt(w io.Writer, pver uint32, val uint64) error {
return writeVarInt(w, pver, val)
}
// TstVarIntSerializeSize makes the internal varIntSerializeSize function
// available to the test package.
func TstVarIntSerializeSize(val uint64) int {
return varIntSerializeSize(val)
}
// TstReadVarString makes the internal readVarString function available to the
// test package.
func TstReadVarString(r io.Reader, pver uint32) (string, error) {

View file

@ -88,7 +88,7 @@ func (t *TxIn) SerializeSize() int {
// Outpoint Hash 32 bytes + Outpoint Index 4 bytes + Sequence 4 bytes +
// serialized varint size for the length of SignatureScript +
// SignatureScript bytes.
return 40 + varIntSerializeSize(uint64(len(t.SignatureScript))) +
return 40 + VarIntSerializeSize(uint64(len(t.SignatureScript))) +
len(t.SignatureScript)
}
@ -114,7 +114,7 @@ type TxOut struct {
func (t *TxOut) SerializeSize() int {
// Value 8 bytes + serialized varint size for the length of PkScript +
// PkScript bytes.
return 8 + varIntSerializeSize(uint64(len(t.PkScript))) + len(t.PkScript)
return 8 + VarIntSerializeSize(uint64(len(t.PkScript))) + len(t.PkScript)
}
// NewTxOut returns a new bitcoin transaction output with the provided
@ -388,8 +388,8 @@ func (msg *MsgTx) Serialize(w io.Writer) error {
func (msg *MsgTx) SerializeSize() int {
// Version 4 bytes + LockTime 4 bytes + Serialized varint size for the
// number of transaction inputs and outputs.
n := 8 + varIntSerializeSize(uint64(len(msg.TxIn))) +
varIntSerializeSize(uint64(len(msg.TxOut)))
n := 8 + VarIntSerializeSize(uint64(len(msg.TxIn))) +
VarIntSerializeSize(uint64(len(msg.TxOut)))
for _, txIn := range msg.TxIn {
n += txIn.SerializeSize()