v0.3.3
What's Changed
- Harden EIP-712 encoding of non-integer types so malformed input throws instead of being silently misencoded. The
addressencoder now validates a 0x-prefixed hex string of at most 20 bytes;bytes/bytesNvalues with odd-length or non-hex input, or wider than 32 bytes, are rejected; and the shared hex parser rejects odd-length and non-hex strings rather than truncating. (#532) - Validate integer values before EIP-712 encoding instead of silently wrapping out-of-domain values. A negative value for an unsigned
uint*type now throws (previously it wrapped into a huge positive integer via two's complement); values exceeding the declared width are also rejected. In-range signedint*two's-complement encoding is retained per EIP-712. (#530)
Full Changelog: v0.3.2...v0.3.3