From e0843bf2bc2cfd8d33be39fe2262620e2e3271a7 Mon Sep 17 00:00:00 2001 From: Josh Siegel Date: Tue, 13 Sep 2022 15:35:06 -0500 Subject: [PATCH] near/watcher_fix: improve metrics --- node/pkg/near/watcher.go | 50 +++++++++++++++++------------ sdk/js/src/token_bridge/transfer.ts | 4 +-- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/node/pkg/near/watcher.go b/node/pkg/near/watcher.go index 65a841d75..1f925e88d 100644 --- a/node/pkg/near/watcher.go +++ b/node/pkg/near/watcher.go @@ -388,6 +388,28 @@ func (e *Watcher) Run(ctx context.Context) error { logger.Info("Near watcher connecting to RPC node ", zap.String("url", e.nearRPC)) + go func() { + for { + select { + case <-ctx.Done(): + return + case r := <-e.obsvReqC: + if vaa.ChainID(r.ChainId) != vaa.ChainIDNear { + panic("invalid chain ID") + } + + txHash := base58.Encode(r.TxHash) + + logger.Info("Received obsv request", zap.String("tx_hash", txHash)) + + err := e.inspectStatus(logger, txHash, e.wormholeContract, 0) + if err != nil { + logger.Error(fmt.Sprintf("near obsvReqC: %s", err.Error())) + } + } + } + }() + go func() { if e.next_round == 0 { finalBody, err := e.getFinalBlock() @@ -407,20 +429,6 @@ func (e *Watcher) Run(ctx context.Context) error { select { case <-ctx.Done(): return - case r := <-e.obsvReqC: - if vaa.ChainID(r.ChainId) != vaa.ChainIDNear { - panic("invalid chain ID") - } - - txHash := base58.Encode(r.TxHash) - - logger.Info("Received obsv request", zap.String("tx_hash", txHash)) - - err := e.inspectStatus(logger, txHash, e.wormholeContract, 0) - if err != nil { - logger.Error(fmt.Sprintf("near obsvReqC: %s", err.Error())) - } - case <-timer.C: finalBody, err := e.getFinalBlock() if err != nil { @@ -456,6 +464,13 @@ func (e *Watcher) Run(ctx context.Context) error { logger.Info("lastBlock", zap.Uint64("lastBlock", lastBlock), zap.Uint64("next_round", e.next_round)) for ; e.next_round <= lastBlock; e.next_round = e.next_round + 1 { + currentNearHeight.Set(float64(e.next_round)) + p2p.DefaultRegistry.SetNetworkStats(vaa.ChainIDNear, &gossipv1.Heartbeat_Network{ + Height: int64(e.next_round), + ContractAddress: e.wormholeContract, + }) + readiness.SetReady(common.ReadinessNearSyncing) + if e.next_round == lastBlock { err := e.inspectBody(logger, e.next_round, parsedFinalBody) if err != nil { @@ -487,13 +502,6 @@ func (e *Watcher) Run(ctx context.Context) error { } } } - - currentNearHeight.Set(float64(e.next_round - 1)) - p2p.DefaultRegistry.SetNetworkStats(vaa.ChainIDNear, &gossipv1.Heartbeat_Network{ - Height: int64(e.next_round - 1), - ContractAddress: e.wormholeContract, - }) - readiness.SetReady(common.ReadinessNearSyncing) } } }() diff --git a/sdk/js/src/token_bridge/transfer.ts b/sdk/js/src/token_bridge/transfer.ts index be67285da..04b41d71f 100644 --- a/sdk/js/src/token_bridge/transfer.ts +++ b/sdk/js/src/token_bridge/transfer.ts @@ -771,11 +771,11 @@ export async function transferNearFromNear( args: { receiver: uint8ArrayToHex(receiver), chain: chain, - fee: fee.toString(), + fee: fee.toString(10), payload: payload, message_fee: message_fee, }, - attachedDeposit: (new BN(qty.toString()).add(new BN(message_fee))), + attachedDeposit: (new BN(qty.toString(10)).add(new BN(message_fee))), gas: new BN("100000000000000"), });