toFunctionHash
Returns the full keccak256 hash of a function signature
toFunctionHash
Returns the full keccak256 hash of a function signature. This is an alias for ToSignatureHash specifically for function definitions.
Import
import "github.com/ChefBingbong/viem-go/utils/hash"Usage
import "github.com/ChefBingbong/viem-go/utils/hash"
// Get full function hashhash, _ := hash.ToFunctionHash("function transfer(address to, uint256 amount)")// "0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"
// Get hash as byteshashBytes, _ := hash.ToFunctionHashBytes("function transfer(address,uint256)")// []byte{0xa9, 0x05, 0x9c, ...}Returns
- Type:
(string, error)forToFunctionHash,([]byte, error)forToFunctionHashBytes
The full 32-byte keccak256 hash of the function signature. ToFunctionHash returns a hex string with 0x prefix, ToFunctionHashBytes returns raw bytes.
Parameters
function (required)
- Type:
string
The function definition string.
hash, _ := hash.ToFunctionHash("function transfer(address,uint256)")// "0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"Functions
ToFunctionHash
Returns the full hash as a hex string:
hash, _ := hash.ToFunctionHash("function transfer(address,uint256)")
// "0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"
ToFunctionHashBytes
Returns the full hash as raw 32 bytes:
hashBytes, _ := hash.ToFunctionHashBytes("function transfer(address,uint256)")
// []byte{0xa9, 0x05, 0x9c, ...}
Notes
- This returns the full 32-byte hash, unlike
ToFunctionSelectorwhich returns only the first 4 bytes - The function signature is normalized before hashing
- This is equivalent to
ToSignatureHashfor function definitions