Skip to content

Docs: FHERC20.md & IFHERC20.md all types documented as euint32/inEuint32 but contract uses euint128/inEuint128 #76

Description

@Sertug17

Bug

The API reference docs for FHERC20 and IFHERC20 document all encrypted types as euint32/inEuint32, but the actual FHERC20.sol contract uses euint128/inEuint128 throughout.

Examples of incorrect documentation

// Docs say: ❌
mapping(address => euint32) _encBalances
function approveEncrypted(address spender, struct inEuint32 value) public virtual returns (bool)
function _allowanceEncrypted(address owner, address spender) public view virtual returns (euint32)
function transferFromEncrypted(address from, address to, euint32 value) public virtual returns (euint32)

What the actual contract has

// FHERC20.sol: ✅
mapping(address => euint128) internal _encBalances
function approveEncrypted(address spender, inEuint128 calldata value) public virtual returns (bool)
function _allowanceEncrypted(address owner, address spender) internal view returns (euint128)
function transferFromEncrypted(address from, address to, inEuint128 calldata value) public virtual returns (euint128)

Additional issues in the same files:

  • _allowanceEncrypted is documented as public but is actually internal
  • _encBalances is documented without internal visibility

Impact

Any developer copying function signatures or types from these docs will write incompatible code that fails to compile or integrate.

Files affected

  • docs/devdocs/Solidity API/Experimental/FHERC20.md
  • docs/devdocs/Solidity API/Experimental/IFHERC20.md

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