eth-tracker/internal/chain/eth_rpc_e2e_test.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)
}