Hit this on the Modular Wallets Android SDK while integrating EIP-712 typed-data signing.
Steps to reproduce
val typedData = """
{
"domain": {
"name": "MyRelay",
"version": "1",
"chainId": 84532,
"verifyingContract": "0x..."
},
"types": { ... },
"primaryType": "DelegateAuthorization",
"message": { ... }
}
"""
walletService.signTypedData(typedData)
Actual
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
Unrecognized field "verifyingContract"
(class com.circle.modularwallets.core.models.EIP712Domain),
not marked as ignorable
Expected
verifyingContract accepted as a standard EIP-712 domain field. It's canonical per the EIP-712 spec and required for any signed typed-data that targets a specific contract.
Impact
Forces customers to bypass the SDK's signTypedData for any flow that uses verifyingContract (which is most non-trivial EIP-712 use cases). We're using a raw secp256k1 signing path with a per-device EOA in EncryptedSharedPreferences instead.
Likely fix
One-line annotation on the Kotlin EIP712Domain DTO — either @JsonIgnoreProperties(ignoreUnknown = true) at the class level or an explicit @JsonProperty("verifyingContract") field.
Context
Filed by Lucilla, currently in active integration on Base mainnet. Happy to send a minimal Android Studio repro project if useful.
Hit this on the Modular Wallets Android SDK while integrating EIP-712 typed-data signing.
Steps to reproduce
Actual
Expected
verifyingContractaccepted as a standard EIP-712 domain field. It's canonical per the EIP-712 spec and required for any signed typed-data that targets a specific contract.Impact
Forces customers to bypass the SDK's
signTypedDatafor any flow that usesverifyingContract(which is most non-trivial EIP-712 use cases). We're using a raw secp256k1 signing path with a per-device EOA in EncryptedSharedPreferences instead.Likely fix
One-line annotation on the Kotlin
EIP712DomainDTO — either@JsonIgnoreProperties(ignoreUnknown = true)at the class level or an explicit@JsonProperty("verifyingContract")field.Context
Filed by Lucilla, currently in active integration on Base mainnet. Happy to send a minimal Android Studio repro project if useful.