|
|
|
@ -5,6 +5,25 @@ type ( |
|
|
|
|
Address [20]byte |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
var ( |
|
|
|
|
zeroHash Hash |
|
|
|
|
zeroAddress Address |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func BytesToHash(b []byte) Hash { |
|
|
|
|
var h Hash |
|
|
|
|
h.SetBytes(b) |
|
|
|
|
return h |
|
|
|
|
} |
|
|
|
|
func StringToHash(s string) Hash { return BytesToHash([]byte(s)) } |
|
|
|
|
|
|
|
|
|
func BytesToAddress(b []byte) Address { |
|
|
|
|
var a Address |
|
|
|
|
a.SetBytes(b) |
|
|
|
|
return a |
|
|
|
|
} |
|
|
|
|
func StringToAddress(s string) Address { return BytesToAddress([]byte(s)) } |
|
|
|
|
|
|
|
|
|
// Don't use the default 'String' method in case we want to overwrite
|
|
|
|
|
|
|
|
|
|
// Get the string representation of the underlying hash
|
|
|
|
@ -24,8 +43,16 @@ func (h Hash) SetBytes(b []byte) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 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 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Get the string representation of the underlying address
|
|
|
|
|
func (a Address) Str() string { |
|
|
|
|
return string(a[:]) |
|
|
|
@ -42,4 +69,13 @@ func (a Address) SetBytes(b []byte) { |
|
|
|
|
a[i] = b[i] |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
func (a Address) SetString(s string) { h.SetBytes([]byte(a)) } |
|
|
|
|
|
|
|
|
|
// 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 |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|