package utils

import (
	"encoding/hex"
	"github.com/ethereum/eth-go"
	"github.com/ethereum/eth-go/ethchain"
	"github.com/ethereum/eth-go/ethminer"
	_ "github.com/ethereum/eth-go/ethrpc"
	"github.com/ethereum/eth-go/ethutil"
	"log"
)

func DoMining(ethereum *eth.Ethereum) {
	// Set Mining status
	ethereum.Mining = true

	log.Println("Miner started")

	// Fake block mining. It broadcasts a new block every 5 seconds
	go func() {
		data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
		keyRing := ethutil.NewValueFromBytes(data)
		addr := keyRing.Get(0).Bytes()

		pair, _ := ethchain.NewKeyPairFromSec(ethutil.FromHex(hex.EncodeToString(addr)))

		miner := ethminer.NewDefaultMiner(pair.Address(), ethereum)
		miner.Start()

	}()
}