1
1
# CHANGELOG
2
2
3
+ ## v0.54.0
4
+
5
+ * August 12, 2024*
6
+
7
+ This release includes a number of breaking changes, including separating the
8
+ packet timeout timestamp from the host ` Timestamp ` via defining a new bespoke
9
+ ` TimeoutTimestamp ` type. The ` cosmwasm ` feature flag has been removed. CosmWasm
10
+ implementations have also been migrated into their own separate workspace under
11
+ the ` cosmwasm ` directory in an effort to simplify dependency management.
12
+
13
+ Notable bug fixes include:
14
+
15
+ - Correctly preventing expired client creation
16
+ - Expiring clients when the elapsed time from a trusted header matches the
17
+ trusting period
18
+ - Allowing user-defined upgrade paths for client upgrades rather than just
19
+ defaulting to ` UPGRADED_IBC_STATE `
20
+ - Preventing ` Timestamp::nanoseconds ` from panicking by disallowing negative
21
+ values from ` tendermint::Time `
22
+
23
+ Lastly, this release adds some new features, including allowing proof
24
+ verification methods to accept custom paths, thus allowing light client
25
+ developers to introduce custom path serialization logic into their applications.
26
+ CosmWasm response types have been refactored to match the ` 08-wasm ` client API.
27
+
28
+ This release bumps the MSRV of ibc-rs to 1.72.1. ` prost ` has been bumped to 0.13.1.
29
+ ` ibc-proto ` has been bumped to 0.47.0. ` tendermint ` dependencies have been bumped
30
+ to 0.38.0. The ` cosmwasm ` dependency has also been bumped to 2.1.0.
31
+
32
+ ### BREAKING CHANGES
33
+
34
+ - [ ibc-primitive] Decouple ` Timestamp ` definition from ` tendermint::Time ` .
35
+ ([ \# 180] ( https://github.com/cosmos/ibc-rs/issues/180 ) )
36
+ - [ ics23] Auto-derive ` serde::Serialize ` for ` CommitmentPrefix ` .
37
+ ([ \# 1229] ( https://github.com/cosmos/ibc-rs/issues/1229 ) )
38
+ - [ ibc] Bump MSRV version to 1.72.1
39
+ ([ \# 1276] ( https://github.com/cosmos/ibc-rs/pull/1276 ) )
40
+ - [ ibc-client-cw] Rename ` path ` to ` merkle_path ` in ` cw-context ` for verify
41
+ (non)membership ([ \# 1291] ( https://github.com/cosmos/ibc-rs/issues/1291 ) )
42
+ - [ ibc-core] Separate the packet timeout timestamp from the host ` Timestamp ` by
43
+ defining a new specific ` TimeoutTimestamp ` .
44
+ ([ \# 1296] ( https://github.com/cosmos/ibc-rs/issues/1296 ) )
45
+ - [ ibc] Bump ` prost ` to 0.13.1
46
+ - [ ibc] Bump ` ibc-proto ` to 0.47.0
47
+ - [ ibc] Bump ` tendermint ` dependencies to 0.38.0
48
+
49
+ ### BUG FIXES
50
+
51
+ - [ ibc-core-client] Prevent expired client creations by ensuring that consensus
52
+ state's timestamp is within the trusting period.
53
+ - ([ \# 1088] ( https://github.com/cosmos/ibc-rs/issues/1088 ) )
54
+ - [ ibc-client-tendermint] Expire a client when the elapsed time from a trusted
55
+ header equals the trusting period, to stay consistent with the expiry logic in
56
+ ` tendermint-rs ` ([ \# 1239] ( https://github.com/cosmos/ibc-rs/issues/1239 ) )
57
+ - [ ibc-client-tendermint] Fix client verification panic on upgrades when the
58
+ ` upgrade_path ` size is 1.
59
+ ([ \# 1297] ( https://github.com/cosmos/ibc-rs/issues/1297 ) )
60
+ - [ ibc-client-tendermint] Use the user-defined upgrade path for client upgrades,
61
+ instead of defaulting to ` UPGRADED_IBC_STATE ` .
62
+ ([ \# 1303] ( https://github.com/cosmos/ibc-rs/issues/1303 ) )
63
+ - [ ibc-core] Prevent ` Timestamp::nanoseconds ` from panicking by disallowing
64
+ negative values from ` tendermint::Time ` .
65
+ ([ \# 1306] ( https://github.com/cosmos/ibc-rs/issues/1306 ) )
66
+
67
+ ### FEATURES
68
+
69
+ - [ ibc-core-commitment-types] Allow empty ` CommitmentPrefix `
70
+ ([ #1006 ] ( https://github.com/cosmos/ibc-rs/issues/1006 ) ).
71
+ - Unpack/pack Wasm client/consensus state at ` ConnectionOpenTry ` and
72
+ ` ConnectionOpenAck ` for host client/consensus state.
73
+ ([ #1237 ] ( https://github.com/cosmos/ibc-rs/issues/1237 ) ).
74
+ - [ ibc-core-client] Enable proof verification methods to accept custom paths as
75
+ bytes by defining a new ` serializer_path() ` API allowing light client
76
+ developers to introduce the path serialization behavior of their system.
77
+ ([ \# 1255] ( https://github.com/cosmos/ibc-rs/issues/1255 ) )
78
+
79
+ ### IMPROVEMENTS
80
+
81
+ - [ ibc] Update ` ibc-proto ` to v0.46.0 and ` tendermint ` to v0.37.0.
82
+ ([ \# 1264] ( https://github.com/cosmos/ibc-rs/pull/1264 ) )
83
+ - [ ibc-client-cw] Supersede ` Bytes ` with ` cosmwasm::Binary ` .
84
+ ([ \# 1271] ( https://github.com/cosmos/ibc-rs/issues/1271 ) )
85
+ - [ ibc-client] Bump cosmwasm version to 2.1.0
86
+ ([ \# 1276] ( https://github.com/cosmos/ibc-rs/pull/1276 ) )
87
+ - [ ibc-client-cw] Refactor CosmWasm response types to match ` 08-wasm ` client API
88
+ ([ \# 1277] ( https://github.com/cosmos/ibc-rs/issues/1277 ) )
89
+ - [ ibc-client-wasm-type] Remove the ` cosmwasm ` feature for consistent feature
90
+ flags across ibc-rs, and use existing ` serde ` and ` schema ` features.
91
+ ([ \# 1283] ( https://github.com/cosmos/ibc-rs/pull/1283 ) )
92
+ - [ cosmwasm] Move CosmWasm implementations to a separate workspace under
93
+ ` cosmwasm ` directory to simplify dependency management and decouple ` ibc-rs `
94
+ MSRV from ` cosmwasm ` . ([ \# 1295] ( https://github.com/cosmos/ibc-rs/issue/1295 ) )
95
+
3
96
## v0.53.0
4
97
5
98
* May 13, 2024*
@@ -725,7 +818,7 @@ There are consensus-breaking changes.
725
818
726
819
### BREAKING CHANGES
727
820
728
- - Support for upgrade client proposal by featuring helper contexts and domain types
821
+ - Support for upgrade client proposal by featuring helper contexts and domain types
729
822
([ #420 ] ( https://github.com/cosmos/ibc-rs/issues/420 ) )
730
823
- Remove unused ` ClientState ` methods
731
824
([ #681 ] ( https://github.com/cosmos/ibc-rs/issues/681 ) )
@@ -848,7 +941,7 @@ There are consensus-breaking changes.
848
941
849
942
### BREAKING CHANGES
850
943
851
- - ` ClientState ` : Split ` check_misbehaviour_and_update_state `
944
+ - ` ClientState ` : Split ` check_misbehaviour_and_update_state `
852
945
and ` check_header_and_update_state `
853
946
([ #535 ] ( https://github.com/cosmos/ibc-rs/issues/535 ) )
854
947
- Improve MsgTransfer struct
@@ -862,12 +955,12 @@ There are consensus-breaking changes.
862
955
- Disallow creation of new Tendermint client state instance with a frozen height
863
956
([ #178 ] ( https://github.com/cosmos/ibc-rs/issues/178 ) )
864
957
- Emit a message event for SendPacket ([ #574 ] ( https://github.com/cosmos/ibc-rs/issues/574 ) )
865
- - Properly convert from ` Any ` to ` MsgEnvelope `
958
+ - Properly convert from ` Any ` to ` MsgEnvelope `
866
959
([ #578 ] ( https://github.com/cosmos/ibc-rs/issues/578 ) )
867
- - Tendermint light client: fix missing trusted_validator_set
960
+ - Tendermint light client: fix missing trusted_validator_set
868
961
hash check
869
962
([ #583 ] ( https://github.com/cosmos/ibc-rs/issues/583 ) )
870
- - Tendermint light client: fix missing ` Header.height() `
963
+ - Tendermint light client: fix missing ` Header.height() `
871
964
vs ` Header.trusted_height ` check
872
965
([ #585 ] ( https://github.com/cosmos/ibc-rs/issues/585 ) )
873
966
- Tendermint light client: ensure that we use the correct
@@ -914,7 +1007,7 @@ This is a consensus-breaking change.
914
1007
915
1008
### BUG
916
1009
917
- - Timeout handler returns an error only when both height and timestamp have not reached yet
1010
+ - Timeout handler returns an error only when both height and timestamp have not reached yet
918
1011
([ #555 ] ( https://github.com/cosmos/ibc-rs/issues/555 ) )
919
1012
920
1013
## v0.34.0
@@ -927,7 +1020,7 @@ This is a consensus-breaking change.
927
1020
928
1021
### BUG
929
1022
930
- - Fix client IDs for the proof verifications in ` ConnectionOpenTry ` and ` ConnectionOpenAck `
1023
+ - Fix client IDs for the proof verifications in ` ConnectionOpenTry ` and ` ConnectionOpenAck `
931
1024
([ #550 ] ( https://github.com/cosmos/ibc-rs/issues/550 ) )
932
1025
933
1026
## v0.33.0
@@ -949,7 +1042,7 @@ There are no consensus-breaking changes.
949
1042
950
1043
### IMPROVEMENT
951
1044
952
- - Fix ` ContextError ` Display output
1045
+ - Fix ` ContextError ` Display output
953
1046
([ #547 ] ( https://github.com/cosmos/ibc-rs/issues/547 ) )
954
1047
955
1048
## v0.32.0
@@ -970,7 +1063,7 @@ There are no consensus-breaking changes.
970
1063
- Refactor and privatize Packet/Ack commitment computations for improved security
971
1064
and modularity.
972
1065
([ #470 ] ( https://github.com/cosmos/ibc-rs/issues/470 ) )
973
- - Allow for non-'static bound Modules
1066
+ - Allow for non-'static bound Modules
974
1067
[ #490 ] ( https://github.com/cosmos/ibc-rs/issues/490 ) )
975
1068
- Separate the validation from the execution process for ` send/mint/burn_coins `
976
1069
operations.
@@ -1002,12 +1095,12 @@ There are no consensus-breaking changes.
1002
1095
1003
1096
- Remove ibc::handler module ([ #478 ] ( https://github.com/cosmos/ibc-rs/issues/478 ) )
1004
1097
- Discard the ` connection-channels ` method under ` ValidationContext ` since it is
1005
- no longer used by the core handlers.
1098
+ no longer used by the core handlers.
1006
1099
([ #479 ] ( https://github.com/cosmos/ibc-rs/issues/479 ) )
1007
1100
- Remove Send + Sync supertraits on the Module trait
1008
1101
([ #480 ] ( https://github.com/cosmos/ibc-rs/issues/480 ) )
1009
1102
- Modify ` validate_self_client ` error type to return ` ContextError ` instead of
1010
- ` ConnectionError `
1103
+ ` ConnectionError `
1011
1104
([ #482 ] ( https://github.com/cosmos/ibc-rs/issues/482 ) )
1012
1105
1013
1106
### IMPROVEMENTS
@@ -1019,7 +1112,7 @@ There are no consensus-breaking changes.
1019
1112
* February 24, 2023*
1020
1113
1021
1114
This release contains an overhaul of the ` send_packet() ` and ` send_transfer() ` architecture.
1022
- The main gain is to separate into ` send_packet_{validate,execute}() ` , and similarly for
1115
+ The main gain is to separate into ` send_packet_{validate,execute}() ` , and similarly for
1023
1116
` send_transfer() ` .
1024
1117
1025
1118
There are no consensus-breaking changes.
@@ -1103,7 +1196,7 @@ There are consensus-breaking changes.
1103
1196
### FEATURE
1104
1197
1105
1198
- Finish implementing ` ValidationContext::validate() ` and
1106
- ` ExecutionContext::execute() `
1199
+ ` ExecutionContext::execute() `
1107
1200
([ #393 ] ( https://github.com/cosmos/ibc-rs/issues/393 ) )
1108
1201
1109
1202
### IMPROVEMENTS
@@ -1140,7 +1233,7 @@ There are no consensus-breaking changes.
1140
1233
([ #20 ] ( https://github.com/cosmos/ibc-rs/issues/20 ) )
1141
1234
- Simplify Msg trait by removing unnecessary methods.
1142
1235
([ #218 ] ( https://github.com/cosmos/ibc-rs/issues/218 ) )
1143
- - Refactor proof handlers to conduct proof verifications inline with the process function
1236
+ - Refactor proof handlers to conduct proof verifications inline with the process function
1144
1237
and apply naming conventions to packet messages types
1145
1238
([ #230 ] ( https://github.com/cosmos/ibc-rs/issues/230 ) )
1146
1239
- The function parameters in the Reader traits now references,
@@ -1153,7 +1246,7 @@ There are no consensus-breaking changes.
1153
1246
- The function parameters in the ` ValidationContext ` trait now use references,
1154
1247
while the functions in the ` ExecutionContext ` trait take ownership directly.
1155
1248
([ #319 ] ( https://github.com/cosmos/ibc-rs/issues/319 ) )
1156
- - Make internal ` process() ` ` pub(crate) `
1249
+ - Make internal ` process() ` ` pub(crate) `
1157
1250
([ #338 ] ( https://github.com/cosmos/ibc-rs/issues/338 ) )
1158
1251
1159
1252
### FEATURES
@@ -1273,7 +1366,7 @@ There are consensus-breaking changes in the connection and channel handshakes. H
1273
1366
([ #145 ] ( https://github.com/cosmos/ibc-rs/issues/145 ) )
1274
1367
- Makes channel/packet events compatible with ibc-go
1275
1368
([ #146 ] ( https://github.com/cosmos/ibc-rs/issues/146 ) )
1276
- - Remove crossing hellos logic from connection handshake. Breaking changes in
1369
+ - Remove crossing hellos logic from connection handshake. Breaking changes in
1277
1370
connection message types.
1278
1371
([ #156 ] ( https://github.com/cosmos/ibc-rs/issues/156 ) ).
1279
1372
- Remove crossing hellos logic from channel handshake
@@ -1338,9 +1431,9 @@ This is a major release, which implemented [ADR 4](https://github.com/cosmos/ibc
1338
1431
- Remove ` Display ` from ` IbcEvent ` ([ #144 ] ( https://github.com/cosmos/ibc-rs/issues/144 ) ).
1339
1432
- Remove ` IbcEvent::Empty ` ([ #144 ] ( https://github.com/cosmos/ibc-rs/issues/144 ) ).
1340
1433
- Make ` client_state ` field required in ` MsgConnectionOpenTry ` and
1341
- ` MsgConnectionOpenAck ` . Necessary for correctness according to spec.
1434
+ ` MsgConnectionOpenAck ` . Necessary for correctness according to spec.
1342
1435
([ #159 ] ( https://github.com/cosmos/ibc-rs/issues/159 ) ).
1343
- - Redesign the API to allow light client implementations to be hosted outside the ibc-rs repository.
1436
+ - Redesign the API to allow light client implementations to be hosted outside the ibc-rs repository.
1344
1437
([ #2483 ] ( https://github.com/informalsystems/ibc-rs/pull/2483 ) ).
1345
1438
1346
1439
### BUG FIXES
@@ -1352,7 +1445,7 @@ This is a major release, which implemented [ADR 4](https://github.com/cosmos/ibc
1352
1445
1353
1446
### FEATURES
1354
1447
1355
- - Public PrefixedDenom inner type and add as_str func for BaseDenom
1448
+ - Public PrefixedDenom inner type and add as_str func for BaseDenom
1356
1449
([ #161 ] ( https://github.com/cosmos/ibc-rs/issues/161 ) )
1357
1450
1358
1451
### IMPROVEMENTS
@@ -1466,7 +1559,7 @@ This is a major release, which implemented [ADR 4](https://github.com/cosmos/ibc
1466
1559
1467
1560
* May 2nd, 2022*
1468
1561
1469
- > This is a legacy version with no ibc crate changes.
1562
+ > This is a legacy version with no ibc crate changes.
1470
1563
1471
1564
## v0.14.0
1472
1565
0 commit comments