Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Commit

Permalink
Update with new changes including ICS20 (#12)
Browse files Browse the repository at this point in the history
* Release v0.15.0 (informalsystems#2234)

* Bump crates to v0.15.0 and ibc-proto to v0.18.0

* Include ibc-test-framework in release

* Slightly improve main Cargo doc for ibc-test-framework

* Fix components names

* Update changelog

* Update lockfile

Co-authored-by: Soares Chen <soares.chen@maybevoid.com>

* Add type ascription to fix build when `telemetry` feature is disabled (informalsystems#2235)

* Bump once_cell from 1.11.0 to 1.12.0 (informalsystems#2237)

* Add `ibc-test-framework` to the main README (informalsystems#2236)

* Add `ibc-test-framework` to the main README

* Cleanup

* Fix `execute_schedule` method leaking operational data (informalsystems#2118)

* Pull in upstream changes

* Adding integration test for execute_schedule

* Adding integration test for execute_schedule

* Finish stubbing out execute_schedule test

* Call `chains.shutdown` method

* Correctly shut down chain

* Shut down node b as well

* Debugging execute_schedule test

* Add Debug derivations

* Update integration test so that its flow correctly tests `execute_schedule`

* Attempt to perform a second IBC transfer

* Remove info's

* Increase sleep timeout duration

* Incorportate new test framework features

* Remove unnecessary `sleep` call

* Correctly use new test framework features

* Get assertions passing for now

* Send two transactions, one in each direction

* Add doc comment for test

* Improve panic messages

* Refactor test so that it is actually testing the desired behavior

* Attempt at fixing `execute_schedule` leaky logic

* Flesh out doc comments some more

* Remove a duplicate function

* Make use of OperationalDataTarget enum

* Remove redundant enum

* Remove some Debug derives

* Remove one more debug derive

* Add `try_fetch_scheduled_operational_data` back in

* Give `do_execute_schedule` a more descriptive name

* Improve `execute_schedule_for_target_chain` method's documentation

* Add a bunch of clarifying comments

* More clarification of comments

* Flesh out `OperationalData` docs

* Add changelog entry

* Incorporate PR feedback

Co-authored-by: Adi Seredinschi <adi@informal.systems>

* Add `keys balance` command to query the balance for a key (informalsystems#2232)

* Added subcommand 'balance' for command 'keys' to output the account balance associated with a given key

* Added changelog entry for new command feature

* Updated Hermes guide to include the new keys balance command

* Improved error log for the CLI command and added doc comment

* fixed fmt by running cargo fmt

* Refactored query_balance to take key_name parameter. Added JSON output to keys balance command.

* Fixed typo in comment in CosmosSdkChain query_balance method

* Updated keys balance command to take the key_name as an optional flag

Co-authored-by: Luca Joss <luca.joss@arcanite.ch>
Co-authored-by: Romain Ruetschi <romain@informal.systems>

* Model based testing on integration tests (informalsystems#2072)

* ics20 token transfer spec

* fixes for tla functions

* full spec

* update tla specs

* mbt driver code

* prepare for itf adoption

* itf deserializer

* description in comments

* fix type

* hack for apalache v0.20.2 (apalache-mc/apalache#1304)

* updated tla spec

* example itf.json

* code refactor

* prepare for mbt

* fix and update

* updated example

* updated trace types

* working mbt driver

* fix mbt test

* added mbt readme

* BinaryChainTest over BinaryChannelTest

* wait for established channel

* added packet state assertions

* improved mbt integration

* few fixes

* Refactor bootstrap chain and foreign client code

* Introduce BootstrapChannel/ConnectionOptions

* Increase timeout for assert_eventual_wallet_amount for CI

* Upgrade Rust to 1.60.0

* Fix fmt in Rust 1.60.0

* Update Rust MSRV to 1.60

* Try running CI integration test single-threaded

* Fix variable mixup

* Add MBT to CI

* Disable failing parse_itf test

* Disable test_self_connected_ibc_transfer

* Use gaia6 to run MBT test

* Debug log on CI

* save itf trace on failure

* initialize nested maps

* updated mbt code

* Use new Nix URL

* better fix to empty nested maps

* Remove stale comments

* Fix merge conflicts

Co-authored-by: Soares Chen <soares.chen@maybevoid.com>
Co-authored-by: Adi Seredinschi <adi@informal.systems>

* Bump uuid from 1.0.0 to 1.1.0 (informalsystems#2247)

Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/uuid-rs/uuid/releases)
- [Commits](uuid-rs/uuid@1.0.0...1.1.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add `query channel client` command to query a channel's client state (informalsystems#2248)

* Added new CLI command 'query channel client'

* Updated Hermes guide to include new query channel client command and updated changelog

* Added missing subcommand in Hermes guide, section 7.9.3

Co-authored-by: Luca Joss <luca@informal.systems>

* Fix wrong `create channel` command in "Create a new path" page in the guide (informalsystems#2245)

Fix wrong `create channel` command in guide

Co-authored-by: Adi Seredinschi <adi@informal.systems>

* Disable MBT tests on CI due to flakiness (informalsystems#2253)

* Complete ICS20 Implementation (informalsystems#1989)

* Add ics26 Module trait

* newtype for Acknowledgement

* Define Router interface

* Improve Router trait

* Update mock router impl

* Test for router API

* Disallow duplicate module_ids in MockRouter

* Add RouterBuilder for seal-style API

* Fix failing test

* Fix CI after merge

* Chainable RouterBuilder::add_route()

* Fix test

* Add Router::has_route() trait method

* Add comments

* Separate mutating/non-mutating trait methods for shadow-paging style API

* Make most Module trait methods optional

* Default impl for MockModule::on_chan_open_try()

* Acknowledgement trait

* Extend router test

* Simplify OnRechPacketResult using FnOnce()

* Cleanup

* Use Cow<str> for CapabilityName::new()

* Use Cow<str> for CapabilityName::new()

* Use newtype ModuleId instead of trait assoc type

* Module callbacks' args as refs

* Fix mock impl

* WIP channel callbacks

* Fix ModuleId ctor validation

* TypedCapability

* Use typed capabilities

* Add Router::route_mut()

* Implement pre-dispatch channel message validation

* Avoid cloning message during channel msg dispatch

* Add ChannelReader::lookup_module_by_channel()

* Complete ics4 dispatch with callbacks

* Fix compile errors from rebase

* Fix CI test

* Improve mock impl for capabilities

* cargo fmt

* Set channel version returned from on_chan_open_try()

* Implement packet handler verification

* Add missing check already received packets on ordered channels

* Avoid cloning message during packet msg dispatch

* Implement RecvPacket NoOp

* cargo fmt and remove unused errors

* Make on_recv_packet() Ack result optional

* Don't return Result from on_recv_packet() and pass GenericAcknowledgement to on_acknowledgement_packet()

* Implement packet callbacks

* Allow callbacks to write logs and emit events

* Fix test

* Add .changelog entry

* Add a comment for state rollback expectation from dispatch()

* ics26_routing::handler::deliver() takes single message as input

* ics26_routing::handler::deliver() returns logs as well

* Remove ctx_ro

* Callbacks return ModuleOutput<T>

* Return HandlerOutputBuilder from channel and packet dispatch fn

* Revert "Callbacks return ModuleOutput<T>"

This reverts commit 1d430c9.

* Address review feedback for comments

* Extract ChannelMsg::lookup_module()

* Add ICS20 Denom type

* Add ICS20 TracePrefix & TracePath type

* Define Coin and Decimal types

* Impl conversions from/to RawDenomTrace

* Make better use of derive-more

* Impl conversions for Coin type

* Add HashedDenom and polish DenomTrace impl

* Define PacketData domain type and conversions

* Use Coin domain type in MsgTransfer

* Fix usage of Coin type in relayer code

* Always panic on decimal arith overflow

* Polish generic Signer impl

* Implement ICS20 signer type

* Coin type with generic Denom param

* Use IbcCoin in MsgTransfer and PrefixedCoin in PacketData

* Minor refactoring

* Fix test_util

* Impl AsRef<[u8]> for GenericAcknowledgement

* Ics20Context is no longer a supertrait of Ics26Context

* Add ICS20 Ack type

* Add ICS20 event enum placeholder

* Define all ICS20 expected keepers and context

* Update send_transfer() for recent context changes

* Give mut ref to set_channel_escrow_address()

* Define ICS20 callback functions

* Fix test build

* Move denom derive functions to integration tests

* Add version to chan_open_try callback

* Rename ChannelId::counter() to sequence()

* Add AppModule error variant to ChannelError

* Implement validation helpers for callbacks

* Define Ics20 callback errors

* Implement channel handshake callbacks

* Fix clippy errors

* Impl Deserialize for PacketData

* Manually implement AsRef<str> for Signer

* Fix ICS20 Ack success from impl

* Add more ICS20 errors

* Improve ack type ctor

* Add ctor for TracePrefix

* Provide denom trace methods to remove prefix and check for empty trace path

* Implement conversion from PrefixedCoin to IbcCoin

* Add Ics20Reader trait methods to check send/receive enabled

* Provided trait method get_channel_escrow_address()

* Add BankReader trait for is_blocked_account()

* Add FromStr bound for Ics20Context::AccountId

* Use IbcCoins in Bank traits

* Impl on_recv_packet() for cases where receiver chain is source

* Fallible OnRecvPacket::write_fn()

* Complete on_recv_packet impl

* Fix test build

* Fix clippy errors

* Implement remaining packet callbacks for ICS20

* Make set_denom_trace() fallible

* Don't derive AsRef

* Complete send_transfer impl

* Manual deserialize impl for Acknowledgement

* Add ctor for Acknowledgement

* Handle packet-data deserialize error separately

* Use U256 for Denom and move bigint.rs to modules/src

* Rename Denom to Amount

* Cleanup

* Fix trait definitions

* Use source enum

* Fix AccountReader trait

* Validate port_id

* More refactoring

* Rename Signer to Address

* Use Address instead of Signer where applicable

* Fix send_transfer packet creation

* Fix clippy warnings

* Define ICS20 events

* Extract relay code into separate files

* Fix clippy warnings

* Make HandlerOutput/Builder generic over events

* Define ModuleEvent

* Add AppModule variant to IbcEvent

* Impl Display for Acknowledgement

* Derive serde for ModuleId

* Add ModuleId to ModuleEvent

* Impl conversion from tuple for ModuleEventAttribute

* Impl conversions from ICS20 events to ModuleEvent

* Add event for transfer

* Remove bech32 validation from Address

* Change MsgTransfer receiver type to Address

* Extract MockContext IbcStore

* Improve conversion from Signer to AccountId

* Add deliver method to Module trait

* Implement conversions for MsgTransfer to/from Protobuf Any

* Store packet result directly in send_transfer()

* Make all ICS20 mods public

* Make all IbsStore fields public to enable access for app modules

* Implement Ics20Context for DummyTransferModule

* Fix failing test

* Manual Clone impl for MockContext

* Fix failing test

* Revert "Fix failing test"

This reverts commit 40aec61.

* Fix MockContext Clone impl

* Update trait definitions after merge with master

* Replace ModuleOutput with ModuleOutputBuilder in callbacks

* Add inout param ModuleOutputBuilder to Ics20 callback handlers

* Emit ICS20 receive packet events

* Module::deliver() must be able to emit IbcEvents

* Allow HandlerOutputBuilder to merge HandlerOutput

* Emit transfer event

* Add AckStatusEvent

* Emit ICS20 ack events

* Emit ICS20 timeout events

* Remove ABCI error code

* Remove #[allow(unused)]

* Add log for send transfer

* MsgReceipt abstraction

* Handle missing IbcEvent to AbciEvent conversions for RecvPacket and TimeoutOnClose events

* Implement ModuleEvent to AbciEvent conversion

* Make send_transfer() public

* Allow empty TracePaths

* Fix TracePath multiple prefix parse bug

* Fix TracePath empty str parse bug

* Improve DenomTrace FromStr

* Add denom validation test

* Add denom trace and serde tests

* TracePath tests

* Allow Denom with '/'

* Fix HashedDenom FromStr impl for empty hash

* Minor refactoring

* Add IbcCoin tests

* Add .changelog entry

* Fix clippy errors

* Disallow empty Signer and replace Address with it

* Use ToString as trait bound for ICS20 AccountId

* Change AccountId trait bound from FromStr to TryFrom<Signer>

* Remove Signer::new()

* Delete OCap related TODO

* Remove the PortKeeper

* Remove Module::deliver()

* Fix clippy warnings

* Rename transfer module

* Rename mod relay

* Fix tests failing due to empty signer

* Rename PORT_ID const to PORT_ID_STR

* Fix escrow addr gen

* Test cosmos escrow addr gen

* Rename receiver account

* Remove `has_denom_trace()`

* Remove `BankReader::is_blocked_account()`

* Remove `AccountId::ToString` bound

* Remove `AccountReader`

* Mint/burn into user accounts directly

* Use `chunks_exact()` instead of `windows().step_by()`

* Rename `DenomTrace::has_prefix()` to `trace_starts_with()`

* Move trace related methods into `TracePath`

* Fix add/remove prefix

* Add test for add/remove trace prefix

* Set denom trace only if not already set

* Use truncate instead of drain in cosmos_adr028_escrow_address()

* Rename DenomTrace as PrefixedDenom

* Modify all `BankKeeper` methods to use `PrefixedCoin` instead of `IbcCoin`

* Rename `Denom` as `BaseDenom`

* Impl Into<U256> and checked_add/sub() for Amount

* Add more TracePath tests

* Test TracePath is_empty()

* Remove IbcCoin

* Remove HashedDenom and HashedCoin

* Fix test compilation

* Add comment for send_transfer()

* Functions for determining source chain

* Minor refactoring

* cargo fmt

* Derive serde for PacketCommitment and AcknowledgementCommitment

* docstring and comment

Co-authored-by: Philippe Laferriere <plafer@protonmail.com>

* Merge commands `keys add` and `keys restore` into a single command. (informalsystems#2251)

* Merged commands 'keys add' and 'keys restore' into a single command, 'keys add'. Improved restoring a key with mnemonic by taking a file containing the mnemonic as input instead of taking the mnemonic as command line input

* Updated Hermes guide with new merged 'keys add' command. And updated changelog with improvement

* Fixed e2e setup script to take correct flag when adding keys

* Fixed small errors in Hermes guide and improved comments for changed 'keys add' command.

* Improved Hermes guide section 7.2

* Updated the Hermes guide section 7.2 to match actual features

* Bump moka from 0.8.4 to 0.8.5 (informalsystems#2246)

Bumps [moka](https://github.com/moka-rs/moka) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/moka-rs/moka/releases)
- [Changelog](https://github.com/moka-rs/moka/blob/master/CHANGELOG.md)
- [Commits](moka-rs/moka@v0.8.4...v0.8.5)

---
updated-dependencies:
- dependency-name: moka
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adi Seredinschi <adi@informal.systems>

* fmt

* rename LightClientContext to ReaderContext

* use host hash function in escrow address

* minor fix

* minor fix

Co-authored-by: Romain Ruetschi <romain@informal.systems>
Co-authored-by: Soares Chen <soares.chen@maybevoid.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Sean Chen <seanchen11235@gmail.com>
Co-authored-by: Adi Seredinschi <adi@informal.systems>
Co-authored-by: Luca Joss <43531661+ljoss17@users.noreply.github.com>
Co-authored-by: Luca Joss <luca.joss@arcanite.ch>
Co-authored-by: Ranadeep Biswas <mail@rnbguy.at>
Co-authored-by: Luca Joss <luca@informal.systems>
Co-authored-by: Shoaib Ahmed <sufialhussaini@gmail.com>
Co-authored-by: Philippe Laferriere <plafer@protonmail.com>
  • Loading branch information
12 people committed Jun 9, 2022
1 parent 5e22505 commit 61fb44a
Show file tree
Hide file tree
Showing 44 changed files with 592 additions and 254 deletions.
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
- Fix packet commitment calculation to match IBC-Go
([#2104](https://github.com/informalsystems/ibc-rs/issues/2104))
- Fix packet commitment calculation to match ibc-go ([#2104](https://github.com/informalsystems/ibc-
rs/issues/2104))
4 changes: 2 additions & 2 deletions .changelog/v0.15.0/bug-fixes/ibc/2114-fix-ack-verification.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
- Fix incorrect acknowledgement verification
([#2114](https://github.com/informalsystems/ibc-rs/issues/2114))
- Fix incorrect acknowledgement verification ([#2114](https://github.com/informalsystems/ibc-
rs/issues/2114))
4 changes: 2 additions & 2 deletions .changelog/v0.15.0/bug-fixes/ibc/2178-conn-ack-bug-fix.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
- Fix connection identifier mix-up in connection acknowledgement processing
([#2178](https://github.com/informalsystems/ibc-rs/issues/2178))
- fix connection id mix-up in connection acknowledgement processing
([#2178](https://github.com/informalsystems/ibc-rs/issues/2178))
7 changes: 4 additions & 3 deletions modules/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ std = [
"flex-error/std",
"flex-error/eyre_tracer",
"ibc-proto/std",
"ics23/std",
"clock",
"beefy-client/std",
"sp-runtime/std",
Expand All @@ -39,7 +40,7 @@ mocks = ["tendermint-testgen", "clock", "std", "sp-io", "sp-io/std"]
[dependencies]
# Proto definitions for all IBC-related interfaces, e.g., connections or channels.
borsh = { version = "0.9.3", default-features = false }
ibc-proto = { version = "0.17.1", path = "../proto", default-features = false }
ibc-proto = { version = "0.18.0", path = "../proto", default-features = false }
ics23 = { version = "=0.8.0-alpha", default-features = false }
time = { version = "0.3", default-features = false }
serde_derive = { version = "1.0.104", default-features = false }
Expand All @@ -53,8 +54,8 @@ safe-regex = { version = "0.2.5", default-features = false }
subtle-encoding = { version = "0.5", default-features = false }
sha2 = { version = "0.10.2", default-features = false }
flex-error = { version = "0.4.4", default-features = false }
num-traits = { version = "0.2.14", default-features = false }
derive_more = { version = "0.99.17", default-features = false, features = ["from", "display"] }
num-traits = { version = "0.2.15", default-features = false }
derive_more = { version = "0.99.17", default-features = false, features = ["from", "into", "display"] }
uint = { version = "0.9", default-features = false }
beefy-client = { package = "beefy-generic-client", git = "https://github.com/ComposableFi/beefy-client", branch = "master", default-features = false }
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.22", default-features = false }
Expand Down

This file was deleted.

36 changes: 24 additions & 12 deletions modules/src/applications/transfer/context.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
use sha2::{Digest, Sha256};
use subtle_encoding::hex;

use super::error::Error as Ics20Error;
Expand All @@ -16,7 +15,7 @@ use crate::core::ics04_channel::packet::Packet;
use crate::core::ics04_channel::Version;
use crate::core::ics05_port::context::PortReader;
use crate::core::ics24_host::identifier::{ChannelId, ConnectionId, PortId};
use crate::core::ics26_routing::context::{ModuleOutputBuilder, OnRecvPacketAck};
use crate::core::ics26_routing::context::{ModuleOutputBuilder, OnRecvPacketAck, ReaderContext};
use crate::prelude::*;
use crate::signer::Signer;

Expand All @@ -26,7 +25,10 @@ pub trait Ics20Keeper:
type AccountId;
}

pub trait Ics20Reader: ChannelReader + PortReader {
pub trait Ics20Reader: ChannelReader + PortReader
where
Self: Sized,
{
type AccountId: TryFrom<Signer>;

/// get_port returns the portID for the transfer module.
Expand All @@ -38,7 +40,8 @@ pub trait Ics20Reader: ChannelReader + PortReader {
port_id: &PortId,
channel_id: ChannelId,
) -> Result<<Self as Ics20Reader>::AccountId, Ics20Error> {
let hash = cosmos_adr028_escrow_address(port_id, channel_id);
let hash = cosmos_adr028_escrow_address(self, port_id, channel_id);

String::from_utf8(hex::encode_upper(hash))
.expect("hex encoded bytes are not valid UTF8")
.parse::<Signer>()
Expand All @@ -61,15 +64,17 @@ pub trait Ics20Reader: ChannelReader + PortReader {
}

// https://github.com/cosmos/cosmos-sdk/blob/master/docs/architecture/adr-028-public-key-addresses.md
fn cosmos_adr028_escrow_address(port_id: &PortId, channel_id: ChannelId) -> Vec<u8> {
fn cosmos_adr028_escrow_address(
ctx: &dyn ChannelReader,
port_id: &PortId,
channel_id: ChannelId,
) -> Vec<u8> {
let contents = format!("{}/{}", port_id, channel_id);
let mut data = VERSION.as_bytes().to_vec();
data.extend_from_slice(&[0]);
data.extend_from_slice(contents.as_bytes());

let mut hasher = Sha256::new();
hasher.update(VERSION.as_bytes());
hasher.update([0]);
hasher.update(contents.as_bytes());

let mut hash = hasher.finalize().to_vec();
let mut hash = ctx.hash(data);
hash.truncate(20);
hash
}
Expand Down Expand Up @@ -105,6 +110,7 @@ pub trait BankKeeper {
pub trait Ics20Context:
Ics20Keeper<AccountId = <Self as Ics20Context>::AccountId>
+ Ics20Reader<AccountId = <Self as Ics20Context>::AccountId>
+ ReaderContext
{
type AccountId: TryFrom<Signer>;
}
Expand Down Expand Up @@ -296,6 +302,9 @@ pub fn on_timeout_packet(

#[cfg(test)]
pub(crate) mod test {
use std::sync::Mutex;

use std::sync::Arc;
use subtle_encoding::bech32;

use crate::applications::transfer::context::cosmos_adr028_escrow_address;
Expand All @@ -305,6 +314,7 @@ pub(crate) mod test {
use crate::applications::transfer::PrefixedCoin;
use crate::core::ics04_channel::error::Error;
use crate::handler::HandlerOutputBuilder;
use crate::mock::context::MockIbcStore;
use crate::prelude::*;
use crate::test_utils::DummyTransferModule;

Expand All @@ -322,7 +332,9 @@ pub(crate) mod test {
let port_id = port_id.parse().unwrap();
let channel_id = channel_id.parse().unwrap();
let gen_address = {
let addr = cosmos_adr028_escrow_address(&port_id, channel_id);
let ibc_store = MockIbcStore::default();
let ctx = DummyTransferModule::new(Arc::new(Mutex::new(ibc_store)));
let addr = cosmos_adr028_escrow_address(&ctx, &port_id, channel_id);
bech32::encode("cosmos", addr)
};
assert_eq!(gen_address, address.to_owned())
Expand Down
26 changes: 13 additions & 13 deletions modules/src/clients/ics07_tendermint/client_def.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ use crate::core::ics24_host::path::{
ConnectionsPath, ReceiptsPath, SeqRecvsPath,
};
use crate::core::ics24_host::Path;
use crate::core::ics26_routing::context::LightClientContext;
use crate::core::ics26_routing::context::ReaderContext;
use crate::downcast;
use crate::prelude::*;
use crate::Height;
Expand All @@ -48,7 +48,7 @@ impl ClientDef for TendermintClient {

fn verify_header(
&self,
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
client_id: ClientId,
client_state: Self::ClientState,
header: Self::Header,
Expand Down Expand Up @@ -137,7 +137,7 @@ impl ClientDef for TendermintClient {

fn update_state(
&self,
_ctx: &dyn LightClientContext,
_ctx: &dyn ReaderContext,
_client_id: ClientId,
client_state: Self::ClientState,
header: Self::Header,
Expand All @@ -161,7 +161,7 @@ impl ClientDef for TendermintClient {

fn check_for_misbehaviour(
&self,
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
client_id: ClientId,
client_state: Self::ClientState,
header: Self::Header,
Expand Down Expand Up @@ -242,7 +242,7 @@ impl ClientDef for TendermintClient {

fn verify_client_consensus_state(
&self,
_ctx: &dyn LightClientContext,
_ctx: &dyn ReaderContext,
client_state: &Self::ClientState,
height: Height,
prefix: &CommitmentPrefix,
Expand All @@ -267,7 +267,7 @@ impl ClientDef for TendermintClient {

fn verify_connection_state(
&self,
_ctx: &dyn LightClientContext,
_ctx: &dyn ReaderContext,
_client_id: &ClientId,
client_state: &Self::ClientState,
height: Height,
Expand All @@ -288,7 +288,7 @@ impl ClientDef for TendermintClient {

fn verify_channel_state(
&self,
_ctx: &dyn LightClientContext,
_ctx: &dyn ReaderContext,
_client_id: &ClientId,
client_state: &Self::ClientState,
height: Height,
Expand All @@ -310,7 +310,7 @@ impl ClientDef for TendermintClient {

fn verify_client_full_state(
&self,
_ctx: &dyn LightClientContext,
_ctx: &dyn ReaderContext,
client_state: &Self::ClientState,
height: Height,
prefix: &CommitmentPrefix,
Expand All @@ -330,7 +330,7 @@ impl ClientDef for TendermintClient {

fn verify_packet_data(
&self,
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
_client_id: &ClientId,
client_state: &Self::ClientState,
height: Height,
Expand Down Expand Up @@ -363,7 +363,7 @@ impl ClientDef for TendermintClient {

fn verify_packet_acknowledgement(
&self,
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
_client_id: &ClientId,
client_state: &Self::ClientState,
height: Height,
Expand Down Expand Up @@ -396,7 +396,7 @@ impl ClientDef for TendermintClient {

fn verify_next_sequence_recv(
&self,
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
_client_id: &ClientId,
client_state: &Self::ClientState,
height: Height,
Expand Down Expand Up @@ -428,7 +428,7 @@ impl ClientDef for TendermintClient {

fn verify_packet_receipt_absence(
&self,
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
_client_id: &ClientId,
client_state: &Self::ClientState,
height: Height,
Expand Down Expand Up @@ -512,7 +512,7 @@ fn verify_non_membership(
}

fn verify_delay_passed(
ctx: &dyn LightClientContext,
ctx: &dyn ReaderContext,
height: Height,
connection_end: &ConnectionEnd,
) -> Result<(), Ics02Error> {
Expand Down
Loading

0 comments on commit 61fb44a

Please sign in to comment.