func NewAuthKey(publicKey PublicKey) AuthKey {
	hash := sha3.New256()
	hash.Write(publicKey.Bytes())
	if publicKey.IsMulti() {
		hash.Write([]byte{byte(MultiEd25519Key)})
	} else {
		hash.Write([]byte{byte(Ed25519Key)})
	}
	return AuthKey(hash.Sum(nil))
}
NewAuthKey creates AuthKey PublicKey
package diemkeys
import (
	"encoding/hex"
	"github.com/diem/client-sdk-go/diemtypes"
	"golang.org/x/crypto/sha3"
)
type KeyScheme byte
const (
	Ed25519Key      KeyScheme = 0
	MultiEd25519Key KeyScheme = 1
)
type AuthKey []byte
func NewAuthKeyFromString(key string) (AuthKey, error) {
	bytes, err := hex.DecodeString(key)
	if err != nil {
		return nil, err
	}
	return AuthKey(bytes), nil
}
func MustNewAuthKeyFromString(key string) AuthKey {
	ret, err := NewAuthKeyFromString(key)
	if err != nil {
		panic(err)
	}
	return ret
}