36 lines
		
	
	
		
			751 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			751 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								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)
							 | 
						||
| 
								 | 
							
								}
							 |