github.com/wormhole-foundation/wormhole-explorer/common@v0.0.0-20240604151348-09585b5b97c5/domain/id.go (about) 1 package domain 2 3 import ( 4 "encoding/base64" 5 "fmt" 6 7 gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1" 8 sdk "github.com/wormhole-foundation/wormhole/sdk/vaa" 9 ) 10 11 // CreateUniqueVaaID creates a unique VAA ID based on the message ID and the signing digest. 12 func CreateUniqueVaaID(vaa *sdk.VAA) string { 13 digest := base64.StdEncoding.EncodeToString(vaa.SigningDigest().Bytes()) 14 return fmt.Sprintf("%s/%s", vaa.MessageID(), digest) 15 } 16 17 // CreateUniqueVaaIDByObservation creates a unique VAA ID based on the message ID and the observation hash. 18 func CreateUniqueVaaIDByObservation(obs *gossipv1.SignedObservation) string { 19 digest := base64.StdEncoding.EncodeToString(obs.Hash) 20 return fmt.Sprintf("%s/%s", obs.MessageId, digest) 21 }