diff --git a/x/rootupdater/keeper/abci.go b/x/rootupdater/keeper/abci.go index 22dd46ae..6d7442e8 100644 --- a/x/rootupdater/keeper/abci.go +++ b/x/rootupdater/keeper/abci.go @@ -10,9 +10,12 @@ func (k Keeper) EndBlocker(ctx sdk.Context) { params := k.GetParams(ctx) if params.Root == params.LastSignedRoot && params.Root != "" { + k.Logger(ctx).Info("root is not updated. Skipping end block") return } + k.Logger(ctx).Info("root is updated. Operation creating") + // Creating operation to be signed by TSS parties index, err := k.rarimo.CreateRootUpdateOperation(ctx, types.ModuleName, &rarimocoremoduletypes.PassportRootUpdate{ ContractAddress: params.ContractAddress, diff --git a/x/rootupdater/keeper/keeper.go b/x/rootupdater/keeper/keeper.go index 82748759..4dc5b89b 100644 --- a/x/rootupdater/keeper/keeper.go +++ b/x/rootupdater/keeper/keeper.go @@ -57,39 +57,50 @@ func NewKeeper( func (k Keeper) PostTxProcessing(ctx sdk.Context, msg core.Message, receipt *ethtypes.Receipt) error { params := k.GetParams(ctx) + k.Logger(ctx).Error("PostTxProcessing", "msg", msg, "receipt", receipt) + stateV2, err := abi.JSON(strings.NewReader(state.PoseidonSMTABI)) if err != nil { + k.Logger(ctx).Error("failed to marshal poseidon smart abi", "error", err) return err } contractAddress, err := hexutil.Decode(params.ContractAddress) if err != nil { // If return an error here, the whole EVM module won't work - k.Logger(ctx).Debug("failed to decode contract address") + k.Logger(ctx).Info("failed to decode contract address") return nil } // Validating message receiver address (should be our state smart contract) if msg.To() == nil || bytes.Compare(msg.To().Bytes(), contractAddress) != 0 { + k.Logger(ctx).Info("inappropriate contract address") return nil } // https://docs.evmos.org/protocol/modules/evm#posttxprocessing + + if len(receipt.Logs) == 0 { + k.Logger(ctx).Error("logs is empty") + } + for _, log := range receipt.Logs { eventId := log.Topics[0] - event, err := stateV2.EventByID(eventId) if err != nil { + k.Logger(ctx).Error("failed to get event by ID") continue } if event.Name != params.EventName { + k.Logger(ctx).Info("unmatched event: got %s, expected %s", event.Name, params.EventName) continue } eventBody := state.PoseidonSMTRootUpdated{} if err := utils.UnpackLog(stateV2, &eventBody, event.Name, log); err != nil { - return err + k.Logger(ctx).Error("failed to unpack event body") + continue } params.Root = hexutil.Encode(eventBody.Root[:])