From 2ea1971558d72fb0a1ca4c3abfd72ab2f3f849d3 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 16 Oct 2024 17:56:35 +0200 Subject: [PATCH] refactor(x/tx): rm x/tx dependency on core --- x/tx/decode/decode.go | 10 ++++++---- x/tx/go.mod | 1 - x/tx/go.sum | 2 -- x/tx/signing/context.go | 20 ++++++++++++-------- x/tx/signing/context_test.go | 5 ----- x/tx/signing/directaux/direct_aux_test.go | 3 --- 6 files changed, 18 insertions(+), 23 deletions(-) diff --git a/x/tx/decode/decode.go b/x/tx/decode/decode.go index bf4f3a54f31f..61b01f77e43f 100644 --- a/x/tx/decode/decode.go +++ b/x/tx/decode/decode.go @@ -13,7 +13,6 @@ import ( "google.golang.org/protobuf/types/dynamicpb" v1beta1 "cosmossdk.io/api/cosmos/tx/v1beta1" - "cosmossdk.io/core/transaction" errorsmod "cosmossdk.io/errors" "cosmossdk.io/x/tx/signing" ) @@ -32,8 +31,11 @@ type DecodedTx struct { cachedBytes []byte cachedHashed bool } - -var _ transaction.Tx = &DecodedTx{} +type Msg = interface { + Reset() + String() string + ProtoMessage() +} type gogoProtoCodec interface { Unmarshal([]byte, gogoproto.Message) error @@ -192,7 +194,7 @@ func (dtx *DecodedTx) GetGasLimit() (uint64, error) { return dtx.Tx.AuthInfo.Fee.GasLimit, nil } -func (dtx *DecodedTx) GetMessages() ([]transaction.Msg, error) { +func (dtx *DecodedTx) GetMessages() ([]Msg, error) { if dtx == nil || dtx.Messages == nil { return nil, errors.New("messages not available or are nil") } diff --git a/x/tx/go.mod b/x/tx/go.mod index d430694f1dc7..42abe2a63b79 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -4,7 +4,6 @@ go 1.23 require ( cosmossdk.io/api v0.7.6 - cosmossdk.io/core v1.0.0-alpha.4 cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 github.com/cosmos/cosmos-proto v1.0.0-beta.5 diff --git a/x/tx/go.sum b/x/tx/go.sum index 0a507668b549..09bbde461a3f 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -1,7 +1,5 @@ cosmossdk.io/api v0.7.6 h1:PC20PcXy1xYKH2KU4RMurVoFjjKkCgYRbVAD4PdqUuY= cosmossdk.io/api v0.7.6/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= -cosmossdk.io/core v1.0.0-alpha.4 h1:9iuroT9ejDYETCsGkzkvs/wAY/5UFl7nCIINFRxyMJY= -cosmossdk.io/core v1.0.0-alpha.4/go.mod h1:3u9cWq1FAVtiiCrDPpo4LhR+9V6k/ycSG4/Y/tREWCY= cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= diff --git a/x/tx/signing/context.go b/x/tx/signing/context.go index d02be6d12523..3c0fbd1bda46 100644 --- a/x/tx/signing/context.go +++ b/x/tx/signing/context.go @@ -13,7 +13,6 @@ import ( "google.golang.org/protobuf/reflect/protoregistry" msgv1 "cosmossdk.io/api/cosmos/msg/v1" - "cosmossdk.io/core/address" ) type TypeResolver interface { @@ -21,6 +20,11 @@ type TypeResolver interface { protoregistry.ExtensionTypeResolver } +type AddressCodec interface { + StringToBytes(string) ([]byte, error) + BytesToString([]byte) (string, error) +} + // Context is a context for retrieving the list of signers from a // message where signers are specified by the cosmos.msg.v1.signer protobuf // option. It also contains the ProtoFileResolver and address.Codec's used @@ -28,8 +32,8 @@ type TypeResolver interface { type Context struct { fileResolver ProtoFileResolver typeResolver protoregistry.MessageTypeResolver - addressCodec address.Codec - validatorAddressCodec address.Codec + addressCodec AddressCodec + validatorAddressCodec AddressCodec getSignersFuncs sync.Map customGetSignerFuncs map[protoreflect.FullName]GetSignersFunc maxRecursionDepth int @@ -45,10 +49,10 @@ type Options struct { TypeResolver TypeResolver // AddressCodec is the codec for converting addresses between strings and bytes. - AddressCodec address.Codec + AddressCodec AddressCodec // ValidatorAddressCodec is the codec for converting validator addresses between strings and bytes. - ValidatorAddressCodec address.Codec + ValidatorAddressCodec AddressCodec // CustomGetSigners is a map of message types to custom GetSignersFuncs. CustomGetSigners map[protoreflect.FullName]GetSignersFunc @@ -323,7 +327,7 @@ func (c *Context) makeGetSignersFunc(descriptor protoreflect.MessageDescriptor) }, nil } -func (c *Context) getAddressCodec(field protoreflect.FieldDescriptor) address.Codec { +func (c *Context) getAddressCodec(field protoreflect.FieldDescriptor) AddressCodec { scalarOpt := proto.GetExtension(field.Options(), cosmos_proto.E_Scalar) addrCdc := c.addressCodec if scalarOpt != nil { @@ -367,12 +371,12 @@ func (c *Context) GetSigners(msg proto.Message) ([][]byte, error) { } // AddressCodec returns the address codec used by the context. -func (c *Context) AddressCodec() address.Codec { +func (c *Context) AddressCodec() AddressCodec { return c.addressCodec } // ValidatorAddressCodec returns the validator address codec used by the context. -func (c *Context) ValidatorAddressCodec() address.Codec { +func (c *Context) ValidatorAddressCodec() AddressCodec { return c.validatorAddressCodec } diff --git a/x/tx/signing/context_test.go b/x/tx/signing/context_test.go index 88f0bf4aadf9..8fb83d327f3d 100644 --- a/x/tx/signing/context_test.go +++ b/x/tx/signing/context_test.go @@ -10,7 +10,6 @@ import ( bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1" groupv1 "cosmossdk.io/api/cosmos/group/v1" - "cosmossdk.io/core/address" "cosmossdk.io/x/tx/internal/testpb" ) @@ -280,8 +279,6 @@ func (d dummyAddressCodec) BytesToString(bz []byte) (string, error) { return hex.EncodeToString(bz), nil } -var _ address.Codec = dummyAddressCodec{} - type dummyValidatorAddressCodec struct{} func (d dummyValidatorAddressCodec) StringToBytes(text string) ([]byte, error) { @@ -291,5 +288,3 @@ func (d dummyValidatorAddressCodec) StringToBytes(text string) ([]byte, error) { func (d dummyValidatorAddressCodec) BytesToString(bz []byte) (string, error) { return "val" + hex.EncodeToString(bz), nil } - -var _ address.Codec = dummyValidatorAddressCodec{} diff --git a/x/tx/signing/directaux/direct_aux_test.go b/x/tx/signing/directaux/direct_aux_test.go index 00c48222aa89..9cabf4e4e9f3 100644 --- a/x/tx/signing/directaux/direct_aux_test.go +++ b/x/tx/signing/directaux/direct_aux_test.go @@ -16,7 +16,6 @@ import ( "cosmossdk.io/api/cosmos/crypto/secp256k1" signingv1beta1 "cosmossdk.io/api/cosmos/tx/signing/v1beta1" txv1beta1 "cosmossdk.io/api/cosmos/tx/v1beta1" - "cosmossdk.io/core/address" "cosmossdk.io/x/tx/signing" "cosmossdk.io/x/tx/signing/directaux" ) @@ -158,5 +157,3 @@ func (d dummyAddressCodec) StringToBytes(text string) ([]byte, error) { func (d dummyAddressCodec) BytesToString(bz []byte) (string, error) { return hex.EncodeToString(bz), nil } - -var _ address.Codec = dummyAddressCodec{}