@@ -8,11 +8,7 @@ import (
88 ethcommon "github.com/ethereum/go-ethereum/common"
99 ethtypes "github.com/ethereum/go-ethereum/core/types"
1010 "github.com/gagliardetto/solana-go"
11- solrpc "github.com/gagliardetto/solana-go/rpc"
1211 "github.com/rs/zerolog"
13- "github.com/zeta-chain/protocol-contracts-evm/pkg/erc20custody.sol"
14- "github.com/zeta-chain/protocol-contracts-evm/pkg/gatewayevm.sol"
15- "github.com/zeta-chain/protocol-contracts-evm/pkg/zetaconnector.non-eth.sol"
1612
1713 zetatoolclients "github.com/zeta-chain/node/cmd/zetatool/clients"
1814 "github.com/zeta-chain/node/cmd/zetatool/context"
@@ -21,13 +17,9 @@ import (
2117 solanacontracts "github.com/zeta-chain/node/pkg/contracts/solana"
2218 crosschaintypes "github.com/zeta-chain/node/x/crosschain/types"
2319 observertypes "github.com/zeta-chain/node/x/observer/types"
24- "github.com/zeta-chain/node/zetaclient/chains/bitcoin/client"
25- "github.com/zeta-chain/node/zetaclient/chains/bitcoin/common"
2620 btcobserver "github.com/zeta-chain/node/zetaclient/chains/bitcoin/observer"
2721 evmobserver "github.com/zeta-chain/node/zetaclient/chains/evm/observer"
2822 solobserver "github.com/zeta-chain/node/zetaclient/chains/solana/observer"
29- solrepo "github.com/zeta-chain/node/zetaclient/chains/solana/repo"
30- zetaclientConfig "github.com/zeta-chain/node/zetaclient/config"
3123)
3224
3325// CheckInbound checks the inbound chain,gets the inbound ballot identifier and updates the TrackingDetails
@@ -106,14 +98,7 @@ func (c *TrackingDetails) btcInboundBallotIdentifier(ctx *context.Context) error
10698 return fmt .Errorf ("unable to get bitcoin net params from chain id: %w" , err )
10799 }
108100
109- connCfg := zetaclientConfig.BTCConfig {
110- RPCUsername : cfg .BtcUser ,
111- RPCPassword : cfg .BtcPassword ,
112- RPCHost : cfg .BtcHost ,
113- RPCParams : params .Name ,
114- }
115-
116- btcClient , err := client .New (connCfg , inboundChain .ChainId , logger )
101+ btcClient , err := zetatoolclients .NewBitcoinClientAdapter (cfg , inboundChain , logger )
117102 if err != nil {
118103 return fmt .Errorf ("unable to create rpc client: %w" , err )
119104 }
@@ -163,17 +148,15 @@ func (c *TrackingDetails) btcInboundBallotIdentifier(ctx *context.Context) error
163148 return fmt .Errorf ("failed to get block: %w" , err )
164149 }
165150
166- // Build inbound event
167- event , err := btcobserver .GetBtcEventWithWitness (
151+ // Build inbound event using the adapter method
152+ event , err := btcClient .GetBtcEventWithWitness (
168153 goCtx ,
169- btcClient ,
170154 * tx ,
171155 tssBtcAddress ,
172156 uint64 (blockVb .Height ), // #nosec G115 always positive
173157 feeRateMultiplier ,
174158 zerolog .New (zerolog .Nop ()),
175159 params ,
176- common .CalcDepositorFee ,
177160 )
178161 if err != nil {
179162 return fmt .Errorf ("failed to build btc event: %w" , err )
@@ -251,31 +234,21 @@ func (c *TrackingDetails) evmInboundBallotIdentifier(ctx *context.Context) error
251234 switch {
252235 case compareAddress (tx .To ().Hex (), chainParams .ConnectorContractAddress ):
253236 {
254- addrConnector := ethcommon .HexToAddress (chainParams .ConnectorContractAddress )
255- connector , err := zetaconnector .NewZetaConnectorNonEth (addrConnector , evmClient .Unwrap ())
256- if err != nil {
257- return fmt .Errorf ("failed to get connector contract: %w" , err )
258- }
259237 for _ , log := range receipt .Logs {
260- event , err := connector . ParseZetaSent (* log )
238+ event , err := evmClient . ParseConnectorZetaSent (* log , chainParams . ConnectorContractAddress )
261239 if err == nil && event != nil {
262240 msg = legacy .ZetaTokenVoteV1 (event , inboundChain .ChainId )
263241 }
264242 }
265243 }
266244 case compareAddress (tx .To ().Hex (), chainParams .Erc20CustodyContractAddress ):
267245 {
268- addrCustody := ethcommon .HexToAddress (chainParams .Erc20CustodyContractAddress )
269- custody , err := erc20custody .NewERC20Custody (addrCustody , evmClient .Unwrap ())
270- if err != nil {
271- return fmt .Errorf ("failed to get custody contract: %w" , err )
272- }
273- sender , err := evmClient .Unwrap ().TransactionSender (goCtx , tx , receipt .BlockHash , receipt .TransactionIndex )
246+ sender , err := evmClient .TransactionSender (goCtx , tx , receipt .BlockHash , receipt .TransactionIndex )
274247 if err != nil {
275248 return fmt .Errorf ("failed to get tx sender: %w" , err )
276249 }
277250 for _ , log := range receipt .Logs {
278- zetaDeposited , err := custody . ParseDeposited (* log )
251+ zetaDeposited , err := evmClient . ParseCustodyDeposited (* log , chainParams . Erc20CustodyContractAddress )
279252 if err == nil && zetaDeposited != nil {
280253 msg = legacy .Erc20VoteV1 (zetaDeposited , sender , inboundChain .ChainId , zetaChainID )
281254 }
@@ -286,7 +259,7 @@ func (c *TrackingDetails) evmInboundBallotIdentifier(ctx *context.Context) error
286259 if receipt .Status != ethtypes .ReceiptStatusSuccessful {
287260 return fmt .Errorf ("tx failed on chain %d" , inboundChain .ChainId )
288261 }
289- sender , err := evmClient .Unwrap (). TransactionSender (goCtx , tx , receipt .BlockHash , receipt .TransactionIndex )
262+ sender , err := evmClient .TransactionSender (goCtx , tx , receipt .BlockHash , receipt .TransactionIndex )
290263 if err != nil {
291264 return fmt .Errorf ("failed to get tx sender: %w" , err )
292265 }
@@ -295,16 +268,12 @@ func (c *TrackingDetails) evmInboundBallotIdentifier(ctx *context.Context) error
295268 default :
296269 {
297270 gatewayAddr := ethcommon .HexToAddress (chainParams .GatewayAddress )
298- gateway , err := gatewayevm .NewGatewayEVM (gatewayAddr , evmClient .Unwrap ())
299- if err != nil {
300- return fmt .Errorf ("failed to get gateway contract: %w" , err )
301- }
302271 foundLog := false
303272 for _ , log := range receipt .Logs {
304273 if log == nil || log .Address != gatewayAddr {
305274 continue
306275 }
307- eventDeposit , err := gateway . ParseDeposited (* log )
276+ eventDeposit , err := evmClient . ParseGatewayDeposited (* log , chainParams . GatewayAddress )
308277 if err == nil {
309278 voteMsg := evmobserver .NewDepositInboundVote (
310279 eventDeposit ,
@@ -318,7 +287,7 @@ func (c *TrackingDetails) evmInboundBallotIdentifier(ctx *context.Context) error
318287 foundLog = true
319288 break
320289 }
321- eventDepositAndCall , err := gateway . ParseDepositedAndCalled (* log )
290+ eventDepositAndCall , err := evmClient . ParseGatewayDepositedAndCalled (* log , chainParams . GatewayAddress )
322291 if err == nil {
323292 voteMsg := evmobserver .NewDepositAndCallInboundVote (
324293 eventDepositAndCall ,
@@ -331,7 +300,7 @@ func (c *TrackingDetails) evmInboundBallotIdentifier(ctx *context.Context) error
331300 foundLog = true
332301 break
333302 }
334- eventCall , err := gateway . ParseCalled (* log )
303+ eventCall , err := evmClient . ParseGatewayCalled (* log , chainParams . GatewayAddress )
335304 if err == nil {
336305 voteMsg := evmobserver .NewCallInboundVote (
337306 eventCall ,
@@ -365,18 +334,18 @@ func (c *TrackingDetails) solanaInboundBallotIdentifier(ctx *context.Context) er
365334 logger = ctx .GetLogger ()
366335 goCtx = ctx .GetContext ()
367336 )
368- solClient := solrpc .New (cfg .SolanaRPC )
369- if solClient == nil {
370- return fmt .Errorf ("error creating rpc client" )
337+
338+ solClient , err := zetatoolclients .NewSolanaClientAdapter (cfg .SolanaRPC )
339+ if err != nil {
340+ return fmt .Errorf ("error creating rpc client: %w" , err )
371341 }
372- solRepo := solrepo .New (solClient )
373342
374343 signature , err := solana .SignatureFromBase58 (inboundHash )
375344 if err != nil {
376345 return fmt .Errorf ("error parsing signature: %w" , err )
377346 }
378347
379- txResult , err := solRepo .GetTransaction (goCtx , signature )
348+ txResult , err := solClient .GetTransaction (goCtx , signature )
380349 if err != nil {
381350 return fmt .Errorf ("error getting transaction: %w" , err )
382351 }
@@ -391,9 +360,9 @@ func (c *TrackingDetails) solanaInboundBallotIdentifier(ctx *context.Context) er
391360 return fmt .Errorf ("cannot parse gateway address: %s, err: %w" , chainParams .GatewayAddress , err )
392361 }
393362
394- resolvedTx := solobserver .ProcessTransactionResultWithAddressLookups (goCtx , txResult , solClient , logger , signature )
363+ resolvedTx := solClient .ProcessTransactionResultWithAddressLookups (goCtx , txResult , logger , signature )
395364
396- events , err := solobserver .FilterInboundEvents (txResult ,
365+ events , err := solClient .FilterInboundEvents (txResult ,
397366 gatewayID ,
398367 inboundChain .ChainId ,
399368 logger ,
0 commit comments