MCPcopy Create free account
hub / github.com/cairoeth/preconfirmations / GetAddressNonceRange

Method GetAddressNonceRange

rpc/server/request_processor.go:319–360  ·  view source on GitHub ↗
(address string)

Source from the content-addressed store, hash-verified

317}
318
319func (r *RPCRequest) GetAddressNonceRange(address string) (minNonce, maxNonce uint64, err error) {
320 // Get minimum nonce by asking the eth node for the current transaction count
321 _req := types.NewJSONRPCRequest(1, "eth_getTransactionCount", []interface{}{r.txFrom, "latest"})
322 jsonData, err := json.Marshal(_req)
323 if err != nil {
324 r.logger.Error("[GetAddressNonceRange] eth_getTransactionCount marshal failed", zap.Error(err))
325 return 0, 0, err
326 }
327 httpRes, err := r.client.ProxyRequest(jsonData)
328 if err != nil {
329 r.logger.Error("[GetAddressNonceRange] eth_getTransactionCount proxy request failed", zap.Error(err))
330 return 0, 0, err
331 }
332
333 resBytes, err := io.ReadAll(httpRes.Body)
334 httpRes.Body.Close()
335 if err != nil {
336 r.logger.Error("[GetAddressNonceRange] eth_getTransactionCount read response failed", zap.Error(err))
337 return 0, 0, err
338 }
339 _res, err := respBytesToJSONRPCResponse(resBytes)
340 if err != nil {
341 r.logger.Error("[GetAddressNonceRange] eth_getTransactionCount parsing response failed", zap.Error(err))
342 return 0, 0, err
343 }
344 _userNonceStr := ""
345 err = json.Unmarshal(_res.Result, &_userNonceStr)
346 if err != nil {
347 r.logger.Error("[GetAddressNonceRange] eth_getTransactionCount unmarshall failed", zap.Error(err))
348 r.writeRPCError("internal server error", types.JSONRPCInternalError)
349 return
350 }
351 _userNonceStr = strings.Replace(_userNonceStr, "0x", "", 1)
352 _userNonceBigInt := new(big.Int)
353 _userNonceBigInt.SetString(_userNonceStr, 16)
354 minNonce = _userNonceBigInt.Uint64()
355
356 // Get maximum nonce by looking at redis, which has current pending transactions
357 _redisMaxNonce, _, _ := RState.GetSenderMaxNonce(r.txFrom)
358 maxNonce = Max(minNonce, _redisMaxNonce)
359 return minNonce, maxNonce, nil
360}
361
362func (r *RPCRequest) WhitehatBalanceCheckerRewrite() {
363 var err error

Callers 1

sendTxToRelayMethod · 0.95

Calls 7

writeRPCErrorMethod · 0.95
MaxFunction · 0.85
GetSenderMaxNonceMethod · 0.80
ProxyRequestMethod · 0.65
ErrorMethod · 0.45
CloseMethod · 0.45

Tested by

no test coverage detected