From a609e7b81fbf360745b06a35227da52cc50c2d1b Mon Sep 17 00:00:00 2001 From: Mark Tyneway Date: Tue, 8 Nov 2022 03:14:11 -0800 Subject: [PATCH] common/types: add `Address.Big` (#26132) Many of the other types have a function to convert the type to a big.Int, but Address was missing this function. It is useful to be able to turn an Address into a big.Int when doing EVM-like computations natively in Go. Sometimes a Solidity address type is casted to a uint256 and having a Big method on the Address type makes this easy. --- common/types.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/types.go b/common/types.go index 2205835cb5..218ca0be4c 100644 --- a/common/types.go +++ b/common/types.go @@ -231,6 +231,9 @@ func (a Address) Bytes() []byte { return a[:] } // Hash converts an address to a hash by left-padding it with zeros. func (a Address) Hash() Hash { return BytesToHash(a[:]) } +// Big converts an address to a big integer. +func (a Address) Big() *big.Int { return new(big.Int).SetBytes(a[:]) } + // Hex returns an EIP55-compliant hex string representation of the address. func (a Address) Hex() string { return string(a.checksumHex())