mirror of
https://github.com/grassrootseconomics/eth-tracker.git
synced 2025-02-23 08:02:16 +01:00
99 lines
2.3 KiB
Go
99 lines
2.3 KiB
Go
package chain
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
const (
|
|
testRPCEndpoint = "https://alfajores-forno.celo-testnet.org"
|
|
testChainID = 44787
|
|
)
|
|
|
|
func setupEthRPC() (Chain, error) {
|
|
opts := EthRPCOpts{
|
|
RPCEndpoint: testRPCEndpoint,
|
|
ChainID: testChainID,
|
|
}
|
|
return NewRPCFetcher(opts)
|
|
}
|
|
|
|
func TestRPC_GetBlocks(t *testing.T) {
|
|
rpcFetcher, err := setupEthRPC()
|
|
require.NoError(t, err)
|
|
|
|
blockNumbers := []uint64{
|
|
19_600_000,
|
|
23_000_000,
|
|
26_385_000,
|
|
}
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
blocks, err := rpcFetcher.GetBlocks(ctx, blockNumbers)
|
|
require.NoError(t, err)
|
|
t.Logf("blocks %+v\n", blocks)
|
|
}
|
|
|
|
func TestRPC_GetBlock(t *testing.T) {
|
|
rpcFetcher, err := setupEthRPC()
|
|
require.NoError(t, err)
|
|
|
|
var blockNumber uint64 = 26_386_000
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
block, err := rpcFetcher.GetBlock(ctx, blockNumber)
|
|
require.NoError(t, err)
|
|
t.Logf("block %+v\n", block)
|
|
}
|
|
|
|
func TestRPC_GetLatestBlock(t *testing.T) {
|
|
rpcFetcher, err := setupEthRPC()
|
|
require.NoError(t, err)
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
block, err := rpcFetcher.GetLatestBlock(ctx)
|
|
require.NoError(t, err)
|
|
t.Logf("block %+v\n", block)
|
|
}
|
|
|
|
func TestRPC_GetTransaction(t *testing.T) {
|
|
rpcFetcher, err := setupEthRPC()
|
|
require.NoError(t, err)
|
|
|
|
var blockNumber uint64 = 26_387_000
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
block, err := rpcFetcher.GetBlock(ctx, blockNumber)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, block)
|
|
|
|
transaction, err := rpcFetcher.GetTransaction(ctx, block.Transactions()[0].Hash())
|
|
require.NoError(t, err)
|
|
t.Logf("transaction %+v\n", transaction)
|
|
}
|
|
|
|
func TestRPC_GetReceipts(t *testing.T) {
|
|
rpcFetcher, err := setupEthRPC()
|
|
require.NoError(t, err)
|
|
|
|
var blockNumber uint64 = 26_388_000
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
|
|
block, err := rpcFetcher.GetBlock(ctx, blockNumber)
|
|
require.NoError(t, err)
|
|
require.NotNil(t, block)
|
|
|
|
receipts, err := rpcFetcher.GetReceipts(ctx, block.Number())
|
|
require.NoError(t, err)
|
|
t.Logf("receipts %+v\n", receipts)
|
|
}
|