mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-12-26 16:45:18 +00:00
29 lines
574 B
Go
29 lines
574 B
Go
|
package multiaddr
|
||
|
|
||
|
import (
|
||
|
"errors"
|
||
|
"math"
|
||
|
|
||
|
"github.com/multiformats/go-varint"
|
||
|
)
|
||
|
|
||
|
// CodeToVarint converts an integer to a varint-encoded []byte
|
||
|
func CodeToVarint(num int) ([]byte, error) {
|
||
|
if num < 0 || num > math.MaxInt32 {
|
||
|
return nil, errors.New("invalid code")
|
||
|
}
|
||
|
return varint.ToUvarint(uint64(num)), nil
|
||
|
}
|
||
|
|
||
|
func ReadVarintCode(b []byte) (int, int, error) {
|
||
|
code, n, err := varint.FromUvarint(b)
|
||
|
if err != nil {
|
||
|
return 0, 0, err
|
||
|
}
|
||
|
if code > math.MaxInt32 {
|
||
|
// we only allow 32bit codes.
|
||
|
return 0, 0, varint.ErrOverflow
|
||
|
}
|
||
|
return int(code), n, err
|
||
|
}
|