Node: Fix Injective watcher decode failures (#3057)

* Node: Fix Injective watcher decode failures

Change-Id: Ie85267d07c54a4b5f76bb09483596f4d2d5f07a9

* Address review comment

Change-Id: I3295870914c86f00b5ef2a46ddd2c88e4a4ef1e5
This commit is contained in:
bruce-riley 2023-06-07 15:50:14 -05:00 committed by GitHub
parent ba96f02279
commit f5f5817015
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 18 additions and 9 deletions

View File

@ -334,6 +334,8 @@ func (e *Watcher) Run(ctx context.Context) error {
}
func EventsToMessagePublications(contract string, txHash string, events []gjson.Result, logger *zap.Logger, chainID vaa.ChainID, contractAddressKey string) []*common.MessagePublication {
// Injective does not base64 encode parameters (as of release v1.11.2).
b64Encoded := chainID != vaa.ChainIDInjective
networkName := chainID.String()
msgs := make([]*common.MessagePublication, 0, len(events))
for _, event := range events {
@ -373,15 +375,22 @@ func EventsToMessagePublications(contract string, txHash string, events []gjson.
continue
}
key, err := base64.StdEncoding.DecodeString(keyBase.String())
if err != nil {
logger.Warn("event key attribute is invalid", zap.String("network", networkName), zap.String("tx_hash", txHash), zap.String("key", keyBase.String()))
continue
}
value, err := base64.StdEncoding.DecodeString(valueBase.String())
if err != nil {
logger.Warn("event value attribute is invalid", zap.String("network", networkName), zap.String("tx_hash", txHash), zap.String("key", keyBase.String()), zap.String("value", valueBase.String()))
continue
var key, value []byte
if b64Encoded {
var err error
key, err = base64.StdEncoding.DecodeString(keyBase.String())
if err != nil {
logger.Warn("event key attribute is invalid", zap.String("network", networkName), zap.String("tx_hash", txHash), zap.String("key", keyBase.String()))
continue
}
value, err = base64.StdEncoding.DecodeString(valueBase.String())
if err != nil {
logger.Warn("event value attribute is invalid", zap.String("network", networkName), zap.String("tx_hash", txHash), zap.String("key", keyBase.String()), zap.String("value", valueBase.String()))
continue
}
} else {
key = []byte(keyBase.String())
value = []byte(valueBase.String())
}
if _, ok := mappedAttributes[string(key)]; ok {