6783 lines
427 KiB
Plaintext
6783 lines
427 KiB
Plaintext
:github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
|
|
|
|
:AccessControl: pass:normal[xref:access.adoc#AccessControl[`AccessControl`]]
|
|
:xref-AccessControl: xref:access.adoc#AccessControl
|
|
:AccessControl-onlyRole: pass:normal[xref:access.adoc#AccessControl-onlyRole-bytes32-[`AccessControl.onlyRole`]]
|
|
:xref-AccessControl-onlyRole-bytes32-: xref:access.adoc#AccessControl-onlyRole-bytes32-
|
|
:AccessControl-DEFAULT_ADMIN_ROLE: pass:normal[xref:access.adoc#AccessControl-DEFAULT_ADMIN_ROLE-bytes32[`AccessControl.DEFAULT_ADMIN_ROLE`]]
|
|
:xref-AccessControl-DEFAULT_ADMIN_ROLE-bytes32: xref:access.adoc#AccessControl-DEFAULT_ADMIN_ROLE-bytes32
|
|
:AccessControl-supportsInterface: pass:normal[xref:access.adoc#AccessControl-supportsInterface-bytes4-[`AccessControl.supportsInterface`]]
|
|
:xref-AccessControl-supportsInterface-bytes4-: xref:access.adoc#AccessControl-supportsInterface-bytes4-
|
|
:AccessControl-hasRole: pass:normal[xref:access.adoc#AccessControl-hasRole-bytes32-address-[`AccessControl.hasRole`]]
|
|
:xref-AccessControl-hasRole-bytes32-address-: xref:access.adoc#AccessControl-hasRole-bytes32-address-
|
|
:AccessControl-_checkRole: pass:normal[xref:access.adoc#AccessControl-_checkRole-bytes32-[`AccessControl._checkRole`]]
|
|
:xref-AccessControl-_checkRole-bytes32-: xref:access.adoc#AccessControl-_checkRole-bytes32-
|
|
:AccessControl-_checkRole: pass:normal[xref:access.adoc#AccessControl-_checkRole-bytes32-address-[`AccessControl._checkRole`]]
|
|
:xref-AccessControl-_checkRole-bytes32-address-: xref:access.adoc#AccessControl-_checkRole-bytes32-address-
|
|
:AccessControl-getRoleAdmin: pass:normal[xref:access.adoc#AccessControl-getRoleAdmin-bytes32-[`AccessControl.getRoleAdmin`]]
|
|
:xref-AccessControl-getRoleAdmin-bytes32-: xref:access.adoc#AccessControl-getRoleAdmin-bytes32-
|
|
:AccessControl-grantRole: pass:normal[xref:access.adoc#AccessControl-grantRole-bytes32-address-[`AccessControl.grantRole`]]
|
|
:xref-AccessControl-grantRole-bytes32-address-: xref:access.adoc#AccessControl-grantRole-bytes32-address-
|
|
:AccessControl-revokeRole: pass:normal[xref:access.adoc#AccessControl-revokeRole-bytes32-address-[`AccessControl.revokeRole`]]
|
|
:xref-AccessControl-revokeRole-bytes32-address-: xref:access.adoc#AccessControl-revokeRole-bytes32-address-
|
|
:AccessControl-renounceRole: pass:normal[xref:access.adoc#AccessControl-renounceRole-bytes32-address-[`AccessControl.renounceRole`]]
|
|
:xref-AccessControl-renounceRole-bytes32-address-: xref:access.adoc#AccessControl-renounceRole-bytes32-address-
|
|
:AccessControl-_setupRole: pass:normal[xref:access.adoc#AccessControl-_setupRole-bytes32-address-[`AccessControl._setupRole`]]
|
|
:xref-AccessControl-_setupRole-bytes32-address-: xref:access.adoc#AccessControl-_setupRole-bytes32-address-
|
|
:AccessControl-_setRoleAdmin: pass:normal[xref:access.adoc#AccessControl-_setRoleAdmin-bytes32-bytes32-[`AccessControl._setRoleAdmin`]]
|
|
:xref-AccessControl-_setRoleAdmin-bytes32-bytes32-: xref:access.adoc#AccessControl-_setRoleAdmin-bytes32-bytes32-
|
|
:AccessControl-_grantRole: pass:normal[xref:access.adoc#AccessControl-_grantRole-bytes32-address-[`AccessControl._grantRole`]]
|
|
:xref-AccessControl-_grantRole-bytes32-address-: xref:access.adoc#AccessControl-_grantRole-bytes32-address-
|
|
:AccessControl-_revokeRole: pass:normal[xref:access.adoc#AccessControl-_revokeRole-bytes32-address-[`AccessControl._revokeRole`]]
|
|
:xref-AccessControl-_revokeRole-bytes32-address-: xref:access.adoc#AccessControl-_revokeRole-bytes32-address-
|
|
:AccessControl-RoleData: pass:normal[xref:access.adoc#AccessControl-RoleData[`AccessControl.RoleData`]]
|
|
:xref-AccessControl-RoleData: xref:access.adoc#AccessControl-RoleData
|
|
:AccessControlCrossChain: pass:normal[xref:access.adoc#AccessControlCrossChain[`AccessControlCrossChain`]]
|
|
:xref-AccessControlCrossChain: xref:access.adoc#AccessControlCrossChain
|
|
:AccessControlCrossChain-CROSSCHAIN_ALIAS: pass:normal[xref:access.adoc#AccessControlCrossChain-CROSSCHAIN_ALIAS-bytes32[`AccessControlCrossChain.CROSSCHAIN_ALIAS`]]
|
|
:xref-AccessControlCrossChain-CROSSCHAIN_ALIAS-bytes32: xref:access.adoc#AccessControlCrossChain-CROSSCHAIN_ALIAS-bytes32
|
|
:AccessControlCrossChain-_checkRole: pass:normal[xref:access.adoc#AccessControlCrossChain-_checkRole-bytes32-[`AccessControlCrossChain._checkRole`]]
|
|
:xref-AccessControlCrossChain-_checkRole-bytes32-: xref:access.adoc#AccessControlCrossChain-_checkRole-bytes32-
|
|
:AccessControlCrossChain-_crossChainRoleAlias: pass:normal[xref:access.adoc#AccessControlCrossChain-_crossChainRoleAlias-bytes32-[`AccessControlCrossChain._crossChainRoleAlias`]]
|
|
:xref-AccessControlCrossChain-_crossChainRoleAlias-bytes32-: xref:access.adoc#AccessControlCrossChain-_crossChainRoleAlias-bytes32-
|
|
:AccessControlEnumerable: pass:normal[xref:access.adoc#AccessControlEnumerable[`AccessControlEnumerable`]]
|
|
:xref-AccessControlEnumerable: xref:access.adoc#AccessControlEnumerable
|
|
:AccessControlEnumerable-supportsInterface: pass:normal[xref:access.adoc#AccessControlEnumerable-supportsInterface-bytes4-[`AccessControlEnumerable.supportsInterface`]]
|
|
:xref-AccessControlEnumerable-supportsInterface-bytes4-: xref:access.adoc#AccessControlEnumerable-supportsInterface-bytes4-
|
|
:AccessControlEnumerable-getRoleMember: pass:normal[xref:access.adoc#AccessControlEnumerable-getRoleMember-bytes32-uint256-[`AccessControlEnumerable.getRoleMember`]]
|
|
:xref-AccessControlEnumerable-getRoleMember-bytes32-uint256-: xref:access.adoc#AccessControlEnumerable-getRoleMember-bytes32-uint256-
|
|
:AccessControlEnumerable-getRoleMemberCount: pass:normal[xref:access.adoc#AccessControlEnumerable-getRoleMemberCount-bytes32-[`AccessControlEnumerable.getRoleMemberCount`]]
|
|
:xref-AccessControlEnumerable-getRoleMemberCount-bytes32-: xref:access.adoc#AccessControlEnumerable-getRoleMemberCount-bytes32-
|
|
:AccessControlEnumerable-_grantRole: pass:normal[xref:access.adoc#AccessControlEnumerable-_grantRole-bytes32-address-[`AccessControlEnumerable._grantRole`]]
|
|
:xref-AccessControlEnumerable-_grantRole-bytes32-address-: xref:access.adoc#AccessControlEnumerable-_grantRole-bytes32-address-
|
|
:AccessControlEnumerable-_revokeRole: pass:normal[xref:access.adoc#AccessControlEnumerable-_revokeRole-bytes32-address-[`AccessControlEnumerable._revokeRole`]]
|
|
:xref-AccessControlEnumerable-_revokeRole-bytes32-address-: xref:access.adoc#AccessControlEnumerable-_revokeRole-bytes32-address-
|
|
:IAccessControl: pass:normal[xref:access.adoc#IAccessControl[`IAccessControl`]]
|
|
:xref-IAccessControl: xref:access.adoc#IAccessControl
|
|
:IAccessControl-hasRole: pass:normal[xref:access.adoc#IAccessControl-hasRole-bytes32-address-[`IAccessControl.hasRole`]]
|
|
:xref-IAccessControl-hasRole-bytes32-address-: xref:access.adoc#IAccessControl-hasRole-bytes32-address-
|
|
:IAccessControl-getRoleAdmin: pass:normal[xref:access.adoc#IAccessControl-getRoleAdmin-bytes32-[`IAccessControl.getRoleAdmin`]]
|
|
:xref-IAccessControl-getRoleAdmin-bytes32-: xref:access.adoc#IAccessControl-getRoleAdmin-bytes32-
|
|
:IAccessControl-grantRole: pass:normal[xref:access.adoc#IAccessControl-grantRole-bytes32-address-[`IAccessControl.grantRole`]]
|
|
:xref-IAccessControl-grantRole-bytes32-address-: xref:access.adoc#IAccessControl-grantRole-bytes32-address-
|
|
:IAccessControl-revokeRole: pass:normal[xref:access.adoc#IAccessControl-revokeRole-bytes32-address-[`IAccessControl.revokeRole`]]
|
|
:xref-IAccessControl-revokeRole-bytes32-address-: xref:access.adoc#IAccessControl-revokeRole-bytes32-address-
|
|
:IAccessControl-renounceRole: pass:normal[xref:access.adoc#IAccessControl-renounceRole-bytes32-address-[`IAccessControl.renounceRole`]]
|
|
:xref-IAccessControl-renounceRole-bytes32-address-: xref:access.adoc#IAccessControl-renounceRole-bytes32-address-
|
|
:IAccessControl-RoleAdminChanged: pass:normal[xref:access.adoc#IAccessControl-RoleAdminChanged-bytes32-bytes32-bytes32-[`IAccessControl.RoleAdminChanged`]]
|
|
:xref-IAccessControl-RoleAdminChanged-bytes32-bytes32-bytes32-: xref:access.adoc#IAccessControl-RoleAdminChanged-bytes32-bytes32-bytes32-
|
|
:IAccessControl-RoleGranted: pass:normal[xref:access.adoc#IAccessControl-RoleGranted-bytes32-address-address-[`IAccessControl.RoleGranted`]]
|
|
:xref-IAccessControl-RoleGranted-bytes32-address-address-: xref:access.adoc#IAccessControl-RoleGranted-bytes32-address-address-
|
|
:IAccessControl-RoleRevoked: pass:normal[xref:access.adoc#IAccessControl-RoleRevoked-bytes32-address-address-[`IAccessControl.RoleRevoked`]]
|
|
:xref-IAccessControl-RoleRevoked-bytes32-address-address-: xref:access.adoc#IAccessControl-RoleRevoked-bytes32-address-address-
|
|
:IAccessControlEnumerable: pass:normal[xref:access.adoc#IAccessControlEnumerable[`IAccessControlEnumerable`]]
|
|
:xref-IAccessControlEnumerable: xref:access.adoc#IAccessControlEnumerable
|
|
:IAccessControlEnumerable-getRoleMember: pass:normal[xref:access.adoc#IAccessControlEnumerable-getRoleMember-bytes32-uint256-[`IAccessControlEnumerable.getRoleMember`]]
|
|
:xref-IAccessControlEnumerable-getRoleMember-bytes32-uint256-: xref:access.adoc#IAccessControlEnumerable-getRoleMember-bytes32-uint256-
|
|
:IAccessControlEnumerable-getRoleMemberCount: pass:normal[xref:access.adoc#IAccessControlEnumerable-getRoleMemberCount-bytes32-[`IAccessControlEnumerable.getRoleMemberCount`]]
|
|
:xref-IAccessControlEnumerable-getRoleMemberCount-bytes32-: xref:access.adoc#IAccessControlEnumerable-getRoleMemberCount-bytes32-
|
|
:Ownable: pass:normal[xref:access.adoc#Ownable[`Ownable`]]
|
|
:xref-Ownable: xref:access.adoc#Ownable
|
|
:Ownable-onlyOwner: pass:normal[xref:access.adoc#Ownable-onlyOwner--[`Ownable.onlyOwner`]]
|
|
:xref-Ownable-onlyOwner--: xref:access.adoc#Ownable-onlyOwner--
|
|
:Ownable-constructor: pass:normal[xref:access.adoc#Ownable-constructor--[`Ownable.constructor`]]
|
|
:xref-Ownable-constructor--: xref:access.adoc#Ownable-constructor--
|
|
:Ownable-owner: pass:normal[xref:access.adoc#Ownable-owner--[`Ownable.owner`]]
|
|
:xref-Ownable-owner--: xref:access.adoc#Ownable-owner--
|
|
:Ownable-_checkOwner: pass:normal[xref:access.adoc#Ownable-_checkOwner--[`Ownable._checkOwner`]]
|
|
:xref-Ownable-_checkOwner--: xref:access.adoc#Ownable-_checkOwner--
|
|
:Ownable-renounceOwnership: pass:normal[xref:access.adoc#Ownable-renounceOwnership--[`Ownable.renounceOwnership`]]
|
|
:xref-Ownable-renounceOwnership--: xref:access.adoc#Ownable-renounceOwnership--
|
|
:Ownable-transferOwnership: pass:normal[xref:access.adoc#Ownable-transferOwnership-address-[`Ownable.transferOwnership`]]
|
|
:xref-Ownable-transferOwnership-address-: xref:access.adoc#Ownable-transferOwnership-address-
|
|
:Ownable-_transferOwnership: pass:normal[xref:access.adoc#Ownable-_transferOwnership-address-[`Ownable._transferOwnership`]]
|
|
:xref-Ownable-_transferOwnership-address-: xref:access.adoc#Ownable-_transferOwnership-address-
|
|
:Ownable-OwnershipTransferred: pass:normal[xref:access.adoc#Ownable-OwnershipTransferred-address-address-[`Ownable.OwnershipTransferred`]]
|
|
:xref-Ownable-OwnershipTransferred-address-address-: xref:access.adoc#Ownable-OwnershipTransferred-address-address-
|
|
:CrossChainEnabled: pass:normal[xref:crosschain.adoc#CrossChainEnabled[`CrossChainEnabled`]]
|
|
:xref-CrossChainEnabled: xref:crosschain.adoc#CrossChainEnabled
|
|
:CrossChainEnabled-onlyCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabled-onlyCrossChain--[`CrossChainEnabled.onlyCrossChain`]]
|
|
:xref-CrossChainEnabled-onlyCrossChain--: xref:crosschain.adoc#CrossChainEnabled-onlyCrossChain--
|
|
:CrossChainEnabled-onlyCrossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabled-onlyCrossChainSender-address-[`CrossChainEnabled.onlyCrossChainSender`]]
|
|
:xref-CrossChainEnabled-onlyCrossChainSender-address-: xref:crosschain.adoc#CrossChainEnabled-onlyCrossChainSender-address-
|
|
:CrossChainEnabled-_isCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabled-_isCrossChain--[`CrossChainEnabled._isCrossChain`]]
|
|
:xref-CrossChainEnabled-_isCrossChain--: xref:crosschain.adoc#CrossChainEnabled-_isCrossChain--
|
|
:CrossChainEnabled-_crossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabled-_crossChainSender--[`CrossChainEnabled._crossChainSender`]]
|
|
:xref-CrossChainEnabled-_crossChainSender--: xref:crosschain.adoc#CrossChainEnabled-_crossChainSender--
|
|
:CrossChainEnabledAMB: pass:normal[xref:crosschain.adoc#CrossChainEnabledAMB[`CrossChainEnabledAMB`]]
|
|
:xref-CrossChainEnabledAMB: xref:crosschain.adoc#CrossChainEnabledAMB
|
|
:CrossChainEnabledAMB-constructor: pass:normal[xref:crosschain.adoc#CrossChainEnabledAMB-constructor-address-[`CrossChainEnabledAMB.constructor`]]
|
|
:xref-CrossChainEnabledAMB-constructor-address-: xref:crosschain.adoc#CrossChainEnabledAMB-constructor-address-
|
|
:CrossChainEnabledAMB-_isCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabledAMB-_isCrossChain--[`CrossChainEnabledAMB._isCrossChain`]]
|
|
:xref-CrossChainEnabledAMB-_isCrossChain--: xref:crosschain.adoc#CrossChainEnabledAMB-_isCrossChain--
|
|
:CrossChainEnabledAMB-_crossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabledAMB-_crossChainSender--[`CrossChainEnabledAMB._crossChainSender`]]
|
|
:xref-CrossChainEnabledAMB-_crossChainSender--: xref:crosschain.adoc#CrossChainEnabledAMB-_crossChainSender--
|
|
:LibAMB: pass:normal[xref:crosschain.adoc#LibAMB[`LibAMB`]]
|
|
:xref-LibAMB: xref:crosschain.adoc#LibAMB
|
|
:LibAMB-isCrossChain: pass:normal[xref:crosschain.adoc#LibAMB-isCrossChain-address-[`LibAMB.isCrossChain`]]
|
|
:xref-LibAMB-isCrossChain-address-: xref:crosschain.adoc#LibAMB-isCrossChain-address-
|
|
:LibAMB-crossChainSender: pass:normal[xref:crosschain.adoc#LibAMB-crossChainSender-address-[`LibAMB.crossChainSender`]]
|
|
:xref-LibAMB-crossChainSender-address-: xref:crosschain.adoc#LibAMB-crossChainSender-address-
|
|
:CrossChainEnabledArbitrumL1: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL1[`CrossChainEnabledArbitrumL1`]]
|
|
:xref-CrossChainEnabledArbitrumL1: xref:crosschain.adoc#CrossChainEnabledArbitrumL1
|
|
:CrossChainEnabledArbitrumL1-constructor: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL1-constructor-address-[`CrossChainEnabledArbitrumL1.constructor`]]
|
|
:xref-CrossChainEnabledArbitrumL1-constructor-address-: xref:crosschain.adoc#CrossChainEnabledArbitrumL1-constructor-address-
|
|
:CrossChainEnabledArbitrumL1-_isCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL1-_isCrossChain--[`CrossChainEnabledArbitrumL1._isCrossChain`]]
|
|
:xref-CrossChainEnabledArbitrumL1-_isCrossChain--: xref:crosschain.adoc#CrossChainEnabledArbitrumL1-_isCrossChain--
|
|
:CrossChainEnabledArbitrumL1-_crossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL1-_crossChainSender--[`CrossChainEnabledArbitrumL1._crossChainSender`]]
|
|
:xref-CrossChainEnabledArbitrumL1-_crossChainSender--: xref:crosschain.adoc#CrossChainEnabledArbitrumL1-_crossChainSender--
|
|
:CrossChainEnabledArbitrumL2: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL2[`CrossChainEnabledArbitrumL2`]]
|
|
:xref-CrossChainEnabledArbitrumL2: xref:crosschain.adoc#CrossChainEnabledArbitrumL2
|
|
:CrossChainEnabledArbitrumL2-_isCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL2-_isCrossChain--[`CrossChainEnabledArbitrumL2._isCrossChain`]]
|
|
:xref-CrossChainEnabledArbitrumL2-_isCrossChain--: xref:crosschain.adoc#CrossChainEnabledArbitrumL2-_isCrossChain--
|
|
:CrossChainEnabledArbitrumL2-_crossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabledArbitrumL2-_crossChainSender--[`CrossChainEnabledArbitrumL2._crossChainSender`]]
|
|
:xref-CrossChainEnabledArbitrumL2-_crossChainSender--: xref:crosschain.adoc#CrossChainEnabledArbitrumL2-_crossChainSender--
|
|
:LibArbitrumL1: pass:normal[xref:crosschain.adoc#LibArbitrumL1[`LibArbitrumL1`]]
|
|
:xref-LibArbitrumL1: xref:crosschain.adoc#LibArbitrumL1
|
|
:LibArbitrumL1-isCrossChain: pass:normal[xref:crosschain.adoc#LibArbitrumL1-isCrossChain-address-[`LibArbitrumL1.isCrossChain`]]
|
|
:xref-LibArbitrumL1-isCrossChain-address-: xref:crosschain.adoc#LibArbitrumL1-isCrossChain-address-
|
|
:LibArbitrumL1-crossChainSender: pass:normal[xref:crosschain.adoc#LibArbitrumL1-crossChainSender-address-[`LibArbitrumL1.crossChainSender`]]
|
|
:xref-LibArbitrumL1-crossChainSender-address-: xref:crosschain.adoc#LibArbitrumL1-crossChainSender-address-
|
|
:LibArbitrumL2: pass:normal[xref:crosschain.adoc#LibArbitrumL2[`LibArbitrumL2`]]
|
|
:xref-LibArbitrumL2: xref:crosschain.adoc#LibArbitrumL2
|
|
:LibArbitrumL2-ARBSYS: pass:normal[xref:crosschain.adoc#LibArbitrumL2-ARBSYS-address[`LibArbitrumL2.ARBSYS`]]
|
|
:xref-LibArbitrumL2-ARBSYS-address: xref:crosschain.adoc#LibArbitrumL2-ARBSYS-address
|
|
:LibArbitrumL2-isCrossChain: pass:normal[xref:crosschain.adoc#LibArbitrumL2-isCrossChain-address-[`LibArbitrumL2.isCrossChain`]]
|
|
:xref-LibArbitrumL2-isCrossChain-address-: xref:crosschain.adoc#LibArbitrumL2-isCrossChain-address-
|
|
:LibArbitrumL2-crossChainSender: pass:normal[xref:crosschain.adoc#LibArbitrumL2-crossChainSender-address-[`LibArbitrumL2.crossChainSender`]]
|
|
:xref-LibArbitrumL2-crossChainSender-address-: xref:crosschain.adoc#LibArbitrumL2-crossChainSender-address-
|
|
:CrossChainEnabledOptimism: pass:normal[xref:crosschain.adoc#CrossChainEnabledOptimism[`CrossChainEnabledOptimism`]]
|
|
:xref-CrossChainEnabledOptimism: xref:crosschain.adoc#CrossChainEnabledOptimism
|
|
:CrossChainEnabledOptimism-constructor: pass:normal[xref:crosschain.adoc#CrossChainEnabledOptimism-constructor-address-[`CrossChainEnabledOptimism.constructor`]]
|
|
:xref-CrossChainEnabledOptimism-constructor-address-: xref:crosschain.adoc#CrossChainEnabledOptimism-constructor-address-
|
|
:CrossChainEnabledOptimism-_isCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabledOptimism-_isCrossChain--[`CrossChainEnabledOptimism._isCrossChain`]]
|
|
:xref-CrossChainEnabledOptimism-_isCrossChain--: xref:crosschain.adoc#CrossChainEnabledOptimism-_isCrossChain--
|
|
:CrossChainEnabledOptimism-_crossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabledOptimism-_crossChainSender--[`CrossChainEnabledOptimism._crossChainSender`]]
|
|
:xref-CrossChainEnabledOptimism-_crossChainSender--: xref:crosschain.adoc#CrossChainEnabledOptimism-_crossChainSender--
|
|
:LibOptimism: pass:normal[xref:crosschain.adoc#LibOptimism[`LibOptimism`]]
|
|
:xref-LibOptimism: xref:crosschain.adoc#LibOptimism
|
|
:LibOptimism-isCrossChain: pass:normal[xref:crosschain.adoc#LibOptimism-isCrossChain-address-[`LibOptimism.isCrossChain`]]
|
|
:xref-LibOptimism-isCrossChain-address-: xref:crosschain.adoc#LibOptimism-isCrossChain-address-
|
|
:LibOptimism-crossChainSender: pass:normal[xref:crosschain.adoc#LibOptimism-crossChainSender-address-[`LibOptimism.crossChainSender`]]
|
|
:xref-LibOptimism-crossChainSender-address-: xref:crosschain.adoc#LibOptimism-crossChainSender-address-
|
|
:CrossChainEnabledPolygonChild: pass:normal[xref:crosschain.adoc#CrossChainEnabledPolygonChild[`CrossChainEnabledPolygonChild`]]
|
|
:xref-CrossChainEnabledPolygonChild: xref:crosschain.adoc#CrossChainEnabledPolygonChild
|
|
:CrossChainEnabledPolygonChild-constructor: pass:normal[xref:crosschain.adoc#CrossChainEnabledPolygonChild-constructor-address-[`CrossChainEnabledPolygonChild.constructor`]]
|
|
:xref-CrossChainEnabledPolygonChild-constructor-address-: xref:crosschain.adoc#CrossChainEnabledPolygonChild-constructor-address-
|
|
:CrossChainEnabledPolygonChild-_isCrossChain: pass:normal[xref:crosschain.adoc#CrossChainEnabledPolygonChild-_isCrossChain--[`CrossChainEnabledPolygonChild._isCrossChain`]]
|
|
:xref-CrossChainEnabledPolygonChild-_isCrossChain--: xref:crosschain.adoc#CrossChainEnabledPolygonChild-_isCrossChain--
|
|
:CrossChainEnabledPolygonChild-_crossChainSender: pass:normal[xref:crosschain.adoc#CrossChainEnabledPolygonChild-_crossChainSender--[`CrossChainEnabledPolygonChild._crossChainSender`]]
|
|
:xref-CrossChainEnabledPolygonChild-_crossChainSender--: xref:crosschain.adoc#CrossChainEnabledPolygonChild-_crossChainSender--
|
|
:CrossChainEnabledPolygonChild-processMessageFromRoot: pass:normal[xref:crosschain.adoc#CrossChainEnabledPolygonChild-processMessageFromRoot-uint256-address-bytes-[`CrossChainEnabledPolygonChild.processMessageFromRoot`]]
|
|
:xref-CrossChainEnabledPolygonChild-processMessageFromRoot-uint256-address-bytes-: xref:crosschain.adoc#CrossChainEnabledPolygonChild-processMessageFromRoot-uint256-address-bytes-
|
|
:PaymentSplitter: pass:normal[xref:finance.adoc#PaymentSplitter[`PaymentSplitter`]]
|
|
:xref-PaymentSplitter: xref:finance.adoc#PaymentSplitter
|
|
:PaymentSplitter-constructor: pass:normal[xref:finance.adoc#PaymentSplitter-constructor-address---uint256---[`PaymentSplitter.constructor`]]
|
|
:xref-PaymentSplitter-constructor-address---uint256---: xref:finance.adoc#PaymentSplitter-constructor-address---uint256---
|
|
:PaymentSplitter-receive: pass:normal[xref:finance.adoc#PaymentSplitter-receive--[`PaymentSplitter.receive`]]
|
|
:xref-PaymentSplitter-receive--: xref:finance.adoc#PaymentSplitter-receive--
|
|
:PaymentSplitter-totalShares: pass:normal[xref:finance.adoc#PaymentSplitter-totalShares--[`PaymentSplitter.totalShares`]]
|
|
:xref-PaymentSplitter-totalShares--: xref:finance.adoc#PaymentSplitter-totalShares--
|
|
:PaymentSplitter-totalReleased: pass:normal[xref:finance.adoc#PaymentSplitter-totalReleased--[`PaymentSplitter.totalReleased`]]
|
|
:xref-PaymentSplitter-totalReleased--: xref:finance.adoc#PaymentSplitter-totalReleased--
|
|
:PaymentSplitter-totalReleased: pass:normal[xref:finance.adoc#PaymentSplitter-totalReleased-contract-IERC20-[`PaymentSplitter.totalReleased`]]
|
|
:xref-PaymentSplitter-totalReleased-contract-IERC20-: xref:finance.adoc#PaymentSplitter-totalReleased-contract-IERC20-
|
|
:PaymentSplitter-shares: pass:normal[xref:finance.adoc#PaymentSplitter-shares-address-[`PaymentSplitter.shares`]]
|
|
:xref-PaymentSplitter-shares-address-: xref:finance.adoc#PaymentSplitter-shares-address-
|
|
:PaymentSplitter-released: pass:normal[xref:finance.adoc#PaymentSplitter-released-address-[`PaymentSplitter.released`]]
|
|
:xref-PaymentSplitter-released-address-: xref:finance.adoc#PaymentSplitter-released-address-
|
|
:PaymentSplitter-released: pass:normal[xref:finance.adoc#PaymentSplitter-released-contract-IERC20-address-[`PaymentSplitter.released`]]
|
|
:xref-PaymentSplitter-released-contract-IERC20-address-: xref:finance.adoc#PaymentSplitter-released-contract-IERC20-address-
|
|
:PaymentSplitter-payee: pass:normal[xref:finance.adoc#PaymentSplitter-payee-uint256-[`PaymentSplitter.payee`]]
|
|
:xref-PaymentSplitter-payee-uint256-: xref:finance.adoc#PaymentSplitter-payee-uint256-
|
|
:PaymentSplitter-releasable: pass:normal[xref:finance.adoc#PaymentSplitter-releasable-address-[`PaymentSplitter.releasable`]]
|
|
:xref-PaymentSplitter-releasable-address-: xref:finance.adoc#PaymentSplitter-releasable-address-
|
|
:PaymentSplitter-releasable: pass:normal[xref:finance.adoc#PaymentSplitter-releasable-contract-IERC20-address-[`PaymentSplitter.releasable`]]
|
|
:xref-PaymentSplitter-releasable-contract-IERC20-address-: xref:finance.adoc#PaymentSplitter-releasable-contract-IERC20-address-
|
|
:PaymentSplitter-release: pass:normal[xref:finance.adoc#PaymentSplitter-release-address-payable-[`PaymentSplitter.release`]]
|
|
:xref-PaymentSplitter-release-address-payable-: xref:finance.adoc#PaymentSplitter-release-address-payable-
|
|
:PaymentSplitter-release: pass:normal[xref:finance.adoc#PaymentSplitter-release-contract-IERC20-address-[`PaymentSplitter.release`]]
|
|
:xref-PaymentSplitter-release-contract-IERC20-address-: xref:finance.adoc#PaymentSplitter-release-contract-IERC20-address-
|
|
:PaymentSplitter-PayeeAdded: pass:normal[xref:finance.adoc#PaymentSplitter-PayeeAdded-address-uint256-[`PaymentSplitter.PayeeAdded`]]
|
|
:xref-PaymentSplitter-PayeeAdded-address-uint256-: xref:finance.adoc#PaymentSplitter-PayeeAdded-address-uint256-
|
|
:PaymentSplitter-PaymentReleased: pass:normal[xref:finance.adoc#PaymentSplitter-PaymentReleased-address-uint256-[`PaymentSplitter.PaymentReleased`]]
|
|
:xref-PaymentSplitter-PaymentReleased-address-uint256-: xref:finance.adoc#PaymentSplitter-PaymentReleased-address-uint256-
|
|
:PaymentSplitter-ERC20PaymentReleased: pass:normal[xref:finance.adoc#PaymentSplitter-ERC20PaymentReleased-contract-IERC20-address-uint256-[`PaymentSplitter.ERC20PaymentReleased`]]
|
|
:xref-PaymentSplitter-ERC20PaymentReleased-contract-IERC20-address-uint256-: xref:finance.adoc#PaymentSplitter-ERC20PaymentReleased-contract-IERC20-address-uint256-
|
|
:PaymentSplitter-PaymentReceived: pass:normal[xref:finance.adoc#PaymentSplitter-PaymentReceived-address-uint256-[`PaymentSplitter.PaymentReceived`]]
|
|
:xref-PaymentSplitter-PaymentReceived-address-uint256-: xref:finance.adoc#PaymentSplitter-PaymentReceived-address-uint256-
|
|
:VestingWallet: pass:normal[xref:finance.adoc#VestingWallet[`VestingWallet`]]
|
|
:xref-VestingWallet: xref:finance.adoc#VestingWallet
|
|
:VestingWallet-constructor: pass:normal[xref:finance.adoc#VestingWallet-constructor-address-uint64-uint64-[`VestingWallet.constructor`]]
|
|
:xref-VestingWallet-constructor-address-uint64-uint64-: xref:finance.adoc#VestingWallet-constructor-address-uint64-uint64-
|
|
:VestingWallet-receive: pass:normal[xref:finance.adoc#VestingWallet-receive--[`VestingWallet.receive`]]
|
|
:xref-VestingWallet-receive--: xref:finance.adoc#VestingWallet-receive--
|
|
:VestingWallet-beneficiary: pass:normal[xref:finance.adoc#VestingWallet-beneficiary--[`VestingWallet.beneficiary`]]
|
|
:xref-VestingWallet-beneficiary--: xref:finance.adoc#VestingWallet-beneficiary--
|
|
:VestingWallet-start: pass:normal[xref:finance.adoc#VestingWallet-start--[`VestingWallet.start`]]
|
|
:xref-VestingWallet-start--: xref:finance.adoc#VestingWallet-start--
|
|
:VestingWallet-duration: pass:normal[xref:finance.adoc#VestingWallet-duration--[`VestingWallet.duration`]]
|
|
:xref-VestingWallet-duration--: xref:finance.adoc#VestingWallet-duration--
|
|
:VestingWallet-released: pass:normal[xref:finance.adoc#VestingWallet-released--[`VestingWallet.released`]]
|
|
:xref-VestingWallet-released--: xref:finance.adoc#VestingWallet-released--
|
|
:VestingWallet-released: pass:normal[xref:finance.adoc#VestingWallet-released-address-[`VestingWallet.released`]]
|
|
:xref-VestingWallet-released-address-: xref:finance.adoc#VestingWallet-released-address-
|
|
:VestingWallet-release: pass:normal[xref:finance.adoc#VestingWallet-release--[`VestingWallet.release`]]
|
|
:xref-VestingWallet-release--: xref:finance.adoc#VestingWallet-release--
|
|
:VestingWallet-release: pass:normal[xref:finance.adoc#VestingWallet-release-address-[`VestingWallet.release`]]
|
|
:xref-VestingWallet-release-address-: xref:finance.adoc#VestingWallet-release-address-
|
|
:VestingWallet-vestedAmount: pass:normal[xref:finance.adoc#VestingWallet-vestedAmount-uint64-[`VestingWallet.vestedAmount`]]
|
|
:xref-VestingWallet-vestedAmount-uint64-: xref:finance.adoc#VestingWallet-vestedAmount-uint64-
|
|
:VestingWallet-vestedAmount: pass:normal[xref:finance.adoc#VestingWallet-vestedAmount-address-uint64-[`VestingWallet.vestedAmount`]]
|
|
:xref-VestingWallet-vestedAmount-address-uint64-: xref:finance.adoc#VestingWallet-vestedAmount-address-uint64-
|
|
:VestingWallet-_vestingSchedule: pass:normal[xref:finance.adoc#VestingWallet-_vestingSchedule-uint256-uint64-[`VestingWallet._vestingSchedule`]]
|
|
:xref-VestingWallet-_vestingSchedule-uint256-uint64-: xref:finance.adoc#VestingWallet-_vestingSchedule-uint256-uint64-
|
|
:VestingWallet-EtherReleased: pass:normal[xref:finance.adoc#VestingWallet-EtherReleased-uint256-[`VestingWallet.EtherReleased`]]
|
|
:xref-VestingWallet-EtherReleased-uint256-: xref:finance.adoc#VestingWallet-EtherReleased-uint256-
|
|
:VestingWallet-ERC20Released: pass:normal[xref:finance.adoc#VestingWallet-ERC20Released-address-uint256-[`VestingWallet.ERC20Released`]]
|
|
:xref-VestingWallet-ERC20Released-address-uint256-: xref:finance.adoc#VestingWallet-ERC20Released-address-uint256-
|
|
:Governor: pass:normal[xref:governance.adoc#Governor[`Governor`]]
|
|
:xref-Governor: xref:governance.adoc#Governor
|
|
:Governor-onlyGovernance: pass:normal[xref:governance.adoc#Governor-onlyGovernance--[`Governor.onlyGovernance`]]
|
|
:xref-Governor-onlyGovernance--: xref:governance.adoc#Governor-onlyGovernance--
|
|
:Governor-BALLOT_TYPEHASH: pass:normal[xref:governance.adoc#Governor-BALLOT_TYPEHASH-bytes32[`Governor.BALLOT_TYPEHASH`]]
|
|
:xref-Governor-BALLOT_TYPEHASH-bytes32: xref:governance.adoc#Governor-BALLOT_TYPEHASH-bytes32
|
|
:Governor-EXTENDED_BALLOT_TYPEHASH: pass:normal[xref:governance.adoc#Governor-EXTENDED_BALLOT_TYPEHASH-bytes32[`Governor.EXTENDED_BALLOT_TYPEHASH`]]
|
|
:xref-Governor-EXTENDED_BALLOT_TYPEHASH-bytes32: xref:governance.adoc#Governor-EXTENDED_BALLOT_TYPEHASH-bytes32
|
|
:Governor-constructor: pass:normal[xref:governance.adoc#Governor-constructor-string-[`Governor.constructor`]]
|
|
:xref-Governor-constructor-string-: xref:governance.adoc#Governor-constructor-string-
|
|
:Governor-receive: pass:normal[xref:governance.adoc#Governor-receive--[`Governor.receive`]]
|
|
:xref-Governor-receive--: xref:governance.adoc#Governor-receive--
|
|
:Governor-supportsInterface: pass:normal[xref:governance.adoc#Governor-supportsInterface-bytes4-[`Governor.supportsInterface`]]
|
|
:xref-Governor-supportsInterface-bytes4-: xref:governance.adoc#Governor-supportsInterface-bytes4-
|
|
:Governor-name: pass:normal[xref:governance.adoc#Governor-name--[`Governor.name`]]
|
|
:xref-Governor-name--: xref:governance.adoc#Governor-name--
|
|
:Governor-version: pass:normal[xref:governance.adoc#Governor-version--[`Governor.version`]]
|
|
:xref-Governor-version--: xref:governance.adoc#Governor-version--
|
|
:Governor-hashProposal: pass:normal[xref:governance.adoc#Governor-hashProposal-address---uint256---bytes---bytes32-[`Governor.hashProposal`]]
|
|
:xref-Governor-hashProposal-address---uint256---bytes---bytes32-: xref:governance.adoc#Governor-hashProposal-address---uint256---bytes---bytes32-
|
|
:Governor-state: pass:normal[xref:governance.adoc#Governor-state-uint256-[`Governor.state`]]
|
|
:xref-Governor-state-uint256-: xref:governance.adoc#Governor-state-uint256-
|
|
:Governor-proposalSnapshot: pass:normal[xref:governance.adoc#Governor-proposalSnapshot-uint256-[`Governor.proposalSnapshot`]]
|
|
:xref-Governor-proposalSnapshot-uint256-: xref:governance.adoc#Governor-proposalSnapshot-uint256-
|
|
:Governor-proposalDeadline: pass:normal[xref:governance.adoc#Governor-proposalDeadline-uint256-[`Governor.proposalDeadline`]]
|
|
:xref-Governor-proposalDeadline-uint256-: xref:governance.adoc#Governor-proposalDeadline-uint256-
|
|
:Governor-proposalThreshold: pass:normal[xref:governance.adoc#Governor-proposalThreshold--[`Governor.proposalThreshold`]]
|
|
:xref-Governor-proposalThreshold--: xref:governance.adoc#Governor-proposalThreshold--
|
|
:Governor-_quorumReached: pass:normal[xref:governance.adoc#Governor-_quorumReached-uint256-[`Governor._quorumReached`]]
|
|
:xref-Governor-_quorumReached-uint256-: xref:governance.adoc#Governor-_quorumReached-uint256-
|
|
:Governor-_voteSucceeded: pass:normal[xref:governance.adoc#Governor-_voteSucceeded-uint256-[`Governor._voteSucceeded`]]
|
|
:xref-Governor-_voteSucceeded-uint256-: xref:governance.adoc#Governor-_voteSucceeded-uint256-
|
|
:Governor-_getVotes: pass:normal[xref:governance.adoc#Governor-_getVotes-address-uint256-bytes-[`Governor._getVotes`]]
|
|
:xref-Governor-_getVotes-address-uint256-bytes-: xref:governance.adoc#Governor-_getVotes-address-uint256-bytes-
|
|
:Governor-_countVote: pass:normal[xref:governance.adoc#Governor-_countVote-uint256-address-uint8-uint256-bytes-[`Governor._countVote`]]
|
|
:xref-Governor-_countVote-uint256-address-uint8-uint256-bytes-: xref:governance.adoc#Governor-_countVote-uint256-address-uint8-uint256-bytes-
|
|
:Governor-_defaultParams: pass:normal[xref:governance.adoc#Governor-_defaultParams--[`Governor._defaultParams`]]
|
|
:xref-Governor-_defaultParams--: xref:governance.adoc#Governor-_defaultParams--
|
|
:Governor-propose: pass:normal[xref:governance.adoc#Governor-propose-address---uint256---bytes---string-[`Governor.propose`]]
|
|
:xref-Governor-propose-address---uint256---bytes---string-: xref:governance.adoc#Governor-propose-address---uint256---bytes---string-
|
|
:Governor-execute: pass:normal[xref:governance.adoc#Governor-execute-address---uint256---bytes---bytes32-[`Governor.execute`]]
|
|
:xref-Governor-execute-address---uint256---bytes---bytes32-: xref:governance.adoc#Governor-execute-address---uint256---bytes---bytes32-
|
|
:Governor-_execute: pass:normal[xref:governance.adoc#Governor-_execute-uint256-address---uint256---bytes---bytes32-[`Governor._execute`]]
|
|
:xref-Governor-_execute-uint256-address---uint256---bytes---bytes32-: xref:governance.adoc#Governor-_execute-uint256-address---uint256---bytes---bytes32-
|
|
:Governor-_beforeExecute: pass:normal[xref:governance.adoc#Governor-_beforeExecute-uint256-address---uint256---bytes---bytes32-[`Governor._beforeExecute`]]
|
|
:xref-Governor-_beforeExecute-uint256-address---uint256---bytes---bytes32-: xref:governance.adoc#Governor-_beforeExecute-uint256-address---uint256---bytes---bytes32-
|
|
:Governor-_afterExecute: pass:normal[xref:governance.adoc#Governor-_afterExecute-uint256-address---uint256---bytes---bytes32-[`Governor._afterExecute`]]
|
|
:xref-Governor-_afterExecute-uint256-address---uint256---bytes---bytes32-: xref:governance.adoc#Governor-_afterExecute-uint256-address---uint256---bytes---bytes32-
|
|
:Governor-_cancel: pass:normal[xref:governance.adoc#Governor-_cancel-address---uint256---bytes---bytes32-[`Governor._cancel`]]
|
|
:xref-Governor-_cancel-address---uint256---bytes---bytes32-: xref:governance.adoc#Governor-_cancel-address---uint256---bytes---bytes32-
|
|
:Governor-getVotes: pass:normal[xref:governance.adoc#Governor-getVotes-address-uint256-[`Governor.getVotes`]]
|
|
:xref-Governor-getVotes-address-uint256-: xref:governance.adoc#Governor-getVotes-address-uint256-
|
|
:Governor-getVotesWithParams: pass:normal[xref:governance.adoc#Governor-getVotesWithParams-address-uint256-bytes-[`Governor.getVotesWithParams`]]
|
|
:xref-Governor-getVotesWithParams-address-uint256-bytes-: xref:governance.adoc#Governor-getVotesWithParams-address-uint256-bytes-
|
|
:Governor-castVote: pass:normal[xref:governance.adoc#Governor-castVote-uint256-uint8-[`Governor.castVote`]]
|
|
:xref-Governor-castVote-uint256-uint8-: xref:governance.adoc#Governor-castVote-uint256-uint8-
|
|
:Governor-castVoteWithReason: pass:normal[xref:governance.adoc#Governor-castVoteWithReason-uint256-uint8-string-[`Governor.castVoteWithReason`]]
|
|
:xref-Governor-castVoteWithReason-uint256-uint8-string-: xref:governance.adoc#Governor-castVoteWithReason-uint256-uint8-string-
|
|
:Governor-castVoteWithReasonAndParams: pass:normal[xref:governance.adoc#Governor-castVoteWithReasonAndParams-uint256-uint8-string-bytes-[`Governor.castVoteWithReasonAndParams`]]
|
|
:xref-Governor-castVoteWithReasonAndParams-uint256-uint8-string-bytes-: xref:governance.adoc#Governor-castVoteWithReasonAndParams-uint256-uint8-string-bytes-
|
|
:Governor-castVoteBySig: pass:normal[xref:governance.adoc#Governor-castVoteBySig-uint256-uint8-uint8-bytes32-bytes32-[`Governor.castVoteBySig`]]
|
|
:xref-Governor-castVoteBySig-uint256-uint8-uint8-bytes32-bytes32-: xref:governance.adoc#Governor-castVoteBySig-uint256-uint8-uint8-bytes32-bytes32-
|
|
:Governor-castVoteWithReasonAndParamsBySig: pass:normal[xref:governance.adoc#Governor-castVoteWithReasonAndParamsBySig-uint256-uint8-string-bytes-uint8-bytes32-bytes32-[`Governor.castVoteWithReasonAndParamsBySig`]]
|
|
:xref-Governor-castVoteWithReasonAndParamsBySig-uint256-uint8-string-bytes-uint8-bytes32-bytes32-: xref:governance.adoc#Governor-castVoteWithReasonAndParamsBySig-uint256-uint8-string-bytes-uint8-bytes32-bytes32-
|
|
:Governor-_castVote: pass:normal[xref:governance.adoc#Governor-_castVote-uint256-address-uint8-string-[`Governor._castVote`]]
|
|
:xref-Governor-_castVote-uint256-address-uint8-string-: xref:governance.adoc#Governor-_castVote-uint256-address-uint8-string-
|
|
:Governor-_castVote: pass:normal[xref:governance.adoc#Governor-_castVote-uint256-address-uint8-string-bytes-[`Governor._castVote`]]
|
|
:xref-Governor-_castVote-uint256-address-uint8-string-bytes-: xref:governance.adoc#Governor-_castVote-uint256-address-uint8-string-bytes-
|
|
:Governor-relay: pass:normal[xref:governance.adoc#Governor-relay-address-uint256-bytes-[`Governor.relay`]]
|
|
:xref-Governor-relay-address-uint256-bytes-: xref:governance.adoc#Governor-relay-address-uint256-bytes-
|
|
:Governor-_executor: pass:normal[xref:governance.adoc#Governor-_executor--[`Governor._executor`]]
|
|
:xref-Governor-_executor--: xref:governance.adoc#Governor-_executor--
|
|
:Governor-onERC721Received: pass:normal[xref:governance.adoc#Governor-onERC721Received-address-address-uint256-bytes-[`Governor.onERC721Received`]]
|
|
:xref-Governor-onERC721Received-address-address-uint256-bytes-: xref:governance.adoc#Governor-onERC721Received-address-address-uint256-bytes-
|
|
:Governor-onERC1155Received: pass:normal[xref:governance.adoc#Governor-onERC1155Received-address-address-uint256-uint256-bytes-[`Governor.onERC1155Received`]]
|
|
:xref-Governor-onERC1155Received-address-address-uint256-uint256-bytes-: xref:governance.adoc#Governor-onERC1155Received-address-address-uint256-uint256-bytes-
|
|
:Governor-onERC1155BatchReceived: pass:normal[xref:governance.adoc#Governor-onERC1155BatchReceived-address-address-uint256---uint256---bytes-[`Governor.onERC1155BatchReceived`]]
|
|
:xref-Governor-onERC1155BatchReceived-address-address-uint256---uint256---bytes-: xref:governance.adoc#Governor-onERC1155BatchReceived-address-address-uint256---uint256---bytes-
|
|
:Governor-ProposalCore: pass:normal[xref:governance.adoc#Governor-ProposalCore[`Governor.ProposalCore`]]
|
|
:xref-Governor-ProposalCore: xref:governance.adoc#Governor-ProposalCore
|
|
:IGovernor: pass:normal[xref:governance.adoc#IGovernor[`IGovernor`]]
|
|
:xref-IGovernor: xref:governance.adoc#IGovernor
|
|
:IGovernor-name: pass:normal[xref:governance.adoc#IGovernor-name--[`IGovernor.name`]]
|
|
:xref-IGovernor-name--: xref:governance.adoc#IGovernor-name--
|
|
:IGovernor-version: pass:normal[xref:governance.adoc#IGovernor-version--[`IGovernor.version`]]
|
|
:xref-IGovernor-version--: xref:governance.adoc#IGovernor-version--
|
|
:IGovernor-COUNTING_MODE: pass:normal[xref:governance.adoc#IGovernor-COUNTING_MODE--[`IGovernor.COUNTING_MODE`]]
|
|
:xref-IGovernor-COUNTING_MODE--: xref:governance.adoc#IGovernor-COUNTING_MODE--
|
|
:IGovernor-hashProposal: pass:normal[xref:governance.adoc#IGovernor-hashProposal-address---uint256---bytes---bytes32-[`IGovernor.hashProposal`]]
|
|
:xref-IGovernor-hashProposal-address---uint256---bytes---bytes32-: xref:governance.adoc#IGovernor-hashProposal-address---uint256---bytes---bytes32-
|
|
:IGovernor-state: pass:normal[xref:governance.adoc#IGovernor-state-uint256-[`IGovernor.state`]]
|
|
:xref-IGovernor-state-uint256-: xref:governance.adoc#IGovernor-state-uint256-
|
|
:IGovernor-proposalSnapshot: pass:normal[xref:governance.adoc#IGovernor-proposalSnapshot-uint256-[`IGovernor.proposalSnapshot`]]
|
|
:xref-IGovernor-proposalSnapshot-uint256-: xref:governance.adoc#IGovernor-proposalSnapshot-uint256-
|
|
:IGovernor-proposalDeadline: pass:normal[xref:governance.adoc#IGovernor-proposalDeadline-uint256-[`IGovernor.proposalDeadline`]]
|
|
:xref-IGovernor-proposalDeadline-uint256-: xref:governance.adoc#IGovernor-proposalDeadline-uint256-
|
|
:IGovernor-votingDelay: pass:normal[xref:governance.adoc#IGovernor-votingDelay--[`IGovernor.votingDelay`]]
|
|
:xref-IGovernor-votingDelay--: xref:governance.adoc#IGovernor-votingDelay--
|
|
:IGovernor-votingPeriod: pass:normal[xref:governance.adoc#IGovernor-votingPeriod--[`IGovernor.votingPeriod`]]
|
|
:xref-IGovernor-votingPeriod--: xref:governance.adoc#IGovernor-votingPeriod--
|
|
:IGovernor-quorum: pass:normal[xref:governance.adoc#IGovernor-quorum-uint256-[`IGovernor.quorum`]]
|
|
:xref-IGovernor-quorum-uint256-: xref:governance.adoc#IGovernor-quorum-uint256-
|
|
:IGovernor-getVotes: pass:normal[xref:governance.adoc#IGovernor-getVotes-address-uint256-[`IGovernor.getVotes`]]
|
|
:xref-IGovernor-getVotes-address-uint256-: xref:governance.adoc#IGovernor-getVotes-address-uint256-
|
|
:IGovernor-getVotesWithParams: pass:normal[xref:governance.adoc#IGovernor-getVotesWithParams-address-uint256-bytes-[`IGovernor.getVotesWithParams`]]
|
|
:xref-IGovernor-getVotesWithParams-address-uint256-bytes-: xref:governance.adoc#IGovernor-getVotesWithParams-address-uint256-bytes-
|
|
:IGovernor-hasVoted: pass:normal[xref:governance.adoc#IGovernor-hasVoted-uint256-address-[`IGovernor.hasVoted`]]
|
|
:xref-IGovernor-hasVoted-uint256-address-: xref:governance.adoc#IGovernor-hasVoted-uint256-address-
|
|
:IGovernor-propose: pass:normal[xref:governance.adoc#IGovernor-propose-address---uint256---bytes---string-[`IGovernor.propose`]]
|
|
:xref-IGovernor-propose-address---uint256---bytes---string-: xref:governance.adoc#IGovernor-propose-address---uint256---bytes---string-
|
|
:IGovernor-execute: pass:normal[xref:governance.adoc#IGovernor-execute-address---uint256---bytes---bytes32-[`IGovernor.execute`]]
|
|
:xref-IGovernor-execute-address---uint256---bytes---bytes32-: xref:governance.adoc#IGovernor-execute-address---uint256---bytes---bytes32-
|
|
:IGovernor-castVote: pass:normal[xref:governance.adoc#IGovernor-castVote-uint256-uint8-[`IGovernor.castVote`]]
|
|
:xref-IGovernor-castVote-uint256-uint8-: xref:governance.adoc#IGovernor-castVote-uint256-uint8-
|
|
:IGovernor-castVoteWithReason: pass:normal[xref:governance.adoc#IGovernor-castVoteWithReason-uint256-uint8-string-[`IGovernor.castVoteWithReason`]]
|
|
:xref-IGovernor-castVoteWithReason-uint256-uint8-string-: xref:governance.adoc#IGovernor-castVoteWithReason-uint256-uint8-string-
|
|
:IGovernor-castVoteWithReasonAndParams: pass:normal[xref:governance.adoc#IGovernor-castVoteWithReasonAndParams-uint256-uint8-string-bytes-[`IGovernor.castVoteWithReasonAndParams`]]
|
|
:xref-IGovernor-castVoteWithReasonAndParams-uint256-uint8-string-bytes-: xref:governance.adoc#IGovernor-castVoteWithReasonAndParams-uint256-uint8-string-bytes-
|
|
:IGovernor-castVoteBySig: pass:normal[xref:governance.adoc#IGovernor-castVoteBySig-uint256-uint8-uint8-bytes32-bytes32-[`IGovernor.castVoteBySig`]]
|
|
:xref-IGovernor-castVoteBySig-uint256-uint8-uint8-bytes32-bytes32-: xref:governance.adoc#IGovernor-castVoteBySig-uint256-uint8-uint8-bytes32-bytes32-
|
|
:IGovernor-castVoteWithReasonAndParamsBySig: pass:normal[xref:governance.adoc#IGovernor-castVoteWithReasonAndParamsBySig-uint256-uint8-string-bytes-uint8-bytes32-bytes32-[`IGovernor.castVoteWithReasonAndParamsBySig`]]
|
|
:xref-IGovernor-castVoteWithReasonAndParamsBySig-uint256-uint8-string-bytes-uint8-bytes32-bytes32-: xref:governance.adoc#IGovernor-castVoteWithReasonAndParamsBySig-uint256-uint8-string-bytes-uint8-bytes32-bytes32-
|
|
:IGovernor-ProposalCreated: pass:normal[xref:governance.adoc#IGovernor-ProposalCreated-uint256-address-address---uint256---string---bytes---uint256-uint256-string-[`IGovernor.ProposalCreated`]]
|
|
:xref-IGovernor-ProposalCreated-uint256-address-address---uint256---string---bytes---uint256-uint256-string-: xref:governance.adoc#IGovernor-ProposalCreated-uint256-address-address---uint256---string---bytes---uint256-uint256-string-
|
|
:IGovernor-ProposalCanceled: pass:normal[xref:governance.adoc#IGovernor-ProposalCanceled-uint256-[`IGovernor.ProposalCanceled`]]
|
|
:xref-IGovernor-ProposalCanceled-uint256-: xref:governance.adoc#IGovernor-ProposalCanceled-uint256-
|
|
:IGovernor-ProposalExecuted: pass:normal[xref:governance.adoc#IGovernor-ProposalExecuted-uint256-[`IGovernor.ProposalExecuted`]]
|
|
:xref-IGovernor-ProposalExecuted-uint256-: xref:governance.adoc#IGovernor-ProposalExecuted-uint256-
|
|
:IGovernor-VoteCast: pass:normal[xref:governance.adoc#IGovernor-VoteCast-address-uint256-uint8-uint256-string-[`IGovernor.VoteCast`]]
|
|
:xref-IGovernor-VoteCast-address-uint256-uint8-uint256-string-: xref:governance.adoc#IGovernor-VoteCast-address-uint256-uint8-uint256-string-
|
|
:IGovernor-VoteCastWithParams: pass:normal[xref:governance.adoc#IGovernor-VoteCastWithParams-address-uint256-uint8-uint256-string-bytes-[`IGovernor.VoteCastWithParams`]]
|
|
:xref-IGovernor-VoteCastWithParams-address-uint256-uint8-uint256-string-bytes-: xref:governance.adoc#IGovernor-VoteCastWithParams-address-uint256-uint8-uint256-string-bytes-
|
|
:IGovernor-ProposalState: pass:normal[xref:governance.adoc#IGovernor-ProposalState[`IGovernor.ProposalState`]]
|
|
:xref-IGovernor-ProposalState: xref:governance.adoc#IGovernor-ProposalState
|
|
:TimelockController: pass:normal[xref:governance.adoc#TimelockController[`TimelockController`]]
|
|
:xref-TimelockController: xref:governance.adoc#TimelockController
|
|
:TimelockController-onlyRoleOrOpenRole: pass:normal[xref:governance.adoc#TimelockController-onlyRoleOrOpenRole-bytes32-[`TimelockController.onlyRoleOrOpenRole`]]
|
|
:xref-TimelockController-onlyRoleOrOpenRole-bytes32-: xref:governance.adoc#TimelockController-onlyRoleOrOpenRole-bytes32-
|
|
:TimelockController-TIMELOCK_ADMIN_ROLE: pass:normal[xref:governance.adoc#TimelockController-TIMELOCK_ADMIN_ROLE-bytes32[`TimelockController.TIMELOCK_ADMIN_ROLE`]]
|
|
:xref-TimelockController-TIMELOCK_ADMIN_ROLE-bytes32: xref:governance.adoc#TimelockController-TIMELOCK_ADMIN_ROLE-bytes32
|
|
:TimelockController-PROPOSER_ROLE: pass:normal[xref:governance.adoc#TimelockController-PROPOSER_ROLE-bytes32[`TimelockController.PROPOSER_ROLE`]]
|
|
:xref-TimelockController-PROPOSER_ROLE-bytes32: xref:governance.adoc#TimelockController-PROPOSER_ROLE-bytes32
|
|
:TimelockController-EXECUTOR_ROLE: pass:normal[xref:governance.adoc#TimelockController-EXECUTOR_ROLE-bytes32[`TimelockController.EXECUTOR_ROLE`]]
|
|
:xref-TimelockController-EXECUTOR_ROLE-bytes32: xref:governance.adoc#TimelockController-EXECUTOR_ROLE-bytes32
|
|
:TimelockController-CANCELLER_ROLE: pass:normal[xref:governance.adoc#TimelockController-CANCELLER_ROLE-bytes32[`TimelockController.CANCELLER_ROLE`]]
|
|
:xref-TimelockController-CANCELLER_ROLE-bytes32: xref:governance.adoc#TimelockController-CANCELLER_ROLE-bytes32
|
|
:TimelockController-_DONE_TIMESTAMP: pass:normal[xref:governance.adoc#TimelockController-_DONE_TIMESTAMP-uint256[`TimelockController._DONE_TIMESTAMP`]]
|
|
:xref-TimelockController-_DONE_TIMESTAMP-uint256: xref:governance.adoc#TimelockController-_DONE_TIMESTAMP-uint256
|
|
:TimelockController-constructor: pass:normal[xref:governance.adoc#TimelockController-constructor-uint256-address---address---[`TimelockController.constructor`]]
|
|
:xref-TimelockController-constructor-uint256-address---address---: xref:governance.adoc#TimelockController-constructor-uint256-address---address---
|
|
:TimelockController-receive: pass:normal[xref:governance.adoc#TimelockController-receive--[`TimelockController.receive`]]
|
|
:xref-TimelockController-receive--: xref:governance.adoc#TimelockController-receive--
|
|
:TimelockController-supportsInterface: pass:normal[xref:governance.adoc#TimelockController-supportsInterface-bytes4-[`TimelockController.supportsInterface`]]
|
|
:xref-TimelockController-supportsInterface-bytes4-: xref:governance.adoc#TimelockController-supportsInterface-bytes4-
|
|
:TimelockController-isOperation: pass:normal[xref:governance.adoc#TimelockController-isOperation-bytes32-[`TimelockController.isOperation`]]
|
|
:xref-TimelockController-isOperation-bytes32-: xref:governance.adoc#TimelockController-isOperation-bytes32-
|
|
:TimelockController-isOperationPending: pass:normal[xref:governance.adoc#TimelockController-isOperationPending-bytes32-[`TimelockController.isOperationPending`]]
|
|
:xref-TimelockController-isOperationPending-bytes32-: xref:governance.adoc#TimelockController-isOperationPending-bytes32-
|
|
:TimelockController-isOperationReady: pass:normal[xref:governance.adoc#TimelockController-isOperationReady-bytes32-[`TimelockController.isOperationReady`]]
|
|
:xref-TimelockController-isOperationReady-bytes32-: xref:governance.adoc#TimelockController-isOperationReady-bytes32-
|
|
:TimelockController-isOperationDone: pass:normal[xref:governance.adoc#TimelockController-isOperationDone-bytes32-[`TimelockController.isOperationDone`]]
|
|
:xref-TimelockController-isOperationDone-bytes32-: xref:governance.adoc#TimelockController-isOperationDone-bytes32-
|
|
:TimelockController-getTimestamp: pass:normal[xref:governance.adoc#TimelockController-getTimestamp-bytes32-[`TimelockController.getTimestamp`]]
|
|
:xref-TimelockController-getTimestamp-bytes32-: xref:governance.adoc#TimelockController-getTimestamp-bytes32-
|
|
:TimelockController-getMinDelay: pass:normal[xref:governance.adoc#TimelockController-getMinDelay--[`TimelockController.getMinDelay`]]
|
|
:xref-TimelockController-getMinDelay--: xref:governance.adoc#TimelockController-getMinDelay--
|
|
:TimelockController-hashOperation: pass:normal[xref:governance.adoc#TimelockController-hashOperation-address-uint256-bytes-bytes32-bytes32-[`TimelockController.hashOperation`]]
|
|
:xref-TimelockController-hashOperation-address-uint256-bytes-bytes32-bytes32-: xref:governance.adoc#TimelockController-hashOperation-address-uint256-bytes-bytes32-bytes32-
|
|
:TimelockController-hashOperationBatch: pass:normal[xref:governance.adoc#TimelockController-hashOperationBatch-address---uint256---bytes---bytes32-bytes32-[`TimelockController.hashOperationBatch`]]
|
|
:xref-TimelockController-hashOperationBatch-address---uint256---bytes---bytes32-bytes32-: xref:governance.adoc#TimelockController-hashOperationBatch-address---uint256---bytes---bytes32-bytes32-
|
|
:TimelockController-schedule: pass:normal[xref:governance.adoc#TimelockController-schedule-address-uint256-bytes-bytes32-bytes32-uint256-[`TimelockController.schedule`]]
|
|
:xref-TimelockController-schedule-address-uint256-bytes-bytes32-bytes32-uint256-: xref:governance.adoc#TimelockController-schedule-address-uint256-bytes-bytes32-bytes32-uint256-
|
|
:TimelockController-scheduleBatch: pass:normal[xref:governance.adoc#TimelockController-scheduleBatch-address---uint256---bytes---bytes32-bytes32-uint256-[`TimelockController.scheduleBatch`]]
|
|
:xref-TimelockController-scheduleBatch-address---uint256---bytes---bytes32-bytes32-uint256-: xref:governance.adoc#TimelockController-scheduleBatch-address---uint256---bytes---bytes32-bytes32-uint256-
|
|
:TimelockController-cancel: pass:normal[xref:governance.adoc#TimelockController-cancel-bytes32-[`TimelockController.cancel`]]
|
|
:xref-TimelockController-cancel-bytes32-: xref:governance.adoc#TimelockController-cancel-bytes32-
|
|
:TimelockController-execute: pass:normal[xref:governance.adoc#TimelockController-execute-address-uint256-bytes-bytes32-bytes32-[`TimelockController.execute`]]
|
|
:xref-TimelockController-execute-address-uint256-bytes-bytes32-bytes32-: xref:governance.adoc#TimelockController-execute-address-uint256-bytes-bytes32-bytes32-
|
|
:TimelockController-executeBatch: pass:normal[xref:governance.adoc#TimelockController-executeBatch-address---uint256---bytes---bytes32-bytes32-[`TimelockController.executeBatch`]]
|
|
:xref-TimelockController-executeBatch-address---uint256---bytes---bytes32-bytes32-: xref:governance.adoc#TimelockController-executeBatch-address---uint256---bytes---bytes32-bytes32-
|
|
:TimelockController-_execute: pass:normal[xref:governance.adoc#TimelockController-_execute-address-uint256-bytes-[`TimelockController._execute`]]
|
|
:xref-TimelockController-_execute-address-uint256-bytes-: xref:governance.adoc#TimelockController-_execute-address-uint256-bytes-
|
|
:TimelockController-updateDelay: pass:normal[xref:governance.adoc#TimelockController-updateDelay-uint256-[`TimelockController.updateDelay`]]
|
|
:xref-TimelockController-updateDelay-uint256-: xref:governance.adoc#TimelockController-updateDelay-uint256-
|
|
:TimelockController-onERC721Received: pass:normal[xref:governance.adoc#TimelockController-onERC721Received-address-address-uint256-bytes-[`TimelockController.onERC721Received`]]
|
|
:xref-TimelockController-onERC721Received-address-address-uint256-bytes-: xref:governance.adoc#TimelockController-onERC721Received-address-address-uint256-bytes-
|
|
:TimelockController-onERC1155Received: pass:normal[xref:governance.adoc#TimelockController-onERC1155Received-address-address-uint256-uint256-bytes-[`TimelockController.onERC1155Received`]]
|
|
:xref-TimelockController-onERC1155Received-address-address-uint256-uint256-bytes-: xref:governance.adoc#TimelockController-onERC1155Received-address-address-uint256-uint256-bytes-
|
|
:TimelockController-onERC1155BatchReceived: pass:normal[xref:governance.adoc#TimelockController-onERC1155BatchReceived-address-address-uint256---uint256---bytes-[`TimelockController.onERC1155BatchReceived`]]
|
|
:xref-TimelockController-onERC1155BatchReceived-address-address-uint256---uint256---bytes-: xref:governance.adoc#TimelockController-onERC1155BatchReceived-address-address-uint256---uint256---bytes-
|
|
:TimelockController-CallScheduled: pass:normal[xref:governance.adoc#TimelockController-CallScheduled-bytes32-uint256-address-uint256-bytes-bytes32-uint256-[`TimelockController.CallScheduled`]]
|
|
:xref-TimelockController-CallScheduled-bytes32-uint256-address-uint256-bytes-bytes32-uint256-: xref:governance.adoc#TimelockController-CallScheduled-bytes32-uint256-address-uint256-bytes-bytes32-uint256-
|
|
:TimelockController-CallExecuted: pass:normal[xref:governance.adoc#TimelockController-CallExecuted-bytes32-uint256-address-uint256-bytes-[`TimelockController.CallExecuted`]]
|
|
:xref-TimelockController-CallExecuted-bytes32-uint256-address-uint256-bytes-: xref:governance.adoc#TimelockController-CallExecuted-bytes32-uint256-address-uint256-bytes-
|
|
:TimelockController-Cancelled: pass:normal[xref:governance.adoc#TimelockController-Cancelled-bytes32-[`TimelockController.Cancelled`]]
|
|
:xref-TimelockController-Cancelled-bytes32-: xref:governance.adoc#TimelockController-Cancelled-bytes32-
|
|
:TimelockController-MinDelayChange: pass:normal[xref:governance.adoc#TimelockController-MinDelayChange-uint256-uint256-[`TimelockController.MinDelayChange`]]
|
|
:xref-TimelockController-MinDelayChange-uint256-uint256-: xref:governance.adoc#TimelockController-MinDelayChange-uint256-uint256-
|
|
:GovernorCompatibilityBravo: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo[`GovernorCompatibilityBravo`]]
|
|
:xref-GovernorCompatibilityBravo: xref:governance.adoc#GovernorCompatibilityBravo
|
|
:GovernorCompatibilityBravo-COUNTING_MODE: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-COUNTING_MODE--[`GovernorCompatibilityBravo.COUNTING_MODE`]]
|
|
:xref-GovernorCompatibilityBravo-COUNTING_MODE--: xref:governance.adoc#GovernorCompatibilityBravo-COUNTING_MODE--
|
|
:GovernorCompatibilityBravo-propose: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-propose-address---uint256---bytes---string-[`GovernorCompatibilityBravo.propose`]]
|
|
:xref-GovernorCompatibilityBravo-propose-address---uint256---bytes---string-: xref:governance.adoc#GovernorCompatibilityBravo-propose-address---uint256---bytes---string-
|
|
:GovernorCompatibilityBravo-propose: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-propose-address---uint256---string---bytes---string-[`GovernorCompatibilityBravo.propose`]]
|
|
:xref-GovernorCompatibilityBravo-propose-address---uint256---string---bytes---string-: xref:governance.adoc#GovernorCompatibilityBravo-propose-address---uint256---string---bytes---string-
|
|
:GovernorCompatibilityBravo-queue: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-queue-uint256-[`GovernorCompatibilityBravo.queue`]]
|
|
:xref-GovernorCompatibilityBravo-queue-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-queue-uint256-
|
|
:GovernorCompatibilityBravo-execute: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-execute-uint256-[`GovernorCompatibilityBravo.execute`]]
|
|
:xref-GovernorCompatibilityBravo-execute-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-execute-uint256-
|
|
:GovernorCompatibilityBravo-cancel: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-cancel-uint256-[`GovernorCompatibilityBravo.cancel`]]
|
|
:xref-GovernorCompatibilityBravo-cancel-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-cancel-uint256-
|
|
:GovernorCompatibilityBravo-proposals: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-proposals-uint256-[`GovernorCompatibilityBravo.proposals`]]
|
|
:xref-GovernorCompatibilityBravo-proposals-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-proposals-uint256-
|
|
:GovernorCompatibilityBravo-getActions: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-getActions-uint256-[`GovernorCompatibilityBravo.getActions`]]
|
|
:xref-GovernorCompatibilityBravo-getActions-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-getActions-uint256-
|
|
:GovernorCompatibilityBravo-getReceipt: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-getReceipt-uint256-address-[`GovernorCompatibilityBravo.getReceipt`]]
|
|
:xref-GovernorCompatibilityBravo-getReceipt-uint256-address-: xref:governance.adoc#GovernorCompatibilityBravo-getReceipt-uint256-address-
|
|
:GovernorCompatibilityBravo-quorumVotes: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-quorumVotes--[`GovernorCompatibilityBravo.quorumVotes`]]
|
|
:xref-GovernorCompatibilityBravo-quorumVotes--: xref:governance.adoc#GovernorCompatibilityBravo-quorumVotes--
|
|
:GovernorCompatibilityBravo-hasVoted: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-hasVoted-uint256-address-[`GovernorCompatibilityBravo.hasVoted`]]
|
|
:xref-GovernorCompatibilityBravo-hasVoted-uint256-address-: xref:governance.adoc#GovernorCompatibilityBravo-hasVoted-uint256-address-
|
|
:GovernorCompatibilityBravo-_quorumReached: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-_quorumReached-uint256-[`GovernorCompatibilityBravo._quorumReached`]]
|
|
:xref-GovernorCompatibilityBravo-_quorumReached-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-_quorumReached-uint256-
|
|
:GovernorCompatibilityBravo-_voteSucceeded: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-_voteSucceeded-uint256-[`GovernorCompatibilityBravo._voteSucceeded`]]
|
|
:xref-GovernorCompatibilityBravo-_voteSucceeded-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-_voteSucceeded-uint256-
|
|
:GovernorCompatibilityBravo-_countVote: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-_countVote-uint256-address-uint8-uint256-bytes-[`GovernorCompatibilityBravo._countVote`]]
|
|
:xref-GovernorCompatibilityBravo-_countVote-uint256-address-uint8-uint256-bytes-: xref:governance.adoc#GovernorCompatibilityBravo-_countVote-uint256-address-uint8-uint256-bytes-
|
|
:GovernorCompatibilityBravo-ProposalDetails: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-ProposalDetails[`GovernorCompatibilityBravo.ProposalDetails`]]
|
|
:xref-GovernorCompatibilityBravo-ProposalDetails: xref:governance.adoc#GovernorCompatibilityBravo-ProposalDetails
|
|
:GovernorCompatibilityBravo-VoteType: pass:normal[xref:governance.adoc#GovernorCompatibilityBravo-VoteType[`GovernorCompatibilityBravo.VoteType`]]
|
|
:xref-GovernorCompatibilityBravo-VoteType: xref:governance.adoc#GovernorCompatibilityBravo-VoteType
|
|
:IGovernorCompatibilityBravo: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo[`IGovernorCompatibilityBravo`]]
|
|
:xref-IGovernorCompatibilityBravo: xref:governance.adoc#IGovernorCompatibilityBravo
|
|
:IGovernorCompatibilityBravo-quorumVotes: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-quorumVotes--[`IGovernorCompatibilityBravo.quorumVotes`]]
|
|
:xref-IGovernorCompatibilityBravo-quorumVotes--: xref:governance.adoc#IGovernorCompatibilityBravo-quorumVotes--
|
|
:IGovernorCompatibilityBravo-proposals: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-proposals-uint256-[`IGovernorCompatibilityBravo.proposals`]]
|
|
:xref-IGovernorCompatibilityBravo-proposals-uint256-: xref:governance.adoc#IGovernorCompatibilityBravo-proposals-uint256-
|
|
:IGovernorCompatibilityBravo-propose: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-propose-address---uint256---string---bytes---string-[`IGovernorCompatibilityBravo.propose`]]
|
|
:xref-IGovernorCompatibilityBravo-propose-address---uint256---string---bytes---string-: xref:governance.adoc#IGovernorCompatibilityBravo-propose-address---uint256---string---bytes---string-
|
|
:IGovernorCompatibilityBravo-queue: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-queue-uint256-[`IGovernorCompatibilityBravo.queue`]]
|
|
:xref-IGovernorCompatibilityBravo-queue-uint256-: xref:governance.adoc#IGovernorCompatibilityBravo-queue-uint256-
|
|
:IGovernorCompatibilityBravo-execute: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-execute-uint256-[`IGovernorCompatibilityBravo.execute`]]
|
|
:xref-IGovernorCompatibilityBravo-execute-uint256-: xref:governance.adoc#IGovernorCompatibilityBravo-execute-uint256-
|
|
:IGovernorCompatibilityBravo-cancel: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-cancel-uint256-[`IGovernorCompatibilityBravo.cancel`]]
|
|
:xref-IGovernorCompatibilityBravo-cancel-uint256-: xref:governance.adoc#IGovernorCompatibilityBravo-cancel-uint256-
|
|
:IGovernorCompatibilityBravo-getActions: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-getActions-uint256-[`IGovernorCompatibilityBravo.getActions`]]
|
|
:xref-IGovernorCompatibilityBravo-getActions-uint256-: xref:governance.adoc#IGovernorCompatibilityBravo-getActions-uint256-
|
|
:IGovernorCompatibilityBravo-getReceipt: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-getReceipt-uint256-address-[`IGovernorCompatibilityBravo.getReceipt`]]
|
|
:xref-IGovernorCompatibilityBravo-getReceipt-uint256-address-: xref:governance.adoc#IGovernorCompatibilityBravo-getReceipt-uint256-address-
|
|
:IGovernorCompatibilityBravo-Proposal: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-Proposal[`IGovernorCompatibilityBravo.Proposal`]]
|
|
:xref-IGovernorCompatibilityBravo-Proposal: xref:governance.adoc#IGovernorCompatibilityBravo-Proposal
|
|
:IGovernorCompatibilityBravo-Receipt: pass:normal[xref:governance.adoc#IGovernorCompatibilityBravo-Receipt[`IGovernorCompatibilityBravo.Receipt`]]
|
|
:xref-IGovernorCompatibilityBravo-Receipt: xref:governance.adoc#IGovernorCompatibilityBravo-Receipt
|
|
:GovernorCountingSimple: pass:normal[xref:governance.adoc#GovernorCountingSimple[`GovernorCountingSimple`]]
|
|
:xref-GovernorCountingSimple: xref:governance.adoc#GovernorCountingSimple
|
|
:GovernorCountingSimple-COUNTING_MODE: pass:normal[xref:governance.adoc#GovernorCountingSimple-COUNTING_MODE--[`GovernorCountingSimple.COUNTING_MODE`]]
|
|
:xref-GovernorCountingSimple-COUNTING_MODE--: xref:governance.adoc#GovernorCountingSimple-COUNTING_MODE--
|
|
:GovernorCountingSimple-hasVoted: pass:normal[xref:governance.adoc#GovernorCountingSimple-hasVoted-uint256-address-[`GovernorCountingSimple.hasVoted`]]
|
|
:xref-GovernorCountingSimple-hasVoted-uint256-address-: xref:governance.adoc#GovernorCountingSimple-hasVoted-uint256-address-
|
|
:GovernorCountingSimple-proposalVotes: pass:normal[xref:governance.adoc#GovernorCountingSimple-proposalVotes-uint256-[`GovernorCountingSimple.proposalVotes`]]
|
|
:xref-GovernorCountingSimple-proposalVotes-uint256-: xref:governance.adoc#GovernorCountingSimple-proposalVotes-uint256-
|
|
:GovernorCountingSimple-_quorumReached: pass:normal[xref:governance.adoc#GovernorCountingSimple-_quorumReached-uint256-[`GovernorCountingSimple._quorumReached`]]
|
|
:xref-GovernorCountingSimple-_quorumReached-uint256-: xref:governance.adoc#GovernorCountingSimple-_quorumReached-uint256-
|
|
:GovernorCountingSimple-_voteSucceeded: pass:normal[xref:governance.adoc#GovernorCountingSimple-_voteSucceeded-uint256-[`GovernorCountingSimple._voteSucceeded`]]
|
|
:xref-GovernorCountingSimple-_voteSucceeded-uint256-: xref:governance.adoc#GovernorCountingSimple-_voteSucceeded-uint256-
|
|
:GovernorCountingSimple-_countVote: pass:normal[xref:governance.adoc#GovernorCountingSimple-_countVote-uint256-address-uint8-uint256-bytes-[`GovernorCountingSimple._countVote`]]
|
|
:xref-GovernorCountingSimple-_countVote-uint256-address-uint8-uint256-bytes-: xref:governance.adoc#GovernorCountingSimple-_countVote-uint256-address-uint8-uint256-bytes-
|
|
:GovernorCountingSimple-ProposalVote: pass:normal[xref:governance.adoc#GovernorCountingSimple-ProposalVote[`GovernorCountingSimple.ProposalVote`]]
|
|
:xref-GovernorCountingSimple-ProposalVote: xref:governance.adoc#GovernorCountingSimple-ProposalVote
|
|
:GovernorCountingSimple-VoteType: pass:normal[xref:governance.adoc#GovernorCountingSimple-VoteType[`GovernorCountingSimple.VoteType`]]
|
|
:xref-GovernorCountingSimple-VoteType: xref:governance.adoc#GovernorCountingSimple-VoteType
|
|
:GovernorPreventLateQuorum: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum[`GovernorPreventLateQuorum`]]
|
|
:xref-GovernorPreventLateQuorum: xref:governance.adoc#GovernorPreventLateQuorum
|
|
:GovernorPreventLateQuorum-constructor: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-constructor-uint64-[`GovernorPreventLateQuorum.constructor`]]
|
|
:xref-GovernorPreventLateQuorum-constructor-uint64-: xref:governance.adoc#GovernorPreventLateQuorum-constructor-uint64-
|
|
:GovernorPreventLateQuorum-proposalDeadline: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-proposalDeadline-uint256-[`GovernorPreventLateQuorum.proposalDeadline`]]
|
|
:xref-GovernorPreventLateQuorum-proposalDeadline-uint256-: xref:governance.adoc#GovernorPreventLateQuorum-proposalDeadline-uint256-
|
|
:GovernorPreventLateQuorum-_castVote: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-_castVote-uint256-address-uint8-string-bytes-[`GovernorPreventLateQuorum._castVote`]]
|
|
:xref-GovernorPreventLateQuorum-_castVote-uint256-address-uint8-string-bytes-: xref:governance.adoc#GovernorPreventLateQuorum-_castVote-uint256-address-uint8-string-bytes-
|
|
:GovernorPreventLateQuorum-lateQuorumVoteExtension: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-lateQuorumVoteExtension--[`GovernorPreventLateQuorum.lateQuorumVoteExtension`]]
|
|
:xref-GovernorPreventLateQuorum-lateQuorumVoteExtension--: xref:governance.adoc#GovernorPreventLateQuorum-lateQuorumVoteExtension--
|
|
:GovernorPreventLateQuorum-setLateQuorumVoteExtension: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-setLateQuorumVoteExtension-uint64-[`GovernorPreventLateQuorum.setLateQuorumVoteExtension`]]
|
|
:xref-GovernorPreventLateQuorum-setLateQuorumVoteExtension-uint64-: xref:governance.adoc#GovernorPreventLateQuorum-setLateQuorumVoteExtension-uint64-
|
|
:GovernorPreventLateQuorum-_setLateQuorumVoteExtension: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-_setLateQuorumVoteExtension-uint64-[`GovernorPreventLateQuorum._setLateQuorumVoteExtension`]]
|
|
:xref-GovernorPreventLateQuorum-_setLateQuorumVoteExtension-uint64-: xref:governance.adoc#GovernorPreventLateQuorum-_setLateQuorumVoteExtension-uint64-
|
|
:GovernorPreventLateQuorum-ProposalExtended: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-ProposalExtended-uint256-uint64-[`GovernorPreventLateQuorum.ProposalExtended`]]
|
|
:xref-GovernorPreventLateQuorum-ProposalExtended-uint256-uint64-: xref:governance.adoc#GovernorPreventLateQuorum-ProposalExtended-uint256-uint64-
|
|
:GovernorPreventLateQuorum-LateQuorumVoteExtensionSet: pass:normal[xref:governance.adoc#GovernorPreventLateQuorum-LateQuorumVoteExtensionSet-uint64-uint64-[`GovernorPreventLateQuorum.LateQuorumVoteExtensionSet`]]
|
|
:xref-GovernorPreventLateQuorum-LateQuorumVoteExtensionSet-uint64-uint64-: xref:governance.adoc#GovernorPreventLateQuorum-LateQuorumVoteExtensionSet-uint64-uint64-
|
|
:GovernorProposalThreshold: pass:normal[xref:governance.adoc#GovernorProposalThreshold[`GovernorProposalThreshold`]]
|
|
:xref-GovernorProposalThreshold: xref:governance.adoc#GovernorProposalThreshold
|
|
:GovernorProposalThreshold-propose: pass:normal[xref:governance.adoc#GovernorProposalThreshold-propose-address---uint256---bytes---string-[`GovernorProposalThreshold.propose`]]
|
|
:xref-GovernorProposalThreshold-propose-address---uint256---bytes---string-: xref:governance.adoc#GovernorProposalThreshold-propose-address---uint256---bytes---string-
|
|
:GovernorSettings: pass:normal[xref:governance.adoc#GovernorSettings[`GovernorSettings`]]
|
|
:xref-GovernorSettings: xref:governance.adoc#GovernorSettings
|
|
:GovernorSettings-constructor: pass:normal[xref:governance.adoc#GovernorSettings-constructor-uint256-uint256-uint256-[`GovernorSettings.constructor`]]
|
|
:xref-GovernorSettings-constructor-uint256-uint256-uint256-: xref:governance.adoc#GovernorSettings-constructor-uint256-uint256-uint256-
|
|
:GovernorSettings-votingDelay: pass:normal[xref:governance.adoc#GovernorSettings-votingDelay--[`GovernorSettings.votingDelay`]]
|
|
:xref-GovernorSettings-votingDelay--: xref:governance.adoc#GovernorSettings-votingDelay--
|
|
:GovernorSettings-votingPeriod: pass:normal[xref:governance.adoc#GovernorSettings-votingPeriod--[`GovernorSettings.votingPeriod`]]
|
|
:xref-GovernorSettings-votingPeriod--: xref:governance.adoc#GovernorSettings-votingPeriod--
|
|
:GovernorSettings-proposalThreshold: pass:normal[xref:governance.adoc#GovernorSettings-proposalThreshold--[`GovernorSettings.proposalThreshold`]]
|
|
:xref-GovernorSettings-proposalThreshold--: xref:governance.adoc#GovernorSettings-proposalThreshold--
|
|
:GovernorSettings-setVotingDelay: pass:normal[xref:governance.adoc#GovernorSettings-setVotingDelay-uint256-[`GovernorSettings.setVotingDelay`]]
|
|
:xref-GovernorSettings-setVotingDelay-uint256-: xref:governance.adoc#GovernorSettings-setVotingDelay-uint256-
|
|
:GovernorSettings-setVotingPeriod: pass:normal[xref:governance.adoc#GovernorSettings-setVotingPeriod-uint256-[`GovernorSettings.setVotingPeriod`]]
|
|
:xref-GovernorSettings-setVotingPeriod-uint256-: xref:governance.adoc#GovernorSettings-setVotingPeriod-uint256-
|
|
:GovernorSettings-setProposalThreshold: pass:normal[xref:governance.adoc#GovernorSettings-setProposalThreshold-uint256-[`GovernorSettings.setProposalThreshold`]]
|
|
:xref-GovernorSettings-setProposalThreshold-uint256-: xref:governance.adoc#GovernorSettings-setProposalThreshold-uint256-
|
|
:GovernorSettings-_setVotingDelay: pass:normal[xref:governance.adoc#GovernorSettings-_setVotingDelay-uint256-[`GovernorSettings._setVotingDelay`]]
|
|
:xref-GovernorSettings-_setVotingDelay-uint256-: xref:governance.adoc#GovernorSettings-_setVotingDelay-uint256-
|
|
:GovernorSettings-_setVotingPeriod: pass:normal[xref:governance.adoc#GovernorSettings-_setVotingPeriod-uint256-[`GovernorSettings._setVotingPeriod`]]
|
|
:xref-GovernorSettings-_setVotingPeriod-uint256-: xref:governance.adoc#GovernorSettings-_setVotingPeriod-uint256-
|
|
:GovernorSettings-_setProposalThreshold: pass:normal[xref:governance.adoc#GovernorSettings-_setProposalThreshold-uint256-[`GovernorSettings._setProposalThreshold`]]
|
|
:xref-GovernorSettings-_setProposalThreshold-uint256-: xref:governance.adoc#GovernorSettings-_setProposalThreshold-uint256-
|
|
:GovernorSettings-VotingDelaySet: pass:normal[xref:governance.adoc#GovernorSettings-VotingDelaySet-uint256-uint256-[`GovernorSettings.VotingDelaySet`]]
|
|
:xref-GovernorSettings-VotingDelaySet-uint256-uint256-: xref:governance.adoc#GovernorSettings-VotingDelaySet-uint256-uint256-
|
|
:GovernorSettings-VotingPeriodSet: pass:normal[xref:governance.adoc#GovernorSettings-VotingPeriodSet-uint256-uint256-[`GovernorSettings.VotingPeriodSet`]]
|
|
:xref-GovernorSettings-VotingPeriodSet-uint256-uint256-: xref:governance.adoc#GovernorSettings-VotingPeriodSet-uint256-uint256-
|
|
:GovernorSettings-ProposalThresholdSet: pass:normal[xref:governance.adoc#GovernorSettings-ProposalThresholdSet-uint256-uint256-[`GovernorSettings.ProposalThresholdSet`]]
|
|
:xref-GovernorSettings-ProposalThresholdSet-uint256-uint256-: xref:governance.adoc#GovernorSettings-ProposalThresholdSet-uint256-uint256-
|
|
:GovernorTimelockCompound: pass:normal[xref:governance.adoc#GovernorTimelockCompound[`GovernorTimelockCompound`]]
|
|
:xref-GovernorTimelockCompound: xref:governance.adoc#GovernorTimelockCompound
|
|
:GovernorTimelockCompound-constructor: pass:normal[xref:governance.adoc#GovernorTimelockCompound-constructor-contract-ICompoundTimelock-[`GovernorTimelockCompound.constructor`]]
|
|
:xref-GovernorTimelockCompound-constructor-contract-ICompoundTimelock-: xref:governance.adoc#GovernorTimelockCompound-constructor-contract-ICompoundTimelock-
|
|
:GovernorTimelockCompound-supportsInterface: pass:normal[xref:governance.adoc#GovernorTimelockCompound-supportsInterface-bytes4-[`GovernorTimelockCompound.supportsInterface`]]
|
|
:xref-GovernorTimelockCompound-supportsInterface-bytes4-: xref:governance.adoc#GovernorTimelockCompound-supportsInterface-bytes4-
|
|
:GovernorTimelockCompound-state: pass:normal[xref:governance.adoc#GovernorTimelockCompound-state-uint256-[`GovernorTimelockCompound.state`]]
|
|
:xref-GovernorTimelockCompound-state-uint256-: xref:governance.adoc#GovernorTimelockCompound-state-uint256-
|
|
:GovernorTimelockCompound-timelock: pass:normal[xref:governance.adoc#GovernorTimelockCompound-timelock--[`GovernorTimelockCompound.timelock`]]
|
|
:xref-GovernorTimelockCompound-timelock--: xref:governance.adoc#GovernorTimelockCompound-timelock--
|
|
:GovernorTimelockCompound-proposalEta: pass:normal[xref:governance.adoc#GovernorTimelockCompound-proposalEta-uint256-[`GovernorTimelockCompound.proposalEta`]]
|
|
:xref-GovernorTimelockCompound-proposalEta-uint256-: xref:governance.adoc#GovernorTimelockCompound-proposalEta-uint256-
|
|
:GovernorTimelockCompound-queue: pass:normal[xref:governance.adoc#GovernorTimelockCompound-queue-address---uint256---bytes---bytes32-[`GovernorTimelockCompound.queue`]]
|
|
:xref-GovernorTimelockCompound-queue-address---uint256---bytes---bytes32-: xref:governance.adoc#GovernorTimelockCompound-queue-address---uint256---bytes---bytes32-
|
|
:GovernorTimelockCompound-_execute: pass:normal[xref:governance.adoc#GovernorTimelockCompound-_execute-uint256-address---uint256---bytes---bytes32-[`GovernorTimelockCompound._execute`]]
|
|
:xref-GovernorTimelockCompound-_execute-uint256-address---uint256---bytes---bytes32-: xref:governance.adoc#GovernorTimelockCompound-_execute-uint256-address---uint256---bytes---bytes32-
|
|
:GovernorTimelockCompound-_cancel: pass:normal[xref:governance.adoc#GovernorTimelockCompound-_cancel-address---uint256---bytes---bytes32-[`GovernorTimelockCompound._cancel`]]
|
|
:xref-GovernorTimelockCompound-_cancel-address---uint256---bytes---bytes32-: xref:governance.adoc#GovernorTimelockCompound-_cancel-address---uint256---bytes---bytes32-
|
|
:GovernorTimelockCompound-_executor: pass:normal[xref:governance.adoc#GovernorTimelockCompound-_executor--[`GovernorTimelockCompound._executor`]]
|
|
:xref-GovernorTimelockCompound-_executor--: xref:governance.adoc#GovernorTimelockCompound-_executor--
|
|
:GovernorTimelockCompound-__acceptAdmin: pass:normal[xref:governance.adoc#GovernorTimelockCompound-__acceptAdmin--[`GovernorTimelockCompound.__acceptAdmin`]]
|
|
:xref-GovernorTimelockCompound-__acceptAdmin--: xref:governance.adoc#GovernorTimelockCompound-__acceptAdmin--
|
|
:GovernorTimelockCompound-updateTimelock: pass:normal[xref:governance.adoc#GovernorTimelockCompound-updateTimelock-contract-ICompoundTimelock-[`GovernorTimelockCompound.updateTimelock`]]
|
|
:xref-GovernorTimelockCompound-updateTimelock-contract-ICompoundTimelock-: xref:governance.adoc#GovernorTimelockCompound-updateTimelock-contract-ICompoundTimelock-
|
|
:GovernorTimelockCompound-TimelockChange: pass:normal[xref:governance.adoc#GovernorTimelockCompound-TimelockChange-address-address-[`GovernorTimelockCompound.TimelockChange`]]
|
|
:xref-GovernorTimelockCompound-TimelockChange-address-address-: xref:governance.adoc#GovernorTimelockCompound-TimelockChange-address-address-
|
|
:GovernorTimelockCompound-ProposalTimelock: pass:normal[xref:governance.adoc#GovernorTimelockCompound-ProposalTimelock[`GovernorTimelockCompound.ProposalTimelock`]]
|
|
:xref-GovernorTimelockCompound-ProposalTimelock: xref:governance.adoc#GovernorTimelockCompound-ProposalTimelock
|
|
:GovernorTimelockControl: pass:normal[xref:governance.adoc#GovernorTimelockControl[`GovernorTimelockControl`]]
|
|
:xref-GovernorTimelockControl: xref:governance.adoc#GovernorTimelockControl
|
|
:GovernorTimelockControl-constructor: pass:normal[xref:governance.adoc#GovernorTimelockControl-constructor-contract-TimelockController-[`GovernorTimelockControl.constructor`]]
|
|
:xref-GovernorTimelockControl-constructor-contract-TimelockController-: xref:governance.adoc#GovernorTimelockControl-constructor-contract-TimelockController-
|
|
:GovernorTimelockControl-supportsInterface: pass:normal[xref:governance.adoc#GovernorTimelockControl-supportsInterface-bytes4-[`GovernorTimelockControl.supportsInterface`]]
|
|
:xref-GovernorTimelockControl-supportsInterface-bytes4-: xref:governance.adoc#GovernorTimelockControl-supportsInterface-bytes4-
|
|
:GovernorTimelockControl-state: pass:normal[xref:governance.adoc#GovernorTimelockControl-state-uint256-[`GovernorTimelockControl.state`]]
|
|
:xref-GovernorTimelockControl-state-uint256-: xref:governance.adoc#GovernorTimelockControl-state-uint256-
|
|
:GovernorTimelockControl-timelock: pass:normal[xref:governance.adoc#GovernorTimelockControl-timelock--[`GovernorTimelockControl.timelock`]]
|
|
:xref-GovernorTimelockControl-timelock--: xref:governance.adoc#GovernorTimelockControl-timelock--
|
|
:GovernorTimelockControl-proposalEta: pass:normal[xref:governance.adoc#GovernorTimelockControl-proposalEta-uint256-[`GovernorTimelockControl.proposalEta`]]
|
|
:xref-GovernorTimelockControl-proposalEta-uint256-: xref:governance.adoc#GovernorTimelockControl-proposalEta-uint256-
|
|
:GovernorTimelockControl-queue: pass:normal[xref:governance.adoc#GovernorTimelockControl-queue-address---uint256---bytes---bytes32-[`GovernorTimelockControl.queue`]]
|
|
:xref-GovernorTimelockControl-queue-address---uint256---bytes---bytes32-: xref:governance.adoc#GovernorTimelockControl-queue-address---uint256---bytes---bytes32-
|
|
:GovernorTimelockControl-_execute: pass:normal[xref:governance.adoc#GovernorTimelockControl-_execute-uint256-address---uint256---bytes---bytes32-[`GovernorTimelockControl._execute`]]
|
|
:xref-GovernorTimelockControl-_execute-uint256-address---uint256---bytes---bytes32-: xref:governance.adoc#GovernorTimelockControl-_execute-uint256-address---uint256---bytes---bytes32-
|
|
:GovernorTimelockControl-_cancel: pass:normal[xref:governance.adoc#GovernorTimelockControl-_cancel-address---uint256---bytes---bytes32-[`GovernorTimelockControl._cancel`]]
|
|
:xref-GovernorTimelockControl-_cancel-address---uint256---bytes---bytes32-: xref:governance.adoc#GovernorTimelockControl-_cancel-address---uint256---bytes---bytes32-
|
|
:GovernorTimelockControl-_executor: pass:normal[xref:governance.adoc#GovernorTimelockControl-_executor--[`GovernorTimelockControl._executor`]]
|
|
:xref-GovernorTimelockControl-_executor--: xref:governance.adoc#GovernorTimelockControl-_executor--
|
|
:GovernorTimelockControl-updateTimelock: pass:normal[xref:governance.adoc#GovernorTimelockControl-updateTimelock-contract-TimelockController-[`GovernorTimelockControl.updateTimelock`]]
|
|
:xref-GovernorTimelockControl-updateTimelock-contract-TimelockController-: xref:governance.adoc#GovernorTimelockControl-updateTimelock-contract-TimelockController-
|
|
:GovernorTimelockControl-TimelockChange: pass:normal[xref:governance.adoc#GovernorTimelockControl-TimelockChange-address-address-[`GovernorTimelockControl.TimelockChange`]]
|
|
:xref-GovernorTimelockControl-TimelockChange-address-address-: xref:governance.adoc#GovernorTimelockControl-TimelockChange-address-address-
|
|
:GovernorVotes: pass:normal[xref:governance.adoc#GovernorVotes[`GovernorVotes`]]
|
|
:xref-GovernorVotes: xref:governance.adoc#GovernorVotes
|
|
:GovernorVotes-token: pass:normal[xref:governance.adoc#GovernorVotes-token-contract-IVotes[`GovernorVotes.token`]]
|
|
:xref-GovernorVotes-token-contract-IVotes: xref:governance.adoc#GovernorVotes-token-contract-IVotes
|
|
:GovernorVotes-constructor: pass:normal[xref:governance.adoc#GovernorVotes-constructor-contract-IVotes-[`GovernorVotes.constructor`]]
|
|
:xref-GovernorVotes-constructor-contract-IVotes-: xref:governance.adoc#GovernorVotes-constructor-contract-IVotes-
|
|
:GovernorVotes-_getVotes: pass:normal[xref:governance.adoc#GovernorVotes-_getVotes-address-uint256-bytes-[`GovernorVotes._getVotes`]]
|
|
:xref-GovernorVotes-_getVotes-address-uint256-bytes-: xref:governance.adoc#GovernorVotes-_getVotes-address-uint256-bytes-
|
|
:GovernorVotesComp: pass:normal[xref:governance.adoc#GovernorVotesComp[`GovernorVotesComp`]]
|
|
:xref-GovernorVotesComp: xref:governance.adoc#GovernorVotesComp
|
|
:GovernorVotesComp-token: pass:normal[xref:governance.adoc#GovernorVotesComp-token-contract-ERC20VotesComp[`GovernorVotesComp.token`]]
|
|
:xref-GovernorVotesComp-token-contract-ERC20VotesComp: xref:governance.adoc#GovernorVotesComp-token-contract-ERC20VotesComp
|
|
:GovernorVotesComp-constructor: pass:normal[xref:governance.adoc#GovernorVotesComp-constructor-contract-ERC20VotesComp-[`GovernorVotesComp.constructor`]]
|
|
:xref-GovernorVotesComp-constructor-contract-ERC20VotesComp-: xref:governance.adoc#GovernorVotesComp-constructor-contract-ERC20VotesComp-
|
|
:GovernorVotesComp-_getVotes: pass:normal[xref:governance.adoc#GovernorVotesComp-_getVotes-address-uint256-bytes-[`GovernorVotesComp._getVotes`]]
|
|
:xref-GovernorVotesComp-_getVotes-address-uint256-bytes-: xref:governance.adoc#GovernorVotesComp-_getVotes-address-uint256-bytes-
|
|
:GovernorVotesQuorumFraction: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction[`GovernorVotesQuorumFraction`]]
|
|
:xref-GovernorVotesQuorumFraction: xref:governance.adoc#GovernorVotesQuorumFraction
|
|
:GovernorVotesQuorumFraction-constructor: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-constructor-uint256-[`GovernorVotesQuorumFraction.constructor`]]
|
|
:xref-GovernorVotesQuorumFraction-constructor-uint256-: xref:governance.adoc#GovernorVotesQuorumFraction-constructor-uint256-
|
|
:GovernorVotesQuorumFraction-quorumNumerator: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-quorumNumerator--[`GovernorVotesQuorumFraction.quorumNumerator`]]
|
|
:xref-GovernorVotesQuorumFraction-quorumNumerator--: xref:governance.adoc#GovernorVotesQuorumFraction-quorumNumerator--
|
|
:GovernorVotesQuorumFraction-quorumDenominator: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-quorumDenominator--[`GovernorVotesQuorumFraction.quorumDenominator`]]
|
|
:xref-GovernorVotesQuorumFraction-quorumDenominator--: xref:governance.adoc#GovernorVotesQuorumFraction-quorumDenominator--
|
|
:GovernorVotesQuorumFraction-quorum: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-quorum-uint256-[`GovernorVotesQuorumFraction.quorum`]]
|
|
:xref-GovernorVotesQuorumFraction-quorum-uint256-: xref:governance.adoc#GovernorVotesQuorumFraction-quorum-uint256-
|
|
:GovernorVotesQuorumFraction-updateQuorumNumerator: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-updateQuorumNumerator-uint256-[`GovernorVotesQuorumFraction.updateQuorumNumerator`]]
|
|
:xref-GovernorVotesQuorumFraction-updateQuorumNumerator-uint256-: xref:governance.adoc#GovernorVotesQuorumFraction-updateQuorumNumerator-uint256-
|
|
:GovernorVotesQuorumFraction-_updateQuorumNumerator: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-_updateQuorumNumerator-uint256-[`GovernorVotesQuorumFraction._updateQuorumNumerator`]]
|
|
:xref-GovernorVotesQuorumFraction-_updateQuorumNumerator-uint256-: xref:governance.adoc#GovernorVotesQuorumFraction-_updateQuorumNumerator-uint256-
|
|
:GovernorVotesQuorumFraction-QuorumNumeratorUpdated: pass:normal[xref:governance.adoc#GovernorVotesQuorumFraction-QuorumNumeratorUpdated-uint256-uint256-[`GovernorVotesQuorumFraction.QuorumNumeratorUpdated`]]
|
|
:xref-GovernorVotesQuorumFraction-QuorumNumeratorUpdated-uint256-uint256-: xref:governance.adoc#GovernorVotesQuorumFraction-QuorumNumeratorUpdated-uint256-uint256-
|
|
:IGovernorTimelock: pass:normal[xref:governance.adoc#IGovernorTimelock[`IGovernorTimelock`]]
|
|
:xref-IGovernorTimelock: xref:governance.adoc#IGovernorTimelock
|
|
:IGovernorTimelock-timelock: pass:normal[xref:governance.adoc#IGovernorTimelock-timelock--[`IGovernorTimelock.timelock`]]
|
|
:xref-IGovernorTimelock-timelock--: xref:governance.adoc#IGovernorTimelock-timelock--
|
|
:IGovernorTimelock-proposalEta: pass:normal[xref:governance.adoc#IGovernorTimelock-proposalEta-uint256-[`IGovernorTimelock.proposalEta`]]
|
|
:xref-IGovernorTimelock-proposalEta-uint256-: xref:governance.adoc#IGovernorTimelock-proposalEta-uint256-
|
|
:IGovernorTimelock-queue: pass:normal[xref:governance.adoc#IGovernorTimelock-queue-address---uint256---bytes---bytes32-[`IGovernorTimelock.queue`]]
|
|
:xref-IGovernorTimelock-queue-address---uint256---bytes---bytes32-: xref:governance.adoc#IGovernorTimelock-queue-address---uint256---bytes---bytes32-
|
|
:IGovernorTimelock-ProposalQueued: pass:normal[xref:governance.adoc#IGovernorTimelock-ProposalQueued-uint256-uint256-[`IGovernorTimelock.ProposalQueued`]]
|
|
:xref-IGovernorTimelock-ProposalQueued-uint256-uint256-: xref:governance.adoc#IGovernorTimelock-ProposalQueued-uint256-uint256-
|
|
:IVotes: pass:normal[xref:governance.adoc#IVotes[`IVotes`]]
|
|
:xref-IVotes: xref:governance.adoc#IVotes
|
|
:IVotes-getVotes: pass:normal[xref:governance.adoc#IVotes-getVotes-address-[`IVotes.getVotes`]]
|
|
:xref-IVotes-getVotes-address-: xref:governance.adoc#IVotes-getVotes-address-
|
|
:IVotes-getPastVotes: pass:normal[xref:governance.adoc#IVotes-getPastVotes-address-uint256-[`IVotes.getPastVotes`]]
|
|
:xref-IVotes-getPastVotes-address-uint256-: xref:governance.adoc#IVotes-getPastVotes-address-uint256-
|
|
:IVotes-getPastTotalSupply: pass:normal[xref:governance.adoc#IVotes-getPastTotalSupply-uint256-[`IVotes.getPastTotalSupply`]]
|
|
:xref-IVotes-getPastTotalSupply-uint256-: xref:governance.adoc#IVotes-getPastTotalSupply-uint256-
|
|
:IVotes-delegates: pass:normal[xref:governance.adoc#IVotes-delegates-address-[`IVotes.delegates`]]
|
|
:xref-IVotes-delegates-address-: xref:governance.adoc#IVotes-delegates-address-
|
|
:IVotes-delegate: pass:normal[xref:governance.adoc#IVotes-delegate-address-[`IVotes.delegate`]]
|
|
:xref-IVotes-delegate-address-: xref:governance.adoc#IVotes-delegate-address-
|
|
:IVotes-delegateBySig: pass:normal[xref:governance.adoc#IVotes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-[`IVotes.delegateBySig`]]
|
|
:xref-IVotes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-: xref:governance.adoc#IVotes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-
|
|
:IVotes-DelegateChanged: pass:normal[xref:governance.adoc#IVotes-DelegateChanged-address-address-address-[`IVotes.DelegateChanged`]]
|
|
:xref-IVotes-DelegateChanged-address-address-address-: xref:governance.adoc#IVotes-DelegateChanged-address-address-address-
|
|
:IVotes-DelegateVotesChanged: pass:normal[xref:governance.adoc#IVotes-DelegateVotesChanged-address-uint256-uint256-[`IVotes.DelegateVotesChanged`]]
|
|
:xref-IVotes-DelegateVotesChanged-address-uint256-uint256-: xref:governance.adoc#IVotes-DelegateVotesChanged-address-uint256-uint256-
|
|
:Votes: pass:normal[xref:governance.adoc#Votes[`Votes`]]
|
|
:xref-Votes: xref:governance.adoc#Votes
|
|
:Votes-getVotes: pass:normal[xref:governance.adoc#Votes-getVotes-address-[`Votes.getVotes`]]
|
|
:xref-Votes-getVotes-address-: xref:governance.adoc#Votes-getVotes-address-
|
|
:Votes-getPastVotes: pass:normal[xref:governance.adoc#Votes-getPastVotes-address-uint256-[`Votes.getPastVotes`]]
|
|
:xref-Votes-getPastVotes-address-uint256-: xref:governance.adoc#Votes-getPastVotes-address-uint256-
|
|
:Votes-getPastTotalSupply: pass:normal[xref:governance.adoc#Votes-getPastTotalSupply-uint256-[`Votes.getPastTotalSupply`]]
|
|
:xref-Votes-getPastTotalSupply-uint256-: xref:governance.adoc#Votes-getPastTotalSupply-uint256-
|
|
:Votes-_getTotalSupply: pass:normal[xref:governance.adoc#Votes-_getTotalSupply--[`Votes._getTotalSupply`]]
|
|
:xref-Votes-_getTotalSupply--: xref:governance.adoc#Votes-_getTotalSupply--
|
|
:Votes-delegates: pass:normal[xref:governance.adoc#Votes-delegates-address-[`Votes.delegates`]]
|
|
:xref-Votes-delegates-address-: xref:governance.adoc#Votes-delegates-address-
|
|
:Votes-delegate: pass:normal[xref:governance.adoc#Votes-delegate-address-[`Votes.delegate`]]
|
|
:xref-Votes-delegate-address-: xref:governance.adoc#Votes-delegate-address-
|
|
:Votes-delegateBySig: pass:normal[xref:governance.adoc#Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-[`Votes.delegateBySig`]]
|
|
:xref-Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-: xref:governance.adoc#Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-
|
|
:Votes-_delegate: pass:normal[xref:governance.adoc#Votes-_delegate-address-address-[`Votes._delegate`]]
|
|
:xref-Votes-_delegate-address-address-: xref:governance.adoc#Votes-_delegate-address-address-
|
|
:Votes-_transferVotingUnits: pass:normal[xref:governance.adoc#Votes-_transferVotingUnits-address-address-uint256-[`Votes._transferVotingUnits`]]
|
|
:xref-Votes-_transferVotingUnits-address-address-uint256-: xref:governance.adoc#Votes-_transferVotingUnits-address-address-uint256-
|
|
:Votes-_useNonce: pass:normal[xref:governance.adoc#Votes-_useNonce-address-[`Votes._useNonce`]]
|
|
:xref-Votes-_useNonce-address-: xref:governance.adoc#Votes-_useNonce-address-
|
|
:Votes-nonces: pass:normal[xref:governance.adoc#Votes-nonces-address-[`Votes.nonces`]]
|
|
:xref-Votes-nonces-address-: xref:governance.adoc#Votes-nonces-address-
|
|
:Votes-DOMAIN_SEPARATOR: pass:normal[xref:governance.adoc#Votes-DOMAIN_SEPARATOR--[`Votes.DOMAIN_SEPARATOR`]]
|
|
:xref-Votes-DOMAIN_SEPARATOR--: xref:governance.adoc#Votes-DOMAIN_SEPARATOR--
|
|
:Votes-_getVotingUnits: pass:normal[xref:governance.adoc#Votes-_getVotingUnits-address-[`Votes._getVotingUnits`]]
|
|
:xref-Votes-_getVotingUnits-address-: xref:governance.adoc#Votes-_getVotingUnits-address-
|
|
:IERC1271: pass:normal[xref:interfaces.adoc#IERC1271[`IERC1271`]]
|
|
:xref-IERC1271: xref:interfaces.adoc#IERC1271
|
|
:IERC1271-isValidSignature: pass:normal[xref:interfaces.adoc#IERC1271-isValidSignature-bytes32-bytes-[`IERC1271.isValidSignature`]]
|
|
:xref-IERC1271-isValidSignature-bytes32-bytes-: xref:interfaces.adoc#IERC1271-isValidSignature-bytes32-bytes-
|
|
:IERC1363: pass:normal[xref:interfaces.adoc#IERC1363[`IERC1363`]]
|
|
:xref-IERC1363: xref:interfaces.adoc#IERC1363
|
|
:IERC1363-transferAndCall: pass:normal[xref:interfaces.adoc#IERC1363-transferAndCall-address-uint256-[`IERC1363.transferAndCall`]]
|
|
:xref-IERC1363-transferAndCall-address-uint256-: xref:interfaces.adoc#IERC1363-transferAndCall-address-uint256-
|
|
:IERC1363-transferAndCall: pass:normal[xref:interfaces.adoc#IERC1363-transferAndCall-address-uint256-bytes-[`IERC1363.transferAndCall`]]
|
|
:xref-IERC1363-transferAndCall-address-uint256-bytes-: xref:interfaces.adoc#IERC1363-transferAndCall-address-uint256-bytes-
|
|
:IERC1363-transferFromAndCall: pass:normal[xref:interfaces.adoc#IERC1363-transferFromAndCall-address-address-uint256-[`IERC1363.transferFromAndCall`]]
|
|
:xref-IERC1363-transferFromAndCall-address-address-uint256-: xref:interfaces.adoc#IERC1363-transferFromAndCall-address-address-uint256-
|
|
:IERC1363-transferFromAndCall: pass:normal[xref:interfaces.adoc#IERC1363-transferFromAndCall-address-address-uint256-bytes-[`IERC1363.transferFromAndCall`]]
|
|
:xref-IERC1363-transferFromAndCall-address-address-uint256-bytes-: xref:interfaces.adoc#IERC1363-transferFromAndCall-address-address-uint256-bytes-
|
|
:IERC1363-approveAndCall: pass:normal[xref:interfaces.adoc#IERC1363-approveAndCall-address-uint256-[`IERC1363.approveAndCall`]]
|
|
:xref-IERC1363-approveAndCall-address-uint256-: xref:interfaces.adoc#IERC1363-approveAndCall-address-uint256-
|
|
:IERC1363-approveAndCall: pass:normal[xref:interfaces.adoc#IERC1363-approveAndCall-address-uint256-bytes-[`IERC1363.approveAndCall`]]
|
|
:xref-IERC1363-approveAndCall-address-uint256-bytes-: xref:interfaces.adoc#IERC1363-approveAndCall-address-uint256-bytes-
|
|
:IERC1363Receiver: pass:normal[xref:interfaces.adoc#IERC1363Receiver[`IERC1363Receiver`]]
|
|
:xref-IERC1363Receiver: xref:interfaces.adoc#IERC1363Receiver
|
|
:IERC1363Receiver-onTransferReceived: pass:normal[xref:interfaces.adoc#IERC1363Receiver-onTransferReceived-address-address-uint256-bytes-[`IERC1363Receiver.onTransferReceived`]]
|
|
:xref-IERC1363Receiver-onTransferReceived-address-address-uint256-bytes-: xref:interfaces.adoc#IERC1363Receiver-onTransferReceived-address-address-uint256-bytes-
|
|
:IERC1363Spender: pass:normal[xref:interfaces.adoc#IERC1363Spender[`IERC1363Spender`]]
|
|
:xref-IERC1363Spender: xref:interfaces.adoc#IERC1363Spender
|
|
:IERC1363Spender-onApprovalReceived: pass:normal[xref:interfaces.adoc#IERC1363Spender-onApprovalReceived-address-uint256-bytes-[`IERC1363Spender.onApprovalReceived`]]
|
|
:xref-IERC1363Spender-onApprovalReceived-address-uint256-bytes-: xref:interfaces.adoc#IERC1363Spender-onApprovalReceived-address-uint256-bytes-
|
|
:IERC2981: pass:normal[xref:interfaces.adoc#IERC2981[`IERC2981`]]
|
|
:xref-IERC2981: xref:interfaces.adoc#IERC2981
|
|
:IERC2981-royaltyInfo: pass:normal[xref:interfaces.adoc#IERC2981-royaltyInfo-uint256-uint256-[`IERC2981.royaltyInfo`]]
|
|
:xref-IERC2981-royaltyInfo-uint256-uint256-: xref:interfaces.adoc#IERC2981-royaltyInfo-uint256-uint256-
|
|
:IERC3156FlashBorrower: pass:normal[xref:interfaces.adoc#IERC3156FlashBorrower[`IERC3156FlashBorrower`]]
|
|
:xref-IERC3156FlashBorrower: xref:interfaces.adoc#IERC3156FlashBorrower
|
|
:IERC3156FlashBorrower-onFlashLoan: pass:normal[xref:interfaces.adoc#IERC3156FlashBorrower-onFlashLoan-address-address-uint256-uint256-bytes-[`IERC3156FlashBorrower.onFlashLoan`]]
|
|
:xref-IERC3156FlashBorrower-onFlashLoan-address-address-uint256-uint256-bytes-: xref:interfaces.adoc#IERC3156FlashBorrower-onFlashLoan-address-address-uint256-uint256-bytes-
|
|
:IERC3156FlashLender: pass:normal[xref:interfaces.adoc#IERC3156FlashLender[`IERC3156FlashLender`]]
|
|
:xref-IERC3156FlashLender: xref:interfaces.adoc#IERC3156FlashLender
|
|
:IERC3156FlashLender-maxFlashLoan: pass:normal[xref:interfaces.adoc#IERC3156FlashLender-maxFlashLoan-address-[`IERC3156FlashLender.maxFlashLoan`]]
|
|
:xref-IERC3156FlashLender-maxFlashLoan-address-: xref:interfaces.adoc#IERC3156FlashLender-maxFlashLoan-address-
|
|
:IERC3156FlashLender-flashFee: pass:normal[xref:interfaces.adoc#IERC3156FlashLender-flashFee-address-uint256-[`IERC3156FlashLender.flashFee`]]
|
|
:xref-IERC3156FlashLender-flashFee-address-uint256-: xref:interfaces.adoc#IERC3156FlashLender-flashFee-address-uint256-
|
|
:IERC3156FlashLender-flashLoan: pass:normal[xref:interfaces.adoc#IERC3156FlashLender-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-[`IERC3156FlashLender.flashLoan`]]
|
|
:xref-IERC3156FlashLender-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-: xref:interfaces.adoc#IERC3156FlashLender-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-
|
|
:IERC4626: pass:normal[xref:interfaces.adoc#IERC4626[`IERC4626`]]
|
|
:xref-IERC4626: xref:interfaces.adoc#IERC4626
|
|
:IERC4626-asset: pass:normal[xref:interfaces.adoc#IERC4626-asset--[`IERC4626.asset`]]
|
|
:xref-IERC4626-asset--: xref:interfaces.adoc#IERC4626-asset--
|
|
:IERC4626-totalAssets: pass:normal[xref:interfaces.adoc#IERC4626-totalAssets--[`IERC4626.totalAssets`]]
|
|
:xref-IERC4626-totalAssets--: xref:interfaces.adoc#IERC4626-totalAssets--
|
|
:IERC4626-convertToShares: pass:normal[xref:interfaces.adoc#IERC4626-convertToShares-uint256-[`IERC4626.convertToShares`]]
|
|
:xref-IERC4626-convertToShares-uint256-: xref:interfaces.adoc#IERC4626-convertToShares-uint256-
|
|
:IERC4626-convertToAssets: pass:normal[xref:interfaces.adoc#IERC4626-convertToAssets-uint256-[`IERC4626.convertToAssets`]]
|
|
:xref-IERC4626-convertToAssets-uint256-: xref:interfaces.adoc#IERC4626-convertToAssets-uint256-
|
|
:IERC4626-maxDeposit: pass:normal[xref:interfaces.adoc#IERC4626-maxDeposit-address-[`IERC4626.maxDeposit`]]
|
|
:xref-IERC4626-maxDeposit-address-: xref:interfaces.adoc#IERC4626-maxDeposit-address-
|
|
:IERC4626-previewDeposit: pass:normal[xref:interfaces.adoc#IERC4626-previewDeposit-uint256-[`IERC4626.previewDeposit`]]
|
|
:xref-IERC4626-previewDeposit-uint256-: xref:interfaces.adoc#IERC4626-previewDeposit-uint256-
|
|
:IERC4626-deposit: pass:normal[xref:interfaces.adoc#IERC4626-deposit-uint256-address-[`IERC4626.deposit`]]
|
|
:xref-IERC4626-deposit-uint256-address-: xref:interfaces.adoc#IERC4626-deposit-uint256-address-
|
|
:IERC4626-maxMint: pass:normal[xref:interfaces.adoc#IERC4626-maxMint-address-[`IERC4626.maxMint`]]
|
|
:xref-IERC4626-maxMint-address-: xref:interfaces.adoc#IERC4626-maxMint-address-
|
|
:IERC4626-previewMint: pass:normal[xref:interfaces.adoc#IERC4626-previewMint-uint256-[`IERC4626.previewMint`]]
|
|
:xref-IERC4626-previewMint-uint256-: xref:interfaces.adoc#IERC4626-previewMint-uint256-
|
|
:IERC4626-mint: pass:normal[xref:interfaces.adoc#IERC4626-mint-uint256-address-[`IERC4626.mint`]]
|
|
:xref-IERC4626-mint-uint256-address-: xref:interfaces.adoc#IERC4626-mint-uint256-address-
|
|
:IERC4626-maxWithdraw: pass:normal[xref:interfaces.adoc#IERC4626-maxWithdraw-address-[`IERC4626.maxWithdraw`]]
|
|
:xref-IERC4626-maxWithdraw-address-: xref:interfaces.adoc#IERC4626-maxWithdraw-address-
|
|
:IERC4626-previewWithdraw: pass:normal[xref:interfaces.adoc#IERC4626-previewWithdraw-uint256-[`IERC4626.previewWithdraw`]]
|
|
:xref-IERC4626-previewWithdraw-uint256-: xref:interfaces.adoc#IERC4626-previewWithdraw-uint256-
|
|
:IERC4626-withdraw: pass:normal[xref:interfaces.adoc#IERC4626-withdraw-uint256-address-address-[`IERC4626.withdraw`]]
|
|
:xref-IERC4626-withdraw-uint256-address-address-: xref:interfaces.adoc#IERC4626-withdraw-uint256-address-address-
|
|
:IERC4626-maxRedeem: pass:normal[xref:interfaces.adoc#IERC4626-maxRedeem-address-[`IERC4626.maxRedeem`]]
|
|
:xref-IERC4626-maxRedeem-address-: xref:interfaces.adoc#IERC4626-maxRedeem-address-
|
|
:IERC4626-previewRedeem: pass:normal[xref:interfaces.adoc#IERC4626-previewRedeem-uint256-[`IERC4626.previewRedeem`]]
|
|
:xref-IERC4626-previewRedeem-uint256-: xref:interfaces.adoc#IERC4626-previewRedeem-uint256-
|
|
:IERC4626-redeem: pass:normal[xref:interfaces.adoc#IERC4626-redeem-uint256-address-address-[`IERC4626.redeem`]]
|
|
:xref-IERC4626-redeem-uint256-address-address-: xref:interfaces.adoc#IERC4626-redeem-uint256-address-address-
|
|
:IERC4626-Deposit: pass:normal[xref:interfaces.adoc#IERC4626-Deposit-address-address-uint256-uint256-[`IERC4626.Deposit`]]
|
|
:xref-IERC4626-Deposit-address-address-uint256-uint256-: xref:interfaces.adoc#IERC4626-Deposit-address-address-uint256-uint256-
|
|
:IERC4626-Withdraw: pass:normal[xref:interfaces.adoc#IERC4626-Withdraw-address-address-address-uint256-uint256-[`IERC4626.Withdraw`]]
|
|
:xref-IERC4626-Withdraw-address-address-address-uint256-uint256-: xref:interfaces.adoc#IERC4626-Withdraw-address-address-address-uint256-uint256-
|
|
:IERC1822Proxiable: pass:normal[xref:interfaces.adoc#IERC1822Proxiable[`IERC1822Proxiable`]]
|
|
:xref-IERC1822Proxiable: xref:interfaces.adoc#IERC1822Proxiable
|
|
:IERC1822Proxiable-proxiableUUID: pass:normal[xref:interfaces.adoc#IERC1822Proxiable-proxiableUUID--[`IERC1822Proxiable.proxiableUUID`]]
|
|
:xref-IERC1822Proxiable-proxiableUUID--: xref:interfaces.adoc#IERC1822Proxiable-proxiableUUID--
|
|
:IERC2612: pass:normal[xref:interfaces.adoc#IERC2612[`IERC2612`]]
|
|
:xref-IERC2612: xref:interfaces.adoc#IERC2612
|
|
:ERC2771Context: pass:normal[xref:metatx.adoc#ERC2771Context[`ERC2771Context`]]
|
|
:xref-ERC2771Context: xref:metatx.adoc#ERC2771Context
|
|
:ERC2771Context-constructor: pass:normal[xref:metatx.adoc#ERC2771Context-constructor-address-[`ERC2771Context.constructor`]]
|
|
:xref-ERC2771Context-constructor-address-: xref:metatx.adoc#ERC2771Context-constructor-address-
|
|
:ERC2771Context-isTrustedForwarder: pass:normal[xref:metatx.adoc#ERC2771Context-isTrustedForwarder-address-[`ERC2771Context.isTrustedForwarder`]]
|
|
:xref-ERC2771Context-isTrustedForwarder-address-: xref:metatx.adoc#ERC2771Context-isTrustedForwarder-address-
|
|
:ERC2771Context-_msgSender: pass:normal[xref:metatx.adoc#ERC2771Context-_msgSender--[`ERC2771Context._msgSender`]]
|
|
:xref-ERC2771Context-_msgSender--: xref:metatx.adoc#ERC2771Context-_msgSender--
|
|
:ERC2771Context-_msgData: pass:normal[xref:metatx.adoc#ERC2771Context-_msgData--[`ERC2771Context._msgData`]]
|
|
:xref-ERC2771Context-_msgData--: xref:metatx.adoc#ERC2771Context-_msgData--
|
|
:MinimalForwarder: pass:normal[xref:metatx.adoc#MinimalForwarder[`MinimalForwarder`]]
|
|
:xref-MinimalForwarder: xref:metatx.adoc#MinimalForwarder
|
|
:MinimalForwarder-getNonce: pass:normal[xref:metatx.adoc#MinimalForwarder-getNonce-address-[`MinimalForwarder.getNonce`]]
|
|
:xref-MinimalForwarder-getNonce-address-: xref:metatx.adoc#MinimalForwarder-getNonce-address-
|
|
:MinimalForwarder-verify: pass:normal[xref:metatx.adoc#MinimalForwarder-verify-struct-MinimalForwarder-ForwardRequest-bytes-[`MinimalForwarder.verify`]]
|
|
:xref-MinimalForwarder-verify-struct-MinimalForwarder-ForwardRequest-bytes-: xref:metatx.adoc#MinimalForwarder-verify-struct-MinimalForwarder-ForwardRequest-bytes-
|
|
:MinimalForwarder-execute: pass:normal[xref:metatx.adoc#MinimalForwarder-execute-struct-MinimalForwarder-ForwardRequest-bytes-[`MinimalForwarder.execute`]]
|
|
:xref-MinimalForwarder-execute-struct-MinimalForwarder-ForwardRequest-bytes-: xref:metatx.adoc#MinimalForwarder-execute-struct-MinimalForwarder-ForwardRequest-bytes-
|
|
:MinimalForwarder-ForwardRequest: pass:normal[xref:metatx.adoc#MinimalForwarder-ForwardRequest[`MinimalForwarder.ForwardRequest`]]
|
|
:xref-MinimalForwarder-ForwardRequest: xref:metatx.adoc#MinimalForwarder-ForwardRequest
|
|
:Clones: pass:normal[xref:proxy.adoc#Clones[`Clones`]]
|
|
:xref-Clones: xref:proxy.adoc#Clones
|
|
:Clones-clone: pass:normal[xref:proxy.adoc#Clones-clone-address-[`Clones.clone`]]
|
|
:xref-Clones-clone-address-: xref:proxy.adoc#Clones-clone-address-
|
|
:Clones-cloneDeterministic: pass:normal[xref:proxy.adoc#Clones-cloneDeterministic-address-bytes32-[`Clones.cloneDeterministic`]]
|
|
:xref-Clones-cloneDeterministic-address-bytes32-: xref:proxy.adoc#Clones-cloneDeterministic-address-bytes32-
|
|
:Clones-predictDeterministicAddress: pass:normal[xref:proxy.adoc#Clones-predictDeterministicAddress-address-bytes32-address-[`Clones.predictDeterministicAddress`]]
|
|
:xref-Clones-predictDeterministicAddress-address-bytes32-address-: xref:proxy.adoc#Clones-predictDeterministicAddress-address-bytes32-address-
|
|
:Clones-predictDeterministicAddress: pass:normal[xref:proxy.adoc#Clones-predictDeterministicAddress-address-bytes32-[`Clones.predictDeterministicAddress`]]
|
|
:xref-Clones-predictDeterministicAddress-address-bytes32-: xref:proxy.adoc#Clones-predictDeterministicAddress-address-bytes32-
|
|
:ERC1967Proxy: pass:normal[xref:proxy.adoc#ERC1967Proxy[`ERC1967Proxy`]]
|
|
:xref-ERC1967Proxy: xref:proxy.adoc#ERC1967Proxy
|
|
:ERC1967Proxy-constructor: pass:normal[xref:proxy.adoc#ERC1967Proxy-constructor-address-bytes-[`ERC1967Proxy.constructor`]]
|
|
:xref-ERC1967Proxy-constructor-address-bytes-: xref:proxy.adoc#ERC1967Proxy-constructor-address-bytes-
|
|
:ERC1967Proxy-_implementation: pass:normal[xref:proxy.adoc#ERC1967Proxy-_implementation--[`ERC1967Proxy._implementation`]]
|
|
:xref-ERC1967Proxy-_implementation--: xref:proxy.adoc#ERC1967Proxy-_implementation--
|
|
:ERC1967Upgrade: pass:normal[xref:proxy.adoc#ERC1967Upgrade[`ERC1967Upgrade`]]
|
|
:xref-ERC1967Upgrade: xref:proxy.adoc#ERC1967Upgrade
|
|
:ERC1967Upgrade-_IMPLEMENTATION_SLOT: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_IMPLEMENTATION_SLOT-bytes32[`ERC1967Upgrade._IMPLEMENTATION_SLOT`]]
|
|
:xref-ERC1967Upgrade-_IMPLEMENTATION_SLOT-bytes32: xref:proxy.adoc#ERC1967Upgrade-_IMPLEMENTATION_SLOT-bytes32
|
|
:ERC1967Upgrade-_ADMIN_SLOT: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_ADMIN_SLOT-bytes32[`ERC1967Upgrade._ADMIN_SLOT`]]
|
|
:xref-ERC1967Upgrade-_ADMIN_SLOT-bytes32: xref:proxy.adoc#ERC1967Upgrade-_ADMIN_SLOT-bytes32
|
|
:ERC1967Upgrade-_BEACON_SLOT: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_BEACON_SLOT-bytes32[`ERC1967Upgrade._BEACON_SLOT`]]
|
|
:xref-ERC1967Upgrade-_BEACON_SLOT-bytes32: xref:proxy.adoc#ERC1967Upgrade-_BEACON_SLOT-bytes32
|
|
:ERC1967Upgrade-_getImplementation: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_getImplementation--[`ERC1967Upgrade._getImplementation`]]
|
|
:xref-ERC1967Upgrade-_getImplementation--: xref:proxy.adoc#ERC1967Upgrade-_getImplementation--
|
|
:ERC1967Upgrade-_upgradeTo: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_upgradeTo-address-[`ERC1967Upgrade._upgradeTo`]]
|
|
:xref-ERC1967Upgrade-_upgradeTo-address-: xref:proxy.adoc#ERC1967Upgrade-_upgradeTo-address-
|
|
:ERC1967Upgrade-_upgradeToAndCall: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-[`ERC1967Upgrade._upgradeToAndCall`]]
|
|
:xref-ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-: xref:proxy.adoc#ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-
|
|
:ERC1967Upgrade-_upgradeToAndCallUUPS: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-[`ERC1967Upgrade._upgradeToAndCallUUPS`]]
|
|
:xref-ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-: xref:proxy.adoc#ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-
|
|
:ERC1967Upgrade-_getAdmin: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_getAdmin--[`ERC1967Upgrade._getAdmin`]]
|
|
:xref-ERC1967Upgrade-_getAdmin--: xref:proxy.adoc#ERC1967Upgrade-_getAdmin--
|
|
:ERC1967Upgrade-_changeAdmin: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_changeAdmin-address-[`ERC1967Upgrade._changeAdmin`]]
|
|
:xref-ERC1967Upgrade-_changeAdmin-address-: xref:proxy.adoc#ERC1967Upgrade-_changeAdmin-address-
|
|
:ERC1967Upgrade-_getBeacon: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_getBeacon--[`ERC1967Upgrade._getBeacon`]]
|
|
:xref-ERC1967Upgrade-_getBeacon--: xref:proxy.adoc#ERC1967Upgrade-_getBeacon--
|
|
:ERC1967Upgrade-_upgradeBeaconToAndCall: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-[`ERC1967Upgrade._upgradeBeaconToAndCall`]]
|
|
:xref-ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-: xref:proxy.adoc#ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-
|
|
:ERC1967Upgrade-Upgraded: pass:normal[xref:proxy.adoc#ERC1967Upgrade-Upgraded-address-[`ERC1967Upgrade.Upgraded`]]
|
|
:xref-ERC1967Upgrade-Upgraded-address-: xref:proxy.adoc#ERC1967Upgrade-Upgraded-address-
|
|
:ERC1967Upgrade-AdminChanged: pass:normal[xref:proxy.adoc#ERC1967Upgrade-AdminChanged-address-address-[`ERC1967Upgrade.AdminChanged`]]
|
|
:xref-ERC1967Upgrade-AdminChanged-address-address-: xref:proxy.adoc#ERC1967Upgrade-AdminChanged-address-address-
|
|
:ERC1967Upgrade-BeaconUpgraded: pass:normal[xref:proxy.adoc#ERC1967Upgrade-BeaconUpgraded-address-[`ERC1967Upgrade.BeaconUpgraded`]]
|
|
:xref-ERC1967Upgrade-BeaconUpgraded-address-: xref:proxy.adoc#ERC1967Upgrade-BeaconUpgraded-address-
|
|
:Proxy: pass:normal[xref:proxy.adoc#Proxy[`Proxy`]]
|
|
:xref-Proxy: xref:proxy.adoc#Proxy
|
|
:Proxy-_delegate: pass:normal[xref:proxy.adoc#Proxy-_delegate-address-[`Proxy._delegate`]]
|
|
:xref-Proxy-_delegate-address-: xref:proxy.adoc#Proxy-_delegate-address-
|
|
:Proxy-_implementation: pass:normal[xref:proxy.adoc#Proxy-_implementation--[`Proxy._implementation`]]
|
|
:xref-Proxy-_implementation--: xref:proxy.adoc#Proxy-_implementation--
|
|
:Proxy-_fallback: pass:normal[xref:proxy.adoc#Proxy-_fallback--[`Proxy._fallback`]]
|
|
:xref-Proxy-_fallback--: xref:proxy.adoc#Proxy-_fallback--
|
|
:Proxy-fallback: pass:normal[xref:proxy.adoc#Proxy-fallback--[`Proxy.fallback`]]
|
|
:xref-Proxy-fallback--: xref:proxy.adoc#Proxy-fallback--
|
|
:Proxy-receive: pass:normal[xref:proxy.adoc#Proxy-receive--[`Proxy.receive`]]
|
|
:xref-Proxy-receive--: xref:proxy.adoc#Proxy-receive--
|
|
:Proxy-_beforeFallback: pass:normal[xref:proxy.adoc#Proxy-_beforeFallback--[`Proxy._beforeFallback`]]
|
|
:xref-Proxy-_beforeFallback--: xref:proxy.adoc#Proxy-_beforeFallback--
|
|
:BeaconProxy: pass:normal[xref:proxy.adoc#BeaconProxy[`BeaconProxy`]]
|
|
:xref-BeaconProxy: xref:proxy.adoc#BeaconProxy
|
|
:BeaconProxy-constructor: pass:normal[xref:proxy.adoc#BeaconProxy-constructor-address-bytes-[`BeaconProxy.constructor`]]
|
|
:xref-BeaconProxy-constructor-address-bytes-: xref:proxy.adoc#BeaconProxy-constructor-address-bytes-
|
|
:BeaconProxy-_beacon: pass:normal[xref:proxy.adoc#BeaconProxy-_beacon--[`BeaconProxy._beacon`]]
|
|
:xref-BeaconProxy-_beacon--: xref:proxy.adoc#BeaconProxy-_beacon--
|
|
:BeaconProxy-_implementation: pass:normal[xref:proxy.adoc#BeaconProxy-_implementation--[`BeaconProxy._implementation`]]
|
|
:xref-BeaconProxy-_implementation--: xref:proxy.adoc#BeaconProxy-_implementation--
|
|
:BeaconProxy-_setBeacon: pass:normal[xref:proxy.adoc#BeaconProxy-_setBeacon-address-bytes-[`BeaconProxy._setBeacon`]]
|
|
:xref-BeaconProxy-_setBeacon-address-bytes-: xref:proxy.adoc#BeaconProxy-_setBeacon-address-bytes-
|
|
:IBeacon: pass:normal[xref:proxy.adoc#IBeacon[`IBeacon`]]
|
|
:xref-IBeacon: xref:proxy.adoc#IBeacon
|
|
:IBeacon-implementation: pass:normal[xref:proxy.adoc#IBeacon-implementation--[`IBeacon.implementation`]]
|
|
:xref-IBeacon-implementation--: xref:proxy.adoc#IBeacon-implementation--
|
|
:UpgradeableBeacon: pass:normal[xref:proxy.adoc#UpgradeableBeacon[`UpgradeableBeacon`]]
|
|
:xref-UpgradeableBeacon: xref:proxy.adoc#UpgradeableBeacon
|
|
:UpgradeableBeacon-constructor: pass:normal[xref:proxy.adoc#UpgradeableBeacon-constructor-address-[`UpgradeableBeacon.constructor`]]
|
|
:xref-UpgradeableBeacon-constructor-address-: xref:proxy.adoc#UpgradeableBeacon-constructor-address-
|
|
:UpgradeableBeacon-implementation: pass:normal[xref:proxy.adoc#UpgradeableBeacon-implementation--[`UpgradeableBeacon.implementation`]]
|
|
:xref-UpgradeableBeacon-implementation--: xref:proxy.adoc#UpgradeableBeacon-implementation--
|
|
:UpgradeableBeacon-upgradeTo: pass:normal[xref:proxy.adoc#UpgradeableBeacon-upgradeTo-address-[`UpgradeableBeacon.upgradeTo`]]
|
|
:xref-UpgradeableBeacon-upgradeTo-address-: xref:proxy.adoc#UpgradeableBeacon-upgradeTo-address-
|
|
:UpgradeableBeacon-Upgraded: pass:normal[xref:proxy.adoc#UpgradeableBeacon-Upgraded-address-[`UpgradeableBeacon.Upgraded`]]
|
|
:xref-UpgradeableBeacon-Upgraded-address-: xref:proxy.adoc#UpgradeableBeacon-Upgraded-address-
|
|
:ProxyAdmin: pass:normal[xref:proxy.adoc#ProxyAdmin[`ProxyAdmin`]]
|
|
:xref-ProxyAdmin: xref:proxy.adoc#ProxyAdmin
|
|
:ProxyAdmin-getProxyImplementation: pass:normal[xref:proxy.adoc#ProxyAdmin-getProxyImplementation-contract-TransparentUpgradeableProxy-[`ProxyAdmin.getProxyImplementation`]]
|
|
:xref-ProxyAdmin-getProxyImplementation-contract-TransparentUpgradeableProxy-: xref:proxy.adoc#ProxyAdmin-getProxyImplementation-contract-TransparentUpgradeableProxy-
|
|
:ProxyAdmin-getProxyAdmin: pass:normal[xref:proxy.adoc#ProxyAdmin-getProxyAdmin-contract-TransparentUpgradeableProxy-[`ProxyAdmin.getProxyAdmin`]]
|
|
:xref-ProxyAdmin-getProxyAdmin-contract-TransparentUpgradeableProxy-: xref:proxy.adoc#ProxyAdmin-getProxyAdmin-contract-TransparentUpgradeableProxy-
|
|
:ProxyAdmin-changeProxyAdmin: pass:normal[xref:proxy.adoc#ProxyAdmin-changeProxyAdmin-contract-TransparentUpgradeableProxy-address-[`ProxyAdmin.changeProxyAdmin`]]
|
|
:xref-ProxyAdmin-changeProxyAdmin-contract-TransparentUpgradeableProxy-address-: xref:proxy.adoc#ProxyAdmin-changeProxyAdmin-contract-TransparentUpgradeableProxy-address-
|
|
:ProxyAdmin-upgrade: pass:normal[xref:proxy.adoc#ProxyAdmin-upgrade-contract-TransparentUpgradeableProxy-address-[`ProxyAdmin.upgrade`]]
|
|
:xref-ProxyAdmin-upgrade-contract-TransparentUpgradeableProxy-address-: xref:proxy.adoc#ProxyAdmin-upgrade-contract-TransparentUpgradeableProxy-address-
|
|
:ProxyAdmin-upgradeAndCall: pass:normal[xref:proxy.adoc#ProxyAdmin-upgradeAndCall-contract-TransparentUpgradeableProxy-address-bytes-[`ProxyAdmin.upgradeAndCall`]]
|
|
:xref-ProxyAdmin-upgradeAndCall-contract-TransparentUpgradeableProxy-address-bytes-: xref:proxy.adoc#ProxyAdmin-upgradeAndCall-contract-TransparentUpgradeableProxy-address-bytes-
|
|
:TransparentUpgradeableProxy: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy[`TransparentUpgradeableProxy`]]
|
|
:xref-TransparentUpgradeableProxy: xref:proxy.adoc#TransparentUpgradeableProxy
|
|
:TransparentUpgradeableProxy-ifAdmin: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-ifAdmin--[`TransparentUpgradeableProxy.ifAdmin`]]
|
|
:xref-TransparentUpgradeableProxy-ifAdmin--: xref:proxy.adoc#TransparentUpgradeableProxy-ifAdmin--
|
|
:TransparentUpgradeableProxy-constructor: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-constructor-address-address-bytes-[`TransparentUpgradeableProxy.constructor`]]
|
|
:xref-TransparentUpgradeableProxy-constructor-address-address-bytes-: xref:proxy.adoc#TransparentUpgradeableProxy-constructor-address-address-bytes-
|
|
:TransparentUpgradeableProxy-admin: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-admin--[`TransparentUpgradeableProxy.admin`]]
|
|
:xref-TransparentUpgradeableProxy-admin--: xref:proxy.adoc#TransparentUpgradeableProxy-admin--
|
|
:TransparentUpgradeableProxy-implementation: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-implementation--[`TransparentUpgradeableProxy.implementation`]]
|
|
:xref-TransparentUpgradeableProxy-implementation--: xref:proxy.adoc#TransparentUpgradeableProxy-implementation--
|
|
:TransparentUpgradeableProxy-changeAdmin: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-changeAdmin-address-[`TransparentUpgradeableProxy.changeAdmin`]]
|
|
:xref-TransparentUpgradeableProxy-changeAdmin-address-: xref:proxy.adoc#TransparentUpgradeableProxy-changeAdmin-address-
|
|
:TransparentUpgradeableProxy-upgradeTo: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-upgradeTo-address-[`TransparentUpgradeableProxy.upgradeTo`]]
|
|
:xref-TransparentUpgradeableProxy-upgradeTo-address-: xref:proxy.adoc#TransparentUpgradeableProxy-upgradeTo-address-
|
|
:TransparentUpgradeableProxy-upgradeToAndCall: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-upgradeToAndCall-address-bytes-[`TransparentUpgradeableProxy.upgradeToAndCall`]]
|
|
:xref-TransparentUpgradeableProxy-upgradeToAndCall-address-bytes-: xref:proxy.adoc#TransparentUpgradeableProxy-upgradeToAndCall-address-bytes-
|
|
:TransparentUpgradeableProxy-_admin: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-_admin--[`TransparentUpgradeableProxy._admin`]]
|
|
:xref-TransparentUpgradeableProxy-_admin--: xref:proxy.adoc#TransparentUpgradeableProxy-_admin--
|
|
:TransparentUpgradeableProxy-_beforeFallback: pass:normal[xref:proxy.adoc#TransparentUpgradeableProxy-_beforeFallback--[`TransparentUpgradeableProxy._beforeFallback`]]
|
|
:xref-TransparentUpgradeableProxy-_beforeFallback--: xref:proxy.adoc#TransparentUpgradeableProxy-_beforeFallback--
|
|
:Initializable: pass:normal[xref:proxy.adoc#Initializable[`Initializable`]]
|
|
:xref-Initializable: xref:proxy.adoc#Initializable
|
|
:Initializable-initializer: pass:normal[xref:proxy.adoc#Initializable-initializer--[`Initializable.initializer`]]
|
|
:xref-Initializable-initializer--: xref:proxy.adoc#Initializable-initializer--
|
|
:Initializable-reinitializer: pass:normal[xref:proxy.adoc#Initializable-reinitializer-uint8-[`Initializable.reinitializer`]]
|
|
:xref-Initializable-reinitializer-uint8-: xref:proxy.adoc#Initializable-reinitializer-uint8-
|
|
:Initializable-onlyInitializing: pass:normal[xref:proxy.adoc#Initializable-onlyInitializing--[`Initializable.onlyInitializing`]]
|
|
:xref-Initializable-onlyInitializing--: xref:proxy.adoc#Initializable-onlyInitializing--
|
|
:Initializable-_disableInitializers: pass:normal[xref:proxy.adoc#Initializable-_disableInitializers--[`Initializable._disableInitializers`]]
|
|
:xref-Initializable-_disableInitializers--: xref:proxy.adoc#Initializable-_disableInitializers--
|
|
:Initializable-Initialized: pass:normal[xref:proxy.adoc#Initializable-Initialized-uint8-[`Initializable.Initialized`]]
|
|
:xref-Initializable-Initialized-uint8-: xref:proxy.adoc#Initializable-Initialized-uint8-
|
|
:UUPSUpgradeable: pass:normal[xref:proxy.adoc#UUPSUpgradeable[`UUPSUpgradeable`]]
|
|
:xref-UUPSUpgradeable: xref:proxy.adoc#UUPSUpgradeable
|
|
:UUPSUpgradeable-onlyProxy: pass:normal[xref:proxy.adoc#UUPSUpgradeable-onlyProxy--[`UUPSUpgradeable.onlyProxy`]]
|
|
:xref-UUPSUpgradeable-onlyProxy--: xref:proxy.adoc#UUPSUpgradeable-onlyProxy--
|
|
:UUPSUpgradeable-notDelegated: pass:normal[xref:proxy.adoc#UUPSUpgradeable-notDelegated--[`UUPSUpgradeable.notDelegated`]]
|
|
:xref-UUPSUpgradeable-notDelegated--: xref:proxy.adoc#UUPSUpgradeable-notDelegated--
|
|
:UUPSUpgradeable-proxiableUUID: pass:normal[xref:proxy.adoc#UUPSUpgradeable-proxiableUUID--[`UUPSUpgradeable.proxiableUUID`]]
|
|
:xref-UUPSUpgradeable-proxiableUUID--: xref:proxy.adoc#UUPSUpgradeable-proxiableUUID--
|
|
:UUPSUpgradeable-upgradeTo: pass:normal[xref:proxy.adoc#UUPSUpgradeable-upgradeTo-address-[`UUPSUpgradeable.upgradeTo`]]
|
|
:xref-UUPSUpgradeable-upgradeTo-address-: xref:proxy.adoc#UUPSUpgradeable-upgradeTo-address-
|
|
:UUPSUpgradeable-upgradeToAndCall: pass:normal[xref:proxy.adoc#UUPSUpgradeable-upgradeToAndCall-address-bytes-[`UUPSUpgradeable.upgradeToAndCall`]]
|
|
:xref-UUPSUpgradeable-upgradeToAndCall-address-bytes-: xref:proxy.adoc#UUPSUpgradeable-upgradeToAndCall-address-bytes-
|
|
:UUPSUpgradeable-_authorizeUpgrade: pass:normal[xref:proxy.adoc#UUPSUpgradeable-_authorizeUpgrade-address-[`UUPSUpgradeable._authorizeUpgrade`]]
|
|
:xref-UUPSUpgradeable-_authorizeUpgrade-address-: xref:proxy.adoc#UUPSUpgradeable-_authorizeUpgrade-address-
|
|
:Pausable: pass:normal[xref:security.adoc#Pausable[`Pausable`]]
|
|
:xref-Pausable: xref:security.adoc#Pausable
|
|
:Pausable-whenNotPaused: pass:normal[xref:security.adoc#Pausable-whenNotPaused--[`Pausable.whenNotPaused`]]
|
|
:xref-Pausable-whenNotPaused--: xref:security.adoc#Pausable-whenNotPaused--
|
|
:Pausable-whenPaused: pass:normal[xref:security.adoc#Pausable-whenPaused--[`Pausable.whenPaused`]]
|
|
:xref-Pausable-whenPaused--: xref:security.adoc#Pausable-whenPaused--
|
|
:Pausable-constructor: pass:normal[xref:security.adoc#Pausable-constructor--[`Pausable.constructor`]]
|
|
:xref-Pausable-constructor--: xref:security.adoc#Pausable-constructor--
|
|
:Pausable-paused: pass:normal[xref:security.adoc#Pausable-paused--[`Pausable.paused`]]
|
|
:xref-Pausable-paused--: xref:security.adoc#Pausable-paused--
|
|
:Pausable-_requireNotPaused: pass:normal[xref:security.adoc#Pausable-_requireNotPaused--[`Pausable._requireNotPaused`]]
|
|
:xref-Pausable-_requireNotPaused--: xref:security.adoc#Pausable-_requireNotPaused--
|
|
:Pausable-_requirePaused: pass:normal[xref:security.adoc#Pausable-_requirePaused--[`Pausable._requirePaused`]]
|
|
:xref-Pausable-_requirePaused--: xref:security.adoc#Pausable-_requirePaused--
|
|
:Pausable-_pause: pass:normal[xref:security.adoc#Pausable-_pause--[`Pausable._pause`]]
|
|
:xref-Pausable-_pause--: xref:security.adoc#Pausable-_pause--
|
|
:Pausable-_unpause: pass:normal[xref:security.adoc#Pausable-_unpause--[`Pausable._unpause`]]
|
|
:xref-Pausable-_unpause--: xref:security.adoc#Pausable-_unpause--
|
|
:Pausable-Paused: pass:normal[xref:security.adoc#Pausable-Paused-address-[`Pausable.Paused`]]
|
|
:xref-Pausable-Paused-address-: xref:security.adoc#Pausable-Paused-address-
|
|
:Pausable-Unpaused: pass:normal[xref:security.adoc#Pausable-Unpaused-address-[`Pausable.Unpaused`]]
|
|
:xref-Pausable-Unpaused-address-: xref:security.adoc#Pausable-Unpaused-address-
|
|
:PullPayment: pass:normal[xref:security.adoc#PullPayment[`PullPayment`]]
|
|
:xref-PullPayment: xref:security.adoc#PullPayment
|
|
:PullPayment-constructor: pass:normal[xref:security.adoc#PullPayment-constructor--[`PullPayment.constructor`]]
|
|
:xref-PullPayment-constructor--: xref:security.adoc#PullPayment-constructor--
|
|
:PullPayment-withdrawPayments: pass:normal[xref:security.adoc#PullPayment-withdrawPayments-address-payable-[`PullPayment.withdrawPayments`]]
|
|
:xref-PullPayment-withdrawPayments-address-payable-: xref:security.adoc#PullPayment-withdrawPayments-address-payable-
|
|
:PullPayment-payments: pass:normal[xref:security.adoc#PullPayment-payments-address-[`PullPayment.payments`]]
|
|
:xref-PullPayment-payments-address-: xref:security.adoc#PullPayment-payments-address-
|
|
:PullPayment-_asyncTransfer: pass:normal[xref:security.adoc#PullPayment-_asyncTransfer-address-uint256-[`PullPayment._asyncTransfer`]]
|
|
:xref-PullPayment-_asyncTransfer-address-uint256-: xref:security.adoc#PullPayment-_asyncTransfer-address-uint256-
|
|
:ReentrancyGuard: pass:normal[xref:security.adoc#ReentrancyGuard[`ReentrancyGuard`]]
|
|
:xref-ReentrancyGuard: xref:security.adoc#ReentrancyGuard
|
|
:ReentrancyGuard-nonReentrant: pass:normal[xref:security.adoc#ReentrancyGuard-nonReentrant--[`ReentrancyGuard.nonReentrant`]]
|
|
:xref-ReentrancyGuard-nonReentrant--: xref:security.adoc#ReentrancyGuard-nonReentrant--
|
|
:ReentrancyGuard-constructor: pass:normal[xref:security.adoc#ReentrancyGuard-constructor--[`ReentrancyGuard.constructor`]]
|
|
:xref-ReentrancyGuard-constructor--: xref:security.adoc#ReentrancyGuard-constructor--
|
|
:Address: pass:normal[xref:utils.adoc#Address[`Address`]]
|
|
:xref-Address: xref:utils.adoc#Address
|
|
:Address-isContract: pass:normal[xref:utils.adoc#Address-isContract-address-[`Address.isContract`]]
|
|
:xref-Address-isContract-address-: xref:utils.adoc#Address-isContract-address-
|
|
:Address-sendValue: pass:normal[xref:utils.adoc#Address-sendValue-address-payable-uint256-[`Address.sendValue`]]
|
|
:xref-Address-sendValue-address-payable-uint256-: xref:utils.adoc#Address-sendValue-address-payable-uint256-
|
|
:Address-functionCall: pass:normal[xref:utils.adoc#Address-functionCall-address-bytes-[`Address.functionCall`]]
|
|
:xref-Address-functionCall-address-bytes-: xref:utils.adoc#Address-functionCall-address-bytes-
|
|
:Address-functionCall: pass:normal[xref:utils.adoc#Address-functionCall-address-bytes-string-[`Address.functionCall`]]
|
|
:xref-Address-functionCall-address-bytes-string-: xref:utils.adoc#Address-functionCall-address-bytes-string-
|
|
:Address-functionCallWithValue: pass:normal[xref:utils.adoc#Address-functionCallWithValue-address-bytes-uint256-[`Address.functionCallWithValue`]]
|
|
:xref-Address-functionCallWithValue-address-bytes-uint256-: xref:utils.adoc#Address-functionCallWithValue-address-bytes-uint256-
|
|
:Address-functionCallWithValue: pass:normal[xref:utils.adoc#Address-functionCallWithValue-address-bytes-uint256-string-[`Address.functionCallWithValue`]]
|
|
:xref-Address-functionCallWithValue-address-bytes-uint256-string-: xref:utils.adoc#Address-functionCallWithValue-address-bytes-uint256-string-
|
|
:Address-functionStaticCall: pass:normal[xref:utils.adoc#Address-functionStaticCall-address-bytes-[`Address.functionStaticCall`]]
|
|
:xref-Address-functionStaticCall-address-bytes-: xref:utils.adoc#Address-functionStaticCall-address-bytes-
|
|
:Address-functionStaticCall: pass:normal[xref:utils.adoc#Address-functionStaticCall-address-bytes-string-[`Address.functionStaticCall`]]
|
|
:xref-Address-functionStaticCall-address-bytes-string-: xref:utils.adoc#Address-functionStaticCall-address-bytes-string-
|
|
:Address-functionDelegateCall: pass:normal[xref:utils.adoc#Address-functionDelegateCall-address-bytes-[`Address.functionDelegateCall`]]
|
|
:xref-Address-functionDelegateCall-address-bytes-: xref:utils.adoc#Address-functionDelegateCall-address-bytes-
|
|
:Address-functionDelegateCall: pass:normal[xref:utils.adoc#Address-functionDelegateCall-address-bytes-string-[`Address.functionDelegateCall`]]
|
|
:xref-Address-functionDelegateCall-address-bytes-string-: xref:utils.adoc#Address-functionDelegateCall-address-bytes-string-
|
|
:Address-verifyCallResult: pass:normal[xref:utils.adoc#Address-verifyCallResult-bool-bytes-string-[`Address.verifyCallResult`]]
|
|
:xref-Address-verifyCallResult-bool-bytes-string-: xref:utils.adoc#Address-verifyCallResult-bool-bytes-string-
|
|
:Arrays: pass:normal[xref:utils.adoc#Arrays[`Arrays`]]
|
|
:xref-Arrays: xref:utils.adoc#Arrays
|
|
:Arrays-findUpperBound: pass:normal[xref:utils.adoc#Arrays-findUpperBound-uint256---uint256-[`Arrays.findUpperBound`]]
|
|
:xref-Arrays-findUpperBound-uint256---uint256-: xref:utils.adoc#Arrays-findUpperBound-uint256---uint256-
|
|
:Base64: pass:normal[xref:utils.adoc#Base64[`Base64`]]
|
|
:xref-Base64: xref:utils.adoc#Base64
|
|
:Base64-_TABLE: pass:normal[xref:utils.adoc#Base64-_TABLE-string[`Base64._TABLE`]]
|
|
:xref-Base64-_TABLE-string: xref:utils.adoc#Base64-_TABLE-string
|
|
:Base64-encode: pass:normal[xref:utils.adoc#Base64-encode-bytes-[`Base64.encode`]]
|
|
:xref-Base64-encode-bytes-: xref:utils.adoc#Base64-encode-bytes-
|
|
:Checkpoints: pass:normal[xref:utils.adoc#Checkpoints[`Checkpoints`]]
|
|
:xref-Checkpoints: xref:utils.adoc#Checkpoints
|
|
:Checkpoints-latest: pass:normal[xref:utils.adoc#Checkpoints-latest-struct-Checkpoints-History-[`Checkpoints.latest`]]
|
|
:xref-Checkpoints-latest-struct-Checkpoints-History-: xref:utils.adoc#Checkpoints-latest-struct-Checkpoints-History-
|
|
:Checkpoints-getAtBlock: pass:normal[xref:utils.adoc#Checkpoints-getAtBlock-struct-Checkpoints-History-uint256-[`Checkpoints.getAtBlock`]]
|
|
:xref-Checkpoints-getAtBlock-struct-Checkpoints-History-uint256-: xref:utils.adoc#Checkpoints-getAtBlock-struct-Checkpoints-History-uint256-
|
|
:Checkpoints-push: pass:normal[xref:utils.adoc#Checkpoints-push-struct-Checkpoints-History-uint256-[`Checkpoints.push`]]
|
|
:xref-Checkpoints-push-struct-Checkpoints-History-uint256-: xref:utils.adoc#Checkpoints-push-struct-Checkpoints-History-uint256-
|
|
:Checkpoints-push: pass:normal[xref:utils.adoc#Checkpoints-push-struct-Checkpoints-History-function--uint256-uint256--view-returns--uint256--uint256-[`Checkpoints.push`]]
|
|
:xref-Checkpoints-push-struct-Checkpoints-History-function--uint256-uint256--view-returns--uint256--uint256-: xref:utils.adoc#Checkpoints-push-struct-Checkpoints-History-function--uint256-uint256--view-returns--uint256--uint256-
|
|
:Checkpoints-Checkpoint: pass:normal[xref:utils.adoc#Checkpoints-Checkpoint[`Checkpoints.Checkpoint`]]
|
|
:xref-Checkpoints-Checkpoint: xref:utils.adoc#Checkpoints-Checkpoint
|
|
:Checkpoints-History: pass:normal[xref:utils.adoc#Checkpoints-History[`Checkpoints.History`]]
|
|
:xref-Checkpoints-History: xref:utils.adoc#Checkpoints-History
|
|
:Context: pass:normal[xref:utils.adoc#Context[`Context`]]
|
|
:xref-Context: xref:utils.adoc#Context
|
|
:Context-_msgSender: pass:normal[xref:utils.adoc#Context-_msgSender--[`Context._msgSender`]]
|
|
:xref-Context-_msgSender--: xref:utils.adoc#Context-_msgSender--
|
|
:Context-_msgData: pass:normal[xref:utils.adoc#Context-_msgData--[`Context._msgData`]]
|
|
:xref-Context-_msgData--: xref:utils.adoc#Context-_msgData--
|
|
:Counters: pass:normal[xref:utils.adoc#Counters[`Counters`]]
|
|
:xref-Counters: xref:utils.adoc#Counters
|
|
:Counters-current: pass:normal[xref:utils.adoc#Counters-current-struct-Counters-Counter-[`Counters.current`]]
|
|
:xref-Counters-current-struct-Counters-Counter-: xref:utils.adoc#Counters-current-struct-Counters-Counter-
|
|
:Counters-increment: pass:normal[xref:utils.adoc#Counters-increment-struct-Counters-Counter-[`Counters.increment`]]
|
|
:xref-Counters-increment-struct-Counters-Counter-: xref:utils.adoc#Counters-increment-struct-Counters-Counter-
|
|
:Counters-decrement: pass:normal[xref:utils.adoc#Counters-decrement-struct-Counters-Counter-[`Counters.decrement`]]
|
|
:xref-Counters-decrement-struct-Counters-Counter-: xref:utils.adoc#Counters-decrement-struct-Counters-Counter-
|
|
:Counters-reset: pass:normal[xref:utils.adoc#Counters-reset-struct-Counters-Counter-[`Counters.reset`]]
|
|
:xref-Counters-reset-struct-Counters-Counter-: xref:utils.adoc#Counters-reset-struct-Counters-Counter-
|
|
:Counters-Counter: pass:normal[xref:utils.adoc#Counters-Counter[`Counters.Counter`]]
|
|
:xref-Counters-Counter: xref:utils.adoc#Counters-Counter
|
|
:Create2: pass:normal[xref:utils.adoc#Create2[`Create2`]]
|
|
:xref-Create2: xref:utils.adoc#Create2
|
|
:Create2-deploy: pass:normal[xref:utils.adoc#Create2-deploy-uint256-bytes32-bytes-[`Create2.deploy`]]
|
|
:xref-Create2-deploy-uint256-bytes32-bytes-: xref:utils.adoc#Create2-deploy-uint256-bytes32-bytes-
|
|
:Create2-computeAddress: pass:normal[xref:utils.adoc#Create2-computeAddress-bytes32-bytes32-[`Create2.computeAddress`]]
|
|
:xref-Create2-computeAddress-bytes32-bytes32-: xref:utils.adoc#Create2-computeAddress-bytes32-bytes32-
|
|
:Create2-computeAddress: pass:normal[xref:utils.adoc#Create2-computeAddress-bytes32-bytes32-address-[`Create2.computeAddress`]]
|
|
:xref-Create2-computeAddress-bytes32-bytes32-address-: xref:utils.adoc#Create2-computeAddress-bytes32-bytes32-address-
|
|
:Multicall: pass:normal[xref:utils.adoc#Multicall[`Multicall`]]
|
|
:xref-Multicall: xref:utils.adoc#Multicall
|
|
:Multicall-multicall: pass:normal[xref:utils.adoc#Multicall-multicall-bytes---[`Multicall.multicall`]]
|
|
:xref-Multicall-multicall-bytes---: xref:utils.adoc#Multicall-multicall-bytes---
|
|
:StorageSlot: pass:normal[xref:utils.adoc#StorageSlot[`StorageSlot`]]
|
|
:xref-StorageSlot: xref:utils.adoc#StorageSlot
|
|
:StorageSlot-getAddressSlot: pass:normal[xref:utils.adoc#StorageSlot-getAddressSlot-bytes32-[`StorageSlot.getAddressSlot`]]
|
|
:xref-StorageSlot-getAddressSlot-bytes32-: xref:utils.adoc#StorageSlot-getAddressSlot-bytes32-
|
|
:StorageSlot-getBooleanSlot: pass:normal[xref:utils.adoc#StorageSlot-getBooleanSlot-bytes32-[`StorageSlot.getBooleanSlot`]]
|
|
:xref-StorageSlot-getBooleanSlot-bytes32-: xref:utils.adoc#StorageSlot-getBooleanSlot-bytes32-
|
|
:StorageSlot-getBytes32Slot: pass:normal[xref:utils.adoc#StorageSlot-getBytes32Slot-bytes32-[`StorageSlot.getBytes32Slot`]]
|
|
:xref-StorageSlot-getBytes32Slot-bytes32-: xref:utils.adoc#StorageSlot-getBytes32Slot-bytes32-
|
|
:StorageSlot-getUint256Slot: pass:normal[xref:utils.adoc#StorageSlot-getUint256Slot-bytes32-[`StorageSlot.getUint256Slot`]]
|
|
:xref-StorageSlot-getUint256Slot-bytes32-: xref:utils.adoc#StorageSlot-getUint256Slot-bytes32-
|
|
:StorageSlot-AddressSlot: pass:normal[xref:utils.adoc#StorageSlot-AddressSlot[`StorageSlot.AddressSlot`]]
|
|
:xref-StorageSlot-AddressSlot: xref:utils.adoc#StorageSlot-AddressSlot
|
|
:StorageSlot-BooleanSlot: pass:normal[xref:utils.adoc#StorageSlot-BooleanSlot[`StorageSlot.BooleanSlot`]]
|
|
:xref-StorageSlot-BooleanSlot: xref:utils.adoc#StorageSlot-BooleanSlot
|
|
:StorageSlot-Bytes32Slot: pass:normal[xref:utils.adoc#StorageSlot-Bytes32Slot[`StorageSlot.Bytes32Slot`]]
|
|
:xref-StorageSlot-Bytes32Slot: xref:utils.adoc#StorageSlot-Bytes32Slot
|
|
:StorageSlot-Uint256Slot: pass:normal[xref:utils.adoc#StorageSlot-Uint256Slot[`StorageSlot.Uint256Slot`]]
|
|
:xref-StorageSlot-Uint256Slot: xref:utils.adoc#StorageSlot-Uint256Slot
|
|
:Strings: pass:normal[xref:utils.adoc#Strings[`Strings`]]
|
|
:xref-Strings: xref:utils.adoc#Strings
|
|
:Strings-toString: pass:normal[xref:utils.adoc#Strings-toString-uint256-[`Strings.toString`]]
|
|
:xref-Strings-toString-uint256-: xref:utils.adoc#Strings-toString-uint256-
|
|
:Strings-toHexString: pass:normal[xref:utils.adoc#Strings-toHexString-uint256-[`Strings.toHexString`]]
|
|
:xref-Strings-toHexString-uint256-: xref:utils.adoc#Strings-toHexString-uint256-
|
|
:Strings-toHexString: pass:normal[xref:utils.adoc#Strings-toHexString-uint256-uint256-[`Strings.toHexString`]]
|
|
:xref-Strings-toHexString-uint256-uint256-: xref:utils.adoc#Strings-toHexString-uint256-uint256-
|
|
:Strings-toHexString: pass:normal[xref:utils.adoc#Strings-toHexString-address-[`Strings.toHexString`]]
|
|
:xref-Strings-toHexString-address-: xref:utils.adoc#Strings-toHexString-address-
|
|
:Timers: pass:normal[xref:utils.adoc#Timers[`Timers`]]
|
|
:xref-Timers: xref:utils.adoc#Timers
|
|
:Timers-getDeadline: pass:normal[xref:utils.adoc#Timers-getDeadline-struct-Timers-Timestamp-[`Timers.getDeadline`]]
|
|
:xref-Timers-getDeadline-struct-Timers-Timestamp-: xref:utils.adoc#Timers-getDeadline-struct-Timers-Timestamp-
|
|
:Timers-setDeadline: pass:normal[xref:utils.adoc#Timers-setDeadline-struct-Timers-Timestamp-uint64-[`Timers.setDeadline`]]
|
|
:xref-Timers-setDeadline-struct-Timers-Timestamp-uint64-: xref:utils.adoc#Timers-setDeadline-struct-Timers-Timestamp-uint64-
|
|
:Timers-reset: pass:normal[xref:utils.adoc#Timers-reset-struct-Timers-Timestamp-[`Timers.reset`]]
|
|
:xref-Timers-reset-struct-Timers-Timestamp-: xref:utils.adoc#Timers-reset-struct-Timers-Timestamp-
|
|
:Timers-isUnset: pass:normal[xref:utils.adoc#Timers-isUnset-struct-Timers-Timestamp-[`Timers.isUnset`]]
|
|
:xref-Timers-isUnset-struct-Timers-Timestamp-: xref:utils.adoc#Timers-isUnset-struct-Timers-Timestamp-
|
|
:Timers-isStarted: pass:normal[xref:utils.adoc#Timers-isStarted-struct-Timers-Timestamp-[`Timers.isStarted`]]
|
|
:xref-Timers-isStarted-struct-Timers-Timestamp-: xref:utils.adoc#Timers-isStarted-struct-Timers-Timestamp-
|
|
:Timers-isPending: pass:normal[xref:utils.adoc#Timers-isPending-struct-Timers-Timestamp-[`Timers.isPending`]]
|
|
:xref-Timers-isPending-struct-Timers-Timestamp-: xref:utils.adoc#Timers-isPending-struct-Timers-Timestamp-
|
|
:Timers-isExpired: pass:normal[xref:utils.adoc#Timers-isExpired-struct-Timers-Timestamp-[`Timers.isExpired`]]
|
|
:xref-Timers-isExpired-struct-Timers-Timestamp-: xref:utils.adoc#Timers-isExpired-struct-Timers-Timestamp-
|
|
:Timers-getDeadline: pass:normal[xref:utils.adoc#Timers-getDeadline-struct-Timers-BlockNumber-[`Timers.getDeadline`]]
|
|
:xref-Timers-getDeadline-struct-Timers-BlockNumber-: xref:utils.adoc#Timers-getDeadline-struct-Timers-BlockNumber-
|
|
:Timers-setDeadline: pass:normal[xref:utils.adoc#Timers-setDeadline-struct-Timers-BlockNumber-uint64-[`Timers.setDeadline`]]
|
|
:xref-Timers-setDeadline-struct-Timers-BlockNumber-uint64-: xref:utils.adoc#Timers-setDeadline-struct-Timers-BlockNumber-uint64-
|
|
:Timers-reset: pass:normal[xref:utils.adoc#Timers-reset-struct-Timers-BlockNumber-[`Timers.reset`]]
|
|
:xref-Timers-reset-struct-Timers-BlockNumber-: xref:utils.adoc#Timers-reset-struct-Timers-BlockNumber-
|
|
:Timers-isUnset: pass:normal[xref:utils.adoc#Timers-isUnset-struct-Timers-BlockNumber-[`Timers.isUnset`]]
|
|
:xref-Timers-isUnset-struct-Timers-BlockNumber-: xref:utils.adoc#Timers-isUnset-struct-Timers-BlockNumber-
|
|
:Timers-isStarted: pass:normal[xref:utils.adoc#Timers-isStarted-struct-Timers-BlockNumber-[`Timers.isStarted`]]
|
|
:xref-Timers-isStarted-struct-Timers-BlockNumber-: xref:utils.adoc#Timers-isStarted-struct-Timers-BlockNumber-
|
|
:Timers-isPending: pass:normal[xref:utils.adoc#Timers-isPending-struct-Timers-BlockNumber-[`Timers.isPending`]]
|
|
:xref-Timers-isPending-struct-Timers-BlockNumber-: xref:utils.adoc#Timers-isPending-struct-Timers-BlockNumber-
|
|
:Timers-isExpired: pass:normal[xref:utils.adoc#Timers-isExpired-struct-Timers-BlockNumber-[`Timers.isExpired`]]
|
|
:xref-Timers-isExpired-struct-Timers-BlockNumber-: xref:utils.adoc#Timers-isExpired-struct-Timers-BlockNumber-
|
|
:Timers-Timestamp: pass:normal[xref:utils.adoc#Timers-Timestamp[`Timers.Timestamp`]]
|
|
:xref-Timers-Timestamp: xref:utils.adoc#Timers-Timestamp
|
|
:Timers-BlockNumber: pass:normal[xref:utils.adoc#Timers-BlockNumber[`Timers.BlockNumber`]]
|
|
:xref-Timers-BlockNumber: xref:utils.adoc#Timers-BlockNumber
|
|
:ECDSA: pass:normal[xref:utils.adoc#ECDSA[`ECDSA`]]
|
|
:xref-ECDSA: xref:utils.adoc#ECDSA
|
|
:ECDSA-tryRecover: pass:normal[xref:utils.adoc#ECDSA-tryRecover-bytes32-bytes-[`ECDSA.tryRecover`]]
|
|
:xref-ECDSA-tryRecover-bytes32-bytes-: xref:utils.adoc#ECDSA-tryRecover-bytes32-bytes-
|
|
:ECDSA-recover: pass:normal[xref:utils.adoc#ECDSA-recover-bytes32-bytes-[`ECDSA.recover`]]
|
|
:xref-ECDSA-recover-bytes32-bytes-: xref:utils.adoc#ECDSA-recover-bytes32-bytes-
|
|
:ECDSA-tryRecover: pass:normal[xref:utils.adoc#ECDSA-tryRecover-bytes32-bytes32-bytes32-[`ECDSA.tryRecover`]]
|
|
:xref-ECDSA-tryRecover-bytes32-bytes32-bytes32-: xref:utils.adoc#ECDSA-tryRecover-bytes32-bytes32-bytes32-
|
|
:ECDSA-recover: pass:normal[xref:utils.adoc#ECDSA-recover-bytes32-bytes32-bytes32-[`ECDSA.recover`]]
|
|
:xref-ECDSA-recover-bytes32-bytes32-bytes32-: xref:utils.adoc#ECDSA-recover-bytes32-bytes32-bytes32-
|
|
:ECDSA-tryRecover: pass:normal[xref:utils.adoc#ECDSA-tryRecover-bytes32-uint8-bytes32-bytes32-[`ECDSA.tryRecover`]]
|
|
:xref-ECDSA-tryRecover-bytes32-uint8-bytes32-bytes32-: xref:utils.adoc#ECDSA-tryRecover-bytes32-uint8-bytes32-bytes32-
|
|
:ECDSA-recover: pass:normal[xref:utils.adoc#ECDSA-recover-bytes32-uint8-bytes32-bytes32-[`ECDSA.recover`]]
|
|
:xref-ECDSA-recover-bytes32-uint8-bytes32-bytes32-: xref:utils.adoc#ECDSA-recover-bytes32-uint8-bytes32-bytes32-
|
|
:ECDSA-toEthSignedMessageHash: pass:normal[xref:utils.adoc#ECDSA-toEthSignedMessageHash-bytes32-[`ECDSA.toEthSignedMessageHash`]]
|
|
:xref-ECDSA-toEthSignedMessageHash-bytes32-: xref:utils.adoc#ECDSA-toEthSignedMessageHash-bytes32-
|
|
:ECDSA-toEthSignedMessageHash: pass:normal[xref:utils.adoc#ECDSA-toEthSignedMessageHash-bytes-[`ECDSA.toEthSignedMessageHash`]]
|
|
:xref-ECDSA-toEthSignedMessageHash-bytes-: xref:utils.adoc#ECDSA-toEthSignedMessageHash-bytes-
|
|
:ECDSA-toTypedDataHash: pass:normal[xref:utils.adoc#ECDSA-toTypedDataHash-bytes32-bytes32-[`ECDSA.toTypedDataHash`]]
|
|
:xref-ECDSA-toTypedDataHash-bytes32-bytes32-: xref:utils.adoc#ECDSA-toTypedDataHash-bytes32-bytes32-
|
|
:ECDSA-RecoverError: pass:normal[xref:utils.adoc#ECDSA-RecoverError[`ECDSA.RecoverError`]]
|
|
:xref-ECDSA-RecoverError: xref:utils.adoc#ECDSA-RecoverError
|
|
:MerkleProof: pass:normal[xref:utils.adoc#MerkleProof[`MerkleProof`]]
|
|
:xref-MerkleProof: xref:utils.adoc#MerkleProof
|
|
:MerkleProof-verify: pass:normal[xref:utils.adoc#MerkleProof-verify-bytes32---bytes32-bytes32-[`MerkleProof.verify`]]
|
|
:xref-MerkleProof-verify-bytes32---bytes32-bytes32-: xref:utils.adoc#MerkleProof-verify-bytes32---bytes32-bytes32-
|
|
:MerkleProof-verifyCalldata: pass:normal[xref:utils.adoc#MerkleProof-verifyCalldata-bytes32---bytes32-bytes32-[`MerkleProof.verifyCalldata`]]
|
|
:xref-MerkleProof-verifyCalldata-bytes32---bytes32-bytes32-: xref:utils.adoc#MerkleProof-verifyCalldata-bytes32---bytes32-bytes32-
|
|
:MerkleProof-processProof: pass:normal[xref:utils.adoc#MerkleProof-processProof-bytes32---bytes32-[`MerkleProof.processProof`]]
|
|
:xref-MerkleProof-processProof-bytes32---bytes32-: xref:utils.adoc#MerkleProof-processProof-bytes32---bytes32-
|
|
:MerkleProof-processProofCalldata: pass:normal[xref:utils.adoc#MerkleProof-processProofCalldata-bytes32---bytes32-[`MerkleProof.processProofCalldata`]]
|
|
:xref-MerkleProof-processProofCalldata-bytes32---bytes32-: xref:utils.adoc#MerkleProof-processProofCalldata-bytes32---bytes32-
|
|
:MerkleProof-multiProofVerify: pass:normal[xref:utils.adoc#MerkleProof-multiProofVerify-bytes32---bool---bytes32-bytes32---[`MerkleProof.multiProofVerify`]]
|
|
:xref-MerkleProof-multiProofVerify-bytes32---bool---bytes32-bytes32---: xref:utils.adoc#MerkleProof-multiProofVerify-bytes32---bool---bytes32-bytes32---
|
|
:MerkleProof-multiProofVerifyCalldata: pass:normal[xref:utils.adoc#MerkleProof-multiProofVerifyCalldata-bytes32---bool---bytes32-bytes32---[`MerkleProof.multiProofVerifyCalldata`]]
|
|
:xref-MerkleProof-multiProofVerifyCalldata-bytes32---bool---bytes32-bytes32---: xref:utils.adoc#MerkleProof-multiProofVerifyCalldata-bytes32---bool---bytes32-bytes32---
|
|
:MerkleProof-processMultiProof: pass:normal[xref:utils.adoc#MerkleProof-processMultiProof-bytes32---bool---bytes32---[`MerkleProof.processMultiProof`]]
|
|
:xref-MerkleProof-processMultiProof-bytes32---bool---bytes32---: xref:utils.adoc#MerkleProof-processMultiProof-bytes32---bool---bytes32---
|
|
:MerkleProof-processMultiProofCalldata: pass:normal[xref:utils.adoc#MerkleProof-processMultiProofCalldata-bytes32---bool---bytes32---[`MerkleProof.processMultiProofCalldata`]]
|
|
:xref-MerkleProof-processMultiProofCalldata-bytes32---bool---bytes32---: xref:utils.adoc#MerkleProof-processMultiProofCalldata-bytes32---bool---bytes32---
|
|
:SignatureChecker: pass:normal[xref:utils.adoc#SignatureChecker[`SignatureChecker`]]
|
|
:xref-SignatureChecker: xref:utils.adoc#SignatureChecker
|
|
:SignatureChecker-isValidSignatureNow: pass:normal[xref:utils.adoc#SignatureChecker-isValidSignatureNow-address-bytes32-bytes-[`SignatureChecker.isValidSignatureNow`]]
|
|
:xref-SignatureChecker-isValidSignatureNow-address-bytes32-bytes-: xref:utils.adoc#SignatureChecker-isValidSignatureNow-address-bytes32-bytes-
|
|
:EIP712: pass:normal[xref:utils.adoc#EIP712[`EIP712`]]
|
|
:xref-EIP712: xref:utils.adoc#EIP712
|
|
:EIP712-constructor: pass:normal[xref:utils.adoc#EIP712-constructor-string-string-[`EIP712.constructor`]]
|
|
:xref-EIP712-constructor-string-string-: xref:utils.adoc#EIP712-constructor-string-string-
|
|
:EIP712-_domainSeparatorV4: pass:normal[xref:utils.adoc#EIP712-_domainSeparatorV4--[`EIP712._domainSeparatorV4`]]
|
|
:xref-EIP712-_domainSeparatorV4--: xref:utils.adoc#EIP712-_domainSeparatorV4--
|
|
:EIP712-_hashTypedDataV4: pass:normal[xref:utils.adoc#EIP712-_hashTypedDataV4-bytes32-[`EIP712._hashTypedDataV4`]]
|
|
:xref-EIP712-_hashTypedDataV4-bytes32-: xref:utils.adoc#EIP712-_hashTypedDataV4-bytes32-
|
|
:ConditionalEscrow: pass:normal[xref:utils.adoc#ConditionalEscrow[`ConditionalEscrow`]]
|
|
:xref-ConditionalEscrow: xref:utils.adoc#ConditionalEscrow
|
|
:ConditionalEscrow-withdrawalAllowed: pass:normal[xref:utils.adoc#ConditionalEscrow-withdrawalAllowed-address-[`ConditionalEscrow.withdrawalAllowed`]]
|
|
:xref-ConditionalEscrow-withdrawalAllowed-address-: xref:utils.adoc#ConditionalEscrow-withdrawalAllowed-address-
|
|
:ConditionalEscrow-withdraw: pass:normal[xref:utils.adoc#ConditionalEscrow-withdraw-address-payable-[`ConditionalEscrow.withdraw`]]
|
|
:xref-ConditionalEscrow-withdraw-address-payable-: xref:utils.adoc#ConditionalEscrow-withdraw-address-payable-
|
|
:Escrow: pass:normal[xref:utils.adoc#Escrow[`Escrow`]]
|
|
:xref-Escrow: xref:utils.adoc#Escrow
|
|
:Escrow-depositsOf: pass:normal[xref:utils.adoc#Escrow-depositsOf-address-[`Escrow.depositsOf`]]
|
|
:xref-Escrow-depositsOf-address-: xref:utils.adoc#Escrow-depositsOf-address-
|
|
:Escrow-deposit: pass:normal[xref:utils.adoc#Escrow-deposit-address-[`Escrow.deposit`]]
|
|
:xref-Escrow-deposit-address-: xref:utils.adoc#Escrow-deposit-address-
|
|
:Escrow-withdraw: pass:normal[xref:utils.adoc#Escrow-withdraw-address-payable-[`Escrow.withdraw`]]
|
|
:xref-Escrow-withdraw-address-payable-: xref:utils.adoc#Escrow-withdraw-address-payable-
|
|
:Escrow-Deposited: pass:normal[xref:utils.adoc#Escrow-Deposited-address-uint256-[`Escrow.Deposited`]]
|
|
:xref-Escrow-Deposited-address-uint256-: xref:utils.adoc#Escrow-Deposited-address-uint256-
|
|
:Escrow-Withdrawn: pass:normal[xref:utils.adoc#Escrow-Withdrawn-address-uint256-[`Escrow.Withdrawn`]]
|
|
:xref-Escrow-Withdrawn-address-uint256-: xref:utils.adoc#Escrow-Withdrawn-address-uint256-
|
|
:RefundEscrow: pass:normal[xref:utils.adoc#RefundEscrow[`RefundEscrow`]]
|
|
:xref-RefundEscrow: xref:utils.adoc#RefundEscrow
|
|
:RefundEscrow-constructor: pass:normal[xref:utils.adoc#RefundEscrow-constructor-address-payable-[`RefundEscrow.constructor`]]
|
|
:xref-RefundEscrow-constructor-address-payable-: xref:utils.adoc#RefundEscrow-constructor-address-payable-
|
|
:RefundEscrow-state: pass:normal[xref:utils.adoc#RefundEscrow-state--[`RefundEscrow.state`]]
|
|
:xref-RefundEscrow-state--: xref:utils.adoc#RefundEscrow-state--
|
|
:RefundEscrow-beneficiary: pass:normal[xref:utils.adoc#RefundEscrow-beneficiary--[`RefundEscrow.beneficiary`]]
|
|
:xref-RefundEscrow-beneficiary--: xref:utils.adoc#RefundEscrow-beneficiary--
|
|
:RefundEscrow-deposit: pass:normal[xref:utils.adoc#RefundEscrow-deposit-address-[`RefundEscrow.deposit`]]
|
|
:xref-RefundEscrow-deposit-address-: xref:utils.adoc#RefundEscrow-deposit-address-
|
|
:RefundEscrow-close: pass:normal[xref:utils.adoc#RefundEscrow-close--[`RefundEscrow.close`]]
|
|
:xref-RefundEscrow-close--: xref:utils.adoc#RefundEscrow-close--
|
|
:RefundEscrow-enableRefunds: pass:normal[xref:utils.adoc#RefundEscrow-enableRefunds--[`RefundEscrow.enableRefunds`]]
|
|
:xref-RefundEscrow-enableRefunds--: xref:utils.adoc#RefundEscrow-enableRefunds--
|
|
:RefundEscrow-beneficiaryWithdraw: pass:normal[xref:utils.adoc#RefundEscrow-beneficiaryWithdraw--[`RefundEscrow.beneficiaryWithdraw`]]
|
|
:xref-RefundEscrow-beneficiaryWithdraw--: xref:utils.adoc#RefundEscrow-beneficiaryWithdraw--
|
|
:RefundEscrow-withdrawalAllowed: pass:normal[xref:utils.adoc#RefundEscrow-withdrawalAllowed-address-[`RefundEscrow.withdrawalAllowed`]]
|
|
:xref-RefundEscrow-withdrawalAllowed-address-: xref:utils.adoc#RefundEscrow-withdrawalAllowed-address-
|
|
:RefundEscrow-RefundsClosed: pass:normal[xref:utils.adoc#RefundEscrow-RefundsClosed--[`RefundEscrow.RefundsClosed`]]
|
|
:xref-RefundEscrow-RefundsClosed--: xref:utils.adoc#RefundEscrow-RefundsClosed--
|
|
:RefundEscrow-RefundsEnabled: pass:normal[xref:utils.adoc#RefundEscrow-RefundsEnabled--[`RefundEscrow.RefundsEnabled`]]
|
|
:xref-RefundEscrow-RefundsEnabled--: xref:utils.adoc#RefundEscrow-RefundsEnabled--
|
|
:RefundEscrow-State: pass:normal[xref:utils.adoc#RefundEscrow-State[`RefundEscrow.State`]]
|
|
:xref-RefundEscrow-State: xref:utils.adoc#RefundEscrow-State
|
|
:ERC165: pass:normal[xref:utils.adoc#ERC165[`ERC165`]]
|
|
:xref-ERC165: xref:utils.adoc#ERC165
|
|
:ERC165-supportsInterface: pass:normal[xref:utils.adoc#ERC165-supportsInterface-bytes4-[`ERC165.supportsInterface`]]
|
|
:xref-ERC165-supportsInterface-bytes4-: xref:utils.adoc#ERC165-supportsInterface-bytes4-
|
|
:ERC165Checker: pass:normal[xref:utils.adoc#ERC165Checker[`ERC165Checker`]]
|
|
:xref-ERC165Checker: xref:utils.adoc#ERC165Checker
|
|
:ERC165Checker-supportsERC165: pass:normal[xref:utils.adoc#ERC165Checker-supportsERC165-address-[`ERC165Checker.supportsERC165`]]
|
|
:xref-ERC165Checker-supportsERC165-address-: xref:utils.adoc#ERC165Checker-supportsERC165-address-
|
|
:ERC165Checker-supportsInterface: pass:normal[xref:utils.adoc#ERC165Checker-supportsInterface-address-bytes4-[`ERC165Checker.supportsInterface`]]
|
|
:xref-ERC165Checker-supportsInterface-address-bytes4-: xref:utils.adoc#ERC165Checker-supportsInterface-address-bytes4-
|
|
:ERC165Checker-getSupportedInterfaces: pass:normal[xref:utils.adoc#ERC165Checker-getSupportedInterfaces-address-bytes4---[`ERC165Checker.getSupportedInterfaces`]]
|
|
:xref-ERC165Checker-getSupportedInterfaces-address-bytes4---: xref:utils.adoc#ERC165Checker-getSupportedInterfaces-address-bytes4---
|
|
:ERC165Checker-supportsAllInterfaces: pass:normal[xref:utils.adoc#ERC165Checker-supportsAllInterfaces-address-bytes4---[`ERC165Checker.supportsAllInterfaces`]]
|
|
:xref-ERC165Checker-supportsAllInterfaces-address-bytes4---: xref:utils.adoc#ERC165Checker-supportsAllInterfaces-address-bytes4---
|
|
:ERC165Storage: pass:normal[xref:utils.adoc#ERC165Storage[`ERC165Storage`]]
|
|
:xref-ERC165Storage: xref:utils.adoc#ERC165Storage
|
|
:ERC165Storage-supportsInterface: pass:normal[xref:utils.adoc#ERC165Storage-supportsInterface-bytes4-[`ERC165Storage.supportsInterface`]]
|
|
:xref-ERC165Storage-supportsInterface-bytes4-: xref:utils.adoc#ERC165Storage-supportsInterface-bytes4-
|
|
:ERC165Storage-_registerInterface: pass:normal[xref:utils.adoc#ERC165Storage-_registerInterface-bytes4-[`ERC165Storage._registerInterface`]]
|
|
:xref-ERC165Storage-_registerInterface-bytes4-: xref:utils.adoc#ERC165Storage-_registerInterface-bytes4-
|
|
:ERC1820Implementer: pass:normal[xref:utils.adoc#ERC1820Implementer[`ERC1820Implementer`]]
|
|
:xref-ERC1820Implementer: xref:utils.adoc#ERC1820Implementer
|
|
:ERC1820Implementer-canImplementInterfaceForAddress: pass:normal[xref:utils.adoc#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`ERC1820Implementer.canImplementInterfaceForAddress`]]
|
|
:xref-ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-: xref:utils.adoc#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-
|
|
:ERC1820Implementer-_registerInterfaceForAddress: pass:normal[xref:utils.adoc#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-[`ERC1820Implementer._registerInterfaceForAddress`]]
|
|
:xref-ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-: xref:utils.adoc#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-
|
|
:IERC165: pass:normal[xref:utils.adoc#IERC165[`IERC165`]]
|
|
:xref-IERC165: xref:utils.adoc#IERC165
|
|
:IERC165-supportsInterface: pass:normal[xref:utils.adoc#IERC165-supportsInterface-bytes4-[`IERC165.supportsInterface`]]
|
|
:xref-IERC165-supportsInterface-bytes4-: xref:utils.adoc#IERC165-supportsInterface-bytes4-
|
|
:IERC1820Implementer: pass:normal[xref:utils.adoc#IERC1820Implementer[`IERC1820Implementer`]]
|
|
:xref-IERC1820Implementer: xref:utils.adoc#IERC1820Implementer
|
|
:IERC1820Implementer-canImplementInterfaceForAddress: pass:normal[xref:utils.adoc#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`IERC1820Implementer.canImplementInterfaceForAddress`]]
|
|
:xref-IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-: xref:utils.adoc#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-
|
|
:IERC1820Registry: pass:normal[xref:utils.adoc#IERC1820Registry[`IERC1820Registry`]]
|
|
:xref-IERC1820Registry: xref:utils.adoc#IERC1820Registry
|
|
:IERC1820Registry-setManager: pass:normal[xref:utils.adoc#IERC1820Registry-setManager-address-address-[`IERC1820Registry.setManager`]]
|
|
:xref-IERC1820Registry-setManager-address-address-: xref:utils.adoc#IERC1820Registry-setManager-address-address-
|
|
:IERC1820Registry-getManager: pass:normal[xref:utils.adoc#IERC1820Registry-getManager-address-[`IERC1820Registry.getManager`]]
|
|
:xref-IERC1820Registry-getManager-address-: xref:utils.adoc#IERC1820Registry-getManager-address-
|
|
:IERC1820Registry-setInterfaceImplementer: pass:normal[xref:utils.adoc#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-[`IERC1820Registry.setInterfaceImplementer`]]
|
|
:xref-IERC1820Registry-setInterfaceImplementer-address-bytes32-address-: xref:utils.adoc#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-
|
|
:IERC1820Registry-getInterfaceImplementer: pass:normal[xref:utils.adoc#IERC1820Registry-getInterfaceImplementer-address-bytes32-[`IERC1820Registry.getInterfaceImplementer`]]
|
|
:xref-IERC1820Registry-getInterfaceImplementer-address-bytes32-: xref:utils.adoc#IERC1820Registry-getInterfaceImplementer-address-bytes32-
|
|
:IERC1820Registry-interfaceHash: pass:normal[xref:utils.adoc#IERC1820Registry-interfaceHash-string-[`IERC1820Registry.interfaceHash`]]
|
|
:xref-IERC1820Registry-interfaceHash-string-: xref:utils.adoc#IERC1820Registry-interfaceHash-string-
|
|
:IERC1820Registry-updateERC165Cache: pass:normal[xref:utils.adoc#IERC1820Registry-updateERC165Cache-address-bytes4-[`IERC1820Registry.updateERC165Cache`]]
|
|
:xref-IERC1820Registry-updateERC165Cache-address-bytes4-: xref:utils.adoc#IERC1820Registry-updateERC165Cache-address-bytes4-
|
|
:IERC1820Registry-implementsERC165Interface: pass:normal[xref:utils.adoc#IERC1820Registry-implementsERC165Interface-address-bytes4-[`IERC1820Registry.implementsERC165Interface`]]
|
|
:xref-IERC1820Registry-implementsERC165Interface-address-bytes4-: xref:utils.adoc#IERC1820Registry-implementsERC165Interface-address-bytes4-
|
|
:IERC1820Registry-implementsERC165InterfaceNoCache: pass:normal[xref:utils.adoc#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-[`IERC1820Registry.implementsERC165InterfaceNoCache`]]
|
|
:xref-IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-: xref:utils.adoc#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-
|
|
:IERC1820Registry-InterfaceImplementerSet: pass:normal[xref:utils.adoc#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-[`IERC1820Registry.InterfaceImplementerSet`]]
|
|
:xref-IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-: xref:utils.adoc#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-
|
|
:IERC1820Registry-ManagerChanged: pass:normal[xref:utils.adoc#IERC1820Registry-ManagerChanged-address-address-[`IERC1820Registry.ManagerChanged`]]
|
|
:xref-IERC1820Registry-ManagerChanged-address-address-: xref:utils.adoc#IERC1820Registry-ManagerChanged-address-address-
|
|
:Math: pass:normal[xref:utils.adoc#Math[`Math`]]
|
|
:xref-Math: xref:utils.adoc#Math
|
|
:Math-max: pass:normal[xref:utils.adoc#Math-max-uint256-uint256-[`Math.max`]]
|
|
:xref-Math-max-uint256-uint256-: xref:utils.adoc#Math-max-uint256-uint256-
|
|
:Math-min: pass:normal[xref:utils.adoc#Math-min-uint256-uint256-[`Math.min`]]
|
|
:xref-Math-min-uint256-uint256-: xref:utils.adoc#Math-min-uint256-uint256-
|
|
:Math-average: pass:normal[xref:utils.adoc#Math-average-uint256-uint256-[`Math.average`]]
|
|
:xref-Math-average-uint256-uint256-: xref:utils.adoc#Math-average-uint256-uint256-
|
|
:Math-ceilDiv: pass:normal[xref:utils.adoc#Math-ceilDiv-uint256-uint256-[`Math.ceilDiv`]]
|
|
:xref-Math-ceilDiv-uint256-uint256-: xref:utils.adoc#Math-ceilDiv-uint256-uint256-
|
|
:Math-mulDiv: pass:normal[xref:utils.adoc#Math-mulDiv-uint256-uint256-uint256-[`Math.mulDiv`]]
|
|
:xref-Math-mulDiv-uint256-uint256-uint256-: xref:utils.adoc#Math-mulDiv-uint256-uint256-uint256-
|
|
:Math-mulDiv: pass:normal[xref:utils.adoc#Math-mulDiv-uint256-uint256-uint256-enum-Math-Rounding-[`Math.mulDiv`]]
|
|
:xref-Math-mulDiv-uint256-uint256-uint256-enum-Math-Rounding-: xref:utils.adoc#Math-mulDiv-uint256-uint256-uint256-enum-Math-Rounding-
|
|
:Math-sqrt: pass:normal[xref:utils.adoc#Math-sqrt-uint256-[`Math.sqrt`]]
|
|
:xref-Math-sqrt-uint256-: xref:utils.adoc#Math-sqrt-uint256-
|
|
:Math-sqrt: pass:normal[xref:utils.adoc#Math-sqrt-uint256-enum-Math-Rounding-[`Math.sqrt`]]
|
|
:xref-Math-sqrt-uint256-enum-Math-Rounding-: xref:utils.adoc#Math-sqrt-uint256-enum-Math-Rounding-
|
|
:Math-Rounding: pass:normal[xref:utils.adoc#Math-Rounding[`Math.Rounding`]]
|
|
:xref-Math-Rounding: xref:utils.adoc#Math-Rounding
|
|
:SafeCast: pass:normal[xref:utils.adoc#SafeCast[`SafeCast`]]
|
|
:xref-SafeCast: xref:utils.adoc#SafeCast
|
|
:SafeCast-toUint248: pass:normal[xref:utils.adoc#SafeCast-toUint248-uint256-[`SafeCast.toUint248`]]
|
|
:xref-SafeCast-toUint248-uint256-: xref:utils.adoc#SafeCast-toUint248-uint256-
|
|
:SafeCast-toUint240: pass:normal[xref:utils.adoc#SafeCast-toUint240-uint256-[`SafeCast.toUint240`]]
|
|
:xref-SafeCast-toUint240-uint256-: xref:utils.adoc#SafeCast-toUint240-uint256-
|
|
:SafeCast-toUint232: pass:normal[xref:utils.adoc#SafeCast-toUint232-uint256-[`SafeCast.toUint232`]]
|
|
:xref-SafeCast-toUint232-uint256-: xref:utils.adoc#SafeCast-toUint232-uint256-
|
|
:SafeCast-toUint224: pass:normal[xref:utils.adoc#SafeCast-toUint224-uint256-[`SafeCast.toUint224`]]
|
|
:xref-SafeCast-toUint224-uint256-: xref:utils.adoc#SafeCast-toUint224-uint256-
|
|
:SafeCast-toUint216: pass:normal[xref:utils.adoc#SafeCast-toUint216-uint256-[`SafeCast.toUint216`]]
|
|
:xref-SafeCast-toUint216-uint256-: xref:utils.adoc#SafeCast-toUint216-uint256-
|
|
:SafeCast-toUint208: pass:normal[xref:utils.adoc#SafeCast-toUint208-uint256-[`SafeCast.toUint208`]]
|
|
:xref-SafeCast-toUint208-uint256-: xref:utils.adoc#SafeCast-toUint208-uint256-
|
|
:SafeCast-toUint200: pass:normal[xref:utils.adoc#SafeCast-toUint200-uint256-[`SafeCast.toUint200`]]
|
|
:xref-SafeCast-toUint200-uint256-: xref:utils.adoc#SafeCast-toUint200-uint256-
|
|
:SafeCast-toUint192: pass:normal[xref:utils.adoc#SafeCast-toUint192-uint256-[`SafeCast.toUint192`]]
|
|
:xref-SafeCast-toUint192-uint256-: xref:utils.adoc#SafeCast-toUint192-uint256-
|
|
:SafeCast-toUint184: pass:normal[xref:utils.adoc#SafeCast-toUint184-uint256-[`SafeCast.toUint184`]]
|
|
:xref-SafeCast-toUint184-uint256-: xref:utils.adoc#SafeCast-toUint184-uint256-
|
|
:SafeCast-toUint176: pass:normal[xref:utils.adoc#SafeCast-toUint176-uint256-[`SafeCast.toUint176`]]
|
|
:xref-SafeCast-toUint176-uint256-: xref:utils.adoc#SafeCast-toUint176-uint256-
|
|
:SafeCast-toUint168: pass:normal[xref:utils.adoc#SafeCast-toUint168-uint256-[`SafeCast.toUint168`]]
|
|
:xref-SafeCast-toUint168-uint256-: xref:utils.adoc#SafeCast-toUint168-uint256-
|
|
:SafeCast-toUint160: pass:normal[xref:utils.adoc#SafeCast-toUint160-uint256-[`SafeCast.toUint160`]]
|
|
:xref-SafeCast-toUint160-uint256-: xref:utils.adoc#SafeCast-toUint160-uint256-
|
|
:SafeCast-toUint152: pass:normal[xref:utils.adoc#SafeCast-toUint152-uint256-[`SafeCast.toUint152`]]
|
|
:xref-SafeCast-toUint152-uint256-: xref:utils.adoc#SafeCast-toUint152-uint256-
|
|
:SafeCast-toUint144: pass:normal[xref:utils.adoc#SafeCast-toUint144-uint256-[`SafeCast.toUint144`]]
|
|
:xref-SafeCast-toUint144-uint256-: xref:utils.adoc#SafeCast-toUint144-uint256-
|
|
:SafeCast-toUint136: pass:normal[xref:utils.adoc#SafeCast-toUint136-uint256-[`SafeCast.toUint136`]]
|
|
:xref-SafeCast-toUint136-uint256-: xref:utils.adoc#SafeCast-toUint136-uint256-
|
|
:SafeCast-toUint128: pass:normal[xref:utils.adoc#SafeCast-toUint128-uint256-[`SafeCast.toUint128`]]
|
|
:xref-SafeCast-toUint128-uint256-: xref:utils.adoc#SafeCast-toUint128-uint256-
|
|
:SafeCast-toUint120: pass:normal[xref:utils.adoc#SafeCast-toUint120-uint256-[`SafeCast.toUint120`]]
|
|
:xref-SafeCast-toUint120-uint256-: xref:utils.adoc#SafeCast-toUint120-uint256-
|
|
:SafeCast-toUint112: pass:normal[xref:utils.adoc#SafeCast-toUint112-uint256-[`SafeCast.toUint112`]]
|
|
:xref-SafeCast-toUint112-uint256-: xref:utils.adoc#SafeCast-toUint112-uint256-
|
|
:SafeCast-toUint104: pass:normal[xref:utils.adoc#SafeCast-toUint104-uint256-[`SafeCast.toUint104`]]
|
|
:xref-SafeCast-toUint104-uint256-: xref:utils.adoc#SafeCast-toUint104-uint256-
|
|
:SafeCast-toUint96: pass:normal[xref:utils.adoc#SafeCast-toUint96-uint256-[`SafeCast.toUint96`]]
|
|
:xref-SafeCast-toUint96-uint256-: xref:utils.adoc#SafeCast-toUint96-uint256-
|
|
:SafeCast-toUint88: pass:normal[xref:utils.adoc#SafeCast-toUint88-uint256-[`SafeCast.toUint88`]]
|
|
:xref-SafeCast-toUint88-uint256-: xref:utils.adoc#SafeCast-toUint88-uint256-
|
|
:SafeCast-toUint80: pass:normal[xref:utils.adoc#SafeCast-toUint80-uint256-[`SafeCast.toUint80`]]
|
|
:xref-SafeCast-toUint80-uint256-: xref:utils.adoc#SafeCast-toUint80-uint256-
|
|
:SafeCast-toUint72: pass:normal[xref:utils.adoc#SafeCast-toUint72-uint256-[`SafeCast.toUint72`]]
|
|
:xref-SafeCast-toUint72-uint256-: xref:utils.adoc#SafeCast-toUint72-uint256-
|
|
:SafeCast-toUint64: pass:normal[xref:utils.adoc#SafeCast-toUint64-uint256-[`SafeCast.toUint64`]]
|
|
:xref-SafeCast-toUint64-uint256-: xref:utils.adoc#SafeCast-toUint64-uint256-
|
|
:SafeCast-toUint56: pass:normal[xref:utils.adoc#SafeCast-toUint56-uint256-[`SafeCast.toUint56`]]
|
|
:xref-SafeCast-toUint56-uint256-: xref:utils.adoc#SafeCast-toUint56-uint256-
|
|
:SafeCast-toUint48: pass:normal[xref:utils.adoc#SafeCast-toUint48-uint256-[`SafeCast.toUint48`]]
|
|
:xref-SafeCast-toUint48-uint256-: xref:utils.adoc#SafeCast-toUint48-uint256-
|
|
:SafeCast-toUint40: pass:normal[xref:utils.adoc#SafeCast-toUint40-uint256-[`SafeCast.toUint40`]]
|
|
:xref-SafeCast-toUint40-uint256-: xref:utils.adoc#SafeCast-toUint40-uint256-
|
|
:SafeCast-toUint32: pass:normal[xref:utils.adoc#SafeCast-toUint32-uint256-[`SafeCast.toUint32`]]
|
|
:xref-SafeCast-toUint32-uint256-: xref:utils.adoc#SafeCast-toUint32-uint256-
|
|
:SafeCast-toUint24: pass:normal[xref:utils.adoc#SafeCast-toUint24-uint256-[`SafeCast.toUint24`]]
|
|
:xref-SafeCast-toUint24-uint256-: xref:utils.adoc#SafeCast-toUint24-uint256-
|
|
:SafeCast-toUint16: pass:normal[xref:utils.adoc#SafeCast-toUint16-uint256-[`SafeCast.toUint16`]]
|
|
:xref-SafeCast-toUint16-uint256-: xref:utils.adoc#SafeCast-toUint16-uint256-
|
|
:SafeCast-toUint8: pass:normal[xref:utils.adoc#SafeCast-toUint8-uint256-[`SafeCast.toUint8`]]
|
|
:xref-SafeCast-toUint8-uint256-: xref:utils.adoc#SafeCast-toUint8-uint256-
|
|
:SafeCast-toUint256: pass:normal[xref:utils.adoc#SafeCast-toUint256-int256-[`SafeCast.toUint256`]]
|
|
:xref-SafeCast-toUint256-int256-: xref:utils.adoc#SafeCast-toUint256-int256-
|
|
:SafeCast-toInt248: pass:normal[xref:utils.adoc#SafeCast-toInt248-int256-[`SafeCast.toInt248`]]
|
|
:xref-SafeCast-toInt248-int256-: xref:utils.adoc#SafeCast-toInt248-int256-
|
|
:SafeCast-toInt240: pass:normal[xref:utils.adoc#SafeCast-toInt240-int256-[`SafeCast.toInt240`]]
|
|
:xref-SafeCast-toInt240-int256-: xref:utils.adoc#SafeCast-toInt240-int256-
|
|
:SafeCast-toInt232: pass:normal[xref:utils.adoc#SafeCast-toInt232-int256-[`SafeCast.toInt232`]]
|
|
:xref-SafeCast-toInt232-int256-: xref:utils.adoc#SafeCast-toInt232-int256-
|
|
:SafeCast-toInt224: pass:normal[xref:utils.adoc#SafeCast-toInt224-int256-[`SafeCast.toInt224`]]
|
|
:xref-SafeCast-toInt224-int256-: xref:utils.adoc#SafeCast-toInt224-int256-
|
|
:SafeCast-toInt216: pass:normal[xref:utils.adoc#SafeCast-toInt216-int256-[`SafeCast.toInt216`]]
|
|
:xref-SafeCast-toInt216-int256-: xref:utils.adoc#SafeCast-toInt216-int256-
|
|
:SafeCast-toInt208: pass:normal[xref:utils.adoc#SafeCast-toInt208-int256-[`SafeCast.toInt208`]]
|
|
:xref-SafeCast-toInt208-int256-: xref:utils.adoc#SafeCast-toInt208-int256-
|
|
:SafeCast-toInt200: pass:normal[xref:utils.adoc#SafeCast-toInt200-int256-[`SafeCast.toInt200`]]
|
|
:xref-SafeCast-toInt200-int256-: xref:utils.adoc#SafeCast-toInt200-int256-
|
|
:SafeCast-toInt192: pass:normal[xref:utils.adoc#SafeCast-toInt192-int256-[`SafeCast.toInt192`]]
|
|
:xref-SafeCast-toInt192-int256-: xref:utils.adoc#SafeCast-toInt192-int256-
|
|
:SafeCast-toInt184: pass:normal[xref:utils.adoc#SafeCast-toInt184-int256-[`SafeCast.toInt184`]]
|
|
:xref-SafeCast-toInt184-int256-: xref:utils.adoc#SafeCast-toInt184-int256-
|
|
:SafeCast-toInt176: pass:normal[xref:utils.adoc#SafeCast-toInt176-int256-[`SafeCast.toInt176`]]
|
|
:xref-SafeCast-toInt176-int256-: xref:utils.adoc#SafeCast-toInt176-int256-
|
|
:SafeCast-toInt168: pass:normal[xref:utils.adoc#SafeCast-toInt168-int256-[`SafeCast.toInt168`]]
|
|
:xref-SafeCast-toInt168-int256-: xref:utils.adoc#SafeCast-toInt168-int256-
|
|
:SafeCast-toInt160: pass:normal[xref:utils.adoc#SafeCast-toInt160-int256-[`SafeCast.toInt160`]]
|
|
:xref-SafeCast-toInt160-int256-: xref:utils.adoc#SafeCast-toInt160-int256-
|
|
:SafeCast-toInt152: pass:normal[xref:utils.adoc#SafeCast-toInt152-int256-[`SafeCast.toInt152`]]
|
|
:xref-SafeCast-toInt152-int256-: xref:utils.adoc#SafeCast-toInt152-int256-
|
|
:SafeCast-toInt144: pass:normal[xref:utils.adoc#SafeCast-toInt144-int256-[`SafeCast.toInt144`]]
|
|
:xref-SafeCast-toInt144-int256-: xref:utils.adoc#SafeCast-toInt144-int256-
|
|
:SafeCast-toInt136: pass:normal[xref:utils.adoc#SafeCast-toInt136-int256-[`SafeCast.toInt136`]]
|
|
:xref-SafeCast-toInt136-int256-: xref:utils.adoc#SafeCast-toInt136-int256-
|
|
:SafeCast-toInt128: pass:normal[xref:utils.adoc#SafeCast-toInt128-int256-[`SafeCast.toInt128`]]
|
|
:xref-SafeCast-toInt128-int256-: xref:utils.adoc#SafeCast-toInt128-int256-
|
|
:SafeCast-toInt120: pass:normal[xref:utils.adoc#SafeCast-toInt120-int256-[`SafeCast.toInt120`]]
|
|
:xref-SafeCast-toInt120-int256-: xref:utils.adoc#SafeCast-toInt120-int256-
|
|
:SafeCast-toInt112: pass:normal[xref:utils.adoc#SafeCast-toInt112-int256-[`SafeCast.toInt112`]]
|
|
:xref-SafeCast-toInt112-int256-: xref:utils.adoc#SafeCast-toInt112-int256-
|
|
:SafeCast-toInt104: pass:normal[xref:utils.adoc#SafeCast-toInt104-int256-[`SafeCast.toInt104`]]
|
|
:xref-SafeCast-toInt104-int256-: xref:utils.adoc#SafeCast-toInt104-int256-
|
|
:SafeCast-toInt96: pass:normal[xref:utils.adoc#SafeCast-toInt96-int256-[`SafeCast.toInt96`]]
|
|
:xref-SafeCast-toInt96-int256-: xref:utils.adoc#SafeCast-toInt96-int256-
|
|
:SafeCast-toInt88: pass:normal[xref:utils.adoc#SafeCast-toInt88-int256-[`SafeCast.toInt88`]]
|
|
:xref-SafeCast-toInt88-int256-: xref:utils.adoc#SafeCast-toInt88-int256-
|
|
:SafeCast-toInt80: pass:normal[xref:utils.adoc#SafeCast-toInt80-int256-[`SafeCast.toInt80`]]
|
|
:xref-SafeCast-toInt80-int256-: xref:utils.adoc#SafeCast-toInt80-int256-
|
|
:SafeCast-toInt72: pass:normal[xref:utils.adoc#SafeCast-toInt72-int256-[`SafeCast.toInt72`]]
|
|
:xref-SafeCast-toInt72-int256-: xref:utils.adoc#SafeCast-toInt72-int256-
|
|
:SafeCast-toInt64: pass:normal[xref:utils.adoc#SafeCast-toInt64-int256-[`SafeCast.toInt64`]]
|
|
:xref-SafeCast-toInt64-int256-: xref:utils.adoc#SafeCast-toInt64-int256-
|
|
:SafeCast-toInt56: pass:normal[xref:utils.adoc#SafeCast-toInt56-int256-[`SafeCast.toInt56`]]
|
|
:xref-SafeCast-toInt56-int256-: xref:utils.adoc#SafeCast-toInt56-int256-
|
|
:SafeCast-toInt48: pass:normal[xref:utils.adoc#SafeCast-toInt48-int256-[`SafeCast.toInt48`]]
|
|
:xref-SafeCast-toInt48-int256-: xref:utils.adoc#SafeCast-toInt48-int256-
|
|
:SafeCast-toInt40: pass:normal[xref:utils.adoc#SafeCast-toInt40-int256-[`SafeCast.toInt40`]]
|
|
:xref-SafeCast-toInt40-int256-: xref:utils.adoc#SafeCast-toInt40-int256-
|
|
:SafeCast-toInt32: pass:normal[xref:utils.adoc#SafeCast-toInt32-int256-[`SafeCast.toInt32`]]
|
|
:xref-SafeCast-toInt32-int256-: xref:utils.adoc#SafeCast-toInt32-int256-
|
|
:SafeCast-toInt24: pass:normal[xref:utils.adoc#SafeCast-toInt24-int256-[`SafeCast.toInt24`]]
|
|
:xref-SafeCast-toInt24-int256-: xref:utils.adoc#SafeCast-toInt24-int256-
|
|
:SafeCast-toInt16: pass:normal[xref:utils.adoc#SafeCast-toInt16-int256-[`SafeCast.toInt16`]]
|
|
:xref-SafeCast-toInt16-int256-: xref:utils.adoc#SafeCast-toInt16-int256-
|
|
:SafeCast-toInt8: pass:normal[xref:utils.adoc#SafeCast-toInt8-int256-[`SafeCast.toInt8`]]
|
|
:xref-SafeCast-toInt8-int256-: xref:utils.adoc#SafeCast-toInt8-int256-
|
|
:SafeCast-toInt256: pass:normal[xref:utils.adoc#SafeCast-toInt256-uint256-[`SafeCast.toInt256`]]
|
|
:xref-SafeCast-toInt256-uint256-: xref:utils.adoc#SafeCast-toInt256-uint256-
|
|
:SafeMath: pass:normal[xref:utils.adoc#SafeMath[`SafeMath`]]
|
|
:xref-SafeMath: xref:utils.adoc#SafeMath
|
|
:SafeMath-tryAdd: pass:normal[xref:utils.adoc#SafeMath-tryAdd-uint256-uint256-[`SafeMath.tryAdd`]]
|
|
:xref-SafeMath-tryAdd-uint256-uint256-: xref:utils.adoc#SafeMath-tryAdd-uint256-uint256-
|
|
:SafeMath-trySub: pass:normal[xref:utils.adoc#SafeMath-trySub-uint256-uint256-[`SafeMath.trySub`]]
|
|
:xref-SafeMath-trySub-uint256-uint256-: xref:utils.adoc#SafeMath-trySub-uint256-uint256-
|
|
:SafeMath-tryMul: pass:normal[xref:utils.adoc#SafeMath-tryMul-uint256-uint256-[`SafeMath.tryMul`]]
|
|
:xref-SafeMath-tryMul-uint256-uint256-: xref:utils.adoc#SafeMath-tryMul-uint256-uint256-
|
|
:SafeMath-tryDiv: pass:normal[xref:utils.adoc#SafeMath-tryDiv-uint256-uint256-[`SafeMath.tryDiv`]]
|
|
:xref-SafeMath-tryDiv-uint256-uint256-: xref:utils.adoc#SafeMath-tryDiv-uint256-uint256-
|
|
:SafeMath-tryMod: pass:normal[xref:utils.adoc#SafeMath-tryMod-uint256-uint256-[`SafeMath.tryMod`]]
|
|
:xref-SafeMath-tryMod-uint256-uint256-: xref:utils.adoc#SafeMath-tryMod-uint256-uint256-
|
|
:SafeMath-add: pass:normal[xref:utils.adoc#SafeMath-add-uint256-uint256-[`SafeMath.add`]]
|
|
:xref-SafeMath-add-uint256-uint256-: xref:utils.adoc#SafeMath-add-uint256-uint256-
|
|
:SafeMath-sub: pass:normal[xref:utils.adoc#SafeMath-sub-uint256-uint256-[`SafeMath.sub`]]
|
|
:xref-SafeMath-sub-uint256-uint256-: xref:utils.adoc#SafeMath-sub-uint256-uint256-
|
|
:SafeMath-mul: pass:normal[xref:utils.adoc#SafeMath-mul-uint256-uint256-[`SafeMath.mul`]]
|
|
:xref-SafeMath-mul-uint256-uint256-: xref:utils.adoc#SafeMath-mul-uint256-uint256-
|
|
:SafeMath-div: pass:normal[xref:utils.adoc#SafeMath-div-uint256-uint256-[`SafeMath.div`]]
|
|
:xref-SafeMath-div-uint256-uint256-: xref:utils.adoc#SafeMath-div-uint256-uint256-
|
|
:SafeMath-mod: pass:normal[xref:utils.adoc#SafeMath-mod-uint256-uint256-[`SafeMath.mod`]]
|
|
:xref-SafeMath-mod-uint256-uint256-: xref:utils.adoc#SafeMath-mod-uint256-uint256-
|
|
:SafeMath-sub: pass:normal[xref:utils.adoc#SafeMath-sub-uint256-uint256-string-[`SafeMath.sub`]]
|
|
:xref-SafeMath-sub-uint256-uint256-string-: xref:utils.adoc#SafeMath-sub-uint256-uint256-string-
|
|
:SafeMath-div: pass:normal[xref:utils.adoc#SafeMath-div-uint256-uint256-string-[`SafeMath.div`]]
|
|
:xref-SafeMath-div-uint256-uint256-string-: xref:utils.adoc#SafeMath-div-uint256-uint256-string-
|
|
:SafeMath-mod: pass:normal[xref:utils.adoc#SafeMath-mod-uint256-uint256-string-[`SafeMath.mod`]]
|
|
:xref-SafeMath-mod-uint256-uint256-string-: xref:utils.adoc#SafeMath-mod-uint256-uint256-string-
|
|
:SignedMath: pass:normal[xref:utils.adoc#SignedMath[`SignedMath`]]
|
|
:xref-SignedMath: xref:utils.adoc#SignedMath
|
|
:SignedMath-max: pass:normal[xref:utils.adoc#SignedMath-max-int256-int256-[`SignedMath.max`]]
|
|
:xref-SignedMath-max-int256-int256-: xref:utils.adoc#SignedMath-max-int256-int256-
|
|
:SignedMath-min: pass:normal[xref:utils.adoc#SignedMath-min-int256-int256-[`SignedMath.min`]]
|
|
:xref-SignedMath-min-int256-int256-: xref:utils.adoc#SignedMath-min-int256-int256-
|
|
:SignedMath-average: pass:normal[xref:utils.adoc#SignedMath-average-int256-int256-[`SignedMath.average`]]
|
|
:xref-SignedMath-average-int256-int256-: xref:utils.adoc#SignedMath-average-int256-int256-
|
|
:SignedMath-abs: pass:normal[xref:utils.adoc#SignedMath-abs-int256-[`SignedMath.abs`]]
|
|
:xref-SignedMath-abs-int256-: xref:utils.adoc#SignedMath-abs-int256-
|
|
:SignedSafeMath: pass:normal[xref:utils.adoc#SignedSafeMath[`SignedSafeMath`]]
|
|
:xref-SignedSafeMath: xref:utils.adoc#SignedSafeMath
|
|
:SignedSafeMath-mul: pass:normal[xref:utils.adoc#SignedSafeMath-mul-int256-int256-[`SignedSafeMath.mul`]]
|
|
:xref-SignedSafeMath-mul-int256-int256-: xref:utils.adoc#SignedSafeMath-mul-int256-int256-
|
|
:SignedSafeMath-div: pass:normal[xref:utils.adoc#SignedSafeMath-div-int256-int256-[`SignedSafeMath.div`]]
|
|
:xref-SignedSafeMath-div-int256-int256-: xref:utils.adoc#SignedSafeMath-div-int256-int256-
|
|
:SignedSafeMath-sub: pass:normal[xref:utils.adoc#SignedSafeMath-sub-int256-int256-[`SignedSafeMath.sub`]]
|
|
:xref-SignedSafeMath-sub-int256-int256-: xref:utils.adoc#SignedSafeMath-sub-int256-int256-
|
|
:SignedSafeMath-add: pass:normal[xref:utils.adoc#SignedSafeMath-add-int256-int256-[`SignedSafeMath.add`]]
|
|
:xref-SignedSafeMath-add-int256-int256-: xref:utils.adoc#SignedSafeMath-add-int256-int256-
|
|
:BitMaps: pass:normal[xref:utils.adoc#BitMaps[`BitMaps`]]
|
|
:xref-BitMaps: xref:utils.adoc#BitMaps
|
|
:BitMaps-get: pass:normal[xref:utils.adoc#BitMaps-get-struct-BitMaps-BitMap-uint256-[`BitMaps.get`]]
|
|
:xref-BitMaps-get-struct-BitMaps-BitMap-uint256-: xref:utils.adoc#BitMaps-get-struct-BitMaps-BitMap-uint256-
|
|
:BitMaps-setTo: pass:normal[xref:utils.adoc#BitMaps-setTo-struct-BitMaps-BitMap-uint256-bool-[`BitMaps.setTo`]]
|
|
:xref-BitMaps-setTo-struct-BitMaps-BitMap-uint256-bool-: xref:utils.adoc#BitMaps-setTo-struct-BitMaps-BitMap-uint256-bool-
|
|
:BitMaps-set: pass:normal[xref:utils.adoc#BitMaps-set-struct-BitMaps-BitMap-uint256-[`BitMaps.set`]]
|
|
:xref-BitMaps-set-struct-BitMaps-BitMap-uint256-: xref:utils.adoc#BitMaps-set-struct-BitMaps-BitMap-uint256-
|
|
:BitMaps-unset: pass:normal[xref:utils.adoc#BitMaps-unset-struct-BitMaps-BitMap-uint256-[`BitMaps.unset`]]
|
|
:xref-BitMaps-unset-struct-BitMaps-BitMap-uint256-: xref:utils.adoc#BitMaps-unset-struct-BitMaps-BitMap-uint256-
|
|
:BitMaps-BitMap: pass:normal[xref:utils.adoc#BitMaps-BitMap[`BitMaps.BitMap`]]
|
|
:xref-BitMaps-BitMap: xref:utils.adoc#BitMaps-BitMap
|
|
:DoubleEndedQueue: pass:normal[xref:utils.adoc#DoubleEndedQueue[`DoubleEndedQueue`]]
|
|
:xref-DoubleEndedQueue: xref:utils.adoc#DoubleEndedQueue
|
|
:DoubleEndedQueue-pushBack: pass:normal[xref:utils.adoc#DoubleEndedQueue-pushBack-struct-DoubleEndedQueue-Bytes32Deque-bytes32-[`DoubleEndedQueue.pushBack`]]
|
|
:xref-DoubleEndedQueue-pushBack-struct-DoubleEndedQueue-Bytes32Deque-bytes32-: xref:utils.adoc#DoubleEndedQueue-pushBack-struct-DoubleEndedQueue-Bytes32Deque-bytes32-
|
|
:DoubleEndedQueue-popBack: pass:normal[xref:utils.adoc#DoubleEndedQueue-popBack-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.popBack`]]
|
|
:xref-DoubleEndedQueue-popBack-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-popBack-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-pushFront: pass:normal[xref:utils.adoc#DoubleEndedQueue-pushFront-struct-DoubleEndedQueue-Bytes32Deque-bytes32-[`DoubleEndedQueue.pushFront`]]
|
|
:xref-DoubleEndedQueue-pushFront-struct-DoubleEndedQueue-Bytes32Deque-bytes32-: xref:utils.adoc#DoubleEndedQueue-pushFront-struct-DoubleEndedQueue-Bytes32Deque-bytes32-
|
|
:DoubleEndedQueue-popFront: pass:normal[xref:utils.adoc#DoubleEndedQueue-popFront-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.popFront`]]
|
|
:xref-DoubleEndedQueue-popFront-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-popFront-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-front: pass:normal[xref:utils.adoc#DoubleEndedQueue-front-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.front`]]
|
|
:xref-DoubleEndedQueue-front-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-front-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-back: pass:normal[xref:utils.adoc#DoubleEndedQueue-back-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.back`]]
|
|
:xref-DoubleEndedQueue-back-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-back-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-at: pass:normal[xref:utils.adoc#DoubleEndedQueue-at-struct-DoubleEndedQueue-Bytes32Deque-uint256-[`DoubleEndedQueue.at`]]
|
|
:xref-DoubleEndedQueue-at-struct-DoubleEndedQueue-Bytes32Deque-uint256-: xref:utils.adoc#DoubleEndedQueue-at-struct-DoubleEndedQueue-Bytes32Deque-uint256-
|
|
:DoubleEndedQueue-clear: pass:normal[xref:utils.adoc#DoubleEndedQueue-clear-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.clear`]]
|
|
:xref-DoubleEndedQueue-clear-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-clear-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-length: pass:normal[xref:utils.adoc#DoubleEndedQueue-length-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.length`]]
|
|
:xref-DoubleEndedQueue-length-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-length-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-empty: pass:normal[xref:utils.adoc#DoubleEndedQueue-empty-struct-DoubleEndedQueue-Bytes32Deque-[`DoubleEndedQueue.empty`]]
|
|
:xref-DoubleEndedQueue-empty-struct-DoubleEndedQueue-Bytes32Deque-: xref:utils.adoc#DoubleEndedQueue-empty-struct-DoubleEndedQueue-Bytes32Deque-
|
|
:DoubleEndedQueue-Bytes32Deque: pass:normal[xref:utils.adoc#DoubleEndedQueue-Bytes32Deque[`DoubleEndedQueue.Bytes32Deque`]]
|
|
:xref-DoubleEndedQueue-Bytes32Deque: xref:utils.adoc#DoubleEndedQueue-Bytes32Deque
|
|
:EnumerableMap: pass:normal[xref:utils.adoc#EnumerableMap[`EnumerableMap`]]
|
|
:xref-EnumerableMap: xref:utils.adoc#EnumerableMap
|
|
:EnumerableMap-set: pass:normal[xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-bytes32-[`EnumerableMap.set`]]
|
|
:xref-EnumerableMap-set-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-bytes32-: xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-bytes32-
|
|
:EnumerableMap-remove: pass:normal[xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`EnumerableMap.remove`]]
|
|
:xref-EnumerableMap-remove-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-: xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-
|
|
:EnumerableMap-contains: pass:normal[xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`EnumerableMap.contains`]]
|
|
:xref-EnumerableMap-contains-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-: xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-
|
|
:EnumerableMap-length: pass:normal[xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-Bytes32ToBytes32Map-[`EnumerableMap.length`]]
|
|
:xref-EnumerableMap-length-struct-EnumerableMap-Bytes32ToBytes32Map-: xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-Bytes32ToBytes32Map-
|
|
:EnumerableMap-at: pass:normal[xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-Bytes32ToBytes32Map-uint256-[`EnumerableMap.at`]]
|
|
:xref-EnumerableMap-at-struct-EnumerableMap-Bytes32ToBytes32Map-uint256-: xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-Bytes32ToBytes32Map-uint256-
|
|
:EnumerableMap-tryGet: pass:normal[xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`EnumerableMap.tryGet`]]
|
|
:xref-EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-: xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-string-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-string-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-string-
|
|
:EnumerableMap-set: pass:normal[xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-UintToUintMap-uint256-uint256-[`EnumerableMap.set`]]
|
|
:xref-EnumerableMap-set-struct-EnumerableMap-UintToUintMap-uint256-uint256-: xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-UintToUintMap-uint256-uint256-
|
|
:EnumerableMap-remove: pass:normal[xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-UintToUintMap-uint256-[`EnumerableMap.remove`]]
|
|
:xref-EnumerableMap-remove-struct-EnumerableMap-UintToUintMap-uint256-: xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-UintToUintMap-uint256-
|
|
:EnumerableMap-contains: pass:normal[xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-UintToUintMap-uint256-[`EnumerableMap.contains`]]
|
|
:xref-EnumerableMap-contains-struct-EnumerableMap-UintToUintMap-uint256-: xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-UintToUintMap-uint256-
|
|
:EnumerableMap-length: pass:normal[xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-UintToUintMap-[`EnumerableMap.length`]]
|
|
:xref-EnumerableMap-length-struct-EnumerableMap-UintToUintMap-: xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-UintToUintMap-
|
|
:EnumerableMap-at: pass:normal[xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-UintToUintMap-uint256-[`EnumerableMap.at`]]
|
|
:xref-EnumerableMap-at-struct-EnumerableMap-UintToUintMap-uint256-: xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-UintToUintMap-uint256-
|
|
:EnumerableMap-tryGet: pass:normal[xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-UintToUintMap-uint256-[`EnumerableMap.tryGet`]]
|
|
:xref-EnumerableMap-tryGet-struct-EnumerableMap-UintToUintMap-uint256-: xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-UintToUintMap-uint256-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-string-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-string-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-string-
|
|
:EnumerableMap-set: pass:normal[xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-UintToAddressMap-uint256-address-[`EnumerableMap.set`]]
|
|
:xref-EnumerableMap-set-struct-EnumerableMap-UintToAddressMap-uint256-address-: xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-UintToAddressMap-uint256-address-
|
|
:EnumerableMap-remove: pass:normal[xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-UintToAddressMap-uint256-[`EnumerableMap.remove`]]
|
|
:xref-EnumerableMap-remove-struct-EnumerableMap-UintToAddressMap-uint256-: xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-UintToAddressMap-uint256-
|
|
:EnumerableMap-contains: pass:normal[xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-UintToAddressMap-uint256-[`EnumerableMap.contains`]]
|
|
:xref-EnumerableMap-contains-struct-EnumerableMap-UintToAddressMap-uint256-: xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-UintToAddressMap-uint256-
|
|
:EnumerableMap-length: pass:normal[xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-UintToAddressMap-[`EnumerableMap.length`]]
|
|
:xref-EnumerableMap-length-struct-EnumerableMap-UintToAddressMap-: xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-UintToAddressMap-
|
|
:EnumerableMap-at: pass:normal[xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-UintToAddressMap-uint256-[`EnumerableMap.at`]]
|
|
:xref-EnumerableMap-at-struct-EnumerableMap-UintToAddressMap-uint256-: xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-UintToAddressMap-uint256-
|
|
:EnumerableMap-tryGet: pass:normal[xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-UintToAddressMap-uint256-[`EnumerableMap.tryGet`]]
|
|
:xref-EnumerableMap-tryGet-struct-EnumerableMap-UintToAddressMap-uint256-: xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-UintToAddressMap-uint256-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-string-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-string-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-string-
|
|
:EnumerableMap-set: pass:normal[xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-AddressToUintMap-address-uint256-[`EnumerableMap.set`]]
|
|
:xref-EnumerableMap-set-struct-EnumerableMap-AddressToUintMap-address-uint256-: xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-AddressToUintMap-address-uint256-
|
|
:EnumerableMap-remove: pass:normal[xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-AddressToUintMap-address-[`EnumerableMap.remove`]]
|
|
:xref-EnumerableMap-remove-struct-EnumerableMap-AddressToUintMap-address-: xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-AddressToUintMap-address-
|
|
:EnumerableMap-contains: pass:normal[xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-AddressToUintMap-address-[`EnumerableMap.contains`]]
|
|
:xref-EnumerableMap-contains-struct-EnumerableMap-AddressToUintMap-address-: xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-AddressToUintMap-address-
|
|
:EnumerableMap-length: pass:normal[xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-AddressToUintMap-[`EnumerableMap.length`]]
|
|
:xref-EnumerableMap-length-struct-EnumerableMap-AddressToUintMap-: xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-AddressToUintMap-
|
|
:EnumerableMap-at: pass:normal[xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-AddressToUintMap-uint256-[`EnumerableMap.at`]]
|
|
:xref-EnumerableMap-at-struct-EnumerableMap-AddressToUintMap-uint256-: xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-AddressToUintMap-uint256-
|
|
:EnumerableMap-tryGet: pass:normal[xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-AddressToUintMap-address-[`EnumerableMap.tryGet`]]
|
|
:xref-EnumerableMap-tryGet-struct-EnumerableMap-AddressToUintMap-address-: xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-AddressToUintMap-address-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-string-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-string-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-string-
|
|
:EnumerableMap-set: pass:normal[xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-Bytes32ToUintMap-bytes32-uint256-[`EnumerableMap.set`]]
|
|
:xref-EnumerableMap-set-struct-EnumerableMap-Bytes32ToUintMap-bytes32-uint256-: xref:utils.adoc#EnumerableMap-set-struct-EnumerableMap-Bytes32ToUintMap-bytes32-uint256-
|
|
:EnumerableMap-remove: pass:normal[xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`EnumerableMap.remove`]]
|
|
:xref-EnumerableMap-remove-struct-EnumerableMap-Bytes32ToUintMap-bytes32-: xref:utils.adoc#EnumerableMap-remove-struct-EnumerableMap-Bytes32ToUintMap-bytes32-
|
|
:EnumerableMap-contains: pass:normal[xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`EnumerableMap.contains`]]
|
|
:xref-EnumerableMap-contains-struct-EnumerableMap-Bytes32ToUintMap-bytes32-: xref:utils.adoc#EnumerableMap-contains-struct-EnumerableMap-Bytes32ToUintMap-bytes32-
|
|
:EnumerableMap-length: pass:normal[xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-Bytes32ToUintMap-[`EnumerableMap.length`]]
|
|
:xref-EnumerableMap-length-struct-EnumerableMap-Bytes32ToUintMap-: xref:utils.adoc#EnumerableMap-length-struct-EnumerableMap-Bytes32ToUintMap-
|
|
:EnumerableMap-at: pass:normal[xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-Bytes32ToUintMap-uint256-[`EnumerableMap.at`]]
|
|
:xref-EnumerableMap-at-struct-EnumerableMap-Bytes32ToUintMap-uint256-: xref:utils.adoc#EnumerableMap-at-struct-EnumerableMap-Bytes32ToUintMap-uint256-
|
|
:EnumerableMap-tryGet: pass:normal[xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`EnumerableMap.tryGet`]]
|
|
:xref-EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToUintMap-bytes32-: xref:utils.adoc#EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToUintMap-bytes32-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-
|
|
:EnumerableMap-get: pass:normal[xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-string-[`EnumerableMap.get`]]
|
|
:xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-string-: xref:utils.adoc#EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-string-
|
|
:EnumerableMap-Bytes32ToBytes32Map: pass:normal[xref:utils.adoc#EnumerableMap-Bytes32ToBytes32Map[`EnumerableMap.Bytes32ToBytes32Map`]]
|
|
:xref-EnumerableMap-Bytes32ToBytes32Map: xref:utils.adoc#EnumerableMap-Bytes32ToBytes32Map
|
|
:EnumerableMap-UintToUintMap: pass:normal[xref:utils.adoc#EnumerableMap-UintToUintMap[`EnumerableMap.UintToUintMap`]]
|
|
:xref-EnumerableMap-UintToUintMap: xref:utils.adoc#EnumerableMap-UintToUintMap
|
|
:EnumerableMap-UintToAddressMap: pass:normal[xref:utils.adoc#EnumerableMap-UintToAddressMap[`EnumerableMap.UintToAddressMap`]]
|
|
:xref-EnumerableMap-UintToAddressMap: xref:utils.adoc#EnumerableMap-UintToAddressMap
|
|
:EnumerableMap-AddressToUintMap: pass:normal[xref:utils.adoc#EnumerableMap-AddressToUintMap[`EnumerableMap.AddressToUintMap`]]
|
|
:xref-EnumerableMap-AddressToUintMap: xref:utils.adoc#EnumerableMap-AddressToUintMap
|
|
:EnumerableMap-Bytes32ToUintMap: pass:normal[xref:utils.adoc#EnumerableMap-Bytes32ToUintMap[`EnumerableMap.Bytes32ToUintMap`]]
|
|
:xref-EnumerableMap-Bytes32ToUintMap: xref:utils.adoc#EnumerableMap-Bytes32ToUintMap
|
|
:EnumerableSet: pass:normal[xref:utils.adoc#EnumerableSet[`EnumerableSet`]]
|
|
:xref-EnumerableSet: xref:utils.adoc#EnumerableSet
|
|
:EnumerableSet-add: pass:normal[xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-Bytes32Set-bytes32-[`EnumerableSet.add`]]
|
|
:xref-EnumerableSet-add-struct-EnumerableSet-Bytes32Set-bytes32-: xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-Bytes32Set-bytes32-
|
|
:EnumerableSet-remove: pass:normal[xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-Bytes32Set-bytes32-[`EnumerableSet.remove`]]
|
|
:xref-EnumerableSet-remove-struct-EnumerableSet-Bytes32Set-bytes32-: xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-Bytes32Set-bytes32-
|
|
:EnumerableSet-contains: pass:normal[xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-Bytes32Set-bytes32-[`EnumerableSet.contains`]]
|
|
:xref-EnumerableSet-contains-struct-EnumerableSet-Bytes32Set-bytes32-: xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-Bytes32Set-bytes32-
|
|
:EnumerableSet-length: pass:normal[xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-Bytes32Set-[`EnumerableSet.length`]]
|
|
:xref-EnumerableSet-length-struct-EnumerableSet-Bytes32Set-: xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-Bytes32Set-
|
|
:EnumerableSet-at: pass:normal[xref:utils.adoc#EnumerableSet-at-struct-EnumerableSet-Bytes32Set-uint256-[`EnumerableSet.at`]]
|
|
:xref-EnumerableSet-at-struct-EnumerableSet-Bytes32Set-uint256-: xref:utils.adoc#EnumerableSet-at-struct-EnumerableSet-Bytes32Set-uint256-
|
|
:EnumerableSet-values: pass:normal[xref:utils.adoc#EnumerableSet-values-struct-EnumerableSet-Bytes32Set-[`EnumerableSet.values`]]
|
|
:xref-EnumerableSet-values-struct-EnumerableSet-Bytes32Set-: xref:utils.adoc#EnumerableSet-values-struct-EnumerableSet-Bytes32Set-
|
|
:EnumerableSet-add: pass:normal[xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-AddressSet-address-[`EnumerableSet.add`]]
|
|
:xref-EnumerableSet-add-struct-EnumerableSet-AddressSet-address-: xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-AddressSet-address-
|
|
:EnumerableSet-remove: pass:normal[xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-[`EnumerableSet.remove`]]
|
|
:xref-EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-: xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-
|
|
:EnumerableSet-contains: pass:normal[xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-[`EnumerableSet.contains`]]
|
|
:xref-EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-: xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-
|
|
:EnumerableSet-length: pass:normal[xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-AddressSet-[`EnumerableSet.length`]]
|
|
:xref-EnumerableSet-length-struct-EnumerableSet-AddressSet-: xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-AddressSet-
|
|
:EnumerableSet-at: pass:normal[xref:utils.adoc#EnumerableSet-at-struct-EnumerableSet-AddressSet-uint256-[`EnumerableSet.at`]]
|
|
:xref-EnumerableSet-at-struct-EnumerableSet-AddressSet-uint256-: xref:utils.adoc#EnumerableSet-at-struct-EnumerableSet-AddressSet-uint256-
|
|
:EnumerableSet-values: pass:normal[xref:utils.adoc#EnumerableSet-values-struct-EnumerableSet-AddressSet-[`EnumerableSet.values`]]
|
|
:xref-EnumerableSet-values-struct-EnumerableSet-AddressSet-: xref:utils.adoc#EnumerableSet-values-struct-EnumerableSet-AddressSet-
|
|
:EnumerableSet-add: pass:normal[xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-UintSet-uint256-[`EnumerableSet.add`]]
|
|
:xref-EnumerableSet-add-struct-EnumerableSet-UintSet-uint256-: xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-UintSet-uint256-
|
|
:EnumerableSet-remove: pass:normal[xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-UintSet-uint256-[`EnumerableSet.remove`]]
|
|
:xref-EnumerableSet-remove-struct-EnumerableSet-UintSet-uint256-: xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-UintSet-uint256-
|
|
:EnumerableSet-contains: pass:normal[xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-UintSet-uint256-[`EnumerableSet.contains`]]
|
|
:xref-EnumerableSet-contains-struct-EnumerableSet-UintSet-uint256-: xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-UintSet-uint256-
|
|
:EnumerableSet-length: pass:normal[xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-UintSet-[`EnumerableSet.length`]]
|
|
:xref-EnumerableSet-length-struct-EnumerableSet-UintSet-: xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-UintSet-
|
|
:EnumerableSet-at: pass:normal[xref:utils.adoc#EnumerableSet-at-struct-EnumerableSet-UintSet-uint256-[`EnumerableSet.at`]]
|
|
:xref-EnumerableSet-at-struct-EnumerableSet-UintSet-uint256-: xref:utils.adoc#EnumerableSet-at-struct-EnumerableSet-UintSet-uint256-
|
|
:EnumerableSet-values: pass:normal[xref:utils.adoc#EnumerableSet-values-struct-EnumerableSet-UintSet-[`EnumerableSet.values`]]
|
|
:xref-EnumerableSet-values-struct-EnumerableSet-UintSet-: xref:utils.adoc#EnumerableSet-values-struct-EnumerableSet-UintSet-
|
|
:EnumerableSet-Set: pass:normal[xref:utils.adoc#EnumerableSet-Set[`EnumerableSet.Set`]]
|
|
:xref-EnumerableSet-Set: xref:utils.adoc#EnumerableSet-Set
|
|
:EnumerableSet-Bytes32Set: pass:normal[xref:utils.adoc#EnumerableSet-Bytes32Set[`EnumerableSet.Bytes32Set`]]
|
|
:xref-EnumerableSet-Bytes32Set: xref:utils.adoc#EnumerableSet-Bytes32Set
|
|
:EnumerableSet-AddressSet: pass:normal[xref:utils.adoc#EnumerableSet-AddressSet[`EnumerableSet.AddressSet`]]
|
|
:xref-EnumerableSet-AddressSet: xref:utils.adoc#EnumerableSet-AddressSet
|
|
:EnumerableSet-UintSet: pass:normal[xref:utils.adoc#EnumerableSet-UintSet[`EnumerableSet.UintSet`]]
|
|
:xref-EnumerableSet-UintSet: xref:utils.adoc#EnumerableSet-UintSet
|
|
:ERC1155: pass:normal[xref:token/ERC1155.adoc#ERC1155[`ERC1155`]]
|
|
:xref-ERC1155: xref:token/ERC1155.adoc#ERC1155
|
|
:ERC1155-constructor: pass:normal[xref:token/ERC1155.adoc#ERC1155-constructor-string-[`ERC1155.constructor`]]
|
|
:xref-ERC1155-constructor-string-: xref:token/ERC1155.adoc#ERC1155-constructor-string-
|
|
:ERC1155-supportsInterface: pass:normal[xref:token/ERC1155.adoc#ERC1155-supportsInterface-bytes4-[`ERC1155.supportsInterface`]]
|
|
:xref-ERC1155-supportsInterface-bytes4-: xref:token/ERC1155.adoc#ERC1155-supportsInterface-bytes4-
|
|
:ERC1155-uri: pass:normal[xref:token/ERC1155.adoc#ERC1155-uri-uint256-[`ERC1155.uri`]]
|
|
:xref-ERC1155-uri-uint256-: xref:token/ERC1155.adoc#ERC1155-uri-uint256-
|
|
:ERC1155-balanceOf: pass:normal[xref:token/ERC1155.adoc#ERC1155-balanceOf-address-uint256-[`ERC1155.balanceOf`]]
|
|
:xref-ERC1155-balanceOf-address-uint256-: xref:token/ERC1155.adoc#ERC1155-balanceOf-address-uint256-
|
|
:ERC1155-balanceOfBatch: pass:normal[xref:token/ERC1155.adoc#ERC1155-balanceOfBatch-address---uint256---[`ERC1155.balanceOfBatch`]]
|
|
:xref-ERC1155-balanceOfBatch-address---uint256---: xref:token/ERC1155.adoc#ERC1155-balanceOfBatch-address---uint256---
|
|
:ERC1155-setApprovalForAll: pass:normal[xref:token/ERC1155.adoc#ERC1155-setApprovalForAll-address-bool-[`ERC1155.setApprovalForAll`]]
|
|
:xref-ERC1155-setApprovalForAll-address-bool-: xref:token/ERC1155.adoc#ERC1155-setApprovalForAll-address-bool-
|
|
:ERC1155-isApprovedForAll: pass:normal[xref:token/ERC1155.adoc#ERC1155-isApprovedForAll-address-address-[`ERC1155.isApprovedForAll`]]
|
|
:xref-ERC1155-isApprovedForAll-address-address-: xref:token/ERC1155.adoc#ERC1155-isApprovedForAll-address-address-
|
|
:ERC1155-safeTransferFrom: pass:normal[xref:token/ERC1155.adoc#ERC1155-safeTransferFrom-address-address-uint256-uint256-bytes-[`ERC1155.safeTransferFrom`]]
|
|
:xref-ERC1155-safeTransferFrom-address-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#ERC1155-safeTransferFrom-address-address-uint256-uint256-bytes-
|
|
:ERC1155-safeBatchTransferFrom: pass:normal[xref:token/ERC1155.adoc#ERC1155-safeBatchTransferFrom-address-address-uint256---uint256---bytes-[`ERC1155.safeBatchTransferFrom`]]
|
|
:xref-ERC1155-safeBatchTransferFrom-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155-safeBatchTransferFrom-address-address-uint256---uint256---bytes-
|
|
:ERC1155-_safeTransferFrom: pass:normal[xref:token/ERC1155.adoc#ERC1155-_safeTransferFrom-address-address-uint256-uint256-bytes-[`ERC1155._safeTransferFrom`]]
|
|
:xref-ERC1155-_safeTransferFrom-address-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#ERC1155-_safeTransferFrom-address-address-uint256-uint256-bytes-
|
|
:ERC1155-_safeBatchTransferFrom: pass:normal[xref:token/ERC1155.adoc#ERC1155-_safeBatchTransferFrom-address-address-uint256---uint256---bytes-[`ERC1155._safeBatchTransferFrom`]]
|
|
:xref-ERC1155-_safeBatchTransferFrom-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155-_safeBatchTransferFrom-address-address-uint256---uint256---bytes-
|
|
:ERC1155-_setURI: pass:normal[xref:token/ERC1155.adoc#ERC1155-_setURI-string-[`ERC1155._setURI`]]
|
|
:xref-ERC1155-_setURI-string-: xref:token/ERC1155.adoc#ERC1155-_setURI-string-
|
|
:ERC1155-_mint: pass:normal[xref:token/ERC1155.adoc#ERC1155-_mint-address-uint256-uint256-bytes-[`ERC1155._mint`]]
|
|
:xref-ERC1155-_mint-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#ERC1155-_mint-address-uint256-uint256-bytes-
|
|
:ERC1155-_mintBatch: pass:normal[xref:token/ERC1155.adoc#ERC1155-_mintBatch-address-uint256---uint256---bytes-[`ERC1155._mintBatch`]]
|
|
:xref-ERC1155-_mintBatch-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155-_mintBatch-address-uint256---uint256---bytes-
|
|
:ERC1155-_burn: pass:normal[xref:token/ERC1155.adoc#ERC1155-_burn-address-uint256-uint256-[`ERC1155._burn`]]
|
|
:xref-ERC1155-_burn-address-uint256-uint256-: xref:token/ERC1155.adoc#ERC1155-_burn-address-uint256-uint256-
|
|
:ERC1155-_burnBatch: pass:normal[xref:token/ERC1155.adoc#ERC1155-_burnBatch-address-uint256---uint256---[`ERC1155._burnBatch`]]
|
|
:xref-ERC1155-_burnBatch-address-uint256---uint256---: xref:token/ERC1155.adoc#ERC1155-_burnBatch-address-uint256---uint256---
|
|
:ERC1155-_setApprovalForAll: pass:normal[xref:token/ERC1155.adoc#ERC1155-_setApprovalForAll-address-address-bool-[`ERC1155._setApprovalForAll`]]
|
|
:xref-ERC1155-_setApprovalForAll-address-address-bool-: xref:token/ERC1155.adoc#ERC1155-_setApprovalForAll-address-address-bool-
|
|
:ERC1155-_beforeTokenTransfer: pass:normal[xref:token/ERC1155.adoc#ERC1155-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`ERC1155._beforeTokenTransfer`]]
|
|
:xref-ERC1155-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-
|
|
:ERC1155-_afterTokenTransfer: pass:normal[xref:token/ERC1155.adoc#ERC1155-_afterTokenTransfer-address-address-address-uint256---uint256---bytes-[`ERC1155._afterTokenTransfer`]]
|
|
:xref-ERC1155-_afterTokenTransfer-address-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155-_afterTokenTransfer-address-address-address-uint256---uint256---bytes-
|
|
:IERC1155: pass:normal[xref:token/ERC1155.adoc#IERC1155[`IERC1155`]]
|
|
:xref-IERC1155: xref:token/ERC1155.adoc#IERC1155
|
|
:IERC1155-balanceOf: pass:normal[xref:token/ERC1155.adoc#IERC1155-balanceOf-address-uint256-[`IERC1155.balanceOf`]]
|
|
:xref-IERC1155-balanceOf-address-uint256-: xref:token/ERC1155.adoc#IERC1155-balanceOf-address-uint256-
|
|
:IERC1155-balanceOfBatch: pass:normal[xref:token/ERC1155.adoc#IERC1155-balanceOfBatch-address---uint256---[`IERC1155.balanceOfBatch`]]
|
|
:xref-IERC1155-balanceOfBatch-address---uint256---: xref:token/ERC1155.adoc#IERC1155-balanceOfBatch-address---uint256---
|
|
:IERC1155-setApprovalForAll: pass:normal[xref:token/ERC1155.adoc#IERC1155-setApprovalForAll-address-bool-[`IERC1155.setApprovalForAll`]]
|
|
:xref-IERC1155-setApprovalForAll-address-bool-: xref:token/ERC1155.adoc#IERC1155-setApprovalForAll-address-bool-
|
|
:IERC1155-isApprovedForAll: pass:normal[xref:token/ERC1155.adoc#IERC1155-isApprovedForAll-address-address-[`IERC1155.isApprovedForAll`]]
|
|
:xref-IERC1155-isApprovedForAll-address-address-: xref:token/ERC1155.adoc#IERC1155-isApprovedForAll-address-address-
|
|
:IERC1155-safeTransferFrom: pass:normal[xref:token/ERC1155.adoc#IERC1155-safeTransferFrom-address-address-uint256-uint256-bytes-[`IERC1155.safeTransferFrom`]]
|
|
:xref-IERC1155-safeTransferFrom-address-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#IERC1155-safeTransferFrom-address-address-uint256-uint256-bytes-
|
|
:IERC1155-safeBatchTransferFrom: pass:normal[xref:token/ERC1155.adoc#IERC1155-safeBatchTransferFrom-address-address-uint256---uint256---bytes-[`IERC1155.safeBatchTransferFrom`]]
|
|
:xref-IERC1155-safeBatchTransferFrom-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#IERC1155-safeBatchTransferFrom-address-address-uint256---uint256---bytes-
|
|
:IERC1155-TransferSingle: pass:normal[xref:token/ERC1155.adoc#IERC1155-TransferSingle-address-address-address-uint256-uint256-[`IERC1155.TransferSingle`]]
|
|
:xref-IERC1155-TransferSingle-address-address-address-uint256-uint256-: xref:token/ERC1155.adoc#IERC1155-TransferSingle-address-address-address-uint256-uint256-
|
|
:IERC1155-TransferBatch: pass:normal[xref:token/ERC1155.adoc#IERC1155-TransferBatch-address-address-address-uint256---uint256---[`IERC1155.TransferBatch`]]
|
|
:xref-IERC1155-TransferBatch-address-address-address-uint256---uint256---: xref:token/ERC1155.adoc#IERC1155-TransferBatch-address-address-address-uint256---uint256---
|
|
:IERC1155-ApprovalForAll: pass:normal[xref:token/ERC1155.adoc#IERC1155-ApprovalForAll-address-address-bool-[`IERC1155.ApprovalForAll`]]
|
|
:xref-IERC1155-ApprovalForAll-address-address-bool-: xref:token/ERC1155.adoc#IERC1155-ApprovalForAll-address-address-bool-
|
|
:IERC1155-URI: pass:normal[xref:token/ERC1155.adoc#IERC1155-URI-string-uint256-[`IERC1155.URI`]]
|
|
:xref-IERC1155-URI-string-uint256-: xref:token/ERC1155.adoc#IERC1155-URI-string-uint256-
|
|
:IERC1155Receiver: pass:normal[xref:token/ERC1155.adoc#IERC1155Receiver[`IERC1155Receiver`]]
|
|
:xref-IERC1155Receiver: xref:token/ERC1155.adoc#IERC1155Receiver
|
|
:IERC1155Receiver-onERC1155Received: pass:normal[xref:token/ERC1155.adoc#IERC1155Receiver-onERC1155Received-address-address-uint256-uint256-bytes-[`IERC1155Receiver.onERC1155Received`]]
|
|
:xref-IERC1155Receiver-onERC1155Received-address-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#IERC1155Receiver-onERC1155Received-address-address-uint256-uint256-bytes-
|
|
:IERC1155Receiver-onERC1155BatchReceived: pass:normal[xref:token/ERC1155.adoc#IERC1155Receiver-onERC1155BatchReceived-address-address-uint256---uint256---bytes-[`IERC1155Receiver.onERC1155BatchReceived`]]
|
|
:xref-IERC1155Receiver-onERC1155BatchReceived-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#IERC1155Receiver-onERC1155BatchReceived-address-address-uint256---uint256---bytes-
|
|
:ERC1155Burnable: pass:normal[xref:token/ERC1155.adoc#ERC1155Burnable[`ERC1155Burnable`]]
|
|
:xref-ERC1155Burnable: xref:token/ERC1155.adoc#ERC1155Burnable
|
|
:ERC1155Burnable-burn: pass:normal[xref:token/ERC1155.adoc#ERC1155Burnable-burn-address-uint256-uint256-[`ERC1155Burnable.burn`]]
|
|
:xref-ERC1155Burnable-burn-address-uint256-uint256-: xref:token/ERC1155.adoc#ERC1155Burnable-burn-address-uint256-uint256-
|
|
:ERC1155Burnable-burnBatch: pass:normal[xref:token/ERC1155.adoc#ERC1155Burnable-burnBatch-address-uint256---uint256---[`ERC1155Burnable.burnBatch`]]
|
|
:xref-ERC1155Burnable-burnBatch-address-uint256---uint256---: xref:token/ERC1155.adoc#ERC1155Burnable-burnBatch-address-uint256---uint256---
|
|
:ERC1155Pausable: pass:normal[xref:token/ERC1155.adoc#ERC1155Pausable[`ERC1155Pausable`]]
|
|
:xref-ERC1155Pausable: xref:token/ERC1155.adoc#ERC1155Pausable
|
|
:ERC1155Pausable-_beforeTokenTransfer: pass:normal[xref:token/ERC1155.adoc#ERC1155Pausable-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`ERC1155Pausable._beforeTokenTransfer`]]
|
|
:xref-ERC1155Pausable-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155Pausable-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-
|
|
:ERC1155Supply: pass:normal[xref:token/ERC1155.adoc#ERC1155Supply[`ERC1155Supply`]]
|
|
:xref-ERC1155Supply: xref:token/ERC1155.adoc#ERC1155Supply
|
|
:ERC1155Supply-totalSupply: pass:normal[xref:token/ERC1155.adoc#ERC1155Supply-totalSupply-uint256-[`ERC1155Supply.totalSupply`]]
|
|
:xref-ERC1155Supply-totalSupply-uint256-: xref:token/ERC1155.adoc#ERC1155Supply-totalSupply-uint256-
|
|
:ERC1155Supply-exists: pass:normal[xref:token/ERC1155.adoc#ERC1155Supply-exists-uint256-[`ERC1155Supply.exists`]]
|
|
:xref-ERC1155Supply-exists-uint256-: xref:token/ERC1155.adoc#ERC1155Supply-exists-uint256-
|
|
:ERC1155Supply-_beforeTokenTransfer: pass:normal[xref:token/ERC1155.adoc#ERC1155Supply-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`ERC1155Supply._beforeTokenTransfer`]]
|
|
:xref-ERC1155Supply-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155Supply-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-
|
|
:ERC1155URIStorage: pass:normal[xref:token/ERC1155.adoc#ERC1155URIStorage[`ERC1155URIStorage`]]
|
|
:xref-ERC1155URIStorage: xref:token/ERC1155.adoc#ERC1155URIStorage
|
|
:ERC1155URIStorage-uri: pass:normal[xref:token/ERC1155.adoc#ERC1155URIStorage-uri-uint256-[`ERC1155URIStorage.uri`]]
|
|
:xref-ERC1155URIStorage-uri-uint256-: xref:token/ERC1155.adoc#ERC1155URIStorage-uri-uint256-
|
|
:ERC1155URIStorage-_setURI: pass:normal[xref:token/ERC1155.adoc#ERC1155URIStorage-_setURI-uint256-string-[`ERC1155URIStorage._setURI`]]
|
|
:xref-ERC1155URIStorage-_setURI-uint256-string-: xref:token/ERC1155.adoc#ERC1155URIStorage-_setURI-uint256-string-
|
|
:ERC1155URIStorage-_setBaseURI: pass:normal[xref:token/ERC1155.adoc#ERC1155URIStorage-_setBaseURI-string-[`ERC1155URIStorage._setBaseURI`]]
|
|
:xref-ERC1155URIStorage-_setBaseURI-string-: xref:token/ERC1155.adoc#ERC1155URIStorage-_setBaseURI-string-
|
|
:IERC1155MetadataURI: pass:normal[xref:token/ERC1155.adoc#IERC1155MetadataURI[`IERC1155MetadataURI`]]
|
|
:xref-IERC1155MetadataURI: xref:token/ERC1155.adoc#IERC1155MetadataURI
|
|
:IERC1155MetadataURI-uri: pass:normal[xref:token/ERC1155.adoc#IERC1155MetadataURI-uri-uint256-[`IERC1155MetadataURI.uri`]]
|
|
:xref-IERC1155MetadataURI-uri-uint256-: xref:token/ERC1155.adoc#IERC1155MetadataURI-uri-uint256-
|
|
:ERC1155Holder: pass:normal[xref:token/ERC1155.adoc#ERC1155Holder[`ERC1155Holder`]]
|
|
:xref-ERC1155Holder: xref:token/ERC1155.adoc#ERC1155Holder
|
|
:ERC1155Holder-onERC1155Received: pass:normal[xref:token/ERC1155.adoc#ERC1155Holder-onERC1155Received-address-address-uint256-uint256-bytes-[`ERC1155Holder.onERC1155Received`]]
|
|
:xref-ERC1155Holder-onERC1155Received-address-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#ERC1155Holder-onERC1155Received-address-address-uint256-uint256-bytes-
|
|
:ERC1155Holder-onERC1155BatchReceived: pass:normal[xref:token/ERC1155.adoc#ERC1155Holder-onERC1155BatchReceived-address-address-uint256---uint256---bytes-[`ERC1155Holder.onERC1155BatchReceived`]]
|
|
:xref-ERC1155Holder-onERC1155BatchReceived-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155Holder-onERC1155BatchReceived-address-address-uint256---uint256---bytes-
|
|
:ERC1155Receiver: pass:normal[xref:token/ERC1155.adoc#ERC1155Receiver[`ERC1155Receiver`]]
|
|
:xref-ERC1155Receiver: xref:token/ERC1155.adoc#ERC1155Receiver
|
|
:ERC1155Receiver-supportsInterface: pass:normal[xref:token/ERC1155.adoc#ERC1155Receiver-supportsInterface-bytes4-[`ERC1155Receiver.supportsInterface`]]
|
|
:xref-ERC1155Receiver-supportsInterface-bytes4-: xref:token/ERC1155.adoc#ERC1155Receiver-supportsInterface-bytes4-
|
|
:ERC20: pass:normal[xref:token/ERC20.adoc#ERC20[`ERC20`]]
|
|
:xref-ERC20: xref:token/ERC20.adoc#ERC20
|
|
:ERC20-constructor: pass:normal[xref:token/ERC20.adoc#ERC20-constructor-string-string-[`ERC20.constructor`]]
|
|
:xref-ERC20-constructor-string-string-: xref:token/ERC20.adoc#ERC20-constructor-string-string-
|
|
:ERC20-name: pass:normal[xref:token/ERC20.adoc#ERC20-name--[`ERC20.name`]]
|
|
:xref-ERC20-name--: xref:token/ERC20.adoc#ERC20-name--
|
|
:ERC20-symbol: pass:normal[xref:token/ERC20.adoc#ERC20-symbol--[`ERC20.symbol`]]
|
|
:xref-ERC20-symbol--: xref:token/ERC20.adoc#ERC20-symbol--
|
|
:ERC20-decimals: pass:normal[xref:token/ERC20.adoc#ERC20-decimals--[`ERC20.decimals`]]
|
|
:xref-ERC20-decimals--: xref:token/ERC20.adoc#ERC20-decimals--
|
|
:ERC20-totalSupply: pass:normal[xref:token/ERC20.adoc#ERC20-totalSupply--[`ERC20.totalSupply`]]
|
|
:xref-ERC20-totalSupply--: xref:token/ERC20.adoc#ERC20-totalSupply--
|
|
:ERC20-balanceOf: pass:normal[xref:token/ERC20.adoc#ERC20-balanceOf-address-[`ERC20.balanceOf`]]
|
|
:xref-ERC20-balanceOf-address-: xref:token/ERC20.adoc#ERC20-balanceOf-address-
|
|
:ERC20-transfer: pass:normal[xref:token/ERC20.adoc#ERC20-transfer-address-uint256-[`ERC20.transfer`]]
|
|
:xref-ERC20-transfer-address-uint256-: xref:token/ERC20.adoc#ERC20-transfer-address-uint256-
|
|
:ERC20-allowance: pass:normal[xref:token/ERC20.adoc#ERC20-allowance-address-address-[`ERC20.allowance`]]
|
|
:xref-ERC20-allowance-address-address-: xref:token/ERC20.adoc#ERC20-allowance-address-address-
|
|
:ERC20-approve: pass:normal[xref:token/ERC20.adoc#ERC20-approve-address-uint256-[`ERC20.approve`]]
|
|
:xref-ERC20-approve-address-uint256-: xref:token/ERC20.adoc#ERC20-approve-address-uint256-
|
|
:ERC20-transferFrom: pass:normal[xref:token/ERC20.adoc#ERC20-transferFrom-address-address-uint256-[`ERC20.transferFrom`]]
|
|
:xref-ERC20-transferFrom-address-address-uint256-: xref:token/ERC20.adoc#ERC20-transferFrom-address-address-uint256-
|
|
:ERC20-increaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20-increaseAllowance-address-uint256-[`ERC20.increaseAllowance`]]
|
|
:xref-ERC20-increaseAllowance-address-uint256-: xref:token/ERC20.adoc#ERC20-increaseAllowance-address-uint256-
|
|
:ERC20-decreaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20-decreaseAllowance-address-uint256-[`ERC20.decreaseAllowance`]]
|
|
:xref-ERC20-decreaseAllowance-address-uint256-: xref:token/ERC20.adoc#ERC20-decreaseAllowance-address-uint256-
|
|
:ERC20-_transfer: pass:normal[xref:token/ERC20.adoc#ERC20-_transfer-address-address-uint256-[`ERC20._transfer`]]
|
|
:xref-ERC20-_transfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20-_transfer-address-address-uint256-
|
|
:ERC20-_mint: pass:normal[xref:token/ERC20.adoc#ERC20-_mint-address-uint256-[`ERC20._mint`]]
|
|
:xref-ERC20-_mint-address-uint256-: xref:token/ERC20.adoc#ERC20-_mint-address-uint256-
|
|
:ERC20-_burn: pass:normal[xref:token/ERC20.adoc#ERC20-_burn-address-uint256-[`ERC20._burn`]]
|
|
:xref-ERC20-_burn-address-uint256-: xref:token/ERC20.adoc#ERC20-_burn-address-uint256-
|
|
:ERC20-_approve: pass:normal[xref:token/ERC20.adoc#ERC20-_approve-address-address-uint256-[`ERC20._approve`]]
|
|
:xref-ERC20-_approve-address-address-uint256-: xref:token/ERC20.adoc#ERC20-_approve-address-address-uint256-
|
|
:ERC20-_spendAllowance: pass:normal[xref:token/ERC20.adoc#ERC20-_spendAllowance-address-address-uint256-[`ERC20._spendAllowance`]]
|
|
:xref-ERC20-_spendAllowance-address-address-uint256-: xref:token/ERC20.adoc#ERC20-_spendAllowance-address-address-uint256-
|
|
:ERC20-_beforeTokenTransfer: pass:normal[xref:token/ERC20.adoc#ERC20-_beforeTokenTransfer-address-address-uint256-[`ERC20._beforeTokenTransfer`]]
|
|
:xref-ERC20-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC20-_afterTokenTransfer: pass:normal[xref:token/ERC20.adoc#ERC20-_afterTokenTransfer-address-address-uint256-[`ERC20._afterTokenTransfer`]]
|
|
:xref-ERC20-_afterTokenTransfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20-_afterTokenTransfer-address-address-uint256-
|
|
:IERC20: pass:normal[xref:token/ERC20.adoc#IERC20[`IERC20`]]
|
|
:xref-IERC20: xref:token/ERC20.adoc#IERC20
|
|
:IERC20-totalSupply: pass:normal[xref:token/ERC20.adoc#IERC20-totalSupply--[`IERC20.totalSupply`]]
|
|
:xref-IERC20-totalSupply--: xref:token/ERC20.adoc#IERC20-totalSupply--
|
|
:IERC20-balanceOf: pass:normal[xref:token/ERC20.adoc#IERC20-balanceOf-address-[`IERC20.balanceOf`]]
|
|
:xref-IERC20-balanceOf-address-: xref:token/ERC20.adoc#IERC20-balanceOf-address-
|
|
:IERC20-transfer: pass:normal[xref:token/ERC20.adoc#IERC20-transfer-address-uint256-[`IERC20.transfer`]]
|
|
:xref-IERC20-transfer-address-uint256-: xref:token/ERC20.adoc#IERC20-transfer-address-uint256-
|
|
:IERC20-allowance: pass:normal[xref:token/ERC20.adoc#IERC20-allowance-address-address-[`IERC20.allowance`]]
|
|
:xref-IERC20-allowance-address-address-: xref:token/ERC20.adoc#IERC20-allowance-address-address-
|
|
:IERC20-approve: pass:normal[xref:token/ERC20.adoc#IERC20-approve-address-uint256-[`IERC20.approve`]]
|
|
:xref-IERC20-approve-address-uint256-: xref:token/ERC20.adoc#IERC20-approve-address-uint256-
|
|
:IERC20-transferFrom: pass:normal[xref:token/ERC20.adoc#IERC20-transferFrom-address-address-uint256-[`IERC20.transferFrom`]]
|
|
:xref-IERC20-transferFrom-address-address-uint256-: xref:token/ERC20.adoc#IERC20-transferFrom-address-address-uint256-
|
|
:IERC20-Transfer: pass:normal[xref:token/ERC20.adoc#IERC20-Transfer-address-address-uint256-[`IERC20.Transfer`]]
|
|
:xref-IERC20-Transfer-address-address-uint256-: xref:token/ERC20.adoc#IERC20-Transfer-address-address-uint256-
|
|
:IERC20-Approval: pass:normal[xref:token/ERC20.adoc#IERC20-Approval-address-address-uint256-[`IERC20.Approval`]]
|
|
:xref-IERC20-Approval-address-address-uint256-: xref:token/ERC20.adoc#IERC20-Approval-address-address-uint256-
|
|
:ERC20Burnable: pass:normal[xref:token/ERC20.adoc#ERC20Burnable[`ERC20Burnable`]]
|
|
:xref-ERC20Burnable: xref:token/ERC20.adoc#ERC20Burnable
|
|
:ERC20Burnable-burn: pass:normal[xref:token/ERC20.adoc#ERC20Burnable-burn-uint256-[`ERC20Burnable.burn`]]
|
|
:xref-ERC20Burnable-burn-uint256-: xref:token/ERC20.adoc#ERC20Burnable-burn-uint256-
|
|
:ERC20Burnable-burnFrom: pass:normal[xref:token/ERC20.adoc#ERC20Burnable-burnFrom-address-uint256-[`ERC20Burnable.burnFrom`]]
|
|
:xref-ERC20Burnable-burnFrom-address-uint256-: xref:token/ERC20.adoc#ERC20Burnable-burnFrom-address-uint256-
|
|
:ERC20Capped: pass:normal[xref:token/ERC20.adoc#ERC20Capped[`ERC20Capped`]]
|
|
:xref-ERC20Capped: xref:token/ERC20.adoc#ERC20Capped
|
|
:ERC20Capped-constructor: pass:normal[xref:token/ERC20.adoc#ERC20Capped-constructor-uint256-[`ERC20Capped.constructor`]]
|
|
:xref-ERC20Capped-constructor-uint256-: xref:token/ERC20.adoc#ERC20Capped-constructor-uint256-
|
|
:ERC20Capped-cap: pass:normal[xref:token/ERC20.adoc#ERC20Capped-cap--[`ERC20Capped.cap`]]
|
|
:xref-ERC20Capped-cap--: xref:token/ERC20.adoc#ERC20Capped-cap--
|
|
:ERC20Capped-_mint: pass:normal[xref:token/ERC20.adoc#ERC20Capped-_mint-address-uint256-[`ERC20Capped._mint`]]
|
|
:xref-ERC20Capped-_mint-address-uint256-: xref:token/ERC20.adoc#ERC20Capped-_mint-address-uint256-
|
|
:ERC20FlashMint: pass:normal[xref:token/ERC20.adoc#ERC20FlashMint[`ERC20FlashMint`]]
|
|
:xref-ERC20FlashMint: xref:token/ERC20.adoc#ERC20FlashMint
|
|
:ERC20FlashMint-maxFlashLoan: pass:normal[xref:token/ERC20.adoc#ERC20FlashMint-maxFlashLoan-address-[`ERC20FlashMint.maxFlashLoan`]]
|
|
:xref-ERC20FlashMint-maxFlashLoan-address-: xref:token/ERC20.adoc#ERC20FlashMint-maxFlashLoan-address-
|
|
:ERC20FlashMint-flashFee: pass:normal[xref:token/ERC20.adoc#ERC20FlashMint-flashFee-address-uint256-[`ERC20FlashMint.flashFee`]]
|
|
:xref-ERC20FlashMint-flashFee-address-uint256-: xref:token/ERC20.adoc#ERC20FlashMint-flashFee-address-uint256-
|
|
:ERC20FlashMint-_flashFeeReceiver: pass:normal[xref:token/ERC20.adoc#ERC20FlashMint-_flashFeeReceiver--[`ERC20FlashMint._flashFeeReceiver`]]
|
|
:xref-ERC20FlashMint-_flashFeeReceiver--: xref:token/ERC20.adoc#ERC20FlashMint-_flashFeeReceiver--
|
|
:ERC20FlashMint-flashLoan: pass:normal[xref:token/ERC20.adoc#ERC20FlashMint-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-[`ERC20FlashMint.flashLoan`]]
|
|
:xref-ERC20FlashMint-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-: xref:token/ERC20.adoc#ERC20FlashMint-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-
|
|
:ERC20Pausable: pass:normal[xref:token/ERC20.adoc#ERC20Pausable[`ERC20Pausable`]]
|
|
:xref-ERC20Pausable: xref:token/ERC20.adoc#ERC20Pausable
|
|
:ERC20Pausable-_beforeTokenTransfer: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-_beforeTokenTransfer-address-address-uint256-[`ERC20Pausable._beforeTokenTransfer`]]
|
|
:xref-ERC20Pausable-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20Pausable-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC20Snapshot: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot[`ERC20Snapshot`]]
|
|
:xref-ERC20Snapshot: xref:token/ERC20.adoc#ERC20Snapshot
|
|
:ERC20Snapshot-_snapshot: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-_snapshot--[`ERC20Snapshot._snapshot`]]
|
|
:xref-ERC20Snapshot-_snapshot--: xref:token/ERC20.adoc#ERC20Snapshot-_snapshot--
|
|
:ERC20Snapshot-_getCurrentSnapshotId: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-_getCurrentSnapshotId--[`ERC20Snapshot._getCurrentSnapshotId`]]
|
|
:xref-ERC20Snapshot-_getCurrentSnapshotId--: xref:token/ERC20.adoc#ERC20Snapshot-_getCurrentSnapshotId--
|
|
:ERC20Snapshot-balanceOfAt: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-balanceOfAt-address-uint256-[`ERC20Snapshot.balanceOfAt`]]
|
|
:xref-ERC20Snapshot-balanceOfAt-address-uint256-: xref:token/ERC20.adoc#ERC20Snapshot-balanceOfAt-address-uint256-
|
|
:ERC20Snapshot-totalSupplyAt: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-totalSupplyAt-uint256-[`ERC20Snapshot.totalSupplyAt`]]
|
|
:xref-ERC20Snapshot-totalSupplyAt-uint256-: xref:token/ERC20.adoc#ERC20Snapshot-totalSupplyAt-uint256-
|
|
:ERC20Snapshot-_beforeTokenTransfer: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-_beforeTokenTransfer-address-address-uint256-[`ERC20Snapshot._beforeTokenTransfer`]]
|
|
:xref-ERC20Snapshot-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20Snapshot-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC20Snapshot-Snapshot: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-Snapshot-uint256-[`ERC20Snapshot.Snapshot`]]
|
|
:xref-ERC20Snapshot-Snapshot-uint256-: xref:token/ERC20.adoc#ERC20Snapshot-Snapshot-uint256-
|
|
:ERC20Snapshot-Snapshots: pass:normal[xref:token/ERC20.adoc#ERC20Snapshot-Snapshots[`ERC20Snapshot.Snapshots`]]
|
|
:xref-ERC20Snapshot-Snapshots: xref:token/ERC20.adoc#ERC20Snapshot-Snapshots
|
|
:ERC20Votes: pass:normal[xref:token/ERC20.adoc#ERC20Votes[`ERC20Votes`]]
|
|
:xref-ERC20Votes: xref:token/ERC20.adoc#ERC20Votes
|
|
:ERC20Votes-checkpoints: pass:normal[xref:token/ERC20.adoc#ERC20Votes-checkpoints-address-uint32-[`ERC20Votes.checkpoints`]]
|
|
:xref-ERC20Votes-checkpoints-address-uint32-: xref:token/ERC20.adoc#ERC20Votes-checkpoints-address-uint32-
|
|
:ERC20Votes-numCheckpoints: pass:normal[xref:token/ERC20.adoc#ERC20Votes-numCheckpoints-address-[`ERC20Votes.numCheckpoints`]]
|
|
:xref-ERC20Votes-numCheckpoints-address-: xref:token/ERC20.adoc#ERC20Votes-numCheckpoints-address-
|
|
:ERC20Votes-delegates: pass:normal[xref:token/ERC20.adoc#ERC20Votes-delegates-address-[`ERC20Votes.delegates`]]
|
|
:xref-ERC20Votes-delegates-address-: xref:token/ERC20.adoc#ERC20Votes-delegates-address-
|
|
:ERC20Votes-getVotes: pass:normal[xref:token/ERC20.adoc#ERC20Votes-getVotes-address-[`ERC20Votes.getVotes`]]
|
|
:xref-ERC20Votes-getVotes-address-: xref:token/ERC20.adoc#ERC20Votes-getVotes-address-
|
|
:ERC20Votes-getPastVotes: pass:normal[xref:token/ERC20.adoc#ERC20Votes-getPastVotes-address-uint256-[`ERC20Votes.getPastVotes`]]
|
|
:xref-ERC20Votes-getPastVotes-address-uint256-: xref:token/ERC20.adoc#ERC20Votes-getPastVotes-address-uint256-
|
|
:ERC20Votes-getPastTotalSupply: pass:normal[xref:token/ERC20.adoc#ERC20Votes-getPastTotalSupply-uint256-[`ERC20Votes.getPastTotalSupply`]]
|
|
:xref-ERC20Votes-getPastTotalSupply-uint256-: xref:token/ERC20.adoc#ERC20Votes-getPastTotalSupply-uint256-
|
|
:ERC20Votes-delegate: pass:normal[xref:token/ERC20.adoc#ERC20Votes-delegate-address-[`ERC20Votes.delegate`]]
|
|
:xref-ERC20Votes-delegate-address-: xref:token/ERC20.adoc#ERC20Votes-delegate-address-
|
|
:ERC20Votes-delegateBySig: pass:normal[xref:token/ERC20.adoc#ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-[`ERC20Votes.delegateBySig`]]
|
|
:xref-ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-: xref:token/ERC20.adoc#ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-
|
|
:ERC20Votes-_maxSupply: pass:normal[xref:token/ERC20.adoc#ERC20Votes-_maxSupply--[`ERC20Votes._maxSupply`]]
|
|
:xref-ERC20Votes-_maxSupply--: xref:token/ERC20.adoc#ERC20Votes-_maxSupply--
|
|
:ERC20Votes-_mint: pass:normal[xref:token/ERC20.adoc#ERC20Votes-_mint-address-uint256-[`ERC20Votes._mint`]]
|
|
:xref-ERC20Votes-_mint-address-uint256-: xref:token/ERC20.adoc#ERC20Votes-_mint-address-uint256-
|
|
:ERC20Votes-_burn: pass:normal[xref:token/ERC20.adoc#ERC20Votes-_burn-address-uint256-[`ERC20Votes._burn`]]
|
|
:xref-ERC20Votes-_burn-address-uint256-: xref:token/ERC20.adoc#ERC20Votes-_burn-address-uint256-
|
|
:ERC20Votes-_afterTokenTransfer: pass:normal[xref:token/ERC20.adoc#ERC20Votes-_afterTokenTransfer-address-address-uint256-[`ERC20Votes._afterTokenTransfer`]]
|
|
:xref-ERC20Votes-_afterTokenTransfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20Votes-_afterTokenTransfer-address-address-uint256-
|
|
:ERC20Votes-_delegate: pass:normal[xref:token/ERC20.adoc#ERC20Votes-_delegate-address-address-[`ERC20Votes._delegate`]]
|
|
:xref-ERC20Votes-_delegate-address-address-: xref:token/ERC20.adoc#ERC20Votes-_delegate-address-address-
|
|
:ERC20Votes-Checkpoint: pass:normal[xref:token/ERC20.adoc#ERC20Votes-Checkpoint[`ERC20Votes.Checkpoint`]]
|
|
:xref-ERC20Votes-Checkpoint: xref:token/ERC20.adoc#ERC20Votes-Checkpoint
|
|
:ERC20VotesComp: pass:normal[xref:token/ERC20.adoc#ERC20VotesComp[`ERC20VotesComp`]]
|
|
:xref-ERC20VotesComp: xref:token/ERC20.adoc#ERC20VotesComp
|
|
:ERC20VotesComp-getCurrentVotes: pass:normal[xref:token/ERC20.adoc#ERC20VotesComp-getCurrentVotes-address-[`ERC20VotesComp.getCurrentVotes`]]
|
|
:xref-ERC20VotesComp-getCurrentVotes-address-: xref:token/ERC20.adoc#ERC20VotesComp-getCurrentVotes-address-
|
|
:ERC20VotesComp-getPriorVotes: pass:normal[xref:token/ERC20.adoc#ERC20VotesComp-getPriorVotes-address-uint256-[`ERC20VotesComp.getPriorVotes`]]
|
|
:xref-ERC20VotesComp-getPriorVotes-address-uint256-: xref:token/ERC20.adoc#ERC20VotesComp-getPriorVotes-address-uint256-
|
|
:ERC20VotesComp-_maxSupply: pass:normal[xref:token/ERC20.adoc#ERC20VotesComp-_maxSupply--[`ERC20VotesComp._maxSupply`]]
|
|
:xref-ERC20VotesComp-_maxSupply--: xref:token/ERC20.adoc#ERC20VotesComp-_maxSupply--
|
|
:ERC20Wrapper: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper[`ERC20Wrapper`]]
|
|
:xref-ERC20Wrapper: xref:token/ERC20.adoc#ERC20Wrapper
|
|
:ERC20Wrapper-underlying: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper-underlying-contract-IERC20[`ERC20Wrapper.underlying`]]
|
|
:xref-ERC20Wrapper-underlying-contract-IERC20: xref:token/ERC20.adoc#ERC20Wrapper-underlying-contract-IERC20
|
|
:ERC20Wrapper-constructor: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper-constructor-contract-IERC20-[`ERC20Wrapper.constructor`]]
|
|
:xref-ERC20Wrapper-constructor-contract-IERC20-: xref:token/ERC20.adoc#ERC20Wrapper-constructor-contract-IERC20-
|
|
:ERC20Wrapper-decimals: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper-decimals--[`ERC20Wrapper.decimals`]]
|
|
:xref-ERC20Wrapper-decimals--: xref:token/ERC20.adoc#ERC20Wrapper-decimals--
|
|
:ERC20Wrapper-depositFor: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper-depositFor-address-uint256-[`ERC20Wrapper.depositFor`]]
|
|
:xref-ERC20Wrapper-depositFor-address-uint256-: xref:token/ERC20.adoc#ERC20Wrapper-depositFor-address-uint256-
|
|
:ERC20Wrapper-withdrawTo: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper-withdrawTo-address-uint256-[`ERC20Wrapper.withdrawTo`]]
|
|
:xref-ERC20Wrapper-withdrawTo-address-uint256-: xref:token/ERC20.adoc#ERC20Wrapper-withdrawTo-address-uint256-
|
|
:ERC20Wrapper-_recover: pass:normal[xref:token/ERC20.adoc#ERC20Wrapper-_recover-address-[`ERC20Wrapper._recover`]]
|
|
:xref-ERC20Wrapper-_recover-address-: xref:token/ERC20.adoc#ERC20Wrapper-_recover-address-
|
|
:ERC4626: pass:normal[xref:token/ERC20.adoc#ERC4626[`ERC4626`]]
|
|
:xref-ERC4626: xref:token/ERC20.adoc#ERC4626
|
|
:ERC4626-constructor: pass:normal[xref:token/ERC20.adoc#ERC4626-constructor-contract-IERC20Metadata-[`ERC4626.constructor`]]
|
|
:xref-ERC4626-constructor-contract-IERC20Metadata-: xref:token/ERC20.adoc#ERC4626-constructor-contract-IERC20Metadata-
|
|
:ERC4626-asset: pass:normal[xref:token/ERC20.adoc#ERC4626-asset--[`ERC4626.asset`]]
|
|
:xref-ERC4626-asset--: xref:token/ERC20.adoc#ERC4626-asset--
|
|
:ERC4626-totalAssets: pass:normal[xref:token/ERC20.adoc#ERC4626-totalAssets--[`ERC4626.totalAssets`]]
|
|
:xref-ERC4626-totalAssets--: xref:token/ERC20.adoc#ERC4626-totalAssets--
|
|
:ERC4626-convertToShares: pass:normal[xref:token/ERC20.adoc#ERC4626-convertToShares-uint256-[`ERC4626.convertToShares`]]
|
|
:xref-ERC4626-convertToShares-uint256-: xref:token/ERC20.adoc#ERC4626-convertToShares-uint256-
|
|
:ERC4626-convertToAssets: pass:normal[xref:token/ERC20.adoc#ERC4626-convertToAssets-uint256-[`ERC4626.convertToAssets`]]
|
|
:xref-ERC4626-convertToAssets-uint256-: xref:token/ERC20.adoc#ERC4626-convertToAssets-uint256-
|
|
:ERC4626-maxDeposit: pass:normal[xref:token/ERC20.adoc#ERC4626-maxDeposit-address-[`ERC4626.maxDeposit`]]
|
|
:xref-ERC4626-maxDeposit-address-: xref:token/ERC20.adoc#ERC4626-maxDeposit-address-
|
|
:ERC4626-maxMint: pass:normal[xref:token/ERC20.adoc#ERC4626-maxMint-address-[`ERC4626.maxMint`]]
|
|
:xref-ERC4626-maxMint-address-: xref:token/ERC20.adoc#ERC4626-maxMint-address-
|
|
:ERC4626-maxWithdraw: pass:normal[xref:token/ERC20.adoc#ERC4626-maxWithdraw-address-[`ERC4626.maxWithdraw`]]
|
|
:xref-ERC4626-maxWithdraw-address-: xref:token/ERC20.adoc#ERC4626-maxWithdraw-address-
|
|
:ERC4626-maxRedeem: pass:normal[xref:token/ERC20.adoc#ERC4626-maxRedeem-address-[`ERC4626.maxRedeem`]]
|
|
:xref-ERC4626-maxRedeem-address-: xref:token/ERC20.adoc#ERC4626-maxRedeem-address-
|
|
:ERC4626-previewDeposit: pass:normal[xref:token/ERC20.adoc#ERC4626-previewDeposit-uint256-[`ERC4626.previewDeposit`]]
|
|
:xref-ERC4626-previewDeposit-uint256-: xref:token/ERC20.adoc#ERC4626-previewDeposit-uint256-
|
|
:ERC4626-previewMint: pass:normal[xref:token/ERC20.adoc#ERC4626-previewMint-uint256-[`ERC4626.previewMint`]]
|
|
:xref-ERC4626-previewMint-uint256-: xref:token/ERC20.adoc#ERC4626-previewMint-uint256-
|
|
:ERC4626-previewWithdraw: pass:normal[xref:token/ERC20.adoc#ERC4626-previewWithdraw-uint256-[`ERC4626.previewWithdraw`]]
|
|
:xref-ERC4626-previewWithdraw-uint256-: xref:token/ERC20.adoc#ERC4626-previewWithdraw-uint256-
|
|
:ERC4626-previewRedeem: pass:normal[xref:token/ERC20.adoc#ERC4626-previewRedeem-uint256-[`ERC4626.previewRedeem`]]
|
|
:xref-ERC4626-previewRedeem-uint256-: xref:token/ERC20.adoc#ERC4626-previewRedeem-uint256-
|
|
:ERC4626-deposit: pass:normal[xref:token/ERC20.adoc#ERC4626-deposit-uint256-address-[`ERC4626.deposit`]]
|
|
:xref-ERC4626-deposit-uint256-address-: xref:token/ERC20.adoc#ERC4626-deposit-uint256-address-
|
|
:ERC4626-mint: pass:normal[xref:token/ERC20.adoc#ERC4626-mint-uint256-address-[`ERC4626.mint`]]
|
|
:xref-ERC4626-mint-uint256-address-: xref:token/ERC20.adoc#ERC4626-mint-uint256-address-
|
|
:ERC4626-withdraw: pass:normal[xref:token/ERC20.adoc#ERC4626-withdraw-uint256-address-address-[`ERC4626.withdraw`]]
|
|
:xref-ERC4626-withdraw-uint256-address-address-: xref:token/ERC20.adoc#ERC4626-withdraw-uint256-address-address-
|
|
:ERC4626-redeem: pass:normal[xref:token/ERC20.adoc#ERC4626-redeem-uint256-address-address-[`ERC4626.redeem`]]
|
|
:xref-ERC4626-redeem-uint256-address-address-: xref:token/ERC20.adoc#ERC4626-redeem-uint256-address-address-
|
|
:ERC4626-_convertToShares: pass:normal[xref:token/ERC20.adoc#ERC4626-_convertToShares-uint256-enum-Math-Rounding-[`ERC4626._convertToShares`]]
|
|
:xref-ERC4626-_convertToShares-uint256-enum-Math-Rounding-: xref:token/ERC20.adoc#ERC4626-_convertToShares-uint256-enum-Math-Rounding-
|
|
:ERC4626-_convertToAssets: pass:normal[xref:token/ERC20.adoc#ERC4626-_convertToAssets-uint256-enum-Math-Rounding-[`ERC4626._convertToAssets`]]
|
|
:xref-ERC4626-_convertToAssets-uint256-enum-Math-Rounding-: xref:token/ERC20.adoc#ERC4626-_convertToAssets-uint256-enum-Math-Rounding-
|
|
:ERC4626-_deposit: pass:normal[xref:token/ERC20.adoc#ERC4626-_deposit-address-address-uint256-uint256-[`ERC4626._deposit`]]
|
|
:xref-ERC4626-_deposit-address-address-uint256-uint256-: xref:token/ERC20.adoc#ERC4626-_deposit-address-address-uint256-uint256-
|
|
:ERC4626-_withdraw: pass:normal[xref:token/ERC20.adoc#ERC4626-_withdraw-address-address-address-uint256-uint256-[`ERC4626._withdraw`]]
|
|
:xref-ERC4626-_withdraw-address-address-address-uint256-uint256-: xref:token/ERC20.adoc#ERC4626-_withdraw-address-address-address-uint256-uint256-
|
|
:IERC20Metadata: pass:normal[xref:token/ERC20.adoc#IERC20Metadata[`IERC20Metadata`]]
|
|
:xref-IERC20Metadata: xref:token/ERC20.adoc#IERC20Metadata
|
|
:IERC20Metadata-name: pass:normal[xref:token/ERC20.adoc#IERC20Metadata-name--[`IERC20Metadata.name`]]
|
|
:xref-IERC20Metadata-name--: xref:token/ERC20.adoc#IERC20Metadata-name--
|
|
:IERC20Metadata-symbol: pass:normal[xref:token/ERC20.adoc#IERC20Metadata-symbol--[`IERC20Metadata.symbol`]]
|
|
:xref-IERC20Metadata-symbol--: xref:token/ERC20.adoc#IERC20Metadata-symbol--
|
|
:IERC20Metadata-decimals: pass:normal[xref:token/ERC20.adoc#IERC20Metadata-decimals--[`IERC20Metadata.decimals`]]
|
|
:xref-IERC20Metadata-decimals--: xref:token/ERC20.adoc#IERC20Metadata-decimals--
|
|
:ERC20Permit: pass:normal[xref:token/ERC20.adoc#ERC20Permit[`ERC20Permit`]]
|
|
:xref-ERC20Permit: xref:token/ERC20.adoc#ERC20Permit
|
|
:ERC20Permit-constructor: pass:normal[xref:token/ERC20.adoc#ERC20Permit-constructor-string-[`ERC20Permit.constructor`]]
|
|
:xref-ERC20Permit-constructor-string-: xref:token/ERC20.adoc#ERC20Permit-constructor-string-
|
|
:ERC20Permit-permit: pass:normal[xref:token/ERC20.adoc#ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-[`ERC20Permit.permit`]]
|
|
:xref-ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-: xref:token/ERC20.adoc#ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-
|
|
:ERC20Permit-nonces: pass:normal[xref:token/ERC20.adoc#ERC20Permit-nonces-address-[`ERC20Permit.nonces`]]
|
|
:xref-ERC20Permit-nonces-address-: xref:token/ERC20.adoc#ERC20Permit-nonces-address-
|
|
:ERC20Permit-DOMAIN_SEPARATOR: pass:normal[xref:token/ERC20.adoc#ERC20Permit-DOMAIN_SEPARATOR--[`ERC20Permit.DOMAIN_SEPARATOR`]]
|
|
:xref-ERC20Permit-DOMAIN_SEPARATOR--: xref:token/ERC20.adoc#ERC20Permit-DOMAIN_SEPARATOR--
|
|
:ERC20Permit-_useNonce: pass:normal[xref:token/ERC20.adoc#ERC20Permit-_useNonce-address-[`ERC20Permit._useNonce`]]
|
|
:xref-ERC20Permit-_useNonce-address-: xref:token/ERC20.adoc#ERC20Permit-_useNonce-address-
|
|
:IERC20Permit: pass:normal[xref:token/ERC20.adoc#IERC20Permit[`IERC20Permit`]]
|
|
:xref-IERC20Permit: xref:token/ERC20.adoc#IERC20Permit
|
|
:IERC20Permit-permit: pass:normal[xref:token/ERC20.adoc#IERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-[`IERC20Permit.permit`]]
|
|
:xref-IERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-: xref:token/ERC20.adoc#IERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-
|
|
:IERC20Permit-nonces: pass:normal[xref:token/ERC20.adoc#IERC20Permit-nonces-address-[`IERC20Permit.nonces`]]
|
|
:xref-IERC20Permit-nonces-address-: xref:token/ERC20.adoc#IERC20Permit-nonces-address-
|
|
:IERC20Permit-DOMAIN_SEPARATOR: pass:normal[xref:token/ERC20.adoc#IERC20Permit-DOMAIN_SEPARATOR--[`IERC20Permit.DOMAIN_SEPARATOR`]]
|
|
:xref-IERC20Permit-DOMAIN_SEPARATOR--: xref:token/ERC20.adoc#IERC20Permit-DOMAIN_SEPARATOR--
|
|
:SafeERC20: pass:normal[xref:token/ERC20.adoc#SafeERC20[`SafeERC20`]]
|
|
:xref-SafeERC20: xref:token/ERC20.adoc#SafeERC20
|
|
:SafeERC20-safeTransfer: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeTransfer-contract-IERC20-address-uint256-[`SafeERC20.safeTransfer`]]
|
|
:xref-SafeERC20-safeTransfer-contract-IERC20-address-uint256-: xref:token/ERC20.adoc#SafeERC20-safeTransfer-contract-IERC20-address-uint256-
|
|
:SafeERC20-safeTransferFrom: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-[`SafeERC20.safeTransferFrom`]]
|
|
:xref-SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-: xref:token/ERC20.adoc#SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-
|
|
:SafeERC20-safeApprove: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeApprove-contract-IERC20-address-uint256-[`SafeERC20.safeApprove`]]
|
|
:xref-SafeERC20-safeApprove-contract-IERC20-address-uint256-: xref:token/ERC20.adoc#SafeERC20-safeApprove-contract-IERC20-address-uint256-
|
|
:SafeERC20-safeIncreaseAllowance: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-[`SafeERC20.safeIncreaseAllowance`]]
|
|
:xref-SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-: xref:token/ERC20.adoc#SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-
|
|
:SafeERC20-safeDecreaseAllowance: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-[`SafeERC20.safeDecreaseAllowance`]]
|
|
:xref-SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-: xref:token/ERC20.adoc#SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-
|
|
:SafeERC20-safePermit: pass:normal[xref:token/ERC20.adoc#SafeERC20-safePermit-contract-IERC20Permit-address-address-uint256-uint256-uint8-bytes32-bytes32-[`SafeERC20.safePermit`]]
|
|
:xref-SafeERC20-safePermit-contract-IERC20Permit-address-address-uint256-uint256-uint8-bytes32-bytes32-: xref:token/ERC20.adoc#SafeERC20-safePermit-contract-IERC20Permit-address-address-uint256-uint256-uint8-bytes32-bytes32-
|
|
:TokenTimelock: pass:normal[xref:token/ERC20.adoc#TokenTimelock[`TokenTimelock`]]
|
|
:xref-TokenTimelock: xref:token/ERC20.adoc#TokenTimelock
|
|
:TokenTimelock-constructor: pass:normal[xref:token/ERC20.adoc#TokenTimelock-constructor-contract-IERC20-address-uint256-[`TokenTimelock.constructor`]]
|
|
:xref-TokenTimelock-constructor-contract-IERC20-address-uint256-: xref:token/ERC20.adoc#TokenTimelock-constructor-contract-IERC20-address-uint256-
|
|
:TokenTimelock-token: pass:normal[xref:token/ERC20.adoc#TokenTimelock-token--[`TokenTimelock.token`]]
|
|
:xref-TokenTimelock-token--: xref:token/ERC20.adoc#TokenTimelock-token--
|
|
:TokenTimelock-beneficiary: pass:normal[xref:token/ERC20.adoc#TokenTimelock-beneficiary--[`TokenTimelock.beneficiary`]]
|
|
:xref-TokenTimelock-beneficiary--: xref:token/ERC20.adoc#TokenTimelock-beneficiary--
|
|
:TokenTimelock-releaseTime: pass:normal[xref:token/ERC20.adoc#TokenTimelock-releaseTime--[`TokenTimelock.releaseTime`]]
|
|
:xref-TokenTimelock-releaseTime--: xref:token/ERC20.adoc#TokenTimelock-releaseTime--
|
|
:TokenTimelock-release: pass:normal[xref:token/ERC20.adoc#TokenTimelock-release--[`TokenTimelock.release`]]
|
|
:xref-TokenTimelock-release--: xref:token/ERC20.adoc#TokenTimelock-release--
|
|
:ERC721: pass:normal[xref:token/ERC721.adoc#ERC721[`ERC721`]]
|
|
:xref-ERC721: xref:token/ERC721.adoc#ERC721
|
|
:ERC721-constructor: pass:normal[xref:token/ERC721.adoc#ERC721-constructor-string-string-[`ERC721.constructor`]]
|
|
:xref-ERC721-constructor-string-string-: xref:token/ERC721.adoc#ERC721-constructor-string-string-
|
|
:ERC721-supportsInterface: pass:normal[xref:token/ERC721.adoc#ERC721-supportsInterface-bytes4-[`ERC721.supportsInterface`]]
|
|
:xref-ERC721-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721-supportsInterface-bytes4-
|
|
:ERC721-balanceOf: pass:normal[xref:token/ERC721.adoc#ERC721-balanceOf-address-[`ERC721.balanceOf`]]
|
|
:xref-ERC721-balanceOf-address-: xref:token/ERC721.adoc#ERC721-balanceOf-address-
|
|
:ERC721-ownerOf: pass:normal[xref:token/ERC721.adoc#ERC721-ownerOf-uint256-[`ERC721.ownerOf`]]
|
|
:xref-ERC721-ownerOf-uint256-: xref:token/ERC721.adoc#ERC721-ownerOf-uint256-
|
|
:ERC721-name: pass:normal[xref:token/ERC721.adoc#ERC721-name--[`ERC721.name`]]
|
|
:xref-ERC721-name--: xref:token/ERC721.adoc#ERC721-name--
|
|
:ERC721-symbol: pass:normal[xref:token/ERC721.adoc#ERC721-symbol--[`ERC721.symbol`]]
|
|
:xref-ERC721-symbol--: xref:token/ERC721.adoc#ERC721-symbol--
|
|
:ERC721-tokenURI: pass:normal[xref:token/ERC721.adoc#ERC721-tokenURI-uint256-[`ERC721.tokenURI`]]
|
|
:xref-ERC721-tokenURI-uint256-: xref:token/ERC721.adoc#ERC721-tokenURI-uint256-
|
|
:ERC721-_baseURI: pass:normal[xref:token/ERC721.adoc#ERC721-_baseURI--[`ERC721._baseURI`]]
|
|
:xref-ERC721-_baseURI--: xref:token/ERC721.adoc#ERC721-_baseURI--
|
|
:ERC721-approve: pass:normal[xref:token/ERC721.adoc#ERC721-approve-address-uint256-[`ERC721.approve`]]
|
|
:xref-ERC721-approve-address-uint256-: xref:token/ERC721.adoc#ERC721-approve-address-uint256-
|
|
:ERC721-getApproved: pass:normal[xref:token/ERC721.adoc#ERC721-getApproved-uint256-[`ERC721.getApproved`]]
|
|
:xref-ERC721-getApproved-uint256-: xref:token/ERC721.adoc#ERC721-getApproved-uint256-
|
|
:ERC721-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#ERC721-setApprovalForAll-address-bool-[`ERC721.setApprovalForAll`]]
|
|
:xref-ERC721-setApprovalForAll-address-bool-: xref:token/ERC721.adoc#ERC721-setApprovalForAll-address-bool-
|
|
:ERC721-isApprovedForAll: pass:normal[xref:token/ERC721.adoc#ERC721-isApprovedForAll-address-address-[`ERC721.isApprovedForAll`]]
|
|
:xref-ERC721-isApprovedForAll-address-address-: xref:token/ERC721.adoc#ERC721-isApprovedForAll-address-address-
|
|
:ERC721-transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-transferFrom-address-address-uint256-[`ERC721.transferFrom`]]
|
|
:xref-ERC721-transferFrom-address-address-uint256-: xref:token/ERC721.adoc#ERC721-transferFrom-address-address-uint256-
|
|
:ERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-[`ERC721.safeTransferFrom`]]
|
|
:xref-ERC721-safeTransferFrom-address-address-uint256-: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-
|
|
:ERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-bytes-[`ERC721.safeTransferFrom`]]
|
|
:xref-ERC721-safeTransferFrom-address-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-bytes-
|
|
:ERC721-_safeTransfer: pass:normal[xref:token/ERC721.adoc#ERC721-_safeTransfer-address-address-uint256-bytes-[`ERC721._safeTransfer`]]
|
|
:xref-ERC721-_safeTransfer-address-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721-_safeTransfer-address-address-uint256-bytes-
|
|
:ERC721-_exists: pass:normal[xref:token/ERC721.adoc#ERC721-_exists-uint256-[`ERC721._exists`]]
|
|
:xref-ERC721-_exists-uint256-: xref:token/ERC721.adoc#ERC721-_exists-uint256-
|
|
:ERC721-_isApprovedOrOwner: pass:normal[xref:token/ERC721.adoc#ERC721-_isApprovedOrOwner-address-uint256-[`ERC721._isApprovedOrOwner`]]
|
|
:xref-ERC721-_isApprovedOrOwner-address-uint256-: xref:token/ERC721.adoc#ERC721-_isApprovedOrOwner-address-uint256-
|
|
:ERC721-_safeMint: pass:normal[xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-[`ERC721._safeMint`]]
|
|
:xref-ERC721-_safeMint-address-uint256-: xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-
|
|
:ERC721-_safeMint: pass:normal[xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-bytes-[`ERC721._safeMint`]]
|
|
:xref-ERC721-_safeMint-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-bytes-
|
|
:ERC721-_mint: pass:normal[xref:token/ERC721.adoc#ERC721-_mint-address-uint256-[`ERC721._mint`]]
|
|
:xref-ERC721-_mint-address-uint256-: xref:token/ERC721.adoc#ERC721-_mint-address-uint256-
|
|
:ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-uint256-[`ERC721._burn`]]
|
|
:xref-ERC721-_burn-uint256-: xref:token/ERC721.adoc#ERC721-_burn-uint256-
|
|
:ERC721-_transfer: pass:normal[xref:token/ERC721.adoc#ERC721-_transfer-address-address-uint256-[`ERC721._transfer`]]
|
|
:xref-ERC721-_transfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721-_transfer-address-address-uint256-
|
|
:ERC721-_approve: pass:normal[xref:token/ERC721.adoc#ERC721-_approve-address-uint256-[`ERC721._approve`]]
|
|
:xref-ERC721-_approve-address-uint256-: xref:token/ERC721.adoc#ERC721-_approve-address-uint256-
|
|
:ERC721-_setApprovalForAll: pass:normal[xref:token/ERC721.adoc#ERC721-_setApprovalForAll-address-address-bool-[`ERC721._setApprovalForAll`]]
|
|
:xref-ERC721-_setApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#ERC721-_setApprovalForAll-address-address-bool-
|
|
:ERC721-_requireMinted: pass:normal[xref:token/ERC721.adoc#ERC721-_requireMinted-uint256-[`ERC721._requireMinted`]]
|
|
:xref-ERC721-_requireMinted-uint256-: xref:token/ERC721.adoc#ERC721-_requireMinted-uint256-
|
|
:ERC721-_beforeTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721-_beforeTokenTransfer-address-address-uint256-[`ERC721._beforeTokenTransfer`]]
|
|
:xref-ERC721-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC721-_afterTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721-_afterTokenTransfer-address-address-uint256-[`ERC721._afterTokenTransfer`]]
|
|
:xref-ERC721-_afterTokenTransfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721-_afterTokenTransfer-address-address-uint256-
|
|
:IERC721: pass:normal[xref:token/ERC721.adoc#IERC721[`IERC721`]]
|
|
:xref-IERC721: xref:token/ERC721.adoc#IERC721
|
|
:IERC721-balanceOf: pass:normal[xref:token/ERC721.adoc#IERC721-balanceOf-address-[`IERC721.balanceOf`]]
|
|
:xref-IERC721-balanceOf-address-: xref:token/ERC721.adoc#IERC721-balanceOf-address-
|
|
:IERC721-ownerOf: pass:normal[xref:token/ERC721.adoc#IERC721-ownerOf-uint256-[`IERC721.ownerOf`]]
|
|
:xref-IERC721-ownerOf-uint256-: xref:token/ERC721.adoc#IERC721-ownerOf-uint256-
|
|
:IERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-bytes-[`IERC721.safeTransferFrom`]]
|
|
:xref-IERC721-safeTransferFrom-address-address-uint256-bytes-: xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-bytes-
|
|
:IERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-[`IERC721.safeTransferFrom`]]
|
|
:xref-IERC721-safeTransferFrom-address-address-uint256-: xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-
|
|
:IERC721-transferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-transferFrom-address-address-uint256-[`IERC721.transferFrom`]]
|
|
:xref-IERC721-transferFrom-address-address-uint256-: xref:token/ERC721.adoc#IERC721-transferFrom-address-address-uint256-
|
|
:IERC721-approve: pass:normal[xref:token/ERC721.adoc#IERC721-approve-address-uint256-[`IERC721.approve`]]
|
|
:xref-IERC721-approve-address-uint256-: xref:token/ERC721.adoc#IERC721-approve-address-uint256-
|
|
:IERC721-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#IERC721-setApprovalForAll-address-bool-[`IERC721.setApprovalForAll`]]
|
|
:xref-IERC721-setApprovalForAll-address-bool-: xref:token/ERC721.adoc#IERC721-setApprovalForAll-address-bool-
|
|
:IERC721-getApproved: pass:normal[xref:token/ERC721.adoc#IERC721-getApproved-uint256-[`IERC721.getApproved`]]
|
|
:xref-IERC721-getApproved-uint256-: xref:token/ERC721.adoc#IERC721-getApproved-uint256-
|
|
:IERC721-isApprovedForAll: pass:normal[xref:token/ERC721.adoc#IERC721-isApprovedForAll-address-address-[`IERC721.isApprovedForAll`]]
|
|
:xref-IERC721-isApprovedForAll-address-address-: xref:token/ERC721.adoc#IERC721-isApprovedForAll-address-address-
|
|
:IERC721-Transfer: pass:normal[xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-[`IERC721.Transfer`]]
|
|
:xref-IERC721-Transfer-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-
|
|
:IERC721-Approval: pass:normal[xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-[`IERC721.Approval`]]
|
|
:xref-IERC721-Approval-address-address-uint256-: xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-
|
|
:IERC721-ApprovalForAll: pass:normal[xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-[`IERC721.ApprovalForAll`]]
|
|
:xref-IERC721-ApprovalForAll-address-address-bool-: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
|
|
:IERC721Receiver: pass:normal[xref:token/ERC721.adoc#IERC721Receiver[`IERC721Receiver`]]
|
|
:xref-IERC721Receiver: xref:token/ERC721.adoc#IERC721Receiver
|
|
:IERC721Receiver-onERC721Received: pass:normal[xref:token/ERC721.adoc#IERC721Receiver-onERC721Received-address-address-uint256-bytes-[`IERC721Receiver.onERC721Received`]]
|
|
:xref-IERC721Receiver-onERC721Received-address-address-uint256-bytes-: xref:token/ERC721.adoc#IERC721Receiver-onERC721Received-address-address-uint256-bytes-
|
|
:ERC721Burnable: pass:normal[xref:token/ERC721.adoc#ERC721Burnable[`ERC721Burnable`]]
|
|
:xref-ERC721Burnable: xref:token/ERC721.adoc#ERC721Burnable
|
|
:ERC721Burnable-burn: pass:normal[xref:token/ERC721.adoc#ERC721Burnable-burn-uint256-[`ERC721Burnable.burn`]]
|
|
:xref-ERC721Burnable-burn-uint256-: xref:token/ERC721.adoc#ERC721Burnable-burn-uint256-
|
|
:ERC721Enumerable: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable[`ERC721Enumerable`]]
|
|
:xref-ERC721Enumerable: xref:token/ERC721.adoc#ERC721Enumerable
|
|
:ERC721Enumerable-supportsInterface: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-supportsInterface-bytes4-[`ERC721Enumerable.supportsInterface`]]
|
|
:xref-ERC721Enumerable-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721Enumerable-supportsInterface-bytes4-
|
|
:ERC721Enumerable-tokenOfOwnerByIndex: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`ERC721Enumerable.tokenOfOwnerByIndex`]]
|
|
:xref-ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-: xref:token/ERC721.adoc#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-
|
|
:ERC721Enumerable-totalSupply: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-totalSupply--[`ERC721Enumerable.totalSupply`]]
|
|
:xref-ERC721Enumerable-totalSupply--: xref:token/ERC721.adoc#ERC721Enumerable-totalSupply--
|
|
:ERC721Enumerable-tokenByIndex: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-tokenByIndex-uint256-[`ERC721Enumerable.tokenByIndex`]]
|
|
:xref-ERC721Enumerable-tokenByIndex-uint256-: xref:token/ERC721.adoc#ERC721Enumerable-tokenByIndex-uint256-
|
|
:ERC721Enumerable-_beforeTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_beforeTokenTransfer-address-address-uint256-[`ERC721Enumerable._beforeTokenTransfer`]]
|
|
:xref-ERC721Enumerable-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721Enumerable-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC721Pausable: pass:normal[xref:token/ERC721.adoc#ERC721Pausable[`ERC721Pausable`]]
|
|
:xref-ERC721Pausable: xref:token/ERC721.adoc#ERC721Pausable
|
|
:ERC721Pausable-_beforeTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-_beforeTokenTransfer-address-address-uint256-[`ERC721Pausable._beforeTokenTransfer`]]
|
|
:xref-ERC721Pausable-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721Pausable-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC721Royalty: pass:normal[xref:token/ERC721.adoc#ERC721Royalty[`ERC721Royalty`]]
|
|
:xref-ERC721Royalty: xref:token/ERC721.adoc#ERC721Royalty
|
|
:ERC721Royalty-supportsInterface: pass:normal[xref:token/ERC721.adoc#ERC721Royalty-supportsInterface-bytes4-[`ERC721Royalty.supportsInterface`]]
|
|
:xref-ERC721Royalty-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721Royalty-supportsInterface-bytes4-
|
|
:ERC721Royalty-_burn: pass:normal[xref:token/ERC721.adoc#ERC721Royalty-_burn-uint256-[`ERC721Royalty._burn`]]
|
|
:xref-ERC721Royalty-_burn-uint256-: xref:token/ERC721.adoc#ERC721Royalty-_burn-uint256-
|
|
:ERC721URIStorage: pass:normal[xref:token/ERC721.adoc#ERC721URIStorage[`ERC721URIStorage`]]
|
|
:xref-ERC721URIStorage: xref:token/ERC721.adoc#ERC721URIStorage
|
|
:ERC721URIStorage-tokenURI: pass:normal[xref:token/ERC721.adoc#ERC721URIStorage-tokenURI-uint256-[`ERC721URIStorage.tokenURI`]]
|
|
:xref-ERC721URIStorage-tokenURI-uint256-: xref:token/ERC721.adoc#ERC721URIStorage-tokenURI-uint256-
|
|
:ERC721URIStorage-_setTokenURI: pass:normal[xref:token/ERC721.adoc#ERC721URIStorage-_setTokenURI-uint256-string-[`ERC721URIStorage._setTokenURI`]]
|
|
:xref-ERC721URIStorage-_setTokenURI-uint256-string-: xref:token/ERC721.adoc#ERC721URIStorage-_setTokenURI-uint256-string-
|
|
:ERC721URIStorage-_burn: pass:normal[xref:token/ERC721.adoc#ERC721URIStorage-_burn-uint256-[`ERC721URIStorage._burn`]]
|
|
:xref-ERC721URIStorage-_burn-uint256-: xref:token/ERC721.adoc#ERC721URIStorage-_burn-uint256-
|
|
:IERC721Enumerable: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable[`IERC721Enumerable`]]
|
|
:xref-IERC721Enumerable: xref:token/ERC721.adoc#IERC721Enumerable
|
|
:IERC721Enumerable-totalSupply: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-totalSupply--[`IERC721Enumerable.totalSupply`]]
|
|
:xref-IERC721Enumerable-totalSupply--: xref:token/ERC721.adoc#IERC721Enumerable-totalSupply--
|
|
:IERC721Enumerable-tokenOfOwnerByIndex: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`IERC721Enumerable.tokenOfOwnerByIndex`]]
|
|
:xref-IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-: xref:token/ERC721.adoc#IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-
|
|
:IERC721Enumerable-tokenByIndex: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-tokenByIndex-uint256-[`IERC721Enumerable.tokenByIndex`]]
|
|
:xref-IERC721Enumerable-tokenByIndex-uint256-: xref:token/ERC721.adoc#IERC721Enumerable-tokenByIndex-uint256-
|
|
:IERC721Metadata: pass:normal[xref:token/ERC721.adoc#IERC721Metadata[`IERC721Metadata`]]
|
|
:xref-IERC721Metadata: xref:token/ERC721.adoc#IERC721Metadata
|
|
:IERC721Metadata-name: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-name--[`IERC721Metadata.name`]]
|
|
:xref-IERC721Metadata-name--: xref:token/ERC721.adoc#IERC721Metadata-name--
|
|
:IERC721Metadata-symbol: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-symbol--[`IERC721Metadata.symbol`]]
|
|
:xref-IERC721Metadata-symbol--: xref:token/ERC721.adoc#IERC721Metadata-symbol--
|
|
:IERC721Metadata-tokenURI: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-tokenURI-uint256-[`IERC721Metadata.tokenURI`]]
|
|
:xref-IERC721Metadata-tokenURI-uint256-: xref:token/ERC721.adoc#IERC721Metadata-tokenURI-uint256-
|
|
:ERC721Votes: pass:normal[xref:token/ERC721.adoc#ERC721Votes[`ERC721Votes`]]
|
|
:xref-ERC721Votes: xref:token/ERC721.adoc#ERC721Votes
|
|
:ERC721Votes-_afterTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721Votes-_afterTokenTransfer-address-address-uint256-[`ERC721Votes._afterTokenTransfer`]]
|
|
:xref-ERC721Votes-_afterTokenTransfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721Votes-_afterTokenTransfer-address-address-uint256-
|
|
:ERC721Votes-_getVotingUnits: pass:normal[xref:token/ERC721.adoc#ERC721Votes-_getVotingUnits-address-[`ERC721Votes._getVotingUnits`]]
|
|
:xref-ERC721Votes-_getVotingUnits-address-: xref:token/ERC721.adoc#ERC721Votes-_getVotingUnits-address-
|
|
:ERC721Holder: pass:normal[xref:token/ERC721.adoc#ERC721Holder[`ERC721Holder`]]
|
|
:xref-ERC721Holder: xref:token/ERC721.adoc#ERC721Holder
|
|
:ERC721Holder-onERC721Received: pass:normal[xref:token/ERC721.adoc#ERC721Holder-onERC721Received-address-address-uint256-bytes-[`ERC721Holder.onERC721Received`]]
|
|
:xref-ERC721Holder-onERC721Received-address-address-uint256-bytes-: xref:token/ERC721.adoc#ERC721Holder-onERC721Received-address-address-uint256-bytes-
|
|
:ERC777: pass:normal[xref:token/ERC777.adoc#ERC777[`ERC777`]]
|
|
:xref-ERC777: xref:token/ERC777.adoc#ERC777
|
|
:ERC777-_ERC1820_REGISTRY: pass:normal[xref:token/ERC777.adoc#ERC777-_ERC1820_REGISTRY-contract-IERC1820Registry[`ERC777._ERC1820_REGISTRY`]]
|
|
:xref-ERC777-_ERC1820_REGISTRY-contract-IERC1820Registry: xref:token/ERC777.adoc#ERC777-_ERC1820_REGISTRY-contract-IERC1820Registry
|
|
:ERC777-constructor: pass:normal[xref:token/ERC777.adoc#ERC777-constructor-string-string-address---[`ERC777.constructor`]]
|
|
:xref-ERC777-constructor-string-string-address---: xref:token/ERC777.adoc#ERC777-constructor-string-string-address---
|
|
:ERC777-name: pass:normal[xref:token/ERC777.adoc#ERC777-name--[`ERC777.name`]]
|
|
:xref-ERC777-name--: xref:token/ERC777.adoc#ERC777-name--
|
|
:ERC777-symbol: pass:normal[xref:token/ERC777.adoc#ERC777-symbol--[`ERC777.symbol`]]
|
|
:xref-ERC777-symbol--: xref:token/ERC777.adoc#ERC777-symbol--
|
|
:ERC777-decimals: pass:normal[xref:token/ERC777.adoc#ERC777-decimals--[`ERC777.decimals`]]
|
|
:xref-ERC777-decimals--: xref:token/ERC777.adoc#ERC777-decimals--
|
|
:ERC777-granularity: pass:normal[xref:token/ERC777.adoc#ERC777-granularity--[`ERC777.granularity`]]
|
|
:xref-ERC777-granularity--: xref:token/ERC777.adoc#ERC777-granularity--
|
|
:ERC777-totalSupply: pass:normal[xref:token/ERC777.adoc#ERC777-totalSupply--[`ERC777.totalSupply`]]
|
|
:xref-ERC777-totalSupply--: xref:token/ERC777.adoc#ERC777-totalSupply--
|
|
:ERC777-balanceOf: pass:normal[xref:token/ERC777.adoc#ERC777-balanceOf-address-[`ERC777.balanceOf`]]
|
|
:xref-ERC777-balanceOf-address-: xref:token/ERC777.adoc#ERC777-balanceOf-address-
|
|
:ERC777-send: pass:normal[xref:token/ERC777.adoc#ERC777-send-address-uint256-bytes-[`ERC777.send`]]
|
|
:xref-ERC777-send-address-uint256-bytes-: xref:token/ERC777.adoc#ERC777-send-address-uint256-bytes-
|
|
:ERC777-transfer: pass:normal[xref:token/ERC777.adoc#ERC777-transfer-address-uint256-[`ERC777.transfer`]]
|
|
:xref-ERC777-transfer-address-uint256-: xref:token/ERC777.adoc#ERC777-transfer-address-uint256-
|
|
:ERC777-burn: pass:normal[xref:token/ERC777.adoc#ERC777-burn-uint256-bytes-[`ERC777.burn`]]
|
|
:xref-ERC777-burn-uint256-bytes-: xref:token/ERC777.adoc#ERC777-burn-uint256-bytes-
|
|
:ERC777-isOperatorFor: pass:normal[xref:token/ERC777.adoc#ERC777-isOperatorFor-address-address-[`ERC777.isOperatorFor`]]
|
|
:xref-ERC777-isOperatorFor-address-address-: xref:token/ERC777.adoc#ERC777-isOperatorFor-address-address-
|
|
:ERC777-authorizeOperator: pass:normal[xref:token/ERC777.adoc#ERC777-authorizeOperator-address-[`ERC777.authorizeOperator`]]
|
|
:xref-ERC777-authorizeOperator-address-: xref:token/ERC777.adoc#ERC777-authorizeOperator-address-
|
|
:ERC777-revokeOperator: pass:normal[xref:token/ERC777.adoc#ERC777-revokeOperator-address-[`ERC777.revokeOperator`]]
|
|
:xref-ERC777-revokeOperator-address-: xref:token/ERC777.adoc#ERC777-revokeOperator-address-
|
|
:ERC777-defaultOperators: pass:normal[xref:token/ERC777.adoc#ERC777-defaultOperators--[`ERC777.defaultOperators`]]
|
|
:xref-ERC777-defaultOperators--: xref:token/ERC777.adoc#ERC777-defaultOperators--
|
|
:ERC777-operatorSend: pass:normal[xref:token/ERC777.adoc#ERC777-operatorSend-address-address-uint256-bytes-bytes-[`ERC777.operatorSend`]]
|
|
:xref-ERC777-operatorSend-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#ERC777-operatorSend-address-address-uint256-bytes-bytes-
|
|
:ERC777-operatorBurn: pass:normal[xref:token/ERC777.adoc#ERC777-operatorBurn-address-uint256-bytes-bytes-[`ERC777.operatorBurn`]]
|
|
:xref-ERC777-operatorBurn-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#ERC777-operatorBurn-address-uint256-bytes-bytes-
|
|
:ERC777-allowance: pass:normal[xref:token/ERC777.adoc#ERC777-allowance-address-address-[`ERC777.allowance`]]
|
|
:xref-ERC777-allowance-address-address-: xref:token/ERC777.adoc#ERC777-allowance-address-address-
|
|
:ERC777-approve: pass:normal[xref:token/ERC777.adoc#ERC777-approve-address-uint256-[`ERC777.approve`]]
|
|
:xref-ERC777-approve-address-uint256-: xref:token/ERC777.adoc#ERC777-approve-address-uint256-
|
|
:ERC777-transferFrom: pass:normal[xref:token/ERC777.adoc#ERC777-transferFrom-address-address-uint256-[`ERC777.transferFrom`]]
|
|
:xref-ERC777-transferFrom-address-address-uint256-: xref:token/ERC777.adoc#ERC777-transferFrom-address-address-uint256-
|
|
:ERC777-_mint: pass:normal[xref:token/ERC777.adoc#ERC777-_mint-address-uint256-bytes-bytes-[`ERC777._mint`]]
|
|
:xref-ERC777-_mint-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#ERC777-_mint-address-uint256-bytes-bytes-
|
|
:ERC777-_mint: pass:normal[xref:token/ERC777.adoc#ERC777-_mint-address-uint256-bytes-bytes-bool-[`ERC777._mint`]]
|
|
:xref-ERC777-_mint-address-uint256-bytes-bytes-bool-: xref:token/ERC777.adoc#ERC777-_mint-address-uint256-bytes-bytes-bool-
|
|
:ERC777-_send: pass:normal[xref:token/ERC777.adoc#ERC777-_send-address-address-uint256-bytes-bytes-bool-[`ERC777._send`]]
|
|
:xref-ERC777-_send-address-address-uint256-bytes-bytes-bool-: xref:token/ERC777.adoc#ERC777-_send-address-address-uint256-bytes-bytes-bool-
|
|
:ERC777-_burn: pass:normal[xref:token/ERC777.adoc#ERC777-_burn-address-uint256-bytes-bytes-[`ERC777._burn`]]
|
|
:xref-ERC777-_burn-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#ERC777-_burn-address-uint256-bytes-bytes-
|
|
:ERC777-_approve: pass:normal[xref:token/ERC777.adoc#ERC777-_approve-address-address-uint256-[`ERC777._approve`]]
|
|
:xref-ERC777-_approve-address-address-uint256-: xref:token/ERC777.adoc#ERC777-_approve-address-address-uint256-
|
|
:ERC777-_spendAllowance: pass:normal[xref:token/ERC777.adoc#ERC777-_spendAllowance-address-address-uint256-[`ERC777._spendAllowance`]]
|
|
:xref-ERC777-_spendAllowance-address-address-uint256-: xref:token/ERC777.adoc#ERC777-_spendAllowance-address-address-uint256-
|
|
:ERC777-_beforeTokenTransfer: pass:normal[xref:token/ERC777.adoc#ERC777-_beforeTokenTransfer-address-address-address-uint256-[`ERC777._beforeTokenTransfer`]]
|
|
:xref-ERC777-_beforeTokenTransfer-address-address-address-uint256-: xref:token/ERC777.adoc#ERC777-_beforeTokenTransfer-address-address-address-uint256-
|
|
:IERC777: pass:normal[xref:token/ERC777.adoc#IERC777[`IERC777`]]
|
|
:xref-IERC777: xref:token/ERC777.adoc#IERC777
|
|
:IERC777-name: pass:normal[xref:token/ERC777.adoc#IERC777-name--[`IERC777.name`]]
|
|
:xref-IERC777-name--: xref:token/ERC777.adoc#IERC777-name--
|
|
:IERC777-symbol: pass:normal[xref:token/ERC777.adoc#IERC777-symbol--[`IERC777.symbol`]]
|
|
:xref-IERC777-symbol--: xref:token/ERC777.adoc#IERC777-symbol--
|
|
:IERC777-granularity: pass:normal[xref:token/ERC777.adoc#IERC777-granularity--[`IERC777.granularity`]]
|
|
:xref-IERC777-granularity--: xref:token/ERC777.adoc#IERC777-granularity--
|
|
:IERC777-totalSupply: pass:normal[xref:token/ERC777.adoc#IERC777-totalSupply--[`IERC777.totalSupply`]]
|
|
:xref-IERC777-totalSupply--: xref:token/ERC777.adoc#IERC777-totalSupply--
|
|
:IERC777-balanceOf: pass:normal[xref:token/ERC777.adoc#IERC777-balanceOf-address-[`IERC777.balanceOf`]]
|
|
:xref-IERC777-balanceOf-address-: xref:token/ERC777.adoc#IERC777-balanceOf-address-
|
|
:IERC777-send: pass:normal[xref:token/ERC777.adoc#IERC777-send-address-uint256-bytes-[`IERC777.send`]]
|
|
:xref-IERC777-send-address-uint256-bytes-: xref:token/ERC777.adoc#IERC777-send-address-uint256-bytes-
|
|
:IERC777-burn: pass:normal[xref:token/ERC777.adoc#IERC777-burn-uint256-bytes-[`IERC777.burn`]]
|
|
:xref-IERC777-burn-uint256-bytes-: xref:token/ERC777.adoc#IERC777-burn-uint256-bytes-
|
|
:IERC777-isOperatorFor: pass:normal[xref:token/ERC777.adoc#IERC777-isOperatorFor-address-address-[`IERC777.isOperatorFor`]]
|
|
:xref-IERC777-isOperatorFor-address-address-: xref:token/ERC777.adoc#IERC777-isOperatorFor-address-address-
|
|
:IERC777-authorizeOperator: pass:normal[xref:token/ERC777.adoc#IERC777-authorizeOperator-address-[`IERC777.authorizeOperator`]]
|
|
:xref-IERC777-authorizeOperator-address-: xref:token/ERC777.adoc#IERC777-authorizeOperator-address-
|
|
:IERC777-revokeOperator: pass:normal[xref:token/ERC777.adoc#IERC777-revokeOperator-address-[`IERC777.revokeOperator`]]
|
|
:xref-IERC777-revokeOperator-address-: xref:token/ERC777.adoc#IERC777-revokeOperator-address-
|
|
:IERC777-defaultOperators: pass:normal[xref:token/ERC777.adoc#IERC777-defaultOperators--[`IERC777.defaultOperators`]]
|
|
:xref-IERC777-defaultOperators--: xref:token/ERC777.adoc#IERC777-defaultOperators--
|
|
:IERC777-operatorSend: pass:normal[xref:token/ERC777.adoc#IERC777-operatorSend-address-address-uint256-bytes-bytes-[`IERC777.operatorSend`]]
|
|
:xref-IERC777-operatorSend-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777-operatorSend-address-address-uint256-bytes-bytes-
|
|
:IERC777-operatorBurn: pass:normal[xref:token/ERC777.adoc#IERC777-operatorBurn-address-uint256-bytes-bytes-[`IERC777.operatorBurn`]]
|
|
:xref-IERC777-operatorBurn-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777-operatorBurn-address-uint256-bytes-bytes-
|
|
:IERC777-Minted: pass:normal[xref:token/ERC777.adoc#IERC777-Minted-address-address-uint256-bytes-bytes-[`IERC777.Minted`]]
|
|
:xref-IERC777-Minted-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777-Minted-address-address-uint256-bytes-bytes-
|
|
:IERC777-Burned: pass:normal[xref:token/ERC777.adoc#IERC777-Burned-address-address-uint256-bytes-bytes-[`IERC777.Burned`]]
|
|
:xref-IERC777-Burned-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777-Burned-address-address-uint256-bytes-bytes-
|
|
:IERC777-AuthorizedOperator: pass:normal[xref:token/ERC777.adoc#IERC777-AuthorizedOperator-address-address-[`IERC777.AuthorizedOperator`]]
|
|
:xref-IERC777-AuthorizedOperator-address-address-: xref:token/ERC777.adoc#IERC777-AuthorizedOperator-address-address-
|
|
:IERC777-RevokedOperator: pass:normal[xref:token/ERC777.adoc#IERC777-RevokedOperator-address-address-[`IERC777.RevokedOperator`]]
|
|
:xref-IERC777-RevokedOperator-address-address-: xref:token/ERC777.adoc#IERC777-RevokedOperator-address-address-
|
|
:IERC777-Sent: pass:normal[xref:token/ERC777.adoc#IERC777-Sent-address-address-address-uint256-bytes-bytes-[`IERC777.Sent`]]
|
|
:xref-IERC777-Sent-address-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777-Sent-address-address-address-uint256-bytes-bytes-
|
|
:IERC777Recipient: pass:normal[xref:token/ERC777.adoc#IERC777Recipient[`IERC777Recipient`]]
|
|
:xref-IERC777Recipient: xref:token/ERC777.adoc#IERC777Recipient
|
|
:IERC777Recipient-tokensReceived: pass:normal[xref:token/ERC777.adoc#IERC777Recipient-tokensReceived-address-address-address-uint256-bytes-bytes-[`IERC777Recipient.tokensReceived`]]
|
|
:xref-IERC777Recipient-tokensReceived-address-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777Recipient-tokensReceived-address-address-address-uint256-bytes-bytes-
|
|
:IERC777Sender: pass:normal[xref:token/ERC777.adoc#IERC777Sender[`IERC777Sender`]]
|
|
:xref-IERC777Sender: xref:token/ERC777.adoc#IERC777Sender
|
|
:IERC777Sender-tokensToSend: pass:normal[xref:token/ERC777.adoc#IERC777Sender-tokensToSend-address-address-address-uint256-bytes-bytes-[`IERC777Sender.tokensToSend`]]
|
|
:xref-IERC777Sender-tokensToSend-address-address-address-uint256-bytes-bytes-: xref:token/ERC777.adoc#IERC777Sender-tokensToSend-address-address-address-uint256-bytes-bytes-
|
|
:ERC777PresetFixedSupply: pass:normal[xref:token/ERC777.adoc#ERC777PresetFixedSupply[`ERC777PresetFixedSupply`]]
|
|
:xref-ERC777PresetFixedSupply: xref:token/ERC777.adoc#ERC777PresetFixedSupply
|
|
:ERC777PresetFixedSupply-constructor: pass:normal[xref:token/ERC777.adoc#ERC777PresetFixedSupply-constructor-string-string-address---uint256-address-[`ERC777PresetFixedSupply.constructor`]]
|
|
:xref-ERC777PresetFixedSupply-constructor-string-string-address---uint256-address-: xref:token/ERC777.adoc#ERC777PresetFixedSupply-constructor-string-string-address---uint256-address-
|
|
:ERC2981: pass:normal[xref:token/common.adoc#ERC2981[`ERC2981`]]
|
|
:xref-ERC2981: xref:token/common.adoc#ERC2981
|
|
:ERC2981-supportsInterface: pass:normal[xref:token/common.adoc#ERC2981-supportsInterface-bytes4-[`ERC2981.supportsInterface`]]
|
|
:xref-ERC2981-supportsInterface-bytes4-: xref:token/common.adoc#ERC2981-supportsInterface-bytes4-
|
|
:ERC2981-royaltyInfo: pass:normal[xref:token/common.adoc#ERC2981-royaltyInfo-uint256-uint256-[`ERC2981.royaltyInfo`]]
|
|
:xref-ERC2981-royaltyInfo-uint256-uint256-: xref:token/common.adoc#ERC2981-royaltyInfo-uint256-uint256-
|
|
:ERC2981-_feeDenominator: pass:normal[xref:token/common.adoc#ERC2981-_feeDenominator--[`ERC2981._feeDenominator`]]
|
|
:xref-ERC2981-_feeDenominator--: xref:token/common.adoc#ERC2981-_feeDenominator--
|
|
:ERC2981-_setDefaultRoyalty: pass:normal[xref:token/common.adoc#ERC2981-_setDefaultRoyalty-address-uint96-[`ERC2981._setDefaultRoyalty`]]
|
|
:xref-ERC2981-_setDefaultRoyalty-address-uint96-: xref:token/common.adoc#ERC2981-_setDefaultRoyalty-address-uint96-
|
|
:ERC2981-_deleteDefaultRoyalty: pass:normal[xref:token/common.adoc#ERC2981-_deleteDefaultRoyalty--[`ERC2981._deleteDefaultRoyalty`]]
|
|
:xref-ERC2981-_deleteDefaultRoyalty--: xref:token/common.adoc#ERC2981-_deleteDefaultRoyalty--
|
|
:ERC2981-_setTokenRoyalty: pass:normal[xref:token/common.adoc#ERC2981-_setTokenRoyalty-uint256-address-uint96-[`ERC2981._setTokenRoyalty`]]
|
|
:xref-ERC2981-_setTokenRoyalty-uint256-address-uint96-: xref:token/common.adoc#ERC2981-_setTokenRoyalty-uint256-address-uint96-
|
|
:ERC2981-_resetTokenRoyalty: pass:normal[xref:token/common.adoc#ERC2981-_resetTokenRoyalty-uint256-[`ERC2981._resetTokenRoyalty`]]
|
|
:xref-ERC2981-_resetTokenRoyalty-uint256-: xref:token/common.adoc#ERC2981-_resetTokenRoyalty-uint256-
|
|
:ERC2981-RoyaltyInfo: pass:normal[xref:token/common.adoc#ERC2981-RoyaltyInfo[`ERC2981.RoyaltyInfo`]]
|
|
:xref-ERC2981-RoyaltyInfo: xref:token/common.adoc#ERC2981-RoyaltyInfo
|
|
:ERC1155PresetMinterPauser: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser[`ERC1155PresetMinterPauser`]]
|
|
:xref-ERC1155PresetMinterPauser: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser
|
|
:ERC1155PresetMinterPauser-MINTER_ROLE: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-MINTER_ROLE-bytes32[`ERC1155PresetMinterPauser.MINTER_ROLE`]]
|
|
:xref-ERC1155PresetMinterPauser-MINTER_ROLE-bytes32: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-MINTER_ROLE-bytes32
|
|
:ERC1155PresetMinterPauser-PAUSER_ROLE: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-PAUSER_ROLE-bytes32[`ERC1155PresetMinterPauser.PAUSER_ROLE`]]
|
|
:xref-ERC1155PresetMinterPauser-PAUSER_ROLE-bytes32: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-PAUSER_ROLE-bytes32
|
|
:ERC1155PresetMinterPauser-constructor: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-constructor-string-[`ERC1155PresetMinterPauser.constructor`]]
|
|
:xref-ERC1155PresetMinterPauser-constructor-string-: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-constructor-string-
|
|
:ERC1155PresetMinterPauser-mint: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-mint-address-uint256-uint256-bytes-[`ERC1155PresetMinterPauser.mint`]]
|
|
:xref-ERC1155PresetMinterPauser-mint-address-uint256-uint256-bytes-: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-mint-address-uint256-uint256-bytes-
|
|
:ERC1155PresetMinterPauser-mintBatch: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-mintBatch-address-uint256---uint256---bytes-[`ERC1155PresetMinterPauser.mintBatch`]]
|
|
:xref-ERC1155PresetMinterPauser-mintBatch-address-uint256---uint256---bytes-: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-mintBatch-address-uint256---uint256---bytes-
|
|
:ERC1155PresetMinterPauser-pause: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-pause--[`ERC1155PresetMinterPauser.pause`]]
|
|
:xref-ERC1155PresetMinterPauser-pause--: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-pause--
|
|
:ERC1155PresetMinterPauser-unpause: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-unpause--[`ERC1155PresetMinterPauser.unpause`]]
|
|
:xref-ERC1155PresetMinterPauser-unpause--: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-unpause--
|
|
:ERC1155PresetMinterPauser-supportsInterface: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-supportsInterface-bytes4-[`ERC1155PresetMinterPauser.supportsInterface`]]
|
|
:xref-ERC1155PresetMinterPauser-supportsInterface-bytes4-: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-supportsInterface-bytes4-
|
|
:ERC1155PresetMinterPauser-_beforeTokenTransfer: pass:normal[xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`ERC1155PresetMinterPauser._beforeTokenTransfer`]]
|
|
:xref-ERC1155PresetMinterPauser-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-: xref:token/ERC1155/presets.md#ERC1155PresetMinterPauser-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-
|
|
:ERC20PresetFixedSupply: pass:normal[xref:token/ERC20/presets.md#ERC20PresetFixedSupply[`ERC20PresetFixedSupply`]]
|
|
:xref-ERC20PresetFixedSupply: xref:token/ERC20/presets.md#ERC20PresetFixedSupply
|
|
:ERC20PresetFixedSupply-constructor: pass:normal[xref:token/ERC20/presets.md#ERC20PresetFixedSupply-constructor-string-string-uint256-address-[`ERC20PresetFixedSupply.constructor`]]
|
|
:xref-ERC20PresetFixedSupply-constructor-string-string-uint256-address-: xref:token/ERC20/presets.md#ERC20PresetFixedSupply-constructor-string-string-uint256-address-
|
|
:ERC20PresetMinterPauser: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser[`ERC20PresetMinterPauser`]]
|
|
:xref-ERC20PresetMinterPauser: xref:token/ERC20/presets.md#ERC20PresetMinterPauser
|
|
:ERC20PresetMinterPauser-MINTER_ROLE: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-MINTER_ROLE-bytes32[`ERC20PresetMinterPauser.MINTER_ROLE`]]
|
|
:xref-ERC20PresetMinterPauser-MINTER_ROLE-bytes32: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-MINTER_ROLE-bytes32
|
|
:ERC20PresetMinterPauser-PAUSER_ROLE: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-PAUSER_ROLE-bytes32[`ERC20PresetMinterPauser.PAUSER_ROLE`]]
|
|
:xref-ERC20PresetMinterPauser-PAUSER_ROLE-bytes32: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-PAUSER_ROLE-bytes32
|
|
:ERC20PresetMinterPauser-constructor: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-constructor-string-string-[`ERC20PresetMinterPauser.constructor`]]
|
|
:xref-ERC20PresetMinterPauser-constructor-string-string-: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-constructor-string-string-
|
|
:ERC20PresetMinterPauser-mint: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-mint-address-uint256-[`ERC20PresetMinterPauser.mint`]]
|
|
:xref-ERC20PresetMinterPauser-mint-address-uint256-: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-mint-address-uint256-
|
|
:ERC20PresetMinterPauser-pause: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-pause--[`ERC20PresetMinterPauser.pause`]]
|
|
:xref-ERC20PresetMinterPauser-pause--: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-pause--
|
|
:ERC20PresetMinterPauser-unpause: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-unpause--[`ERC20PresetMinterPauser.unpause`]]
|
|
:xref-ERC20PresetMinterPauser-unpause--: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-unpause--
|
|
:ERC20PresetMinterPauser-_beforeTokenTransfer: pass:normal[xref:token/ERC20/presets.md#ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-[`ERC20PresetMinterPauser._beforeTokenTransfer`]]
|
|
:xref-ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC20/presets.md#ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC721PresetMinterPauserAutoId: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId[`ERC721PresetMinterPauserAutoId`]]
|
|
:xref-ERC721PresetMinterPauserAutoId: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId
|
|
:ERC721PresetMinterPauserAutoId-MINTER_ROLE: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32[`ERC721PresetMinterPauserAutoId.MINTER_ROLE`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32
|
|
:ERC721PresetMinterPauserAutoId-PAUSER_ROLE: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32[`ERC721PresetMinterPauserAutoId.PAUSER_ROLE`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32
|
|
:ERC721PresetMinterPauserAutoId-constructor: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-constructor-string-string-string-[`ERC721PresetMinterPauserAutoId.constructor`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-constructor-string-string-string-: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-constructor-string-string-string-
|
|
:ERC721PresetMinterPauserAutoId-_baseURI: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-_baseURI--[`ERC721PresetMinterPauserAutoId._baseURI`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-_baseURI--: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-_baseURI--
|
|
:ERC721PresetMinterPauserAutoId-mint: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-mint-address-[`ERC721PresetMinterPauserAutoId.mint`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-mint-address-: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-mint-address-
|
|
:ERC721PresetMinterPauserAutoId-pause: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-pause--[`ERC721PresetMinterPauserAutoId.pause`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-pause--: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-pause--
|
|
:ERC721PresetMinterPauserAutoId-unpause: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-unpause--[`ERC721PresetMinterPauserAutoId.unpause`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-unpause--: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-unpause--
|
|
:ERC721PresetMinterPauserAutoId-_beforeTokenTransfer: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-_beforeTokenTransfer-address-address-uint256-[`ERC721PresetMinterPauserAutoId._beforeTokenTransfer`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-_beforeTokenTransfer-address-address-uint256-
|
|
:ERC721PresetMinterPauserAutoId-supportsInterface: pass:normal[xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-supportsInterface-bytes4-[`ERC721PresetMinterPauserAutoId.supportsInterface`]]
|
|
:xref-ERC721PresetMinterPauserAutoId-supportsInterface-bytes4-: xref:token/ERC721/presets.md#ERC721PresetMinterPauserAutoId-supportsInterface-bytes4-
|
|
= Utilities
|
|
|
|
[.readme-notice]
|
|
NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/utils
|
|
|
|
Miscellaneous contracts and libraries containing utility functions you can use to improve security, work with new data types, or safely use low-level primitives.
|
|
|
|
The {Address}, {Arrays}, {Base64} and {Strings} libraries provide more operations related to these native data types, while {SafeCast} adds ways to safely convert between the different signed and unsigned numeric types.
|
|
{Multicall} provides a function to batch together multiple calls in a single external call.
|
|
|
|
For new data types:
|
|
|
|
* {Counters}: a simple way to get a counter that can only be incremented, decremented or reset. Very useful for ID generation, counting contract activity, among others.
|
|
* {EnumerableMap}: like Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type, but with key-value _enumeration_: this will let you know how many entries a mapping has, and iterate over them (which is not possible with `mapping`).
|
|
* {EnumerableSet}: like {EnumerableMap}, but for https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets]. Can be used to store privileged accounts, issued IDs, etc.
|
|
|
|
[NOTE]
|
|
====
|
|
Because Solidity does not support generic types, {EnumerableMap} and {EnumerableSet} are specialized to a limited number of key-value types.
|
|
|
|
As of v3.0, {EnumerableMap} supports `uint256 -> address` (`UintToAddressMap`), and {EnumerableSet} supports `address` and `uint256` (`AddressSet` and `UintSet`).
|
|
====
|
|
|
|
Finally, {Create2} contains all necessary utilities to safely use the https://blog.openzeppelin.com/getting-the-most-out-of-create2/[`CREATE2` EVM opcode], without having to deal with low-level assembly.
|
|
|
|
== Math
|
|
|
|
:Math: pass:normal[xref:#Math[`++Math++`]]
|
|
:max: pass:normal[xref:#Math-max-uint256-uint256-[`++max++`]]
|
|
:min: pass:normal[xref:#Math-min-uint256-uint256-[`++min++`]]
|
|
:average: pass:normal[xref:#Math-average-uint256-uint256-[`++average++`]]
|
|
:ceilDiv: pass:normal[xref:#Math-ceilDiv-uint256-uint256-[`++ceilDiv++`]]
|
|
:mulDiv: pass:normal[xref:#Math-mulDiv-uint256-uint256-uint256-[`++mulDiv++`]]
|
|
:mulDiv: pass:normal[xref:#Math-mulDiv-uint256-uint256-uint256-enum-Math-Rounding-[`++mulDiv++`]]
|
|
:sqrt: pass:normal[xref:#Math-sqrt-uint256-[`++sqrt++`]]
|
|
:sqrt: pass:normal[xref:#Math-sqrt-uint256-enum-Math-Rounding-[`++sqrt++`]]
|
|
:Rounding: pass:normal[xref:#Math-Rounding[`++Rounding++`]]
|
|
|
|
[.contract]
|
|
[[Math]]
|
|
=== `++Math++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/math/Math.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/math/Math.sol";
|
|
```
|
|
|
|
Standard math utilities missing in the Solidity language.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Math-max-uint256-uint256-}[`++max(a, b)++`]
|
|
* {xref-Math-min-uint256-uint256-}[`++min(a, b)++`]
|
|
* {xref-Math-average-uint256-uint256-}[`++average(a, b)++`]
|
|
* {xref-Math-ceilDiv-uint256-uint256-}[`++ceilDiv(a, b)++`]
|
|
* {xref-Math-mulDiv-uint256-uint256-uint256-}[`++mulDiv(x, y, denominator)++`]
|
|
* {xref-Math-mulDiv-uint256-uint256-uint256-enum-Math-Rounding-}[`++mulDiv(x, y, denominator, rounding)++`]
|
|
* {xref-Math-sqrt-uint256-}[`++sqrt(a)++`]
|
|
* {xref-Math-sqrt-uint256-enum-Math-Rounding-}[`++sqrt(a, rounding)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Math-max-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++max++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the largest of two numbers.
|
|
|
|
[.contract-item]
|
|
[[Math-min-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++min++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the smallest of two numbers.
|
|
|
|
[.contract-item]
|
|
[[Math-average-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++average++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the average of two numbers. The result is rounded towards
|
|
zero.
|
|
|
|
[.contract-item]
|
|
[[Math-ceilDiv-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++ceilDiv++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the ceiling of the division of two numbers.
|
|
|
|
This differs from standard division with `/` in that it rounds up instead
|
|
of rounding down.
|
|
|
|
[.contract-item]
|
|
[[Math-mulDiv-uint256-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++mulDiv++#++(uint256 x, uint256 y, uint256 denominator) → uint256 result++` [.item-kind]#internal#
|
|
|
|
Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
|
|
with further edits by Uniswap Labs also under MIT license.
|
|
|
|
[.contract-item]
|
|
[[Math-mulDiv-uint256-uint256-uint256-enum-Math-Rounding-]]
|
|
==== `[.contract-item-name]#++mulDiv++#++(uint256 x, uint256 y, uint256 denominator, enum Math.Rounding rounding) → uint256++` [.item-kind]#internal#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Math-sqrt-uint256-]]
|
|
==== `[.contract-item-name]#++sqrt++#++(uint256 a) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the square root of a number. It the number is not a perfect square, the value is rounded down.
|
|
|
|
Inspired by Henry S. Warren, Jr.'s "Hacker's Delight" (Chapter 11).
|
|
|
|
[.contract-item]
|
|
[[Math-sqrt-uint256-enum-Math-Rounding-]]
|
|
==== `[.contract-item-name]#++sqrt++#++(uint256 a, enum Math.Rounding rounding) → uint256++` [.item-kind]#internal#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:SignedMath: pass:normal[xref:#SignedMath[`++SignedMath++`]]
|
|
:max: pass:normal[xref:#SignedMath-max-int256-int256-[`++max++`]]
|
|
:min: pass:normal[xref:#SignedMath-min-int256-int256-[`++min++`]]
|
|
:average: pass:normal[xref:#SignedMath-average-int256-int256-[`++average++`]]
|
|
:abs: pass:normal[xref:#SignedMath-abs-int256-[`++abs++`]]
|
|
|
|
[.contract]
|
|
[[SignedMath]]
|
|
=== `++SignedMath++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/math/SignedMath.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/math/SignedMath.sol";
|
|
```
|
|
|
|
Standard signed math utilities missing in the Solidity language.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-SignedMath-max-int256-int256-}[`++max(a, b)++`]
|
|
* {xref-SignedMath-min-int256-int256-}[`++min(a, b)++`]
|
|
* {xref-SignedMath-average-int256-int256-}[`++average(a, b)++`]
|
|
* {xref-SignedMath-abs-int256-}[`++abs(n)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[SignedMath-max-int256-int256-]]
|
|
==== `[.contract-item-name]#++max++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the largest of two signed numbers.
|
|
|
|
[.contract-item]
|
|
[[SignedMath-min-int256-int256-]]
|
|
==== `[.contract-item-name]#++min++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the smallest of two signed numbers.
|
|
|
|
[.contract-item]
|
|
[[SignedMath-average-int256-int256-]]
|
|
==== `[.contract-item-name]#++average++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the average of two signed numbers without overflow.
|
|
The result is rounded towards zero.
|
|
|
|
[.contract-item]
|
|
[[SignedMath-abs-int256-]]
|
|
==== `[.contract-item-name]#++abs++#++(int256 n) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the absolute unsigned value of a signed value.
|
|
|
|
|
|
|
|
|
|
:SafeCast: pass:normal[xref:#SafeCast[`++SafeCast++`]]
|
|
:toUint248: pass:normal[xref:#SafeCast-toUint248-uint256-[`++toUint248++`]]
|
|
:toUint240: pass:normal[xref:#SafeCast-toUint240-uint256-[`++toUint240++`]]
|
|
:toUint232: pass:normal[xref:#SafeCast-toUint232-uint256-[`++toUint232++`]]
|
|
:toUint224: pass:normal[xref:#SafeCast-toUint224-uint256-[`++toUint224++`]]
|
|
:toUint216: pass:normal[xref:#SafeCast-toUint216-uint256-[`++toUint216++`]]
|
|
:toUint208: pass:normal[xref:#SafeCast-toUint208-uint256-[`++toUint208++`]]
|
|
:toUint200: pass:normal[xref:#SafeCast-toUint200-uint256-[`++toUint200++`]]
|
|
:toUint192: pass:normal[xref:#SafeCast-toUint192-uint256-[`++toUint192++`]]
|
|
:toUint184: pass:normal[xref:#SafeCast-toUint184-uint256-[`++toUint184++`]]
|
|
:toUint176: pass:normal[xref:#SafeCast-toUint176-uint256-[`++toUint176++`]]
|
|
:toUint168: pass:normal[xref:#SafeCast-toUint168-uint256-[`++toUint168++`]]
|
|
:toUint160: pass:normal[xref:#SafeCast-toUint160-uint256-[`++toUint160++`]]
|
|
:toUint152: pass:normal[xref:#SafeCast-toUint152-uint256-[`++toUint152++`]]
|
|
:toUint144: pass:normal[xref:#SafeCast-toUint144-uint256-[`++toUint144++`]]
|
|
:toUint136: pass:normal[xref:#SafeCast-toUint136-uint256-[`++toUint136++`]]
|
|
:toUint128: pass:normal[xref:#SafeCast-toUint128-uint256-[`++toUint128++`]]
|
|
:toUint120: pass:normal[xref:#SafeCast-toUint120-uint256-[`++toUint120++`]]
|
|
:toUint112: pass:normal[xref:#SafeCast-toUint112-uint256-[`++toUint112++`]]
|
|
:toUint104: pass:normal[xref:#SafeCast-toUint104-uint256-[`++toUint104++`]]
|
|
:toUint96: pass:normal[xref:#SafeCast-toUint96-uint256-[`++toUint96++`]]
|
|
:toUint88: pass:normal[xref:#SafeCast-toUint88-uint256-[`++toUint88++`]]
|
|
:toUint80: pass:normal[xref:#SafeCast-toUint80-uint256-[`++toUint80++`]]
|
|
:toUint72: pass:normal[xref:#SafeCast-toUint72-uint256-[`++toUint72++`]]
|
|
:toUint64: pass:normal[xref:#SafeCast-toUint64-uint256-[`++toUint64++`]]
|
|
:toUint56: pass:normal[xref:#SafeCast-toUint56-uint256-[`++toUint56++`]]
|
|
:toUint48: pass:normal[xref:#SafeCast-toUint48-uint256-[`++toUint48++`]]
|
|
:toUint40: pass:normal[xref:#SafeCast-toUint40-uint256-[`++toUint40++`]]
|
|
:toUint32: pass:normal[xref:#SafeCast-toUint32-uint256-[`++toUint32++`]]
|
|
:toUint24: pass:normal[xref:#SafeCast-toUint24-uint256-[`++toUint24++`]]
|
|
:toUint16: pass:normal[xref:#SafeCast-toUint16-uint256-[`++toUint16++`]]
|
|
:toUint8: pass:normal[xref:#SafeCast-toUint8-uint256-[`++toUint8++`]]
|
|
:toUint256: pass:normal[xref:#SafeCast-toUint256-int256-[`++toUint256++`]]
|
|
:toInt248: pass:normal[xref:#SafeCast-toInt248-int256-[`++toInt248++`]]
|
|
:toInt240: pass:normal[xref:#SafeCast-toInt240-int256-[`++toInt240++`]]
|
|
:toInt232: pass:normal[xref:#SafeCast-toInt232-int256-[`++toInt232++`]]
|
|
:toInt224: pass:normal[xref:#SafeCast-toInt224-int256-[`++toInt224++`]]
|
|
:toInt216: pass:normal[xref:#SafeCast-toInt216-int256-[`++toInt216++`]]
|
|
:toInt208: pass:normal[xref:#SafeCast-toInt208-int256-[`++toInt208++`]]
|
|
:toInt200: pass:normal[xref:#SafeCast-toInt200-int256-[`++toInt200++`]]
|
|
:toInt192: pass:normal[xref:#SafeCast-toInt192-int256-[`++toInt192++`]]
|
|
:toInt184: pass:normal[xref:#SafeCast-toInt184-int256-[`++toInt184++`]]
|
|
:toInt176: pass:normal[xref:#SafeCast-toInt176-int256-[`++toInt176++`]]
|
|
:toInt168: pass:normal[xref:#SafeCast-toInt168-int256-[`++toInt168++`]]
|
|
:toInt160: pass:normal[xref:#SafeCast-toInt160-int256-[`++toInt160++`]]
|
|
:toInt152: pass:normal[xref:#SafeCast-toInt152-int256-[`++toInt152++`]]
|
|
:toInt144: pass:normal[xref:#SafeCast-toInt144-int256-[`++toInt144++`]]
|
|
:toInt136: pass:normal[xref:#SafeCast-toInt136-int256-[`++toInt136++`]]
|
|
:toInt128: pass:normal[xref:#SafeCast-toInt128-int256-[`++toInt128++`]]
|
|
:toInt120: pass:normal[xref:#SafeCast-toInt120-int256-[`++toInt120++`]]
|
|
:toInt112: pass:normal[xref:#SafeCast-toInt112-int256-[`++toInt112++`]]
|
|
:toInt104: pass:normal[xref:#SafeCast-toInt104-int256-[`++toInt104++`]]
|
|
:toInt96: pass:normal[xref:#SafeCast-toInt96-int256-[`++toInt96++`]]
|
|
:toInt88: pass:normal[xref:#SafeCast-toInt88-int256-[`++toInt88++`]]
|
|
:toInt80: pass:normal[xref:#SafeCast-toInt80-int256-[`++toInt80++`]]
|
|
:toInt72: pass:normal[xref:#SafeCast-toInt72-int256-[`++toInt72++`]]
|
|
:toInt64: pass:normal[xref:#SafeCast-toInt64-int256-[`++toInt64++`]]
|
|
:toInt56: pass:normal[xref:#SafeCast-toInt56-int256-[`++toInt56++`]]
|
|
:toInt48: pass:normal[xref:#SafeCast-toInt48-int256-[`++toInt48++`]]
|
|
:toInt40: pass:normal[xref:#SafeCast-toInt40-int256-[`++toInt40++`]]
|
|
:toInt32: pass:normal[xref:#SafeCast-toInt32-int256-[`++toInt32++`]]
|
|
:toInt24: pass:normal[xref:#SafeCast-toInt24-int256-[`++toInt24++`]]
|
|
:toInt16: pass:normal[xref:#SafeCast-toInt16-int256-[`++toInt16++`]]
|
|
:toInt8: pass:normal[xref:#SafeCast-toInt8-int256-[`++toInt8++`]]
|
|
:toInt256: pass:normal[xref:#SafeCast-toInt256-uint256-[`++toInt256++`]]
|
|
|
|
[.contract]
|
|
[[SafeCast]]
|
|
=== `++SafeCast++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/math/SafeCast.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/math/SafeCast.sol";
|
|
```
|
|
|
|
Wrappers over Solidity's uintXX/intXX casting operators with added overflow
|
|
checks.
|
|
|
|
Downcasting from uint256/int256 in Solidity does not revert on overflow. This can
|
|
easily result in undesired exploitation or bugs, since developers usually
|
|
assume that overflows raise errors. `SafeCast` restores this intuition by
|
|
reverting the transaction when such an operation overflows.
|
|
|
|
Using this library instead of the unchecked operations eliminates an entire
|
|
class of bugs, so it's recommended to use it always.
|
|
|
|
Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing
|
|
all math on `uint256` and `int256` and then downcasting.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-SafeCast-toUint248-uint256-}[`++toUint248(value)++`]
|
|
* {xref-SafeCast-toUint240-uint256-}[`++toUint240(value)++`]
|
|
* {xref-SafeCast-toUint232-uint256-}[`++toUint232(value)++`]
|
|
* {xref-SafeCast-toUint224-uint256-}[`++toUint224(value)++`]
|
|
* {xref-SafeCast-toUint216-uint256-}[`++toUint216(value)++`]
|
|
* {xref-SafeCast-toUint208-uint256-}[`++toUint208(value)++`]
|
|
* {xref-SafeCast-toUint200-uint256-}[`++toUint200(value)++`]
|
|
* {xref-SafeCast-toUint192-uint256-}[`++toUint192(value)++`]
|
|
* {xref-SafeCast-toUint184-uint256-}[`++toUint184(value)++`]
|
|
* {xref-SafeCast-toUint176-uint256-}[`++toUint176(value)++`]
|
|
* {xref-SafeCast-toUint168-uint256-}[`++toUint168(value)++`]
|
|
* {xref-SafeCast-toUint160-uint256-}[`++toUint160(value)++`]
|
|
* {xref-SafeCast-toUint152-uint256-}[`++toUint152(value)++`]
|
|
* {xref-SafeCast-toUint144-uint256-}[`++toUint144(value)++`]
|
|
* {xref-SafeCast-toUint136-uint256-}[`++toUint136(value)++`]
|
|
* {xref-SafeCast-toUint128-uint256-}[`++toUint128(value)++`]
|
|
* {xref-SafeCast-toUint120-uint256-}[`++toUint120(value)++`]
|
|
* {xref-SafeCast-toUint112-uint256-}[`++toUint112(value)++`]
|
|
* {xref-SafeCast-toUint104-uint256-}[`++toUint104(value)++`]
|
|
* {xref-SafeCast-toUint96-uint256-}[`++toUint96(value)++`]
|
|
* {xref-SafeCast-toUint88-uint256-}[`++toUint88(value)++`]
|
|
* {xref-SafeCast-toUint80-uint256-}[`++toUint80(value)++`]
|
|
* {xref-SafeCast-toUint72-uint256-}[`++toUint72(value)++`]
|
|
* {xref-SafeCast-toUint64-uint256-}[`++toUint64(value)++`]
|
|
* {xref-SafeCast-toUint56-uint256-}[`++toUint56(value)++`]
|
|
* {xref-SafeCast-toUint48-uint256-}[`++toUint48(value)++`]
|
|
* {xref-SafeCast-toUint40-uint256-}[`++toUint40(value)++`]
|
|
* {xref-SafeCast-toUint32-uint256-}[`++toUint32(value)++`]
|
|
* {xref-SafeCast-toUint24-uint256-}[`++toUint24(value)++`]
|
|
* {xref-SafeCast-toUint16-uint256-}[`++toUint16(value)++`]
|
|
* {xref-SafeCast-toUint8-uint256-}[`++toUint8(value)++`]
|
|
* {xref-SafeCast-toUint256-int256-}[`++toUint256(value)++`]
|
|
* {xref-SafeCast-toInt248-int256-}[`++toInt248(value)++`]
|
|
* {xref-SafeCast-toInt240-int256-}[`++toInt240(value)++`]
|
|
* {xref-SafeCast-toInt232-int256-}[`++toInt232(value)++`]
|
|
* {xref-SafeCast-toInt224-int256-}[`++toInt224(value)++`]
|
|
* {xref-SafeCast-toInt216-int256-}[`++toInt216(value)++`]
|
|
* {xref-SafeCast-toInt208-int256-}[`++toInt208(value)++`]
|
|
* {xref-SafeCast-toInt200-int256-}[`++toInt200(value)++`]
|
|
* {xref-SafeCast-toInt192-int256-}[`++toInt192(value)++`]
|
|
* {xref-SafeCast-toInt184-int256-}[`++toInt184(value)++`]
|
|
* {xref-SafeCast-toInt176-int256-}[`++toInt176(value)++`]
|
|
* {xref-SafeCast-toInt168-int256-}[`++toInt168(value)++`]
|
|
* {xref-SafeCast-toInt160-int256-}[`++toInt160(value)++`]
|
|
* {xref-SafeCast-toInt152-int256-}[`++toInt152(value)++`]
|
|
* {xref-SafeCast-toInt144-int256-}[`++toInt144(value)++`]
|
|
* {xref-SafeCast-toInt136-int256-}[`++toInt136(value)++`]
|
|
* {xref-SafeCast-toInt128-int256-}[`++toInt128(value)++`]
|
|
* {xref-SafeCast-toInt120-int256-}[`++toInt120(value)++`]
|
|
* {xref-SafeCast-toInt112-int256-}[`++toInt112(value)++`]
|
|
* {xref-SafeCast-toInt104-int256-}[`++toInt104(value)++`]
|
|
* {xref-SafeCast-toInt96-int256-}[`++toInt96(value)++`]
|
|
* {xref-SafeCast-toInt88-int256-}[`++toInt88(value)++`]
|
|
* {xref-SafeCast-toInt80-int256-}[`++toInt80(value)++`]
|
|
* {xref-SafeCast-toInt72-int256-}[`++toInt72(value)++`]
|
|
* {xref-SafeCast-toInt64-int256-}[`++toInt64(value)++`]
|
|
* {xref-SafeCast-toInt56-int256-}[`++toInt56(value)++`]
|
|
* {xref-SafeCast-toInt48-int256-}[`++toInt48(value)++`]
|
|
* {xref-SafeCast-toInt40-int256-}[`++toInt40(value)++`]
|
|
* {xref-SafeCast-toInt32-int256-}[`++toInt32(value)++`]
|
|
* {xref-SafeCast-toInt24-int256-}[`++toInt24(value)++`]
|
|
* {xref-SafeCast-toInt16-int256-}[`++toInt16(value)++`]
|
|
* {xref-SafeCast-toInt8-int256-}[`++toInt8(value)++`]
|
|
* {xref-SafeCast-toInt256-uint256-}[`++toInt256(value)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint248-uint256-]]
|
|
==== `[.contract-item-name]#++toUint248++#++(uint256 value) → uint248++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint248 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint248).
|
|
|
|
Counterpart to Solidity's `uint248` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 248 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint240-uint256-]]
|
|
==== `[.contract-item-name]#++toUint240++#++(uint256 value) → uint240++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint240 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint240).
|
|
|
|
Counterpart to Solidity's `uint240` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 240 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint232-uint256-]]
|
|
==== `[.contract-item-name]#++toUint232++#++(uint256 value) → uint232++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint232 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint232).
|
|
|
|
Counterpart to Solidity's `uint232` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 232 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint224-uint256-]]
|
|
==== `[.contract-item-name]#++toUint224++#++(uint256 value) → uint224++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint224 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint224).
|
|
|
|
Counterpart to Solidity's `uint224` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 224 bits
|
|
|
|
_Available since v4.2._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint216-uint256-]]
|
|
==== `[.contract-item-name]#++toUint216++#++(uint256 value) → uint216++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint216 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint216).
|
|
|
|
Counterpart to Solidity's `uint216` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 216 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint208-uint256-]]
|
|
==== `[.contract-item-name]#++toUint208++#++(uint256 value) → uint208++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint208 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint208).
|
|
|
|
Counterpart to Solidity's `uint208` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 208 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint200-uint256-]]
|
|
==== `[.contract-item-name]#++toUint200++#++(uint256 value) → uint200++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint200 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint200).
|
|
|
|
Counterpart to Solidity's `uint200` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 200 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint192-uint256-]]
|
|
==== `[.contract-item-name]#++toUint192++#++(uint256 value) → uint192++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint192 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint192).
|
|
|
|
Counterpart to Solidity's `uint192` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 192 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint184-uint256-]]
|
|
==== `[.contract-item-name]#++toUint184++#++(uint256 value) → uint184++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint184 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint184).
|
|
|
|
Counterpart to Solidity's `uint184` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 184 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint176-uint256-]]
|
|
==== `[.contract-item-name]#++toUint176++#++(uint256 value) → uint176++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint176 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint176).
|
|
|
|
Counterpart to Solidity's `uint176` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 176 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint168-uint256-]]
|
|
==== `[.contract-item-name]#++toUint168++#++(uint256 value) → uint168++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint168 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint168).
|
|
|
|
Counterpart to Solidity's `uint168` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 168 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint160-uint256-]]
|
|
==== `[.contract-item-name]#++toUint160++#++(uint256 value) → uint160++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint160 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint160).
|
|
|
|
Counterpart to Solidity's `uint160` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 160 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint152-uint256-]]
|
|
==== `[.contract-item-name]#++toUint152++#++(uint256 value) → uint152++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint152 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint152).
|
|
|
|
Counterpart to Solidity's `uint152` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 152 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint144-uint256-]]
|
|
==== `[.contract-item-name]#++toUint144++#++(uint256 value) → uint144++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint144 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint144).
|
|
|
|
Counterpart to Solidity's `uint144` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 144 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint136-uint256-]]
|
|
==== `[.contract-item-name]#++toUint136++#++(uint256 value) → uint136++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint136 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint136).
|
|
|
|
Counterpart to Solidity's `uint136` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 136 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint128-uint256-]]
|
|
==== `[.contract-item-name]#++toUint128++#++(uint256 value) → uint128++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint128 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint128).
|
|
|
|
Counterpart to Solidity's `uint128` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 128 bits
|
|
|
|
_Available since v2.5._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint120-uint256-]]
|
|
==== `[.contract-item-name]#++toUint120++#++(uint256 value) → uint120++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint120 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint120).
|
|
|
|
Counterpart to Solidity's `uint120` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 120 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint112-uint256-]]
|
|
==== `[.contract-item-name]#++toUint112++#++(uint256 value) → uint112++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint112 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint112).
|
|
|
|
Counterpart to Solidity's `uint112` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 112 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint104-uint256-]]
|
|
==== `[.contract-item-name]#++toUint104++#++(uint256 value) → uint104++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint104 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint104).
|
|
|
|
Counterpart to Solidity's `uint104` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 104 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint96-uint256-]]
|
|
==== `[.contract-item-name]#++toUint96++#++(uint256 value) → uint96++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint96 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint96).
|
|
|
|
Counterpart to Solidity's `uint96` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 96 bits
|
|
|
|
_Available since v4.2._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint88-uint256-]]
|
|
==== `[.contract-item-name]#++toUint88++#++(uint256 value) → uint88++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint88 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint88).
|
|
|
|
Counterpart to Solidity's `uint88` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 88 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint80-uint256-]]
|
|
==== `[.contract-item-name]#++toUint80++#++(uint256 value) → uint80++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint80 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint80).
|
|
|
|
Counterpart to Solidity's `uint80` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 80 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint72-uint256-]]
|
|
==== `[.contract-item-name]#++toUint72++#++(uint256 value) → uint72++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint72 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint72).
|
|
|
|
Counterpart to Solidity's `uint72` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 72 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint64-uint256-]]
|
|
==== `[.contract-item-name]#++toUint64++#++(uint256 value) → uint64++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint64 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint64).
|
|
|
|
Counterpart to Solidity's `uint64` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 64 bits
|
|
|
|
_Available since v2.5._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint56-uint256-]]
|
|
==== `[.contract-item-name]#++toUint56++#++(uint256 value) → uint56++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint56 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint56).
|
|
|
|
Counterpart to Solidity's `uint56` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 56 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint48-uint256-]]
|
|
==== `[.contract-item-name]#++toUint48++#++(uint256 value) → uint48++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint48 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint48).
|
|
|
|
Counterpart to Solidity's `uint48` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 48 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint40-uint256-]]
|
|
==== `[.contract-item-name]#++toUint40++#++(uint256 value) → uint40++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint40 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint40).
|
|
|
|
Counterpart to Solidity's `uint40` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 40 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint32-uint256-]]
|
|
==== `[.contract-item-name]#++toUint32++#++(uint256 value) → uint32++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint32 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint32).
|
|
|
|
Counterpart to Solidity's `uint32` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 32 bits
|
|
|
|
_Available since v2.5._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint24-uint256-]]
|
|
==== `[.contract-item-name]#++toUint24++#++(uint256 value) → uint24++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint24 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint24).
|
|
|
|
Counterpart to Solidity's `uint24` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 24 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint16-uint256-]]
|
|
==== `[.contract-item-name]#++toUint16++#++(uint256 value) → uint16++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint16 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint16).
|
|
|
|
Counterpart to Solidity's `uint16` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 16 bits
|
|
|
|
_Available since v2.5._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint8-uint256-]]
|
|
==== `[.contract-item-name]#++toUint8++#++(uint256 value) → uint8++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted uint8 from uint256, reverting on
|
|
overflow (when the input is greater than largest uint8).
|
|
|
|
Counterpart to Solidity's `uint8` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 8 bits
|
|
|
|
_Available since v2.5._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toUint256-int256-]]
|
|
==== `[.contract-item-name]#++toUint256++#++(int256 value) → uint256++` [.item-kind]#internal#
|
|
|
|
Converts a signed int256 into an unsigned uint256.
|
|
|
|
Requirements:
|
|
|
|
- input must be greater than or equal to 0.
|
|
|
|
_Available since v3.0._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt248-int256-]]
|
|
==== `[.contract-item-name]#++toInt248++#++(int256 value) → int248++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int248 from int256, reverting on
|
|
overflow (when the input is less than smallest int248 or
|
|
greater than largest int248).
|
|
|
|
Counterpart to Solidity's `int248` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 248 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt240-int256-]]
|
|
==== `[.contract-item-name]#++toInt240++#++(int256 value) → int240++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int240 from int256, reverting on
|
|
overflow (when the input is less than smallest int240 or
|
|
greater than largest int240).
|
|
|
|
Counterpart to Solidity's `int240` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 240 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt232-int256-]]
|
|
==== `[.contract-item-name]#++toInt232++#++(int256 value) → int232++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int232 from int256, reverting on
|
|
overflow (when the input is less than smallest int232 or
|
|
greater than largest int232).
|
|
|
|
Counterpart to Solidity's `int232` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 232 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt224-int256-]]
|
|
==== `[.contract-item-name]#++toInt224++#++(int256 value) → int224++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int224 from int256, reverting on
|
|
overflow (when the input is less than smallest int224 or
|
|
greater than largest int224).
|
|
|
|
Counterpart to Solidity's `int224` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 224 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt216-int256-]]
|
|
==== `[.contract-item-name]#++toInt216++#++(int256 value) → int216++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int216 from int256, reverting on
|
|
overflow (when the input is less than smallest int216 or
|
|
greater than largest int216).
|
|
|
|
Counterpart to Solidity's `int216` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 216 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt208-int256-]]
|
|
==== `[.contract-item-name]#++toInt208++#++(int256 value) → int208++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int208 from int256, reverting on
|
|
overflow (when the input is less than smallest int208 or
|
|
greater than largest int208).
|
|
|
|
Counterpart to Solidity's `int208` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 208 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt200-int256-]]
|
|
==== `[.contract-item-name]#++toInt200++#++(int256 value) → int200++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int200 from int256, reverting on
|
|
overflow (when the input is less than smallest int200 or
|
|
greater than largest int200).
|
|
|
|
Counterpart to Solidity's `int200` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 200 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt192-int256-]]
|
|
==== `[.contract-item-name]#++toInt192++#++(int256 value) → int192++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int192 from int256, reverting on
|
|
overflow (when the input is less than smallest int192 or
|
|
greater than largest int192).
|
|
|
|
Counterpart to Solidity's `int192` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 192 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt184-int256-]]
|
|
==== `[.contract-item-name]#++toInt184++#++(int256 value) → int184++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int184 from int256, reverting on
|
|
overflow (when the input is less than smallest int184 or
|
|
greater than largest int184).
|
|
|
|
Counterpart to Solidity's `int184` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 184 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt176-int256-]]
|
|
==== `[.contract-item-name]#++toInt176++#++(int256 value) → int176++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int176 from int256, reverting on
|
|
overflow (when the input is less than smallest int176 or
|
|
greater than largest int176).
|
|
|
|
Counterpart to Solidity's `int176` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 176 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt168-int256-]]
|
|
==== `[.contract-item-name]#++toInt168++#++(int256 value) → int168++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int168 from int256, reverting on
|
|
overflow (when the input is less than smallest int168 or
|
|
greater than largest int168).
|
|
|
|
Counterpart to Solidity's `int168` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 168 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt160-int256-]]
|
|
==== `[.contract-item-name]#++toInt160++#++(int256 value) → int160++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int160 from int256, reverting on
|
|
overflow (when the input is less than smallest int160 or
|
|
greater than largest int160).
|
|
|
|
Counterpart to Solidity's `int160` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 160 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt152-int256-]]
|
|
==== `[.contract-item-name]#++toInt152++#++(int256 value) → int152++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int152 from int256, reverting on
|
|
overflow (when the input is less than smallest int152 or
|
|
greater than largest int152).
|
|
|
|
Counterpart to Solidity's `int152` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 152 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt144-int256-]]
|
|
==== `[.contract-item-name]#++toInt144++#++(int256 value) → int144++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int144 from int256, reverting on
|
|
overflow (when the input is less than smallest int144 or
|
|
greater than largest int144).
|
|
|
|
Counterpart to Solidity's `int144` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 144 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt136-int256-]]
|
|
==== `[.contract-item-name]#++toInt136++#++(int256 value) → int136++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int136 from int256, reverting on
|
|
overflow (when the input is less than smallest int136 or
|
|
greater than largest int136).
|
|
|
|
Counterpart to Solidity's `int136` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 136 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt128-int256-]]
|
|
==== `[.contract-item-name]#++toInt128++#++(int256 value) → int128++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int128 from int256, reverting on
|
|
overflow (when the input is less than smallest int128 or
|
|
greater than largest int128).
|
|
|
|
Counterpart to Solidity's `int128` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 128 bits
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt120-int256-]]
|
|
==== `[.contract-item-name]#++toInt120++#++(int256 value) → int120++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int120 from int256, reverting on
|
|
overflow (when the input is less than smallest int120 or
|
|
greater than largest int120).
|
|
|
|
Counterpart to Solidity's `int120` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 120 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt112-int256-]]
|
|
==== `[.contract-item-name]#++toInt112++#++(int256 value) → int112++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int112 from int256, reverting on
|
|
overflow (when the input is less than smallest int112 or
|
|
greater than largest int112).
|
|
|
|
Counterpart to Solidity's `int112` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 112 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt104-int256-]]
|
|
==== `[.contract-item-name]#++toInt104++#++(int256 value) → int104++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int104 from int256, reverting on
|
|
overflow (when the input is less than smallest int104 or
|
|
greater than largest int104).
|
|
|
|
Counterpart to Solidity's `int104` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 104 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt96-int256-]]
|
|
==== `[.contract-item-name]#++toInt96++#++(int256 value) → int96++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int96 from int256, reverting on
|
|
overflow (when the input is less than smallest int96 or
|
|
greater than largest int96).
|
|
|
|
Counterpart to Solidity's `int96` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 96 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt88-int256-]]
|
|
==== `[.contract-item-name]#++toInt88++#++(int256 value) → int88++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int88 from int256, reverting on
|
|
overflow (when the input is less than smallest int88 or
|
|
greater than largest int88).
|
|
|
|
Counterpart to Solidity's `int88` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 88 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt80-int256-]]
|
|
==== `[.contract-item-name]#++toInt80++#++(int256 value) → int80++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int80 from int256, reverting on
|
|
overflow (when the input is less than smallest int80 or
|
|
greater than largest int80).
|
|
|
|
Counterpart to Solidity's `int80` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 80 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt72-int256-]]
|
|
==== `[.contract-item-name]#++toInt72++#++(int256 value) → int72++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int72 from int256, reverting on
|
|
overflow (when the input is less than smallest int72 or
|
|
greater than largest int72).
|
|
|
|
Counterpart to Solidity's `int72` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 72 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt64-int256-]]
|
|
==== `[.contract-item-name]#++toInt64++#++(int256 value) → int64++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int64 from int256, reverting on
|
|
overflow (when the input is less than smallest int64 or
|
|
greater than largest int64).
|
|
|
|
Counterpart to Solidity's `int64` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 64 bits
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt56-int256-]]
|
|
==== `[.contract-item-name]#++toInt56++#++(int256 value) → int56++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int56 from int256, reverting on
|
|
overflow (when the input is less than smallest int56 or
|
|
greater than largest int56).
|
|
|
|
Counterpart to Solidity's `int56` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 56 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt48-int256-]]
|
|
==== `[.contract-item-name]#++toInt48++#++(int256 value) → int48++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int48 from int256, reverting on
|
|
overflow (when the input is less than smallest int48 or
|
|
greater than largest int48).
|
|
|
|
Counterpart to Solidity's `int48` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 48 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt40-int256-]]
|
|
==== `[.contract-item-name]#++toInt40++#++(int256 value) → int40++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int40 from int256, reverting on
|
|
overflow (when the input is less than smallest int40 or
|
|
greater than largest int40).
|
|
|
|
Counterpart to Solidity's `int40` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 40 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt32-int256-]]
|
|
==== `[.contract-item-name]#++toInt32++#++(int256 value) → int32++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int32 from int256, reverting on
|
|
overflow (when the input is less than smallest int32 or
|
|
greater than largest int32).
|
|
|
|
Counterpart to Solidity's `int32` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 32 bits
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt24-int256-]]
|
|
==== `[.contract-item-name]#++toInt24++#++(int256 value) → int24++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int24 from int256, reverting on
|
|
overflow (when the input is less than smallest int24 or
|
|
greater than largest int24).
|
|
|
|
Counterpart to Solidity's `int24` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 24 bits
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt16-int256-]]
|
|
==== `[.contract-item-name]#++toInt16++#++(int256 value) → int16++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int16 from int256, reverting on
|
|
overflow (when the input is less than smallest int16 or
|
|
greater than largest int16).
|
|
|
|
Counterpart to Solidity's `int16` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 16 bits
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt8-int256-]]
|
|
==== `[.contract-item-name]#++toInt8++#++(int256 value) → int8++` [.item-kind]#internal#
|
|
|
|
Returns the downcasted int8 from int256, reverting on
|
|
overflow (when the input is less than smallest int8 or
|
|
greater than largest int8).
|
|
|
|
Counterpart to Solidity's `int8` operator.
|
|
|
|
Requirements:
|
|
|
|
- input must fit into 8 bits
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[SafeCast-toInt256-uint256-]]
|
|
==== `[.contract-item-name]#++toInt256++#++(uint256 value) → int256++` [.item-kind]#internal#
|
|
|
|
Converts an unsigned uint256 into a signed int256.
|
|
|
|
Requirements:
|
|
|
|
- input must be less than or equal to maxInt256.
|
|
|
|
_Available since v3.0._
|
|
|
|
|
|
|
|
|
|
:SafeMath: pass:normal[xref:#SafeMath[`++SafeMath++`]]
|
|
:tryAdd: pass:normal[xref:#SafeMath-tryAdd-uint256-uint256-[`++tryAdd++`]]
|
|
:trySub: pass:normal[xref:#SafeMath-trySub-uint256-uint256-[`++trySub++`]]
|
|
:tryMul: pass:normal[xref:#SafeMath-tryMul-uint256-uint256-[`++tryMul++`]]
|
|
:tryDiv: pass:normal[xref:#SafeMath-tryDiv-uint256-uint256-[`++tryDiv++`]]
|
|
:tryMod: pass:normal[xref:#SafeMath-tryMod-uint256-uint256-[`++tryMod++`]]
|
|
:add: pass:normal[xref:#SafeMath-add-uint256-uint256-[`++add++`]]
|
|
:sub: pass:normal[xref:#SafeMath-sub-uint256-uint256-[`++sub++`]]
|
|
:mul: pass:normal[xref:#SafeMath-mul-uint256-uint256-[`++mul++`]]
|
|
:div: pass:normal[xref:#SafeMath-div-uint256-uint256-[`++div++`]]
|
|
:mod: pass:normal[xref:#SafeMath-mod-uint256-uint256-[`++mod++`]]
|
|
:sub: pass:normal[xref:#SafeMath-sub-uint256-uint256-string-[`++sub++`]]
|
|
:div: pass:normal[xref:#SafeMath-div-uint256-uint256-string-[`++div++`]]
|
|
:mod: pass:normal[xref:#SafeMath-mod-uint256-uint256-string-[`++mod++`]]
|
|
|
|
[.contract]
|
|
[[SafeMath]]
|
|
=== `++SafeMath++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/math/SafeMath.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
|
|
```
|
|
|
|
Wrappers over Solidity's arithmetic operations.
|
|
|
|
NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
|
|
now has built in overflow checking.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-SafeMath-tryAdd-uint256-uint256-}[`++tryAdd(a, b)++`]
|
|
* {xref-SafeMath-trySub-uint256-uint256-}[`++trySub(a, b)++`]
|
|
* {xref-SafeMath-tryMul-uint256-uint256-}[`++tryMul(a, b)++`]
|
|
* {xref-SafeMath-tryDiv-uint256-uint256-}[`++tryDiv(a, b)++`]
|
|
* {xref-SafeMath-tryMod-uint256-uint256-}[`++tryMod(a, b)++`]
|
|
* {xref-SafeMath-add-uint256-uint256-}[`++add(a, b)++`]
|
|
* {xref-SafeMath-sub-uint256-uint256-}[`++sub(a, b)++`]
|
|
* {xref-SafeMath-mul-uint256-uint256-}[`++mul(a, b)++`]
|
|
* {xref-SafeMath-div-uint256-uint256-}[`++div(a, b)++`]
|
|
* {xref-SafeMath-mod-uint256-uint256-}[`++mod(a, b)++`]
|
|
* {xref-SafeMath-sub-uint256-uint256-string-}[`++sub(a, b, errorMessage)++`]
|
|
* {xref-SafeMath-div-uint256-uint256-string-}[`++div(a, b, errorMessage)++`]
|
|
* {xref-SafeMath-mod-uint256-uint256-string-}[`++mod(a, b, errorMessage)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[SafeMath-tryAdd-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++tryAdd++#++(uint256 a, uint256 b) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the addition of two unsigned integers, with an overflow flag.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[SafeMath-trySub-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++trySub++#++(uint256 a, uint256 b) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the subtraction of two unsigned integers, with an overflow flag.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[SafeMath-tryMul-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++tryMul++#++(uint256 a, uint256 b) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the multiplication of two unsigned integers, with an overflow flag.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[SafeMath-tryDiv-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++tryDiv++#++(uint256 a, uint256 b) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the division of two unsigned integers, with a division by zero flag.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[SafeMath-tryMod-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++tryMod++#++(uint256 a, uint256 b) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the remainder of dividing two unsigned integers, with a division by zero flag.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[SafeMath-add-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++add++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the addition of two unsigned integers, reverting on
|
|
overflow.
|
|
|
|
Counterpart to Solidity's `+` operator.
|
|
|
|
Requirements:
|
|
|
|
- Addition cannot overflow.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-sub-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++sub++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the subtraction of two unsigned integers, reverting on
|
|
overflow (when the result is negative).
|
|
|
|
Counterpart to Solidity's `-` operator.
|
|
|
|
Requirements:
|
|
|
|
- Subtraction cannot overflow.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-mul-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++mul++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the multiplication of two unsigned integers, reverting on
|
|
overflow.
|
|
|
|
Counterpart to Solidity's `*` operator.
|
|
|
|
Requirements:
|
|
|
|
- Multiplication cannot overflow.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-div-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++div++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the integer division of two unsigned integers, reverting on
|
|
division by zero. The result is rounded towards zero.
|
|
|
|
Counterpart to Solidity's `/` operator.
|
|
|
|
Requirements:
|
|
|
|
- The divisor cannot be zero.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-mod-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++mod++#++(uint256 a, uint256 b) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
|
|
reverting when dividing by zero.
|
|
|
|
Counterpart to Solidity's `%` operator. This function uses a `revert`
|
|
opcode (which leaves remaining gas untouched) while Solidity uses an
|
|
invalid opcode to revert (consuming all remaining gas).
|
|
|
|
Requirements:
|
|
|
|
- The divisor cannot be zero.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-sub-uint256-uint256-string-]]
|
|
==== `[.contract-item-name]#++sub++#++(uint256 a, uint256 b, string errorMessage) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the subtraction of two unsigned integers, reverting with custom message on
|
|
overflow (when the result is negative).
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {trySub}.
|
|
|
|
Counterpart to Solidity's `-` operator.
|
|
|
|
Requirements:
|
|
|
|
- Subtraction cannot overflow.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-div-uint256-uint256-string-]]
|
|
==== `[.contract-item-name]#++div++#++(uint256 a, uint256 b, string errorMessage) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the integer division of two unsigned integers, reverting with custom message on
|
|
division by zero. The result is rounded towards zero.
|
|
|
|
Counterpart to Solidity's `/` operator. Note: this function uses a
|
|
`revert` opcode (which leaves remaining gas untouched) while Solidity
|
|
uses an invalid opcode to revert (consuming all remaining gas).
|
|
|
|
Requirements:
|
|
|
|
- The divisor cannot be zero.
|
|
|
|
[.contract-item]
|
|
[[SafeMath-mod-uint256-uint256-string-]]
|
|
==== `[.contract-item-name]#++mod++#++(uint256 a, uint256 b, string errorMessage) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
|
|
reverting with custom message when dividing by zero.
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {tryMod}.
|
|
|
|
Counterpart to Solidity's `%` operator. This function uses a `revert`
|
|
opcode (which leaves remaining gas untouched) while Solidity uses an
|
|
invalid opcode to revert (consuming all remaining gas).
|
|
|
|
Requirements:
|
|
|
|
- The divisor cannot be zero.
|
|
|
|
|
|
|
|
|
|
:SignedSafeMath: pass:normal[xref:#SignedSafeMath[`++SignedSafeMath++`]]
|
|
:mul: pass:normal[xref:#SignedSafeMath-mul-int256-int256-[`++mul++`]]
|
|
:div: pass:normal[xref:#SignedSafeMath-div-int256-int256-[`++div++`]]
|
|
:sub: pass:normal[xref:#SignedSafeMath-sub-int256-int256-[`++sub++`]]
|
|
:add: pass:normal[xref:#SignedSafeMath-add-int256-int256-[`++add++`]]
|
|
|
|
[.contract]
|
|
[[SignedSafeMath]]
|
|
=== `++SignedSafeMath++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/math/SignedSafeMath.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/math/SignedSafeMath.sol";
|
|
```
|
|
|
|
Wrappers over Solidity's arithmetic operations.
|
|
|
|
NOTE: `SignedSafeMath` is no longer needed starting with Solidity 0.8. The compiler
|
|
now has built in overflow checking.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-SignedSafeMath-mul-int256-int256-}[`++mul(a, b)++`]
|
|
* {xref-SignedSafeMath-div-int256-int256-}[`++div(a, b)++`]
|
|
* {xref-SignedSafeMath-sub-int256-int256-}[`++sub(a, b)++`]
|
|
* {xref-SignedSafeMath-add-int256-int256-}[`++add(a, b)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[SignedSafeMath-mul-int256-int256-]]
|
|
==== `[.contract-item-name]#++mul++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the multiplication of two signed integers, reverting on
|
|
overflow.
|
|
|
|
Counterpart to Solidity's `*` operator.
|
|
|
|
Requirements:
|
|
|
|
- Multiplication cannot overflow.
|
|
|
|
[.contract-item]
|
|
[[SignedSafeMath-div-int256-int256-]]
|
|
==== `[.contract-item-name]#++div++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the integer division of two signed integers. Reverts on
|
|
division by zero. The result is rounded towards zero.
|
|
|
|
Counterpart to Solidity's `/` operator.
|
|
|
|
Requirements:
|
|
|
|
- The divisor cannot be zero.
|
|
|
|
[.contract-item]
|
|
[[SignedSafeMath-sub-int256-int256-]]
|
|
==== `[.contract-item-name]#++sub++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the subtraction of two signed integers, reverting on
|
|
overflow.
|
|
|
|
Counterpart to Solidity's `-` operator.
|
|
|
|
Requirements:
|
|
|
|
- Subtraction cannot overflow.
|
|
|
|
[.contract-item]
|
|
[[SignedSafeMath-add-int256-int256-]]
|
|
==== `[.contract-item-name]#++add++#++(int256 a, int256 b) → int256++` [.item-kind]#internal#
|
|
|
|
Returns the addition of two signed integers, reverting on
|
|
overflow.
|
|
|
|
Counterpart to Solidity's `+` operator.
|
|
|
|
Requirements:
|
|
|
|
- Addition cannot overflow.
|
|
|
|
|
|
|
|
|
|
== Cryptography
|
|
|
|
:ECDSA: pass:normal[xref:#ECDSA[`++ECDSA++`]]
|
|
:tryRecover: pass:normal[xref:#ECDSA-tryRecover-bytes32-bytes-[`++tryRecover++`]]
|
|
:recover: pass:normal[xref:#ECDSA-recover-bytes32-bytes-[`++recover++`]]
|
|
:tryRecover: pass:normal[xref:#ECDSA-tryRecover-bytes32-bytes32-bytes32-[`++tryRecover++`]]
|
|
:recover: pass:normal[xref:#ECDSA-recover-bytes32-bytes32-bytes32-[`++recover++`]]
|
|
:tryRecover: pass:normal[xref:#ECDSA-tryRecover-bytes32-uint8-bytes32-bytes32-[`++tryRecover++`]]
|
|
:recover: pass:normal[xref:#ECDSA-recover-bytes32-uint8-bytes32-bytes32-[`++recover++`]]
|
|
:toEthSignedMessageHash: pass:normal[xref:#ECDSA-toEthSignedMessageHash-bytes32-[`++toEthSignedMessageHash++`]]
|
|
:toEthSignedMessageHash: pass:normal[xref:#ECDSA-toEthSignedMessageHash-bytes-[`++toEthSignedMessageHash++`]]
|
|
:toTypedDataHash: pass:normal[xref:#ECDSA-toTypedDataHash-bytes32-bytes32-[`++toTypedDataHash++`]]
|
|
:RecoverError: pass:normal[xref:#ECDSA-RecoverError[`++RecoverError++`]]
|
|
|
|
[.contract]
|
|
[[ECDSA]]
|
|
=== `++ECDSA++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/cryptography/ECDSA.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
|
|
```
|
|
|
|
Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
|
|
|
|
These functions can be used to verify that a message was signed by the holder
|
|
of the private keys of a given address.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-ECDSA-tryRecover-bytes32-bytes-}[`++tryRecover(hash, signature)++`]
|
|
* {xref-ECDSA-recover-bytes32-bytes-}[`++recover(hash, signature)++`]
|
|
* {xref-ECDSA-tryRecover-bytes32-bytes32-bytes32-}[`++tryRecover(hash, r, vs)++`]
|
|
* {xref-ECDSA-recover-bytes32-bytes32-bytes32-}[`++recover(hash, r, vs)++`]
|
|
* {xref-ECDSA-tryRecover-bytes32-uint8-bytes32-bytes32-}[`++tryRecover(hash, v, r, s)++`]
|
|
* {xref-ECDSA-recover-bytes32-uint8-bytes32-bytes32-}[`++recover(hash, v, r, s)++`]
|
|
* {xref-ECDSA-toEthSignedMessageHash-bytes32-}[`++toEthSignedMessageHash(hash)++`]
|
|
* {xref-ECDSA-toEthSignedMessageHash-bytes-}[`++toEthSignedMessageHash(s)++`]
|
|
* {xref-ECDSA-toTypedDataHash-bytes32-bytes32-}[`++toTypedDataHash(domainSeparator, structHash)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[ECDSA-tryRecover-bytes32-bytes-]]
|
|
==== `[.contract-item-name]#++tryRecover++#++(bytes32 hash, bytes signature) → address, enum ECDSA.RecoverError++` [.item-kind]#internal#
|
|
|
|
Returns the address that signed a hashed message (`hash`) with
|
|
`signature` or error string. This address can then be used for verification purposes.
|
|
|
|
The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
|
|
this function rejects them by requiring the `s` value to be in the lower
|
|
half order, and the `v` value to be either 27 or 28.
|
|
|
|
IMPORTANT: `hash` _must_ be the result of a hash operation for the
|
|
verification to be secure: it is possible to craft signatures that
|
|
recover to arbitrary addresses for non-hashed data. A safe way to ensure
|
|
this is by receiving a hash of the original message (which may otherwise
|
|
be too long), and then calling {toEthSignedMessageHash} on it.
|
|
|
|
Documentation for signature generation:
|
|
- with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]
|
|
- with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]
|
|
|
|
_Available since v4.3._
|
|
|
|
[.contract-item]
|
|
[[ECDSA-recover-bytes32-bytes-]]
|
|
==== `[.contract-item-name]#++recover++#++(bytes32 hash, bytes signature) → address++` [.item-kind]#internal#
|
|
|
|
Returns the address that signed a hashed message (`hash`) with
|
|
`signature`. This address can then be used for verification purposes.
|
|
|
|
The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
|
|
this function rejects them by requiring the `s` value to be in the lower
|
|
half order, and the `v` value to be either 27 or 28.
|
|
|
|
IMPORTANT: `hash` _must_ be the result of a hash operation for the
|
|
verification to be secure: it is possible to craft signatures that
|
|
recover to arbitrary addresses for non-hashed data. A safe way to ensure
|
|
this is by receiving a hash of the original message (which may otherwise
|
|
be too long), and then calling {toEthSignedMessageHash} on it.
|
|
|
|
[.contract-item]
|
|
[[ECDSA-tryRecover-bytes32-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++tryRecover++#++(bytes32 hash, bytes32 r, bytes32 vs) → address, enum ECDSA.RecoverError++` [.item-kind]#internal#
|
|
|
|
Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.
|
|
|
|
See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]
|
|
|
|
_Available since v4.3._
|
|
|
|
[.contract-item]
|
|
[[ECDSA-recover-bytes32-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++recover++#++(bytes32 hash, bytes32 r, bytes32 vs) → address++` [.item-kind]#internal#
|
|
|
|
Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.
|
|
|
|
_Available since v4.2._
|
|
|
|
[.contract-item]
|
|
[[ECDSA-tryRecover-bytes32-uint8-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++tryRecover++#++(bytes32 hash, uint8 v, bytes32 r, bytes32 s) → address, enum ECDSA.RecoverError++` [.item-kind]#internal#
|
|
|
|
Overload of {ECDSA-tryRecover} that receives the `v`,
|
|
`r` and `s` signature fields separately.
|
|
|
|
_Available since v4.3._
|
|
|
|
[.contract-item]
|
|
[[ECDSA-recover-bytes32-uint8-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++recover++#++(bytes32 hash, uint8 v, bytes32 r, bytes32 s) → address++` [.item-kind]#internal#
|
|
|
|
Overload of {ECDSA-recover} that receives the `v`,
|
|
`r` and `s` signature fields separately.
|
|
/
|
|
|
|
[.contract-item]
|
|
[[ECDSA-toEthSignedMessageHash-bytes32-]]
|
|
==== `[.contract-item-name]#++toEthSignedMessageHash++#++(bytes32 hash) → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns an Ethereum Signed Message, created from a `hash`. This
|
|
produces hash corresponding to the one signed with the
|
|
https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
|
|
JSON-RPC method as part of EIP-191.
|
|
|
|
See {recover}.
|
|
/
|
|
|
|
[.contract-item]
|
|
[[ECDSA-toEthSignedMessageHash-bytes-]]
|
|
==== `[.contract-item-name]#++toEthSignedMessageHash++#++(bytes s) → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns an Ethereum Signed Message, created from `s`. This
|
|
produces hash corresponding to the one signed with the
|
|
https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
|
|
JSON-RPC method as part of EIP-191.
|
|
|
|
See {recover}.
|
|
/
|
|
|
|
[.contract-item]
|
|
[[ECDSA-toTypedDataHash-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++toTypedDataHash++#++(bytes32 domainSeparator, bytes32 structHash) → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns an Ethereum Signed Typed Data, created from a
|
|
`domainSeparator` and a `structHash`. This produces hash corresponding
|
|
to the one signed with the
|
|
https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]
|
|
JSON-RPC method as part of EIP-712.
|
|
|
|
See {recover}.
|
|
/
|
|
|
|
|
|
|
|
|
|
:SignatureChecker: pass:normal[xref:#SignatureChecker[`++SignatureChecker++`]]
|
|
:isValidSignatureNow: pass:normal[xref:#SignatureChecker-isValidSignatureNow-address-bytes32-bytes-[`++isValidSignatureNow++`]]
|
|
|
|
[.contract]
|
|
[[SignatureChecker]]
|
|
=== `++SignatureChecker++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/cryptography/SignatureChecker.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol";
|
|
```
|
|
|
|
Signature verification helper that can be used instead of `ECDSA.recover` to seamlessly support both ECDSA
|
|
signatures from externally owned accounts (EOAs) as well as ERC1271 signatures from smart contract wallets like
|
|
Argent and Gnosis Safe.
|
|
|
|
_Available since v4.1._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-SignatureChecker-isValidSignatureNow-address-bytes32-bytes-}[`++isValidSignatureNow(signer, hash, signature)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[SignatureChecker-isValidSignatureNow-address-bytes32-bytes-]]
|
|
==== `[.contract-item-name]#++isValidSignatureNow++#++(address signer, bytes32 hash, bytes signature) → bool++` [.item-kind]#internal#
|
|
|
|
Checks if a signature is valid for a given signer and data hash. If the signer is a smart contract, the
|
|
signature is validated against that smart contract using ERC1271, otherwise it's validated using `ECDSA.recover`.
|
|
|
|
NOTE: Unlike ECDSA signatures, contract signatures are revocable, and the outcome of this function can thus
|
|
change through time. It could return true at block N and false at block N+1 (or the opposite).
|
|
|
|
|
|
|
|
|
|
:MerkleProof: pass:normal[xref:#MerkleProof[`++MerkleProof++`]]
|
|
:verify: pass:normal[xref:#MerkleProof-verify-bytes32---bytes32-bytes32-[`++verify++`]]
|
|
:verifyCalldata: pass:normal[xref:#MerkleProof-verifyCalldata-bytes32---bytes32-bytes32-[`++verifyCalldata++`]]
|
|
:processProof: pass:normal[xref:#MerkleProof-processProof-bytes32---bytes32-[`++processProof++`]]
|
|
:processProofCalldata: pass:normal[xref:#MerkleProof-processProofCalldata-bytes32---bytes32-[`++processProofCalldata++`]]
|
|
:multiProofVerify: pass:normal[xref:#MerkleProof-multiProofVerify-bytes32---bool---bytes32-bytes32---[`++multiProofVerify++`]]
|
|
:multiProofVerifyCalldata: pass:normal[xref:#MerkleProof-multiProofVerifyCalldata-bytes32---bool---bytes32-bytes32---[`++multiProofVerifyCalldata++`]]
|
|
:processMultiProof: pass:normal[xref:#MerkleProof-processMultiProof-bytes32---bool---bytes32---[`++processMultiProof++`]]
|
|
:processMultiProofCalldata: pass:normal[xref:#MerkleProof-processMultiProofCalldata-bytes32---bool---bytes32---[`++processMultiProofCalldata++`]]
|
|
|
|
[.contract]
|
|
[[MerkleProof]]
|
|
=== `++MerkleProof++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/cryptography/MerkleProof.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";
|
|
```
|
|
|
|
These functions deal with verification of Merkle Tree proofs.
|
|
|
|
The proofs can be generated using the JavaScript library
|
|
https://github.com/miguelmota/merkletreejs[merkletreejs].
|
|
Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
|
|
|
|
See `test/utils/cryptography/MerkleProof.test.js` for some examples.
|
|
|
|
WARNING: You should avoid using leaf values that are 64 bytes long prior to
|
|
hashing, or use a hash function other than keccak256 for hashing leaves.
|
|
This is because the concatenation of a sorted pair of internal nodes in
|
|
the merkle tree could be reinterpreted as a leaf value.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-MerkleProof-verify-bytes32---bytes32-bytes32-}[`++verify(proof, root, leaf)++`]
|
|
* {xref-MerkleProof-verifyCalldata-bytes32---bytes32-bytes32-}[`++verifyCalldata(proof, root, leaf)++`]
|
|
* {xref-MerkleProof-processProof-bytes32---bytes32-}[`++processProof(proof, leaf)++`]
|
|
* {xref-MerkleProof-processProofCalldata-bytes32---bytes32-}[`++processProofCalldata(proof, leaf)++`]
|
|
* {xref-MerkleProof-multiProofVerify-bytes32---bool---bytes32-bytes32---}[`++multiProofVerify(proof, proofFlags, root, leaves)++`]
|
|
* {xref-MerkleProof-multiProofVerifyCalldata-bytes32---bool---bytes32-bytes32---}[`++multiProofVerifyCalldata(proof, proofFlags, root, leaves)++`]
|
|
* {xref-MerkleProof-processMultiProof-bytes32---bool---bytes32---}[`++processMultiProof(proof, proofFlags, leaves)++`]
|
|
* {xref-MerkleProof-processMultiProofCalldata-bytes32---bool---bytes32---}[`++processMultiProofCalldata(proof, proofFlags, leaves)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-verify-bytes32---bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++verify++#++(bytes32[] proof, bytes32 root, bytes32 leaf) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if a `leaf` can be proved to be a part of a Merkle tree
|
|
defined by `root`. For this, a `proof` must be provided, containing
|
|
sibling hashes on the branch from the leaf to the root of the tree. Each
|
|
pair of leaves and each pair of pre-images are assumed to be sorted.
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-verifyCalldata-bytes32---bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++verifyCalldata++#++(bytes32[] proof, bytes32 root, bytes32 leaf) → bool++` [.item-kind]#internal#
|
|
|
|
Calldata version of {verify}
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-processProof-bytes32---bytes32-]]
|
|
==== `[.contract-item-name]#++processProof++#++(bytes32[] proof, bytes32 leaf) → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns the rebuilt hash obtained by traversing a Merkle tree up
|
|
from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt
|
|
hash matches the root of the tree. When processing the proof, the pairs
|
|
of leafs & pre-images are assumed to be sorted.
|
|
|
|
_Available since v4.4._
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-processProofCalldata-bytes32---bytes32-]]
|
|
==== `[.contract-item-name]#++processProofCalldata++#++(bytes32[] proof, bytes32 leaf) → bytes32++` [.item-kind]#internal#
|
|
|
|
Calldata version of {processProof}
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-multiProofVerify-bytes32---bool---bytes32-bytes32---]]
|
|
==== `[.contract-item-name]#++multiProofVerify++#++(bytes32[] proof, bool[] proofFlags, bytes32 root, bytes32[] leaves) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the `leaves` can be proved to be a part of a Merkle tree defined by
|
|
`root`, according to `proof` and `proofFlags` as described in {processMultiProof}.
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-multiProofVerifyCalldata-bytes32---bool---bytes32-bytes32---]]
|
|
==== `[.contract-item-name]#++multiProofVerifyCalldata++#++(bytes32[] proof, bool[] proofFlags, bytes32 root, bytes32[] leaves) → bool++` [.item-kind]#internal#
|
|
|
|
Calldata version of {multiProofVerify}
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-processMultiProof-bytes32---bool---bytes32---]]
|
|
==== `[.contract-item-name]#++processMultiProof++#++(bytes32[] proof, bool[] proofFlags, bytes32[] leaves) → bytes32 merkleRoot++` [.item-kind]#internal#
|
|
|
|
Returns the root of a tree reconstructed from `leaves` and the sibling nodes in `proof`,
|
|
consuming from one or the other at each step according to the instructions given by
|
|
`proofFlags`.
|
|
|
|
_Available since v4.7._
|
|
|
|
[.contract-item]
|
|
[[MerkleProof-processMultiProofCalldata-bytes32---bool---bytes32---]]
|
|
==== `[.contract-item-name]#++processMultiProofCalldata++#++(bytes32[] proof, bool[] proofFlags, bytes32[] leaves) → bytes32 merkleRoot++` [.item-kind]#internal#
|
|
|
|
Calldata version of {processMultiProof}
|
|
|
|
_Available since v4.7._
|
|
|
|
|
|
|
|
|
|
:EIP712: pass:normal[xref:#EIP712[`++EIP712++`]]
|
|
:constructor: pass:normal[xref:#EIP712-constructor-string-string-[`++constructor++`]]
|
|
:_domainSeparatorV4: pass:normal[xref:#EIP712-_domainSeparatorV4--[`++_domainSeparatorV4++`]]
|
|
:_hashTypedDataV4: pass:normal[xref:#EIP712-_hashTypedDataV4-bytes32-[`++_hashTypedDataV4++`]]
|
|
|
|
[.contract]
|
|
[[EIP712]]
|
|
=== `++EIP712++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/cryptography/draft-EIP712.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol";
|
|
```
|
|
|
|
https://eips.ethereum.org/EIPS/eip-712[EIP 712] is a standard for hashing and signing of typed structured data.
|
|
|
|
The encoding specified in the EIP is very generic, and such a generic implementation in Solidity is not feasible,
|
|
thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding
|
|
they need in their contracts using a combination of `abi.encode` and `keccak256`.
|
|
|
|
This contract implements the EIP 712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding
|
|
scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA
|
|
({_hashTypedDataV4}).
|
|
|
|
The implementation of the domain separator was designed to be as efficient as possible while still properly updating
|
|
the chain id to protect against replay attacks on an eventual fork of the chain.
|
|
|
|
NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method
|
|
https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].
|
|
|
|
_Available since v3.4._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-EIP712-constructor-string-string-}[`++constructor(name, version)++`]
|
|
* {xref-EIP712-_domainSeparatorV4--}[`++_domainSeparatorV4()++`]
|
|
* {xref-EIP712-_hashTypedDataV4-bytes32-}[`++_hashTypedDataV4(structHash)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[EIP712-constructor-string-string-]]
|
|
==== `[.contract-item-name]#++constructor++#++(string name, string version)++` [.item-kind]#internal#
|
|
|
|
Initializes the domain separator and parameter caches.
|
|
|
|
The meaning of `name` and `version` is specified in
|
|
https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP 712]:
|
|
|
|
- `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.
|
|
- `version`: the current major version of the signing domain.
|
|
|
|
NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart
|
|
contract upgrade].
|
|
|
|
[.contract-item]
|
|
[[EIP712-_domainSeparatorV4--]]
|
|
==== `[.contract-item-name]#++_domainSeparatorV4++#++() → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns the domain separator for the current chain.
|
|
|
|
[.contract-item]
|
|
[[EIP712-_hashTypedDataV4-bytes32-]]
|
|
==== `[.contract-item-name]#++_hashTypedDataV4++#++(bytes32 structHash) → bytes32++` [.item-kind]#internal#
|
|
|
|
Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this
|
|
function returns the hash of the fully encoded EIP712 message for this domain.
|
|
|
|
This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:
|
|
|
|
```solidity
|
|
bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(
|
|
keccak256("Mail(address to,string contents)"),
|
|
mailTo,
|
|
keccak256(bytes(mailContents))
|
|
)));
|
|
address signer = ECDSA.recover(digest, signature);
|
|
```
|
|
|
|
|
|
|
|
|
|
== Escrow
|
|
|
|
:ConditionalEscrow: pass:normal[xref:#ConditionalEscrow[`++ConditionalEscrow++`]]
|
|
:withdrawalAllowed: pass:normal[xref:#ConditionalEscrow-withdrawalAllowed-address-[`++withdrawalAllowed++`]]
|
|
:withdraw: pass:normal[xref:#ConditionalEscrow-withdraw-address-payable-[`++withdraw++`]]
|
|
|
|
[.contract]
|
|
[[ConditionalEscrow]]
|
|
=== `++ConditionalEscrow++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/escrow/ConditionalEscrow.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol";
|
|
```
|
|
|
|
Base abstract escrow to only allow withdrawal if a condition is met.
|
|
Intended usage: See {Escrow}. Same usage guidelines apply here.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-ConditionalEscrow-withdrawalAllowed-address-}[`++withdrawalAllowed(payee)++`]
|
|
* {xref-ConditionalEscrow-withdraw-address-payable-}[`++withdraw(payee)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Escrow
|
|
* {xref-Escrow-depositsOf-address-}[`++depositsOf(payee)++`]
|
|
* {xref-Escrow-deposit-address-}[`++deposit(payee)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Ownable
|
|
* {xref-Ownable-constructor--}[`++constructor()++`]
|
|
* {xref-Ownable-owner--}[`++owner()++`]
|
|
* {xref-Ownable-_checkOwner--}[`++_checkOwner()++`]
|
|
* {xref-Ownable-renounceOwnership--}[`++renounceOwnership()++`]
|
|
* {xref-Ownable-transferOwnership-address-}[`++transferOwnership(newOwner)++`]
|
|
* {xref-Ownable-_transferOwnership-address-}[`++_transferOwnership(newOwner)++`]
|
|
|
|
--
|
|
|
|
[.contract-index]
|
|
.Events
|
|
--
|
|
|
|
[.contract-subindex-inherited]
|
|
.Escrow
|
|
* {xref-Escrow-Deposited-address-uint256-}[`++Deposited(payee, weiAmount)++`]
|
|
* {xref-Escrow-Withdrawn-address-uint256-}[`++Withdrawn(payee, weiAmount)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Ownable
|
|
* {xref-Ownable-OwnershipTransferred-address-address-}[`++OwnershipTransferred(previousOwner, newOwner)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Context
|
|
|
|
--
|
|
|
|
|
|
[.contract-item]
|
|
[[ConditionalEscrow-withdrawalAllowed-address-]]
|
|
==== `[.contract-item-name]#++withdrawalAllowed++#++(address payee) → bool++` [.item-kind]#public#
|
|
|
|
Returns whether an address is allowed to withdraw their funds. To be
|
|
implemented by derived contracts.
|
|
|
|
|
|
[.contract-item]
|
|
[[ConditionalEscrow-withdraw-address-payable-]]
|
|
==== `[.contract-item-name]#++withdraw++#++(address payable payee)++` [.item-kind]#public#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:Escrow: pass:normal[xref:#Escrow[`++Escrow++`]]
|
|
:depositsOf: pass:normal[xref:#Escrow-depositsOf-address-[`++depositsOf++`]]
|
|
:deposit: pass:normal[xref:#Escrow-deposit-address-[`++deposit++`]]
|
|
:withdraw: pass:normal[xref:#Escrow-withdraw-address-payable-[`++withdraw++`]]
|
|
:Deposited: pass:normal[xref:#Escrow-Deposited-address-uint256-[`++Deposited++`]]
|
|
:Withdrawn: pass:normal[xref:#Escrow-Withdrawn-address-uint256-[`++Withdrawn++`]]
|
|
|
|
[.contract]
|
|
[[Escrow]]
|
|
=== `++Escrow++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/escrow/Escrow.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/escrow/Escrow.sol";
|
|
```
|
|
|
|
Base escrow contract, holds funds designated for a payee until they
|
|
withdraw them.
|
|
|
|
Intended usage: This contract (and derived escrow contracts) should be a
|
|
standalone contract, that only interacts with the contract that instantiated
|
|
it. That way, it is guaranteed that all Ether will be handled according to
|
|
the `Escrow` rules, and there is no need to check for payable functions or
|
|
transfers in the inheritance tree. The contract that uses the escrow as its
|
|
payment method should be its owner, and provide public methods redirecting
|
|
to the escrow's deposit and withdraw.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Escrow-depositsOf-address-}[`++depositsOf(payee)++`]
|
|
* {xref-Escrow-deposit-address-}[`++deposit(payee)++`]
|
|
* {xref-Escrow-withdraw-address-payable-}[`++withdraw(payee)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Ownable
|
|
* {xref-Ownable-constructor--}[`++constructor()++`]
|
|
* {xref-Ownable-owner--}[`++owner()++`]
|
|
* {xref-Ownable-_checkOwner--}[`++_checkOwner()++`]
|
|
* {xref-Ownable-renounceOwnership--}[`++renounceOwnership()++`]
|
|
* {xref-Ownable-transferOwnership-address-}[`++transferOwnership(newOwner)++`]
|
|
* {xref-Ownable-_transferOwnership-address-}[`++_transferOwnership(newOwner)++`]
|
|
|
|
--
|
|
|
|
[.contract-index]
|
|
.Events
|
|
--
|
|
* {xref-Escrow-Deposited-address-uint256-}[`++Deposited(payee, weiAmount)++`]
|
|
* {xref-Escrow-Withdrawn-address-uint256-}[`++Withdrawn(payee, weiAmount)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Ownable
|
|
* {xref-Ownable-OwnershipTransferred-address-address-}[`++OwnershipTransferred(previousOwner, newOwner)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Context
|
|
|
|
--
|
|
|
|
|
|
[.contract-item]
|
|
[[Escrow-depositsOf-address-]]
|
|
==== `[.contract-item-name]#++depositsOf++#++(address payee) → uint256++` [.item-kind]#public#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Escrow-deposit-address-]]
|
|
==== `[.contract-item-name]#++deposit++#++(address payee)++` [.item-kind]#public#
|
|
|
|
Stores the sent amount as credit to be withdrawn.
|
|
|
|
|
|
[.contract-item]
|
|
[[Escrow-withdraw-address-payable-]]
|
|
==== `[.contract-item-name]#++withdraw++#++(address payable payee)++` [.item-kind]#public#
|
|
|
|
Withdraw accumulated balance for a payee, forwarding all gas to the
|
|
recipient.
|
|
|
|
WARNING: Forwarding all gas opens the door to reentrancy vulnerabilities.
|
|
Make sure you trust the recipient, or are either following the
|
|
checks-effects-interactions pattern or using {ReentrancyGuard}.
|
|
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Escrow-Deposited-address-uint256-]]
|
|
==== `[.contract-item-name]#++Deposited++#++(address payee, uint256 weiAmount)++` [.item-kind]#event#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Escrow-Withdrawn-address-uint256-]]
|
|
==== `[.contract-item-name]#++Withdrawn++#++(address payee, uint256 weiAmount)++` [.item-kind]#event#
|
|
|
|
|
|
|
|
|
|
|
|
:RefundEscrow: pass:normal[xref:#RefundEscrow[`++RefundEscrow++`]]
|
|
:constructor: pass:normal[xref:#RefundEscrow-constructor-address-payable-[`++constructor++`]]
|
|
:state: pass:normal[xref:#RefundEscrow-state--[`++state++`]]
|
|
:beneficiary: pass:normal[xref:#RefundEscrow-beneficiary--[`++beneficiary++`]]
|
|
:deposit: pass:normal[xref:#RefundEscrow-deposit-address-[`++deposit++`]]
|
|
:close: pass:normal[xref:#RefundEscrow-close--[`++close++`]]
|
|
:enableRefunds: pass:normal[xref:#RefundEscrow-enableRefunds--[`++enableRefunds++`]]
|
|
:beneficiaryWithdraw: pass:normal[xref:#RefundEscrow-beneficiaryWithdraw--[`++beneficiaryWithdraw++`]]
|
|
:withdrawalAllowed: pass:normal[xref:#RefundEscrow-withdrawalAllowed-address-[`++withdrawalAllowed++`]]
|
|
:RefundsClosed: pass:normal[xref:#RefundEscrow-RefundsClosed--[`++RefundsClosed++`]]
|
|
:RefundsEnabled: pass:normal[xref:#RefundEscrow-RefundsEnabled--[`++RefundsEnabled++`]]
|
|
:State: pass:normal[xref:#RefundEscrow-State[`++State++`]]
|
|
|
|
[.contract]
|
|
[[RefundEscrow]]
|
|
=== `++RefundEscrow++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/escrow/RefundEscrow.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/escrow/RefundEscrow.sol";
|
|
```
|
|
|
|
Escrow that holds funds for a beneficiary, deposited from multiple
|
|
parties.
|
|
Intended usage: See {Escrow}. Same usage guidelines apply here.
|
|
The owner account (that is, the contract that instantiates this
|
|
contract) may deposit, close the deposit period, and allow for either
|
|
withdrawal by the beneficiary, or refunds to the depositors. All interactions
|
|
with `RefundEscrow` will be made through the owner contract.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-RefundEscrow-constructor-address-payable-}[`++constructor(beneficiary_)++`]
|
|
* {xref-RefundEscrow-state--}[`++state()++`]
|
|
* {xref-RefundEscrow-beneficiary--}[`++beneficiary()++`]
|
|
* {xref-RefundEscrow-deposit-address-}[`++deposit(refundee)++`]
|
|
* {xref-RefundEscrow-close--}[`++close()++`]
|
|
* {xref-RefundEscrow-enableRefunds--}[`++enableRefunds()++`]
|
|
* {xref-RefundEscrow-beneficiaryWithdraw--}[`++beneficiaryWithdraw()++`]
|
|
* {xref-RefundEscrow-withdrawalAllowed-address-}[`++withdrawalAllowed(_)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.ConditionalEscrow
|
|
* {xref-ConditionalEscrow-withdraw-address-payable-}[`++withdraw(payee)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Escrow
|
|
* {xref-Escrow-depositsOf-address-}[`++depositsOf(payee)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Ownable
|
|
* {xref-Ownable-owner--}[`++owner()++`]
|
|
* {xref-Ownable-_checkOwner--}[`++_checkOwner()++`]
|
|
* {xref-Ownable-renounceOwnership--}[`++renounceOwnership()++`]
|
|
* {xref-Ownable-transferOwnership-address-}[`++transferOwnership(newOwner)++`]
|
|
* {xref-Ownable-_transferOwnership-address-}[`++_transferOwnership(newOwner)++`]
|
|
|
|
--
|
|
|
|
[.contract-index]
|
|
.Events
|
|
--
|
|
* {xref-RefundEscrow-RefundsClosed--}[`++RefundsClosed()++`]
|
|
* {xref-RefundEscrow-RefundsEnabled--}[`++RefundsEnabled()++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.ConditionalEscrow
|
|
|
|
[.contract-subindex-inherited]
|
|
.Escrow
|
|
* {xref-Escrow-Deposited-address-uint256-}[`++Deposited(payee, weiAmount)++`]
|
|
* {xref-Escrow-Withdrawn-address-uint256-}[`++Withdrawn(payee, weiAmount)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Ownable
|
|
* {xref-Ownable-OwnershipTransferred-address-address-}[`++OwnershipTransferred(previousOwner, newOwner)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.Context
|
|
|
|
--
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-constructor-address-payable-]]
|
|
==== `[.contract-item-name]#++constructor++#++(address payable beneficiary_)++` [.item-kind]#public#
|
|
|
|
Constructor.
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-state--]]
|
|
==== `[.contract-item-name]#++state++#++() → enum RefundEscrow.State++` [.item-kind]#public#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-beneficiary--]]
|
|
==== `[.contract-item-name]#++beneficiary++#++() → address payable++` [.item-kind]#public#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-deposit-address-]]
|
|
==== `[.contract-item-name]#++deposit++#++(address refundee)++` [.item-kind]#public#
|
|
|
|
Stores funds that may later be refunded.
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-close--]]
|
|
==== `[.contract-item-name]#++close++#++()++` [.item-kind]#public#
|
|
|
|
Allows for the beneficiary to withdraw their funds, rejecting
|
|
further deposits.
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-enableRefunds--]]
|
|
==== `[.contract-item-name]#++enableRefunds++#++()++` [.item-kind]#public#
|
|
|
|
Allows for refunds to take place, rejecting further deposits.
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-beneficiaryWithdraw--]]
|
|
==== `[.contract-item-name]#++beneficiaryWithdraw++#++()++` [.item-kind]#public#
|
|
|
|
Withdraws the beneficiary's funds.
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-withdrawalAllowed-address-]]
|
|
==== `[.contract-item-name]#++withdrawalAllowed++#++(address) → bool++` [.item-kind]#public#
|
|
|
|
Returns whether refundees can withdraw their deposits (be refunded). The overridden function receives a
|
|
'payee' argument, but we ignore it here since the condition is global, not per-payee.
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-RefundsClosed--]]
|
|
==== `[.contract-item-name]#++RefundsClosed++#++()++` [.item-kind]#event#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[RefundEscrow-RefundsEnabled--]]
|
|
==== `[.contract-item-name]#++RefundsEnabled++#++()++` [.item-kind]#event#
|
|
|
|
|
|
|
|
|
|
|
|
== Introspection
|
|
|
|
This set of interfaces and contracts deal with https://en.wikipedia.org/wiki/Type_introspection[type introspection] of contracts, that is, examining which functions can be called on them. This is usually referred to as a contract's _interface_.
|
|
|
|
Ethereum contracts have no native concept of an interface, so applications must usually simply trust they are not making an incorrect call. For trusted setups this is a non-issue, but often unknown and untrusted third-party addresses need to be interacted with. There may even not be any direct calls to them! (e.g. `ERC20` tokens may be sent to a contract that lacks a way to transfer them out of it, locking them forever). In these cases, a contract _declaring_ its interface can be very helpful in preventing errors.
|
|
|
|
There are two main ways to approach this.
|
|
|
|
* Locally, where a contract implements `IERC165` and declares an interface, and a second one queries it directly via `ERC165Checker`.
|
|
* Globally, where a global and unique registry (`IERC1820Registry`) is used to register implementers of a certain interface (`IERC1820Implementer`). It is then the registry that is queried, which allows for more complex setups, like contracts implementing interfaces for externally-owned accounts.
|
|
|
|
Note that, in all cases, accounts simply _declare_ their interfaces, but they are not required to actually implement them. This mechanism can therefore be used to both prevent errors and allow for complex interactions (see `ERC777`), but it must not be relied on for security.
|
|
|
|
:IERC165: pass:normal[xref:#IERC165[`++IERC165++`]]
|
|
:supportsInterface: pass:normal[xref:#IERC165-supportsInterface-bytes4-[`++supportsInterface++`]]
|
|
|
|
[.contract]
|
|
[[IERC165]]
|
|
=== `++IERC165++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/IERC165.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
```
|
|
|
|
Interface of the ERC165 standard, as defined in the
|
|
https://eips.ethereum.org/EIPS/eip-165[EIP].
|
|
|
|
Implementers can declare support of contract interfaces, which can then be
|
|
queried by others ({ERC165Checker}).
|
|
|
|
For an implementation, see {ERC165}.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-IERC165-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC165-supportsInterface-bytes4-]]
|
|
==== `[.contract-item-name]#++supportsInterface++#++(bytes4 interfaceId) → bool++` [.item-kind]#external#
|
|
|
|
Returns true if this contract implements the interface defined by
|
|
`interfaceId`. See the corresponding
|
|
https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
|
|
to learn more about how these ids are created.
|
|
|
|
This function call must use less than 30 000 gas.
|
|
|
|
|
|
|
|
|
|
:ERC165: pass:normal[xref:#ERC165[`++ERC165++`]]
|
|
:supportsInterface: pass:normal[xref:#ERC165-supportsInterface-bytes4-[`++supportsInterface++`]]
|
|
|
|
[.contract]
|
|
[[ERC165]]
|
|
=== `++ERC165++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/ERC165.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/ERC165.sol";
|
|
```
|
|
|
|
Implementation of the {IERC165} interface.
|
|
|
|
Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
|
|
for the additional interface id that will be supported. For example:
|
|
|
|
```solidity
|
|
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
|
|
return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
|
|
}
|
|
```
|
|
|
|
Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-ERC165-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.IERC165
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[ERC165-supportsInterface-bytes4-]]
|
|
==== `[.contract-item-name]#++supportsInterface++#++(bytes4 interfaceId) → bool++` [.item-kind]#public#
|
|
|
|
See {IERC165-supportsInterface}.
|
|
|
|
|
|
|
|
|
|
:ERC165Storage: pass:normal[xref:#ERC165Storage[`++ERC165Storage++`]]
|
|
:supportsInterface: pass:normal[xref:#ERC165Storage-supportsInterface-bytes4-[`++supportsInterface++`]]
|
|
:_registerInterface: pass:normal[xref:#ERC165Storage-_registerInterface-bytes4-[`++_registerInterface++`]]
|
|
|
|
[.contract]
|
|
[[ERC165Storage]]
|
|
=== `++ERC165Storage++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/ERC165Storage.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/ERC165Storage.sol";
|
|
```
|
|
|
|
Storage based implementation of the {IERC165} interface.
|
|
|
|
Contracts may inherit from this and call {_registerInterface} to declare
|
|
their support of an interface.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-ERC165Storage-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
|
|
* {xref-ERC165Storage-_registerInterface-bytes4-}[`++_registerInterface(interfaceId)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.ERC165
|
|
|
|
[.contract-subindex-inherited]
|
|
.IERC165
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[ERC165Storage-supportsInterface-bytes4-]]
|
|
==== `[.contract-item-name]#++supportsInterface++#++(bytes4 interfaceId) → bool++` [.item-kind]#public#
|
|
|
|
See {IERC165-supportsInterface}.
|
|
|
|
[.contract-item]
|
|
[[ERC165Storage-_registerInterface-bytes4-]]
|
|
==== `[.contract-item-name]#++_registerInterface++#++(bytes4 interfaceId)++` [.item-kind]#internal#
|
|
|
|
Registers the contract as an implementer of the interface defined by
|
|
`interfaceId`. Support of the actual ERC165 interface is automatic and
|
|
registering its interface id is not required.
|
|
|
|
See {IERC165-supportsInterface}.
|
|
|
|
Requirements:
|
|
|
|
- `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).
|
|
|
|
|
|
|
|
|
|
:ERC165Checker: pass:normal[xref:#ERC165Checker[`++ERC165Checker++`]]
|
|
:supportsERC165: pass:normal[xref:#ERC165Checker-supportsERC165-address-[`++supportsERC165++`]]
|
|
:supportsInterface: pass:normal[xref:#ERC165Checker-supportsInterface-address-bytes4-[`++supportsInterface++`]]
|
|
:getSupportedInterfaces: pass:normal[xref:#ERC165Checker-getSupportedInterfaces-address-bytes4---[`++getSupportedInterfaces++`]]
|
|
:supportsAllInterfaces: pass:normal[xref:#ERC165Checker-supportsAllInterfaces-address-bytes4---[`++supportsAllInterfaces++`]]
|
|
|
|
[.contract]
|
|
[[ERC165Checker]]
|
|
=== `++ERC165Checker++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/ERC165Checker.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
|
```
|
|
|
|
Library used to query support of an interface declared via {IERC165}.
|
|
|
|
Note that these functions return the actual result of the query: they do not
|
|
`revert` if an interface is not supported. It is up to the caller to decide
|
|
what to do in these cases.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-ERC165Checker-supportsERC165-address-}[`++supportsERC165(account)++`]
|
|
* {xref-ERC165Checker-supportsInterface-address-bytes4-}[`++supportsInterface(account, interfaceId)++`]
|
|
* {xref-ERC165Checker-getSupportedInterfaces-address-bytes4---}[`++getSupportedInterfaces(account, interfaceIds)++`]
|
|
* {xref-ERC165Checker-supportsAllInterfaces-address-bytes4---}[`++supportsAllInterfaces(account, interfaceIds)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[ERC165Checker-supportsERC165-address-]]
|
|
==== `[.contract-item-name]#++supportsERC165++#++(address account) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if `account` supports the {IERC165} interface,
|
|
|
|
[.contract-item]
|
|
[[ERC165Checker-supportsInterface-address-bytes4-]]
|
|
==== `[.contract-item-name]#++supportsInterface++#++(address account, bytes4 interfaceId) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if `account` supports the interface defined by
|
|
`interfaceId`. Support for {IERC165} itself is queried automatically.
|
|
|
|
See {IERC165-supportsInterface}.
|
|
|
|
[.contract-item]
|
|
[[ERC165Checker-getSupportedInterfaces-address-bytes4---]]
|
|
==== `[.contract-item-name]#++getSupportedInterfaces++#++(address account, bytes4[] interfaceIds) → bool[]++` [.item-kind]#internal#
|
|
|
|
Returns a boolean array where each value corresponds to the
|
|
interfaces passed in and whether they're supported or not. This allows
|
|
you to batch check interfaces for a contract where your expectation
|
|
is that some interfaces may not be supported.
|
|
|
|
See {IERC165-supportsInterface}.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[ERC165Checker-supportsAllInterfaces-address-bytes4---]]
|
|
==== `[.contract-item-name]#++supportsAllInterfaces++#++(address account, bytes4[] interfaceIds) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if `account` supports all the interfaces defined in
|
|
`interfaceIds`. Support for {IERC165} itself is queried automatically.
|
|
|
|
Batch-querying can lead to gas savings by skipping repeated checks for
|
|
{IERC165} support.
|
|
|
|
See {IERC165-supportsInterface}.
|
|
|
|
|
|
|
|
|
|
:IERC1820Registry: pass:normal[xref:#IERC1820Registry[`++IERC1820Registry++`]]
|
|
:setManager: pass:normal[xref:#IERC1820Registry-setManager-address-address-[`++setManager++`]]
|
|
:getManager: pass:normal[xref:#IERC1820Registry-getManager-address-[`++getManager++`]]
|
|
:setInterfaceImplementer: pass:normal[xref:#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-[`++setInterfaceImplementer++`]]
|
|
:getInterfaceImplementer: pass:normal[xref:#IERC1820Registry-getInterfaceImplementer-address-bytes32-[`++getInterfaceImplementer++`]]
|
|
:interfaceHash: pass:normal[xref:#IERC1820Registry-interfaceHash-string-[`++interfaceHash++`]]
|
|
:updateERC165Cache: pass:normal[xref:#IERC1820Registry-updateERC165Cache-address-bytes4-[`++updateERC165Cache++`]]
|
|
:implementsERC165Interface: pass:normal[xref:#IERC1820Registry-implementsERC165Interface-address-bytes4-[`++implementsERC165Interface++`]]
|
|
:implementsERC165InterfaceNoCache: pass:normal[xref:#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-[`++implementsERC165InterfaceNoCache++`]]
|
|
:InterfaceImplementerSet: pass:normal[xref:#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-[`++InterfaceImplementerSet++`]]
|
|
:ManagerChanged: pass:normal[xref:#IERC1820Registry-ManagerChanged-address-address-[`++ManagerChanged++`]]
|
|
|
|
[.contract]
|
|
[[IERC1820Registry]]
|
|
=== `++IERC1820Registry++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/IERC1820Registry.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/IERC1820Registry.sol";
|
|
```
|
|
|
|
Interface of the global ERC1820 Registry, as defined in the
|
|
https://eips.ethereum.org/EIPS/eip-1820[EIP]. Accounts may register
|
|
implementers for interfaces in this registry, as well as query support.
|
|
|
|
Implementers may be shared by multiple accounts, and can also implement more
|
|
than a single interface for each account. Contracts can implement interfaces
|
|
for themselves, but externally-owned accounts (EOA) must delegate this to a
|
|
contract.
|
|
|
|
{IERC165} interfaces can also be queried via the registry.
|
|
|
|
For an in-depth explanation and source code analysis, see the EIP text.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-IERC1820Registry-setManager-address-address-}[`++setManager(account, newManager)++`]
|
|
* {xref-IERC1820Registry-getManager-address-}[`++getManager(account)++`]
|
|
* {xref-IERC1820Registry-setInterfaceImplementer-address-bytes32-address-}[`++setInterfaceImplementer(account, _interfaceHash, implementer)++`]
|
|
* {xref-IERC1820Registry-getInterfaceImplementer-address-bytes32-}[`++getInterfaceImplementer(account, _interfaceHash)++`]
|
|
* {xref-IERC1820Registry-interfaceHash-string-}[`++interfaceHash(interfaceName)++`]
|
|
* {xref-IERC1820Registry-updateERC165Cache-address-bytes4-}[`++updateERC165Cache(account, interfaceId)++`]
|
|
* {xref-IERC1820Registry-implementsERC165Interface-address-bytes4-}[`++implementsERC165Interface(account, interfaceId)++`]
|
|
* {xref-IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-}[`++implementsERC165InterfaceNoCache(account, interfaceId)++`]
|
|
|
|
--
|
|
|
|
[.contract-index]
|
|
.Events
|
|
--
|
|
* {xref-IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-}[`++InterfaceImplementerSet(account, interfaceHash, implementer)++`]
|
|
* {xref-IERC1820Registry-ManagerChanged-address-address-}[`++ManagerChanged(account, newManager)++`]
|
|
|
|
--
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-setManager-address-address-]]
|
|
==== `[.contract-item-name]#++setManager++#++(address account, address newManager)++` [.item-kind]#external#
|
|
|
|
Sets `newManager` as the manager for `account`. A manager of an
|
|
account is able to set interface implementers for it.
|
|
|
|
By default, each account is its own manager. Passing a value of `0x0` in
|
|
`newManager` will reset the manager to this initial state.
|
|
|
|
Emits a {ManagerChanged} event.
|
|
|
|
Requirements:
|
|
|
|
- the caller must be the current manager for `account`.
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-getManager-address-]]
|
|
==== `[.contract-item-name]#++getManager++#++(address account) → address++` [.item-kind]#external#
|
|
|
|
Returns the manager for `account`.
|
|
|
|
See {setManager}.
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-setInterfaceImplementer-address-bytes32-address-]]
|
|
==== `[.contract-item-name]#++setInterfaceImplementer++#++(address account, bytes32 _interfaceHash, address implementer)++` [.item-kind]#external#
|
|
|
|
Sets the `implementer` contract as ``account``'s implementer for
|
|
`interfaceHash`.
|
|
|
|
`account` being the zero address is an alias for the caller's address.
|
|
The zero address can also be used in `implementer` to remove an old one.
|
|
|
|
See {interfaceHash} to learn how these are created.
|
|
|
|
Emits an {InterfaceImplementerSet} event.
|
|
|
|
Requirements:
|
|
|
|
- the caller must be the current manager for `account`.
|
|
- `interfaceHash` must not be an {IERC165} interface id (i.e. it must not
|
|
end in 28 zeroes).
|
|
- `implementer` must implement {IERC1820Implementer} and return true when
|
|
queried for support, unless `implementer` is the caller. See
|
|
{IERC1820Implementer-canImplementInterfaceForAddress}.
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-getInterfaceImplementer-address-bytes32-]]
|
|
==== `[.contract-item-name]#++getInterfaceImplementer++#++(address account, bytes32 _interfaceHash) → address++` [.item-kind]#external#
|
|
|
|
Returns the implementer of `interfaceHash` for `account`. If no such
|
|
implementer is registered, returns the zero address.
|
|
|
|
If `interfaceHash` is an {IERC165} interface id (i.e. it ends with 28
|
|
zeroes), `account` will be queried for support of it.
|
|
|
|
`account` being the zero address is an alias for the caller's address.
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-interfaceHash-string-]]
|
|
==== `[.contract-item-name]#++interfaceHash++#++(string interfaceName) → bytes32++` [.item-kind]#external#
|
|
|
|
Returns the interface hash for an `interfaceName`, as defined in the
|
|
corresponding
|
|
https://eips.ethereum.org/EIPS/eip-1820#interface-name[section of the EIP].
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-updateERC165Cache-address-bytes4-]]
|
|
==== `[.contract-item-name]#++updateERC165Cache++#++(address account, bytes4 interfaceId)++` [.item-kind]#external#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-implementsERC165Interface-address-bytes4-]]
|
|
==== `[.contract-item-name]#++implementsERC165Interface++#++(address account, bytes4 interfaceId) → bool++` [.item-kind]#external#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-]]
|
|
==== `[.contract-item-name]#++implementsERC165InterfaceNoCache++#++(address account, bytes4 interfaceId) → bool++` [.item-kind]#external#
|
|
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-]]
|
|
==== `[.contract-item-name]#++InterfaceImplementerSet++#++(address account, bytes32 interfaceHash, address implementer)++` [.item-kind]#event#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC1820Registry-ManagerChanged-address-address-]]
|
|
==== `[.contract-item-name]#++ManagerChanged++#++(address account, address newManager)++` [.item-kind]#event#
|
|
|
|
|
|
|
|
|
|
|
|
:IERC1820Implementer: pass:normal[xref:#IERC1820Implementer[`++IERC1820Implementer++`]]
|
|
:canImplementInterfaceForAddress: pass:normal[xref:#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`++canImplementInterfaceForAddress++`]]
|
|
|
|
[.contract]
|
|
[[IERC1820Implementer]]
|
|
=== `++IERC1820Implementer++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/IERC1820Implementer.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol";
|
|
```
|
|
|
|
Interface for an ERC1820 implementer, as defined in the
|
|
https://eips.ethereum.org/EIPS/eip-1820#interface-implementation-erc1820implementerinterface[EIP].
|
|
Used by contracts that will be registered as implementers in the
|
|
{IERC1820Registry}.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-}[`++canImplementInterfaceForAddress(interfaceHash, account)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-]]
|
|
==== `[.contract-item-name]#++canImplementInterfaceForAddress++#++(bytes32 interfaceHash, address account) → bytes32++` [.item-kind]#external#
|
|
|
|
Returns a special value (`ERC1820_ACCEPT_MAGIC`) if this contract
|
|
implements `interfaceHash` for `account`.
|
|
|
|
See {IERC1820Registry-setInterfaceImplementer}.
|
|
|
|
|
|
|
|
|
|
:ERC1820Implementer: pass:normal[xref:#ERC1820Implementer[`++ERC1820Implementer++`]]
|
|
:canImplementInterfaceForAddress: pass:normal[xref:#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`++canImplementInterfaceForAddress++`]]
|
|
:_registerInterfaceForAddress: pass:normal[xref:#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-[`++_registerInterfaceForAddress++`]]
|
|
|
|
[.contract]
|
|
[[ERC1820Implementer]]
|
|
=== `++ERC1820Implementer++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/introspection/ERC1820Implementer.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/introspection/ERC1820Implementer.sol";
|
|
```
|
|
|
|
Implementation of the {IERC1820Implementer} interface.
|
|
|
|
Contracts may inherit from this and call {_registerInterfaceForAddress} to
|
|
declare their willingness to be implementers.
|
|
{IERC1820Registry-setInterfaceImplementer} should then be called for the
|
|
registration to be complete.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-}[`++canImplementInterfaceForAddress(interfaceHash, account)++`]
|
|
* {xref-ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-}[`++_registerInterfaceForAddress(interfaceHash, account)++`]
|
|
|
|
[.contract-subindex-inherited]
|
|
.IERC1820Implementer
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-]]
|
|
==== `[.contract-item-name]#++canImplementInterfaceForAddress++#++(bytes32 interfaceHash, address account) → bytes32++` [.item-kind]#public#
|
|
|
|
See {IERC1820Implementer-canImplementInterfaceForAddress}.
|
|
|
|
[.contract-item]
|
|
[[ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-]]
|
|
==== `[.contract-item-name]#++_registerInterfaceForAddress++#++(bytes32 interfaceHash, address account)++` [.item-kind]#internal#
|
|
|
|
Declares the contract as willing to be an implementer of
|
|
`interfaceHash` for `account`.
|
|
|
|
See {IERC1820Registry-setInterfaceImplementer} and
|
|
{IERC1820Registry-interfaceHash}.
|
|
|
|
|
|
|
|
|
|
== Data Structures
|
|
|
|
:BitMaps: pass:normal[xref:#BitMaps[`++BitMaps++`]]
|
|
:get: pass:normal[xref:#BitMaps-get-struct-BitMaps-BitMap-uint256-[`++get++`]]
|
|
:setTo: pass:normal[xref:#BitMaps-setTo-struct-BitMaps-BitMap-uint256-bool-[`++setTo++`]]
|
|
:set: pass:normal[xref:#BitMaps-set-struct-BitMaps-BitMap-uint256-[`++set++`]]
|
|
:unset: pass:normal[xref:#BitMaps-unset-struct-BitMaps-BitMap-uint256-[`++unset++`]]
|
|
:BitMap: pass:normal[xref:#BitMaps-BitMap[`++BitMap++`]]
|
|
|
|
[.contract]
|
|
[[BitMaps]]
|
|
=== `++BitMaps++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/structs/BitMaps.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/structs/BitMaps.sol";
|
|
```
|
|
|
|
Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential.
|
|
Largelly inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor].
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-BitMaps-get-struct-BitMaps-BitMap-uint256-}[`++get(bitmap, index)++`]
|
|
* {xref-BitMaps-setTo-struct-BitMaps-BitMap-uint256-bool-}[`++setTo(bitmap, index, value)++`]
|
|
* {xref-BitMaps-set-struct-BitMaps-BitMap-uint256-}[`++set(bitmap, index)++`]
|
|
* {xref-BitMaps-unset-struct-BitMaps-BitMap-uint256-}[`++unset(bitmap, index)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[BitMaps-get-struct-BitMaps-BitMap-uint256-]]
|
|
==== `[.contract-item-name]#++get++#++(struct BitMaps.BitMap bitmap, uint256 index) → bool++` [.item-kind]#internal#
|
|
|
|
Returns whether the bit at `index` is set.
|
|
|
|
[.contract-item]
|
|
[[BitMaps-setTo-struct-BitMaps-BitMap-uint256-bool-]]
|
|
==== `[.contract-item-name]#++setTo++#++(struct BitMaps.BitMap bitmap, uint256 index, bool value)++` [.item-kind]#internal#
|
|
|
|
Sets the bit at `index` to the boolean `value`.
|
|
|
|
[.contract-item]
|
|
[[BitMaps-set-struct-BitMaps-BitMap-uint256-]]
|
|
==== `[.contract-item-name]#++set++#++(struct BitMaps.BitMap bitmap, uint256 index)++` [.item-kind]#internal#
|
|
|
|
Sets the bit at `index`.
|
|
|
|
[.contract-item]
|
|
[[BitMaps-unset-struct-BitMaps-BitMap-uint256-]]
|
|
==== `[.contract-item-name]#++unset++#++(struct BitMaps.BitMap bitmap, uint256 index)++` [.item-kind]#internal#
|
|
|
|
Unsets the bit at `index`.
|
|
|
|
|
|
|
|
|
|
:EnumerableMap: pass:normal[xref:#EnumerableMap[`++EnumerableMap++`]]
|
|
:set: pass:normal[xref:#EnumerableMap-set-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-bytes32-[`++set++`]]
|
|
:remove: pass:normal[xref:#EnumerableMap-remove-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableMap-contains-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableMap-length-struct-EnumerableMap-Bytes32ToBytes32Map-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableMap-at-struct-EnumerableMap-Bytes32ToBytes32Map-uint256-[`++at++`]]
|
|
:tryGet: pass:normal[xref:#EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`++tryGet++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-[`++get++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-string-[`++get++`]]
|
|
:set: pass:normal[xref:#EnumerableMap-set-struct-EnumerableMap-UintToUintMap-uint256-uint256-[`++set++`]]
|
|
:remove: pass:normal[xref:#EnumerableMap-remove-struct-EnumerableMap-UintToUintMap-uint256-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableMap-contains-struct-EnumerableMap-UintToUintMap-uint256-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableMap-length-struct-EnumerableMap-UintToUintMap-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableMap-at-struct-EnumerableMap-UintToUintMap-uint256-[`++at++`]]
|
|
:tryGet: pass:normal[xref:#EnumerableMap-tryGet-struct-EnumerableMap-UintToUintMap-uint256-[`++tryGet++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-[`++get++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-string-[`++get++`]]
|
|
:set: pass:normal[xref:#EnumerableMap-set-struct-EnumerableMap-UintToAddressMap-uint256-address-[`++set++`]]
|
|
:remove: pass:normal[xref:#EnumerableMap-remove-struct-EnumerableMap-UintToAddressMap-uint256-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableMap-contains-struct-EnumerableMap-UintToAddressMap-uint256-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableMap-length-struct-EnumerableMap-UintToAddressMap-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableMap-at-struct-EnumerableMap-UintToAddressMap-uint256-[`++at++`]]
|
|
:tryGet: pass:normal[xref:#EnumerableMap-tryGet-struct-EnumerableMap-UintToAddressMap-uint256-[`++tryGet++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-[`++get++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-string-[`++get++`]]
|
|
:set: pass:normal[xref:#EnumerableMap-set-struct-EnumerableMap-AddressToUintMap-address-uint256-[`++set++`]]
|
|
:remove: pass:normal[xref:#EnumerableMap-remove-struct-EnumerableMap-AddressToUintMap-address-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableMap-contains-struct-EnumerableMap-AddressToUintMap-address-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableMap-length-struct-EnumerableMap-AddressToUintMap-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableMap-at-struct-EnumerableMap-AddressToUintMap-uint256-[`++at++`]]
|
|
:tryGet: pass:normal[xref:#EnumerableMap-tryGet-struct-EnumerableMap-AddressToUintMap-address-[`++tryGet++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-[`++get++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-string-[`++get++`]]
|
|
:set: pass:normal[xref:#EnumerableMap-set-struct-EnumerableMap-Bytes32ToUintMap-bytes32-uint256-[`++set++`]]
|
|
:remove: pass:normal[xref:#EnumerableMap-remove-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableMap-contains-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableMap-length-struct-EnumerableMap-Bytes32ToUintMap-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableMap-at-struct-EnumerableMap-Bytes32ToUintMap-uint256-[`++at++`]]
|
|
:tryGet: pass:normal[xref:#EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`++tryGet++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-[`++get++`]]
|
|
:get: pass:normal[xref:#EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-string-[`++get++`]]
|
|
:Bytes32ToBytes32Map: pass:normal[xref:#EnumerableMap-Bytes32ToBytes32Map[`++Bytes32ToBytes32Map++`]]
|
|
:UintToUintMap: pass:normal[xref:#EnumerableMap-UintToUintMap[`++UintToUintMap++`]]
|
|
:UintToAddressMap: pass:normal[xref:#EnumerableMap-UintToAddressMap[`++UintToAddressMap++`]]
|
|
:AddressToUintMap: pass:normal[xref:#EnumerableMap-AddressToUintMap[`++AddressToUintMap++`]]
|
|
:Bytes32ToUintMap: pass:normal[xref:#EnumerableMap-Bytes32ToUintMap[`++Bytes32ToUintMap++`]]
|
|
|
|
[.contract]
|
|
[[EnumerableMap]]
|
|
=== `++EnumerableMap++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/structs/EnumerableMap.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/structs/EnumerableMap.sol";
|
|
```
|
|
|
|
Library for managing an enumerable variant of Solidity's
|
|
https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]
|
|
type.
|
|
|
|
Maps have the following properties:
|
|
|
|
- Entries are added, removed, and checked for existence in constant time
|
|
(O(1)).
|
|
- Entries are enumerated in O(n). No guarantees are made on the ordering.
|
|
|
|
```
|
|
contract Example {
|
|
// Add the library methods
|
|
using EnumerableMap for EnumerableMap.UintToAddressMap;
|
|
|
|
// Declare a set state variable
|
|
EnumerableMap.UintToAddressMap private myMap;
|
|
}
|
|
```
|
|
|
|
The following map types are supported:
|
|
|
|
- `uint256 -> address` (`UintToAddressMap`) since v3.0.0
|
|
- `address -> uint256` (`AddressToUintMap`) since v4.6.0
|
|
- `bytes32 -> bytes32` (`Bytes32ToBytes32`) since v4.6.0
|
|
- `uint256 -> uint256` (`UintToUintMap`) since v4.7.0
|
|
- `bytes32 -> uint256` (`Bytes32ToUintMap`) since v4.7.0
|
|
|
|
[WARNING]
|
|
====
|
|
Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.
|
|
See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.
|
|
|
|
In order to clean an EnumerableMap, you can either remove all elements one by one or create a fresh instance using an array of EnumerableMap.
|
|
====
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-EnumerableMap-set-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-bytes32-}[`++set(map, key, value)++`]
|
|
* {xref-EnumerableMap-remove-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-}[`++remove(map, key)++`]
|
|
* {xref-EnumerableMap-contains-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-}[`++contains(map, key)++`]
|
|
* {xref-EnumerableMap-length-struct-EnumerableMap-Bytes32ToBytes32Map-}[`++length(map)++`]
|
|
* {xref-EnumerableMap-at-struct-EnumerableMap-Bytes32ToBytes32Map-uint256-}[`++at(map, index)++`]
|
|
* {xref-EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-}[`++tryGet(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-}[`++get(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-string-}[`++get(map, key, errorMessage)++`]
|
|
* {xref-EnumerableMap-set-struct-EnumerableMap-UintToUintMap-uint256-uint256-}[`++set(map, key, value)++`]
|
|
* {xref-EnumerableMap-remove-struct-EnumerableMap-UintToUintMap-uint256-}[`++remove(map, key)++`]
|
|
* {xref-EnumerableMap-contains-struct-EnumerableMap-UintToUintMap-uint256-}[`++contains(map, key)++`]
|
|
* {xref-EnumerableMap-length-struct-EnumerableMap-UintToUintMap-}[`++length(map)++`]
|
|
* {xref-EnumerableMap-at-struct-EnumerableMap-UintToUintMap-uint256-}[`++at(map, index)++`]
|
|
* {xref-EnumerableMap-tryGet-struct-EnumerableMap-UintToUintMap-uint256-}[`++tryGet(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-}[`++get(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-string-}[`++get(map, key, errorMessage)++`]
|
|
* {xref-EnumerableMap-set-struct-EnumerableMap-UintToAddressMap-uint256-address-}[`++set(map, key, value)++`]
|
|
* {xref-EnumerableMap-remove-struct-EnumerableMap-UintToAddressMap-uint256-}[`++remove(map, key)++`]
|
|
* {xref-EnumerableMap-contains-struct-EnumerableMap-UintToAddressMap-uint256-}[`++contains(map, key)++`]
|
|
* {xref-EnumerableMap-length-struct-EnumerableMap-UintToAddressMap-}[`++length(map)++`]
|
|
* {xref-EnumerableMap-at-struct-EnumerableMap-UintToAddressMap-uint256-}[`++at(map, index)++`]
|
|
* {xref-EnumerableMap-tryGet-struct-EnumerableMap-UintToAddressMap-uint256-}[`++tryGet(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-}[`++get(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-string-}[`++get(map, key, errorMessage)++`]
|
|
* {xref-EnumerableMap-set-struct-EnumerableMap-AddressToUintMap-address-uint256-}[`++set(map, key, value)++`]
|
|
* {xref-EnumerableMap-remove-struct-EnumerableMap-AddressToUintMap-address-}[`++remove(map, key)++`]
|
|
* {xref-EnumerableMap-contains-struct-EnumerableMap-AddressToUintMap-address-}[`++contains(map, key)++`]
|
|
* {xref-EnumerableMap-length-struct-EnumerableMap-AddressToUintMap-}[`++length(map)++`]
|
|
* {xref-EnumerableMap-at-struct-EnumerableMap-AddressToUintMap-uint256-}[`++at(map, index)++`]
|
|
* {xref-EnumerableMap-tryGet-struct-EnumerableMap-AddressToUintMap-address-}[`++tryGet(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-}[`++get(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-string-}[`++get(map, key, errorMessage)++`]
|
|
* {xref-EnumerableMap-set-struct-EnumerableMap-Bytes32ToUintMap-bytes32-uint256-}[`++set(map, key, value)++`]
|
|
* {xref-EnumerableMap-remove-struct-EnumerableMap-Bytes32ToUintMap-bytes32-}[`++remove(map, key)++`]
|
|
* {xref-EnumerableMap-contains-struct-EnumerableMap-Bytes32ToUintMap-bytes32-}[`++contains(map, key)++`]
|
|
* {xref-EnumerableMap-length-struct-EnumerableMap-Bytes32ToUintMap-}[`++length(map)++`]
|
|
* {xref-EnumerableMap-at-struct-EnumerableMap-Bytes32ToUintMap-uint256-}[`++at(map, index)++`]
|
|
* {xref-EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToUintMap-bytes32-}[`++tryGet(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-}[`++get(map, key)++`]
|
|
* {xref-EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-string-}[`++get(map, key, errorMessage)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-set-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++set++#++(struct EnumerableMap.Bytes32ToBytes32Map map, bytes32 key, bytes32 value) → bool++` [.item-kind]#internal#
|
|
|
|
Adds a key-value pair to a map, or updates the value for an existing
|
|
key. O(1).
|
|
|
|
Returns true if the key was added to the map, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-remove-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableMap.Bytes32ToBytes32Map map, bytes32 key) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a key-value pair from a map. O(1).
|
|
|
|
Returns true if the key was removed from the map, that is if it was present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-contains-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableMap.Bytes32ToBytes32Map map, bytes32 key) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the key is in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-length-struct-EnumerableMap-Bytes32ToBytes32Map-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableMap.Bytes32ToBytes32Map map) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of key-value pairs in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-at-struct-EnumerableMap-Bytes32ToBytes32Map-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableMap.Bytes32ToBytes32Map map, uint256 index) → bytes32, bytes32++` [.item-kind]#internal#
|
|
|
|
Returns the key-value pair stored at position `index` in the map. O(1).
|
|
|
|
Note that there are no guarantees on the ordering of entries inside the
|
|
array, and it may change when more entries are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-]]
|
|
==== `[.contract-item-name]#++tryGet++#++(struct EnumerableMap.Bytes32ToBytes32Map map, bytes32 key) → bool, bytes32++` [.item-kind]#internal#
|
|
|
|
Tries to returns the value associated with `key`. O(1).
|
|
Does not revert if `key` is not in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.Bytes32ToBytes32Map map, bytes32 key) → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns the value associated with `key`. O(1).
|
|
|
|
Requirements:
|
|
|
|
- `key` must be in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-Bytes32ToBytes32Map-bytes32-string-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.Bytes32ToBytes32Map map, bytes32 key, string errorMessage) → bytes32++` [.item-kind]#internal#
|
|
|
|
Same as {_get}, with a custom error message when `key` is not in the map.
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {_tryGet}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-set-struct-EnumerableMap-UintToUintMap-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++set++#++(struct EnumerableMap.UintToUintMap map, uint256 key, uint256 value) → bool++` [.item-kind]#internal#
|
|
|
|
Adds a key-value pair to a map, or updates the value for an existing
|
|
key. O(1).
|
|
|
|
Returns true if the key was added to the map, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-remove-struct-EnumerableMap-UintToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableMap.UintToUintMap map, uint256 key) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the key was removed from the map, that is if it was present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-contains-struct-EnumerableMap-UintToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableMap.UintToUintMap map, uint256 key) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the key is in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-length-struct-EnumerableMap-UintToUintMap-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableMap.UintToUintMap map) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of elements in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-at-struct-EnumerableMap-UintToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableMap.UintToUintMap map, uint256 index) → uint256, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the element stored at position `index` in the set. O(1).
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-tryGet-struct-EnumerableMap-UintToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++tryGet++#++(struct EnumerableMap.UintToUintMap map, uint256 key) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Tries to returns the value associated with `key`. O(1).
|
|
Does not revert if `key` is not in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.UintToUintMap map, uint256 key) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the value associated with `key`. O(1).
|
|
|
|
Requirements:
|
|
|
|
- `key` must be in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-UintToUintMap-uint256-string-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.UintToUintMap map, uint256 key, string errorMessage) → uint256++` [.item-kind]#internal#
|
|
|
|
Same as {get}, with a custom error message when `key` is not in the map.
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {tryGet}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-set-struct-EnumerableMap-UintToAddressMap-uint256-address-]]
|
|
==== `[.contract-item-name]#++set++#++(struct EnumerableMap.UintToAddressMap map, uint256 key, address value) → bool++` [.item-kind]#internal#
|
|
|
|
Adds a key-value pair to a map, or updates the value for an existing
|
|
key. O(1).
|
|
|
|
Returns true if the key was added to the map, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-remove-struct-EnumerableMap-UintToAddressMap-uint256-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableMap.UintToAddressMap map, uint256 key) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the key was removed from the map, that is if it was present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-contains-struct-EnumerableMap-UintToAddressMap-uint256-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableMap.UintToAddressMap map, uint256 key) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the key is in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-length-struct-EnumerableMap-UintToAddressMap-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableMap.UintToAddressMap map) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of elements in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-at-struct-EnumerableMap-UintToAddressMap-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableMap.UintToAddressMap map, uint256 index) → uint256, address++` [.item-kind]#internal#
|
|
|
|
Returns the element stored at position `index` in the set. O(1).
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-tryGet-struct-EnumerableMap-UintToAddressMap-uint256-]]
|
|
==== `[.contract-item-name]#++tryGet++#++(struct EnumerableMap.UintToAddressMap map, uint256 key) → bool, address++` [.item-kind]#internal#
|
|
|
|
Tries to returns the value associated with `key`. O(1).
|
|
Does not revert if `key` is not in the map.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.UintToAddressMap map, uint256 key) → address++` [.item-kind]#internal#
|
|
|
|
Returns the value associated with `key`. O(1).
|
|
|
|
Requirements:
|
|
|
|
- `key` must be in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-UintToAddressMap-uint256-string-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.UintToAddressMap map, uint256 key, string errorMessage) → address++` [.item-kind]#internal#
|
|
|
|
Same as {get}, with a custom error message when `key` is not in the map.
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {tryGet}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-set-struct-EnumerableMap-AddressToUintMap-address-uint256-]]
|
|
==== `[.contract-item-name]#++set++#++(struct EnumerableMap.AddressToUintMap map, address key, uint256 value) → bool++` [.item-kind]#internal#
|
|
|
|
Adds a key-value pair to a map, or updates the value for an existing
|
|
key. O(1).
|
|
|
|
Returns true if the key was added to the map, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-remove-struct-EnumerableMap-AddressToUintMap-address-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableMap.AddressToUintMap map, address key) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the key was removed from the map, that is if it was present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-contains-struct-EnumerableMap-AddressToUintMap-address-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableMap.AddressToUintMap map, address key) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the key is in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-length-struct-EnumerableMap-AddressToUintMap-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableMap.AddressToUintMap map) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of elements in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-at-struct-EnumerableMap-AddressToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableMap.AddressToUintMap map, uint256 index) → address, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the element stored at position `index` in the set. O(1).
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-tryGet-struct-EnumerableMap-AddressToUintMap-address-]]
|
|
==== `[.contract-item-name]#++tryGet++#++(struct EnumerableMap.AddressToUintMap map, address key) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Tries to returns the value associated with `key`. O(1).
|
|
Does not revert if `key` is not in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.AddressToUintMap map, address key) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the value associated with `key`. O(1).
|
|
|
|
Requirements:
|
|
|
|
- `key` must be in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-AddressToUintMap-address-string-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.AddressToUintMap map, address key, string errorMessage) → uint256++` [.item-kind]#internal#
|
|
|
|
Same as {get}, with a custom error message when `key` is not in the map.
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {tryGet}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-set-struct-EnumerableMap-Bytes32ToUintMap-bytes32-uint256-]]
|
|
==== `[.contract-item-name]#++set++#++(struct EnumerableMap.Bytes32ToUintMap map, bytes32 key, uint256 value) → bool++` [.item-kind]#internal#
|
|
|
|
Adds a key-value pair to a map, or updates the value for an existing
|
|
key. O(1).
|
|
|
|
Returns true if the key was added to the map, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-remove-struct-EnumerableMap-Bytes32ToUintMap-bytes32-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableMap.Bytes32ToUintMap map, bytes32 key) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the key was removed from the map, that is if it was present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-contains-struct-EnumerableMap-Bytes32ToUintMap-bytes32-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableMap.Bytes32ToUintMap map, bytes32 key) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the key is in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-length-struct-EnumerableMap-Bytes32ToUintMap-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableMap.Bytes32ToUintMap map) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of elements in the map. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-at-struct-EnumerableMap-Bytes32ToUintMap-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableMap.Bytes32ToUintMap map, uint256 index) → bytes32, uint256++` [.item-kind]#internal#
|
|
|
|
Returns the element stored at position `index` in the set. O(1).
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-tryGet-struct-EnumerableMap-Bytes32ToUintMap-bytes32-]]
|
|
==== `[.contract-item-name]#++tryGet++#++(struct EnumerableMap.Bytes32ToUintMap map, bytes32 key) → bool, uint256++` [.item-kind]#internal#
|
|
|
|
Tries to returns the value associated with `key`. O(1).
|
|
Does not revert if `key` is not in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.Bytes32ToUintMap map, bytes32 key) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the value associated with `key`. O(1).
|
|
|
|
Requirements:
|
|
|
|
- `key` must be in the map.
|
|
|
|
[.contract-item]
|
|
[[EnumerableMap-get-struct-EnumerableMap-Bytes32ToUintMap-bytes32-string-]]
|
|
==== `[.contract-item-name]#++get++#++(struct EnumerableMap.Bytes32ToUintMap map, bytes32 key, string errorMessage) → uint256++` [.item-kind]#internal#
|
|
|
|
Same as {get}, with a custom error message when `key` is not in the map.
|
|
|
|
CAUTION: This function is deprecated because it requires allocating memory for the error
|
|
message unnecessarily. For custom revert reasons use {tryGet}.
|
|
|
|
|
|
|
|
|
|
:EnumerableSet: pass:normal[xref:#EnumerableSet[`++EnumerableSet++`]]
|
|
:add: pass:normal[xref:#EnumerableSet-add-struct-EnumerableSet-Bytes32Set-bytes32-[`++add++`]]
|
|
:remove: pass:normal[xref:#EnumerableSet-remove-struct-EnumerableSet-Bytes32Set-bytes32-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableSet-contains-struct-EnumerableSet-Bytes32Set-bytes32-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableSet-length-struct-EnumerableSet-Bytes32Set-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableSet-at-struct-EnumerableSet-Bytes32Set-uint256-[`++at++`]]
|
|
:values: pass:normal[xref:#EnumerableSet-values-struct-EnumerableSet-Bytes32Set-[`++values++`]]
|
|
:add: pass:normal[xref:#EnumerableSet-add-struct-EnumerableSet-AddressSet-address-[`++add++`]]
|
|
:remove: pass:normal[xref:#EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableSet-length-struct-EnumerableSet-AddressSet-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableSet-at-struct-EnumerableSet-AddressSet-uint256-[`++at++`]]
|
|
:values: pass:normal[xref:#EnumerableSet-values-struct-EnumerableSet-AddressSet-[`++values++`]]
|
|
:add: pass:normal[xref:#EnumerableSet-add-struct-EnumerableSet-UintSet-uint256-[`++add++`]]
|
|
:remove: pass:normal[xref:#EnumerableSet-remove-struct-EnumerableSet-UintSet-uint256-[`++remove++`]]
|
|
:contains: pass:normal[xref:#EnumerableSet-contains-struct-EnumerableSet-UintSet-uint256-[`++contains++`]]
|
|
:length: pass:normal[xref:#EnumerableSet-length-struct-EnumerableSet-UintSet-[`++length++`]]
|
|
:at: pass:normal[xref:#EnumerableSet-at-struct-EnumerableSet-UintSet-uint256-[`++at++`]]
|
|
:values: pass:normal[xref:#EnumerableSet-values-struct-EnumerableSet-UintSet-[`++values++`]]
|
|
:Set: pass:normal[xref:#EnumerableSet-Set[`++Set++`]]
|
|
:Bytes32Set: pass:normal[xref:#EnumerableSet-Bytes32Set[`++Bytes32Set++`]]
|
|
:AddressSet: pass:normal[xref:#EnumerableSet-AddressSet[`++AddressSet++`]]
|
|
:UintSet: pass:normal[xref:#EnumerableSet-UintSet[`++UintSet++`]]
|
|
|
|
[.contract]
|
|
[[EnumerableSet]]
|
|
=== `++EnumerableSet++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/structs/EnumerableSet.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
|
```
|
|
|
|
Library for managing
|
|
https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive
|
|
types.
|
|
|
|
Sets have the following properties:
|
|
|
|
- Elements are added, removed, and checked for existence in constant time
|
|
(O(1)).
|
|
- Elements are enumerated in O(n). No guarantees are made on the ordering.
|
|
|
|
```
|
|
contract Example {
|
|
// Add the library methods
|
|
using EnumerableSet for EnumerableSet.AddressSet;
|
|
|
|
// Declare a set state variable
|
|
EnumerableSet.AddressSet private mySet;
|
|
}
|
|
```
|
|
|
|
As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)
|
|
and `uint256` (`UintSet`) are supported.
|
|
|
|
[WARNING]
|
|
====
|
|
Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable.
|
|
See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.
|
|
|
|
In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet.
|
|
====
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-EnumerableSet-add-struct-EnumerableSet-Bytes32Set-bytes32-}[`++add(set, value)++`]
|
|
* {xref-EnumerableSet-remove-struct-EnumerableSet-Bytes32Set-bytes32-}[`++remove(set, value)++`]
|
|
* {xref-EnumerableSet-contains-struct-EnumerableSet-Bytes32Set-bytes32-}[`++contains(set, value)++`]
|
|
* {xref-EnumerableSet-length-struct-EnumerableSet-Bytes32Set-}[`++length(set)++`]
|
|
* {xref-EnumerableSet-at-struct-EnumerableSet-Bytes32Set-uint256-}[`++at(set, index)++`]
|
|
* {xref-EnumerableSet-values-struct-EnumerableSet-Bytes32Set-}[`++values(set)++`]
|
|
* {xref-EnumerableSet-add-struct-EnumerableSet-AddressSet-address-}[`++add(set, value)++`]
|
|
* {xref-EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-}[`++remove(set, value)++`]
|
|
* {xref-EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-}[`++contains(set, value)++`]
|
|
* {xref-EnumerableSet-length-struct-EnumerableSet-AddressSet-}[`++length(set)++`]
|
|
* {xref-EnumerableSet-at-struct-EnumerableSet-AddressSet-uint256-}[`++at(set, index)++`]
|
|
* {xref-EnumerableSet-values-struct-EnumerableSet-AddressSet-}[`++values(set)++`]
|
|
* {xref-EnumerableSet-add-struct-EnumerableSet-UintSet-uint256-}[`++add(set, value)++`]
|
|
* {xref-EnumerableSet-remove-struct-EnumerableSet-UintSet-uint256-}[`++remove(set, value)++`]
|
|
* {xref-EnumerableSet-contains-struct-EnumerableSet-UintSet-uint256-}[`++contains(set, value)++`]
|
|
* {xref-EnumerableSet-length-struct-EnumerableSet-UintSet-}[`++length(set)++`]
|
|
* {xref-EnumerableSet-at-struct-EnumerableSet-UintSet-uint256-}[`++at(set, index)++`]
|
|
* {xref-EnumerableSet-values-struct-EnumerableSet-UintSet-}[`++values(set)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-add-struct-EnumerableSet-Bytes32Set-bytes32-]]
|
|
==== `[.contract-item-name]#++add++#++(struct EnumerableSet.Bytes32Set set, bytes32 value) → bool++` [.item-kind]#internal#
|
|
|
|
Add a value to a set. O(1).
|
|
|
|
Returns true if the value was added to the set, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-remove-struct-EnumerableSet-Bytes32Set-bytes32-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableSet.Bytes32Set set, bytes32 value) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the value was removed from the set, that is if it was
|
|
present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-contains-struct-EnumerableSet-Bytes32Set-bytes32-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableSet.Bytes32Set set, bytes32 value) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the value is in the set. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-length-struct-EnumerableSet-Bytes32Set-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableSet.Bytes32Set set) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of values in the set. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-at-struct-EnumerableSet-Bytes32Set-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableSet.Bytes32Set set, uint256 index) → bytes32++` [.item-kind]#internal#
|
|
|
|
Returns the value stored at position `index` in the set. O(1).
|
|
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-values-struct-EnumerableSet-Bytes32Set-]]
|
|
==== `[.contract-item-name]#++values++#++(struct EnumerableSet.Bytes32Set set) → bytes32[]++` [.item-kind]#internal#
|
|
|
|
Return the entire set in an array
|
|
|
|
WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
|
|
to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
|
|
this function has an unbounded cost, and using it as part of a state-changing function may render the function
|
|
uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-add-struct-EnumerableSet-AddressSet-address-]]
|
|
==== `[.contract-item-name]#++add++#++(struct EnumerableSet.AddressSet set, address value) → bool++` [.item-kind]#internal#
|
|
|
|
Add a value to a set. O(1).
|
|
|
|
Returns true if the value was added to the set, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableSet.AddressSet set, address value) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the value was removed from the set, that is if it was
|
|
present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableSet.AddressSet set, address value) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the value is in the set. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-length-struct-EnumerableSet-AddressSet-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableSet.AddressSet set) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of values in the set. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-at-struct-EnumerableSet-AddressSet-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableSet.AddressSet set, uint256 index) → address++` [.item-kind]#internal#
|
|
|
|
Returns the value stored at position `index` in the set. O(1).
|
|
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-values-struct-EnumerableSet-AddressSet-]]
|
|
==== `[.contract-item-name]#++values++#++(struct EnumerableSet.AddressSet set) → address[]++` [.item-kind]#internal#
|
|
|
|
Return the entire set in an array
|
|
|
|
WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
|
|
to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
|
|
this function has an unbounded cost, and using it as part of a state-changing function may render the function
|
|
uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-add-struct-EnumerableSet-UintSet-uint256-]]
|
|
==== `[.contract-item-name]#++add++#++(struct EnumerableSet.UintSet set, uint256 value) → bool++` [.item-kind]#internal#
|
|
|
|
Add a value to a set. O(1).
|
|
|
|
Returns true if the value was added to the set, that is if it was not
|
|
already present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-remove-struct-EnumerableSet-UintSet-uint256-]]
|
|
==== `[.contract-item-name]#++remove++#++(struct EnumerableSet.UintSet set, uint256 value) → bool++` [.item-kind]#internal#
|
|
|
|
Removes a value from a set. O(1).
|
|
|
|
Returns true if the value was removed from the set, that is if it was
|
|
present.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-contains-struct-EnumerableSet-UintSet-uint256-]]
|
|
==== `[.contract-item-name]#++contains++#++(struct EnumerableSet.UintSet set, uint256 value) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the value is in the set. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-length-struct-EnumerableSet-UintSet-]]
|
|
==== `[.contract-item-name]#++length++#++(struct EnumerableSet.UintSet set) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of values on the set. O(1).
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-at-struct-EnumerableSet-UintSet-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct EnumerableSet.UintSet set, uint256 index) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the value stored at position `index` in the set. O(1).
|
|
|
|
Note that there are no guarantees on the ordering of values inside the
|
|
array, and it may change when more values are added or removed.
|
|
|
|
Requirements:
|
|
|
|
- `index` must be strictly less than {length}.
|
|
|
|
[.contract-item]
|
|
[[EnumerableSet-values-struct-EnumerableSet-UintSet-]]
|
|
==== `[.contract-item-name]#++values++#++(struct EnumerableSet.UintSet set) → uint256[]++` [.item-kind]#internal#
|
|
|
|
Return the entire set in an array
|
|
|
|
WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed
|
|
to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that
|
|
this function has an unbounded cost, and using it as part of a state-changing function may render the function
|
|
uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.
|
|
|
|
|
|
|
|
|
|
:DoubleEndedQueue: pass:normal[xref:#DoubleEndedQueue[`++DoubleEndedQueue++`]]
|
|
:pushBack: pass:normal[xref:#DoubleEndedQueue-pushBack-struct-DoubleEndedQueue-Bytes32Deque-bytes32-[`++pushBack++`]]
|
|
:popBack: pass:normal[xref:#DoubleEndedQueue-popBack-struct-DoubleEndedQueue-Bytes32Deque-[`++popBack++`]]
|
|
:pushFront: pass:normal[xref:#DoubleEndedQueue-pushFront-struct-DoubleEndedQueue-Bytes32Deque-bytes32-[`++pushFront++`]]
|
|
:popFront: pass:normal[xref:#DoubleEndedQueue-popFront-struct-DoubleEndedQueue-Bytes32Deque-[`++popFront++`]]
|
|
:front: pass:normal[xref:#DoubleEndedQueue-front-struct-DoubleEndedQueue-Bytes32Deque-[`++front++`]]
|
|
:back: pass:normal[xref:#DoubleEndedQueue-back-struct-DoubleEndedQueue-Bytes32Deque-[`++back++`]]
|
|
:at: pass:normal[xref:#DoubleEndedQueue-at-struct-DoubleEndedQueue-Bytes32Deque-uint256-[`++at++`]]
|
|
:clear: pass:normal[xref:#DoubleEndedQueue-clear-struct-DoubleEndedQueue-Bytes32Deque-[`++clear++`]]
|
|
:length: pass:normal[xref:#DoubleEndedQueue-length-struct-DoubleEndedQueue-Bytes32Deque-[`++length++`]]
|
|
:empty: pass:normal[xref:#DoubleEndedQueue-empty-struct-DoubleEndedQueue-Bytes32Deque-[`++empty++`]]
|
|
:Bytes32Deque: pass:normal[xref:#DoubleEndedQueue-Bytes32Deque[`++Bytes32Deque++`]]
|
|
|
|
[.contract]
|
|
[[DoubleEndedQueue]]
|
|
=== `++DoubleEndedQueue++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/structs/DoubleEndedQueue.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/structs/DoubleEndedQueue.sol";
|
|
```
|
|
|
|
A sequence of items with the ability to efficiently push and pop items (i.e. insert and remove) on both ends of
|
|
the sequence (called front and back). Among other access patterns, it can be used to implement efficient LIFO and
|
|
FIFO queues. Storage use is optimized, and all operations are O(1) constant time. This includes {clear}, given that
|
|
the existing queue contents are left in storage.
|
|
|
|
The struct is called `Bytes32Deque`. Other types can be cast to and from `bytes32`. This data structure can only be
|
|
used in storage, and not in memory.
|
|
```
|
|
DoubleEndedQueue.Bytes32Deque queue;
|
|
```
|
|
|
|
_Available since v4.6._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-DoubleEndedQueue-pushBack-struct-DoubleEndedQueue-Bytes32Deque-bytes32-}[`++pushBack(deque, value)++`]
|
|
* {xref-DoubleEndedQueue-popBack-struct-DoubleEndedQueue-Bytes32Deque-}[`++popBack(deque)++`]
|
|
* {xref-DoubleEndedQueue-pushFront-struct-DoubleEndedQueue-Bytes32Deque-bytes32-}[`++pushFront(deque, value)++`]
|
|
* {xref-DoubleEndedQueue-popFront-struct-DoubleEndedQueue-Bytes32Deque-}[`++popFront(deque)++`]
|
|
* {xref-DoubleEndedQueue-front-struct-DoubleEndedQueue-Bytes32Deque-}[`++front(deque)++`]
|
|
* {xref-DoubleEndedQueue-back-struct-DoubleEndedQueue-Bytes32Deque-}[`++back(deque)++`]
|
|
* {xref-DoubleEndedQueue-at-struct-DoubleEndedQueue-Bytes32Deque-uint256-}[`++at(deque, index)++`]
|
|
* {xref-DoubleEndedQueue-clear-struct-DoubleEndedQueue-Bytes32Deque-}[`++clear(deque)++`]
|
|
* {xref-DoubleEndedQueue-length-struct-DoubleEndedQueue-Bytes32Deque-}[`++length(deque)++`]
|
|
* {xref-DoubleEndedQueue-empty-struct-DoubleEndedQueue-Bytes32Deque-}[`++empty(deque)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-pushBack-struct-DoubleEndedQueue-Bytes32Deque-bytes32-]]
|
|
==== `[.contract-item-name]#++pushBack++#++(struct DoubleEndedQueue.Bytes32Deque deque, bytes32 value)++` [.item-kind]#internal#
|
|
|
|
Inserts an item at the end of the queue.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-popBack-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++popBack++#++(struct DoubleEndedQueue.Bytes32Deque deque) → bytes32 value++` [.item-kind]#internal#
|
|
|
|
Removes the item at the end of the queue and returns it.
|
|
|
|
Reverts with `Empty` if the queue is empty.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-pushFront-struct-DoubleEndedQueue-Bytes32Deque-bytes32-]]
|
|
==== `[.contract-item-name]#++pushFront++#++(struct DoubleEndedQueue.Bytes32Deque deque, bytes32 value)++` [.item-kind]#internal#
|
|
|
|
Inserts an item at the beginning of the queue.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-popFront-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++popFront++#++(struct DoubleEndedQueue.Bytes32Deque deque) → bytes32 value++` [.item-kind]#internal#
|
|
|
|
Removes the item at the beginning of the queue and returns it.
|
|
|
|
Reverts with `Empty` if the queue is empty.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-front-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++front++#++(struct DoubleEndedQueue.Bytes32Deque deque) → bytes32 value++` [.item-kind]#internal#
|
|
|
|
Returns the item at the beginning of the queue.
|
|
|
|
Reverts with `Empty` if the queue is empty.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-back-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++back++#++(struct DoubleEndedQueue.Bytes32Deque deque) → bytes32 value++` [.item-kind]#internal#
|
|
|
|
Returns the item at the end of the queue.
|
|
|
|
Reverts with `Empty` if the queue is empty.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-at-struct-DoubleEndedQueue-Bytes32Deque-uint256-]]
|
|
==== `[.contract-item-name]#++at++#++(struct DoubleEndedQueue.Bytes32Deque deque, uint256 index) → bytes32 value++` [.item-kind]#internal#
|
|
|
|
Return the item at a position in the queue given by `index`, with the first item at 0 and last item at
|
|
`length(deque) - 1`.
|
|
|
|
Reverts with `OutOfBounds` if the index is out of bounds.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-clear-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++clear++#++(struct DoubleEndedQueue.Bytes32Deque deque)++` [.item-kind]#internal#
|
|
|
|
Resets the queue back to being empty.
|
|
|
|
NOTE: The current items are left behind in storage. This does not affect the functioning of the queue, but misses
|
|
out on potential gas refunds.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-length-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++length++#++(struct DoubleEndedQueue.Bytes32Deque deque) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the number of items in the queue.
|
|
|
|
[.contract-item]
|
|
[[DoubleEndedQueue-empty-struct-DoubleEndedQueue-Bytes32Deque-]]
|
|
==== `[.contract-item-name]#++empty++#++(struct DoubleEndedQueue.Bytes32Deque deque) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if the queue is empty.
|
|
|
|
|
|
|
|
|
|
:Checkpoints: pass:normal[xref:#Checkpoints[`++Checkpoints++`]]
|
|
:latest: pass:normal[xref:#Checkpoints-latest-struct-Checkpoints-History-[`++latest++`]]
|
|
:getAtBlock: pass:normal[xref:#Checkpoints-getAtBlock-struct-Checkpoints-History-uint256-[`++getAtBlock++`]]
|
|
:push: pass:normal[xref:#Checkpoints-push-struct-Checkpoints-History-uint256-[`++push++`]]
|
|
:push: pass:normal[xref:#Checkpoints-push-struct-Checkpoints-History-function--uint256-uint256--view-returns--uint256--uint256-[`++push++`]]
|
|
:Checkpoint: pass:normal[xref:#Checkpoints-Checkpoint[`++Checkpoint++`]]
|
|
:History: pass:normal[xref:#Checkpoints-History[`++History++`]]
|
|
|
|
[.contract]
|
|
[[Checkpoints]]
|
|
=== `++Checkpoints++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Checkpoints.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Checkpoints.sol";
|
|
```
|
|
|
|
This library defines the `History` struct, for checkpointing values as they change at different points in
|
|
time, and later looking up past values by block number. See {Votes} as an example.
|
|
|
|
To create a history of checkpoints define a variable type `Checkpoints.History` in your contract, and store a new
|
|
checkpoint for the current transaction block using the {push} function.
|
|
|
|
_Available since v4.5._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Checkpoints-latest-struct-Checkpoints-History-}[`++latest(self)++`]
|
|
* {xref-Checkpoints-getAtBlock-struct-Checkpoints-History-uint256-}[`++getAtBlock(self, blockNumber)++`]
|
|
* {xref-Checkpoints-push-struct-Checkpoints-History-uint256-}[`++push(self, value)++`]
|
|
* {xref-Checkpoints-push-struct-Checkpoints-History-function--uint256-uint256--view-returns--uint256--uint256-}[`++push(self, op, delta)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Checkpoints-latest-struct-Checkpoints-History-]]
|
|
==== `[.contract-item-name]#++latest++#++(struct Checkpoints.History self) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the value in the latest checkpoint, or zero if there are no checkpoints.
|
|
|
|
[.contract-item]
|
|
[[Checkpoints-getAtBlock-struct-Checkpoints-History-uint256-]]
|
|
==== `[.contract-item-name]#++getAtBlock++#++(struct Checkpoints.History self, uint256 blockNumber) → uint256++` [.item-kind]#internal#
|
|
|
|
Returns the value at a given block number. If a checkpoint is not available at that block, the closest one
|
|
before it is returned, or zero otherwise.
|
|
|
|
[.contract-item]
|
|
[[Checkpoints-push-struct-Checkpoints-History-uint256-]]
|
|
==== `[.contract-item-name]#++push++#++(struct Checkpoints.History self, uint256 value) → uint256, uint256++` [.item-kind]#internal#
|
|
|
|
Pushes a value onto a History so that it is stored as the checkpoint for the current block.
|
|
|
|
Returns previous value and new value.
|
|
|
|
[.contract-item]
|
|
[[Checkpoints-push-struct-Checkpoints-History-function--uint256-uint256--view-returns--uint256--uint256-]]
|
|
==== `[.contract-item-name]#++push++#++(struct Checkpoints.History self, function (uint256,uint256) view returns (uint256) op, uint256 delta) → uint256, uint256++` [.item-kind]#internal#
|
|
|
|
Pushes a value onto a History, by updating the latest value using binary operation `op`. The new value will
|
|
be set to `op(latest, delta)`.
|
|
|
|
Returns previous value and new value.
|
|
|
|
|
|
|
|
|
|
== Libraries
|
|
|
|
:Create2: pass:normal[xref:#Create2[`++Create2++`]]
|
|
:deploy: pass:normal[xref:#Create2-deploy-uint256-bytes32-bytes-[`++deploy++`]]
|
|
:computeAddress: pass:normal[xref:#Create2-computeAddress-bytes32-bytes32-[`++computeAddress++`]]
|
|
:computeAddress: pass:normal[xref:#Create2-computeAddress-bytes32-bytes32-address-[`++computeAddress++`]]
|
|
|
|
[.contract]
|
|
[[Create2]]
|
|
=== `++Create2++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Create2.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Create2.sol";
|
|
```
|
|
|
|
Helper to make usage of the `CREATE2` EVM opcode easier and safer.
|
|
`CREATE2` can be used to compute in advance the address where a smart
|
|
contract will be deployed, which allows for interesting new mechanisms known
|
|
as 'counterfactual interactions'.
|
|
|
|
See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more
|
|
information.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Create2-deploy-uint256-bytes32-bytes-}[`++deploy(amount, salt, bytecode)++`]
|
|
* {xref-Create2-computeAddress-bytes32-bytes32-}[`++computeAddress(salt, bytecodeHash)++`]
|
|
* {xref-Create2-computeAddress-bytes32-bytes32-address-}[`++computeAddress(salt, bytecodeHash, deployer)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Create2-deploy-uint256-bytes32-bytes-]]
|
|
==== `[.contract-item-name]#++deploy++#++(uint256 amount, bytes32 salt, bytes bytecode) → address++` [.item-kind]#internal#
|
|
|
|
Deploys a contract using `CREATE2`. The address where the contract
|
|
will be deployed can be known in advance via {computeAddress}.
|
|
|
|
The bytecode for a contract can be obtained from Solidity with
|
|
`type(contractName).creationCode`.
|
|
|
|
Requirements:
|
|
|
|
- `bytecode` must not be empty.
|
|
- `salt` must have not been used for `bytecode` already.
|
|
- the factory must have a balance of at least `amount`.
|
|
- if `amount` is non-zero, `bytecode` must have a `payable` constructor.
|
|
|
|
[.contract-item]
|
|
[[Create2-computeAddress-bytes32-bytes32-]]
|
|
==== `[.contract-item-name]#++computeAddress++#++(bytes32 salt, bytes32 bytecodeHash) → address++` [.item-kind]#internal#
|
|
|
|
Returns the address where a contract will be stored if deployed via {deploy}. Any change in the
|
|
`bytecodeHash` or `salt` will result in a new destination address.
|
|
|
|
[.contract-item]
|
|
[[Create2-computeAddress-bytes32-bytes32-address-]]
|
|
==== `[.contract-item-name]#++computeAddress++#++(bytes32 salt, bytes32 bytecodeHash, address deployer) → address++` [.item-kind]#internal#
|
|
|
|
Returns the address where a contract will be stored if deployed via {deploy} from a contract located at
|
|
`deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.
|
|
|
|
|
|
|
|
|
|
:Address: pass:normal[xref:#Address[`++Address++`]]
|
|
:isContract: pass:normal[xref:#Address-isContract-address-[`++isContract++`]]
|
|
:sendValue: pass:normal[xref:#Address-sendValue-address-payable-uint256-[`++sendValue++`]]
|
|
:functionCall: pass:normal[xref:#Address-functionCall-address-bytes-[`++functionCall++`]]
|
|
:functionCall: pass:normal[xref:#Address-functionCall-address-bytes-string-[`++functionCall++`]]
|
|
:functionCallWithValue: pass:normal[xref:#Address-functionCallWithValue-address-bytes-uint256-[`++functionCallWithValue++`]]
|
|
:functionCallWithValue: pass:normal[xref:#Address-functionCallWithValue-address-bytes-uint256-string-[`++functionCallWithValue++`]]
|
|
:functionStaticCall: pass:normal[xref:#Address-functionStaticCall-address-bytes-[`++functionStaticCall++`]]
|
|
:functionStaticCall: pass:normal[xref:#Address-functionStaticCall-address-bytes-string-[`++functionStaticCall++`]]
|
|
:functionDelegateCall: pass:normal[xref:#Address-functionDelegateCall-address-bytes-[`++functionDelegateCall++`]]
|
|
:functionDelegateCall: pass:normal[xref:#Address-functionDelegateCall-address-bytes-string-[`++functionDelegateCall++`]]
|
|
:verifyCallResult: pass:normal[xref:#Address-verifyCallResult-bool-bytes-string-[`++verifyCallResult++`]]
|
|
|
|
[.contract]
|
|
[[Address]]
|
|
=== `++Address++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Address.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Address.sol";
|
|
```
|
|
|
|
Collection of functions related to the address type
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Address-isContract-address-}[`++isContract(account)++`]
|
|
* {xref-Address-sendValue-address-payable-uint256-}[`++sendValue(recipient, amount)++`]
|
|
* {xref-Address-functionCall-address-bytes-}[`++functionCall(target, data)++`]
|
|
* {xref-Address-functionCall-address-bytes-string-}[`++functionCall(target, data, errorMessage)++`]
|
|
* {xref-Address-functionCallWithValue-address-bytes-uint256-}[`++functionCallWithValue(target, data, value)++`]
|
|
* {xref-Address-functionCallWithValue-address-bytes-uint256-string-}[`++functionCallWithValue(target, data, value, errorMessage)++`]
|
|
* {xref-Address-functionStaticCall-address-bytes-}[`++functionStaticCall(target, data)++`]
|
|
* {xref-Address-functionStaticCall-address-bytes-string-}[`++functionStaticCall(target, data, errorMessage)++`]
|
|
* {xref-Address-functionDelegateCall-address-bytes-}[`++functionDelegateCall(target, data)++`]
|
|
* {xref-Address-functionDelegateCall-address-bytes-string-}[`++functionDelegateCall(target, data, errorMessage)++`]
|
|
* {xref-Address-verifyCallResult-bool-bytes-string-}[`++verifyCallResult(success, returndata, errorMessage)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Address-isContract-address-]]
|
|
==== `[.contract-item-name]#++isContract++#++(address account) → bool++` [.item-kind]#internal#
|
|
|
|
Returns true if `account` is a contract.
|
|
|
|
[IMPORTANT]
|
|
====
|
|
It is unsafe to assume that an address for which this function returns
|
|
false is an externally-owned account (EOA) and not a contract.
|
|
|
|
Among others, `isContract` will return false for the following
|
|
types of addresses:
|
|
|
|
- an externally-owned account
|
|
- a contract in construction
|
|
- an address where a contract will be created
|
|
- an address where a contract lived, but was destroyed
|
|
====
|
|
|
|
[IMPORTANT]
|
|
====
|
|
You shouldn't rely on `isContract` to protect against flash loan attacks!
|
|
|
|
Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
|
|
like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
|
|
constructor.
|
|
====
|
|
|
|
[.contract-item]
|
|
[[Address-sendValue-address-payable-uint256-]]
|
|
==== `[.contract-item-name]#++sendValue++#++(address payable recipient, uint256 amount)++` [.item-kind]#internal#
|
|
|
|
Replacement for Solidity's `transfer`: sends `amount` wei to
|
|
`recipient`, forwarding all available gas and reverting on errors.
|
|
|
|
https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
|
|
of certain opcodes, possibly making contracts go over the 2300 gas limit
|
|
imposed by `transfer`, making them unable to receive funds via
|
|
`transfer`. {sendValue} removes this limitation.
|
|
|
|
https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
|
|
|
|
IMPORTANT: because control is transferred to `recipient`, care must be
|
|
taken to not create reentrancy vulnerabilities. Consider using
|
|
{ReentrancyGuard} or the
|
|
https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
|
|
|
|
[.contract-item]
|
|
[[Address-functionCall-address-bytes-]]
|
|
==== `[.contract-item-name]#++functionCall++#++(address target, bytes data) → bytes++` [.item-kind]#internal#
|
|
|
|
Performs a Solidity function call using a low level `call`. A
|
|
plain `call` is an unsafe replacement for a function call: use this
|
|
function instead.
|
|
|
|
If `target` reverts with a revert reason, it is bubbled up by this
|
|
function (like regular Solidity function calls).
|
|
|
|
Returns the raw returned data. To convert to the expected return value,
|
|
use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
|
|
|
|
Requirements:
|
|
|
|
- `target` must be a contract.
|
|
- calling `target` with `data` must not revert.
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[Address-functionCall-address-bytes-string-]]
|
|
==== `[.contract-item-name]#++functionCall++#++(address target, bytes data, string errorMessage) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
|
|
`errorMessage` as a fallback revert reason when `target` reverts.
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[Address-functionCallWithValue-address-bytes-uint256-]]
|
|
==== `[.contract-item-name]#++functionCallWithValue++#++(address target, bytes data, uint256 value) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
|
|
but also transferring `value` wei to `target`.
|
|
|
|
Requirements:
|
|
|
|
- the calling contract must have an ETH balance of at least `value`.
|
|
- the called Solidity function must be `payable`.
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[Address-functionCallWithValue-address-bytes-uint256-string-]]
|
|
==== `[.contract-item-name]#++functionCallWithValue++#++(address target, bytes data, uint256 value, string errorMessage) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
|
|
with `errorMessage` as a fallback revert reason when `target` reverts.
|
|
|
|
_Available since v3.1._
|
|
|
|
[.contract-item]
|
|
[[Address-functionStaticCall-address-bytes-]]
|
|
==== `[.contract-item-name]#++functionStaticCall++#++(address target, bytes data) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
|
|
but performing a static call.
|
|
|
|
_Available since v3.3._
|
|
|
|
[.contract-item]
|
|
[[Address-functionStaticCall-address-bytes-string-]]
|
|
==== `[.contract-item-name]#++functionStaticCall++#++(address target, bytes data, string errorMessage) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
|
|
but performing a static call.
|
|
|
|
_Available since v3.3._
|
|
|
|
[.contract-item]
|
|
[[Address-functionDelegateCall-address-bytes-]]
|
|
==== `[.contract-item-name]#++functionDelegateCall++#++(address target, bytes data) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
|
|
but performing a delegate call.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[Address-functionDelegateCall-address-bytes-string-]]
|
|
==== `[.contract-item-name]#++functionDelegateCall++#++(address target, bytes data, string errorMessage) → bytes++` [.item-kind]#internal#
|
|
|
|
Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
|
|
but performing a delegate call.
|
|
|
|
_Available since v3.4._
|
|
|
|
[.contract-item]
|
|
[[Address-verifyCallResult-bool-bytes-string-]]
|
|
==== `[.contract-item-name]#++verifyCallResult++#++(bool success, bytes returndata, string errorMessage) → bytes++` [.item-kind]#internal#
|
|
|
|
Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
|
|
revert reason using the provided one.
|
|
|
|
_Available since v4.3._
|
|
|
|
|
|
|
|
|
|
:Arrays: pass:normal[xref:#Arrays[`++Arrays++`]]
|
|
:findUpperBound: pass:normal[xref:#Arrays-findUpperBound-uint256---uint256-[`++findUpperBound++`]]
|
|
|
|
[.contract]
|
|
[[Arrays]]
|
|
=== `++Arrays++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Arrays.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Arrays.sol";
|
|
```
|
|
|
|
Collection of functions related to array types.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Arrays-findUpperBound-uint256---uint256-}[`++findUpperBound(array, element)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Arrays-findUpperBound-uint256---uint256-]]
|
|
==== `[.contract-item-name]#++findUpperBound++#++(uint256[] array, uint256 element) → uint256++` [.item-kind]#internal#
|
|
|
|
Searches a sorted `array` and returns the first index that contains
|
|
a value greater or equal to `element`. If no such index exists (i.e. all
|
|
values in the array are strictly less than `element`), the array length is
|
|
returned. Time complexity O(log n).
|
|
|
|
`array` is expected to be sorted in ascending order, and to contain no
|
|
repeated elements.
|
|
|
|
|
|
|
|
|
|
:Base64: pass:normal[xref:#Base64[`++Base64++`]]
|
|
:_TABLE: pass:normal[xref:#Base64-_TABLE-string[`++_TABLE++`]]
|
|
:encode: pass:normal[xref:#Base64-encode-bytes-[`++encode++`]]
|
|
|
|
[.contract]
|
|
[[Base64]]
|
|
=== `++Base64++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Base64.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Base64.sol";
|
|
```
|
|
|
|
Provides a set of functions to operate with Base64 strings.
|
|
|
|
_Available since v4.5._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Base64-encode-bytes-}[`++encode(data)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Base64-encode-bytes-]]
|
|
==== `[.contract-item-name]#++encode++#++(bytes data) → string++` [.item-kind]#internal#
|
|
|
|
Converts a `bytes` to its Bytes64 `string` representation.
|
|
|
|
|
|
|
|
|
|
:Counters: pass:normal[xref:#Counters[`++Counters++`]]
|
|
:current: pass:normal[xref:#Counters-current-struct-Counters-Counter-[`++current++`]]
|
|
:increment: pass:normal[xref:#Counters-increment-struct-Counters-Counter-[`++increment++`]]
|
|
:decrement: pass:normal[xref:#Counters-decrement-struct-Counters-Counter-[`++decrement++`]]
|
|
:reset: pass:normal[xref:#Counters-reset-struct-Counters-Counter-[`++reset++`]]
|
|
:Counter: pass:normal[xref:#Counters-Counter[`++Counter++`]]
|
|
|
|
[.contract]
|
|
[[Counters]]
|
|
=== `++Counters++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Counters.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Counters.sol";
|
|
```
|
|
|
|
Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
|
|
of elements in a mapping, issuing ERC721 ids, or counting request ids.
|
|
|
|
Include with `using Counters for Counters.Counter;`
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Counters-current-struct-Counters-Counter-}[`++current(counter)++`]
|
|
* {xref-Counters-increment-struct-Counters-Counter-}[`++increment(counter)++`]
|
|
* {xref-Counters-decrement-struct-Counters-Counter-}[`++decrement(counter)++`]
|
|
* {xref-Counters-reset-struct-Counters-Counter-}[`++reset(counter)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Counters-current-struct-Counters-Counter-]]
|
|
==== `[.contract-item-name]#++current++#++(struct Counters.Counter counter) → uint256++` [.item-kind]#internal#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Counters-increment-struct-Counters-Counter-]]
|
|
==== `[.contract-item-name]#++increment++#++(struct Counters.Counter counter)++` [.item-kind]#internal#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Counters-decrement-struct-Counters-Counter-]]
|
|
==== `[.contract-item-name]#++decrement++#++(struct Counters.Counter counter)++` [.item-kind]#internal#
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Counters-reset-struct-Counters-Counter-]]
|
|
==== `[.contract-item-name]#++reset++#++(struct Counters.Counter counter)++` [.item-kind]#internal#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
:Strings: pass:normal[xref:#Strings[`++Strings++`]]
|
|
:toString: pass:normal[xref:#Strings-toString-uint256-[`++toString++`]]
|
|
:toHexString: pass:normal[xref:#Strings-toHexString-uint256-[`++toHexString++`]]
|
|
:toHexString: pass:normal[xref:#Strings-toHexString-uint256-uint256-[`++toHexString++`]]
|
|
:toHexString: pass:normal[xref:#Strings-toHexString-address-[`++toHexString++`]]
|
|
|
|
[.contract]
|
|
[[Strings]]
|
|
=== `++Strings++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Strings.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Strings.sol";
|
|
```
|
|
|
|
String operations.
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Strings-toString-uint256-}[`++toString(value)++`]
|
|
* {xref-Strings-toHexString-uint256-}[`++toHexString(value)++`]
|
|
* {xref-Strings-toHexString-uint256-uint256-}[`++toHexString(value, length)++`]
|
|
* {xref-Strings-toHexString-address-}[`++toHexString(addr)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Strings-toString-uint256-]]
|
|
==== `[.contract-item-name]#++toString++#++(uint256 value) → string++` [.item-kind]#internal#
|
|
|
|
Converts a `uint256` to its ASCII `string` decimal representation.
|
|
|
|
[.contract-item]
|
|
[[Strings-toHexString-uint256-]]
|
|
==== `[.contract-item-name]#++toHexString++#++(uint256 value) → string++` [.item-kind]#internal#
|
|
|
|
Converts a `uint256` to its ASCII `string` hexadecimal representation.
|
|
|
|
[.contract-item]
|
|
[[Strings-toHexString-uint256-uint256-]]
|
|
==== `[.contract-item-name]#++toHexString++#++(uint256 value, uint256 length) → string++` [.item-kind]#internal#
|
|
|
|
Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
|
|
|
|
[.contract-item]
|
|
[[Strings-toHexString-address-]]
|
|
==== `[.contract-item-name]#++toHexString++#++(address addr) → string++` [.item-kind]#internal#
|
|
|
|
Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal representation.
|
|
|
|
|
|
|
|
|
|
:StorageSlot: pass:normal[xref:#StorageSlot[`++StorageSlot++`]]
|
|
:getAddressSlot: pass:normal[xref:#StorageSlot-getAddressSlot-bytes32-[`++getAddressSlot++`]]
|
|
:getBooleanSlot: pass:normal[xref:#StorageSlot-getBooleanSlot-bytes32-[`++getBooleanSlot++`]]
|
|
:getBytes32Slot: pass:normal[xref:#StorageSlot-getBytes32Slot-bytes32-[`++getBytes32Slot++`]]
|
|
:getUint256Slot: pass:normal[xref:#StorageSlot-getUint256Slot-bytes32-[`++getUint256Slot++`]]
|
|
:AddressSlot: pass:normal[xref:#StorageSlot-AddressSlot[`++AddressSlot++`]]
|
|
:BooleanSlot: pass:normal[xref:#StorageSlot-BooleanSlot[`++BooleanSlot++`]]
|
|
:Bytes32Slot: pass:normal[xref:#StorageSlot-Bytes32Slot[`++Bytes32Slot++`]]
|
|
:Uint256Slot: pass:normal[xref:#StorageSlot-Uint256Slot[`++Uint256Slot++`]]
|
|
|
|
[.contract]
|
|
[[StorageSlot]]
|
|
=== `++StorageSlot++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/StorageSlot.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/StorageSlot.sol";
|
|
```
|
|
|
|
Library for reading and writing primitive types to specific storage slots.
|
|
|
|
Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.
|
|
This library helps with reading and writing to such slots without the need for inline assembly.
|
|
|
|
The functions in this library return Slot structs that contain a `value` member that can be used to read or write.
|
|
|
|
Example usage to set ERC1967 implementation slot:
|
|
```
|
|
contract ERC1967 {
|
|
bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
|
|
|
|
function _getImplementation() internal view returns (address) {
|
|
return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
|
|
}
|
|
|
|
function _setImplementation(address newImplementation) internal {
|
|
require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
|
|
StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
|
|
}
|
|
}
|
|
```
|
|
|
|
_Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-StorageSlot-getAddressSlot-bytes32-}[`++getAddressSlot(slot)++`]
|
|
* {xref-StorageSlot-getBooleanSlot-bytes32-}[`++getBooleanSlot(slot)++`]
|
|
* {xref-StorageSlot-getBytes32Slot-bytes32-}[`++getBytes32Slot(slot)++`]
|
|
* {xref-StorageSlot-getUint256Slot-bytes32-}[`++getUint256Slot(slot)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[StorageSlot-getAddressSlot-bytes32-]]
|
|
==== `[.contract-item-name]#++getAddressSlot++#++(bytes32 slot) → struct StorageSlot.AddressSlot r++` [.item-kind]#internal#
|
|
|
|
Returns an `AddressSlot` with member `value` located at `slot`.
|
|
|
|
[.contract-item]
|
|
[[StorageSlot-getBooleanSlot-bytes32-]]
|
|
==== `[.contract-item-name]#++getBooleanSlot++#++(bytes32 slot) → struct StorageSlot.BooleanSlot r++` [.item-kind]#internal#
|
|
|
|
Returns an `BooleanSlot` with member `value` located at `slot`.
|
|
|
|
[.contract-item]
|
|
[[StorageSlot-getBytes32Slot-bytes32-]]
|
|
==== `[.contract-item-name]#++getBytes32Slot++#++(bytes32 slot) → struct StorageSlot.Bytes32Slot r++` [.item-kind]#internal#
|
|
|
|
Returns an `Bytes32Slot` with member `value` located at `slot`.
|
|
|
|
[.contract-item]
|
|
[[StorageSlot-getUint256Slot-bytes32-]]
|
|
==== `[.contract-item-name]#++getUint256Slot++#++(bytes32 slot) → struct StorageSlot.Uint256Slot r++` [.item-kind]#internal#
|
|
|
|
Returns an `Uint256Slot` with member `value` located at `slot`.
|
|
|
|
|
|
|
|
|
|
:Multicall: pass:normal[xref:#Multicall[`++Multicall++`]]
|
|
:multicall: pass:normal[xref:#Multicall-multicall-bytes---[`++multicall++`]]
|
|
|
|
[.contract]
|
|
[[Multicall]]
|
|
=== `++Multicall++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.0/contracts/utils/Multicall.sol[{github-icon},role=heading-link]
|
|
|
|
[.hljs-theme-light.nopadding]
|
|
```solidity
|
|
import "@openzeppelin/contracts/utils/Multicall.sol";
|
|
```
|
|
|
|
Provides a function to batch together multiple calls in a single external call.
|
|
|
|
_Available since v4.1._
|
|
|
|
|
|
[.contract-index]
|
|
.Functions
|
|
--
|
|
* {xref-Multicall-multicall-bytes---}[`++multicall(data)++`]
|
|
|
|
--
|
|
|
|
|
|
|
|
[.contract-item]
|
|
[[Multicall-multicall-bytes---]]
|
|
==== `[.contract-item-name]#++multicall++#++(bytes[] data) → bytes[] results++` [.item-kind]#external#
|
|
|
|
Receives and executes a batch of function calls on this contract.
|
|
|
|
|
|
|