11package core
22
33import (
4+ "fmt"
45 "time"
56
67 sdk "github.com/cosmos/cosmos-sdk/types"
8+ clienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types"
9+ "github.com/cosmos/ibc-go/v7/modules/core/exported"
710 "github.com/hyperledger-labs/yui-relayer/log"
8- "golang.org/x/sync/errgroup"
911)
1012
11- func CreateClients (src , dst * ProvableChain , srcHeight , dstHeight uint64 ) error {
13+ func CreateClients (src , dst * ProvableChain , srcHeight , dstHeight exported. Height ) error {
1214 logger := GetChainPairLogger (src , dst )
1315 defer logger .TimeTrack (time .Now (), "CreateClients" )
1416 var (
1517 clients = & RelayMsgs {Src : []sdk.Msg {}, Dst : []sdk.Msg {}}
1618 )
1719
18- srcH , dstH , err := getHeadersForCreateClient (src , dst , srcHeight , dstHeight )
19- if err != nil {
20- logger .Error (
21- "failed to get headers for create client" ,
22- err ,
23- )
24- return err
25- }
26-
2720 srcAddr , err := src .GetAddress ()
2821 if err != nil {
2922 logger .Error (
@@ -42,24 +35,27 @@ func CreateClients(src, dst *ProvableChain, srcHeight, dstHeight uint64) error {
4235 }
4336
4437 {
45- msg , err := dst .CreateMsgCreateClient ( dstH , srcAddr )
38+ cs , cons , err := dst .CreateInitialLightClientState ( dstHeight )
4639 if err != nil {
47- logger .Error (
48- "failed to create client" ,
49- err ,
50- )
40+ logger .Error ("failed to create initial light client state" , err )
5141 return err
5242 }
43+ msg , err := clienttypes .NewMsgCreateClient (cs , cons , srcAddr .String ())
44+ if err != nil {
45+ return fmt .Errorf ("failed to create MsgCreateClient: %v" , err )
46+ }
5347 clients .Src = append (clients .Src , msg )
5448 }
5549
5650 {
57- msg , err := src .CreateMsgCreateClient ( srcH , dstAddr )
51+ cs , cons , err := src .CreateInitialLightClientState ( srcHeight )
5852 if err != nil {
59- logger .Error (
60- "failed to create client" ,
61- err ,
62- )
53+ logger .Error ("failed to create initial light client state" , err )
54+ return err
55+ }
56+ msg , err := clienttypes .NewMsgCreateClient (cs , cons , dstAddr .String ())
57+ if err != nil {
58+ logger .Error ("failed to create MsgCreateClient: %v" , err )
6359 return err
6460 }
6561 clients .Dst = append (clients .Dst , msg )
@@ -117,23 +113,6 @@ func UpdateClients(src, dst *ProvableChain) error {
117113 return nil
118114}
119115
120- // getHeadersForCreateClient calls UpdateLightWithHeader on the passed chains concurrently
121- func getHeadersForCreateClient (src , dst LightClient , srcHeight , dstHeight uint64 ) (srch , dsth Header , err error ) {
122- var eg = new (errgroup.Group )
123- eg .Go (func () error {
124- srch , err = src .GetFinalizedHeader (srcHeight )
125- return err
126- })
127- eg .Go (func () error {
128- dsth , err = dst .GetFinalizedHeader (dstHeight )
129- return err
130- })
131- if err := eg .Wait (); err != nil {
132- return nil , nil , err
133- }
134- return srch , dsth , nil
135- }
136-
137116func GetClientPairLogger (src , dst Chain ) * log.RelayLogger {
138117 return log .GetLogger ().
139118 WithClientPair (
0 commit comments