Skip to content

EIP712 - Cannot pass a string as chainId #256

@freemanzMrojo

Description

@freemanzMrojo

Describe the bug

Currently the TypedDataDomain looks like this:

export type TypedDataDomain = {
  chainId?: number | undefined
  name?: string | undefined
  salt?: ResolvedRegister['bytesType']['outputs'] | undefined
  verifyingContract?: Address | undefined
  version?: string | undefined
}

Sometimes the chainId might be larger than a number, so I was wondering whether it would be possible to also support string and bigint (or maybe just string) for that field. In the spec the attribute is expected to be an uint256.

I have seen in another "famous library" (:p) that the type for chainId is number | bigint | string | null.

Thanks in advance.

Expected Behavior

I can pass a string as chainId. Specifically, I would like to be able to pass these values:

  1. 14018334920824264832118464179726739019961432051877733167310318607178
  2. 1176455790972829965191905223412607679856028701100105089447013101863
  3. 20257036855429895315704288894496386224204271168750785572924599986678

Link to Minimal Reproducible Example

No response

Steps To Reproduce

No response

Package Version

1.0.6

TypeScript Version

5.6.3

Check existing issues

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions