Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(Datadir string, filename string) string
- func AddressToICAP(a Address) (string, error)
- func AddressToIndirectICAP(a Address, instCode string) (string, error)
- func Big(num string) *big.Int
- func BigCopy(src *big.Int) *big.Int
- func BigD(data []byte) *big.Int
- func BigMax(x, y *big.Int) *big.Int
- func BigMin(x, y *big.Int) *big.Int
- func BigPow(a, b int) *big.Int
- func BigToBytes(num *big.Int, base int) []byte
- func BitTest(num *big.Int, i int) bool
- func ByteSliceToInterface(slice [][]byte) (ret []interface{})
- func Bytes2Big(data []byte) *big.Int
- func Bytes2Hex(d []byte) string
- func BytesToBig(data []byte) *big.Int
- func BytesToNumber(b []byte) uint64
- func Char(c []byte) int
- func CopyBytes(b []byte) (copiedBytes []byte)
- func CurrencyToString(num *big.Int) string
- func Decode(data []byte, pos uint64) (interface{}, uint64)
- func DecodeWithReader(reader *bytes.Buffer) interface{}
- func DefaultDataDir() string
- func DefaultIpcPath() string
- func DeleteFromByteSlice(s [][]byte, hash []byte) [][]byte
- func EmptyHash(h Hash) bool
- func Encode(object interface{}) []byte
- func ExpandHomePath(p string) (path string)
- func FileExist(filePath string) bool
- func FindFileInArchive(fn string, files []*zip.File) (index int)
- func FirstBitSet(v *big.Int) int
- func FormatData(data string) []byte
- func FromHex(s string) []byte
- func HasHexPrefix(str string) bool
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func HomeDir() (home string)
- func IsHex(str string) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func LeftPadString(str string, l int) string
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func NumberToBytes(num interface{}, bits int) []byte
- func PP(value []byte) string
- func ParseData(data ...interface{}) (ret []byte)
- func ReadFile(f *zip.File) ([]byte, error)
- func ReadVarInt(buff []byte) (ret uint64)
- func Report(extra ...interface{})
- func RightPadBytes(slice []byte, l int) []byte
- func RightPadString(str string, l int) string
- func Rlp(encoder RlpEncode) []byte
- func S256(x *big.Int) *big.Int
- func String2Big(num string) *big.Int
- func StringToByteFunc(str string, cb func(str string) []byte) (ret []byte)
- func ToAddress(slice []byte) (addr []byte)
- func ToHex(b []byte) string
- func U256(x *big.Int) *big.Int
- type Address
- type Bytes
- type ExtPackage
- type Hash
- type List
- type Manifest
- type RlpEncodable
- type RlpEncode
- type RlpEncodeDecode
- type RlpEncoder
- type StorageSize
- type Value
- func (self *Value) Add(other interface{}) *Value
- func (val *Value) Append(v interface{}) *Value
- func (val *Value) AppendList() *Value
- func (val *Value) BigInt() *big.Int
- func (val *Value) Byte() byte
- func (val *Value) Bytes() []byte
- func (val *Value) Cmp(o *Value) bool
- func (self *Value) Copy() *Value
- func (self *Value) DecodeRLP(s *rlp.Stream) error
- func (self *Value) DeepCmp(o *Value) bool
- func (self *Value) Div(other interface{}) *Value
- func (self *Value) EncodeRLP(w io.Writer) error
- func (val *Value) Err() error
- func (val *Value) Get(idx int) *Value
- func (val *Value) Int() int64
- func (val *Value) IsEmpty() bool
- func (self *Value) IsErr() bool
- func (val *Value) IsList() bool
- func (val *Value) IsNil() bool
- func (val *Value) IsSlice() bool
- func (val *Value) IsStr() bool
- func (val *Value) Len() int
- func (self *Value) Mul(other interface{}) *Value
- func (val *Value) NewIterator() *ValueIterator
- func (self *Value) Pow(other interface{}) *Value
- func (val *Value) Slice() []interface{}
- func (val *Value) SliceFrom(from int) *Value
- func (val *Value) SliceFromTo(from, to int) *Value
- func (val *Value) SliceTo(to int) *Value
- func (val *Value) Str() string
- func (val *Value) String() string
- func (self *Value) Sub(other interface{}) *Value
- func (val *Value) Type() reflect.Kind
- func (val *Value) Uint() uint64
- type ValueIterator
Constants ¶
const ( RlpEmptyList = 0x80 RlpEmptyStr = 0x40 )
Variables ¶
var ( Big1 = big.NewInt(1) Big2 = big.NewInt(2) Big3 = big.NewInt(3) Big0 = big.NewInt(0) BigTrue = Big1 BigFalse = Big0 Big32 = big.NewInt(32) Big36 = big.NewInt(36) Big97 = big.NewInt(97) Big98 = big.NewInt(98) Big256 = big.NewInt(0xff) Big257 = big.NewInt(257) MaxBig = String2Big("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff") )
Common big integers often used
var ( Base36Chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" ICAPLengthError = errors.New("Invalid ICAP length") ICAPEncodingError = errors.New("Invalid ICAP encoding") ICAPChecksumError = errors.New("Invalid ICAP checksum") ICAPCountryCodeError = errors.New("Invalid ICAP country code") ICAPAssetIdentError = errors.New("Invalid ICAP asset identifier") ICAPInstCodeError = errors.New("Invalid ICAP institution code") ICAPClientIdentError = errors.New("Invalid ICAP client identifier") )
var ( Douglas = BigPow(10, 42) Einstein = BigPow(10, 21) Ether = BigPow(10, 18) Finney = BigPow(10, 15) Szabo = BigPow(10, 12) Shannon = BigPow(10, 9) Babbage = BigPow(10, 6) Ada = BigPow(10, 3) Wei = big.NewInt(1) )
The different number of units
Functions ¶
func AbsolutePath ¶
func AddressToICAP ¶ added in v1.3.1
func AddressToIndirectICAP ¶ added in v1.3.1
TODO: integrate with ICAP namereg when it's available
func BigToBytes ¶ added in v0.9.39
Big to bytes
Returns the bytes of a big integer with the size specified by **base** Attempts to pad the byte array with zeros.
func ByteSliceToInterface ¶ added in v0.9.39
func ByteSliceToInterface(slice [][]byte) (ret []interface{})
func BytesToNumber ¶ added in v0.9.39
Bytes to number
Attempts to cast a byte slice to a unsigned integer
func CurrencyToString ¶ added in v0.9.39
Currency to string Returns a string representing a human readable format
func Decode ¶ added in v0.9.39
TODO Use a bytes.Buffer instead of a raw byte slice. Cleaner code, and use draining instead of seeking the next bytes to read
func DecodeWithReader ¶ added in v0.9.39
func DefaultDataDir ¶ added in v0.9.39
func DefaultDataDir() string
func DefaultIpcPath ¶ added in v0.9.39
func DefaultIpcPath() string
func DeleteFromByteSlice ¶ added in v0.9.39
func ExpandHomePath ¶ added in v0.9.39
func FindFileInArchive ¶ added in v0.9.39
Find file in archive
Returns the index of the given file name if it exists. -1 if file not found
func FirstBitSet ¶ added in v0.9.39
func FormatData ¶ added in v0.9.39
func HasHexPrefix ¶ added in v0.9.39
func Hex2BytesFixed ¶
func LeftPadBytes ¶
func LeftPadString ¶ added in v0.9.39
func MakeName ¶
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 NumberToBytes ¶ added in v0.9.39
Number to bytes
Returns the number in bytes with the specified base
func PP ¶ added in v0.9.39
PP Pretty Prints a byte slice in the following format:
hex(value[:4])...(hex[len(value)-4:])
func ReadFile ¶ added in v0.9.39
Read file
Read a given compressed file and returns the read bytes. Returns an error otherwise
func ReadVarInt ¶ added in v0.9.39
Read variable int
Read a variable length number in big endian byte order
func RightPadBytes ¶
func RightPadString ¶ added in v0.9.39
func String2Big ¶ added in v0.9.39
func StringToByteFunc ¶ added in v0.9.39
Types ¶
type Address ¶
type Address [addressLength]byte
func BigToAddress ¶
func HexToAddress ¶
func ICAPToAddress ¶ added in v1.3.1
func StringToAddress ¶ added in v0.9.39
func (*Address) SetBytes ¶
Sets the address to the value of b. If b is larger than len(a) it will panic
type ExtPackage ¶ added in v0.9.39
External package
External package contains the main html file and manifest
func OpenPackage ¶ added in v0.9.39
func OpenPackage(fn string) (*ExtPackage, error)
Open package
Opens a prepared ethereum package Reads the manifest file and determines file contents and returns and the external package.
type Hash ¶
type Hash [hashLength]byte
func BytesToHash ¶
func StringToHash ¶ added in v0.9.39
type List ¶ added in v0.9.39
type List struct { Length int // contains filtered or unexported fields }
The list type is an anonymous slice handler which can be used for containing any slice type to use in an environment which does not support slice types (e.g., JavaScript, QML)
func NewList ¶ added in v0.9.39
func NewList(t interface{}) *List
Initialise a new list. Panics if non-slice type is given.
func (*List) Append ¶ added in v0.9.39
func (self *List) Append(v interface{})
Appends value at the end of the slice. Panics when incompatible value is given.
type Manifest ¶ added in v0.9.39
Manifest object
The manifest object holds all the relevant information supplied with the the manifest specified in the package
func ReadManifest ¶ added in v0.9.39
Reads manifest
Reads and returns a manifest object. Returns error otherwise
type RlpEncodable ¶ added in v0.9.39
type RlpEncodable interface {
RlpData() interface{}
}
type RlpEncodeDecode ¶ added in v0.9.39
type RlpEncodeDecode interface { RlpEncode RlpValue() []interface{} }
type RlpEncoder ¶ added in v0.9.39
type RlpEncoder struct {
// contains filtered or unexported fields
}
func NewRlpEncoder ¶ added in v0.9.39
func NewRlpEncoder() *RlpEncoder
func (*RlpEncoder) EncodeData ¶ added in v0.9.39
func (coder *RlpEncoder) EncodeData(rlpData interface{}) []byte
type StorageSize ¶
type StorageSize float64
func (StorageSize) Int64 ¶ added in v0.9.39
func (self StorageSize) Int64() int64
func (StorageSize) String ¶
func (self StorageSize) String() string
type Value ¶ added in v0.9.39
type Value struct{ Val interface{} }
Value can hold values of certain basic types and provides ways to convert between types without bothering to check whether the conversion is actually meaningful.
It currently supports the following types:
- int{,8,16,32,64}
- uint{,8,16,32,64}
- *big.Int
- []byte, string
- []interface{}
Value is useful whenever you feel that Go's types limit your ability to express yourself. In these situations, use Value and forget about this strong typing nonsense.
func EmptyValue ¶ added in v0.9.39
func EmptyValue() *Value
func NewValueFromBytes ¶ added in v0.9.39
NewValueFromBytes decodes RLP data. The contained value will be nil if data contains invalid RLP.
func (*Value) AppendList ¶ added in v0.9.39
func (*Value) IsList ¶ added in v0.9.39
Special list checking function. Something is considered a list if it's of type []interface{}. The list is usually used in conjunction with rlp decoded streams.
func (*Value) NewIterator ¶ added in v0.9.39
func (val *Value) NewIterator() *ValueIterator
func (*Value) SliceFromTo ¶ added in v0.9.39
type ValueIterator ¶ added in v0.9.39
type ValueIterator struct {
// contains filtered or unexported fields
}
func (*ValueIterator) Idx ¶ added in v0.9.39
func (it *ValueIterator) Idx() int
func (*ValueIterator) Len ¶ added in v0.9.39
func (it *ValueIterator) Len() int
func (*ValueIterator) Next ¶ added in v0.9.39
func (it *ValueIterator) Next() bool
func (*ValueIterator) Value ¶ added in v0.9.39
func (it *ValueIterator) Value() *Value