089afe41a8
* Allow evm to call native modules through logs Closes #416 comment add txHash parameter review suggestions add hooks test * Update x/evm/keeper/hooks.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update x/evm/keeper/hooks_test.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update x/evm/keeper/keeper.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update x/evm/keeper/keeper.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update x/evm/keeper/keeper.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * use table tests * update adr comment * update adr * changelog * Update CHANGELOG.md Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com>
32 lines
908 B
Go
32 lines
908 B
Go
package keeper
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
|
ethcmn "github.com/ethereum/go-ethereum/common"
|
|
ethtypes "github.com/ethereum/go-ethereum/core/types"
|
|
"github.com/tharsis/ethermint/x/evm/types"
|
|
)
|
|
|
|
var (
|
|
_ types.EvmHooks = MultiEvmHooks{}
|
|
)
|
|
|
|
// MultiEvmHooks combine multiple evm hooks, all hook functions are run in array sequence
|
|
type MultiEvmHooks []types.EvmHooks
|
|
|
|
// NewMultiEvmHooks combine multiple evm hooks
|
|
func NewMultiEvmHooks(hooks ...types.EvmHooks) MultiEvmHooks {
|
|
return hooks
|
|
}
|
|
|
|
// PostTxProcessing delegate the call to underlying hooks
|
|
func (mh MultiEvmHooks) PostTxProcessing(ctx sdk.Context, txHash ethcmn.Hash, logs []*ethtypes.Log) error {
|
|
for i := range mh {
|
|
if err := mh[i].PostTxProcessing(ctx, txHash, logs); err != nil {
|
|
return sdkerrors.Wrapf(err, "EVM hook %T failed", mh[i])
|
|
}
|
|
}
|
|
return nil
|
|
}
|