12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007 |
- :github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
- :AccessControl: pass:normal[xref:access.adoc#AccessControl[`AccessControl`]]
- :xref-AccessControl: xref:access.adoc#AccessControl
- :AccessControl-onlyRole: pass:normal[xref:access.adoc#AccessControl-onlyRole-bytes32-[`AccessControl.onlyRole`]]
- :xref-AccessControl-onlyRole-bytes32-: xref:access.adoc#AccessControl-onlyRole-bytes32-
- :AccessControl-DEFAULT_ADMIN_ROLE: pass:normal[xref:access.adoc#AccessControl-DEFAULT_ADMIN_ROLE-bytes32[`AccessControl.DEFAULT_ADMIN_ROLE`]]
- :xref-AccessControl-DEFAULT_ADMIN_ROLE-bytes32: xref:access.adoc#AccessControl-DEFAULT_ADMIN_ROLE-bytes32
- :AccessControl-supportsInterface: pass:normal[xref:access.adoc#AccessControl-supportsInterface-bytes4-[`AccessControl.supportsInterface`]]
- :xref-AccessControl-supportsInterface-bytes4-: xref:access.adoc#AccessControl-supportsInterface-bytes4-
- :AccessControl-hasRole: pass:normal[xref:access.adoc#AccessControl-hasRole-bytes32-address-[`AccessControl.hasRole`]]
- :xref-AccessControl-hasRole-bytes32-address-: xref:access.adoc#AccessControl-hasRole-bytes32-address-
- :AccessControl-_checkRole: pass:normal[xref:access.adoc#AccessControl-_checkRole-bytes32-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
- :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-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-
- :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-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-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-_countVote: pass:normal[xref:governance.adoc#Governor-_countVote-uint256-address-uint8-uint256-[`Governor._countVote`]]
- :xref-Governor-_countVote-uint256-address-uint8-uint256-: xref:governance.adoc#Governor-_countVote-uint256-address-uint8-uint256-
- :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-_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-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-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-_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-_executor: pass:normal[xref:governance.adoc#Governor-_executor--[`Governor._executor`]]
- :xref-Governor-_executor--: xref:governance.adoc#Governor-_executor--
- :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-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-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-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-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-_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-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-updateDelay: pass:normal[xref:governance.adoc#TimelockController-updateDelay-uint256-[`TimelockController.updateDelay`]]
- :xref-TimelockController-updateDelay-uint256-: xref:governance.adoc#TimelockController-updateDelay-uint256-
- :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-[`GovernorCompatibilityBravo._countVote`]]
- :xref-GovernorCompatibilityBravo-_countVote-uint256-address-uint8-uint256-: xref:governance.adoc#GovernorCompatibilityBravo-_countVote-uint256-address-uint8-uint256-
- :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-[`GovernorCountingSimple._countVote`]]
- :xref-GovernorCountingSimple-_countVote-uint256-address-uint8-uint256-: xref:governance.adoc#GovernorCountingSimple-_countVote-uint256-address-uint8-uint256-
- :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
- :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-
- :ICompoundTimelock: pass:normal[xref:governance.adoc#ICompoundTimelock[`ICompoundTimelock`]]
- :xref-ICompoundTimelock: xref:governance.adoc#ICompoundTimelock
- :ICompoundTimelock-receive: pass:normal[xref:governance.adoc#ICompoundTimelock-receive--[`ICompoundTimelock.receive`]]
- :xref-ICompoundTimelock-receive--: xref:governance.adoc#ICompoundTimelock-receive--
- :ICompoundTimelock-GRACE_PERIOD: pass:normal[xref:governance.adoc#ICompoundTimelock-GRACE_PERIOD--[`ICompoundTimelock.GRACE_PERIOD`]]
- :xref-ICompoundTimelock-GRACE_PERIOD--: xref:governance.adoc#ICompoundTimelock-GRACE_PERIOD--
- :ICompoundTimelock-MINIMUM_DELAY: pass:normal[xref:governance.adoc#ICompoundTimelock-MINIMUM_DELAY--[`ICompoundTimelock.MINIMUM_DELAY`]]
- :xref-ICompoundTimelock-MINIMUM_DELAY--: xref:governance.adoc#ICompoundTimelock-MINIMUM_DELAY--
- :ICompoundTimelock-MAXIMUM_DELAY: pass:normal[xref:governance.adoc#ICompoundTimelock-MAXIMUM_DELAY--[`ICompoundTimelock.MAXIMUM_DELAY`]]
- :xref-ICompoundTimelock-MAXIMUM_DELAY--: xref:governance.adoc#ICompoundTimelock-MAXIMUM_DELAY--
- :ICompoundTimelock-admin: pass:normal[xref:governance.adoc#ICompoundTimelock-admin--[`ICompoundTimelock.admin`]]
- :xref-ICompoundTimelock-admin--: xref:governance.adoc#ICompoundTimelock-admin--
- :ICompoundTimelock-pendingAdmin: pass:normal[xref:governance.adoc#ICompoundTimelock-pendingAdmin--[`ICompoundTimelock.pendingAdmin`]]
- :xref-ICompoundTimelock-pendingAdmin--: xref:governance.adoc#ICompoundTimelock-pendingAdmin--
- :ICompoundTimelock-delay: pass:normal[xref:governance.adoc#ICompoundTimelock-delay--[`ICompoundTimelock.delay`]]
- :xref-ICompoundTimelock-delay--: xref:governance.adoc#ICompoundTimelock-delay--
- :ICompoundTimelock-queuedTransactions: pass:normal[xref:governance.adoc#ICompoundTimelock-queuedTransactions-bytes32-[`ICompoundTimelock.queuedTransactions`]]
- :xref-ICompoundTimelock-queuedTransactions-bytes32-: xref:governance.adoc#ICompoundTimelock-queuedTransactions-bytes32-
- :ICompoundTimelock-setDelay: pass:normal[xref:governance.adoc#ICompoundTimelock-setDelay-uint256-[`ICompoundTimelock.setDelay`]]
- :xref-ICompoundTimelock-setDelay-uint256-: xref:governance.adoc#ICompoundTimelock-setDelay-uint256-
- :ICompoundTimelock-acceptAdmin: pass:normal[xref:governance.adoc#ICompoundTimelock-acceptAdmin--[`ICompoundTimelock.acceptAdmin`]]
- :xref-ICompoundTimelock-acceptAdmin--: xref:governance.adoc#ICompoundTimelock-acceptAdmin--
- :ICompoundTimelock-setPendingAdmin: pass:normal[xref:governance.adoc#ICompoundTimelock-setPendingAdmin-address-[`ICompoundTimelock.setPendingAdmin`]]
- :xref-ICompoundTimelock-setPendingAdmin-address-: xref:governance.adoc#ICompoundTimelock-setPendingAdmin-address-
- :ICompoundTimelock-queueTransaction: pass:normal[xref:governance.adoc#ICompoundTimelock-queueTransaction-address-uint256-string-bytes-uint256-[`ICompoundTimelock.queueTransaction`]]
- :xref-ICompoundTimelock-queueTransaction-address-uint256-string-bytes-uint256-: xref:governance.adoc#ICompoundTimelock-queueTransaction-address-uint256-string-bytes-uint256-
- :ICompoundTimelock-cancelTransaction: pass:normal[xref:governance.adoc#ICompoundTimelock-cancelTransaction-address-uint256-string-bytes-uint256-[`ICompoundTimelock.cancelTransaction`]]
- :xref-ICompoundTimelock-cancelTransaction-address-uint256-string-bytes-uint256-: xref:governance.adoc#ICompoundTimelock-cancelTransaction-address-uint256-string-bytes-uint256-
- :ICompoundTimelock-executeTransaction: pass:normal[xref:governance.adoc#ICompoundTimelock-executeTransaction-address-uint256-string-bytes-uint256-[`ICompoundTimelock.executeTransaction`]]
- :xref-ICompoundTimelock-executeTransaction-address-uint256-string-bytes-uint256-: xref:governance.adoc#ICompoundTimelock-executeTransaction-address-uint256-string-bytes-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-ERC20Votes[`GovernorVotes.token`]]
- :xref-GovernorVotes-token-contract-ERC20Votes: xref:governance.adoc#GovernorVotes-token-contract-ERC20Votes
- :GovernorVotes-constructor: pass:normal[xref:governance.adoc#GovernorVotes-constructor-contract-ERC20Votes-[`GovernorVotes.constructor`]]
- :xref-GovernorVotes-constructor-contract-ERC20Votes-: xref:governance.adoc#GovernorVotes-constructor-contract-ERC20Votes-
- :GovernorVotes-getVotes: pass:normal[xref:governance.adoc#GovernorVotes-getVotes-address-uint256-[`GovernorVotes.getVotes`]]
- :xref-GovernorVotes-getVotes-address-uint256-: xref:governance.adoc#GovernorVotes-getVotes-address-uint256-
- :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-[`GovernorVotesComp.getVotes`]]
- :xref-GovernorVotesComp-getVotes-address-uint256-: xref:governance.adoc#GovernorVotesComp-getVotes-address-uint256-
- :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-
- :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-
- :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-_upgradeToAndCallSecure: pass:normal[xref:proxy.adoc#ERC1967Upgrade-_upgradeToAndCallSecure-address-bytes-bool-[`ERC1967Upgrade._upgradeToAndCallSecure`]]
- :xref-ERC1967Upgrade-_upgradeToAndCallSecure-address-bytes-bool-: xref:proxy.adoc#ERC1967Upgrade-_upgradeToAndCallSecure-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-onlyInitializing: pass:normal[xref:proxy.adoc#Initializable-onlyInitializing--[`Initializable.onlyInitializing`]]
- :xref-Initializable-onlyInitializing--: xref:proxy.adoc#Initializable-onlyInitializing--
- :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-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-_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-
- :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-
- :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-processProof: pass:normal[xref:utils.adoc#MerkleProof-processProof-bytes32---bytes32-[`MerkleProof.processProof`]]
- :xref-MerkleProof-processProof-bytes32---bytes32-: xref:utils.adoc#MerkleProof-processProof-bytes32---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-
- :SafeCast: pass:normal[xref:utils.adoc#SafeCast[`SafeCast`]]
- :xref-SafeCast: xref:utils.adoc#SafeCast
- :SafeCast-toUint224: pass:normal[xref:utils.adoc#SafeCast-toUint224-uint256-[`SafeCast.toUint224`]]
- :xref-SafeCast-toUint224-uint256-: xref:utils.adoc#SafeCast-toUint224-uint256-
- :SafeCast-toUint128: pass:normal[xref:utils.adoc#SafeCast-toUint128-uint256-[`SafeCast.toUint128`]]
- :xref-SafeCast-toUint128-uint256-: xref:utils.adoc#SafeCast-toUint128-uint256-
- :SafeCast-toUint96: pass:normal[xref:utils.adoc#SafeCast-toUint96-uint256-[`SafeCast.toUint96`]]
- :xref-SafeCast-toUint96-uint256-: xref:utils.adoc#SafeCast-toUint96-uint256-
- :SafeCast-toUint64: pass:normal[xref:utils.adoc#SafeCast-toUint64-uint256-[`SafeCast.toUint64`]]
- :xref-SafeCast-toUint64-uint256-: xref:utils.adoc#SafeCast-toUint64-uint256-
- :SafeCast-toUint32: pass:normal[xref:utils.adoc#SafeCast-toUint32-uint256-[`SafeCast.toUint32`]]
- :xref-SafeCast-toUint32-uint256-: xref:utils.adoc#SafeCast-toUint32-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-toInt128: pass:normal[xref:utils.adoc#SafeCast-toInt128-int256-[`SafeCast.toInt128`]]
- :xref-SafeCast-toInt128-int256-: xref:utils.adoc#SafeCast-toInt128-int256-
- :SafeCast-toInt64: pass:normal[xref:utils.adoc#SafeCast-toInt64-int256-[`SafeCast.toInt64`]]
- :xref-SafeCast-toInt64-int256-: xref:utils.adoc#SafeCast-toInt64-int256-
- :SafeCast-toInt32: pass:normal[xref:utils.adoc#SafeCast-toInt32-int256-[`SafeCast.toInt32`]]
- :xref-SafeCast-toInt32-int256-: xref:utils.adoc#SafeCast-toInt32-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-
- :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
- :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-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-Map: pass:normal[xref:utils.adoc#EnumerableMap-Map[`EnumerableMap.Map`]]
- :xref-EnumerableMap-Map: xref:utils.adoc#EnumerableMap-Map
- :EnumerableMap-UintToAddressMap: pass:normal[xref:utils.adoc#EnumerableMap-UintToAddressMap[`EnumerableMap.UintToAddressMap`]]
- :xref-EnumerableMap-UintToAddressMap: xref:utils.adoc#EnumerableMap-UintToAddressMap
- :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-
- :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-
- :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-
- :ERC1155PresetMinterPauser: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser[`ERC1155PresetMinterPauser`]]
- :xref-ERC1155PresetMinterPauser: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser
- :ERC1155PresetMinterPauser-MINTER_ROLE: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-MINTER_ROLE-bytes32[`ERC1155PresetMinterPauser.MINTER_ROLE`]]
- :xref-ERC1155PresetMinterPauser-MINTER_ROLE-bytes32: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-MINTER_ROLE-bytes32
- :ERC1155PresetMinterPauser-PAUSER_ROLE: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-PAUSER_ROLE-bytes32[`ERC1155PresetMinterPauser.PAUSER_ROLE`]]
- :xref-ERC1155PresetMinterPauser-PAUSER_ROLE-bytes32: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-PAUSER_ROLE-bytes32
- :ERC1155PresetMinterPauser-constructor: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-constructor-string-[`ERC1155PresetMinterPauser.constructor`]]
- :xref-ERC1155PresetMinterPauser-constructor-string-: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-constructor-string-
- :ERC1155PresetMinterPauser-mint: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-mint-address-uint256-uint256-bytes-[`ERC1155PresetMinterPauser.mint`]]
- :xref-ERC1155PresetMinterPauser-mint-address-uint256-uint256-bytes-: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-mint-address-uint256-uint256-bytes-
- :ERC1155PresetMinterPauser-mintBatch: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-mintBatch-address-uint256---uint256---bytes-[`ERC1155PresetMinterPauser.mintBatch`]]
- :xref-ERC1155PresetMinterPauser-mintBatch-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-mintBatch-address-uint256---uint256---bytes-
- :ERC1155PresetMinterPauser-pause: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-pause--[`ERC1155PresetMinterPauser.pause`]]
- :xref-ERC1155PresetMinterPauser-pause--: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-pause--
- :ERC1155PresetMinterPauser-unpause: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-unpause--[`ERC1155PresetMinterPauser.unpause`]]
- :xref-ERC1155PresetMinterPauser-unpause--: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-unpause--
- :ERC1155PresetMinterPauser-supportsInterface: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-supportsInterface-bytes4-[`ERC1155PresetMinterPauser.supportsInterface`]]
- :xref-ERC1155PresetMinterPauser-supportsInterface-bytes4-: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-supportsInterface-bytes4-
- :ERC1155PresetMinterPauser-_beforeTokenTransfer: pass:normal[xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-[`ERC1155PresetMinterPauser._beforeTokenTransfer`]]
- :xref-ERC1155PresetMinterPauser-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-: xref:token/ERC1155.adoc#ERC1155PresetMinterPauser-_beforeTokenTransfer-address-address-address-uint256---uint256---bytes-
- :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-_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-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-DelegateChanged: pass:normal[xref:token/ERC20.adoc#ERC20Votes-DelegateChanged-address-address-address-[`ERC20Votes.DelegateChanged`]]
- :xref-ERC20Votes-DelegateChanged-address-address-address-: xref:token/ERC20.adoc#ERC20Votes-DelegateChanged-address-address-address-
- :ERC20Votes-DelegateVotesChanged: pass:normal[xref:token/ERC20.adoc#ERC20Votes-DelegateVotesChanged-address-uint256-uint256-[`ERC20Votes.DelegateVotesChanged`]]
- :xref-ERC20Votes-DelegateVotesChanged-address-uint256-uint256-: xref:token/ERC20.adoc#ERC20Votes-DelegateVotesChanged-address-uint256-uint256-
- :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-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-
- :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--
- :ERC20PresetFixedSupply: pass:normal[xref:token/ERC20.adoc#ERC20PresetFixedSupply[`ERC20PresetFixedSupply`]]
- :xref-ERC20PresetFixedSupply: xref:token/ERC20.adoc#ERC20PresetFixedSupply
- :ERC20PresetFixedSupply-constructor: pass:normal[xref:token/ERC20.adoc#ERC20PresetFixedSupply-constructor-string-string-uint256-address-[`ERC20PresetFixedSupply.constructor`]]
- :xref-ERC20PresetFixedSupply-constructor-string-string-uint256-address-: xref:token/ERC20.adoc#ERC20PresetFixedSupply-constructor-string-string-uint256-address-
- :ERC20PresetMinterPauser: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser[`ERC20PresetMinterPauser`]]
- :xref-ERC20PresetMinterPauser: xref:token/ERC20.adoc#ERC20PresetMinterPauser
- :ERC20PresetMinterPauser-MINTER_ROLE: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-MINTER_ROLE-bytes32[`ERC20PresetMinterPauser.MINTER_ROLE`]]
- :xref-ERC20PresetMinterPauser-MINTER_ROLE-bytes32: xref:token/ERC20.adoc#ERC20PresetMinterPauser-MINTER_ROLE-bytes32
- :ERC20PresetMinterPauser-PAUSER_ROLE: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-PAUSER_ROLE-bytes32[`ERC20PresetMinterPauser.PAUSER_ROLE`]]
- :xref-ERC20PresetMinterPauser-PAUSER_ROLE-bytes32: xref:token/ERC20.adoc#ERC20PresetMinterPauser-PAUSER_ROLE-bytes32
- :ERC20PresetMinterPauser-constructor: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-constructor-string-string-[`ERC20PresetMinterPauser.constructor`]]
- :xref-ERC20PresetMinterPauser-constructor-string-string-: xref:token/ERC20.adoc#ERC20PresetMinterPauser-constructor-string-string-
- :ERC20PresetMinterPauser-mint: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-mint-address-uint256-[`ERC20PresetMinterPauser.mint`]]
- :xref-ERC20PresetMinterPauser-mint-address-uint256-: xref:token/ERC20.adoc#ERC20PresetMinterPauser-mint-address-uint256-
- :ERC20PresetMinterPauser-pause: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-pause--[`ERC20PresetMinterPauser.pause`]]
- :xref-ERC20PresetMinterPauser-pause--: xref:token/ERC20.adoc#ERC20PresetMinterPauser-pause--
- :ERC20PresetMinterPauser-unpause: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-unpause--[`ERC20PresetMinterPauser.unpause`]]
- :xref-ERC20PresetMinterPauser-unpause--: xref:token/ERC20.adoc#ERC20PresetMinterPauser-unpause--
- :ERC20PresetMinterPauser-_beforeTokenTransfer: pass:normal[xref:token/ERC20.adoc#ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-[`ERC20PresetMinterPauser._beforeTokenTransfer`]]
- :xref-ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC20.adoc#ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-
- :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-
- :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-_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-
- :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-[`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-getApproved: pass:normal[xref:token/ERC721.adoc#IERC721-getApproved-uint256-[`IERC721.getApproved`]]
- :xref-IERC721-getApproved-uint256-: xref:token/ERC721.adoc#IERC721-getApproved-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-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-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-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-
- :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-
- :ERC721PresetMinterPauserAutoId: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId[`ERC721PresetMinterPauserAutoId`]]
- :xref-ERC721PresetMinterPauserAutoId: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId
- :ERC721PresetMinterPauserAutoId-MINTER_ROLE: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32[`ERC721PresetMinterPauserAutoId.MINTER_ROLE`]]
- :xref-ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-MINTER_ROLE-bytes32
- :ERC721PresetMinterPauserAutoId-PAUSER_ROLE: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32[`ERC721PresetMinterPauserAutoId.PAUSER_ROLE`]]
- :xref-ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-PAUSER_ROLE-bytes32
- :ERC721PresetMinterPauserAutoId-constructor: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-constructor-string-string-string-[`ERC721PresetMinterPauserAutoId.constructor`]]
- :xref-ERC721PresetMinterPauserAutoId-constructor-string-string-string-: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-constructor-string-string-string-
- :ERC721PresetMinterPauserAutoId-_baseURI: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-_baseURI--[`ERC721PresetMinterPauserAutoId._baseURI`]]
- :xref-ERC721PresetMinterPauserAutoId-_baseURI--: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-_baseURI--
- :ERC721PresetMinterPauserAutoId-mint: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-mint-address-[`ERC721PresetMinterPauserAutoId.mint`]]
- :xref-ERC721PresetMinterPauserAutoId-mint-address-: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-mint-address-
- :ERC721PresetMinterPauserAutoId-pause: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-pause--[`ERC721PresetMinterPauserAutoId.pause`]]
- :xref-ERC721PresetMinterPauserAutoId-pause--: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-pause--
- :ERC721PresetMinterPauserAutoId-unpause: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-unpause--[`ERC721PresetMinterPauserAutoId.unpause`]]
- :xref-ERC721PresetMinterPauserAutoId-unpause--: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-unpause--
- :ERC721PresetMinterPauserAutoId-_beforeTokenTransfer: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-_beforeTokenTransfer-address-address-uint256-[`ERC721PresetMinterPauserAutoId._beforeTokenTransfer`]]
- :xref-ERC721PresetMinterPauserAutoId-_beforeTokenTransfer-address-address-uint256-: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-_beforeTokenTransfer-address-address-uint256-
- :ERC721PresetMinterPauserAutoId-supportsInterface: pass:normal[xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-supportsInterface-bytes4-[`ERC721PresetMinterPauserAutoId.supportsInterface`]]
- :xref-ERC721PresetMinterPauserAutoId-supportsInterface-bytes4-: xref:token/ERC721.adoc#ERC721PresetMinterPauserAutoId-supportsInterface-bytes4-
- :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-_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-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-
- :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-
- :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-
- = ERC 20
- [.readme-notice]
- NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/token/erc20
- This set of interfaces, contracts, and utilities are all related to the https://eips.ethereum.org/EIPS/eip-20[ERC20 Token Standard].
- TIP: For an overview of ERC20 tokens and a walk through on how to create a token contract read our xref:ROOT:erc20.adoc[ERC20 guide].
- There a few core contracts that implement the behavior specified in the EIP:
- * {IERC20}: the interface all ERC20 implementations should conform to.
- * {IERC20Metadata}: the extended ERC20 interface including the <<ERC20-name,`name`>>, <<ERC20-symbol,`symbol`>> and <<ERC20-decimals,`decimals`>> functions.
- * {ERC20}: the implementation of the ERC20 interface, including the <<ERC20-name,`name`>>, <<ERC20-symbol,`symbol`>> and <<ERC20-decimals,`decimals`>> optional standard extension to the base interface.
- Additionally there are multiple custom extensions, including:
- * {ERC20Burnable}: destruction of own tokens.
- * {ERC20Capped}: enforcement of a cap to the total supply when minting tokens.
- * {ERC20Pausable}: ability to pause token transfers.
- * {ERC20Snapshot}: efficient storage of past token balances to be later queried at any point in time.
- * {ERC20Permit}: gasless approval of tokens (standardized as ERC2612).
- * {ERC20FlashMint}: token level support for flash loans through the minting and burning of ephemeral tokens (standardized as ERC3156).
- * {ERC20Votes}: support for voting and vote delegation.
- * {ERC20VotesComp}: support for voting and vote delegation (compatible with Compound's token, with uint96 restrictions).
- * {ERC20Wrapper}: wrapper to create an ERC20 backed by another ERC20, with deposit and withdraw methods. Useful in conjunction with {ERC20Votes}.
- Finally, there are some utilities to interact with ERC20 contracts in various ways.
- * {SafeERC20}: a wrapper around the interface that eliminates the need to handle boolean return values.
- * {TokenTimelock}: hold tokens for a beneficiary until a specified time.
- The following related EIPs are in draft status.
- - {ERC20Permit}
- NOTE: This core set of contracts is designed to be unopinionated, allowing developers to access the internal functions in ERC20 (such as <<ERC20-_mint-address-uint256-,`_mint`>>) and expose them as external functions in the way they prefer. On the other hand, xref:ROOT:erc20.adoc#Presets[ERC20 Presets] (such as {ERC20PresetMinterPauser}) are designed using opinionated patterns to provide developers with ready to use, deployable contracts.
- == Core
- :IERC20: pass:normal[xref:#IERC20[`++IERC20++`]]
- :totalSupply: pass:normal[xref:#IERC20-totalSupply--[`++totalSupply++`]]
- :balanceOf: pass:normal[xref:#IERC20-balanceOf-address-[`++balanceOf++`]]
- :transfer: pass:normal[xref:#IERC20-transfer-address-uint256-[`++transfer++`]]
- :allowance: pass:normal[xref:#IERC20-allowance-address-address-[`++allowance++`]]
- :approve: pass:normal[xref:#IERC20-approve-address-uint256-[`++approve++`]]
- :transferFrom: pass:normal[xref:#IERC20-transferFrom-address-address-uint256-[`++transferFrom++`]]
- :Transfer: pass:normal[xref:#IERC20-Transfer-address-address-uint256-[`++Transfer++`]]
- :Approval: pass:normal[xref:#IERC20-Approval-address-address-uint256-[`++Approval++`]]
- [.contract]
- [[IERC20]]
- === `++IERC20++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/IERC20.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
- ```
- Interface of the ERC20 standard as defined in the EIP.
- [.contract-index]
- .Functions
- --
- * {xref-IERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-IERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-IERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-IERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-IERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-IERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- --
- [.contract-index]
- .Events
- --
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- --
- [.contract-item]
- [[IERC20-totalSupply--]]
- ==== `[.contract-item-name]#++totalSupply++#++() → uint256++` [.item-kind]#external#
- Returns the amount of tokens in existence.
- [.contract-item]
- [[IERC20-balanceOf-address-]]
- ==== `[.contract-item-name]#++balanceOf++#++(address account) → uint256++` [.item-kind]#external#
- Returns the amount of tokens owned by `account`.
- [.contract-item]
- [[IERC20-transfer-address-uint256-]]
- ==== `[.contract-item-name]#++transfer++#++(address recipient, uint256 amount) → bool++` [.item-kind]#external#
- Moves `amount` tokens from the caller's account to `recipient`.
- Returns a boolean value indicating whether the operation succeeded.
- Emits a {Transfer} event.
- [.contract-item]
- [[IERC20-allowance-address-address-]]
- ==== `[.contract-item-name]#++allowance++#++(address owner, address spender) → uint256++` [.item-kind]#external#
- Returns the remaining number of tokens that `spender` will be
- allowed to spend on behalf of `owner` through {transferFrom}. This is
- zero by default.
- This value changes when {approve} or {transferFrom} are called.
- [.contract-item]
- [[IERC20-approve-address-uint256-]]
- ==== `[.contract-item-name]#++approve++#++(address spender, uint256 amount) → bool++` [.item-kind]#external#
- Sets `amount` as the allowance of `spender` over the caller's tokens.
- Returns a boolean value indicating whether the operation succeeded.
- IMPORTANT: Beware that changing an allowance with this method brings the risk
- that someone may use both the old and the new allowance by unfortunate
- transaction ordering. One possible solution to mitigate this race
- condition is to first reduce the spender's allowance to 0 and set the
- desired value afterwards:
- https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
- Emits an {Approval} event.
- [.contract-item]
- [[IERC20-transferFrom-address-address-uint256-]]
- ==== `[.contract-item-name]#++transferFrom++#++(address sender, address recipient, uint256 amount) → bool++` [.item-kind]#external#
- Moves `amount` tokens from `sender` to `recipient` using the
- allowance mechanism. `amount` is then deducted from the caller's
- allowance.
- Returns a boolean value indicating whether the operation succeeded.
- Emits a {Transfer} event.
- [.contract-item]
- [[IERC20-Transfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++Transfer++#++(address from, address to, uint256 value)++` [.item-kind]#event#
- Emitted when `value` tokens are moved from one account (`from`) to
- another (`to`).
- Note that `value` may be zero.
- [.contract-item]
- [[IERC20-Approval-address-address-uint256-]]
- ==== `[.contract-item-name]#++Approval++#++(address owner, address spender, uint256 value)++` [.item-kind]#event#
- Emitted when the allowance of a `spender` for an `owner` is set by
- a call to {approve}. `value` is the new allowance.
- :IERC20Metadata: pass:normal[xref:#IERC20Metadata[`++IERC20Metadata++`]]
- :name: pass:normal[xref:#IERC20Metadata-name--[`++name++`]]
- :symbol: pass:normal[xref:#IERC20Metadata-symbol--[`++symbol++`]]
- :decimals: pass:normal[xref:#IERC20Metadata-decimals--[`++decimals++`]]
- [.contract]
- [[IERC20Metadata]]
- === `++IERC20Metadata++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/IERC20Metadata.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
- ```
- Interface for the optional metadata functions from the ERC20 standard.
- _Available since v4.1._
- [.contract-index]
- .Functions
- --
- * {xref-IERC20Metadata-name--}[`++name()++`]
- * {xref-IERC20Metadata-symbol--}[`++symbol()++`]
- * {xref-IERC20Metadata-decimals--}[`++decimals()++`]
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-IERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-IERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-IERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-IERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-IERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- --
- [.contract-item]
- [[IERC20Metadata-name--]]
- ==== `[.contract-item-name]#++name++#++() → string++` [.item-kind]#external#
- Returns the name of the token.
- [.contract-item]
- [[IERC20Metadata-symbol--]]
- ==== `[.contract-item-name]#++symbol++#++() → string++` [.item-kind]#external#
- Returns the symbol of the token.
- [.contract-item]
- [[IERC20Metadata-decimals--]]
- ==== `[.contract-item-name]#++decimals++#++() → uint8++` [.item-kind]#external#
- Returns the decimals places of the token.
- :ERC20: pass:normal[xref:#ERC20[`++ERC20++`]]
- :constructor: pass:normal[xref:#ERC20-constructor-string-string-[`++constructor++`]]
- :name: pass:normal[xref:#ERC20-name--[`++name++`]]
- :symbol: pass:normal[xref:#ERC20-symbol--[`++symbol++`]]
- :decimals: pass:normal[xref:#ERC20-decimals--[`++decimals++`]]
- :totalSupply: pass:normal[xref:#ERC20-totalSupply--[`++totalSupply++`]]
- :balanceOf: pass:normal[xref:#ERC20-balanceOf-address-[`++balanceOf++`]]
- :transfer: pass:normal[xref:#ERC20-transfer-address-uint256-[`++transfer++`]]
- :allowance: pass:normal[xref:#ERC20-allowance-address-address-[`++allowance++`]]
- :approve: pass:normal[xref:#ERC20-approve-address-uint256-[`++approve++`]]
- :transferFrom: pass:normal[xref:#ERC20-transferFrom-address-address-uint256-[`++transferFrom++`]]
- :increaseAllowance: pass:normal[xref:#ERC20-increaseAllowance-address-uint256-[`++increaseAllowance++`]]
- :decreaseAllowance: pass:normal[xref:#ERC20-decreaseAllowance-address-uint256-[`++decreaseAllowance++`]]
- :_transfer: pass:normal[xref:#ERC20-_transfer-address-address-uint256-[`++_transfer++`]]
- :_mint: pass:normal[xref:#ERC20-_mint-address-uint256-[`++_mint++`]]
- :_burn: pass:normal[xref:#ERC20-_burn-address-uint256-[`++_burn++`]]
- :_approve: pass:normal[xref:#ERC20-_approve-address-address-uint256-[`++_approve++`]]
- :_beforeTokenTransfer: pass:normal[xref:#ERC20-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer++`]]
- :_afterTokenTransfer: pass:normal[xref:#ERC20-_afterTokenTransfer-address-address-uint256-[`++_afterTokenTransfer++`]]
- [.contract]
- [[ERC20]]
- === `++ERC20++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/ERC20.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
- ```
- Implementation of the {IERC20} interface.
- This implementation is agnostic to the way tokens are created. This means
- that a supply mechanism has to be added in a derived contract using {_mint}.
- For a generic mechanism see {ERC20PresetMinterPauser}.
- TIP: For a detailed writeup see our guide
- https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
- to implement supply mechanisms].
- We have followed general OpenZeppelin Contracts guidelines: functions revert
- instead returning `false` on failure. This behavior is nonetheless
- conventional and does not conflict with the expectations of ERC20
- applications.
- Additionally, an {Approval} event is emitted on calls to {transferFrom}.
- This allows applications to reconstruct the allowance for all accounts just
- by listening to said events. Other implementations of the EIP may not emit
- these events, as it isn't required by the specification.
- Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
- functions have been added to mitigate the well-known issues around setting
- allowances. See {IERC20-approve}.
- [.contract-index]
- .Functions
- --
- * {xref-ERC20-constructor-string-string-}[`++constructor(name_, symbol_)++`]
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20-constructor-string-string-]]
- ==== `[.contract-item-name]#++constructor++#++(string name_, string symbol_)++` [.item-kind]#public#
- Sets the values for {name} and {symbol}.
- The default value of {decimals} is 18. To select a different value for
- {decimals} you should overload it.
- All two of these values are immutable: they can only be set once during
- construction.
- [.contract-item]
- [[ERC20-name--]]
- ==== `[.contract-item-name]#++name++#++() → string++` [.item-kind]#public#
- Returns the name of the token.
- [.contract-item]
- [[ERC20-symbol--]]
- ==== `[.contract-item-name]#++symbol++#++() → string++` [.item-kind]#public#
- Returns the symbol of the token, usually a shorter version of the
- name.
- [.contract-item]
- [[ERC20-decimals--]]
- ==== `[.contract-item-name]#++decimals++#++() → uint8++` [.item-kind]#public#
- Returns the number of decimals used to get its user representation.
- For example, if `decimals` equals `2`, a balance of `505` tokens should
- be displayed to a user as `5.05` (`505 / 10 ** 2`).
- Tokens usually opt for a value of 18, imitating the relationship between
- Ether and Wei. This is the value {ERC20} uses, unless this function is
- overridden;
- NOTE: This information is only used for _display_ purposes: it in
- no way affects any of the arithmetic of the contract, including
- {IERC20-balanceOf} and {IERC20-transfer}.
- [.contract-item]
- [[ERC20-totalSupply--]]
- ==== `[.contract-item-name]#++totalSupply++#++() → uint256++` [.item-kind]#public#
- See {IERC20-totalSupply}.
- [.contract-item]
- [[ERC20-balanceOf-address-]]
- ==== `[.contract-item-name]#++balanceOf++#++(address account) → uint256++` [.item-kind]#public#
- See {IERC20-balanceOf}.
- [.contract-item]
- [[ERC20-transfer-address-uint256-]]
- ==== `[.contract-item-name]#++transfer++#++(address recipient, uint256 amount) → bool++` [.item-kind]#public#
- See {IERC20-transfer}.
- Requirements:
- - `recipient` cannot be the zero address.
- - the caller must have a balance of at least `amount`.
- [.contract-item]
- [[ERC20-allowance-address-address-]]
- ==== `[.contract-item-name]#++allowance++#++(address owner, address spender) → uint256++` [.item-kind]#public#
- See {IERC20-allowance}.
- [.contract-item]
- [[ERC20-approve-address-uint256-]]
- ==== `[.contract-item-name]#++approve++#++(address spender, uint256 amount) → bool++` [.item-kind]#public#
- See {IERC20-approve}.
- Requirements:
- - `spender` cannot be the zero address.
- [.contract-item]
- [[ERC20-transferFrom-address-address-uint256-]]
- ==== `[.contract-item-name]#++transferFrom++#++(address sender, address recipient, uint256 amount) → bool++` [.item-kind]#public#
- See {IERC20-transferFrom}.
- Emits an {Approval} event indicating the updated allowance. This is not
- required by the EIP. See the note at the beginning of {ERC20}.
- Requirements:
- - `sender` and `recipient` cannot be the zero address.
- - `sender` must have a balance of at least `amount`.
- - the caller must have allowance for ``sender``'s tokens of at least
- `amount`.
- [.contract-item]
- [[ERC20-increaseAllowance-address-uint256-]]
- ==== `[.contract-item-name]#++increaseAllowance++#++(address spender, uint256 addedValue) → bool++` [.item-kind]#public#
- Atomically increases the allowance granted to `spender` by the caller.
- This is an alternative to {approve} that can be used as a mitigation for
- problems described in {IERC20-approve}.
- Emits an {Approval} event indicating the updated allowance.
- Requirements:
- - `spender` cannot be the zero address.
- [.contract-item]
- [[ERC20-decreaseAllowance-address-uint256-]]
- ==== `[.contract-item-name]#++decreaseAllowance++#++(address spender, uint256 subtractedValue) → bool++` [.item-kind]#public#
- Atomically decreases the allowance granted to `spender` by the caller.
- This is an alternative to {approve} that can be used as a mitigation for
- problems described in {IERC20-approve}.
- Emits an {Approval} event indicating the updated allowance.
- Requirements:
- - `spender` cannot be the zero address.
- - `spender` must have allowance for the caller of at least
- `subtractedValue`.
- [.contract-item]
- [[ERC20-_transfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_transfer++#++(address sender, address recipient, uint256 amount)++` [.item-kind]#internal#
- Moves `amount` of tokens from `sender` to `recipient`.
- This internal function is equivalent to {transfer}, and can be used to
- e.g. implement automatic token fees, slashing mechanisms, etc.
- Emits a {Transfer} event.
- Requirements:
- - `sender` cannot be the zero address.
- - `recipient` cannot be the zero address.
- - `sender` must have a balance of at least `amount`.
- [.contract-item]
- [[ERC20-_mint-address-uint256-]]
- ==== `[.contract-item-name]#++_mint++#++(address account, uint256 amount)++` [.item-kind]#internal#
- Creates `amount` tokens and assigns them to `account`, increasing
- the total supply.
- Emits a {Transfer} event with `from` set to the zero address.
- Requirements:
- - `account` cannot be the zero address.
- [.contract-item]
- [[ERC20-_burn-address-uint256-]]
- ==== `[.contract-item-name]#++_burn++#++(address account, uint256 amount)++` [.item-kind]#internal#
- Destroys `amount` tokens from `account`, reducing the
- total supply.
- Emits a {Transfer} event with `to` set to the zero address.
- Requirements:
- - `account` cannot be the zero address.
- - `account` must have at least `amount` tokens.
- [.contract-item]
- [[ERC20-_approve-address-address-uint256-]]
- ==== `[.contract-item-name]#++_approve++#++(address owner, address spender, uint256 amount)++` [.item-kind]#internal#
- Sets `amount` as the allowance of `spender` over the `owner` s tokens.
- This internal function is equivalent to `approve`, and can be used to
- e.g. set automatic allowances for certain subsystems, etc.
- Emits an {Approval} event.
- Requirements:
- - `owner` cannot be the zero address.
- - `spender` cannot be the zero address.
- [.contract-item]
- [[ERC20-_beforeTokenTransfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_beforeTokenTransfer++#++(address from, address to, uint256 amount)++` [.item-kind]#internal#
- Hook that is called before any transfer of tokens. This includes
- minting and burning.
- Calling conditions:
- - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
- will be transferred to `to`.
- - when `from` is zero, `amount` tokens will be minted for `to`.
- - when `to` is zero, `amount` of ``from``'s tokens will be burned.
- - `from` and `to` are never both zero.
- To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
- [.contract-item]
- [[ERC20-_afterTokenTransfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_afterTokenTransfer++#++(address from, address to, uint256 amount)++` [.item-kind]#internal#
- Hook that is called after any transfer of tokens. This includes
- minting and burning.
- Calling conditions:
- - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
- has been transferred to `to`.
- - when `from` is zero, `amount` tokens have been minted for `to`.
- - when `to` is zero, `amount` of ``from``'s tokens have been burned.
- - `from` and `to` are never both zero.
- To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
- == Extensions
- :ERC20Burnable: pass:normal[xref:#ERC20Burnable[`++ERC20Burnable++`]]
- :burn: pass:normal[xref:#ERC20Burnable-burn-uint256-[`++burn++`]]
- :burnFrom: pass:normal[xref:#ERC20Burnable-burnFrom-address-uint256-[`++burnFrom++`]]
- [.contract]
- [[ERC20Burnable]]
- === `++ERC20Burnable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20Burnable.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
- ```
- Extension of {ERC20} that allows token holders to destroy both their own
- tokens and those that they have an allowance for, in a way that can be
- recognized off-chain (via event analysis).
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Burnable-burn-uint256-}[`++burn(amount)++`]
- * {xref-ERC20Burnable-burnFrom-address-uint256-}[`++burnFrom(account, amount)++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-constructor-string-string-}[`++constructor(name_, symbol_)++`]
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Burnable-burn-uint256-]]
- ==== `[.contract-item-name]#++burn++#++(uint256 amount)++` [.item-kind]#public#
- Destroys `amount` tokens from the caller.
- See {ERC20-_burn}.
- [.contract-item]
- [[ERC20Burnable-burnFrom-address-uint256-]]
- ==== `[.contract-item-name]#++burnFrom++#++(address account, uint256 amount)++` [.item-kind]#public#
- Destroys `amount` tokens from `account`, deducting from the caller's
- allowance.
- See {ERC20-_burn} and {ERC20-allowance}.
- Requirements:
- - the caller must have allowance for ``accounts``'s tokens of at least
- `amount`.
- :ERC20Capped: pass:normal[xref:#ERC20Capped[`++ERC20Capped++`]]
- :constructor: pass:normal[xref:#ERC20Capped-constructor-uint256-[`++constructor++`]]
- :cap: pass:normal[xref:#ERC20Capped-cap--[`++cap++`]]
- :_mint: pass:normal[xref:#ERC20Capped-_mint-address-uint256-[`++_mint++`]]
- [.contract]
- [[ERC20Capped]]
- === `++ERC20Capped++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20Capped.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped.sol";
- ```
- Extension of {ERC20} that adds a cap to the supply of tokens.
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Capped-constructor-uint256-}[`++constructor(cap_)++`]
- * {xref-ERC20Capped-cap--}[`++cap()++`]
- * {xref-ERC20Capped-_mint-address-uint256-}[`++_mint(account, amount)++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Capped-constructor-uint256-]]
- ==== `[.contract-item-name]#++constructor++#++(uint256 cap_)++` [.item-kind]#internal#
- Sets the value of the `cap`. This value is immutable, it can only be
- set once during construction.
- [.contract-item]
- [[ERC20Capped-cap--]]
- ==== `[.contract-item-name]#++cap++#++() → uint256++` [.item-kind]#public#
- Returns the cap on the token's total supply.
- [.contract-item]
- [[ERC20Capped-_mint-address-uint256-]]
- ==== `[.contract-item-name]#++_mint++#++(address account, uint256 amount)++` [.item-kind]#internal#
- See {ERC20-_mint}.
- :ERC20Pausable: pass:normal[xref:#ERC20Pausable[`++ERC20Pausable++`]]
- :_beforeTokenTransfer: pass:normal[xref:#ERC20Pausable-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer++`]]
- [.contract]
- [[ERC20Pausable]]
- === `++ERC20Pausable++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20Pausable.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";
- ```
- ERC20 token with pausable token transfers, minting and burning.
- Useful for scenarios such as preventing trades until the end of an evaluation
- period, or having an emergency switch for freezing all token transfers in the
- event of a large bug.
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Pausable-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-constructor--}[`++constructor()++`]
- * {xref-Pausable-paused--}[`++paused()++`]
- * {xref-Pausable-_pause--}[`++_pause()++`]
- * {xref-Pausable-_unpause--}[`++_unpause()++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-Paused-address-}[`++Paused(account)++`]
- * {xref-Pausable-Unpaused-address-}[`++Unpaused(account)++`]
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Pausable-_beforeTokenTransfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_beforeTokenTransfer++#++(address from, address to, uint256 amount)++` [.item-kind]#internal#
- See {ERC20-_beforeTokenTransfer}.
- Requirements:
- - the contract must not be paused.
- :ERC20Snapshot: pass:normal[xref:#ERC20Snapshot[`++ERC20Snapshot++`]]
- :_snapshot: pass:normal[xref:#ERC20Snapshot-_snapshot--[`++_snapshot++`]]
- :_getCurrentSnapshotId: pass:normal[xref:#ERC20Snapshot-_getCurrentSnapshotId--[`++_getCurrentSnapshotId++`]]
- :balanceOfAt: pass:normal[xref:#ERC20Snapshot-balanceOfAt-address-uint256-[`++balanceOfAt++`]]
- :totalSupplyAt: pass:normal[xref:#ERC20Snapshot-totalSupplyAt-uint256-[`++totalSupplyAt++`]]
- :_beforeTokenTransfer: pass:normal[xref:#ERC20Snapshot-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer++`]]
- :Snapshot: pass:normal[xref:#ERC20Snapshot-Snapshot-uint256-[`++Snapshot++`]]
- :Snapshots: pass:normal[xref:#ERC20Snapshot-Snapshots[`++Snapshots++`]]
- [.contract]
- [[ERC20Snapshot]]
- === `++ERC20Snapshot++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20Snapshot.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Snapshot.sol";
- ```
- This contract extends an ERC20 token with a snapshot mechanism. When a snapshot is created, the balances and
- total supply at the time are recorded for later access.
- This can be used to safely create mechanisms based on token balances such as trustless dividends or weighted voting.
- In naive implementations it's possible to perform a "double spend" attack by reusing the same balance from different
- accounts. By using snapshots to calculate dividends or voting power, those attacks no longer apply. It can also be
- used to create an efficient ERC20 forking mechanism.
- Snapshots are created by the internal {_snapshot} function, which will emit the {Snapshot} event and return a
- snapshot id. To get the total supply at the time of a snapshot, call the function {totalSupplyAt} with the snapshot
- id. To get the balance of an account at the time of a snapshot, call the {balanceOfAt} function with the snapshot id
- and the account address.
- NOTE: Snapshot policy can be customized by overriding the {_getCurrentSnapshotId} method. For example, having it
- return `block.number` will trigger the creation of snapshot at the begining of each new block. When overridding this
- function, be careful about the monotonicity of its result. Non-monotonic snapshot ids will break the contract.
- Implementing snapshots for every block using this method will incur significant gas costs. For a gas-efficient
- alternative consider {ERC20Votes}.
- ==== Gas Costs
- Snapshots are efficient. Snapshot creation is _O(1)_. Retrieval of balances or total supply from a snapshot is _O(log
- n)_ in the number of snapshots that have been created, although _n_ for a specific account will generally be much
- smaller since identical balances in subsequent snapshots are stored as a single entry.
- There is a constant overhead for normal ERC20 transfers due to the additional snapshot bookkeeping. This overhead is
- only significant for the first transfer that immediately follows a snapshot for a particular account. Subsequent
- transfers will have normal cost until the next snapshot, and so on.
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Snapshot-_snapshot--}[`++_snapshot()++`]
- * {xref-ERC20Snapshot-_getCurrentSnapshotId--}[`++_getCurrentSnapshotId()++`]
- * {xref-ERC20Snapshot-balanceOfAt-address-uint256-}[`++balanceOfAt(account, snapshotId)++`]
- * {xref-ERC20Snapshot-totalSupplyAt-uint256-}[`++totalSupplyAt(snapshotId)++`]
- * {xref-ERC20Snapshot-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-constructor-string-string-}[`++constructor(name_, symbol_)++`]
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- * {xref-ERC20Snapshot-Snapshot-uint256-}[`++Snapshot(id)++`]
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Snapshot-_snapshot--]]
- ==== `[.contract-item-name]#++_snapshot++#++() → uint256++` [.item-kind]#internal#
- Creates a new snapshot and returns its snapshot id.
- Emits a {Snapshot} event that contains the same id.
- {_snapshot} is `internal` and you have to decide how to expose it externally. Its usage may be restricted to a
- set of accounts, for example using {AccessControl}, or it may be open to the public.
- [WARNING]
- ====
- While an open way of calling {_snapshot} is required for certain trust minimization mechanisms such as forking,
- you must consider that it can potentially be used by attackers in two ways.
- First, it can be used to increase the cost of retrieval of values from snapshots, although it will grow
- logarithmically thus rendering this attack ineffective in the long term. Second, it can be used to target
- specific accounts and increase the cost of ERC20 transfers for them, in the ways specified in the Gas Costs
- section above.
- We haven't measured the actual numbers; if this is something you're interested in please reach out to us.
- ====
- [.contract-item]
- [[ERC20Snapshot-_getCurrentSnapshotId--]]
- ==== `[.contract-item-name]#++_getCurrentSnapshotId++#++() → uint256++` [.item-kind]#internal#
- Get the current snapshotId
- [.contract-item]
- [[ERC20Snapshot-balanceOfAt-address-uint256-]]
- ==== `[.contract-item-name]#++balanceOfAt++#++(address account, uint256 snapshotId) → uint256++` [.item-kind]#public#
- Retrieves the balance of `account` at the time `snapshotId` was created.
- [.contract-item]
- [[ERC20Snapshot-totalSupplyAt-uint256-]]
- ==== `[.contract-item-name]#++totalSupplyAt++#++(uint256 snapshotId) → uint256++` [.item-kind]#public#
- Retrieves the total supply at the time `snapshotId` was created.
- [.contract-item]
- [[ERC20Snapshot-_beforeTokenTransfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_beforeTokenTransfer++#++(address from, address to, uint256 amount)++` [.item-kind]#internal#
- [.contract-item]
- [[ERC20Snapshot-Snapshot-uint256-]]
- ==== `[.contract-item-name]#++Snapshot++#++(uint256 id)++` [.item-kind]#event#
- Emitted by {_snapshot} when a snapshot identified by `id` is created.
- :ERC20Votes: pass:normal[xref:#ERC20Votes[`++ERC20Votes++`]]
- :checkpoints: pass:normal[xref:#ERC20Votes-checkpoints-address-uint32-[`++checkpoints++`]]
- :numCheckpoints: pass:normal[xref:#ERC20Votes-numCheckpoints-address-[`++numCheckpoints++`]]
- :delegates: pass:normal[xref:#ERC20Votes-delegates-address-[`++delegates++`]]
- :getVotes: pass:normal[xref:#ERC20Votes-getVotes-address-[`++getVotes++`]]
- :getPastVotes: pass:normal[xref:#ERC20Votes-getPastVotes-address-uint256-[`++getPastVotes++`]]
- :getPastTotalSupply: pass:normal[xref:#ERC20Votes-getPastTotalSupply-uint256-[`++getPastTotalSupply++`]]
- :delegate: pass:normal[xref:#ERC20Votes-delegate-address-[`++delegate++`]]
- :delegateBySig: pass:normal[xref:#ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-[`++delegateBySig++`]]
- :_maxSupply: pass:normal[xref:#ERC20Votes-_maxSupply--[`++_maxSupply++`]]
- :_mint: pass:normal[xref:#ERC20Votes-_mint-address-uint256-[`++_mint++`]]
- :_burn: pass:normal[xref:#ERC20Votes-_burn-address-uint256-[`++_burn++`]]
- :_afterTokenTransfer: pass:normal[xref:#ERC20Votes-_afterTokenTransfer-address-address-uint256-[`++_afterTokenTransfer++`]]
- :_delegate: pass:normal[xref:#ERC20Votes-_delegate-address-address-[`++_delegate++`]]
- :DelegateChanged: pass:normal[xref:#ERC20Votes-DelegateChanged-address-address-address-[`++DelegateChanged++`]]
- :DelegateVotesChanged: pass:normal[xref:#ERC20Votes-DelegateVotesChanged-address-uint256-uint256-[`++DelegateVotesChanged++`]]
- :Checkpoint: pass:normal[xref:#ERC20Votes-Checkpoint[`++Checkpoint++`]]
- [.contract]
- [[ERC20Votes]]
- === `++ERC20Votes++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20Votes.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";
- ```
- Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's,
- and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1.
- NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module.
- This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either
- by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting
- power can be queried through the public accessors {getVotes} and {getPastVotes}.
- By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it
- requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.
- Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this
- will significantly increase the base gas cost of transfers.
- _Available since v4.2._
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Votes-checkpoints-address-uint32-}[`++checkpoints(account, pos)++`]
- * {xref-ERC20Votes-numCheckpoints-address-}[`++numCheckpoints(account)++`]
- * {xref-ERC20Votes-delegates-address-}[`++delegates(account)++`]
- * {xref-ERC20Votes-getVotes-address-}[`++getVotes(account)++`]
- * {xref-ERC20Votes-getPastVotes-address-uint256-}[`++getPastVotes(account, blockNumber)++`]
- * {xref-ERC20Votes-getPastTotalSupply-uint256-}[`++getPastTotalSupply(blockNumber)++`]
- * {xref-ERC20Votes-delegate-address-}[`++delegate(delegatee)++`]
- * {xref-ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-}[`++delegateBySig(delegatee, nonce, expiry, v, r, s)++`]
- * {xref-ERC20Votes-_maxSupply--}[`++_maxSupply()++`]
- * {xref-ERC20Votes-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20Votes-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20Votes-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- * {xref-ERC20Votes-_delegate-address-address-}[`++_delegate(delegator, delegatee)++`]
- [.contract-subindex-inherited]
- .ERC20Permit
- * {xref-ERC20Permit-constructor-string-}[`++constructor(name)++`]
- * {xref-ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-}[`++permit(owner, spender, value, deadline, v, r, s)++`]
- * {xref-ERC20Permit-nonces-address-}[`++nonces(owner)++`]
- * {xref-ERC20Permit-DOMAIN_SEPARATOR--}[`++DOMAIN_SEPARATOR()++`]
- * {xref-ERC20Permit-_useNonce-address-}[`++_useNonce(owner)++`]
- [.contract-subindex-inherited]
- .EIP712
- * {xref-EIP712-_domainSeparatorV4--}[`++_domainSeparatorV4()++`]
- * {xref-EIP712-_hashTypedDataV4-bytes32-}[`++_hashTypedDataV4(structHash)++`]
- [.contract-subindex-inherited]
- .IERC20Permit
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- * {xref-ERC20Votes-DelegateChanged-address-address-address-}[`++DelegateChanged(delegator, fromDelegate, toDelegate)++`]
- * {xref-ERC20Votes-DelegateVotesChanged-address-uint256-uint256-}[`++DelegateVotesChanged(delegate, previousBalance, newBalance)++`]
- [.contract-subindex-inherited]
- .ERC20Permit
- [.contract-subindex-inherited]
- .EIP712
- [.contract-subindex-inherited]
- .IERC20Permit
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Votes-checkpoints-address-uint32-]]
- ==== `[.contract-item-name]#++checkpoints++#++(address account, uint32 pos) → struct ERC20Votes.Checkpoint++` [.item-kind]#public#
- Get the `pos`-th checkpoint for `account`.
- [.contract-item]
- [[ERC20Votes-numCheckpoints-address-]]
- ==== `[.contract-item-name]#++numCheckpoints++#++(address account) → uint32++` [.item-kind]#public#
- Get number of checkpoints for `account`.
- [.contract-item]
- [[ERC20Votes-delegates-address-]]
- ==== `[.contract-item-name]#++delegates++#++(address account) → address++` [.item-kind]#public#
- Get the address `account` is currently delegating to.
- [.contract-item]
- [[ERC20Votes-getVotes-address-]]
- ==== `[.contract-item-name]#++getVotes++#++(address account) → uint256++` [.item-kind]#public#
- Gets the current votes balance for `account`
- [.contract-item]
- [[ERC20Votes-getPastVotes-address-uint256-]]
- ==== `[.contract-item-name]#++getPastVotes++#++(address account, uint256 blockNumber) → uint256++` [.item-kind]#public#
- Retrieve the number of votes for `account` at the end of `blockNumber`.
- Requirements:
- - `blockNumber` must have been already mined
- [.contract-item]
- [[ERC20Votes-getPastTotalSupply-uint256-]]
- ==== `[.contract-item-name]#++getPastTotalSupply++#++(uint256 blockNumber) → uint256++` [.item-kind]#public#
- Retrieve the `totalSupply` at the end of `blockNumber`. Note, this value is the sum of all balances.
- It is but NOT the sum of all the delegated votes!
- Requirements:
- - `blockNumber` must have been already mined
- [.contract-item]
- [[ERC20Votes-delegate-address-]]
- ==== `[.contract-item-name]#++delegate++#++(address delegatee)++` [.item-kind]#public#
- Delegate votes from the sender to `delegatee`.
- [.contract-item]
- [[ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-]]
- ==== `[.contract-item-name]#++delegateBySig++#++(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s)++` [.item-kind]#public#
- Delegates votes from signer to `delegatee`
- [.contract-item]
- [[ERC20Votes-_maxSupply--]]
- ==== `[.contract-item-name]#++_maxSupply++#++() → uint224++` [.item-kind]#internal#
- Maximum token supply. Defaults to `type(uint224).max` (2^224^ - 1).
- [.contract-item]
- [[ERC20Votes-_mint-address-uint256-]]
- ==== `[.contract-item-name]#++_mint++#++(address account, uint256 amount)++` [.item-kind]#internal#
- Snapshots the totalSupply after it has been increased.
- [.contract-item]
- [[ERC20Votes-_burn-address-uint256-]]
- ==== `[.contract-item-name]#++_burn++#++(address account, uint256 amount)++` [.item-kind]#internal#
- Snapshots the totalSupply after it has been decreased.
- [.contract-item]
- [[ERC20Votes-_afterTokenTransfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_afterTokenTransfer++#++(address from, address to, uint256 amount)++` [.item-kind]#internal#
- Move voting power when tokens are transferred.
- Emits a {DelegateVotesChanged} event.
- [.contract-item]
- [[ERC20Votes-_delegate-address-address-]]
- ==== `[.contract-item-name]#++_delegate++#++(address delegator, address delegatee)++` [.item-kind]#internal#
- Change delegation for `delegator` to `delegatee`.
- Emits events {DelegateChanged} and {DelegateVotesChanged}.
- [.contract-item]
- [[ERC20Votes-DelegateChanged-address-address-address-]]
- ==== `[.contract-item-name]#++DelegateChanged++#++(address delegator, address fromDelegate, address toDelegate)++` [.item-kind]#event#
- Emitted when an account changes their delegate.
- [.contract-item]
- [[ERC20Votes-DelegateVotesChanged-address-uint256-uint256-]]
- ==== `[.contract-item-name]#++DelegateVotesChanged++#++(address delegate, uint256 previousBalance, uint256 newBalance)++` [.item-kind]#event#
- Emitted when a token transfer or delegate change results in changes to an account's voting power.
- :ERC20VotesComp: pass:normal[xref:#ERC20VotesComp[`++ERC20VotesComp++`]]
- :getCurrentVotes: pass:normal[xref:#ERC20VotesComp-getCurrentVotes-address-[`++getCurrentVotes++`]]
- :getPriorVotes: pass:normal[xref:#ERC20VotesComp-getPriorVotes-address-uint256-[`++getPriorVotes++`]]
- :_maxSupply: pass:normal[xref:#ERC20VotesComp-_maxSupply--[`++_maxSupply++`]]
- [.contract]
- [[ERC20VotesComp]]
- === `++ERC20VotesComp++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20VotesComp.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20VotesComp.sol";
- ```
- Extension of ERC20 to support Compound's voting and delegation. This version exactly matches Compound's
- interface, with the drawback of only supporting supply up to (2^96^ - 1).
- NOTE: You should use this contract if you need exact compatibility with COMP (for example in order to use your token
- with Governor Alpha or Bravo) and if you are sure the supply cap of 2^96^ is enough for you. Otherwise, use the
- {ERC20Votes} variant of this module.
- This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either
- by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting
- power can be queried through the public accessors {getCurrentVotes} and {getPriorVotes}.
- By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it
- requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.
- Enabling self-delegation can easily be done by overriding the {delegates} function. Keep in mind however that this
- will significantly increase the base gas cost of transfers.
- _Available since v4.2._
- [.contract-index]
- .Functions
- --
- * {xref-ERC20VotesComp-getCurrentVotes-address-}[`++getCurrentVotes(account)++`]
- * {xref-ERC20VotesComp-getPriorVotes-address-uint256-}[`++getPriorVotes(account, blockNumber)++`]
- * {xref-ERC20VotesComp-_maxSupply--}[`++_maxSupply()++`]
- [.contract-subindex-inherited]
- .ERC20Votes
- * {xref-ERC20Votes-checkpoints-address-uint32-}[`++checkpoints(account, pos)++`]
- * {xref-ERC20Votes-numCheckpoints-address-}[`++numCheckpoints(account)++`]
- * {xref-ERC20Votes-delegates-address-}[`++delegates(account)++`]
- * {xref-ERC20Votes-getVotes-address-}[`++getVotes(account)++`]
- * {xref-ERC20Votes-getPastVotes-address-uint256-}[`++getPastVotes(account, blockNumber)++`]
- * {xref-ERC20Votes-getPastTotalSupply-uint256-}[`++getPastTotalSupply(blockNumber)++`]
- * {xref-ERC20Votes-delegate-address-}[`++delegate(delegatee)++`]
- * {xref-ERC20Votes-delegateBySig-address-uint256-uint256-uint8-bytes32-bytes32-}[`++delegateBySig(delegatee, nonce, expiry, v, r, s)++`]
- * {xref-ERC20Votes-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20Votes-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20Votes-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- * {xref-ERC20Votes-_delegate-address-address-}[`++_delegate(delegator, delegatee)++`]
- [.contract-subindex-inherited]
- .ERC20Permit
- * {xref-ERC20Permit-constructor-string-}[`++constructor(name)++`]
- * {xref-ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-}[`++permit(owner, spender, value, deadline, v, r, s)++`]
- * {xref-ERC20Permit-nonces-address-}[`++nonces(owner)++`]
- * {xref-ERC20Permit-DOMAIN_SEPARATOR--}[`++DOMAIN_SEPARATOR()++`]
- * {xref-ERC20Permit-_useNonce-address-}[`++_useNonce(owner)++`]
- [.contract-subindex-inherited]
- .EIP712
- * {xref-EIP712-_domainSeparatorV4--}[`++_domainSeparatorV4()++`]
- * {xref-EIP712-_hashTypedDataV4-bytes32-}[`++_hashTypedDataV4(structHash)++`]
- [.contract-subindex-inherited]
- .IERC20Permit
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC20Votes
- * {xref-ERC20Votes-DelegateChanged-address-address-address-}[`++DelegateChanged(delegator, fromDelegate, toDelegate)++`]
- * {xref-ERC20Votes-DelegateVotesChanged-address-uint256-uint256-}[`++DelegateVotesChanged(delegate, previousBalance, newBalance)++`]
- [.contract-subindex-inherited]
- .ERC20Permit
- [.contract-subindex-inherited]
- .EIP712
- [.contract-subindex-inherited]
- .IERC20Permit
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20VotesComp-getCurrentVotes-address-]]
- ==== `[.contract-item-name]#++getCurrentVotes++#++(address account) → uint96++` [.item-kind]#external#
- Comp version of the {getVotes} accessor, with `uint96` return type.
- [.contract-item]
- [[ERC20VotesComp-getPriorVotes-address-uint256-]]
- ==== `[.contract-item-name]#++getPriorVotes++#++(address account, uint256 blockNumber) → uint96++` [.item-kind]#external#
- Comp version of the {getPastVotes} accessor, with `uint96` return type.
- [.contract-item]
- [[ERC20VotesComp-_maxSupply--]]
- ==== `[.contract-item-name]#++_maxSupply++#++() → uint224++` [.item-kind]#internal#
- Maximum token supply. Reduced to `type(uint96).max` (2^96^ - 1) to fit COMP interface.
- :ERC20Wrapper: pass:normal[xref:#ERC20Wrapper[`++ERC20Wrapper++`]]
- :underlying: pass:normal[xref:#ERC20Wrapper-underlying-contract-IERC20[`++underlying++`]]
- :constructor: pass:normal[xref:#ERC20Wrapper-constructor-contract-IERC20-[`++constructor++`]]
- :depositFor: pass:normal[xref:#ERC20Wrapper-depositFor-address-uint256-[`++depositFor++`]]
- :withdrawTo: pass:normal[xref:#ERC20Wrapper-withdrawTo-address-uint256-[`++withdrawTo++`]]
- :_recover: pass:normal[xref:#ERC20Wrapper-_recover-address-[`++_recover++`]]
- [.contract]
- [[ERC20Wrapper]]
- === `++ERC20Wrapper++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20Wrapper.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Wrapper.sol";
- ```
- Extension of the ERC20 token contract to support token wrapping.
- Users can deposit and withdraw "underlying tokens" and receive a matching number of "wrapped tokens". This is useful
- in conjunction with other modules. For example, combining this wrapping mechanism with {ERC20Votes} will allow the
- wrapping of an existing "basic" ERC20 into a governance token.
- _Available since v4.2._
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Wrapper-constructor-contract-IERC20-}[`++constructor(underlyingToken)++`]
- * {xref-ERC20Wrapper-depositFor-address-uint256-}[`++depositFor(account, amount)++`]
- * {xref-ERC20Wrapper-withdrawTo-address-uint256-}[`++withdrawTo(account, amount)++`]
- * {xref-ERC20Wrapper-_recover-address-}[`++_recover(account)++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Wrapper-constructor-contract-IERC20-]]
- ==== `[.contract-item-name]#++constructor++#++(contract IERC20 underlyingToken)++` [.item-kind]#internal#
- [.contract-item]
- [[ERC20Wrapper-depositFor-address-uint256-]]
- ==== `[.contract-item-name]#++depositFor++#++(address account, uint256 amount) → bool++` [.item-kind]#public#
- Allow a user to deposit underlying tokens and mint the corresponding number of wrapped tokens.
- [.contract-item]
- [[ERC20Wrapper-withdrawTo-address-uint256-]]
- ==== `[.contract-item-name]#++withdrawTo++#++(address account, uint256 amount) → bool++` [.item-kind]#public#
- Allow a user to burn a number of wrapped tokens and withdraw the corresponding number of underlying tokens.
- [.contract-item]
- [[ERC20Wrapper-_recover-address-]]
- ==== `[.contract-item-name]#++_recover++#++(address account) → uint256++` [.item-kind]#internal#
- Mint wrapped token to cover any underlyingTokens that would have been transfered by mistake. Internal
- function that can be exposed with access control if desired.
- :ERC20FlashMint: pass:normal[xref:#ERC20FlashMint[`++ERC20FlashMint++`]]
- :maxFlashLoan: pass:normal[xref:#ERC20FlashMint-maxFlashLoan-address-[`++maxFlashLoan++`]]
- :flashFee: pass:normal[xref:#ERC20FlashMint-flashFee-address-uint256-[`++flashFee++`]]
- :flashLoan: pass:normal[xref:#ERC20FlashMint-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-[`++flashLoan++`]]
- [.contract]
- [[ERC20FlashMint]]
- === `++ERC20FlashMint++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/ERC20FlashMint.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol";
- ```
- Implementation of the ERC3156 Flash loans extension, as defined in
- https://eips.ethereum.org/EIPS/eip-3156[ERC-3156].
- Adds the {flashLoan} method, which provides flash loan support at the token
- level. By default there is no fee, but this can be changed by overriding {flashFee}.
- _Available since v4.1._
- [.contract-index]
- .Functions
- --
- * {xref-ERC20FlashMint-maxFlashLoan-address-}[`++maxFlashLoan(token)++`]
- * {xref-ERC20FlashMint-flashFee-address-uint256-}[`++flashFee(token, amount)++`]
- * {xref-ERC20FlashMint-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-}[`++flashLoan(receiver, token, amount, data)++`]
- [.contract-subindex-inherited]
- .IERC3156FlashLender
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-constructor-string-string-}[`++constructor(name_, symbol_)++`]
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC3156FlashLender
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20FlashMint-maxFlashLoan-address-]]
- ==== `[.contract-item-name]#++maxFlashLoan++#++(address token) → uint256++` [.item-kind]#public#
- Returns the maximum amount of tokens available for loan.
- [.contract-item]
- [[ERC20FlashMint-flashFee-address-uint256-]]
- ==== `[.contract-item-name]#++flashFee++#++(address token, uint256 amount) → uint256++` [.item-kind]#public#
- Returns the fee applied when doing flash loans. By default this
- implementation has 0 fees. This function can be overloaded to make
- the flash loan mechanism deflationary.
- [.contract-item]
- [[ERC20FlashMint-flashLoan-contract-IERC3156FlashBorrower-address-uint256-bytes-]]
- ==== `[.contract-item-name]#++flashLoan++#++(contract IERC3156FlashBorrower receiver, address token, uint256 amount, bytes data) → bool++` [.item-kind]#public#
- Performs a flash loan. New tokens are minted and sent to the
- `receiver`, who is required to implement the {IERC3156FlashBorrower}
- interface. By the end of the flash loan, the receiver is expected to own
- amount + fee tokens and have them approved back to the token contract itself so
- they can be burned.
- == Draft EIPs
- The following EIPs are still in Draft status. Due to their nature as drafts, the details of these contracts may change and we cannot guarantee their xref:ROOT:releases-stability.adoc[stability]. Minor releases of OpenZeppelin Contracts may contain breaking changes for the contracts in this directory, which will be duly announced in the https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/CHANGELOG.md[changelog]. The EIPs included here are used by projects in production and this may make them less likely to change significantly.
- :ERC20Permit: pass:normal[xref:#ERC20Permit[`++ERC20Permit++`]]
- :constructor: pass:normal[xref:#ERC20Permit-constructor-string-[`++constructor++`]]
- :permit: pass:normal[xref:#ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-[`++permit++`]]
- :nonces: pass:normal[xref:#ERC20Permit-nonces-address-[`++nonces++`]]
- :DOMAIN_SEPARATOR: pass:normal[xref:#ERC20Permit-DOMAIN_SEPARATOR--[`++DOMAIN_SEPARATOR++`]]
- :_useNonce: pass:normal[xref:#ERC20Permit-_useNonce-address-[`++_useNonce++`]]
- [.contract]
- [[ERC20Permit]]
- === `++ERC20Permit++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/extensions/draft-ERC20Permit.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol";
- ```
- Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
- https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
- Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
- presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't
- need to send a transaction, and thus is not required to hold Ether at all.
- _Available since v3.4._
- [.contract-index]
- .Functions
- --
- * {xref-ERC20Permit-constructor-string-}[`++constructor(name)++`]
- * {xref-ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-}[`++permit(owner, spender, value, deadline, v, r, s)++`]
- * {xref-ERC20Permit-nonces-address-}[`++nonces(owner)++`]
- * {xref-ERC20Permit-DOMAIN_SEPARATOR--}[`++DOMAIN_SEPARATOR()++`]
- * {xref-ERC20Permit-_useNonce-address-}[`++_useNonce(owner)++`]
- [.contract-subindex-inherited]
- .EIP712
- * {xref-EIP712-_domainSeparatorV4--}[`++_domainSeparatorV4()++`]
- * {xref-EIP712-_hashTypedDataV4-bytes32-}[`++_hashTypedDataV4(structHash)++`]
- [.contract-subindex-inherited]
- .IERC20Permit
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .EIP712
- [.contract-subindex-inherited]
- .IERC20Permit
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20Permit-constructor-string-]]
- ==== `[.contract-item-name]#++constructor++#++(string name)++` [.item-kind]#internal#
- Initializes the {EIP712} domain separator using the `name` parameter, and setting `version` to `"1"`.
- It's a good idea to use the same `name` that is defined as the ERC20 token name.
- [.contract-item]
- [[ERC20Permit-permit-address-address-uint256-uint256-uint8-bytes32-bytes32-]]
- ==== `[.contract-item-name]#++permit++#++(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)++` [.item-kind]#public#
- See {IERC20Permit-permit}.
- [.contract-item]
- [[ERC20Permit-nonces-address-]]
- ==== `[.contract-item-name]#++nonces++#++(address owner) → uint256++` [.item-kind]#public#
- See {IERC20Permit-nonces}.
- [.contract-item]
- [[ERC20Permit-DOMAIN_SEPARATOR--]]
- ==== `[.contract-item-name]#++DOMAIN_SEPARATOR++#++() → bytes32++` [.item-kind]#external#
- See {IERC20Permit-DOMAIN_SEPARATOR}.
- [.contract-item]
- [[ERC20Permit-_useNonce-address-]]
- ==== `[.contract-item-name]#++_useNonce++#++(address owner) → uint256 current++` [.item-kind]#internal#
- "Consume a nonce": return the current value and increment.
- _Available since v4.1._
- == Presets
- These contracts are preconfigured combinations of the above features. They can be used through inheritance or as models to copy and paste their source code.
- :ERC20PresetMinterPauser: pass:normal[xref:#ERC20PresetMinterPauser[`++ERC20PresetMinterPauser++`]]
- :MINTER_ROLE: pass:normal[xref:#ERC20PresetMinterPauser-MINTER_ROLE-bytes32[`++MINTER_ROLE++`]]
- :PAUSER_ROLE: pass:normal[xref:#ERC20PresetMinterPauser-PAUSER_ROLE-bytes32[`++PAUSER_ROLE++`]]
- :constructor: pass:normal[xref:#ERC20PresetMinterPauser-constructor-string-string-[`++constructor++`]]
- :mint: pass:normal[xref:#ERC20PresetMinterPauser-mint-address-uint256-[`++mint++`]]
- :pause: pass:normal[xref:#ERC20PresetMinterPauser-pause--[`++pause++`]]
- :unpause: pass:normal[xref:#ERC20PresetMinterPauser-unpause--[`++unpause++`]]
- :_beforeTokenTransfer: pass:normal[xref:#ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-[`++_beforeTokenTransfer++`]]
- [.contract]
- [[ERC20PresetMinterPauser]]
- === `++ERC20PresetMinterPauser++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";
- ```
- {ERC20} token, including:
- - ability for holders to burn (destroy) their tokens
- - a minter role that allows for token minting (creation)
- - a pauser role that allows to stop all token transfers
- This contract uses {AccessControl} to lock permissioned functions using the
- different roles - head to its documentation for details.
- The account that deploys the contract will be granted the minter and pauser
- roles, as well as the default admin role, which will let it grant both minter
- and pauser roles to other accounts.
- [.contract-index]
- .Functions
- --
- * {xref-ERC20PresetMinterPauser-constructor-string-string-}[`++constructor(name, symbol)++`]
- * {xref-ERC20PresetMinterPauser-mint-address-uint256-}[`++mint(to, amount)++`]
- * {xref-ERC20PresetMinterPauser-pause--}[`++pause()++`]
- * {xref-ERC20PresetMinterPauser-unpause--}[`++unpause()++`]
- * {xref-ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .ERC20Pausable
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-paused--}[`++paused()++`]
- * {xref-Pausable-_pause--}[`++_pause()++`]
- * {xref-Pausable-_unpause--}[`++_unpause()++`]
- [.contract-subindex-inherited]
- .ERC20Burnable
- * {xref-ERC20Burnable-burn-uint256-}[`++burn(amount)++`]
- * {xref-ERC20Burnable-burnFrom-address-uint256-}[`++burnFrom(account, amount)++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- [.contract-subindex-inherited]
- .AccessControlEnumerable
- * {xref-AccessControlEnumerable-supportsInterface-bytes4-}[`++supportsInterface(interfaceId)++`]
- * {xref-AccessControlEnumerable-getRoleMember-bytes32-uint256-}[`++getRoleMember(role, index)++`]
- * {xref-AccessControlEnumerable-getRoleMemberCount-bytes32-}[`++getRoleMemberCount(role)++`]
- * {xref-AccessControlEnumerable-_grantRole-bytes32-address-}[`++_grantRole(role, account)++`]
- * {xref-AccessControlEnumerable-_revokeRole-bytes32-address-}[`++_revokeRole(role, account)++`]
- [.contract-subindex-inherited]
- .AccessControl
- * {xref-AccessControl-hasRole-bytes32-address-}[`++hasRole(role, account)++`]
- * {xref-AccessControl-_checkRole-bytes32-address-}[`++_checkRole(role, account)++`]
- * {xref-AccessControl-getRoleAdmin-bytes32-}[`++getRoleAdmin(role)++`]
- * {xref-AccessControl-grantRole-bytes32-address-}[`++grantRole(role, account)++`]
- * {xref-AccessControl-revokeRole-bytes32-address-}[`++revokeRole(role, account)++`]
- * {xref-AccessControl-renounceRole-bytes32-address-}[`++renounceRole(role, account)++`]
- * {xref-AccessControl-_setupRole-bytes32-address-}[`++_setupRole(role, account)++`]
- * {xref-AccessControl-_setRoleAdmin-bytes32-bytes32-}[`++_setRoleAdmin(role, adminRole)++`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .IAccessControlEnumerable
- [.contract-subindex-inherited]
- .IAccessControl
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC20Pausable
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-Paused-address-}[`++Paused(account)++`]
- * {xref-Pausable-Unpaused-address-}[`++Unpaused(account)++`]
- [.contract-subindex-inherited]
- .ERC20Burnable
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .AccessControlEnumerable
- [.contract-subindex-inherited]
- .AccessControl
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .IAccessControlEnumerable
- [.contract-subindex-inherited]
- .IAccessControl
- * {xref-IAccessControl-RoleAdminChanged-bytes32-bytes32-bytes32-}[`++RoleAdminChanged(role, previousAdminRole, newAdminRole)++`]
- * {xref-IAccessControl-RoleGranted-bytes32-address-address-}[`++RoleGranted(role, account, sender)++`]
- * {xref-IAccessControl-RoleRevoked-bytes32-address-address-}[`++RoleRevoked(role, account, sender)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20PresetMinterPauser-constructor-string-string-]]
- ==== `[.contract-item-name]#++constructor++#++(string name, string symbol)++` [.item-kind]#public#
- Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the
- account that deploys the contract.
- See {ERC20-constructor}.
- [.contract-item]
- [[ERC20PresetMinterPauser-mint-address-uint256-]]
- ==== `[.contract-item-name]#++mint++#++(address to, uint256 amount)++` [.item-kind]#public#
- Creates `amount` new tokens for `to`.
- See {ERC20-_mint}.
- Requirements:
- - the caller must have the `MINTER_ROLE`.
- [.contract-item]
- [[ERC20PresetMinterPauser-pause--]]
- ==== `[.contract-item-name]#++pause++#++()++` [.item-kind]#public#
- Pauses all token transfers.
- See {ERC20Pausable} and {Pausable-_pause}.
- Requirements:
- - the caller must have the `PAUSER_ROLE`.
- [.contract-item]
- [[ERC20PresetMinterPauser-unpause--]]
- ==== `[.contract-item-name]#++unpause++#++()++` [.item-kind]#public#
- Unpauses all token transfers.
- See {ERC20Pausable} and {Pausable-_unpause}.
- Requirements:
- - the caller must have the `PAUSER_ROLE`.
- [.contract-item]
- [[ERC20PresetMinterPauser-_beforeTokenTransfer-address-address-uint256-]]
- ==== `[.contract-item-name]#++_beforeTokenTransfer++#++(address from, address to, uint256 amount)++` [.item-kind]#internal#
- :ERC20PresetFixedSupply: pass:normal[xref:#ERC20PresetFixedSupply[`++ERC20PresetFixedSupply++`]]
- :constructor: pass:normal[xref:#ERC20PresetFixedSupply-constructor-string-string-uint256-address-[`++constructor++`]]
- [.contract]
- [[ERC20PresetFixedSupply]]
- === `++ERC20PresetFixedSupply++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetFixedSupply.sol";
- ```
- {ERC20} token, including:
- - Preminted initial supply
- - Ability for holders to burn (destroy) their tokens
- - No access control mechanism (for minting/pausing) and hence no governance
- This contract uses {ERC20Burnable} to include burn capabilities - head to
- its documentation for details.
- _Available since v3.4._
- [.contract-index]
- .Functions
- --
- * {xref-ERC20PresetFixedSupply-constructor-string-string-uint256-address-}[`++constructor(name, symbol, initialSupply, owner)++`]
- [.contract-subindex-inherited]
- .ERC20Burnable
- * {xref-ERC20Burnable-burn-uint256-}[`++burn(amount)++`]
- * {xref-ERC20Burnable-burnFrom-address-uint256-}[`++burnFrom(account, amount)++`]
- [.contract-subindex-inherited]
- .ERC20
- * {xref-ERC20-name--}[`++name()++`]
- * {xref-ERC20-symbol--}[`++symbol()++`]
- * {xref-ERC20-decimals--}[`++decimals()++`]
- * {xref-ERC20-totalSupply--}[`++totalSupply()++`]
- * {xref-ERC20-balanceOf-address-}[`++balanceOf(account)++`]
- * {xref-ERC20-transfer-address-uint256-}[`++transfer(recipient, amount)++`]
- * {xref-ERC20-allowance-address-address-}[`++allowance(owner, spender)++`]
- * {xref-ERC20-approve-address-uint256-}[`++approve(spender, amount)++`]
- * {xref-ERC20-transferFrom-address-address-uint256-}[`++transferFrom(sender, recipient, amount)++`]
- * {xref-ERC20-increaseAllowance-address-uint256-}[`++increaseAllowance(spender, addedValue)++`]
- * {xref-ERC20-decreaseAllowance-address-uint256-}[`++decreaseAllowance(spender, subtractedValue)++`]
- * {xref-ERC20-_transfer-address-address-uint256-}[`++_transfer(sender, recipient, amount)++`]
- * {xref-ERC20-_mint-address-uint256-}[`++_mint(account, amount)++`]
- * {xref-ERC20-_burn-address-uint256-}[`++_burn(account, amount)++`]
- * {xref-ERC20-_approve-address-address-uint256-}[`++_approve(owner, spender, amount)++`]
- * {xref-ERC20-_beforeTokenTransfer-address-address-uint256-}[`++_beforeTokenTransfer(from, to, amount)++`]
- * {xref-ERC20-_afterTokenTransfer-address-address-uint256-}[`++_afterTokenTransfer(from, to, amount)++`]
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC20Burnable
- [.contract-subindex-inherited]
- .ERC20
- [.contract-subindex-inherited]
- .IERC20Metadata
- [.contract-subindex-inherited]
- .IERC20
- * {xref-IERC20-Transfer-address-address-uint256-}[`++Transfer(from, to, value)++`]
- * {xref-IERC20-Approval-address-address-uint256-}[`++Approval(owner, spender, value)++`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC20PresetFixedSupply-constructor-string-string-uint256-address-]]
- ==== `[.contract-item-name]#++constructor++#++(string name, string symbol, uint256 initialSupply, address owner)++` [.item-kind]#public#
- Mints `initialSupply` amount of token and transfers them to `owner`.
- See {ERC20-constructor}.
- == Utilities
- :SafeERC20: pass:normal[xref:#SafeERC20[`++SafeERC20++`]]
- :safeTransfer: pass:normal[xref:#SafeERC20-safeTransfer-contract-IERC20-address-uint256-[`++safeTransfer++`]]
- :safeTransferFrom: pass:normal[xref:#SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-[`++safeTransferFrom++`]]
- :safeApprove: pass:normal[xref:#SafeERC20-safeApprove-contract-IERC20-address-uint256-[`++safeApprove++`]]
- :safeIncreaseAllowance: pass:normal[xref:#SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-[`++safeIncreaseAllowance++`]]
- :safeDecreaseAllowance: pass:normal[xref:#SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-[`++safeDecreaseAllowance++`]]
- [.contract]
- [[SafeERC20]]
- === `++SafeERC20++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/utils/SafeERC20.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
- ```
- Wrappers around ERC20 operations that throw on failure (when the token
- contract returns false). Tokens that return no value (and instead revert or
- throw on failure) are also supported, non-reverting calls are assumed to be
- successful.
- To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
- which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
- [.contract-index]
- .Functions
- --
- * {xref-SafeERC20-safeTransfer-contract-IERC20-address-uint256-}[`++safeTransfer(token, to, value)++`]
- * {xref-SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-}[`++safeTransferFrom(token, from, to, value)++`]
- * {xref-SafeERC20-safeApprove-contract-IERC20-address-uint256-}[`++safeApprove(token, spender, value)++`]
- * {xref-SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-}[`++safeIncreaseAllowance(token, spender, value)++`]
- * {xref-SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-}[`++safeDecreaseAllowance(token, spender, value)++`]
- --
- [.contract-item]
- [[SafeERC20-safeTransfer-contract-IERC20-address-uint256-]]
- ==== `[.contract-item-name]#++safeTransfer++#++(contract IERC20 token, address to, uint256 value)++` [.item-kind]#internal#
- [.contract-item]
- [[SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-]]
- ==== `[.contract-item-name]#++safeTransferFrom++#++(contract IERC20 token, address from, address to, uint256 value)++` [.item-kind]#internal#
- [.contract-item]
- [[SafeERC20-safeApprove-contract-IERC20-address-uint256-]]
- ==== `[.contract-item-name]#++safeApprove++#++(contract IERC20 token, address spender, uint256 value)++` [.item-kind]#internal#
- Deprecated. This function has issues similar to the ones found in
- {IERC20-approve}, and its usage is discouraged.
- Whenever possible, use {safeIncreaseAllowance} and
- {safeDecreaseAllowance} instead.
- [.contract-item]
- [[SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-]]
- ==== `[.contract-item-name]#++safeIncreaseAllowance++#++(contract IERC20 token, address spender, uint256 value)++` [.item-kind]#internal#
- [.contract-item]
- [[SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-]]
- ==== `[.contract-item-name]#++safeDecreaseAllowance++#++(contract IERC20 token, address spender, uint256 value)++` [.item-kind]#internal#
- :TokenTimelock: pass:normal[xref:#TokenTimelock[`++TokenTimelock++`]]
- :constructor: pass:normal[xref:#TokenTimelock-constructor-contract-IERC20-address-uint256-[`++constructor++`]]
- :token: pass:normal[xref:#TokenTimelock-token--[`++token++`]]
- :beneficiary: pass:normal[xref:#TokenTimelock-beneficiary--[`++beneficiary++`]]
- :releaseTime: pass:normal[xref:#TokenTimelock-releaseTime--[`++releaseTime++`]]
- :release: pass:normal[xref:#TokenTimelock-release--[`++release++`]]
- [.contract]
- [[TokenTimelock]]
- === `++TokenTimelock++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.4.2/contracts/token/ERC20/utils/TokenTimelock.sol[{github-icon},role=heading-link]
- [.hljs-theme-light.nopadding]
- ```solidity
- import "@openzeppelin/contracts/token/ERC20/utils/TokenTimelock.sol";
- ```
- A token holder contract that will allow a beneficiary to extract the
- tokens after a given release time.
- Useful for simple vesting schedules like "advisors get all of their tokens
- after 1 year".
- [.contract-index]
- .Functions
- --
- * {xref-TokenTimelock-constructor-contract-IERC20-address-uint256-}[`++constructor(token_, beneficiary_, releaseTime_)++`]
- * {xref-TokenTimelock-token--}[`++token()++`]
- * {xref-TokenTimelock-beneficiary--}[`++beneficiary()++`]
- * {xref-TokenTimelock-releaseTime--}[`++releaseTime()++`]
- * {xref-TokenTimelock-release--}[`++release()++`]
- --
- [.contract-item]
- [[TokenTimelock-constructor-contract-IERC20-address-uint256-]]
- ==== `[.contract-item-name]#++constructor++#++(contract IERC20 token_, address beneficiary_, uint256 releaseTime_)++` [.item-kind]#public#
- [.contract-item]
- [[TokenTimelock-token--]]
- ==== `[.contract-item-name]#++token++#++() → contract IERC20++` [.item-kind]#public#
- [.contract-item]
- [[TokenTimelock-beneficiary--]]
- ==== `[.contract-item-name]#++beneficiary++#++() → address++` [.item-kind]#public#
- [.contract-item]
- [[TokenTimelock-releaseTime--]]
- ==== `[.contract-item-name]#++releaseTime++#++() → uint256++` [.item-kind]#public#
- [.contract-item]
- [[TokenTimelock-release--]]
- ==== `[.contract-item-name]#++release++#++()++` [.item-kind]#public#
|