func (this *State) ExchangeRateAuthorityIsValid(e interfaces.IEBEntry) bool { // convert the conf quthority address into a authorityAddress := base58.Decode(this.ExchangeRateAuthorityAddress) ecPubPrefix := []byte{0x59, 0x2a} if !bytes.Equal(authorityAddress[:2], ecPubPrefix) { fmt.Errorf("Invalid Entry Credit Private Address") return false } pub := new([32]byte) copy(pub[:], authorityAddress[2:34]) // in case verify can't handle empty public key if this.ExchangeRateAuthorityAddress == "" { return false } sig := new([64]byte) externalIds := e.ExternalIDs() // check for number of ext ids if len(externalIds) < 1 { return false } copy(sig[:], externalIds[0]) // First ext id needs to be the signature of the content if !ed.VerifyCanonical(pub, e.GetContent(), sig) { return false } return true }