-
Update
cgp
to v0.3.1 - #527- The default
Async
bound inHasErrorType::Error
has been removed. To work with async code, all occurances ofHasErrorType
andCanRaiseError
inside Hermes SDK is replaced withHasAsyncErrorType
andCanRaiseAsyncError
. - The
Index
type in Hermes SDK is replaced with the sameIndex
type provided fromcgp
.
- The default
-
Update
cgp
crate to v0.2.0 - #491- For a full list of changes, refer to contextgeneric/cgp#42
and the
cgp
changelog.
- For a full list of changes, refer to contextgeneric/cgp#42
and the
-
Bootstrap components improvements - #473
- Introduce
CosmosSdkConfigModifier
trait, which Cosmos bootstrap contexts now required to implement. - Implement
UseContext
for various accessor traits for the bootstrap context. - Pass
Bootstrap::ChainGenesisConfig
tobuild_chain_with_node_config
andbuild_relayer_chain_config
. - Rename fields in Cosmos bootstrap contexts.
- Introduce
-
CLI Components Improvements - #472
- Implement
WithProvider
for CLI type traits. - Implement
UseDelegate
forArgParser
andCommandRunner
. - Make
take_chain_process
work with&mut ChainDriver
- Pass
ConfigUpdater
toRunBootstrapChainCommand
for non-owned implementation.
- Implement
-
Delegate all create and update client types and methods based on counterparty - #468
- In
CosmosChainClientComponents
, delegate the following components toUseDelegate<DelegateCosmosChainComponents>
:CreateClientPayloadTypeComponent
,UpdateClientPayloadTypeComponent
,CreateClientPayloadOptionsTypeComponent
,CreateClientPayloadBuilderComponent
,UpdateClientPayloadBuilderComponent
.- To use CosmosChain with a concrete counterparty, the respective components need to be implemented in
<DelegateCosmosChainComponents as DelegateComponent<Counterparty>>::Delegate
.
- To use CosmosChain with a concrete counterparty, the respective components need to be implemented in
- In
-
Make message senders return new
MessageResponse
type instead ofVec<Chain::Event>
- #460- Introduce
HasMessageResponseType
trait withChain::MessageResponse
abstract type, to represent the response returned from the blockchain after processing aChain::Message
. - Introduce
HasMessageResponseEvents
trait for extractingVec<Chain::Event>
fromChain::MessageResponse
. - Provide
UseEventsMessageResponse
to implementChain::MessageResponse
asVec<Chain::Event>
to follow the original behavior. - Change the method
CanSendMessages::send_messages
to returnVec<Chain::MessageResponse>
instead ofVec<Vec<Chain::Event>>
. - Change
CanParseTxResponseAsEvents
toCanParseTxMessageResponse
, to extract message responses from a transaction. - Change the following event extractors to extract from
Chain::MessageResponse
instead ofChain::Event
:try_extract_create_client_event
,try_extract_channel_open_init_event
,try_extract_channel_open_try_event
,try_extract_connection_open_init_event
,try_extract_connection_open_try_event
.
- Introduce
-
Delegate
ClientState
andConsensusState
types based on counterparty - #459- Implement
UseDelegate
forHasClientStateType
,HasConsensusStateType
,HasClientStateFields
, andHasConsensusStateFields
. - In
CosmosChainClientComponents
, delegate the following components toUseDelegate<DelegateCosmosChainComponents>
:ClientStateTypeComponent
,ConsensusStateTypeComponent
,ClientStateFieldsComponent
,ConsensusStateFieldComponent
.- To use CosmosChain with a concrete counterparty, the respective components need to be implemented in
<DelegateCosmosChainComponents as DelegateComponent<Counterparty>>::Delegate
.
- To use CosmosChain with a concrete counterparty, the respective components need to be implemented in
- Add
PhantomData
tag parameters toquery_client_state
andquery_consensus_state
to help in type inference when used with concrete contexts.
- Implement
-
Improve error messages when submitting Wasm client proposals - #458
- Refactor
poll_proposal_status
to accept a list of wanted status. - Make Cosmos implementation of
query_proposal_status
return error if the proposal failed. - Introduce
ProposalFailed
error type that needs to be handled byErrorRaiser
implementation.
- Refactor
-
Minor encoding refactoring - #453
- Replace
DelegateEncoding
withUseDelegate
fromcgp
. - Remove
DecodeViaWasmClientState
.
- Replace
-
Implement abstract and mock IBC v2 components - #445
- Rename
DelegateTo
toUseDelegate
. - Move the following chain trait types to
hermes-chain-type-components
:HasAddressType
,HasAmountType
,HasDenomType
,HasCommitmentPrefixType
.
- Rename
-
CGP Refactoring #440
- Update
cgp
version to include the addition ofcgp-type
. cgp#23 - Use
DelegateTo
fromcgp-component
instead of custom constructs to implement delegated chain implementations. - Use
UseContext
fromcgp-component
instead of customWithContext
for encoding forwarding implementations. - Experiment on using
WithProvider
andHasType
fromcgp-type
to simplify chain type implementations forHasHeight
,HasMessageType
, andHasEventType
.
- Update
-
Chain components refactoring #438
- Introduce
hermes-chain-type-components
andhermes-chain-components
crates, and move abstract chain constructs fromhermes-relayer-components
. - Split out
HasIbChainTypes
to the respective type traits -HasConnectionIdType
,HasChannelIdType
,HasPortIdType
,HasSequenceType
. - Separate
HasTimestampType
intoHasTimeType
andHasTimeoutType
. - Refactor
HasIbcPacketTypes
to onlyHasOutgoingPacketType
, and useCounterparty::OutgoingPacket
as incoming packet. - Remove
HasRelayChains::Packet
associated alias type.
- Introduce
-
Protobuf encoding improvements #432
- Redesign
impl_type_url!
macro to implementSchemaGetter
on existing component type. - Schema components that only use
impl_type_url!
directly are no longer wrapped withDelegateEncoding
. - Rename
EncodeWithContext
toWithContext
. - Rename
WrappedTendermintClientState
toWasmTendermintClientState
. - Implement Protobuf encoding for
WasmClientMessage
. - Implement
MutEncoder
forTimestamp
andCommitmentRoot
. - Relax
MutEncoder
constraint forEncodeU64ProtoField
to useTryInto
.
- Redesign
-
Introduce cosmos- and wasm- encoding components crates #431
- Add new
hermes-cosmos-encoding-components
crate. - Add new
hermes-wasm-encoding-components
crate. - Move
Height
encoding implementation tohermes-cosmos-encoding-components
. - Move
WasmClientState
,WasmConsensusState
, and related encoding implementations tohermes-wasm-encoding-components
.
- Add new
-
Implement Protobuf encoding components for direct encoding from domain types #430
- Implement generic
MutEncoder
components forhermes-encoding-components
. - Implement Protobuf
MutEncoder
components for direct Protobuf encoding without requiring all types to implementprost::Message
. - Implement Protobuf
MutEncoder
s forAny
,Height
,WasmClientState
, andWasmConsensusState
. - Remove
ProtoWasmClientState
andProtoWasmConsensusState
Protobuf types. - Reorganize encoder implementations for
hermes-encoding-components
.
- Implement generic
-
Minor Refactoring(#428)
- Remove unused constraints in
HasTimestampType::Timestamp
. - Update the
header
field inCosmosUpdateClientMessage
to useprost_types::Any
instead ofibc_proto::Any
. - Generalize the
CreateClientMessageBuilder
instanceBuildCosmosCreateClientMessage
toBuildAnyCreateClientMessage
, and allows genericCreateClientPayload
that hasclient_state: Counterparty::ClientState
andconsensus_state: Counterparty::ConsensusState
fields. - Rename the
ProvideCreateClientMessageOptionsType
instance in Cosmos fromProvideCosmosCreateClientSettings
toProvideNoCreateClientMessageOptionsType
, withCreateClientMessageOptions = ()
.
- Remove unused constraints in
- Initial release of Hermes SDK crates on crates.io.