From 60eb160616afd2a2ab7415d1794e231fdaa34ff9 Mon Sep 17 00:00:00 2001 From: NagaTulasi Date: Mon, 25 Jan 2021 14:13:20 +0530 Subject: [PATCH 1/2] funcion added --- relayer/client-tx.go | 2 +- relayer/headers.go | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/relayer/client-tx.go b/relayer/client-tx.go index d27cd1e15..0c57bcd60 100644 --- a/relayer/client-tx.go +++ b/relayer/client-tx.go @@ -215,7 +215,7 @@ func (c *Chain) UpgradeClients(dst *Chain, height int64) error { // TODO: construct method of only attempting to get dst header // Note: we explicitly do not check the error since the source // trusted header will fail - _, dstUpdateHeader, _ := sh.GetTrustedHeaders(c, dst) + dstUpdateHeader, _ := sh.GetTrusteddsthHeader(c, dst) // query proofs on counterparty clientState, proofUpgradeClient, _, err := dst.QueryUpgradedClient(height) diff --git a/relayer/headers.go b/relayer/headers.go index 7c22397ed..759ba5290 100644 --- a/relayer/headers.go +++ b/relayer/headers.go @@ -100,6 +100,16 @@ func (uh *SyncHeaders) GetTrustedHeaders(src, dst *Chain) (srcTh, dstTh *tmclien return } +func (uh *SyncHeaders) GetTrusteddsthHeader(src, dst *Chain) (dstTh *tmclient.Header, err error) { + eg := new(errgroup.Group) + eg.Go(func() error { + dstTh, err = InjectTrustedFields(dst, src, uh.GetHeader(dst.ChainID)) + return err + }) + err = eg.Wait() + return +} + // InjectTrustedFields injects the necessary trusted fields for a srcHeader coming from a srcChain // destined for an IBC client stored on the dstChain // TrustedHeight is the latest height of the IBC client on dstChain From cab08547ded95f6582d400763d1f33f2bceef735 Mon Sep 17 00:00:00 2001 From: NagaTulasi Date: Tue, 2 Feb 2021 15:46:01 +0530 Subject: [PATCH 2/2] GetTrustedHeader added --- relayer/client-tx.go | 10 +++++----- relayer/headers.go | 5 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/relayer/client-tx.go b/relayer/client-tx.go index 5443ec30d..420c9cef9 100644 --- a/relayer/client-tx.go +++ b/relayer/client-tx.go @@ -197,7 +197,7 @@ func (c *Chain) UpdateClients(dst *Chain) (err error) { return nil } -// UpgradesClients upgrades the client on src after dst chain has undergone an upgrade. +// UpgradeClients upgrades the client on src after dst chain has undergone an upgrade. func (c *Chain) UpgradeClients(dst *Chain, height int64) error { sh, err := NewSyncHeaders(c, dst) if err != nil { @@ -211,10 +211,10 @@ func (c *Chain) UpgradeClients(dst *Chain, height int64) error { height = int64(sh.GetHeight(dst.ChainID)) } - // TODO: construct method of only attempting to get dst header - // Note: we explicitly do not check the error since the source - // trusted header will fail - dstUpdateHeader, _ := sh.GetTrusteddsthHeader(c, dst) + dstUpdateHeader, err := sh.GetTrustedHeader(dst, c) + if err != nil { + return err + } // query proofs on counterparty clientState, proofUpgradeClient, _, err := dst.QueryUpgradedClient(height) diff --git a/relayer/headers.go b/relayer/headers.go index 759ba5290..a2530229d 100644 --- a/relayer/headers.go +++ b/relayer/headers.go @@ -100,10 +100,11 @@ func (uh *SyncHeaders) GetTrustedHeaders(src, dst *Chain) (srcTh, dstTh *tmclien return } -func (uh *SyncHeaders) GetTrusteddsthHeader(src, dst *Chain) (dstTh *tmclient.Header, err error) { +// GetTrustedHeader returns given chain ID's trusted header +func (uh *SyncHeaders) GetTrustedHeader(src, dst *Chain) (header *tmclient.Header, err error) { eg := new(errgroup.Group) eg.Go(func() error { - dstTh, err = InjectTrustedFields(dst, src, uh.GetHeader(dst.ChainID)) + header, err = InjectTrustedFields(src, dst, uh.GetHeader(src.ChainID)) return err }) err = eg.Wait()