:github-icon: pass:[]
: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-
= Proxies
[.readme-notice]
NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/proxy
This is a low-level set of contracts implementing different proxy patterns with and without upgradeability. For an in-depth overview of this pattern check out the xref:upgrades-plugins::proxies.adoc[Proxy Upgrade Pattern] page.
Most of the proxies below are built on an abstract base contract.
- {Proxy}: Abstract contract implementing the core delegation functionality.
In order to avoid clashes with the storage variables of the implementation contract behind a proxy, we use https://eips.ethereum.org/EIPS/eip-1967[EIP1967] storage slots.
- {ERC1967Upgrade}: Internal functions to get and set the storage slots defined in EIP1967.
- {ERC1967Proxy}: A proxy using EIP1967 storage slots. Not upgradeable by default.
There are two alternative ways to add upgradeability to an ERC1967 proxy. Their differences are explained below in <>.
- {TransparentUpgradeableProxy}: A proxy with a built in admin and upgrade interface.
- {UUPSUpgradeable}: An upgradeability mechanism to be included in the implementation contract.
CAUTION: Using upgradeable proxies correctly and securely is a difficult task that requires deep knowledge of the proxy pattern, Solidity, and the EVM. Unless you want a lot of low level control, we recommend using the xref:upgrades-plugins::index.adoc[OpenZeppelin Upgrades Plugins] for Truffle and Hardhat.
A different family of proxies are beacon proxies. This pattern, popularized by Dharma, allows multiple proxies to be upgraded to a different implementation in a single transaction.
- {BeaconProxy}: A proxy that retrieves its implementation from a beacon contract.
- {UpgradeableBeacon}: A beacon contract with a built in admin that can upgrade the {BeaconProxy} pointing to it.
In this pattern, the proxy contract doesn't hold the implementation address in storage like an ERC1967 proxy, instead the address is stored in a separate beacon contract. The `upgrade` operations that are sent to the beacon instead of to the proxy contract, and all proxies that follow that beacon are automatically upgraded.
Outside the realm of upgradeability, proxies can also be useful to make cheap contract clones, such as those created by an on-chain factory contract that creates many instances of the same contract. These instances are designed to be both cheap to deploy, and cheap to call.
- {Clones}: A library that can deploy cheap minimal non-upgradeable proxies.
[[transparent-vs-uups]]
== Transparent vs UUPS Proxies
The original proxies included in OpenZeppelin followed the https://blog.openzeppelin.com/the-transparent-proxy-pattern/[Transparent Proxy Pattern]. While this pattern is still provided, our recommendation is now shifting towards UUPS proxies, which are both lightweight and versatile. The name UUPS comes from https://eips.ethereum.org/EIPS/eip-1822[EIP1822], which first documented the pattern.
While both of these share the same interface for upgrades, in UUPS proxies the upgrade is handled by the implementation, and can eventually be removed. Transparent proxies, on the other hand, include the upgrade and admin logic in the proxy itself. This means {TransparentUpgradeableProxy} is more expensive to deploy than what is possible with UUPS proxies.
UUPS proxies are implemented using an {ERC1967Proxy}. Note that this proxy is not by itself upgradeable. It is the role of the implementation to include, alongside the contract's logic, all the code necessary to update the implementation's address that is stored at a specific slot in the proxy's storage space. This is where the {UUPSUpgradeable} contract comes in. Inheriting from it (and overriding the {xref-UUPSUpgradeable-_authorizeUpgrade-address-}[`_authorizeUpgrade`] function with the relevant access control mechanism) will turn your contract into a UUPS compliant implementation.
Note that since both proxies use the same storage slot for the implementation address, using a UUPS compliant implementation with a {TransparentUpgradeableProxy} might allow non-admins to perform upgrade operations.
By default, the upgrade functionality included in {UUPSUpgradeable} contains a security mechanism that will prevent any upgrades to a non UUPS compliant implementation. This prevents upgrades to an implementation contract that wouldn't contain the necessary upgrade mechanism, as it would lock the upgradeability of the proxy forever. This security mechanism can be bypassed by either of:
- Adding a flag mechanism in the implementation that will disable the upgrade function when triggered.
- Upgrading to an implementation that features an upgrade mechanism without the additional security check, and then upgrading again to another implementation without the upgrade mechanism.
The current implementation of this security mechanism uses https://eips.ethereum.org/EIPS/eip-1822[EIP1822] to detect the storage slot used by the implementation. A previous implementation, now deprecated, relied on a rollback check. It is possible to upgrade from a contract using the old mechanism to a new one. The inverse is however not possible, as old implementations (before version 4.5) did not include the `ERC1822` interface.
== Core
:Proxy: pass:normal[xref:#Proxy[`++Proxy++`]]
:_delegate: pass:normal[xref:#Proxy-_delegate-address-[`++_delegate++`]]
:_implementation: pass:normal[xref:#Proxy-_implementation--[`++_implementation++`]]
:_fallback: pass:normal[xref:#Proxy-_fallback--[`++_fallback++`]]
:fallback: pass:normal[xref:#Proxy-fallback--[`++fallback++`]]
:receive: pass:normal[xref:#Proxy-receive--[`++receive++`]]
:_beforeFallback: pass:normal[xref:#Proxy-_beforeFallback--[`++_beforeFallback++`]]
[.contract]
[[Proxy]]
=== `++Proxy++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/Proxy.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/Proxy.sol";
```
This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
be specified by overriding the virtual {_implementation} function.
Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
different contract through the {_delegate} function.
The success and return data of the delegated call will be returned back to the caller of the proxy.
[.contract-index]
.Functions
--
* {xref-Proxy-_delegate-address-}[`++_delegate(implementation)++`]
* {xref-Proxy-_implementation--}[`++_implementation()++`]
* {xref-Proxy-_fallback--}[`++_fallback()++`]
* {xref-Proxy-fallback--}[`++fallback()++`]
* {xref-Proxy-receive--}[`++receive()++`]
* {xref-Proxy-_beforeFallback--}[`++_beforeFallback()++`]
--
[.contract-item]
[[Proxy-_delegate-address-]]
==== `[.contract-item-name]#++_delegate++#++(address implementation)++` [.item-kind]#internal#
Delegates the current call to `implementation`.
This function does not return to its internal call site, it will return directly to the external caller.
[.contract-item]
[[Proxy-_implementation--]]
==== `[.contract-item-name]#++_implementation++#++() → address++` [.item-kind]#internal#
This is a virtual function that should be overridden so it returns the address to which the fallback function
and {_fallback} should delegate.
[.contract-item]
[[Proxy-_fallback--]]
==== `[.contract-item-name]#++_fallback++#++()++` [.item-kind]#internal#
Delegates the current call to the address returned by `_implementation()`.
This function does not return to its internal call site, it will return directly to the external caller.
[.contract-item]
[[Proxy-fallback--]]
==== `[.contract-item-name]#++fallback++#++()++` [.item-kind]#external#
Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other
function in the contract matches the call data.
[.contract-item]
[[Proxy-receive--]]
==== `[.contract-item-name]#++receive++#++()++` [.item-kind]#external#
Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data
is empty.
[.contract-item]
[[Proxy-_beforeFallback--]]
==== `[.contract-item-name]#++_beforeFallback++#++()++` [.item-kind]#internal#
Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback`
call, or as part of the Solidity `fallback` or `receive` functions.
If overridden should call `super._beforeFallback()`.
== ERC1967
:ERC1967Proxy: pass:normal[xref:#ERC1967Proxy[`++ERC1967Proxy++`]]
:constructor: pass:normal[xref:#ERC1967Proxy-constructor-address-bytes-[`++constructor++`]]
:_implementation: pass:normal[xref:#ERC1967Proxy-_implementation--[`++_implementation++`]]
[.contract]
[[ERC1967Proxy]]
=== `++ERC1967Proxy++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/ERC1967/ERC1967Proxy.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
```
This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an
implementation address that can be changed. This address is stored in storage in the location specified by
https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the
implementation behind the proxy.
[.contract-index]
.Functions
--
* {xref-ERC1967Proxy-constructor-address-bytes-}[`++constructor(_logic, _data)++`]
* {xref-ERC1967Proxy-_implementation--}[`++_implementation()++`]
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-_getImplementation--}[`++_getImplementation()++`]
* {xref-ERC1967Upgrade-_upgradeTo-address-}[`++_upgradeTo(newImplementation)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-}[`++_upgradeToAndCall(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-}[`++_upgradeToAndCallUUPS(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_getAdmin--}[`++_getAdmin()++`]
* {xref-ERC1967Upgrade-_changeAdmin-address-}[`++_changeAdmin(newAdmin)++`]
* {xref-ERC1967Upgrade-_getBeacon--}[`++_getBeacon()++`]
* {xref-ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-}[`++_upgradeBeaconToAndCall(newBeacon, data, forceCall)++`]
[.contract-subindex-inherited]
.Proxy
* {xref-Proxy-_delegate-address-}[`++_delegate(implementation)++`]
* {xref-Proxy-_fallback--}[`++_fallback()++`]
* {xref-Proxy-fallback--}[`++fallback()++`]
* {xref-Proxy-receive--}[`++receive()++`]
* {xref-Proxy-_beforeFallback--}[`++_beforeFallback()++`]
--
[.contract-index]
.Events
--
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-Upgraded-address-}[`++Upgraded(implementation)++`]
* {xref-ERC1967Upgrade-AdminChanged-address-address-}[`++AdminChanged(previousAdmin, newAdmin)++`]
* {xref-ERC1967Upgrade-BeaconUpgraded-address-}[`++BeaconUpgraded(beacon)++`]
[.contract-subindex-inherited]
.Proxy
--
[.contract-item]
[[ERC1967Proxy-constructor-address-bytes-]]
==== `[.contract-item-name]#++constructor++#++(address _logic, bytes _data)++` [.item-kind]#public#
Initializes the upgradeable proxy with an initial implementation specified by `_logic`.
If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded
function call, and allows initializing the storage of the proxy like a Solidity constructor.
[.contract-item]
[[ERC1967Proxy-_implementation--]]
==== `[.contract-item-name]#++_implementation++#++() → address impl++` [.item-kind]#internal#
Returns the current implementation address.
:ERC1967Upgrade: pass:normal[xref:#ERC1967Upgrade[`++ERC1967Upgrade++`]]
:_IMPLEMENTATION_SLOT: pass:normal[xref:#ERC1967Upgrade-_IMPLEMENTATION_SLOT-bytes32[`++_IMPLEMENTATION_SLOT++`]]
:_ADMIN_SLOT: pass:normal[xref:#ERC1967Upgrade-_ADMIN_SLOT-bytes32[`++_ADMIN_SLOT++`]]
:_BEACON_SLOT: pass:normal[xref:#ERC1967Upgrade-_BEACON_SLOT-bytes32[`++_BEACON_SLOT++`]]
:_getImplementation: pass:normal[xref:#ERC1967Upgrade-_getImplementation--[`++_getImplementation++`]]
:_upgradeTo: pass:normal[xref:#ERC1967Upgrade-_upgradeTo-address-[`++_upgradeTo++`]]
:_upgradeToAndCall: pass:normal[xref:#ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-[`++_upgradeToAndCall++`]]
:_upgradeToAndCallUUPS: pass:normal[xref:#ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-[`++_upgradeToAndCallUUPS++`]]
:_getAdmin: pass:normal[xref:#ERC1967Upgrade-_getAdmin--[`++_getAdmin++`]]
:_changeAdmin: pass:normal[xref:#ERC1967Upgrade-_changeAdmin-address-[`++_changeAdmin++`]]
:_getBeacon: pass:normal[xref:#ERC1967Upgrade-_getBeacon--[`++_getBeacon++`]]
:_upgradeBeaconToAndCall: pass:normal[xref:#ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-[`++_upgradeBeaconToAndCall++`]]
:Upgraded: pass:normal[xref:#ERC1967Upgrade-Upgraded-address-[`++Upgraded++`]]
:AdminChanged: pass:normal[xref:#ERC1967Upgrade-AdminChanged-address-address-[`++AdminChanged++`]]
:BeaconUpgraded: pass:normal[xref:#ERC1967Upgrade-BeaconUpgraded-address-[`++BeaconUpgraded++`]]
[.contract]
[[ERC1967Upgrade]]
=== `++ERC1967Upgrade++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/ERC1967/ERC1967Upgrade.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol";
```
This abstract contract provides getters and event emitting update functions for
https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots.
_Available since v4.1._
[.contract-index]
.Functions
--
* {xref-ERC1967Upgrade-_getImplementation--}[`++_getImplementation()++`]
* {xref-ERC1967Upgrade-_upgradeTo-address-}[`++_upgradeTo(newImplementation)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-}[`++_upgradeToAndCall(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-}[`++_upgradeToAndCallUUPS(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_getAdmin--}[`++_getAdmin()++`]
* {xref-ERC1967Upgrade-_changeAdmin-address-}[`++_changeAdmin(newAdmin)++`]
* {xref-ERC1967Upgrade-_getBeacon--}[`++_getBeacon()++`]
* {xref-ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-}[`++_upgradeBeaconToAndCall(newBeacon, data, forceCall)++`]
--
[.contract-index]
.Events
--
* {xref-ERC1967Upgrade-Upgraded-address-}[`++Upgraded(implementation)++`]
* {xref-ERC1967Upgrade-AdminChanged-address-address-}[`++AdminChanged(previousAdmin, newAdmin)++`]
* {xref-ERC1967Upgrade-BeaconUpgraded-address-}[`++BeaconUpgraded(beacon)++`]
--
[.contract-item]
[[ERC1967Upgrade-_getImplementation--]]
==== `[.contract-item-name]#++_getImplementation++#++() → address++` [.item-kind]#internal#
Returns the current implementation address.
[.contract-item]
[[ERC1967Upgrade-_upgradeTo-address-]]
==== `[.contract-item-name]#++_upgradeTo++#++(address newImplementation)++` [.item-kind]#internal#
Perform implementation upgrade
Emits an {Upgraded} event.
[.contract-item]
[[ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-]]
==== `[.contract-item-name]#++_upgradeToAndCall++#++(address newImplementation, bytes data, bool forceCall)++` [.item-kind]#internal#
Perform implementation upgrade with additional setup call.
Emits an {Upgraded} event.
[.contract-item]
[[ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-]]
==== `[.contract-item-name]#++_upgradeToAndCallUUPS++#++(address newImplementation, bytes data, bool forceCall)++` [.item-kind]#internal#
Perform implementation upgrade with security checks for UUPS proxies, and additional setup call.
Emits an {Upgraded} event.
[.contract-item]
[[ERC1967Upgrade-_getAdmin--]]
==== `[.contract-item-name]#++_getAdmin++#++() → address++` [.item-kind]#internal#
Returns the current admin.
[.contract-item]
[[ERC1967Upgrade-_changeAdmin-address-]]
==== `[.contract-item-name]#++_changeAdmin++#++(address newAdmin)++` [.item-kind]#internal#
Changes the admin of the proxy.
Emits an {AdminChanged} event.
[.contract-item]
[[ERC1967Upgrade-_getBeacon--]]
==== `[.contract-item-name]#++_getBeacon++#++() → address++` [.item-kind]#internal#
Returns the current beacon.
[.contract-item]
[[ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-]]
==== `[.contract-item-name]#++_upgradeBeaconToAndCall++#++(address newBeacon, bytes data, bool forceCall)++` [.item-kind]#internal#
Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does
not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that).
Emits a {BeaconUpgraded} event.
[.contract-item]
[[ERC1967Upgrade-Upgraded-address-]]
==== `[.contract-item-name]#++Upgraded++#++(address implementation)++` [.item-kind]#event#
Emitted when the implementation is upgraded.
[.contract-item]
[[ERC1967Upgrade-AdminChanged-address-address-]]
==== `[.contract-item-name]#++AdminChanged++#++(address previousAdmin, address newAdmin)++` [.item-kind]#event#
Emitted when the admin account has changed.
[.contract-item]
[[ERC1967Upgrade-BeaconUpgraded-address-]]
==== `[.contract-item-name]#++BeaconUpgraded++#++(address beacon)++` [.item-kind]#event#
Emitted when the beacon is upgraded.
== Transparent Proxy
:TransparentUpgradeableProxy: pass:normal[xref:#TransparentUpgradeableProxy[`++TransparentUpgradeableProxy++`]]
:ifAdmin: pass:normal[xref:#TransparentUpgradeableProxy-ifAdmin--[`++ifAdmin++`]]
:constructor: pass:normal[xref:#TransparentUpgradeableProxy-constructor-address-address-bytes-[`++constructor++`]]
:admin: pass:normal[xref:#TransparentUpgradeableProxy-admin--[`++admin++`]]
:implementation: pass:normal[xref:#TransparentUpgradeableProxy-implementation--[`++implementation++`]]
:changeAdmin: pass:normal[xref:#TransparentUpgradeableProxy-changeAdmin-address-[`++changeAdmin++`]]
:upgradeTo: pass:normal[xref:#TransparentUpgradeableProxy-upgradeTo-address-[`++upgradeTo++`]]
:upgradeToAndCall: pass:normal[xref:#TransparentUpgradeableProxy-upgradeToAndCall-address-bytes-[`++upgradeToAndCall++`]]
:_admin: pass:normal[xref:#TransparentUpgradeableProxy-_admin--[`++_admin++`]]
:_beforeFallback: pass:normal[xref:#TransparentUpgradeableProxy-_beforeFallback--[`++_beforeFallback++`]]
[.contract]
[[TransparentUpgradeableProxy]]
=== `++TransparentUpgradeableProxy++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/TransparentUpgradeableProxy.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
```
This contract implements a proxy that is upgradeable by an admin.
To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
clashing], which can potentially be used in an attack, this contract uses the
https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
things that go hand in hand:
1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
that call matches one of the admin functions exposed by the proxy itself.
2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
implementation. If the admin tries to call a function on the implementation it will fail with an error that says
"admin cannot fallback to proxy target".
These properties mean that the admin account can only be used for admin actions like upgrading the proxy or changing
the admin, so it's best if it's a dedicated account that is not used for anything else. This will avoid headaches due
to sudden errors when trying to call a function from the proxy implementation.
Our recommendation is for the dedicated account to be an instance of the {ProxyAdmin} contract. If set up this way,
you should think of the `ProxyAdmin` instance as the real administrative interface of your proxy.
[.contract-index]
.Modifiers
--
* {xref-TransparentUpgradeableProxy-ifAdmin--}[`++ifAdmin()++`]
--
[.contract-index]
.Functions
--
* {xref-TransparentUpgradeableProxy-constructor-address-address-bytes-}[`++constructor(_logic, admin_, _data)++`]
* {xref-TransparentUpgradeableProxy-admin--}[`++admin()++`]
* {xref-TransparentUpgradeableProxy-implementation--}[`++implementation()++`]
* {xref-TransparentUpgradeableProxy-changeAdmin-address-}[`++changeAdmin(newAdmin)++`]
* {xref-TransparentUpgradeableProxy-upgradeTo-address-}[`++upgradeTo(newImplementation)++`]
* {xref-TransparentUpgradeableProxy-upgradeToAndCall-address-bytes-}[`++upgradeToAndCall(newImplementation, data)++`]
* {xref-TransparentUpgradeableProxy-_admin--}[`++_admin()++`]
* {xref-TransparentUpgradeableProxy-_beforeFallback--}[`++_beforeFallback()++`]
[.contract-subindex-inherited]
.ERC1967Proxy
* {xref-ERC1967Proxy-_implementation--}[`++_implementation()++`]
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-_getImplementation--}[`++_getImplementation()++`]
* {xref-ERC1967Upgrade-_upgradeTo-address-}[`++_upgradeTo(newImplementation)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-}[`++_upgradeToAndCall(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-}[`++_upgradeToAndCallUUPS(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_getAdmin--}[`++_getAdmin()++`]
* {xref-ERC1967Upgrade-_changeAdmin-address-}[`++_changeAdmin(newAdmin)++`]
* {xref-ERC1967Upgrade-_getBeacon--}[`++_getBeacon()++`]
* {xref-ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-}[`++_upgradeBeaconToAndCall(newBeacon, data, forceCall)++`]
[.contract-subindex-inherited]
.Proxy
* {xref-Proxy-_delegate-address-}[`++_delegate(implementation)++`]
* {xref-Proxy-_fallback--}[`++_fallback()++`]
* {xref-Proxy-fallback--}[`++fallback()++`]
* {xref-Proxy-receive--}[`++receive()++`]
--
[.contract-index]
.Events
--
[.contract-subindex-inherited]
.ERC1967Proxy
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-Upgraded-address-}[`++Upgraded(implementation)++`]
* {xref-ERC1967Upgrade-AdminChanged-address-address-}[`++AdminChanged(previousAdmin, newAdmin)++`]
* {xref-ERC1967Upgrade-BeaconUpgraded-address-}[`++BeaconUpgraded(beacon)++`]
[.contract-subindex-inherited]
.Proxy
--
[.contract-item]
[[TransparentUpgradeableProxy-ifAdmin--]]
==== `[.contract-item-name]#++ifAdmin++#++()++` [.item-kind]#modifier#
Modifier used internally that will delegate the call to the implementation unless the sender is the admin.
[.contract-item]
[[TransparentUpgradeableProxy-constructor-address-address-bytes-]]
==== `[.contract-item-name]#++constructor++#++(address _logic, address admin_, bytes _data)++` [.item-kind]#public#
Initializes an upgradeable proxy managed by `_admin`, backed by the implementation at `_logic`, and
optionally initialized with `_data` as explained in {ERC1967Proxy-constructor}.
[.contract-item]
[[TransparentUpgradeableProxy-admin--]]
==== `[.contract-item-name]#++admin++#++() → address admin_++` [.item-kind]#external#
Returns the current admin.
NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyAdmin}.
TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
`0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
[.contract-item]
[[TransparentUpgradeableProxy-implementation--]]
==== `[.contract-item-name]#++implementation++#++() → address implementation_++` [.item-kind]#external#
Returns the current implementation.
NOTE: Only the admin can call this function. See {ProxyAdmin-getProxyImplementation}.
TIP: To get this value clients can read directly from the storage slot shown below (specified by EIP1967) using the
https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
`0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
[.contract-item]
[[TransparentUpgradeableProxy-changeAdmin-address-]]
==== `[.contract-item-name]#++changeAdmin++#++(address newAdmin)++` [.item-kind]#external#
Changes the admin of the proxy.
Emits an {AdminChanged} event.
NOTE: Only the admin can call this function. See {ProxyAdmin-changeProxyAdmin}.
[.contract-item]
[[TransparentUpgradeableProxy-upgradeTo-address-]]
==== `[.contract-item-name]#++upgradeTo++#++(address newImplementation)++` [.item-kind]#external#
Upgrade the implementation of the proxy.
NOTE: Only the admin can call this function. See {ProxyAdmin-upgrade}.
[.contract-item]
[[TransparentUpgradeableProxy-upgradeToAndCall-address-bytes-]]
==== `[.contract-item-name]#++upgradeToAndCall++#++(address newImplementation, bytes data)++` [.item-kind]#external#
Upgrade the implementation of the proxy, and then call a function from the new implementation as specified
by `data`, which should be an encoded function call. This is useful to initialize new storage variables in the
proxied contract.
NOTE: Only the admin can call this function. See {ProxyAdmin-upgradeAndCall}.
[.contract-item]
[[TransparentUpgradeableProxy-_admin--]]
==== `[.contract-item-name]#++_admin++#++() → address++` [.item-kind]#internal#
Returns the current admin.
[.contract-item]
[[TransparentUpgradeableProxy-_beforeFallback--]]
==== `[.contract-item-name]#++_beforeFallback++#++()++` [.item-kind]#internal#
Makes sure the admin cannot access the fallback function. See {Proxy-_beforeFallback}.
:ProxyAdmin: pass:normal[xref:#ProxyAdmin[`++ProxyAdmin++`]]
:getProxyImplementation: pass:normal[xref:#ProxyAdmin-getProxyImplementation-contract-TransparentUpgradeableProxy-[`++getProxyImplementation++`]]
:getProxyAdmin: pass:normal[xref:#ProxyAdmin-getProxyAdmin-contract-TransparentUpgradeableProxy-[`++getProxyAdmin++`]]
:changeProxyAdmin: pass:normal[xref:#ProxyAdmin-changeProxyAdmin-contract-TransparentUpgradeableProxy-address-[`++changeProxyAdmin++`]]
:upgrade: pass:normal[xref:#ProxyAdmin-upgrade-contract-TransparentUpgradeableProxy-address-[`++upgrade++`]]
:upgradeAndCall: pass:normal[xref:#ProxyAdmin-upgradeAndCall-contract-TransparentUpgradeableProxy-address-bytes-[`++upgradeAndCall++`]]
[.contract]
[[ProxyAdmin]]
=== `++ProxyAdmin++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/transparent/ProxyAdmin.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
```
This is an auxiliary contract meant to be assigned as the admin of a {TransparentUpgradeableProxy}. For an
explanation of why you would want to use this see the documentation for {TransparentUpgradeableProxy}.
[.contract-index]
.Functions
--
* {xref-ProxyAdmin-getProxyImplementation-contract-TransparentUpgradeableProxy-}[`++getProxyImplementation(proxy)++`]
* {xref-ProxyAdmin-getProxyAdmin-contract-TransparentUpgradeableProxy-}[`++getProxyAdmin(proxy)++`]
* {xref-ProxyAdmin-changeProxyAdmin-contract-TransparentUpgradeableProxy-address-}[`++changeProxyAdmin(proxy, newAdmin)++`]
* {xref-ProxyAdmin-upgrade-contract-TransparentUpgradeableProxy-address-}[`++upgrade(proxy, implementation)++`]
* {xref-ProxyAdmin-upgradeAndCall-contract-TransparentUpgradeableProxy-address-bytes-}[`++upgradeAndCall(proxy, implementation, data)++`]
[.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]
.Ownable
* {xref-Ownable-OwnershipTransferred-address-address-}[`++OwnershipTransferred(previousOwner, newOwner)++`]
[.contract-subindex-inherited]
.Context
--
[.contract-item]
[[ProxyAdmin-getProxyImplementation-contract-TransparentUpgradeableProxy-]]
==== `[.contract-item-name]#++getProxyImplementation++#++(contract TransparentUpgradeableProxy proxy) → address++` [.item-kind]#public#
Returns the current implementation of `proxy`.
Requirements:
- This contract must be the admin of `proxy`.
[.contract-item]
[[ProxyAdmin-getProxyAdmin-contract-TransparentUpgradeableProxy-]]
==== `[.contract-item-name]#++getProxyAdmin++#++(contract TransparentUpgradeableProxy proxy) → address++` [.item-kind]#public#
Returns the current admin of `proxy`.
Requirements:
- This contract must be the admin of `proxy`.
[.contract-item]
[[ProxyAdmin-changeProxyAdmin-contract-TransparentUpgradeableProxy-address-]]
==== `[.contract-item-name]#++changeProxyAdmin++#++(contract TransparentUpgradeableProxy proxy, address newAdmin)++` [.item-kind]#public#
Changes the admin of `proxy` to `newAdmin`.
Requirements:
- This contract must be the current admin of `proxy`.
[.contract-item]
[[ProxyAdmin-upgrade-contract-TransparentUpgradeableProxy-address-]]
==== `[.contract-item-name]#++upgrade++#++(contract TransparentUpgradeableProxy proxy, address implementation)++` [.item-kind]#public#
Upgrades `proxy` to `implementation`. See {TransparentUpgradeableProxy-upgradeTo}.
Requirements:
- This contract must be the admin of `proxy`.
[.contract-item]
[[ProxyAdmin-upgradeAndCall-contract-TransparentUpgradeableProxy-address-bytes-]]
==== `[.contract-item-name]#++upgradeAndCall++#++(contract TransparentUpgradeableProxy proxy, address implementation, bytes data)++` [.item-kind]#public#
Upgrades `proxy` to `implementation` and calls a function on the new implementation. See
{TransparentUpgradeableProxy-upgradeToAndCall}.
Requirements:
- This contract must be the admin of `proxy`.
== Beacon
:BeaconProxy: pass:normal[xref:#BeaconProxy[`++BeaconProxy++`]]
:constructor: pass:normal[xref:#BeaconProxy-constructor-address-bytes-[`++constructor++`]]
:_beacon: pass:normal[xref:#BeaconProxy-_beacon--[`++_beacon++`]]
:_implementation: pass:normal[xref:#BeaconProxy-_implementation--[`++_implementation++`]]
:_setBeacon: pass:normal[xref:#BeaconProxy-_setBeacon-address-bytes-[`++_setBeacon++`]]
[.contract]
[[BeaconProxy]]
=== `++BeaconProxy++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/beacon/BeaconProxy.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
```
This contract implements a proxy that gets the implementation address for each call from an {UpgradeableBeacon}.
The beacon address is stored in storage slot `uint256(keccak256('eip1967.proxy.beacon')) - 1`, so that it doesn't
conflict with the storage layout of the implementation behind the proxy.
_Available since v3.4._
[.contract-index]
.Functions
--
* {xref-BeaconProxy-constructor-address-bytes-}[`++constructor(beacon, data)++`]
* {xref-BeaconProxy-_beacon--}[`++_beacon()++`]
* {xref-BeaconProxy-_implementation--}[`++_implementation()++`]
* {xref-BeaconProxy-_setBeacon-address-bytes-}[`++_setBeacon(beacon, data)++`]
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-_getImplementation--}[`++_getImplementation()++`]
* {xref-ERC1967Upgrade-_upgradeTo-address-}[`++_upgradeTo(newImplementation)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-}[`++_upgradeToAndCall(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-}[`++_upgradeToAndCallUUPS(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_getAdmin--}[`++_getAdmin()++`]
* {xref-ERC1967Upgrade-_changeAdmin-address-}[`++_changeAdmin(newAdmin)++`]
* {xref-ERC1967Upgrade-_getBeacon--}[`++_getBeacon()++`]
* {xref-ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-}[`++_upgradeBeaconToAndCall(newBeacon, data, forceCall)++`]
[.contract-subindex-inherited]
.Proxy
* {xref-Proxy-_delegate-address-}[`++_delegate(implementation)++`]
* {xref-Proxy-_fallback--}[`++_fallback()++`]
* {xref-Proxy-fallback--}[`++fallback()++`]
* {xref-Proxy-receive--}[`++receive()++`]
* {xref-Proxy-_beforeFallback--}[`++_beforeFallback()++`]
--
[.contract-index]
.Events
--
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-Upgraded-address-}[`++Upgraded(implementation)++`]
* {xref-ERC1967Upgrade-AdminChanged-address-address-}[`++AdminChanged(previousAdmin, newAdmin)++`]
* {xref-ERC1967Upgrade-BeaconUpgraded-address-}[`++BeaconUpgraded(beacon)++`]
[.contract-subindex-inherited]
.Proxy
--
[.contract-item]
[[BeaconProxy-constructor-address-bytes-]]
==== `[.contract-item-name]#++constructor++#++(address beacon, bytes data)++` [.item-kind]#public#
Initializes the proxy with `beacon`.
If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This
will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity
constructor.
Requirements:
- `beacon` must be a contract with the interface {IBeacon}.
[.contract-item]
[[BeaconProxy-_beacon--]]
==== `[.contract-item-name]#++_beacon++#++() → address++` [.item-kind]#internal#
Returns the current beacon address.
[.contract-item]
[[BeaconProxy-_implementation--]]
==== `[.contract-item-name]#++_implementation++#++() → address++` [.item-kind]#internal#
Returns the current implementation address of the associated beacon.
[.contract-item]
[[BeaconProxy-_setBeacon-address-bytes-]]
==== `[.contract-item-name]#++_setBeacon++#++(address beacon, bytes data)++` [.item-kind]#internal#
Changes the proxy to use a new beacon. Deprecated: see {_upgradeBeaconToAndCall}.
If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon.
Requirements:
- `beacon` must be a contract.
- The implementation returned by `beacon` must be a contract.
:IBeacon: pass:normal[xref:#IBeacon[`++IBeacon++`]]
:implementation: pass:normal[xref:#IBeacon-implementation--[`++implementation++`]]
[.contract]
[[IBeacon]]
=== `++IBeacon++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/beacon/IBeacon.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/beacon/IBeacon.sol";
```
This is the interface that {BeaconProxy} expects of its beacon.
[.contract-index]
.Functions
--
* {xref-IBeacon-implementation--}[`++implementation()++`]
--
[.contract-item]
[[IBeacon-implementation--]]
==== `[.contract-item-name]#++implementation++#++() → address++` [.item-kind]#external#
Must return an address that can be used as a delegate call target.
{BeaconProxy} will check that this address is a contract.
:UpgradeableBeacon: pass:normal[xref:#UpgradeableBeacon[`++UpgradeableBeacon++`]]
:constructor: pass:normal[xref:#UpgradeableBeacon-constructor-address-[`++constructor++`]]
:implementation: pass:normal[xref:#UpgradeableBeacon-implementation--[`++implementation++`]]
:upgradeTo: pass:normal[xref:#UpgradeableBeacon-upgradeTo-address-[`++upgradeTo++`]]
:Upgraded: pass:normal[xref:#UpgradeableBeacon-Upgraded-address-[`++Upgraded++`]]
[.contract]
[[UpgradeableBeacon]]
=== `++UpgradeableBeacon++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/beacon/UpgradeableBeacon.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol";
```
This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their
implementation contract, which is where they will delegate all function calls.
An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.
[.contract-index]
.Functions
--
* {xref-UpgradeableBeacon-constructor-address-}[`++constructor(implementation_)++`]
* {xref-UpgradeableBeacon-implementation--}[`++implementation()++`]
* {xref-UpgradeableBeacon-upgradeTo-address-}[`++upgradeTo(newImplementation)++`]
[.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-subindex-inherited]
.IBeacon
--
[.contract-index]
.Events
--
* {xref-UpgradeableBeacon-Upgraded-address-}[`++Upgraded(implementation)++`]
[.contract-subindex-inherited]
.Ownable
* {xref-Ownable-OwnershipTransferred-address-address-}[`++OwnershipTransferred(previousOwner, newOwner)++`]
[.contract-subindex-inherited]
.Context
[.contract-subindex-inherited]
.IBeacon
--
[.contract-item]
[[UpgradeableBeacon-constructor-address-]]
==== `[.contract-item-name]#++constructor++#++(address implementation_)++` [.item-kind]#public#
Sets the address of the initial implementation, and the deployer account as the owner who can upgrade the
beacon.
[.contract-item]
[[UpgradeableBeacon-implementation--]]
==== `[.contract-item-name]#++implementation++#++() → address++` [.item-kind]#public#
Returns the current implementation address.
[.contract-item]
[[UpgradeableBeacon-upgradeTo-address-]]
==== `[.contract-item-name]#++upgradeTo++#++(address newImplementation)++` [.item-kind]#public#
Upgrades the beacon to a new implementation.
Emits an {Upgraded} event.
Requirements:
- msg.sender must be the owner of the contract.
- `newImplementation` must be a contract.
[.contract-item]
[[UpgradeableBeacon-Upgraded-address-]]
==== `[.contract-item-name]#++Upgraded++#++(address implementation)++` [.item-kind]#event#
Emitted when the implementation returned by the beacon is changed.
== Minimal Clones
:Clones: pass:normal[xref:#Clones[`++Clones++`]]
:clone: pass:normal[xref:#Clones-clone-address-[`++clone++`]]
:cloneDeterministic: pass:normal[xref:#Clones-cloneDeterministic-address-bytes32-[`++cloneDeterministic++`]]
:predictDeterministicAddress: pass:normal[xref:#Clones-predictDeterministicAddress-address-bytes32-address-[`++predictDeterministicAddress++`]]
:predictDeterministicAddress: pass:normal[xref:#Clones-predictDeterministicAddress-address-bytes32-[`++predictDeterministicAddress++`]]
[.contract]
[[Clones]]
=== `++Clones++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/Clones.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/Clones.sol";
```
https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
deploying minimal proxy contracts, also known as "clones".
> To simply and cheaply clone contract functionality in an immutable way, this standard specifies
> a minimal bytecode implementation that delegates all calls to a known, fixed address.
The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
(salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
deterministic method.
_Available since v3.4._
[.contract-index]
.Functions
--
* {xref-Clones-clone-address-}[`++clone(implementation)++`]
* {xref-Clones-cloneDeterministic-address-bytes32-}[`++cloneDeterministic(implementation, salt)++`]
* {xref-Clones-predictDeterministicAddress-address-bytes32-address-}[`++predictDeterministicAddress(implementation, salt, deployer)++`]
* {xref-Clones-predictDeterministicAddress-address-bytes32-}[`++predictDeterministicAddress(implementation, salt)++`]
--
[.contract-item]
[[Clones-clone-address-]]
==== `[.contract-item-name]#++clone++#++(address implementation) → address instance++` [.item-kind]#internal#
Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
This function uses the create opcode, which should never revert.
[.contract-item]
[[Clones-cloneDeterministic-address-bytes32-]]
==== `[.contract-item-name]#++cloneDeterministic++#++(address implementation, bytes32 salt) → address instance++` [.item-kind]#internal#
Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
This function uses the create2 opcode and a `salt` to deterministically deploy
the clone. Using the same `implementation` and `salt` multiple time will revert, since
the clones cannot be deployed twice at the same address.
[.contract-item]
[[Clones-predictDeterministicAddress-address-bytes32-address-]]
==== `[.contract-item-name]#++predictDeterministicAddress++#++(address implementation, bytes32 salt, address deployer) → address predicted++` [.item-kind]#internal#
Computes the address of a clone deployed using {Clones-cloneDeterministic}.
[.contract-item]
[[Clones-predictDeterministicAddress-address-bytes32-]]
==== `[.contract-item-name]#++predictDeterministicAddress++#++(address implementation, bytes32 salt) → address predicted++` [.item-kind]#internal#
Computes the address of a clone deployed using {Clones-cloneDeterministic}.
== Utils
:Initializable: pass:normal[xref:#Initializable[`++Initializable++`]]
:initializer: pass:normal[xref:#Initializable-initializer--[`++initializer++`]]
:reinitializer: pass:normal[xref:#Initializable-reinitializer-uint8-[`++reinitializer++`]]
:onlyInitializing: pass:normal[xref:#Initializable-onlyInitializing--[`++onlyInitializing++`]]
:_disableInitializers: pass:normal[xref:#Initializable-_disableInitializers--[`++_disableInitializers++`]]
:Initialized: pass:normal[xref:#Initializable-Initialized-uint8-[`++Initialized++`]]
[.contract]
[[Initializable]]
=== `++Initializable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/utils/Initializable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
```
This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
case an upgrade adds a module that needs to be initialized.
For example:
[.hljs-theme-light.nopadding]
```
contract MyToken is ERC20Upgradeable {
function initialize() initializer public {
__ERC20_init("MyToken", "MTK");
}
}
contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {
function initializeV2() reinitializer(2) public {
__ERC20Permit_init("MyToken");
}
}
```
TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.
CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
[CAUTION]
====
Avoid leaving a contract uninitialized.
An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation
contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke
the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:
[.hljs-theme-light.nopadding]
```
/// @custom:oz-upgrades-unsafe-allow constructor
constructor() {
_disableInitializers();
}
```
====
[.contract-index]
.Modifiers
--
* {xref-Initializable-initializer--}[`++initializer()++`]
* {xref-Initializable-reinitializer-uint8-}[`++reinitializer(version)++`]
* {xref-Initializable-onlyInitializing--}[`++onlyInitializing()++`]
--
[.contract-index]
.Functions
--
* {xref-Initializable-_disableInitializers--}[`++_disableInitializers()++`]
--
[.contract-index]
.Events
--
* {xref-Initializable-Initialized-uint8-}[`++Initialized(version)++`]
--
[.contract-item]
[[Initializable-initializer--]]
==== `[.contract-item-name]#++initializer++#++()++` [.item-kind]#modifier#
A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
`onlyInitializing` functions can be used to initialize parent contracts. Equivalent to `reinitializer(1)`.
[.contract-item]
[[Initializable-reinitializer-uint8-]]
==== `[.contract-item-name]#++reinitializer++#++(uint8 version)++` [.item-kind]#modifier#
A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the
contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be
used to initialize parent contracts.
`initializer` is equivalent to `reinitializer(1)`, so a reinitializer may be used after the original
initialization step. This is essential to configure modules that are added through upgrades and that require
initialization.
Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in
a contract, executing them in the right order is up to the developer or operator.
[.contract-item]
[[Initializable-onlyInitializing--]]
==== `[.contract-item-name]#++onlyInitializing++#++()++` [.item-kind]#modifier#
Modifier to protect an initialization function so that it can only be invoked by functions with the
{initializer} and {reinitializer} modifiers, directly or indirectly.
[.contract-item]
[[Initializable-_disableInitializers--]]
==== `[.contract-item-name]#++_disableInitializers++#++()++` [.item-kind]#internal#
Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.
Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized
to any version. It is recommended to use this to lock implementation contracts that are designed to be called
through proxies.
[.contract-item]
[[Initializable-Initialized-uint8-]]
==== `[.contract-item-name]#++Initialized++#++(uint8 version)++` [.item-kind]#event#
Triggered when the contract has been initialized or reinitialized.
:UUPSUpgradeable: pass:normal[xref:#UUPSUpgradeable[`++UUPSUpgradeable++`]]
:onlyProxy: pass:normal[xref:#UUPSUpgradeable-onlyProxy--[`++onlyProxy++`]]
:notDelegated: pass:normal[xref:#UUPSUpgradeable-notDelegated--[`++notDelegated++`]]
:proxiableUUID: pass:normal[xref:#UUPSUpgradeable-proxiableUUID--[`++proxiableUUID++`]]
:upgradeTo: pass:normal[xref:#UUPSUpgradeable-upgradeTo-address-[`++upgradeTo++`]]
:upgradeToAndCall: pass:normal[xref:#UUPSUpgradeable-upgradeToAndCall-address-bytes-[`++upgradeToAndCall++`]]
:_authorizeUpgrade: pass:normal[xref:#UUPSUpgradeable-_authorizeUpgrade-address-[`++_authorizeUpgrade++`]]
[.contract]
[[UUPSUpgradeable]]
=== `++UUPSUpgradeable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.7.1/contracts/proxy/utils/UUPSUpgradeable.sol[{github-icon},role=heading-link]
[.hljs-theme-light.nopadding]
```solidity
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
```
An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an
{ERC1967Proxy}, when this contract is set as the implementation behind such a proxy.
A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is
reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing
`UUPSUpgradeable` with a custom implementation of upgrades.
The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism.
_Available since v4.1._
[.contract-index]
.Modifiers
--
* {xref-UUPSUpgradeable-onlyProxy--}[`++onlyProxy()++`]
* {xref-UUPSUpgradeable-notDelegated--}[`++notDelegated()++`]
--
[.contract-index]
.Functions
--
* {xref-UUPSUpgradeable-proxiableUUID--}[`++proxiableUUID()++`]
* {xref-UUPSUpgradeable-upgradeTo-address-}[`++upgradeTo(newImplementation)++`]
* {xref-UUPSUpgradeable-upgradeToAndCall-address-bytes-}[`++upgradeToAndCall(newImplementation, data)++`]
* {xref-UUPSUpgradeable-_authorizeUpgrade-address-}[`++_authorizeUpgrade(newImplementation)++`]
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-_getImplementation--}[`++_getImplementation()++`]
* {xref-ERC1967Upgrade-_upgradeTo-address-}[`++_upgradeTo(newImplementation)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCall-address-bytes-bool-}[`++_upgradeToAndCall(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_upgradeToAndCallUUPS-address-bytes-bool-}[`++_upgradeToAndCallUUPS(newImplementation, data, forceCall)++`]
* {xref-ERC1967Upgrade-_getAdmin--}[`++_getAdmin()++`]
* {xref-ERC1967Upgrade-_changeAdmin-address-}[`++_changeAdmin(newAdmin)++`]
* {xref-ERC1967Upgrade-_getBeacon--}[`++_getBeacon()++`]
* {xref-ERC1967Upgrade-_upgradeBeaconToAndCall-address-bytes-bool-}[`++_upgradeBeaconToAndCall(newBeacon, data, forceCall)++`]
[.contract-subindex-inherited]
.IERC1822Proxiable
--
[.contract-index]
.Events
--
[.contract-subindex-inherited]
.ERC1967Upgrade
* {xref-ERC1967Upgrade-Upgraded-address-}[`++Upgraded(implementation)++`]
* {xref-ERC1967Upgrade-AdminChanged-address-address-}[`++AdminChanged(previousAdmin, newAdmin)++`]
* {xref-ERC1967Upgrade-BeaconUpgraded-address-}[`++BeaconUpgraded(beacon)++`]
[.contract-subindex-inherited]
.IERC1822Proxiable
--
[.contract-item]
[[UUPSUpgradeable-onlyProxy--]]
==== `[.contract-item-name]#++onlyProxy++#++()++` [.item-kind]#modifier#
Check that the execution is being performed through a delegatecall call and that the execution context is
a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case
for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a
function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to
fail.
[.contract-item]
[[UUPSUpgradeable-notDelegated--]]
==== `[.contract-item-name]#++notDelegated++#++()++` [.item-kind]#modifier#
Check that the execution is not being performed through a delegate call. This allows a function to be
callable on the implementing contract but not through proxies.
[.contract-item]
[[UUPSUpgradeable-proxiableUUID--]]
==== `[.contract-item-name]#++proxiableUUID++#++() → bytes32++` [.item-kind]#external#
Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the
implementation. It is used to validate that the this implementation remains valid after an upgrade.
IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.
[.contract-item]
[[UUPSUpgradeable-upgradeTo-address-]]
==== `[.contract-item-name]#++upgradeTo++#++(address newImplementation)++` [.item-kind]#external#
Upgrade the implementation of the proxy to `newImplementation`.
Calls {_authorizeUpgrade}.
Emits an {Upgraded} event.
[.contract-item]
[[UUPSUpgradeable-upgradeToAndCall-address-bytes-]]
==== `[.contract-item-name]#++upgradeToAndCall++#++(address newImplementation, bytes data)++` [.item-kind]#external#
Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call
encoded in `data`.
Calls {_authorizeUpgrade}.
Emits an {Upgraded} event.
[.contract-item]
[[UUPSUpgradeable-_authorizeUpgrade-address-]]
==== `[.contract-item-name]#++_authorizeUpgrade++#++(address newImplementation)++` [.item-kind]#internal#
Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by
{upgradeTo} and {upgradeToAndCall}.
Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}.
```solidity
function _authorizeUpgrade(address) internal override onlyOwner {}
```