@tevm/voltaire / primitives/Domain
primitives/Domain
Classes
InvalidDomainError
Defined in: src/primitives/Domain/errors.js:4 Error thrown when Domain is invalidExtends
Error
Constructors
Constructor
new InvalidDomainError(Defined in: src/primitives/Domain/errors.js:9message,context?):InvalidDomainError
Parameters
message
string
context?
any
Returns
InvalidDomainError
Overrides
Error.constructor
Properties
context
context: any
Defined in: src/primitives/Domain/errors.js:12
name
name: string
Defined in: src/primitives/Domain/errors.js:11
Inherited from
Error.name
Type Aliases
DomainType
DomainType = object
Defined in: src/primitives/Domain/DomainType.ts:19
EIP-712 Domain Separator structure
Used to create domain-specific signatures for dApps
At least one field must be defined
Properties
chainId?
Defined in: src/primitives/Domain/DomainType.ts:22readonlyoptionalchainId:ChainIdType
name?
Defined in: src/primitives/Domain/DomainType.ts:20readonlyoptionalname:string
salt?
Defined in: src/primitives/Domain/DomainType.ts:24readonlyoptionalsalt:HashType
verifyingContract?
Defined in: src/primitives/Domain/DomainType.ts:23readonlyoptionalverifyingContract:AddressType
version?
Defined in: src/primitives/Domain/DomainType.ts:21readonlyoptionalversion:string
ERC5267Response
ERC5267Response = object
Defined in: src/primitives/Domain/ERC5267Type.ts:11
ERC-5267 eip712Domain() return type
Standardized format for returning EIP-712 domain parameters
from smart contracts implementing ERC-5267.
See
https://eips.ethereum.org/EIPS/eip-5267Properties
chainId
Defined in: src/primitives/Domain/ERC5267Type.ts:15readonlychainId:bigint
extensions
Defined in: src/primitives/Domain/ERC5267Type.ts:18readonlyextensions: readonlybigint[]
fields
Defined in: src/primitives/Domain/ERC5267Type.ts:12readonlyfields:Uint8Array
name
Defined in: src/primitives/Domain/ERC5267Type.ts:13readonlyname:string
salt
Defined in: src/primitives/Domain/ERC5267Type.ts:17readonlysalt:Uint8Array
verifyingContract
Defined in: src/primitives/Domain/ERC5267Type.ts:16readonlyverifyingContract:AddressType
version
Defined in: src/primitives/Domain/ERC5267Type.ts:14readonlyversion:string
Variables
ERC5267_FIELDS
Defined in: src/primitives/Domain/ERC5267Type.ts:32 Field bitmap positions (ERC-5267 spec) Each bit indicates presence of corresponding field:constERC5267_FIELDS:object
- 0x01: name
- 0x02: version
- 0x04: chainId
- 0x08: verifyingContract
- 0x10: salt
- 0x20: extensions (reserved for future use)
Type Declaration
CHAIN_ID
readonlyCHAIN_ID:4=0x04
EXTENSIONS
readonlyEXTENSIONS:32=0x20
NAME
readonlyNAME:1=0x01
SALT
readonlySALT:16=0x10
VERIFYING_CONTRACT
readonlyVERIFYING_CONTRACT:8=0x08
VERSION
readonlyVERSION:2=0x02
Functions
_encodeData()
_encodeData(Defined in: src/primitives/Domain/encodeData.js:21 Encode EIP-712 data structure encodeData(primaryType, data, types) = encodeType(primaryType, types) || encodeValue(data)primaryType,data,types,crypto):Uint8Array<ArrayBufferLike>
Parameters
primaryType
string
Primary type name
data
any
Data object
types
Record<string, readonly EIP712Field[]>
Type definitions
crypto
Crypto dependencieskeccak256
(data) => Uint8Array
Keccak256 hash function
Returns
Uint8Array<ArrayBufferLike>
Encoded data
_encodeType()
_encodeType(Defined in: src/primitives/Domain/encodeType.js:15 Encode EIP-712 type definition Example: “Mail(Person from,Person to,string contents)Person(string name,address wallet)“primaryType,types):string
Parameters
primaryType
string
Primary type name
types
Record<string, readonly EIP712Field[]>
Type definitions
Returns
string
Encoded type string
_encodeValue()
_encodeValue(Defined in: src/primitives/Domain/encodeValue.js:20 Encode EIP-712 value according to typetype,value,types,crypto):Uint8Array<ArrayBufferLike>
Parameters
type
string
Field type
value
any
Field value
types
Record<string, readonly EIP712Field[]>
Type definitions
crypto
Crypto dependencieskeccak256
(data) => Uint8Array
Keccak256 hash function
Returns
Uint8Array<ArrayBufferLike>
Encoded value (32 bytes)
_from()
_from(Defined in: src/primitives/Domain/from.js:28 Create Domain from objectdomain):DomainType
Parameters
domain
Domain objectchainId?
number | ChainIdType
EIP-155 chain ID
name?
string
dApp name
salt?
string | HashType
Salt for disambiguation
verifyingContract?
string | AddressType
Contract address
version?
string
Domain version
Returns
DomainType
Domain
Throws
If domain has no fieldsExample
_getEIP712DomainType()
_getEIP712DomainType(Defined in: src/primitives/Domain/getEIP712DomainType.js:7 Get EIP712Domain type definition based on domain fields presentdomain):object[]
Parameters
domain
DomainType
Domain
Returns
object[]
Type definition
_getFieldsBitmap()
_getFieldsBitmap(Defined in: src/primitives/Domain/getFieldsBitmap.js:26 Calculate ERC-5267 field bitmap Returns 1-byte value where each bit indicates presence of a field:domain):Uint8Array<ArrayBufferLike>
- 0x01: name
- 0x02: version
- 0x04: chainId
- 0x08: verifyingContract
- 0x10: salt
- 0x20: extensions
Parameters
domain
DomainType
EIP-712 domain
Returns
Uint8Array<ArrayBufferLike>
- 1-byte bitmap
See
https://eips.ethereum.org/EIPS/eip-5267Example
_hashType()
_hashType(Defined in: src/primitives/Domain/hashType.js:14 Hash EIP-712 type definition typeHash = keccak256(encodeType(primaryType, types))primaryType,types,crypto):Uint8Array<ArrayBufferLike>
Parameters
primaryType
string
Primary type name
types
Record<string, readonly EIP712Field[]>
Type definitions
crypto
Crypto dependencieskeccak256
(data) => Uint8Array
Keccak256 hash function
Returns
Uint8Array<ArrayBufferLike>
Type hash (32 bytes)
_toErc5267Response()
_toErc5267Response(Defined in: src/primitives/Domain/toErc5267Response.js:37 Convert Domain to ERC-5267 eip712Domain() response format Calculates field bitmap based on which domain fields are present, then returns standardized tuple format. Missing fields are filled with appropriate default values per ERC-5267 spec.domain):ERC5267Response
Parameters
domain
DomainType
EIP-712 domain
Returns
ERC5267Response
- ERC-5267 formatted response
See
https://eips.ethereum.org/EIPS/eip-5267Example
_toHash()
_toHash(Defined in: src/primitives/Domain/toHash.js:18 Compute EIP-712 domain separator hashdomain,crypto):DomainSeparatorType
Parameters
domain
DomainType
Domain
crypto
Crypto dependencieskeccak256
(data) => Uint8Array
Keccak256 hash function
Returns
DomainSeparatorType
Domain separator hash
Example
encodeData()
encodeData(Defined in: src/primitives/Domain/index.ts:46primaryType,data,types,crypto):Uint8Array
Parameters
primaryType
string
data
any
types
Record<string, readonly object[]>
crypto
keccak256
(data) => Uint8Array
Returns
Uint8Array
encodeType()
encodeType(Defined in: src/primitives/Domain/index.ts:61primaryType,types):string
Parameters
primaryType
string
types
Record<string, readonly object[]>
Returns
string
encodeValue()
encodeValue(Defined in: src/primitives/Domain/index.ts:71type,value,types,crypto):Uint8Array
Parameters
type
string
value
any
types
Record<string, readonly object[]>
crypto
keccak256
(data) => Uint8Array
Returns
Uint8Array
from()
from(Defined in: src/primitives/Domain/index.ts:27domain):DomainType
Parameters
domain
chainId?
number | ChainIdType
name?
string
salt?
string | HashType
verifyingContract?
string | AddressType
version?
string
Returns
DomainType
getEIP712DomainType()
getEIP712DomainType(Defined in: src/primitives/Domain/index.ts:99domain):object[]
Parameters
domain
DomainType
Returns
object[]
getFieldsBitmap()
getFieldsBitmap(Defined in: src/primitives/Domain/index.ts:105domain):Uint8Array
Parameters
domain
DomainType
Returns
Uint8Array
hashType()
hashType(Defined in: src/primitives/Domain/index.ts:86primaryType,types,crypto):Uint8Array
Parameters
primaryType
string
types
Record<string, readonly object[]>
crypto
keccak256
(data) => Uint8Array
Returns
Uint8Array
toErc5267Response()
toErc5267Response(Defined in: src/primitives/Domain/index.ts:111domain):ERC5267Response
Parameters
domain
DomainType
Returns
ERC5267Response
toHash()
toHash(Defined in: src/primitives/Domain/index.ts:37domain,crypto):DomainSeparatorType
Parameters
domain
DomainType
crypto
keccak256
(data) => Uint8Array
Returns
DomainSeparatorType
