refactor(x/tx): rm dependency on core (#22281)
Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
parent
fc91e76354
commit
2f0a2b400c
@ -71,7 +71,7 @@ Core dependencies not mentioned here as compatible across all maintained SDK ver
|
||||
|
||||
| Cosmos SDK | cosmossdk.io/core | cosmossdk.io/api | cosmossdk.io/x/tx |
|
||||
| ---------- | ----------------- | ---------------- | ----------------- |
|
||||
| 0.52.z | 1.y.z | 0.8.z | 0.14.z |
|
||||
| 0.52.z | 1.y.z | 0.8.z | 1.y.z |
|
||||
| 0.50.z | 0.11.z | 0.7.z | 0.13.z |
|
||||
| 0.47.z | 0.5.z | 0.3.z | N/A |
|
||||
|
||||
|
||||
@ -33,6 +33,8 @@ Since v0.13.0, x/tx follows Cosmos SDK semver: https://github.com/cosmos/cosmos-
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
## [v1.0.0-alpha.1](https://github.com/cosmos/cosmos-sdk/releases/tag/x/tx/v1.0.0-alpha.1) - 2024-10-17
|
||||
|
||||
* [#21782](https://github.com/cosmos/cosmos-sdk/pull/21782) Fix JSON attribute sort order on messages with oneof fields.
|
||||
* [#21825](https://github.com/cosmos/cosmos-sdk/pull/21825) Fix decimal encoding and field ordering in Amino JSON encoder.
|
||||
* [#21850](https://github.com/cosmos/cosmos-sdk/pull/21850) Support bytes field as signer.
|
||||
|
||||
@ -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")
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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=
|
||||
|
||||
@ -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,12 @@ type TypeResolver interface {
|
||||
protoregistry.ExtensionTypeResolver
|
||||
}
|
||||
|
||||
// AddressCodec is the cosmossdk.io/core/address codec interface used by the context.
|
||||
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 +33,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 +50,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 +328,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 +372,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
|
||||
}
|
||||
|
||||
|
||||
@ -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{}
|
||||
|
||||
@ -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{}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user