func (a Address) Equal(b Address) bool {
	return bytes.Equal(a.b, b.b)
}
Equal returns true if two addresses are identical.
package swarm
import (
	"bytes"
	"encoding"
	"encoding/hex"
	"encoding/json"
	"errors"
	"fmt"
	"golang.org/x/crypto/sha3"
)
const (
	SpanSize                = 8
	SectionSize             = 32
	Branches                = 128
	EncryptedBranches       = Branches / 2
	BmtBranches             = 128
	ChunkSize               = SectionSize * Branches
	HashSize                = 32
	MaxPO             uint8 = 31
	ExtendedPO        uint8 = MaxPO + 5
	MaxBins                 = MaxPO + 1
	ChunkWithSpanSize       = ChunkSize + SpanSize
)
var (
	NewHasher = sha3.NewLegacyKeccak256
)
var (
	ErrInvalidChunk = errors.New("invalid chunk")
)
type Address struct {
	b []byte
}
func NewAddress(b []byte) Address {
	return Address{b: b}
}
func ParseHexAddress(s string) (a Address, err error) {
	b, err := hex.DecodeString(s)
	if err != nil {
		return a, err
	}
	return NewAddress(b), nil
}
func MustParseHexAddress(s string) Address {
	a, err := ParseHexAddress(s)
	if err != nil {
		panic(err)
	}
	return a
}
func (a Address) String() string {
	return hex.EncodeToString(a.b)
}