26c5eabb18
* add additional linters * fixes * rm action
71 lines
2.0 KiB
Go
71 lines
2.0 KiB
Go
package types
|
|
|
|
import (
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
|
"github.com/cosmos/cosmos-sdk/types/msgservice"
|
|
proto "github.com/gogo/protobuf/proto"
|
|
)
|
|
|
|
var ModuleCdc = codec.NewProtoCodec(codectypes.NewInterfaceRegistry())
|
|
|
|
type (
|
|
ExtensionOptionsEthereumTxI interface{}
|
|
)
|
|
|
|
// RegisterInterfaces registers the client interfaces to protobuf Any.
|
|
func RegisterInterfaces(registry codectypes.InterfaceRegistry) {
|
|
registry.RegisterImplementations(
|
|
(*sdk.Msg)(nil),
|
|
&MsgEthereumTx{},
|
|
)
|
|
registry.RegisterInterface(
|
|
"ethermint.evm.v1.ExtensionOptionsEthereumTx",
|
|
(*ExtensionOptionsEthereumTxI)(nil),
|
|
&ExtensionOptionsEthereumTx{},
|
|
)
|
|
registry.RegisterInterface(
|
|
"ethermint.evm.v1.TxData",
|
|
(*TxData)(nil),
|
|
&DynamicFeeTx{},
|
|
&AccessListTx{},
|
|
&LegacyTx{},
|
|
)
|
|
|
|
msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
|
|
}
|
|
|
|
// PackClientState constructs a new Any packed with the given tx data value. It returns
|
|
// an error if the client state can't be casted to a protobuf message or if the concrete
|
|
// implemention is not registered to the protobuf codec.
|
|
func PackTxData(txData TxData) (*codectypes.Any, error) {
|
|
msg, ok := txData.(proto.Message)
|
|
if !ok {
|
|
return nil, sdkerrors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", txData)
|
|
}
|
|
|
|
anyTxData, err := codectypes.NewAnyWithValue(msg)
|
|
if err != nil {
|
|
return nil, sdkerrors.Wrap(sdkerrors.ErrPackAny, err.Error())
|
|
}
|
|
|
|
return anyTxData, nil
|
|
}
|
|
|
|
// UnpackTxData unpacks an Any into a TxData. It returns an error if the
|
|
// client state can't be unpacked into a TxData.
|
|
func UnpackTxData(any *codectypes.Any) (TxData, error) {
|
|
if any == nil {
|
|
return nil, sdkerrors.Wrap(sdkerrors.ErrUnpackAny, "protobuf Any message cannot be nil")
|
|
}
|
|
|
|
txData, ok := any.GetCachedValue().(TxData)
|
|
if !ok {
|
|
return nil, sdkerrors.Wrapf(sdkerrors.ErrUnpackAny, "cannot unpack Any into TxData %T", any)
|
|
}
|
|
|
|
return txData, nil
|
|
}
|