From 03363ef896fe0994acb5e921803434f54df50e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Fri, 7 Apr 2017 14:27:17 +0300 Subject: [PATCH] vendor: drop common from vendor as it's part of the API --- .../ethereum/go-ethereum/common/big.go | 30 -- .../ethereum/go-ethereum/common/bytes.go | 111 ------- .../ethereum/go-ethereum/common/debug.go | 52 --- .../ethereum/go-ethereum/common/format.go | 40 --- .../go-ethereum/common/hexutil/hexutil.go | 236 -------------- .../go-ethereum/common/hexutil/json.go | 297 ------------------ .../ethereum/go-ethereum/common/math/big.go | 179 ----------- .../go-ethereum/common/math/integer.go | 99 ------ .../ethereum/go-ethereum/common/path.go | 47 --- .../ethereum/go-ethereum/common/size.go | 37 --- .../ethereum/go-ethereum/common/test_utils.go | 53 ---- .../ethereum/go-ethereum/common/types.go | 208 ------------ .../go-ethereum/common/types_template.go | 64 ---- vendor/vendor.json | 18 -- 14 files changed, 1471 deletions(-) delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/big.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/bytes.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/debug.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/format.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/hexutil/hexutil.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/hexutil/json.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/math/big.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/math/integer.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/path.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/size.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/test_utils.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/types.go delete mode 100644 vendor/github.com/ethereum/go-ethereum/common/types_template.go diff --git a/vendor/github.com/ethereum/go-ethereum/common/big.go b/vendor/github.com/ethereum/go-ethereum/common/big.go deleted file mode 100644 index b552608b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/big.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import "math/big" - -// Common big integers often used -var ( - Big1 = big.NewInt(1) - Big2 = big.NewInt(2) - Big3 = big.NewInt(3) - Big0 = big.NewInt(0) - Big32 = big.NewInt(32) - Big256 = big.NewInt(0xff) - Big257 = big.NewInt(257) -) diff --git a/vendor/github.com/ethereum/go-ethereum/common/bytes.go b/vendor/github.com/ethereum/go-ethereum/common/bytes.go deleted file mode 100644 index 0342083a..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/bytes.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package common contains various helper functions. -package common - -import ( - "encoding/hex" -) - -func ToHex(b []byte) string { - hex := Bytes2Hex(b) - // Prefer output of "0x0" instead of "0x" - if len(hex) == 0 { - hex = "0" - } - return "0x" + hex -} - -func FromHex(s string) []byte { - if len(s) > 1 { - if s[0:2] == "0x" || s[0:2] == "0X" { - s = s[2:] - } - if len(s)%2 == 1 { - s = "0" + s - } - return Hex2Bytes(s) - } - return nil -} - -// Copy bytes -// -// Returns an exact copy of the provided bytes -func CopyBytes(b []byte) (copiedBytes []byte) { - copiedBytes = make([]byte, len(b)) - copy(copiedBytes, b) - - return -} - -func HasHexPrefix(str string) bool { - l := len(str) - return l >= 2 && str[0:2] == "0x" -} - -func IsHex(str string) bool { - l := len(str) - return l >= 4 && l%2 == 0 && str[0:2] == "0x" -} - -func Bytes2Hex(d []byte) string { - return hex.EncodeToString(d) -} - -func Hex2Bytes(str string) []byte { - h, _ := hex.DecodeString(str) - - return h -} - -func Hex2BytesFixed(str string, flen int) []byte { - h, _ := hex.DecodeString(str) - if len(h) == flen { - return h - } else { - if len(h) > flen { - return h[len(h)-flen:] - } else { - hh := make([]byte, flen) - copy(hh[flen-len(h):flen], h[:]) - return hh - } - } -} - -func RightPadBytes(slice []byte, l int) []byte { - if l < len(slice) { - return slice - } - - padded := make([]byte, l) - copy(padded[0:len(slice)], slice) - - return padded -} - -func LeftPadBytes(slice []byte, l int) []byte { - if l < len(slice) { - return slice - } - - padded := make([]byte, l) - copy(padded[l-len(slice):], slice) - - return padded -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/debug.go b/vendor/github.com/ethereum/go-ethereum/common/debug.go deleted file mode 100644 index 61acd8ce..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/debug.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "fmt" - "os" - "runtime" - "runtime/debug" - "strings" -) - -// Report gives off a warning requesting the user to submit an issue to the github tracker. -func Report(extra ...interface{}) { - fmt.Fprintln(os.Stderr, "You've encountered a sought after, hard to reproduce bug. Please report this to the developers <3 https://github.com/ethereum/go-ethereum/issues") - fmt.Fprintln(os.Stderr, extra...) - - _, file, line, _ := runtime.Caller(1) - fmt.Fprintf(os.Stderr, "%v:%v\n", file, line) - - debug.PrintStack() - - fmt.Fprintln(os.Stderr, "#### BUG! PLEASE REPORT ####") -} - -// PrintDepricationWarning prinst the given string in a box using fmt.Println. -func PrintDepricationWarning(str string) { - line := strings.Repeat("#", len(str)+4) - emptyLine := strings.Repeat(" ", len(str)) - fmt.Printf(` -%s -# %s # -# %s # -# %s # -%s - -`, line, emptyLine, str, emptyLine, line) -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/format.go b/vendor/github.com/ethereum/go-ethereum/common/format.go deleted file mode 100644 index fccc2996..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/format.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "fmt" - "regexp" - "strings" - "time" -) - -// PrettyDuration is a pretty printed version of a time.Duration value that cuts -// the unnecessary precision off from the formatted textual representation. -type PrettyDuration time.Duration - -var prettyDurationRe = regexp.MustCompile(`\.[0-9]+`) - -// String implements the Stringer interface, allowing pretty printing of duration -// values rounded to three decimals. -func (d PrettyDuration) String() string { - label := fmt.Sprintf("%v", time.Duration(d)) - if match := prettyDurationRe.FindString(label); len(match) > 4 { - label = strings.Replace(label, match, match[:4], 1) - } - return label -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/hexutil/hexutil.go b/vendor/github.com/ethereum/go-ethereum/common/hexutil/hexutil.go deleted file mode 100644 index 6b128ae3..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/hexutil/hexutil.go +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -/* -Package hexutil implements hex encoding with 0x prefix. -This encoding is used by the Ethereum RPC API to transport binary data in JSON payloads. - -Encoding Rules - -All hex data must have prefix "0x". - -For byte slices, the hex data must be of even length. An empty byte slice -encodes as "0x". - -Integers are encoded using the least amount of digits (no leading zero digits). Their -encoding may be of uneven length. The number zero encodes as "0x0". -*/ -package hexutil - -import ( - "encoding/hex" - "errors" - "fmt" - "math/big" - "strconv" -) - -const uintBits = 32 << (uint64(^uint(0)) >> 63) - -var ( - ErrEmptyString = errors.New("empty hex string") - ErrMissingPrefix = errors.New("missing 0x prefix for hex data") - ErrSyntax = errors.New("invalid hex") - ErrEmptyNumber = errors.New("hex number has no digits after 0x") - ErrLeadingZero = errors.New("hex number has leading zero digits after 0x") - ErrOddLength = errors.New("hex string has odd length") - ErrUint64Range = errors.New("hex number does not fit into 64 bits") - ErrUintRange = fmt.Errorf("hex number does not fit into %d bits", uintBits) - ErrBig256Range = errors.New("hex number does not fit into 256 bits") -) - -// Decode decodes a hex string with 0x prefix. -func Decode(input string) ([]byte, error) { - if len(input) == 0 { - return nil, ErrEmptyString - } - if !has0xPrefix(input) { - return nil, ErrMissingPrefix - } - b, err := hex.DecodeString(input[2:]) - if err != nil { - err = mapError(err) - } - return b, err -} - -// MustDecode decodes a hex string with 0x prefix. It panics for invalid input. -func MustDecode(input string) []byte { - dec, err := Decode(input) - if err != nil { - panic(err) - } - return dec -} - -// Encode encodes b as a hex string with 0x prefix. -func Encode(b []byte) string { - enc := make([]byte, len(b)*2+2) - copy(enc, "0x") - hex.Encode(enc[2:], b) - return string(enc) -} - -// DecodeUint64 decodes a hex string with 0x prefix as a quantity. -func DecodeUint64(input string) (uint64, error) { - raw, err := checkNumber(input) - if err != nil { - return 0, err - } - dec, err := strconv.ParseUint(raw, 16, 64) - if err != nil { - err = mapError(err) - } - return dec, err -} - -// MustDecodeUint64 decodes a hex string with 0x prefix as a quantity. -// It panics for invalid input. -func MustDecodeUint64(input string) uint64 { - dec, err := DecodeUint64(input) - if err != nil { - panic(err) - } - return dec -} - -// EncodeUint64 encodes i as a hex string with 0x prefix. -func EncodeUint64(i uint64) string { - enc := make([]byte, 2, 10) - copy(enc, "0x") - return string(strconv.AppendUint(enc, i, 16)) -} - -var bigWordNibbles int - -func init() { - // This is a weird way to compute the number of nibbles required for big.Word. - // The usual way would be to use constant arithmetic but go vet can't handle that. - b, _ := new(big.Int).SetString("FFFFFFFFFF", 16) - switch len(b.Bits()) { - case 1: - bigWordNibbles = 16 - case 2: - bigWordNibbles = 8 - default: - panic("weird big.Word size") - } -} - -// DecodeBig decodes a hex string with 0x prefix as a quantity. -// Numbers larger than 256 bits are not accepted. -func DecodeBig(input string) (*big.Int, error) { - raw, err := checkNumber(input) - if err != nil { - return nil, err - } - if len(raw) > 64 { - return nil, ErrBig256Range - } - words := make([]big.Word, len(raw)/bigWordNibbles+1) - end := len(raw) - for i := range words { - start := end - bigWordNibbles - if start < 0 { - start = 0 - } - for ri := start; ri < end; ri++ { - nib := decodeNibble(raw[ri]) - if nib == badNibble { - return nil, ErrSyntax - } - words[i] *= 16 - words[i] += big.Word(nib) - } - end = start - } - dec := new(big.Int).SetBits(words) - return dec, nil -} - -// MustDecodeBig decodes a hex string with 0x prefix as a quantity. -// It panics for invalid input. -func MustDecodeBig(input string) *big.Int { - dec, err := DecodeBig(input) - if err != nil { - panic(err) - } - return dec -} - -// EncodeBig encodes bigint as a hex string with 0x prefix. -// The sign of the integer is ignored. -func EncodeBig(bigint *big.Int) string { - nbits := bigint.BitLen() - if nbits == 0 { - return "0x0" - } - return fmt.Sprintf("%#x", bigint) -} - -func has0xPrefix(input string) bool { - return len(input) >= 2 && input[0] == '0' && (input[1] == 'x' || input[1] == 'X') -} - -func checkNumber(input string) (raw string, err error) { - if len(input) == 0 { - return "", ErrEmptyString - } - if !has0xPrefix(input) { - return "", ErrMissingPrefix - } - input = input[2:] - if len(input) == 0 { - return "", ErrEmptyNumber - } - if len(input) > 1 && input[0] == '0' { - return "", ErrLeadingZero - } - return input, nil -} - -const badNibble = ^uint64(0) - -func decodeNibble(in byte) uint64 { - switch { - case in >= '0' && in <= '9': - return uint64(in - '0') - case in >= 'A' && in <= 'F': - return uint64(in - 'A' + 10) - case in >= 'a' && in <= 'f': - return uint64(in - 'a' + 10) - default: - return badNibble - } -} - -func mapError(err error) error { - if err, ok := err.(*strconv.NumError); ok { - switch err.Err { - case strconv.ErrRange: - return ErrUint64Range - case strconv.ErrSyntax: - return ErrSyntax - } - } - if _, ok := err.(hex.InvalidByteError); ok { - return ErrSyntax - } - if err == hex.ErrLength { - return ErrOddLength - } - return err -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/hexutil/json.go b/vendor/github.com/ethereum/go-ethereum/common/hexutil/json.go deleted file mode 100644 index 1bc1d014..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/hexutil/json.go +++ /dev/null @@ -1,297 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package hexutil - -import ( - "encoding/hex" - "errors" - "fmt" - "math/big" - "strconv" -) - -var ( - textZero = []byte(`0x0`) - errNonString = errors.New("cannot unmarshal non-string as hex data") -) - -// Bytes marshals/unmarshals as a JSON string with 0x prefix. -// The empty slice marshals as "0x". -type Bytes []byte - -// MarshalText implements encoding.TextMarshaler -func (b Bytes) MarshalText() ([]byte, error) { - result := make([]byte, len(b)*2+2) - copy(result, `0x`) - hex.Encode(result[2:], b) - return result, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (b *Bytes) UnmarshalJSON(input []byte) error { - if !isString(input) { - return errNonString - } - return b.UnmarshalText(input[1 : len(input)-1]) -} - -// UnmarshalText implements encoding.TextUnmarshaler. -func (b *Bytes) UnmarshalText(input []byte) error { - raw, err := checkText(input, true) - if err != nil { - return err - } - dec := make([]byte, len(raw)/2) - if _, err = hex.Decode(dec, raw); err != nil { - err = mapError(err) - } else { - *b = dec - } - return err -} - -// String returns the hex encoding of b. -func (b Bytes) String() string { - return Encode(b) -} - -// UnmarshalFixedText decodes the input as a string with 0x prefix. The length of out -// determines the required input length. This function is commonly used to implement the -// UnmarshalText method for fixed-size types. -func UnmarshalFixedText(typname string, input, out []byte) error { - raw, err := checkText(input, true) - if err != nil { - return err - } - if len(raw)/2 != len(out) { - return fmt.Errorf("hex string has length %d, want %d for %s", len(raw), len(out)*2, typname) - } - // Pre-verify syntax before modifying out. - for _, b := range raw { - if decodeNibble(b) == badNibble { - return ErrSyntax - } - } - hex.Decode(out, raw) - return nil -} - -// UnmarshalFixedUnprefixedText decodes the input as a string with optional 0x prefix. The -// length of out determines the required input length. This function is commonly used to -// implement the UnmarshalText method for fixed-size types. -func UnmarshalFixedUnprefixedText(typname string, input, out []byte) error { - raw, err := checkText(input, false) - if err != nil { - return err - } - if len(raw)/2 != len(out) { - return fmt.Errorf("hex string has length %d, want %d for %s", len(raw), len(out)*2, typname) - } - // Pre-verify syntax before modifying out. - for _, b := range raw { - if decodeNibble(b) == badNibble { - return ErrSyntax - } - } - hex.Decode(out, raw) - return nil -} - -// Big marshals/unmarshals as a JSON string with 0x prefix. -// The zero value marshals as "0x0". -// -// Negative integers are not supported at this time. Attempting to marshal them will -// return an error. Values larger than 256bits are rejected by Unmarshal but will be -// marshaled without error. -type Big big.Int - -// MarshalText implements encoding.TextMarshaler -func (b Big) MarshalText() ([]byte, error) { - return []byte(EncodeBig((*big.Int)(&b))), nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (b *Big) UnmarshalJSON(input []byte) error { - if !isString(input) { - return errNonString - } - return b.UnmarshalText(input[1 : len(input)-1]) -} - -// UnmarshalText implements encoding.TextUnmarshaler -func (b *Big) UnmarshalText(input []byte) error { - raw, err := checkNumberText(input) - if err != nil { - return err - } - if len(raw) > 64 { - return ErrBig256Range - } - words := make([]big.Word, len(raw)/bigWordNibbles+1) - end := len(raw) - for i := range words { - start := end - bigWordNibbles - if start < 0 { - start = 0 - } - for ri := start; ri < end; ri++ { - nib := decodeNibble(raw[ri]) - if nib == badNibble { - return ErrSyntax - } - words[i] *= 16 - words[i] += big.Word(nib) - } - end = start - } - var dec big.Int - dec.SetBits(words) - *b = (Big)(dec) - return nil -} - -// ToInt converts b to a big.Int. -func (b *Big) ToInt() *big.Int { - return (*big.Int)(b) -} - -// String returns the hex encoding of b. -func (b *Big) String() string { - return EncodeBig(b.ToInt()) -} - -// Uint64 marshals/unmarshals as a JSON string with 0x prefix. -// The zero value marshals as "0x0". -type Uint64 uint64 - -// MarshalText implements encoding.TextMarshaler. -func (b Uint64) MarshalText() ([]byte, error) { - buf := make([]byte, 2, 10) - copy(buf, `0x`) - buf = strconv.AppendUint(buf, uint64(b), 16) - return buf, nil -} - -// UnmarshalJSON implements json.Unmarshaler. -func (b *Uint64) UnmarshalJSON(input []byte) error { - if !isString(input) { - return errNonString - } - return b.UnmarshalText(input[1 : len(input)-1]) -} - -// UnmarshalText implements encoding.TextUnmarshaler -func (b *Uint64) UnmarshalText(input []byte) error { - raw, err := checkNumberText(input) - if err != nil { - return err - } - if len(raw) > 16 { - return ErrUint64Range - } - var dec uint64 - for _, byte := range raw { - nib := decodeNibble(byte) - if nib == badNibble { - return ErrSyntax - } - dec *= 16 - dec += uint64(nib) - } - *b = Uint64(dec) - return nil -} - -// String returns the hex encoding of b. -func (b Uint64) String() string { - return EncodeUint64(uint64(b)) -} - -// Uint marshals/unmarshals as a JSON string with 0x prefix. -// The zero value marshals as "0x0". -type Uint uint - -// MarshalText implements encoding.TextMarshaler. -func (b Uint) MarshalText() ([]byte, error) { - return Uint64(b).MarshalText() -} - -// UnmarshalJSON implements json.Unmarshaler. -func (b *Uint) UnmarshalJSON(input []byte) error { - if !isString(input) { - return errNonString - } - return b.UnmarshalText(input[1 : len(input)-1]) -} - -// UnmarshalText implements encoding.TextUnmarshaler. -func (b *Uint) UnmarshalText(input []byte) error { - var u64 Uint64 - err := u64.UnmarshalText(input) - if u64 > Uint64(^uint(0)) || err == ErrUint64Range { - return ErrUintRange - } else if err != nil { - return err - } - *b = Uint(u64) - return nil -} - -// String returns the hex encoding of b. -func (b Uint) String() string { - return EncodeUint64(uint64(b)) -} - -func isString(input []byte) bool { - return len(input) >= 2 && input[0] == '"' && input[len(input)-1] == '"' -} - -func bytesHave0xPrefix(input []byte) bool { - return len(input) >= 2 && input[0] == '0' && (input[1] == 'x' || input[1] == 'X') -} - -func checkText(input []byte, wantPrefix bool) ([]byte, error) { - if len(input) == 0 { - return nil, nil // empty strings are allowed - } - if bytesHave0xPrefix(input) { - input = input[2:] - } else if wantPrefix { - return nil, ErrMissingPrefix - } - if len(input)%2 != 0 { - return nil, ErrOddLength - } - return input, nil -} - -func checkNumberText(input []byte) (raw []byte, err error) { - if len(input) == 0 { - return nil, nil // empty strings are allowed - } - if !bytesHave0xPrefix(input) { - return nil, ErrMissingPrefix - } - input = input[2:] - if len(input) == 0 { - return nil, ErrEmptyNumber - } - if len(input) > 1 && input[0] == '0' { - return nil, ErrLeadingZero - } - return input, nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/math/big.go b/vendor/github.com/ethereum/go-ethereum/common/math/big.go deleted file mode 100644 index 0b67a1b5..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/math/big.go +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// Package math provides integer math utilities. -package math - -import ( - "fmt" - "math/big" -) - -var ( - tt255 = BigPow(2, 255) - tt256 = BigPow(2, 256) - tt256m1 = new(big.Int).Sub(tt256, big.NewInt(1)) - MaxBig256 = new(big.Int).Set(tt256m1) -) - -const ( - // number of bits in a big.Word - wordBits = 32 << (uint64(^big.Word(0)) >> 63) - // number of bytes in a big.Word - wordBytes = wordBits / 8 -) - -// HexOrDecimal256 marshals big.Int as hex or decimal. -type HexOrDecimal256 big.Int - -// UnmarshalText implements encoding.TextUnmarshaler. -func (i *HexOrDecimal256) UnmarshalText(input []byte) error { - bigint, ok := ParseBig256(string(input)) - if !ok { - return fmt.Errorf("invalid hex or decimal integer %q", input) - } - *i = HexOrDecimal256(*bigint) - return nil -} - -// MarshalText implements encoding.TextMarshaler. -func (i *HexOrDecimal256) MarshalText() ([]byte, error) { - return []byte(fmt.Sprintf("%#x", (*big.Int)(i))), nil -} - -// ParseBig256 parses s as a 256 bit integer in decimal or hexadecimal syntax. -// Leading zeros are accepted. The empty string parses as zero. -func ParseBig256(s string) (*big.Int, bool) { - if s == "" { - return new(big.Int), true - } - var bigint *big.Int - var ok bool - if len(s) >= 2 && (s[:2] == "0x" || s[:2] == "0X") { - bigint, ok = new(big.Int).SetString(s[2:], 16) - } else { - bigint, ok = new(big.Int).SetString(s, 10) - } - if ok && bigint.BitLen() > 256 { - bigint, ok = nil, false - } - return bigint, ok -} - -// MustParseBig parses s as a 256 bit big integer and panics if the string is invalid. -func MustParseBig256(s string) *big.Int { - v, ok := ParseBig256(s) - if !ok { - panic("invalid 256 bit integer: " + s) - } - return v -} - -// BigPow returns a ** b as a big integer. -func BigPow(a, b int64) *big.Int { - r := big.NewInt(a) - return r.Exp(r, big.NewInt(b), nil) -} - -// BigMax returns the larger of x or y. -func BigMax(x, y *big.Int) *big.Int { - if x.Cmp(y) < 0 { - return y - } - return x -} - -// BigMin returns the smaller of x or y. -func BigMin(x, y *big.Int) *big.Int { - if x.Cmp(y) > 0 { - return y - } - return x -} - -// FirstBitSet returns the index of the first 1 bit in v, counting from LSB. -func FirstBitSet(v *big.Int) int { - for i := 0; i < v.BitLen(); i++ { - if v.Bit(i) > 0 { - return i - } - } - return v.BitLen() -} - -// PaddedBigBytes encodes a big integer as a big-endian byte slice. The length -// of the slice is at least n bytes. -func PaddedBigBytes(bigint *big.Int, n int) []byte { - if bigint.BitLen()/8 >= n { - return bigint.Bytes() - } - ret := make([]byte, n) - ReadBits(bigint, ret) - return ret -} - -// ReadBits encodes the absolute value of bigint as big-endian bytes. Callers must ensure -// that buf has enough space. If buf is too short the result will be incomplete. -func ReadBits(bigint *big.Int, buf []byte) { - i := len(buf) - for _, d := range bigint.Bits() { - for j := 0; j < wordBytes && i > 0; j++ { - i-- - buf[i] = byte(d) - d >>= 8 - } - } -} - -// U256 encodes as a 256 bit two's complement number. This operation is destructive. -func U256(x *big.Int) *big.Int { - return x.And(x, tt256m1) -} - -// S256 interprets x as a two's complement number. -// x must not exceed 256 bits (the result is undefined if it does) and is not modified. -// -// S256(0) = 0 -// S256(1) = 1 -// S256(2**255) = -2**255 -// S256(2**256-1) = -1 -func S256(x *big.Int) *big.Int { - if x.Cmp(tt255) < 0 { - return x - } else { - return new(big.Int).Sub(x, tt256) - } -} - -// Exp implements exponentiation by squaring. -// Exp returns a newly-allocated big integer and does not change -// base or exponent. The result is truncated to 256 bits. -// -// Courtesy @karalabe and @chfast -func Exp(base, exponent *big.Int) *big.Int { - result := big.NewInt(1) - - for _, word := range exponent.Bits() { - for i := 0; i < wordBits; i++ { - if word&1 == 1 { - U256(result.Mul(result, base)) - } - U256(base.Mul(base, base)) - word >>= 1 - } - } - return result -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/math/integer.go b/vendor/github.com/ethereum/go-ethereum/common/math/integer.go deleted file mode 100644 index 7eff4d3b..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/math/integer.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2017 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package math - -import ( - "fmt" - "strconv" -) - -const ( - // Integer limit values. - MaxInt8 = 1<<7 - 1 - MinInt8 = -1 << 7 - MaxInt16 = 1<<15 - 1 - MinInt16 = -1 << 15 - MaxInt32 = 1<<31 - 1 - MinInt32 = -1 << 31 - MaxInt64 = 1<<63 - 1 - MinInt64 = -1 << 63 - MaxUint8 = 1<<8 - 1 - MaxUint16 = 1<<16 - 1 - MaxUint32 = 1<<32 - 1 - MaxUint64 = 1<<64 - 1 -) - -// HexOrDecimal64 marshals uint64 as hex or decimal. -type HexOrDecimal64 uint64 - -// UnmarshalText implements encoding.TextUnmarshaler. -func (i *HexOrDecimal64) UnmarshalText(input []byte) error { - int, ok := ParseUint64(string(input)) - if !ok { - return fmt.Errorf("invalid hex or decimal integer %q", input) - } - *i = HexOrDecimal64(int) - return nil -} - -// MarshalText implements encoding.TextMarshaler. -func (i HexOrDecimal64) MarshalText() ([]byte, error) { - return []byte(fmt.Sprintf("%#x", uint64(i))), nil -} - -// ParseUint64 parses s as an integer in decimal or hexadecimal syntax. -// Leading zeros are accepted. The empty string parses as zero. -func ParseUint64(s string) (uint64, bool) { - if s == "" { - return 0, true - } - if len(s) >= 2 && (s[:2] == "0x" || s[:2] == "0X") { - v, err := strconv.ParseUint(s[2:], 16, 64) - return v, err == nil - } - v, err := strconv.ParseUint(s, 10, 64) - return v, err == nil -} - -// MustParseUint64 parses s as an integer and panics if the string is invalid. -func MustParseUint64(s string) uint64 { - v, ok := ParseUint64(s) - if !ok { - panic("invalid unsigned 64 bit integer: " + s) - } - return v -} - -// NOTE: The following methods need to be optimised using either bit checking or asm - -// SafeSub returns subtraction result and whether overflow occurred. -func SafeSub(x, y uint64) (uint64, bool) { - return x - y, x < y -} - -// SafeAdd returns the result and whether overflow occurred. -func SafeAdd(x, y uint64) (uint64, bool) { - return x + y, y > MaxUint64-x -} - -// SafeMul returns multiplication result and whether overflow occurred. -func SafeMul(x, y uint64) (uint64, bool) { - if x == 0 || y == 0 { - return 0, false - } - return x * y, y > MaxUint64/x -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/path.go b/vendor/github.com/ethereum/go-ethereum/common/path.go deleted file mode 100644 index bd8da86e..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/path.go +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "fmt" - "os" - "path/filepath" - "runtime" -) - -// MakeName creates a node name that follows the ethereum convention -// for such names. It adds the operation system name and Go runtime version -// the name. -func MakeName(name, version string) string { - return fmt.Sprintf("%s/v%s/%s/%s", name, version, runtime.GOOS, runtime.Version()) -} - -func FileExist(filePath string) bool { - _, err := os.Stat(filePath) - if err != nil && os.IsNotExist(err) { - return false - } - - return true -} - -func AbsolutePath(Datadir string, filename string) string { - if filepath.IsAbs(filename) { - return filename - } - return filepath.Join(Datadir, filename) -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/size.go b/vendor/github.com/ethereum/go-ethereum/common/size.go deleted file mode 100644 index c5a0cb0f..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/size.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "fmt" -) - -type StorageSize float64 - -func (self StorageSize) String() string { - if self > 1000000 { - return fmt.Sprintf("%.2f mB", self/1000000) - } else if self > 1000 { - return fmt.Sprintf("%.2f kB", self/1000) - } else { - return fmt.Sprintf("%.2f B", self) - } -} - -func (self StorageSize) Int64() int64 { - return int64(self) -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/test_utils.go b/vendor/github.com/ethereum/go-ethereum/common/test_utils.go deleted file mode 100644 index a848642f..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/test_utils.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "encoding/json" - "fmt" - "io/ioutil" -) - -// LoadJSON reads the given file and unmarshals its content. -func LoadJSON(file string, val interface{}) error { - content, err := ioutil.ReadFile(file) - if err != nil { - return err - } - if err := json.Unmarshal(content, val); err != nil { - if syntaxerr, ok := err.(*json.SyntaxError); ok { - line := findLine(content, syntaxerr.Offset) - return fmt.Errorf("JSON syntax error at %v:%v: %v", file, line, err) - } - return fmt.Errorf("JSON unmarshal error in %v: %v", file, err) - } - return nil -} - -// findLine returns the line number for the given offset into data. -func findLine(data []byte, offset int64) (line int) { - line = 1 - for i, r := range string(data) { - if int64(i) >= offset { - return - } - if r == '\n' { - line++ - } - } - return -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/types.go b/vendor/github.com/ethereum/go-ethereum/common/types.go deleted file mode 100644 index 05288bf4..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/types.go +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -package common - -import ( - "encoding/hex" - "fmt" - "math/big" - "math/rand" - "reflect" - - "github.com/ethereum/go-ethereum/common/hexutil" -) - -const ( - HashLength = 32 - AddressLength = 20 -) - -// Hash represents the 32 byte Keccak256 hash of arbitrary data. -type Hash [HashLength]byte - -func BytesToHash(b []byte) Hash { - var h Hash - h.SetBytes(b) - return h -} -func StringToHash(s string) Hash { return BytesToHash([]byte(s)) } -func BigToHash(b *big.Int) Hash { return BytesToHash(b.Bytes()) } -func HexToHash(s string) Hash { return BytesToHash(FromHex(s)) } - -// Get the string representation of the underlying hash -func (h Hash) Str() string { return string(h[:]) } -func (h Hash) Bytes() []byte { return h[:] } -func (h Hash) Big() *big.Int { return new(big.Int).SetBytes(h[:]) } -func (h Hash) Hex() string { return hexutil.Encode(h[:]) } - -// TerminalString implements log.TerminalStringer, formatting a string for console -// output during logging. -func (h Hash) TerminalString() string { - return fmt.Sprintf("%x…%x", h[:3], h[29:]) -} - -// String implements the stringer interface and is used also by the logger when -// doing full logging into a file. -func (h Hash) String() string { - return h.Hex() -} - -// Format implements fmt.Formatter, forcing the byte slice to be formatted as is, -// without going through the stringer interface used for logging. -func (h Hash) Format(s fmt.State, c rune) { - fmt.Fprintf(s, "%"+string(c), h[:]) -} - -// UnmarshalText parses a hash in hex syntax. -func (h *Hash) UnmarshalText(input []byte) error { - return hexutil.UnmarshalFixedText("Hash", input, h[:]) -} - -// MarshalText returns the hex representation of h. -func (h Hash) MarshalText() ([]byte, error) { - return hexutil.Bytes(h[:]).MarshalText() -} - -// Sets the hash to the value of b. If b is larger than len(h) it will panic -func (h *Hash) SetBytes(b []byte) { - if len(b) > len(h) { - b = b[len(b)-HashLength:] - } - - copy(h[HashLength-len(b):], b) -} - -// Set string `s` to h. If s is larger than len(h) it will panic -func (h *Hash) SetString(s string) { h.SetBytes([]byte(s)) } - -// Sets h to other -func (h *Hash) Set(other Hash) { - for i, v := range other { - h[i] = v - } -} - -// Generate implements testing/quick.Generator. -func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value { - m := rand.Intn(len(h)) - for i := len(h) - 1; i > m; i-- { - h[i] = byte(rand.Uint32()) - } - return reflect.ValueOf(h) -} - -func EmptyHash(h Hash) bool { - return h == Hash{} -} - -// UnprefixedHash allows marshaling a Hash without 0x prefix. -type UnprefixedHash Hash - -// UnmarshalText decodes the hash from hex. The 0x prefix is optional. -func (h *UnprefixedHash) UnmarshalText(input []byte) error { - return hexutil.UnmarshalFixedUnprefixedText("UnprefixedHash", input, h[:]) -} - -// MarshalText encodes the hash as hex. -func (h UnprefixedHash) MarshalText() ([]byte, error) { - return []byte(hex.EncodeToString(h[:])), nil -} - -/////////// Address - -// Address represents the 20 byte address of an Ethereum account. -type Address [AddressLength]byte - -func BytesToAddress(b []byte) Address { - var a Address - a.SetBytes(b) - return a -} -func StringToAddress(s string) Address { return BytesToAddress([]byte(s)) } -func BigToAddress(b *big.Int) Address { return BytesToAddress(b.Bytes()) } -func HexToAddress(s string) Address { return BytesToAddress(FromHex(s)) } - -// IsHexAddress verifies whether a string can represent a valid hex-encoded -// Ethereum address or not. -func IsHexAddress(s string) bool { - if len(s) == 2+2*AddressLength && IsHex(s) { - return true - } - if len(s) == 2*AddressLength && IsHex("0x"+s) { - return true - } - return false -} - -// Get the string representation of the underlying address -func (a Address) Str() string { return string(a[:]) } -func (a Address) Bytes() []byte { return a[:] } -func (a Address) Big() *big.Int { return new(big.Int).SetBytes(a[:]) } -func (a Address) Hash() Hash { return BytesToHash(a[:]) } -func (a Address) Hex() string { return hexutil.Encode(a[:]) } - -// String implements the stringer interface and is used also by the logger. -func (a Address) String() string { - return a.Hex() -} - -// Format implements fmt.Formatter, forcing the byte slice to be formatted as is, -// without going through the stringer interface used for logging. -func (a Address) Format(s fmt.State, c rune) { - fmt.Fprintf(s, "%"+string(c), a[:]) -} - -// Sets the address to the value of b. If b is larger than len(a) it will panic -func (a *Address) SetBytes(b []byte) { - if len(b) > len(a) { - b = b[len(b)-AddressLength:] - } - copy(a[AddressLength-len(b):], b) -} - -// Set string `s` to a. If s is larger than len(a) it will panic -func (a *Address) SetString(s string) { a.SetBytes([]byte(s)) } - -// Sets a to other -func (a *Address) Set(other Address) { - for i, v := range other { - a[i] = v - } -} - -// MarshalText returns the hex representation of a. -func (a Address) MarshalText() ([]byte, error) { - return hexutil.Bytes(a[:]).MarshalText() -} - -// UnmarshalText parses a hash in hex syntax. -func (a *Address) UnmarshalText(input []byte) error { - return hexutil.UnmarshalFixedText("Address", input, a[:]) -} - -// UnprefixedHash allows marshaling an Address without 0x prefix. -type UnprefixedAddress Address - -// UnmarshalText decodes the address from hex. The 0x prefix is optional. -func (a *UnprefixedAddress) UnmarshalText(input []byte) error { - return hexutil.UnmarshalFixedUnprefixedText("UnprefixedAddress", input, a[:]) -} - -// MarshalText encodes the address as hex. -func (a UnprefixedAddress) MarshalText() ([]byte, error) { - return []byte(hex.EncodeToString(a[:])), nil -} diff --git a/vendor/github.com/ethereum/go-ethereum/common/types_template.go b/vendor/github.com/ethereum/go-ethereum/common/types_template.go deleted file mode 100644 index 9a8f2997..00000000 --- a/vendor/github.com/ethereum/go-ethereum/common/types_template.go +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2015 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see . - -// +build none -//sed -e 's/_N_/Hash/g' -e 's/_S_/32/g' -e '1d' types_template.go | gofmt -w hash.go - -package common - -import "math/big" - -type _N_ [_S_]byte - -func BytesTo_N_(b []byte) _N_ { - var h _N_ - h.SetBytes(b) - return h -} -func StringTo_N_(s string) _N_ { return BytesTo_N_([]byte(s)) } -func BigTo_N_(b *big.Int) _N_ { return BytesTo_N_(b.Bytes()) } -func HexTo_N_(s string) _N_ { return BytesTo_N_(FromHex(s)) } - -// Don't use the default 'String' method in case we want to overwrite - -// Get the string representation of the underlying hash -func (h _N_) Str() string { return string(h[:]) } -func (h _N_) Bytes() []byte { return h[:] } -func (h _N_) Big() *big.Int { return new(big.Int).SetBytes(h[:]) } -func (h _N_) Hex() string { return "0x" + Bytes2Hex(h[:]) } - -// Sets the hash to the value of b. If b is larger than len(h) it will panic -func (h *_N_) SetBytes(b []byte) { - // Use the right most bytes - if len(b) > len(h) { - b = b[len(b)-_S_:] - } - - // Reverse the loop - for i := len(b) - 1; i >= 0; i-- { - h[_S_-len(b)+i] = b[i] - } -} - -// Set string `s` to h. If s is larger than len(h) it will panic -func (h *_N_) SetString(s string) { h.SetBytes([]byte(s)) } - -// Sets h to other -func (h *_N_) Set(other _N_) { - for i, v := range other { - h[i] = v - } -} diff --git a/vendor/vendor.json b/vendor/vendor.json index d5f0fc21..ec1d635c 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -8,24 +8,6 @@ "revision": "4b348c1d33373d672edd83fc576892d0e46686d2", "revisionTime": "2017-03-22T18:48:02Z" }, - { - "checksumSHA1": "kNzV1C05L06KodIVQqiDdUKvyhs=", - "path": "github.com/ethereum/go-ethereum/common", - "revision": "cc13d576f07fb6803e09fb42880591a67b8b0ef6", - "revisionTime": "2017-04-07T08:03:11Z" - }, - { - "checksumSHA1": "NIN7nslnw4fUJlVcuxf5anvxAKQ=", - "path": "github.com/ethereum/go-ethereum/common/hexutil", - "revision": "cc13d576f07fb6803e09fb42880591a67b8b0ef6", - "revisionTime": "2017-04-07T08:03:11Z" - }, - { - "checksumSHA1": "bjgs3560KVbG7FymmpyvBNg64ME=", - "path": "github.com/ethereum/go-ethereum/common/math", - "revision": "cc13d576f07fb6803e09fb42880591a67b8b0ef6", - "revisionTime": "2017-04-07T08:03:11Z" - }, { "checksumSHA1": "exEIOkzQrq9M+59RLaXEwhDxGUo=", "path": "github.com/ethereum/go-ethereum/crypto",