Sfoglia il codice sorgente

rpc: make ExampleClientSubscription work with the geth API (#19483)

This corrects the call to eth_getBlockByNumber, which previously
returned this error:

  can't get latest block: missing value for required argument 1

Co-authored-by: Felix Lange <fjl@twurst.com>
Julian Y 5 anni fa
parent
commit
5c3993444d
1 ha cambiato i file con 6 aggiunte e 5 eliminazioni
  1. 6 5
      rpc/client_example_test.go

+ 6 - 5
rpc/client_example_test.go

@@ -19,9 +19,9 @@ package rpc_test
 import (
 	"context"
 	"fmt"
-	"math/big"
 	"time"
 
+	"github.com/ethereum/go-ethereum/common/hexutil"
 	"github.com/ethereum/go-ethereum/rpc"
 )
 
@@ -31,16 +31,16 @@ import (
 // eth_getBlockByNumber("latest", {})
 //    returns the latest block object.
 //
-// eth_subscribe("newBlocks")
+// eth_subscribe("newHeads")
 //    creates a subscription which fires block objects when new blocks arrive.
 
 type Block struct {
-	Number *big.Int
+	Number *hexutil.Big
 }
 
 func ExampleClientSubscription() {
 	// Connect the client.
-	client, _ := rpc.Dial("ws://127.0.0.1:8485")
+	client, _ := rpc.Dial("ws://127.0.0.1:8545")
 	subch := make(chan Block)
 
 	// Ensure that subch receives the latest block.
@@ -75,7 +75,8 @@ func subscribeBlocks(client *rpc.Client, subch chan Block) {
 	// The connection is established now.
 	// Update the channel with the current block.
 	var lastBlock Block
-	if err := client.CallContext(ctx, &lastBlock, "eth_getBlockByNumber", "latest"); err != nil {
+	err = client.CallContext(ctx, &lastBlock, "eth_getBlockByNumber", "latest", false)
+	if err != nil {
 		fmt.Println("can't get latest block:", err)
 		return
 	}