package block

import (
	"encoding/hex"
	"encoding/json"
	"fmt"
	"os"
	"testing"

	"git.marketally.com/tutus-one/tutus-chain/internal/testserdes"
	"github.com/stretchr/testify/require"
)

func getDecodedBlock(t *testing.T, i int) *Block {
	data, err := getBlockData(i)
	require.NoError(t, err)

	b, err := hex.DecodeString(data["raw"].(string))
	require.NoError(t, err)

	block := New(false)
	require.NoError(t, testserdes.DecodeBinary(b, block))

	return block
}

func getBlockData(i int) (map[string]any, error) {
	b, err := os.ReadFile(fmt.Sprintf("../test_data/block_%d.json", i))
	if err != nil {
		return nil, err
	}
	var data map[string]any
	if err := json.Unmarshal(b, &data); err != nil {
		return nil, err
	}
	return data, err
}
