package biginthelper

import (
	"math/big"
	"regexp"
	"strconv"
)

// ParseBigInt 将字符串转换为 big.Int
func ParseBigInt(value string) *big.Int {
	bi := new(big.Int)
	i, ok := bi.SetString(value, 10)
	if !ok {
		return bi
	}
	return i
}

// IntToHex convert int to hexadecimal representation
// int64转换为16进制字符串
func IntToHex(i int64) string {
	return strconv.FormatInt(i, 16)
}

// BigToHex 将bigint转化为16进制带 0x 的字符串
func BigToHex(bigInt big.Int) string {
	return "0x" + IntToHex(bigInt.Int64())
}

// CheckIsAddress Check is a eth Address
// 检查是否是以太坊地址 正则匹配
func CheckIsAddress(addr string) bool {
	re := regexp.MustCompile("^0x[0-9a-fA-F]{40}$")
	return re.MatchString(addr)
}
