|
@@ -89,6 +89,18 @@ func (h *Hash) GetHex() string {
|
|
|
// Hashes represents a slice of hashes.
|
|
// Hashes represents a slice of hashes.
|
|
|
type Hashes struct{ hashes []common.Hash }
|
|
type Hashes struct{ hashes []common.Hash }
|
|
|
|
|
|
|
|
|
|
+// NewHashes creates a slice of uninitialized Hashes.
|
|
|
|
|
+func NewHashes(size int) *Hashes {
|
|
|
|
|
+ return &Hashes{
|
|
|
|
|
+ hashes: make([]common.Hash, size),
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// NewHashesEmpty creates an empty slice of Hashes values.
|
|
|
|
|
+func NewHashesEmpty() *Hashes {
|
|
|
|
|
+ return NewHashes(0)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// Size returns the number of hashes in the slice.
|
|
// Size returns the number of hashes in the slice.
|
|
|
func (h *Hashes) Size() int {
|
|
func (h *Hashes) Size() int {
|
|
|
return len(h.hashes)
|
|
return len(h.hashes)
|
|
@@ -102,6 +114,20 @@ func (h *Hashes) Get(index int) (hash *Hash, _ error) {
|
|
|
return &Hash{h.hashes[index]}, nil
|
|
return &Hash{h.hashes[index]}, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// Set sets the Hash at the given index in the slice.
|
|
|
|
|
+func (h *Hashes) Set(index int, hash *Hash) error {
|
|
|
|
|
+ if index < 0 || index >= len(h.hashes) {
|
|
|
|
|
+ return errors.New("index out of bounds")
|
|
|
|
|
+ }
|
|
|
|
|
+ h.hashes[index] = hash.hash
|
|
|
|
|
+ return nil
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Append adds a new Hash element to the end of the slice.
|
|
|
|
|
+func (h *Hashes) Append(hash *Hash) {
|
|
|
|
|
+ h.hashes = append(h.hashes, hash.hash)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// Address represents the 20 byte address of an Ethereum account.
|
|
// Address represents the 20 byte address of an Ethereum account.
|
|
|
type Address struct {
|
|
type Address struct {
|
|
|
address common.Address
|
|
address common.Address
|
|
@@ -164,6 +190,18 @@ func (a *Address) GetHex() string {
|
|
|
// Addresses represents a slice of addresses.
|
|
// Addresses represents a slice of addresses.
|
|
|
type Addresses struct{ addresses []common.Address }
|
|
type Addresses struct{ addresses []common.Address }
|
|
|
|
|
|
|
|
|
|
+// NewAddresses creates a slice of uninitialized addresses.
|
|
|
|
|
+func NewAddresses(size int) *Addresses {
|
|
|
|
|
+ return &Addresses{
|
|
|
|
|
+ addresses: make([]common.Address, size),
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// NewAddressesEmpty creates an empty slice of Addresses values.
|
|
|
|
|
+func NewAddressesEmpty() *Addresses {
|
|
|
|
|
+ return NewAddresses(0)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// Size returns the number of addresses in the slice.
|
|
// Size returns the number of addresses in the slice.
|
|
|
func (a *Addresses) Size() int {
|
|
func (a *Addresses) Size() int {
|
|
|
return len(a.addresses)
|
|
return len(a.addresses)
|
|
@@ -185,3 +223,8 @@ func (a *Addresses) Set(index int, address *Address) error {
|
|
|
a.addresses[index] = address.address
|
|
a.addresses[index] = address.address
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+// Append adds a new address element to the end of the slice.
|
|
|
|
|
+func (a *Addresses) Append(address *Address) {
|
|
|
|
|
+ a.addresses = append(a.addresses, address.address)
|
|
|
|
|
+}
|