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  }