|
1 | 1 | package main
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "fmt" |
| 5 | + |
4 | 6 | sdk "github.com/cosmos/cosmos-sdk/types"
|
5 | 7 | ethcommon "github.com/ethereum/go-ethereum/common"
|
| 8 | + "github.com/ethereum/go-ethereum/ethclient" |
6 | 9 |
|
7 | 10 | "github.com/zeta-chain/zetacore/zetaclient/authz"
|
8 | 11 | "github.com/zeta-chain/zetacore/zetaclient/chains/base"
|
9 | 12 | btcobserver "github.com/zeta-chain/zetacore/zetaclient/chains/bitcoin/observer"
|
| 13 | + btcrpc "github.com/zeta-chain/zetacore/zetaclient/chains/bitcoin/rpc" |
10 | 14 | btcsigner "github.com/zeta-chain/zetacore/zetaclient/chains/bitcoin/signer"
|
11 | 15 | evmobserver "github.com/zeta-chain/zetacore/zetaclient/chains/evm/observer"
|
12 | 16 | evmsigner "github.com/zeta-chain/zetacore/zetaclient/chains/evm/signer"
|
@@ -116,32 +120,75 @@ func CreateChainObserverMap(
|
116 | 120 | logger base.Logger,
|
117 | 121 | ts *metrics.TelemetryServer,
|
118 | 122 | ) (map[int64]interfaces.ChainObserver, error) {
|
| 123 | + zetacoreContext := appContext.ZetacoreContext() |
119 | 124 | observerMap := make(map[int64]interfaces.ChainObserver)
|
120 | 125 | // EVM observers
|
121 | 126 | for _, evmConfig := range appContext.Config().GetAllEVMConfigs() {
|
122 | 127 | if evmConfig.Chain.IsZetaChain() {
|
123 | 128 | continue
|
124 | 129 | }
|
125 |
| - _, found := appContext.ZetacoreContext().GetEVMChainParams(evmConfig.Chain.ChainId) |
| 130 | + chainParams, found := zetacoreContext.GetEVMChainParams(evmConfig.Chain.ChainId) |
126 | 131 | if !found {
|
127 | 132 | logger.Std.Error().Msgf("ChainParam not found for chain %s", evmConfig.Chain.String())
|
128 | 133 | continue
|
129 | 134 | }
|
130 |
| - co, err := evmobserver.NewObserver(appContext, zetacoreClient, tss, dbpath, logger, evmConfig, ts) |
| 135 | + |
| 136 | + // create EVM client |
| 137 | + evmClient, err := ethclient.Dial(evmConfig.Endpoint) |
| 138 | + if err != nil { |
| 139 | + logger.Std.Error().Err(err).Msgf("error dailing endpoint %s", evmConfig.Endpoint) |
| 140 | + continue |
| 141 | + } |
| 142 | + |
| 143 | + // create EVM chain observer |
| 144 | + observer, err := evmobserver.NewObserver( |
| 145 | + evmConfig, |
| 146 | + evmClient, |
| 147 | + *chainParams, |
| 148 | + zetacoreContext, |
| 149 | + zetacoreClient, |
| 150 | + tss, |
| 151 | + dbpath, |
| 152 | + logger, |
| 153 | + ts, |
| 154 | + ) |
131 | 155 | if err != nil {
|
132 | 156 | logger.Std.Error().Err(err).Msgf("NewObserver error for evm chain %s", evmConfig.Chain.String())
|
133 | 157 | continue
|
134 | 158 | }
|
135 |
| - observerMap[evmConfig.Chain.ChainId] = co |
| 159 | + observerMap[evmConfig.Chain.ChainId] = observer |
136 | 160 | }
|
| 161 | + |
137 | 162 | // BTC observer
|
| 163 | + _, chainParams, found := zetacoreContext.GetBTCChainParams() |
| 164 | + if !found { |
| 165 | + return nil, fmt.Errorf("bitcoin chains params not found") |
| 166 | + } |
| 167 | + |
| 168 | + // create BTC chain observer |
138 | 169 | btcChain, btcConfig, enabled := appContext.GetBTCChainAndConfig()
|
139 | 170 | if enabled {
|
140 |
| - co, err := btcobserver.NewObserver(appContext, btcChain, zetacoreClient, tss, dbpath, logger, btcConfig, ts) |
| 171 | + btcClient, err := btcrpc.NewRPCClient(btcConfig) |
141 | 172 | if err != nil {
|
142 |
| - logger.Std.Error().Err(err).Msgf("NewObserver error for bitcoin chain %s", btcChain.String()) |
| 173 | + logger.Std.Error().Err(err).Msgf("error creating rpc client for bitcoin chain %s", btcChain.String()) |
143 | 174 | } else {
|
144 |
| - observerMap[btcChain.ChainId] = co |
| 175 | + // create BTC chain observer |
| 176 | + observer, err := btcobserver.NewObserver( |
| 177 | + btcChain, |
| 178 | + btcClient, |
| 179 | + *chainParams, |
| 180 | + zetacoreContext, |
| 181 | + zetacoreClient, |
| 182 | + tss, |
| 183 | + dbpath, |
| 184 | + logger, |
| 185 | + ts, |
| 186 | + ) |
| 187 | + if err != nil { |
| 188 | + logger.Std.Error().Err(err).Msgf("NewObserver error for bitcoin chain %s", btcChain.String()) |
| 189 | + } else { |
| 190 | + observerMap[btcChain.ChainId] = observer |
| 191 | + } |
145 | 192 | }
|
146 | 193 | }
|
147 | 194 |
|
|
0 commit comments