viem-goviem-go

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 hash
hash, _ := hash.ToFunctionHash("function transfer(address to, uint256 amount)")
// "0xa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b"
// Get hash as bytes
hashBytes, _ := hash.ToFunctionHashBytes("function transfer(address,uint256)")
// []byte{0xa9, 0x05, 0x9c, ...}

Returns

  • Type: (string, error) for ToFunctionHash, ([]byte, error) for ToFunctionHashBytes

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 ToFunctionSelector which returns only the first 4 bytes
  • The function signature is normalized before hashing
  • This is equivalent to ToSignatureHash for function definitions