123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859 |
- :Context: pass:normal[xref:GSN.adoc#Context[`Context`]]
- :xref-Context: xref:GSN.adoc#Context
- :Context-constructor: pass:normal[xref:GSN.adoc#Context-constructor--[`Context.constructor`]]
- :xref-Context-constructor: xref:GSN.adoc#Context-constructor--
- :Context-_msgSender: pass:normal[xref:GSN.adoc#Context-_msgSender--[`Context._msgSender`]]
- :xref-Context-_msgSender: xref:GSN.adoc#Context-_msgSender--
- :Context-_msgData: pass:normal[xref:GSN.adoc#Context-_msgData--[`Context._msgData`]]
- :xref-Context-_msgData: xref:GSN.adoc#Context-_msgData--
- :GSNRecipient: pass:normal[xref:GSN.adoc#GSNRecipient[`GSNRecipient`]]
- :xref-GSNRecipient: xref:GSN.adoc#GSNRecipient
- :GSNRecipient-POST_RELAYED_CALL_MAX_GAS: pass:normal[xref:GSN.adoc#GSNRecipient-POST_RELAYED_CALL_MAX_GAS-uint256[`GSNRecipient.POST_RELAYED_CALL_MAX_GAS`]]
- :xref-GSNRecipient-POST_RELAYED_CALL_MAX_GAS: xref:GSN.adoc#GSNRecipient-POST_RELAYED_CALL_MAX_GAS-uint256
- :GSNRecipient-getHubAddr: pass:normal[xref:GSN.adoc#GSNRecipient-getHubAddr--[`GSNRecipient.getHubAddr`]]
- :xref-GSNRecipient-getHubAddr: xref:GSN.adoc#GSNRecipient-getHubAddr--
- :GSNRecipient-_upgradeRelayHub: pass:normal[xref:GSN.adoc#GSNRecipient-_upgradeRelayHub-address-[`GSNRecipient._upgradeRelayHub`]]
- :xref-GSNRecipient-_upgradeRelayHub: xref:GSN.adoc#GSNRecipient-_upgradeRelayHub-address-
- :GSNRecipient-relayHubVersion: pass:normal[xref:GSN.adoc#GSNRecipient-relayHubVersion--[`GSNRecipient.relayHubVersion`]]
- :xref-GSNRecipient-relayHubVersion: xref:GSN.adoc#GSNRecipient-relayHubVersion--
- :GSNRecipient-_withdrawDeposits: pass:normal[xref:GSN.adoc#GSNRecipient-_withdrawDeposits-uint256-address-payable-[`GSNRecipient._withdrawDeposits`]]
- :xref-GSNRecipient-_withdrawDeposits: xref:GSN.adoc#GSNRecipient-_withdrawDeposits-uint256-address-payable-
- :GSNRecipient-_msgSender: pass:normal[xref:GSN.adoc#GSNRecipient-_msgSender--[`GSNRecipient._msgSender`]]
- :xref-GSNRecipient-_msgSender: xref:GSN.adoc#GSNRecipient-_msgSender--
- :GSNRecipient-_msgData: pass:normal[xref:GSN.adoc#GSNRecipient-_msgData--[`GSNRecipient._msgData`]]
- :xref-GSNRecipient-_msgData: xref:GSN.adoc#GSNRecipient-_msgData--
- :GSNRecipient-preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-preRelayedCall-bytes-[`GSNRecipient.preRelayedCall`]]
- :xref-GSNRecipient-preRelayedCall: xref:GSN.adoc#GSNRecipient-preRelayedCall-bytes-
- :GSNRecipient-_preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_preRelayedCall-bytes-[`GSNRecipient._preRelayedCall`]]
- :xref-GSNRecipient-_preRelayedCall: xref:GSN.adoc#GSNRecipient-_preRelayedCall-bytes-
- :GSNRecipient-postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipient.postRelayedCall`]]
- :xref-GSNRecipient-postRelayedCall: xref:GSN.adoc#GSNRecipient-postRelayedCall-bytes-bool-uint256-bytes32-
- :GSNRecipient-_postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipient._postRelayedCall`]]
- :xref-GSNRecipient-_postRelayedCall: xref:GSN.adoc#GSNRecipient-_postRelayedCall-bytes-bool-uint256-bytes32-
- :GSNRecipient-_approveRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_approveRelayedCall--[`GSNRecipient._approveRelayedCall`]]
- :xref-GSNRecipient-_approveRelayedCall: xref:GSN.adoc#GSNRecipient-_approveRelayedCall--
- :GSNRecipient-_approveRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_approveRelayedCall-bytes-[`GSNRecipient._approveRelayedCall`]]
- :xref-GSNRecipient-_approveRelayedCall: xref:GSN.adoc#GSNRecipient-_approveRelayedCall-bytes-
- :GSNRecipient-_rejectRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_rejectRelayedCall-uint256-[`GSNRecipient._rejectRelayedCall`]]
- :xref-GSNRecipient-_rejectRelayedCall: xref:GSN.adoc#GSNRecipient-_rejectRelayedCall-uint256-
- :GSNRecipient-_computeCharge: pass:normal[xref:GSN.adoc#GSNRecipient-_computeCharge-uint256-uint256-uint256-[`GSNRecipient._computeCharge`]]
- :xref-GSNRecipient-_computeCharge: xref:GSN.adoc#GSNRecipient-_computeCharge-uint256-uint256-uint256-
- :GSNRecipient-RelayHubChanged: pass:normal[xref:GSN.adoc#GSNRecipient-RelayHubChanged-address-address-[`GSNRecipient.RelayHubChanged`]]
- :xref-GSNRecipient-RelayHubChanged: xref:GSN.adoc#GSNRecipient-RelayHubChanged-address-address-
- :GSNRecipientERC20Fee: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee[`GSNRecipientERC20Fee`]]
- :xref-GSNRecipientERC20Fee: xref:GSN.adoc#GSNRecipientERC20Fee
- :GSNRecipientERC20Fee-constructor: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-constructor-string-string-[`GSNRecipientERC20Fee.constructor`]]
- :xref-GSNRecipientERC20Fee-constructor: xref:GSN.adoc#GSNRecipientERC20Fee-constructor-string-string-
- :GSNRecipientERC20Fee-token: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-token--[`GSNRecipientERC20Fee.token`]]
- :xref-GSNRecipientERC20Fee-token: xref:GSN.adoc#GSNRecipientERC20Fee-token--
- :GSNRecipientERC20Fee-_mint: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-_mint-address-uint256-[`GSNRecipientERC20Fee._mint`]]
- :xref-GSNRecipientERC20Fee-_mint: xref:GSN.adoc#GSNRecipientERC20Fee-_mint-address-uint256-
- :GSNRecipientERC20Fee-acceptRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`GSNRecipientERC20Fee.acceptRelayedCall`]]
- :xref-GSNRecipientERC20Fee-acceptRelayedCall: xref:GSN.adoc#GSNRecipientERC20Fee-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-
- :GSNRecipientERC20Fee-_preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-_preRelayedCall-bytes-[`GSNRecipientERC20Fee._preRelayedCall`]]
- :xref-GSNRecipientERC20Fee-_preRelayedCall: xref:GSN.adoc#GSNRecipientERC20Fee-_preRelayedCall-bytes-
- :GSNRecipientERC20Fee-_postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-_postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipientERC20Fee._postRelayedCall`]]
- :xref-GSNRecipientERC20Fee-_postRelayedCall: xref:GSN.adoc#GSNRecipientERC20Fee-_postRelayedCall-bytes-bool-uint256-bytes32-
- :__unstable__ERC20PrimaryAdmin: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin[`__unstable__ERC20PrimaryAdmin`]]
- :xref-__unstable__ERC20PrimaryAdmin: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin
- :__unstable__ERC20PrimaryAdmin-constructor: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-constructor-string-string-uint8-[`__unstable__ERC20PrimaryAdmin.constructor`]]
- :xref-__unstable__ERC20PrimaryAdmin-constructor: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-constructor-string-string-uint8-
- :__unstable__ERC20PrimaryAdmin-mint: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-mint-address-uint256-[`__unstable__ERC20PrimaryAdmin.mint`]]
- :xref-__unstable__ERC20PrimaryAdmin-mint: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-mint-address-uint256-
- :__unstable__ERC20PrimaryAdmin-allowance: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-allowance-address-address-[`__unstable__ERC20PrimaryAdmin.allowance`]]
- :xref-__unstable__ERC20PrimaryAdmin-allowance: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-allowance-address-address-
- :__unstable__ERC20PrimaryAdmin-_approve: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-_approve-address-address-uint256-[`__unstable__ERC20PrimaryAdmin._approve`]]
- :xref-__unstable__ERC20PrimaryAdmin-_approve: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-_approve-address-address-uint256-
- :__unstable__ERC20PrimaryAdmin-transferFrom: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-transferFrom-address-address-uint256-[`__unstable__ERC20PrimaryAdmin.transferFrom`]]
- :xref-__unstable__ERC20PrimaryAdmin-transferFrom: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-transferFrom-address-address-uint256-
- :GSNRecipientSignature: pass:normal[xref:GSN.adoc#GSNRecipientSignature[`GSNRecipientSignature`]]
- :xref-GSNRecipientSignature: xref:GSN.adoc#GSNRecipientSignature
- :GSNRecipientSignature-constructor: pass:normal[xref:GSN.adoc#GSNRecipientSignature-constructor-address-[`GSNRecipientSignature.constructor`]]
- :xref-GSNRecipientSignature-constructor: xref:GSN.adoc#GSNRecipientSignature-constructor-address-
- :GSNRecipientSignature-acceptRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientSignature-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`GSNRecipientSignature.acceptRelayedCall`]]
- :xref-GSNRecipientSignature-acceptRelayedCall: xref:GSN.adoc#GSNRecipientSignature-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-
- :GSNRecipientSignature-_preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientSignature-_preRelayedCall-bytes-[`GSNRecipientSignature._preRelayedCall`]]
- :xref-GSNRecipientSignature-_preRelayedCall: xref:GSN.adoc#GSNRecipientSignature-_preRelayedCall-bytes-
- :GSNRecipientSignature-_postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientSignature-_postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipientSignature._postRelayedCall`]]
- :xref-GSNRecipientSignature-_postRelayedCall: xref:GSN.adoc#GSNRecipientSignature-_postRelayedCall-bytes-bool-uint256-bytes32-
- :IRelayHub: pass:normal[xref:GSN.adoc#IRelayHub[`IRelayHub`]]
- :xref-IRelayHub: xref:GSN.adoc#IRelayHub
- :IRelayHub-stake: pass:normal[xref:GSN.adoc#IRelayHub-stake-address-uint256-[`IRelayHub.stake`]]
- :xref-IRelayHub-stake: xref:GSN.adoc#IRelayHub-stake-address-uint256-
- :IRelayHub-registerRelay: pass:normal[xref:GSN.adoc#IRelayHub-registerRelay-uint256-string-[`IRelayHub.registerRelay`]]
- :xref-IRelayHub-registerRelay: xref:GSN.adoc#IRelayHub-registerRelay-uint256-string-
- :IRelayHub-removeRelayByOwner: pass:normal[xref:GSN.adoc#IRelayHub-removeRelayByOwner-address-[`IRelayHub.removeRelayByOwner`]]
- :xref-IRelayHub-removeRelayByOwner: xref:GSN.adoc#IRelayHub-removeRelayByOwner-address-
- :IRelayHub-unstake: pass:normal[xref:GSN.adoc#IRelayHub-unstake-address-[`IRelayHub.unstake`]]
- :xref-IRelayHub-unstake: xref:GSN.adoc#IRelayHub-unstake-address-
- :IRelayHub-getRelay: pass:normal[xref:GSN.adoc#IRelayHub-getRelay-address-[`IRelayHub.getRelay`]]
- :xref-IRelayHub-getRelay: xref:GSN.adoc#IRelayHub-getRelay-address-
- :IRelayHub-depositFor: pass:normal[xref:GSN.adoc#IRelayHub-depositFor-address-[`IRelayHub.depositFor`]]
- :xref-IRelayHub-depositFor: xref:GSN.adoc#IRelayHub-depositFor-address-
- :IRelayHub-balanceOf: pass:normal[xref:GSN.adoc#IRelayHub-balanceOf-address-[`IRelayHub.balanceOf`]]
- :xref-IRelayHub-balanceOf: xref:GSN.adoc#IRelayHub-balanceOf-address-
- :IRelayHub-withdraw: pass:normal[xref:GSN.adoc#IRelayHub-withdraw-uint256-address-payable-[`IRelayHub.withdraw`]]
- :xref-IRelayHub-withdraw: xref:GSN.adoc#IRelayHub-withdraw-uint256-address-payable-
- :IRelayHub-canRelay: pass:normal[xref:GSN.adoc#IRelayHub-canRelay-address-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-[`IRelayHub.canRelay`]]
- :xref-IRelayHub-canRelay: xref:GSN.adoc#IRelayHub-canRelay-address-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-
- :IRelayHub-relayCall: pass:normal[xref:GSN.adoc#IRelayHub-relayCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-[`IRelayHub.relayCall`]]
- :xref-IRelayHub-relayCall: xref:GSN.adoc#IRelayHub-relayCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-
- :IRelayHub-requiredGas: pass:normal[xref:GSN.adoc#IRelayHub-requiredGas-uint256-[`IRelayHub.requiredGas`]]
- :xref-IRelayHub-requiredGas: xref:GSN.adoc#IRelayHub-requiredGas-uint256-
- :IRelayHub-maxPossibleCharge: pass:normal[xref:GSN.adoc#IRelayHub-maxPossibleCharge-uint256-uint256-uint256-[`IRelayHub.maxPossibleCharge`]]
- :xref-IRelayHub-maxPossibleCharge: xref:GSN.adoc#IRelayHub-maxPossibleCharge-uint256-uint256-uint256-
- :IRelayHub-penalizeRepeatedNonce: pass:normal[xref:GSN.adoc#IRelayHub-penalizeRepeatedNonce-bytes-bytes-bytes-bytes-[`IRelayHub.penalizeRepeatedNonce`]]
- :xref-IRelayHub-penalizeRepeatedNonce: xref:GSN.adoc#IRelayHub-penalizeRepeatedNonce-bytes-bytes-bytes-bytes-
- :IRelayHub-penalizeIllegalTransaction: pass:normal[xref:GSN.adoc#IRelayHub-penalizeIllegalTransaction-bytes-bytes-[`IRelayHub.penalizeIllegalTransaction`]]
- :xref-IRelayHub-penalizeIllegalTransaction: xref:GSN.adoc#IRelayHub-penalizeIllegalTransaction-bytes-bytes-
- :IRelayHub-getNonce: pass:normal[xref:GSN.adoc#IRelayHub-getNonce-address-[`IRelayHub.getNonce`]]
- :xref-IRelayHub-getNonce: xref:GSN.adoc#IRelayHub-getNonce-address-
- :IRelayHub-Staked: pass:normal[xref:GSN.adoc#IRelayHub-Staked-address-uint256-uint256-[`IRelayHub.Staked`]]
- :xref-IRelayHub-Staked: xref:GSN.adoc#IRelayHub-Staked-address-uint256-uint256-
- :IRelayHub-RelayAdded: pass:normal[xref:GSN.adoc#IRelayHub-RelayAdded-address-address-uint256-uint256-uint256-string-[`IRelayHub.RelayAdded`]]
- :xref-IRelayHub-RelayAdded: xref:GSN.adoc#IRelayHub-RelayAdded-address-address-uint256-uint256-uint256-string-
- :IRelayHub-RelayRemoved: pass:normal[xref:GSN.adoc#IRelayHub-RelayRemoved-address-uint256-[`IRelayHub.RelayRemoved`]]
- :xref-IRelayHub-RelayRemoved: xref:GSN.adoc#IRelayHub-RelayRemoved-address-uint256-
- :IRelayHub-Unstaked: pass:normal[xref:GSN.adoc#IRelayHub-Unstaked-address-uint256-[`IRelayHub.Unstaked`]]
- :xref-IRelayHub-Unstaked: xref:GSN.adoc#IRelayHub-Unstaked-address-uint256-
- :IRelayHub-Deposited: pass:normal[xref:GSN.adoc#IRelayHub-Deposited-address-address-uint256-[`IRelayHub.Deposited`]]
- :xref-IRelayHub-Deposited: xref:GSN.adoc#IRelayHub-Deposited-address-address-uint256-
- :IRelayHub-Withdrawn: pass:normal[xref:GSN.adoc#IRelayHub-Withdrawn-address-address-uint256-[`IRelayHub.Withdrawn`]]
- :xref-IRelayHub-Withdrawn: xref:GSN.adoc#IRelayHub-Withdrawn-address-address-uint256-
- :IRelayHub-CanRelayFailed: pass:normal[xref:GSN.adoc#IRelayHub-CanRelayFailed-address-address-address-bytes4-uint256-[`IRelayHub.CanRelayFailed`]]
- :xref-IRelayHub-CanRelayFailed: xref:GSN.adoc#IRelayHub-CanRelayFailed-address-address-address-bytes4-uint256-
- :IRelayHub-TransactionRelayed: pass:normal[xref:GSN.adoc#IRelayHub-TransactionRelayed-address-address-address-bytes4-enum-IRelayHub-RelayCallStatus-uint256-[`IRelayHub.TransactionRelayed`]]
- :xref-IRelayHub-TransactionRelayed: xref:GSN.adoc#IRelayHub-TransactionRelayed-address-address-address-bytes4-enum-IRelayHub-RelayCallStatus-uint256-
- :IRelayHub-Penalized: pass:normal[xref:GSN.adoc#IRelayHub-Penalized-address-address-uint256-[`IRelayHub.Penalized`]]
- :xref-IRelayHub-Penalized: xref:GSN.adoc#IRelayHub-Penalized-address-address-uint256-
- :IRelayRecipient: pass:normal[xref:GSN.adoc#IRelayRecipient[`IRelayRecipient`]]
- :xref-IRelayRecipient: xref:GSN.adoc#IRelayRecipient
- :IRelayRecipient-getHubAddr: pass:normal[xref:GSN.adoc#IRelayRecipient-getHubAddr--[`IRelayRecipient.getHubAddr`]]
- :xref-IRelayRecipient-getHubAddr: xref:GSN.adoc#IRelayRecipient-getHubAddr--
- :IRelayRecipient-acceptRelayedCall: pass:normal[xref:GSN.adoc#IRelayRecipient-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`IRelayRecipient.acceptRelayedCall`]]
- :xref-IRelayRecipient-acceptRelayedCall: xref:GSN.adoc#IRelayRecipient-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-
- :IRelayRecipient-preRelayedCall: pass:normal[xref:GSN.adoc#IRelayRecipient-preRelayedCall-bytes-[`IRelayRecipient.preRelayedCall`]]
- :xref-IRelayRecipient-preRelayedCall: xref:GSN.adoc#IRelayRecipient-preRelayedCall-bytes-
- :IRelayRecipient-postRelayedCall: pass:normal[xref:GSN.adoc#IRelayRecipient-postRelayedCall-bytes-bool-uint256-bytes32-[`IRelayRecipient.postRelayedCall`]]
- :xref-IRelayRecipient-postRelayedCall: xref:GSN.adoc#IRelayRecipient-postRelayedCall-bytes-bool-uint256-bytes32-
- :Crowdsale: pass:normal[xref:crowdsale.adoc#Crowdsale[`Crowdsale`]]
- :xref-Crowdsale: xref:crowdsale.adoc#Crowdsale
- :Crowdsale-constructor: pass:normal[xref:crowdsale.adoc#Crowdsale-constructor-uint256-address-payable-contract-IERC20-[`Crowdsale.constructor`]]
- :xref-Crowdsale-constructor: xref:crowdsale.adoc#Crowdsale-constructor-uint256-address-payable-contract-IERC20-
- :Crowdsale-fallback: pass:normal[xref:crowdsale.adoc#Crowdsale-fallback--[`Crowdsale.fallback`]]
- :xref-Crowdsale-fallback: xref:crowdsale.adoc#Crowdsale-fallback--
- :Crowdsale-token: pass:normal[xref:crowdsale.adoc#Crowdsale-token--[`Crowdsale.token`]]
- :xref-Crowdsale-token: xref:crowdsale.adoc#Crowdsale-token--
- :Crowdsale-wallet: pass:normal[xref:crowdsale.adoc#Crowdsale-wallet--[`Crowdsale.wallet`]]
- :xref-Crowdsale-wallet: xref:crowdsale.adoc#Crowdsale-wallet--
- :Crowdsale-rate: pass:normal[xref:crowdsale.adoc#Crowdsale-rate--[`Crowdsale.rate`]]
- :xref-Crowdsale-rate: xref:crowdsale.adoc#Crowdsale-rate--
- :Crowdsale-weiRaised: pass:normal[xref:crowdsale.adoc#Crowdsale-weiRaised--[`Crowdsale.weiRaised`]]
- :xref-Crowdsale-weiRaised: xref:crowdsale.adoc#Crowdsale-weiRaised--
- :Crowdsale-buyTokens: pass:normal[xref:crowdsale.adoc#Crowdsale-buyTokens-address-[`Crowdsale.buyTokens`]]
- :xref-Crowdsale-buyTokens: xref:crowdsale.adoc#Crowdsale-buyTokens-address-
- :Crowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#Crowdsale-_preValidatePurchase-address-uint256-[`Crowdsale._preValidatePurchase`]]
- :xref-Crowdsale-_preValidatePurchase: xref:crowdsale.adoc#Crowdsale-_preValidatePurchase-address-uint256-
- :Crowdsale-_postValidatePurchase: pass:normal[xref:crowdsale.adoc#Crowdsale-_postValidatePurchase-address-uint256-[`Crowdsale._postValidatePurchase`]]
- :xref-Crowdsale-_postValidatePurchase: xref:crowdsale.adoc#Crowdsale-_postValidatePurchase-address-uint256-
- :Crowdsale-_deliverTokens: pass:normal[xref:crowdsale.adoc#Crowdsale-_deliverTokens-address-uint256-[`Crowdsale._deliverTokens`]]
- :xref-Crowdsale-_deliverTokens: xref:crowdsale.adoc#Crowdsale-_deliverTokens-address-uint256-
- :Crowdsale-_processPurchase: pass:normal[xref:crowdsale.adoc#Crowdsale-_processPurchase-address-uint256-[`Crowdsale._processPurchase`]]
- :xref-Crowdsale-_processPurchase: xref:crowdsale.adoc#Crowdsale-_processPurchase-address-uint256-
- :Crowdsale-_updatePurchasingState: pass:normal[xref:crowdsale.adoc#Crowdsale-_updatePurchasingState-address-uint256-[`Crowdsale._updatePurchasingState`]]
- :xref-Crowdsale-_updatePurchasingState: xref:crowdsale.adoc#Crowdsale-_updatePurchasingState-address-uint256-
- :Crowdsale-_getTokenAmount: pass:normal[xref:crowdsale.adoc#Crowdsale-_getTokenAmount-uint256-[`Crowdsale._getTokenAmount`]]
- :xref-Crowdsale-_getTokenAmount: xref:crowdsale.adoc#Crowdsale-_getTokenAmount-uint256-
- :Crowdsale-_forwardFunds: pass:normal[xref:crowdsale.adoc#Crowdsale-_forwardFunds--[`Crowdsale._forwardFunds`]]
- :xref-Crowdsale-_forwardFunds: xref:crowdsale.adoc#Crowdsale-_forwardFunds--
- :Crowdsale-TokensPurchased: pass:normal[xref:crowdsale.adoc#Crowdsale-TokensPurchased-address-address-uint256-uint256-[`Crowdsale.TokensPurchased`]]
- :xref-Crowdsale-TokensPurchased: xref:crowdsale.adoc#Crowdsale-TokensPurchased-address-address-uint256-uint256-
- :FinalizableCrowdsale: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale[`FinalizableCrowdsale`]]
- :xref-FinalizableCrowdsale: xref:crowdsale.adoc#FinalizableCrowdsale
- :FinalizableCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-constructor--[`FinalizableCrowdsale.constructor`]]
- :xref-FinalizableCrowdsale-constructor: xref:crowdsale.adoc#FinalizableCrowdsale-constructor--
- :FinalizableCrowdsale-finalized: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-finalized--[`FinalizableCrowdsale.finalized`]]
- :xref-FinalizableCrowdsale-finalized: xref:crowdsale.adoc#FinalizableCrowdsale-finalized--
- :FinalizableCrowdsale-finalize: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-finalize--[`FinalizableCrowdsale.finalize`]]
- :xref-FinalizableCrowdsale-finalize: xref:crowdsale.adoc#FinalizableCrowdsale-finalize--
- :FinalizableCrowdsale-_finalization: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-_finalization--[`FinalizableCrowdsale._finalization`]]
- :xref-FinalizableCrowdsale-_finalization: xref:crowdsale.adoc#FinalizableCrowdsale-_finalization--
- :FinalizableCrowdsale-CrowdsaleFinalized: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-CrowdsaleFinalized--[`FinalizableCrowdsale.CrowdsaleFinalized`]]
- :xref-FinalizableCrowdsale-CrowdsaleFinalized: xref:crowdsale.adoc#FinalizableCrowdsale-CrowdsaleFinalized--
- :PostDeliveryCrowdsale: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale[`PostDeliveryCrowdsale`]]
- :xref-PostDeliveryCrowdsale: xref:crowdsale.adoc#PostDeliveryCrowdsale
- :PostDeliveryCrowdsale-withdrawTokens: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale-withdrawTokens-address-[`PostDeliveryCrowdsale.withdrawTokens`]]
- :xref-PostDeliveryCrowdsale-withdrawTokens: xref:crowdsale.adoc#PostDeliveryCrowdsale-withdrawTokens-address-
- :PostDeliveryCrowdsale-balanceOf: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale-balanceOf-address-[`PostDeliveryCrowdsale.balanceOf`]]
- :xref-PostDeliveryCrowdsale-balanceOf: xref:crowdsale.adoc#PostDeliveryCrowdsale-balanceOf-address-
- :PostDeliveryCrowdsale-_processPurchase: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale-_processPurchase-address-uint256-[`PostDeliveryCrowdsale._processPurchase`]]
- :xref-PostDeliveryCrowdsale-_processPurchase: xref:crowdsale.adoc#PostDeliveryCrowdsale-_processPurchase-address-uint256-
- :__unstable__TokenVault: pass:normal[xref:crowdsale.adoc#__unstable__TokenVault[`__unstable__TokenVault`]]
- :xref-__unstable__TokenVault: xref:crowdsale.adoc#__unstable__TokenVault
- :__unstable__TokenVault-transfer: pass:normal[xref:crowdsale.adoc#__unstable__TokenVault-transfer-contract-IERC20-address-uint256-[`__unstable__TokenVault.transfer`]]
- :xref-__unstable__TokenVault-transfer: xref:crowdsale.adoc#__unstable__TokenVault-transfer-contract-IERC20-address-uint256-
- :RefundableCrowdsale: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale[`RefundableCrowdsale`]]
- :xref-RefundableCrowdsale: xref:crowdsale.adoc#RefundableCrowdsale
- :RefundableCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-constructor-uint256-[`RefundableCrowdsale.constructor`]]
- :xref-RefundableCrowdsale-constructor: xref:crowdsale.adoc#RefundableCrowdsale-constructor-uint256-
- :RefundableCrowdsale-goal: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-goal--[`RefundableCrowdsale.goal`]]
- :xref-RefundableCrowdsale-goal: xref:crowdsale.adoc#RefundableCrowdsale-goal--
- :RefundableCrowdsale-claimRefund: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-claimRefund-address-payable-[`RefundableCrowdsale.claimRefund`]]
- :xref-RefundableCrowdsale-claimRefund: xref:crowdsale.adoc#RefundableCrowdsale-claimRefund-address-payable-
- :RefundableCrowdsale-goalReached: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-goalReached--[`RefundableCrowdsale.goalReached`]]
- :xref-RefundableCrowdsale-goalReached: xref:crowdsale.adoc#RefundableCrowdsale-goalReached--
- :RefundableCrowdsale-_finalization: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-_finalization--[`RefundableCrowdsale._finalization`]]
- :xref-RefundableCrowdsale-_finalization: xref:crowdsale.adoc#RefundableCrowdsale-_finalization--
- :RefundableCrowdsale-_forwardFunds: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-_forwardFunds--[`RefundableCrowdsale._forwardFunds`]]
- :xref-RefundableCrowdsale-_forwardFunds: xref:crowdsale.adoc#RefundableCrowdsale-_forwardFunds--
- :RefundablePostDeliveryCrowdsale: pass:normal[xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale[`RefundablePostDeliveryCrowdsale`]]
- :xref-RefundablePostDeliveryCrowdsale: xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale
- :RefundablePostDeliveryCrowdsale-withdrawTokens: pass:normal[xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale-withdrawTokens-address-[`RefundablePostDeliveryCrowdsale.withdrawTokens`]]
- :xref-RefundablePostDeliveryCrowdsale-withdrawTokens: xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale-withdrawTokens-address-
- :AllowanceCrowdsale: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale[`AllowanceCrowdsale`]]
- :xref-AllowanceCrowdsale: xref:crowdsale.adoc#AllowanceCrowdsale
- :AllowanceCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-constructor-address-[`AllowanceCrowdsale.constructor`]]
- :xref-AllowanceCrowdsale-constructor: xref:crowdsale.adoc#AllowanceCrowdsale-constructor-address-
- :AllowanceCrowdsale-tokenWallet: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-tokenWallet--[`AllowanceCrowdsale.tokenWallet`]]
- :xref-AllowanceCrowdsale-tokenWallet: xref:crowdsale.adoc#AllowanceCrowdsale-tokenWallet--
- :AllowanceCrowdsale-remainingTokens: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-remainingTokens--[`AllowanceCrowdsale.remainingTokens`]]
- :xref-AllowanceCrowdsale-remainingTokens: xref:crowdsale.adoc#AllowanceCrowdsale-remainingTokens--
- :AllowanceCrowdsale-_deliverTokens: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-_deliverTokens-address-uint256-[`AllowanceCrowdsale._deliverTokens`]]
- :xref-AllowanceCrowdsale-_deliverTokens: xref:crowdsale.adoc#AllowanceCrowdsale-_deliverTokens-address-uint256-
- :MintedCrowdsale: pass:normal[xref:crowdsale.adoc#MintedCrowdsale[`MintedCrowdsale`]]
- :xref-MintedCrowdsale: xref:crowdsale.adoc#MintedCrowdsale
- :MintedCrowdsale-_deliverTokens: pass:normal[xref:crowdsale.adoc#MintedCrowdsale-_deliverTokens-address-uint256-[`MintedCrowdsale._deliverTokens`]]
- :xref-MintedCrowdsale-_deliverTokens: xref:crowdsale.adoc#MintedCrowdsale-_deliverTokens-address-uint256-
- :IncreasingPriceCrowdsale: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale[`IncreasingPriceCrowdsale`]]
- :xref-IncreasingPriceCrowdsale: xref:crowdsale.adoc#IncreasingPriceCrowdsale
- :IncreasingPriceCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-constructor-uint256-uint256-[`IncreasingPriceCrowdsale.constructor`]]
- :xref-IncreasingPriceCrowdsale-constructor: xref:crowdsale.adoc#IncreasingPriceCrowdsale-constructor-uint256-uint256-
- :IncreasingPriceCrowdsale-rate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-rate--[`IncreasingPriceCrowdsale.rate`]]
- :xref-IncreasingPriceCrowdsale-rate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-rate--
- :IncreasingPriceCrowdsale-initialRate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-initialRate--[`IncreasingPriceCrowdsale.initialRate`]]
- :xref-IncreasingPriceCrowdsale-initialRate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-initialRate--
- :IncreasingPriceCrowdsale-finalRate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-finalRate--[`IncreasingPriceCrowdsale.finalRate`]]
- :xref-IncreasingPriceCrowdsale-finalRate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-finalRate--
- :IncreasingPriceCrowdsale-getCurrentRate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-getCurrentRate--[`IncreasingPriceCrowdsale.getCurrentRate`]]
- :xref-IncreasingPriceCrowdsale-getCurrentRate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-getCurrentRate--
- :IncreasingPriceCrowdsale-_getTokenAmount: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-_getTokenAmount-uint256-[`IncreasingPriceCrowdsale._getTokenAmount`]]
- :xref-IncreasingPriceCrowdsale-_getTokenAmount: xref:crowdsale.adoc#IncreasingPriceCrowdsale-_getTokenAmount-uint256-
- :CappedCrowdsale: pass:normal[xref:crowdsale.adoc#CappedCrowdsale[`CappedCrowdsale`]]
- :xref-CappedCrowdsale: xref:crowdsale.adoc#CappedCrowdsale
- :CappedCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-constructor-uint256-[`CappedCrowdsale.constructor`]]
- :xref-CappedCrowdsale-constructor: xref:crowdsale.adoc#CappedCrowdsale-constructor-uint256-
- :CappedCrowdsale-cap: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-cap--[`CappedCrowdsale.cap`]]
- :xref-CappedCrowdsale-cap: xref:crowdsale.adoc#CappedCrowdsale-cap--
- :CappedCrowdsale-capReached: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-capReached--[`CappedCrowdsale.capReached`]]
- :xref-CappedCrowdsale-capReached: xref:crowdsale.adoc#CappedCrowdsale-capReached--
- :CappedCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-_preValidatePurchase-address-uint256-[`CappedCrowdsale._preValidatePurchase`]]
- :xref-CappedCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#CappedCrowdsale-_preValidatePurchase-address-uint256-
- :IndividuallyCappedCrowdsale: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale[`IndividuallyCappedCrowdsale`]]
- :xref-IndividuallyCappedCrowdsale: xref:crowdsale.adoc#IndividuallyCappedCrowdsale
- :IndividuallyCappedCrowdsale-setCap: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-setCap-address-uint256-[`IndividuallyCappedCrowdsale.setCap`]]
- :xref-IndividuallyCappedCrowdsale-setCap: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-setCap-address-uint256-
- :IndividuallyCappedCrowdsale-getCap: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getCap-address-[`IndividuallyCappedCrowdsale.getCap`]]
- :xref-IndividuallyCappedCrowdsale-getCap: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getCap-address-
- :IndividuallyCappedCrowdsale-getContribution: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getContribution-address-[`IndividuallyCappedCrowdsale.getContribution`]]
- :xref-IndividuallyCappedCrowdsale-getContribution: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getContribution-address-
- :IndividuallyCappedCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_preValidatePurchase-address-uint256-[`IndividuallyCappedCrowdsale._preValidatePurchase`]]
- :xref-IndividuallyCappedCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_preValidatePurchase-address-uint256-
- :IndividuallyCappedCrowdsale-_updatePurchasingState: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_updatePurchasingState-address-uint256-[`IndividuallyCappedCrowdsale._updatePurchasingState`]]
- :xref-IndividuallyCappedCrowdsale-_updatePurchasingState: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_updatePurchasingState-address-uint256-
- :PausableCrowdsale: pass:normal[xref:crowdsale.adoc#PausableCrowdsale[`PausableCrowdsale`]]
- :xref-PausableCrowdsale: xref:crowdsale.adoc#PausableCrowdsale
- :PausableCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#PausableCrowdsale-_preValidatePurchase-address-uint256-[`PausableCrowdsale._preValidatePurchase`]]
- :xref-PausableCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#PausableCrowdsale-_preValidatePurchase-address-uint256-
- :TimedCrowdsale: pass:normal[xref:crowdsale.adoc#TimedCrowdsale[`TimedCrowdsale`]]
- :xref-TimedCrowdsale: xref:crowdsale.adoc#TimedCrowdsale
- :TimedCrowdsale-onlyWhileOpen: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-onlyWhileOpen--[`TimedCrowdsale.onlyWhileOpen`]]
- :xref-TimedCrowdsale-onlyWhileOpen: xref:crowdsale.adoc#TimedCrowdsale-onlyWhileOpen--
- :TimedCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-constructor-uint256-uint256-[`TimedCrowdsale.constructor`]]
- :xref-TimedCrowdsale-constructor: xref:crowdsale.adoc#TimedCrowdsale-constructor-uint256-uint256-
- :TimedCrowdsale-openingTime: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-openingTime--[`TimedCrowdsale.openingTime`]]
- :xref-TimedCrowdsale-openingTime: xref:crowdsale.adoc#TimedCrowdsale-openingTime--
- :TimedCrowdsale-closingTime: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-closingTime--[`TimedCrowdsale.closingTime`]]
- :xref-TimedCrowdsale-closingTime: xref:crowdsale.adoc#TimedCrowdsale-closingTime--
- :TimedCrowdsale-isOpen: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-isOpen--[`TimedCrowdsale.isOpen`]]
- :xref-TimedCrowdsale-isOpen: xref:crowdsale.adoc#TimedCrowdsale-isOpen--
- :TimedCrowdsale-hasClosed: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-hasClosed--[`TimedCrowdsale.hasClosed`]]
- :xref-TimedCrowdsale-hasClosed: xref:crowdsale.adoc#TimedCrowdsale-hasClosed--
- :TimedCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-_preValidatePurchase-address-uint256-[`TimedCrowdsale._preValidatePurchase`]]
- :xref-TimedCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#TimedCrowdsale-_preValidatePurchase-address-uint256-
- :TimedCrowdsale-_extendTime: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-_extendTime-uint256-[`TimedCrowdsale._extendTime`]]
- :xref-TimedCrowdsale-_extendTime: xref:crowdsale.adoc#TimedCrowdsale-_extendTime-uint256-
- :TimedCrowdsale-TimedCrowdsaleExtended: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-TimedCrowdsaleExtended-uint256-uint256-[`TimedCrowdsale.TimedCrowdsaleExtended`]]
- :xref-TimedCrowdsale-TimedCrowdsaleExtended: xref:crowdsale.adoc#TimedCrowdsale-TimedCrowdsaleExtended-uint256-uint256-
- :WhitelistCrowdsale: pass:normal[xref:crowdsale.adoc#WhitelistCrowdsale[`WhitelistCrowdsale`]]
- :xref-WhitelistCrowdsale: xref:crowdsale.adoc#WhitelistCrowdsale
- :WhitelistCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#WhitelistCrowdsale-_preValidatePurchase-address-uint256-[`WhitelistCrowdsale._preValidatePurchase`]]
- :xref-WhitelistCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#WhitelistCrowdsale-_preValidatePurchase-address-uint256-
- :Counters: pass:normal[xref:drafts.adoc#Counters[`Counters`]]
- :xref-Counters: xref:drafts.adoc#Counters
- :Counters-current: pass:normal[xref:drafts.adoc#Counters-current-struct-Counters-Counter-[`Counters.current`]]
- :xref-Counters-current: xref:drafts.adoc#Counters-current-struct-Counters-Counter-
- :Counters-increment: pass:normal[xref:drafts.adoc#Counters-increment-struct-Counters-Counter-[`Counters.increment`]]
- :xref-Counters-increment: xref:drafts.adoc#Counters-increment-struct-Counters-Counter-
- :Counters-decrement: pass:normal[xref:drafts.adoc#Counters-decrement-struct-Counters-Counter-[`Counters.decrement`]]
- :xref-Counters-decrement: xref:drafts.adoc#Counters-decrement-struct-Counters-Counter-
- :ERC20Metadata: pass:normal[xref:drafts.adoc#ERC20Metadata[`ERC20Metadata`]]
- :xref-ERC20Metadata: xref:drafts.adoc#ERC20Metadata
- :ERC20Metadata-constructor: pass:normal[xref:drafts.adoc#ERC20Metadata-constructor-string-[`ERC20Metadata.constructor`]]
- :xref-ERC20Metadata-constructor: xref:drafts.adoc#ERC20Metadata-constructor-string-
- :ERC20Metadata-tokenURI: pass:normal[xref:drafts.adoc#ERC20Metadata-tokenURI--[`ERC20Metadata.tokenURI`]]
- :xref-ERC20Metadata-tokenURI: xref:drafts.adoc#ERC20Metadata-tokenURI--
- :ERC20Metadata-_setTokenURI: pass:normal[xref:drafts.adoc#ERC20Metadata-_setTokenURI-string-[`ERC20Metadata._setTokenURI`]]
- :xref-ERC20Metadata-_setTokenURI: xref:drafts.adoc#ERC20Metadata-_setTokenURI-string-
- :ERC20Migrator: pass:normal[xref:drafts.adoc#ERC20Migrator[`ERC20Migrator`]]
- :xref-ERC20Migrator: xref:drafts.adoc#ERC20Migrator
- :ERC20Migrator-constructor: pass:normal[xref:drafts.adoc#ERC20Migrator-constructor-contract-IERC20-[`ERC20Migrator.constructor`]]
- :xref-ERC20Migrator-constructor: xref:drafts.adoc#ERC20Migrator-constructor-contract-IERC20-
- :ERC20Migrator-legacyToken: pass:normal[xref:drafts.adoc#ERC20Migrator-legacyToken--[`ERC20Migrator.legacyToken`]]
- :xref-ERC20Migrator-legacyToken: xref:drafts.adoc#ERC20Migrator-legacyToken--
- :ERC20Migrator-newToken: pass:normal[xref:drafts.adoc#ERC20Migrator-newToken--[`ERC20Migrator.newToken`]]
- :xref-ERC20Migrator-newToken: xref:drafts.adoc#ERC20Migrator-newToken--
- :ERC20Migrator-beginMigration: pass:normal[xref:drafts.adoc#ERC20Migrator-beginMigration-contract-ERC20Mintable-[`ERC20Migrator.beginMigration`]]
- :xref-ERC20Migrator-beginMigration: xref:drafts.adoc#ERC20Migrator-beginMigration-contract-ERC20Mintable-
- :ERC20Migrator-migrate: pass:normal[xref:drafts.adoc#ERC20Migrator-migrate-address-uint256-[`ERC20Migrator.migrate`]]
- :xref-ERC20Migrator-migrate: xref:drafts.adoc#ERC20Migrator-migrate-address-uint256-
- :ERC20Migrator-migrateAll: pass:normal[xref:drafts.adoc#ERC20Migrator-migrateAll-address-[`ERC20Migrator.migrateAll`]]
- :xref-ERC20Migrator-migrateAll: xref:drafts.adoc#ERC20Migrator-migrateAll-address-
- :ERC20Snapshot: pass:normal[xref:drafts.adoc#ERC20Snapshot[`ERC20Snapshot`]]
- :xref-ERC20Snapshot: xref:drafts.adoc#ERC20Snapshot
- :ERC20Snapshot-snapshot: pass:normal[xref:drafts.adoc#ERC20Snapshot-snapshot--[`ERC20Snapshot.snapshot`]]
- :xref-ERC20Snapshot-snapshot: xref:drafts.adoc#ERC20Snapshot-snapshot--
- :ERC20Snapshot-balanceOfAt: pass:normal[xref:drafts.adoc#ERC20Snapshot-balanceOfAt-address-uint256-[`ERC20Snapshot.balanceOfAt`]]
- :xref-ERC20Snapshot-balanceOfAt: xref:drafts.adoc#ERC20Snapshot-balanceOfAt-address-uint256-
- :ERC20Snapshot-totalSupplyAt: pass:normal[xref:drafts.adoc#ERC20Snapshot-totalSupplyAt-uint256-[`ERC20Snapshot.totalSupplyAt`]]
- :xref-ERC20Snapshot-totalSupplyAt: xref:drafts.adoc#ERC20Snapshot-totalSupplyAt-uint256-
- :ERC20Snapshot-_transfer: pass:normal[xref:drafts.adoc#ERC20Snapshot-_transfer-address-address-uint256-[`ERC20Snapshot._transfer`]]
- :xref-ERC20Snapshot-_transfer: xref:drafts.adoc#ERC20Snapshot-_transfer-address-address-uint256-
- :ERC20Snapshot-_mint: pass:normal[xref:drafts.adoc#ERC20Snapshot-_mint-address-uint256-[`ERC20Snapshot._mint`]]
- :xref-ERC20Snapshot-_mint: xref:drafts.adoc#ERC20Snapshot-_mint-address-uint256-
- :ERC20Snapshot-_burn: pass:normal[xref:drafts.adoc#ERC20Snapshot-_burn-address-uint256-[`ERC20Snapshot._burn`]]
- :xref-ERC20Snapshot-_burn: xref:drafts.adoc#ERC20Snapshot-_burn-address-uint256-
- :ERC20Snapshot-Snapshot: pass:normal[xref:drafts.adoc#ERC20Snapshot-Snapshot-uint256-[`ERC20Snapshot.Snapshot`]]
- :xref-ERC20Snapshot-Snapshot: xref:drafts.adoc#ERC20Snapshot-Snapshot-uint256-
- :SignedSafeMath: pass:normal[xref:drafts.adoc#SignedSafeMath[`SignedSafeMath`]]
- :xref-SignedSafeMath: xref:drafts.adoc#SignedSafeMath
- :SignedSafeMath-mul: pass:normal[xref:drafts.adoc#SignedSafeMath-mul-int256-int256-[`SignedSafeMath.mul`]]
- :xref-SignedSafeMath-mul: xref:drafts.adoc#SignedSafeMath-mul-int256-int256-
- :SignedSafeMath-div: pass:normal[xref:drafts.adoc#SignedSafeMath-div-int256-int256-[`SignedSafeMath.div`]]
- :xref-SignedSafeMath-div: xref:drafts.adoc#SignedSafeMath-div-int256-int256-
- :SignedSafeMath-sub: pass:normal[xref:drafts.adoc#SignedSafeMath-sub-int256-int256-[`SignedSafeMath.sub`]]
- :xref-SignedSafeMath-sub: xref:drafts.adoc#SignedSafeMath-sub-int256-int256-
- :SignedSafeMath-add: pass:normal[xref:drafts.adoc#SignedSafeMath-add-int256-int256-[`SignedSafeMath.add`]]
- :xref-SignedSafeMath-add: xref:drafts.adoc#SignedSafeMath-add-int256-int256-
- :Strings: pass:normal[xref:drafts.adoc#Strings[`Strings`]]
- :xref-Strings: xref:drafts.adoc#Strings
- :Strings-fromUint256: pass:normal[xref:drafts.adoc#Strings-fromUint256-uint256-[`Strings.fromUint256`]]
- :xref-Strings-fromUint256: xref:drafts.adoc#Strings-fromUint256-uint256-
- :TokenVesting: pass:normal[xref:drafts.adoc#TokenVesting[`TokenVesting`]]
- :xref-TokenVesting: xref:drafts.adoc#TokenVesting
- :TokenVesting-constructor: pass:normal[xref:drafts.adoc#TokenVesting-constructor-address-uint256-uint256-uint256-bool-[`TokenVesting.constructor`]]
- :xref-TokenVesting-constructor: xref:drafts.adoc#TokenVesting-constructor-address-uint256-uint256-uint256-bool-
- :TokenVesting-beneficiary: pass:normal[xref:drafts.adoc#TokenVesting-beneficiary--[`TokenVesting.beneficiary`]]
- :xref-TokenVesting-beneficiary: xref:drafts.adoc#TokenVesting-beneficiary--
- :TokenVesting-cliff: pass:normal[xref:drafts.adoc#TokenVesting-cliff--[`TokenVesting.cliff`]]
- :xref-TokenVesting-cliff: xref:drafts.adoc#TokenVesting-cliff--
- :TokenVesting-start: pass:normal[xref:drafts.adoc#TokenVesting-start--[`TokenVesting.start`]]
- :xref-TokenVesting-start: xref:drafts.adoc#TokenVesting-start--
- :TokenVesting-duration: pass:normal[xref:drafts.adoc#TokenVesting-duration--[`TokenVesting.duration`]]
- :xref-TokenVesting-duration: xref:drafts.adoc#TokenVesting-duration--
- :TokenVesting-revocable: pass:normal[xref:drafts.adoc#TokenVesting-revocable--[`TokenVesting.revocable`]]
- :xref-TokenVesting-revocable: xref:drafts.adoc#TokenVesting-revocable--
- :TokenVesting-released: pass:normal[xref:drafts.adoc#TokenVesting-released-address-[`TokenVesting.released`]]
- :xref-TokenVesting-released: xref:drafts.adoc#TokenVesting-released-address-
- :TokenVesting-revoked: pass:normal[xref:drafts.adoc#TokenVesting-revoked-address-[`TokenVesting.revoked`]]
- :xref-TokenVesting-revoked: xref:drafts.adoc#TokenVesting-revoked-address-
- :TokenVesting-release: pass:normal[xref:drafts.adoc#TokenVesting-release-contract-IERC20-[`TokenVesting.release`]]
- :xref-TokenVesting-release: xref:drafts.adoc#TokenVesting-release-contract-IERC20-
- :TokenVesting-revoke: pass:normal[xref:drafts.adoc#TokenVesting-revoke-contract-IERC20-[`TokenVesting.revoke`]]
- :xref-TokenVesting-revoke: xref:drafts.adoc#TokenVesting-revoke-contract-IERC20-
- :TokenVesting-TokensReleased: pass:normal[xref:drafts.adoc#TokenVesting-TokensReleased-address-uint256-[`TokenVesting.TokensReleased`]]
- :xref-TokenVesting-TokensReleased: xref:drafts.adoc#TokenVesting-TokensReleased-address-uint256-
- :TokenVesting-TokenVestingRevoked: pass:normal[xref:drafts.adoc#TokenVesting-TokenVestingRevoked-address-[`TokenVesting.TokenVestingRevoked`]]
- :xref-TokenVesting-TokenVestingRevoked: xref:drafts.adoc#TokenVesting-TokenVestingRevoked-address-
- :Roles: pass:normal[xref:access.adoc#Roles[`Roles`]]
- :xref-Roles: xref:access.adoc#Roles
- :Roles-add: pass:normal[xref:access.adoc#Roles-add-struct-Roles-Role-address-[`Roles.add`]]
- :xref-Roles-add: xref:access.adoc#Roles-add-struct-Roles-Role-address-
- :Roles-remove: pass:normal[xref:access.adoc#Roles-remove-struct-Roles-Role-address-[`Roles.remove`]]
- :xref-Roles-remove: xref:access.adoc#Roles-remove-struct-Roles-Role-address-
- :Roles-has: pass:normal[xref:access.adoc#Roles-has-struct-Roles-Role-address-[`Roles.has`]]
- :xref-Roles-has: xref:access.adoc#Roles-has-struct-Roles-Role-address-
- :CapperRole: pass:normal[xref:access.adoc#CapperRole[`CapperRole`]]
- :xref-CapperRole: xref:access.adoc#CapperRole
- :CapperRole-onlyCapper: pass:normal[xref:access.adoc#CapperRole-onlyCapper--[`CapperRole.onlyCapper`]]
- :xref-CapperRole-onlyCapper: xref:access.adoc#CapperRole-onlyCapper--
- :CapperRole-constructor: pass:normal[xref:access.adoc#CapperRole-constructor--[`CapperRole.constructor`]]
- :xref-CapperRole-constructor: xref:access.adoc#CapperRole-constructor--
- :CapperRole-isCapper: pass:normal[xref:access.adoc#CapperRole-isCapper-address-[`CapperRole.isCapper`]]
- :xref-CapperRole-isCapper: xref:access.adoc#CapperRole-isCapper-address-
- :CapperRole-addCapper: pass:normal[xref:access.adoc#CapperRole-addCapper-address-[`CapperRole.addCapper`]]
- :xref-CapperRole-addCapper: xref:access.adoc#CapperRole-addCapper-address-
- :CapperRole-renounceCapper: pass:normal[xref:access.adoc#CapperRole-renounceCapper--[`CapperRole.renounceCapper`]]
- :xref-CapperRole-renounceCapper: xref:access.adoc#CapperRole-renounceCapper--
- :CapperRole-_addCapper: pass:normal[xref:access.adoc#CapperRole-_addCapper-address-[`CapperRole._addCapper`]]
- :xref-CapperRole-_addCapper: xref:access.adoc#CapperRole-_addCapper-address-
- :CapperRole-_removeCapper: pass:normal[xref:access.adoc#CapperRole-_removeCapper-address-[`CapperRole._removeCapper`]]
- :xref-CapperRole-_removeCapper: xref:access.adoc#CapperRole-_removeCapper-address-
- :CapperRole-CapperAdded: pass:normal[xref:access.adoc#CapperRole-CapperAdded-address-[`CapperRole.CapperAdded`]]
- :xref-CapperRole-CapperAdded: xref:access.adoc#CapperRole-CapperAdded-address-
- :CapperRole-CapperRemoved: pass:normal[xref:access.adoc#CapperRole-CapperRemoved-address-[`CapperRole.CapperRemoved`]]
- :xref-CapperRole-CapperRemoved: xref:access.adoc#CapperRole-CapperRemoved-address-
- :MinterRole: pass:normal[xref:access.adoc#MinterRole[`MinterRole`]]
- :xref-MinterRole: xref:access.adoc#MinterRole
- :MinterRole-onlyMinter: pass:normal[xref:access.adoc#MinterRole-onlyMinter--[`MinterRole.onlyMinter`]]
- :xref-MinterRole-onlyMinter: xref:access.adoc#MinterRole-onlyMinter--
- :MinterRole-constructor: pass:normal[xref:access.adoc#MinterRole-constructor--[`MinterRole.constructor`]]
- :xref-MinterRole-constructor: xref:access.adoc#MinterRole-constructor--
- :MinterRole-isMinter: pass:normal[xref:access.adoc#MinterRole-isMinter-address-[`MinterRole.isMinter`]]
- :xref-MinterRole-isMinter: xref:access.adoc#MinterRole-isMinter-address-
- :MinterRole-addMinter: pass:normal[xref:access.adoc#MinterRole-addMinter-address-[`MinterRole.addMinter`]]
- :xref-MinterRole-addMinter: xref:access.adoc#MinterRole-addMinter-address-
- :MinterRole-renounceMinter: pass:normal[xref:access.adoc#MinterRole-renounceMinter--[`MinterRole.renounceMinter`]]
- :xref-MinterRole-renounceMinter: xref:access.adoc#MinterRole-renounceMinter--
- :MinterRole-_addMinter: pass:normal[xref:access.adoc#MinterRole-_addMinter-address-[`MinterRole._addMinter`]]
- :xref-MinterRole-_addMinter: xref:access.adoc#MinterRole-_addMinter-address-
- :MinterRole-_removeMinter: pass:normal[xref:access.adoc#MinterRole-_removeMinter-address-[`MinterRole._removeMinter`]]
- :xref-MinterRole-_removeMinter: xref:access.adoc#MinterRole-_removeMinter-address-
- :MinterRole-MinterAdded: pass:normal[xref:access.adoc#MinterRole-MinterAdded-address-[`MinterRole.MinterAdded`]]
- :xref-MinterRole-MinterAdded: xref:access.adoc#MinterRole-MinterAdded-address-
- :MinterRole-MinterRemoved: pass:normal[xref:access.adoc#MinterRole-MinterRemoved-address-[`MinterRole.MinterRemoved`]]
- :xref-MinterRole-MinterRemoved: xref:access.adoc#MinterRole-MinterRemoved-address-
- :PauserRole: pass:normal[xref:access.adoc#PauserRole[`PauserRole`]]
- :xref-PauserRole: xref:access.adoc#PauserRole
- :PauserRole-onlyPauser: pass:normal[xref:access.adoc#PauserRole-onlyPauser--[`PauserRole.onlyPauser`]]
- :xref-PauserRole-onlyPauser: xref:access.adoc#PauserRole-onlyPauser--
- :PauserRole-constructor: pass:normal[xref:access.adoc#PauserRole-constructor--[`PauserRole.constructor`]]
- :xref-PauserRole-constructor: xref:access.adoc#PauserRole-constructor--
- :PauserRole-isPauser: pass:normal[xref:access.adoc#PauserRole-isPauser-address-[`PauserRole.isPauser`]]
- :xref-PauserRole-isPauser: xref:access.adoc#PauserRole-isPauser-address-
- :PauserRole-addPauser: pass:normal[xref:access.adoc#PauserRole-addPauser-address-[`PauserRole.addPauser`]]
- :xref-PauserRole-addPauser: xref:access.adoc#PauserRole-addPauser-address-
- :PauserRole-renouncePauser: pass:normal[xref:access.adoc#PauserRole-renouncePauser--[`PauserRole.renouncePauser`]]
- :xref-PauserRole-renouncePauser: xref:access.adoc#PauserRole-renouncePauser--
- :PauserRole-_addPauser: pass:normal[xref:access.adoc#PauserRole-_addPauser-address-[`PauserRole._addPauser`]]
- :xref-PauserRole-_addPauser: xref:access.adoc#PauserRole-_addPauser-address-
- :PauserRole-_removePauser: pass:normal[xref:access.adoc#PauserRole-_removePauser-address-[`PauserRole._removePauser`]]
- :xref-PauserRole-_removePauser: xref:access.adoc#PauserRole-_removePauser-address-
- :PauserRole-PauserAdded: pass:normal[xref:access.adoc#PauserRole-PauserAdded-address-[`PauserRole.PauserAdded`]]
- :xref-PauserRole-PauserAdded: xref:access.adoc#PauserRole-PauserAdded-address-
- :PauserRole-PauserRemoved: pass:normal[xref:access.adoc#PauserRole-PauserRemoved-address-[`PauserRole.PauserRemoved`]]
- :xref-PauserRole-PauserRemoved: xref:access.adoc#PauserRole-PauserRemoved-address-
- :SignerRole: pass:normal[xref:access.adoc#SignerRole[`SignerRole`]]
- :xref-SignerRole: xref:access.adoc#SignerRole
- :SignerRole-onlySigner: pass:normal[xref:access.adoc#SignerRole-onlySigner--[`SignerRole.onlySigner`]]
- :xref-SignerRole-onlySigner: xref:access.adoc#SignerRole-onlySigner--
- :SignerRole-constructor: pass:normal[xref:access.adoc#SignerRole-constructor--[`SignerRole.constructor`]]
- :xref-SignerRole-constructor: xref:access.adoc#SignerRole-constructor--
- :SignerRole-isSigner: pass:normal[xref:access.adoc#SignerRole-isSigner-address-[`SignerRole.isSigner`]]
- :xref-SignerRole-isSigner: xref:access.adoc#SignerRole-isSigner-address-
- :SignerRole-addSigner: pass:normal[xref:access.adoc#SignerRole-addSigner-address-[`SignerRole.addSigner`]]
- :xref-SignerRole-addSigner: xref:access.adoc#SignerRole-addSigner-address-
- :SignerRole-renounceSigner: pass:normal[xref:access.adoc#SignerRole-renounceSigner--[`SignerRole.renounceSigner`]]
- :xref-SignerRole-renounceSigner: xref:access.adoc#SignerRole-renounceSigner--
- :SignerRole-_addSigner: pass:normal[xref:access.adoc#SignerRole-_addSigner-address-[`SignerRole._addSigner`]]
- :xref-SignerRole-_addSigner: xref:access.adoc#SignerRole-_addSigner-address-
- :SignerRole-_removeSigner: pass:normal[xref:access.adoc#SignerRole-_removeSigner-address-[`SignerRole._removeSigner`]]
- :xref-SignerRole-_removeSigner: xref:access.adoc#SignerRole-_removeSigner-address-
- :SignerRole-SignerAdded: pass:normal[xref:access.adoc#SignerRole-SignerAdded-address-[`SignerRole.SignerAdded`]]
- :xref-SignerRole-SignerAdded: xref:access.adoc#SignerRole-SignerAdded-address-
- :SignerRole-SignerRemoved: pass:normal[xref:access.adoc#SignerRole-SignerRemoved-address-[`SignerRole.SignerRemoved`]]
- :xref-SignerRole-SignerRemoved: xref:access.adoc#SignerRole-SignerRemoved-address-
- :WhitelistAdminRole: pass:normal[xref:access.adoc#WhitelistAdminRole[`WhitelistAdminRole`]]
- :xref-WhitelistAdminRole: xref:access.adoc#WhitelistAdminRole
- :WhitelistAdminRole-onlyWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-onlyWhitelistAdmin--[`WhitelistAdminRole.onlyWhitelistAdmin`]]
- :xref-WhitelistAdminRole-onlyWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-onlyWhitelistAdmin--
- :WhitelistAdminRole-constructor: pass:normal[xref:access.adoc#WhitelistAdminRole-constructor--[`WhitelistAdminRole.constructor`]]
- :xref-WhitelistAdminRole-constructor: xref:access.adoc#WhitelistAdminRole-constructor--
- :WhitelistAdminRole-isWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-isWhitelistAdmin-address-[`WhitelistAdminRole.isWhitelistAdmin`]]
- :xref-WhitelistAdminRole-isWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-isWhitelistAdmin-address-
- :WhitelistAdminRole-addWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-addWhitelistAdmin-address-[`WhitelistAdminRole.addWhitelistAdmin`]]
- :xref-WhitelistAdminRole-addWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-addWhitelistAdmin-address-
- :WhitelistAdminRole-renounceWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-renounceWhitelistAdmin--[`WhitelistAdminRole.renounceWhitelistAdmin`]]
- :xref-WhitelistAdminRole-renounceWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-renounceWhitelistAdmin--
- :WhitelistAdminRole-_addWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-_addWhitelistAdmin-address-[`WhitelistAdminRole._addWhitelistAdmin`]]
- :xref-WhitelistAdminRole-_addWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-_addWhitelistAdmin-address-
- :WhitelistAdminRole-_removeWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-_removeWhitelistAdmin-address-[`WhitelistAdminRole._removeWhitelistAdmin`]]
- :xref-WhitelistAdminRole-_removeWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-_removeWhitelistAdmin-address-
- :WhitelistAdminRole-WhitelistAdminAdded: pass:normal[xref:access.adoc#WhitelistAdminRole-WhitelistAdminAdded-address-[`WhitelistAdminRole.WhitelistAdminAdded`]]
- :xref-WhitelistAdminRole-WhitelistAdminAdded: xref:access.adoc#WhitelistAdminRole-WhitelistAdminAdded-address-
- :WhitelistAdminRole-WhitelistAdminRemoved: pass:normal[xref:access.adoc#WhitelistAdminRole-WhitelistAdminRemoved-address-[`WhitelistAdminRole.WhitelistAdminRemoved`]]
- :xref-WhitelistAdminRole-WhitelistAdminRemoved: xref:access.adoc#WhitelistAdminRole-WhitelistAdminRemoved-address-
- :WhitelistedRole: pass:normal[xref:access.adoc#WhitelistedRole[`WhitelistedRole`]]
- :xref-WhitelistedRole: xref:access.adoc#WhitelistedRole
- :WhitelistedRole-onlyWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-onlyWhitelisted--[`WhitelistedRole.onlyWhitelisted`]]
- :xref-WhitelistedRole-onlyWhitelisted: xref:access.adoc#WhitelistedRole-onlyWhitelisted--
- :WhitelistedRole-isWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-isWhitelisted-address-[`WhitelistedRole.isWhitelisted`]]
- :xref-WhitelistedRole-isWhitelisted: xref:access.adoc#WhitelistedRole-isWhitelisted-address-
- :WhitelistedRole-addWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-addWhitelisted-address-[`WhitelistedRole.addWhitelisted`]]
- :xref-WhitelistedRole-addWhitelisted: xref:access.adoc#WhitelistedRole-addWhitelisted-address-
- :WhitelistedRole-removeWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-removeWhitelisted-address-[`WhitelistedRole.removeWhitelisted`]]
- :xref-WhitelistedRole-removeWhitelisted: xref:access.adoc#WhitelistedRole-removeWhitelisted-address-
- :WhitelistedRole-renounceWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-renounceWhitelisted--[`WhitelistedRole.renounceWhitelisted`]]
- :xref-WhitelistedRole-renounceWhitelisted: xref:access.adoc#WhitelistedRole-renounceWhitelisted--
- :WhitelistedRole-_addWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-_addWhitelisted-address-[`WhitelistedRole._addWhitelisted`]]
- :xref-WhitelistedRole-_addWhitelisted: xref:access.adoc#WhitelistedRole-_addWhitelisted-address-
- :WhitelistedRole-_removeWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-_removeWhitelisted-address-[`WhitelistedRole._removeWhitelisted`]]
- :xref-WhitelistedRole-_removeWhitelisted: xref:access.adoc#WhitelistedRole-_removeWhitelisted-address-
- :WhitelistedRole-WhitelistedAdded: pass:normal[xref:access.adoc#WhitelistedRole-WhitelistedAdded-address-[`WhitelistedRole.WhitelistedAdded`]]
- :xref-WhitelistedRole-WhitelistedAdded: xref:access.adoc#WhitelistedRole-WhitelistedAdded-address-
- :WhitelistedRole-WhitelistedRemoved: pass:normal[xref:access.adoc#WhitelistedRole-WhitelistedRemoved-address-[`WhitelistedRole.WhitelistedRemoved`]]
- :xref-WhitelistedRole-WhitelistedRemoved: xref:access.adoc#WhitelistedRole-WhitelistedRemoved-address-
- :ECDSA: pass:normal[xref:cryptography.adoc#ECDSA[`ECDSA`]]
- :xref-ECDSA: xref:cryptography.adoc#ECDSA
- :ECDSA-recover: pass:normal[xref:cryptography.adoc#ECDSA-recover-bytes32-bytes-[`ECDSA.recover`]]
- :xref-ECDSA-recover: xref:cryptography.adoc#ECDSA-recover-bytes32-bytes-
- :ECDSA-toEthSignedMessageHash: pass:normal[xref:cryptography.adoc#ECDSA-toEthSignedMessageHash-bytes32-[`ECDSA.toEthSignedMessageHash`]]
- :xref-ECDSA-toEthSignedMessageHash: xref:cryptography.adoc#ECDSA-toEthSignedMessageHash-bytes32-
- :MerkleProof: pass:normal[xref:cryptography.adoc#MerkleProof[`MerkleProof`]]
- :xref-MerkleProof: xref:cryptography.adoc#MerkleProof
- :MerkleProof-verify: pass:normal[xref:cryptography.adoc#MerkleProof-verify-bytes32---bytes32-bytes32-[`MerkleProof.verify`]]
- :xref-MerkleProof-verify: xref:cryptography.adoc#MerkleProof-verify-bytes32---bytes32-bytes32-
- :ERC165: pass:normal[xref:introspection.adoc#ERC165[`ERC165`]]
- :xref-ERC165: xref:introspection.adoc#ERC165
- :ERC165-constructor: pass:normal[xref:introspection.adoc#ERC165-constructor--[`ERC165.constructor`]]
- :xref-ERC165-constructor: xref:introspection.adoc#ERC165-constructor--
- :ERC165-supportsInterface: pass:normal[xref:introspection.adoc#ERC165-supportsInterface-bytes4-[`ERC165.supportsInterface`]]
- :xref-ERC165-supportsInterface: xref:introspection.adoc#ERC165-supportsInterface-bytes4-
- :ERC165-_registerInterface: pass:normal[xref:introspection.adoc#ERC165-_registerInterface-bytes4-[`ERC165._registerInterface`]]
- :xref-ERC165-_registerInterface: xref:introspection.adoc#ERC165-_registerInterface-bytes4-
- :ERC165Checker: pass:normal[xref:introspection.adoc#ERC165Checker[`ERC165Checker`]]
- :xref-ERC165Checker: xref:introspection.adoc#ERC165Checker
- :ERC165Checker-_supportsERC165: pass:normal[xref:introspection.adoc#ERC165Checker-_supportsERC165-address-[`ERC165Checker._supportsERC165`]]
- :xref-ERC165Checker-_supportsERC165: xref:introspection.adoc#ERC165Checker-_supportsERC165-address-
- :ERC165Checker-_supportsInterface: pass:normal[xref:introspection.adoc#ERC165Checker-_supportsInterface-address-bytes4-[`ERC165Checker._supportsInterface`]]
- :xref-ERC165Checker-_supportsInterface: xref:introspection.adoc#ERC165Checker-_supportsInterface-address-bytes4-
- :ERC165Checker-_supportsAllInterfaces: pass:normal[xref:introspection.adoc#ERC165Checker-_supportsAllInterfaces-address-bytes4---[`ERC165Checker._supportsAllInterfaces`]]
- :xref-ERC165Checker-_supportsAllInterfaces: xref:introspection.adoc#ERC165Checker-_supportsAllInterfaces-address-bytes4---
- :ERC1820Implementer: pass:normal[xref:introspection.adoc#ERC1820Implementer[`ERC1820Implementer`]]
- :xref-ERC1820Implementer: xref:introspection.adoc#ERC1820Implementer
- :ERC1820Implementer-canImplementInterfaceForAddress: pass:normal[xref:introspection.adoc#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`ERC1820Implementer.canImplementInterfaceForAddress`]]
- :xref-ERC1820Implementer-canImplementInterfaceForAddress: xref:introspection.adoc#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-
- :ERC1820Implementer-_registerInterfaceForAddress: pass:normal[xref:introspection.adoc#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-[`ERC1820Implementer._registerInterfaceForAddress`]]
- :xref-ERC1820Implementer-_registerInterfaceForAddress: xref:introspection.adoc#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-
- :IERC165: pass:normal[xref:introspection.adoc#IERC165[`IERC165`]]
- :xref-IERC165: xref:introspection.adoc#IERC165
- :IERC165-supportsInterface: pass:normal[xref:introspection.adoc#IERC165-supportsInterface-bytes4-[`IERC165.supportsInterface`]]
- :xref-IERC165-supportsInterface: xref:introspection.adoc#IERC165-supportsInterface-bytes4-
- :IERC1820Implementer: pass:normal[xref:introspection.adoc#IERC1820Implementer[`IERC1820Implementer`]]
- :xref-IERC1820Implementer: xref:introspection.adoc#IERC1820Implementer
- :IERC1820Implementer-canImplementInterfaceForAddress: pass:normal[xref:introspection.adoc#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`IERC1820Implementer.canImplementInterfaceForAddress`]]
- :xref-IERC1820Implementer-canImplementInterfaceForAddress: xref:introspection.adoc#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-
- :IERC1820Registry: pass:normal[xref:introspection.adoc#IERC1820Registry[`IERC1820Registry`]]
- :xref-IERC1820Registry: xref:introspection.adoc#IERC1820Registry
- :IERC1820Registry-setManager: pass:normal[xref:introspection.adoc#IERC1820Registry-setManager-address-address-[`IERC1820Registry.setManager`]]
- :xref-IERC1820Registry-setManager: xref:introspection.adoc#IERC1820Registry-setManager-address-address-
- :IERC1820Registry-getManager: pass:normal[xref:introspection.adoc#IERC1820Registry-getManager-address-[`IERC1820Registry.getManager`]]
- :xref-IERC1820Registry-getManager: xref:introspection.adoc#IERC1820Registry-getManager-address-
- :IERC1820Registry-setInterfaceImplementer: pass:normal[xref:introspection.adoc#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-[`IERC1820Registry.setInterfaceImplementer`]]
- :xref-IERC1820Registry-setInterfaceImplementer: xref:introspection.adoc#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-
- :IERC1820Registry-getInterfaceImplementer: pass:normal[xref:introspection.adoc#IERC1820Registry-getInterfaceImplementer-address-bytes32-[`IERC1820Registry.getInterfaceImplementer`]]
- :xref-IERC1820Registry-getInterfaceImplementer: xref:introspection.adoc#IERC1820Registry-getInterfaceImplementer-address-bytes32-
- :IERC1820Registry-interfaceHash: pass:normal[xref:introspection.adoc#IERC1820Registry-interfaceHash-string-[`IERC1820Registry.interfaceHash`]]
- :xref-IERC1820Registry-interfaceHash: xref:introspection.adoc#IERC1820Registry-interfaceHash-string-
- :IERC1820Registry-updateERC165Cache: pass:normal[xref:introspection.adoc#IERC1820Registry-updateERC165Cache-address-bytes4-[`IERC1820Registry.updateERC165Cache`]]
- :xref-IERC1820Registry-updateERC165Cache: xref:introspection.adoc#IERC1820Registry-updateERC165Cache-address-bytes4-
- :IERC1820Registry-implementsERC165Interface: pass:normal[xref:introspection.adoc#IERC1820Registry-implementsERC165Interface-address-bytes4-[`IERC1820Registry.implementsERC165Interface`]]
- :xref-IERC1820Registry-implementsERC165Interface: xref:introspection.adoc#IERC1820Registry-implementsERC165Interface-address-bytes4-
- :IERC1820Registry-implementsERC165InterfaceNoCache: pass:normal[xref:introspection.adoc#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-[`IERC1820Registry.implementsERC165InterfaceNoCache`]]
- :xref-IERC1820Registry-implementsERC165InterfaceNoCache: xref:introspection.adoc#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-
- :IERC1820Registry-InterfaceImplementerSet: pass:normal[xref:introspection.adoc#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-[`IERC1820Registry.InterfaceImplementerSet`]]
- :xref-IERC1820Registry-InterfaceImplementerSet: xref:introspection.adoc#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-
- :IERC1820Registry-ManagerChanged: pass:normal[xref:introspection.adoc#IERC1820Registry-ManagerChanged-address-address-[`IERC1820Registry.ManagerChanged`]]
- :xref-IERC1820Registry-ManagerChanged: xref:introspection.adoc#IERC1820Registry-ManagerChanged-address-address-
- :Pausable: pass:normal[xref:lifecycle.adoc#Pausable[`Pausable`]]
- :xref-Pausable: xref:lifecycle.adoc#Pausable
- :Pausable-whenNotPaused: pass:normal[xref:lifecycle.adoc#Pausable-whenNotPaused--[`Pausable.whenNotPaused`]]
- :xref-Pausable-whenNotPaused: xref:lifecycle.adoc#Pausable-whenNotPaused--
- :Pausable-whenPaused: pass:normal[xref:lifecycle.adoc#Pausable-whenPaused--[`Pausable.whenPaused`]]
- :xref-Pausable-whenPaused: xref:lifecycle.adoc#Pausable-whenPaused--
- :Pausable-constructor: pass:normal[xref:lifecycle.adoc#Pausable-constructor--[`Pausable.constructor`]]
- :xref-Pausable-constructor: xref:lifecycle.adoc#Pausable-constructor--
- :Pausable-paused: pass:normal[xref:lifecycle.adoc#Pausable-paused--[`Pausable.paused`]]
- :xref-Pausable-paused: xref:lifecycle.adoc#Pausable-paused--
- :Pausable-pause: pass:normal[xref:lifecycle.adoc#Pausable-pause--[`Pausable.pause`]]
- :xref-Pausable-pause: xref:lifecycle.adoc#Pausable-pause--
- :Pausable-unpause: pass:normal[xref:lifecycle.adoc#Pausable-unpause--[`Pausable.unpause`]]
- :xref-Pausable-unpause: xref:lifecycle.adoc#Pausable-unpause--
- :Pausable-Paused: pass:normal[xref:lifecycle.adoc#Pausable-Paused-address-[`Pausable.Paused`]]
- :xref-Pausable-Paused: xref:lifecycle.adoc#Pausable-Paused-address-
- :Pausable-Unpaused: pass:normal[xref:lifecycle.adoc#Pausable-Unpaused-address-[`Pausable.Unpaused`]]
- :xref-Pausable-Unpaused: xref:lifecycle.adoc#Pausable-Unpaused-address-
- :Ownable: pass:normal[xref:ownership.adoc#Ownable[`Ownable`]]
- :xref-Ownable: xref:ownership.adoc#Ownable
- :Ownable-onlyOwner: pass:normal[xref:ownership.adoc#Ownable-onlyOwner--[`Ownable.onlyOwner`]]
- :xref-Ownable-onlyOwner: xref:ownership.adoc#Ownable-onlyOwner--
- :Ownable-constructor: pass:normal[xref:ownership.adoc#Ownable-constructor--[`Ownable.constructor`]]
- :xref-Ownable-constructor: xref:ownership.adoc#Ownable-constructor--
- :Ownable-owner: pass:normal[xref:ownership.adoc#Ownable-owner--[`Ownable.owner`]]
- :xref-Ownable-owner: xref:ownership.adoc#Ownable-owner--
- :Ownable-isOwner: pass:normal[xref:ownership.adoc#Ownable-isOwner--[`Ownable.isOwner`]]
- :xref-Ownable-isOwner: xref:ownership.adoc#Ownable-isOwner--
- :Ownable-renounceOwnership: pass:normal[xref:ownership.adoc#Ownable-renounceOwnership--[`Ownable.renounceOwnership`]]
- :xref-Ownable-renounceOwnership: xref:ownership.adoc#Ownable-renounceOwnership--
- :Ownable-transferOwnership: pass:normal[xref:ownership.adoc#Ownable-transferOwnership-address-[`Ownable.transferOwnership`]]
- :xref-Ownable-transferOwnership: xref:ownership.adoc#Ownable-transferOwnership-address-
- :Ownable-_transferOwnership: pass:normal[xref:ownership.adoc#Ownable-_transferOwnership-address-[`Ownable._transferOwnership`]]
- :xref-Ownable-_transferOwnership: xref:ownership.adoc#Ownable-_transferOwnership-address-
- :Ownable-OwnershipTransferred: pass:normal[xref:ownership.adoc#Ownable-OwnershipTransferred-address-address-[`Ownable.OwnershipTransferred`]]
- :xref-Ownable-OwnershipTransferred: xref:ownership.adoc#Ownable-OwnershipTransferred-address-address-
- :Secondary: pass:normal[xref:ownership.adoc#Secondary[`Secondary`]]
- :xref-Secondary: xref:ownership.adoc#Secondary
- :Secondary-onlyPrimary: pass:normal[xref:ownership.adoc#Secondary-onlyPrimary--[`Secondary.onlyPrimary`]]
- :xref-Secondary-onlyPrimary: xref:ownership.adoc#Secondary-onlyPrimary--
- :Secondary-constructor: pass:normal[xref:ownership.adoc#Secondary-constructor--[`Secondary.constructor`]]
- :xref-Secondary-constructor: xref:ownership.adoc#Secondary-constructor--
- :Secondary-primary: pass:normal[xref:ownership.adoc#Secondary-primary--[`Secondary.primary`]]
- :xref-Secondary-primary: xref:ownership.adoc#Secondary-primary--
- :Secondary-transferPrimary: pass:normal[xref:ownership.adoc#Secondary-transferPrimary-address-[`Secondary.transferPrimary`]]
- :xref-Secondary-transferPrimary: xref:ownership.adoc#Secondary-transferPrimary-address-
- :Secondary-PrimaryTransferred: pass:normal[xref:ownership.adoc#Secondary-PrimaryTransferred-address-[`Secondary.PrimaryTransferred`]]
- :xref-Secondary-PrimaryTransferred: xref:ownership.adoc#Secondary-PrimaryTransferred-address-
- :Math: pass:normal[xref:math.adoc#Math[`Math`]]
- :xref-Math: xref:math.adoc#Math
- :Math-max: pass:normal[xref:math.adoc#Math-max-uint256-uint256-[`Math.max`]]
- :xref-Math-max: xref:math.adoc#Math-max-uint256-uint256-
- :Math-min: pass:normal[xref:math.adoc#Math-min-uint256-uint256-[`Math.min`]]
- :xref-Math-min: xref:math.adoc#Math-min-uint256-uint256-
- :Math-average: pass:normal[xref:math.adoc#Math-average-uint256-uint256-[`Math.average`]]
- :xref-Math-average: xref:math.adoc#Math-average-uint256-uint256-
- :SafeMath: pass:normal[xref:math.adoc#SafeMath[`SafeMath`]]
- :xref-SafeMath: xref:math.adoc#SafeMath
- :SafeMath-add: pass:normal[xref:math.adoc#SafeMath-add-uint256-uint256-[`SafeMath.add`]]
- :xref-SafeMath-add: xref:math.adoc#SafeMath-add-uint256-uint256-
- :SafeMath-sub: pass:normal[xref:math.adoc#SafeMath-sub-uint256-uint256-[`SafeMath.sub`]]
- :xref-SafeMath-sub: xref:math.adoc#SafeMath-sub-uint256-uint256-
- :SafeMath-sub: pass:normal[xref:math.adoc#SafeMath-sub-uint256-uint256-string-[`SafeMath.sub`]]
- :xref-SafeMath-sub: xref:math.adoc#SafeMath-sub-uint256-uint256-string-
- :SafeMath-mul: pass:normal[xref:math.adoc#SafeMath-mul-uint256-uint256-[`SafeMath.mul`]]
- :xref-SafeMath-mul: xref:math.adoc#SafeMath-mul-uint256-uint256-
- :SafeMath-div: pass:normal[xref:math.adoc#SafeMath-div-uint256-uint256-[`SafeMath.div`]]
- :xref-SafeMath-div: xref:math.adoc#SafeMath-div-uint256-uint256-
- :SafeMath-div: pass:normal[xref:math.adoc#SafeMath-div-uint256-uint256-string-[`SafeMath.div`]]
- :xref-SafeMath-div: xref:math.adoc#SafeMath-div-uint256-uint256-string-
- :SafeMath-mod: pass:normal[xref:math.adoc#SafeMath-mod-uint256-uint256-[`SafeMath.mod`]]
- :xref-SafeMath-mod: xref:math.adoc#SafeMath-mod-uint256-uint256-
- :SafeMath-mod: pass:normal[xref:math.adoc#SafeMath-mod-uint256-uint256-string-[`SafeMath.mod`]]
- :xref-SafeMath-mod: xref:math.adoc#SafeMath-mod-uint256-uint256-string-
- :PaymentSplitter: pass:normal[xref:payment.adoc#PaymentSplitter[`PaymentSplitter`]]
- :xref-PaymentSplitter: xref:payment.adoc#PaymentSplitter
- :PaymentSplitter-constructor: pass:normal[xref:payment.adoc#PaymentSplitter-constructor-address---uint256---[`PaymentSplitter.constructor`]]
- :xref-PaymentSplitter-constructor: xref:payment.adoc#PaymentSplitter-constructor-address---uint256---
- :PaymentSplitter-fallback: pass:normal[xref:payment.adoc#PaymentSplitter-fallback--[`PaymentSplitter.fallback`]]
- :xref-PaymentSplitter-fallback: xref:payment.adoc#PaymentSplitter-fallback--
- :PaymentSplitter-totalShares: pass:normal[xref:payment.adoc#PaymentSplitter-totalShares--[`PaymentSplitter.totalShares`]]
- :xref-PaymentSplitter-totalShares: xref:payment.adoc#PaymentSplitter-totalShares--
- :PaymentSplitter-totalReleased: pass:normal[xref:payment.adoc#PaymentSplitter-totalReleased--[`PaymentSplitter.totalReleased`]]
- :xref-PaymentSplitter-totalReleased: xref:payment.adoc#PaymentSplitter-totalReleased--
- :PaymentSplitter-shares: pass:normal[xref:payment.adoc#PaymentSplitter-shares-address-[`PaymentSplitter.shares`]]
- :xref-PaymentSplitter-shares: xref:payment.adoc#PaymentSplitter-shares-address-
- :PaymentSplitter-released: pass:normal[xref:payment.adoc#PaymentSplitter-released-address-[`PaymentSplitter.released`]]
- :xref-PaymentSplitter-released: xref:payment.adoc#PaymentSplitter-released-address-
- :PaymentSplitter-payee: pass:normal[xref:payment.adoc#PaymentSplitter-payee-uint256-[`PaymentSplitter.payee`]]
- :xref-PaymentSplitter-payee: xref:payment.adoc#PaymentSplitter-payee-uint256-
- :PaymentSplitter-release: pass:normal[xref:payment.adoc#PaymentSplitter-release-address-payable-[`PaymentSplitter.release`]]
- :xref-PaymentSplitter-release: xref:payment.adoc#PaymentSplitter-release-address-payable-
- :PaymentSplitter-PayeeAdded: pass:normal[xref:payment.adoc#PaymentSplitter-PayeeAdded-address-uint256-[`PaymentSplitter.PayeeAdded`]]
- :xref-PaymentSplitter-PayeeAdded: xref:payment.adoc#PaymentSplitter-PayeeAdded-address-uint256-
- :PaymentSplitter-PaymentReleased: pass:normal[xref:payment.adoc#PaymentSplitter-PaymentReleased-address-uint256-[`PaymentSplitter.PaymentReleased`]]
- :xref-PaymentSplitter-PaymentReleased: xref:payment.adoc#PaymentSplitter-PaymentReleased-address-uint256-
- :PaymentSplitter-PaymentReceived: pass:normal[xref:payment.adoc#PaymentSplitter-PaymentReceived-address-uint256-[`PaymentSplitter.PaymentReceived`]]
- :xref-PaymentSplitter-PaymentReceived: xref:payment.adoc#PaymentSplitter-PaymentReceived-address-uint256-
- :PullPayment: pass:normal[xref:payment.adoc#PullPayment[`PullPayment`]]
- :xref-PullPayment: xref:payment.adoc#PullPayment
- :PullPayment-constructor: pass:normal[xref:payment.adoc#PullPayment-constructor--[`PullPayment.constructor`]]
- :xref-PullPayment-constructor: xref:payment.adoc#PullPayment-constructor--
- :PullPayment-withdrawPayments: pass:normal[xref:payment.adoc#PullPayment-withdrawPayments-address-payable-[`PullPayment.withdrawPayments`]]
- :xref-PullPayment-withdrawPayments: xref:payment.adoc#PullPayment-withdrawPayments-address-payable-
- :PullPayment-withdrawPaymentsWithGas: pass:normal[xref:payment.adoc#PullPayment-withdrawPaymentsWithGas-address-payable-[`PullPayment.withdrawPaymentsWithGas`]]
- :xref-PullPayment-withdrawPaymentsWithGas: xref:payment.adoc#PullPayment-withdrawPaymentsWithGas-address-payable-
- :PullPayment-payments: pass:normal[xref:payment.adoc#PullPayment-payments-address-[`PullPayment.payments`]]
- :xref-PullPayment-payments: xref:payment.adoc#PullPayment-payments-address-
- :PullPayment-_asyncTransfer: pass:normal[xref:payment.adoc#PullPayment-_asyncTransfer-address-uint256-[`PullPayment._asyncTransfer`]]
- :xref-PullPayment-_asyncTransfer: xref:payment.adoc#PullPayment-_asyncTransfer-address-uint256-
- :ConditionalEscrow: pass:normal[xref:payment.adoc#ConditionalEscrow[`ConditionalEscrow`]]
- :xref-ConditionalEscrow: xref:payment.adoc#ConditionalEscrow
- :ConditionalEscrow-withdrawalAllowed: pass:normal[xref:payment.adoc#ConditionalEscrow-withdrawalAllowed-address-[`ConditionalEscrow.withdrawalAllowed`]]
- :xref-ConditionalEscrow-withdrawalAllowed: xref:payment.adoc#ConditionalEscrow-withdrawalAllowed-address-
- :ConditionalEscrow-withdraw: pass:normal[xref:payment.adoc#ConditionalEscrow-withdraw-address-payable-[`ConditionalEscrow.withdraw`]]
- :xref-ConditionalEscrow-withdraw: xref:payment.adoc#ConditionalEscrow-withdraw-address-payable-
- :Escrow: pass:normal[xref:payment.adoc#Escrow[`Escrow`]]
- :xref-Escrow: xref:payment.adoc#Escrow
- :Escrow-depositsOf: pass:normal[xref:payment.adoc#Escrow-depositsOf-address-[`Escrow.depositsOf`]]
- :xref-Escrow-depositsOf: xref:payment.adoc#Escrow-depositsOf-address-
- :Escrow-deposit: pass:normal[xref:payment.adoc#Escrow-deposit-address-[`Escrow.deposit`]]
- :xref-Escrow-deposit: xref:payment.adoc#Escrow-deposit-address-
- :Escrow-withdraw: pass:normal[xref:payment.adoc#Escrow-withdraw-address-payable-[`Escrow.withdraw`]]
- :xref-Escrow-withdraw: xref:payment.adoc#Escrow-withdraw-address-payable-
- :Escrow-withdrawWithGas: pass:normal[xref:payment.adoc#Escrow-withdrawWithGas-address-payable-[`Escrow.withdrawWithGas`]]
- :xref-Escrow-withdrawWithGas: xref:payment.adoc#Escrow-withdrawWithGas-address-payable-
- :Escrow-Deposited: pass:normal[xref:payment.adoc#Escrow-Deposited-address-uint256-[`Escrow.Deposited`]]
- :xref-Escrow-Deposited: xref:payment.adoc#Escrow-Deposited-address-uint256-
- :Escrow-Withdrawn: pass:normal[xref:payment.adoc#Escrow-Withdrawn-address-uint256-[`Escrow.Withdrawn`]]
- :xref-Escrow-Withdrawn: xref:payment.adoc#Escrow-Withdrawn-address-uint256-
- :RefundEscrow: pass:normal[xref:payment.adoc#RefundEscrow[`RefundEscrow`]]
- :xref-RefundEscrow: xref:payment.adoc#RefundEscrow
- :RefundEscrow-constructor: pass:normal[xref:payment.adoc#RefundEscrow-constructor-address-payable-[`RefundEscrow.constructor`]]
- :xref-RefundEscrow-constructor: xref:payment.adoc#RefundEscrow-constructor-address-payable-
- :RefundEscrow-state: pass:normal[xref:payment.adoc#RefundEscrow-state--[`RefundEscrow.state`]]
- :xref-RefundEscrow-state: xref:payment.adoc#RefundEscrow-state--
- :RefundEscrow-beneficiary: pass:normal[xref:payment.adoc#RefundEscrow-beneficiary--[`RefundEscrow.beneficiary`]]
- :xref-RefundEscrow-beneficiary: xref:payment.adoc#RefundEscrow-beneficiary--
- :RefundEscrow-deposit: pass:normal[xref:payment.adoc#RefundEscrow-deposit-address-[`RefundEscrow.deposit`]]
- :xref-RefundEscrow-deposit: xref:payment.adoc#RefundEscrow-deposit-address-
- :RefundEscrow-close: pass:normal[xref:payment.adoc#RefundEscrow-close--[`RefundEscrow.close`]]
- :xref-RefundEscrow-close: xref:payment.adoc#RefundEscrow-close--
- :RefundEscrow-enableRefunds: pass:normal[xref:payment.adoc#RefundEscrow-enableRefunds--[`RefundEscrow.enableRefunds`]]
- :xref-RefundEscrow-enableRefunds: xref:payment.adoc#RefundEscrow-enableRefunds--
- :RefundEscrow-beneficiaryWithdraw: pass:normal[xref:payment.adoc#RefundEscrow-beneficiaryWithdraw--[`RefundEscrow.beneficiaryWithdraw`]]
- :xref-RefundEscrow-beneficiaryWithdraw: xref:payment.adoc#RefundEscrow-beneficiaryWithdraw--
- :RefundEscrow-withdrawalAllowed: pass:normal[xref:payment.adoc#RefundEscrow-withdrawalAllowed-address-[`RefundEscrow.withdrawalAllowed`]]
- :xref-RefundEscrow-withdrawalAllowed: xref:payment.adoc#RefundEscrow-withdrawalAllowed-address-
- :RefundEscrow-RefundsClosed: pass:normal[xref:payment.adoc#RefundEscrow-RefundsClosed--[`RefundEscrow.RefundsClosed`]]
- :xref-RefundEscrow-RefundsClosed: xref:payment.adoc#RefundEscrow-RefundsClosed--
- :RefundEscrow-RefundsEnabled: pass:normal[xref:payment.adoc#RefundEscrow-RefundsEnabled--[`RefundEscrow.RefundsEnabled`]]
- :xref-RefundEscrow-RefundsEnabled: xref:payment.adoc#RefundEscrow-RefundsEnabled--
- :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: xref:utils.adoc#Address-isContract-address-
- :Address-toPayable: pass:normal[xref:utils.adoc#Address-toPayable-address-[`Address.toPayable`]]
- :xref-Address-toPayable: xref:utils.adoc#Address-toPayable-address-
- :Address-sendValue: pass:normal[xref:utils.adoc#Address-sendValue-address-payable-uint256-[`Address.sendValue`]]
- :xref-Address-sendValue: xref:utils.adoc#Address-sendValue-address-payable-uint256-
- :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: xref:utils.adoc#Arrays-findUpperBound-uint256---uint256-
- :Create2: pass:normal[xref:utils.adoc#Create2[`Create2`]]
- :xref-Create2: xref:utils.adoc#Create2
- :Create2-deploy: pass:normal[xref:utils.adoc#Create2-deploy-bytes32-bytes-[`Create2.deploy`]]
- :xref-Create2-deploy: xref:utils.adoc#Create2-deploy-bytes32-bytes-
- :Create2-computeAddress: pass:normal[xref:utils.adoc#Create2-computeAddress-bytes32-bytes-[`Create2.computeAddress`]]
- :xref-Create2-computeAddress: xref:utils.adoc#Create2-computeAddress-bytes32-bytes-
- :Create2-computeAddress: pass:normal[xref:utils.adoc#Create2-computeAddress-bytes32-bytes-address-[`Create2.computeAddress`]]
- :xref-Create2-computeAddress: xref:utils.adoc#Create2-computeAddress-bytes32-bytes-address-
- :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-AddressSet-address-[`EnumerableSet.add`]]
- :xref-EnumerableSet-add: 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: 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: xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-
- :EnumerableSet-enumerate: pass:normal[xref:utils.adoc#EnumerableSet-enumerate-struct-EnumerableSet-AddressSet-[`EnumerableSet.enumerate`]]
- :xref-EnumerableSet-enumerate: xref:utils.adoc#EnumerableSet-enumerate-struct-EnumerableSet-AddressSet-
- :EnumerableSet-length: pass:normal[xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-AddressSet-[`EnumerableSet.length`]]
- :xref-EnumerableSet-length: xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-AddressSet-
- :EnumerableSet-get: pass:normal[xref:utils.adoc#EnumerableSet-get-struct-EnumerableSet-AddressSet-uint256-[`EnumerableSet.get`]]
- :xref-EnumerableSet-get: xref:utils.adoc#EnumerableSet-get-struct-EnumerableSet-AddressSet-uint256-
- :ReentrancyGuard: pass:normal[xref:utils.adoc#ReentrancyGuard[`ReentrancyGuard`]]
- :xref-ReentrancyGuard: xref:utils.adoc#ReentrancyGuard
- :ReentrancyGuard-nonReentrant: pass:normal[xref:utils.adoc#ReentrancyGuard-nonReentrant--[`ReentrancyGuard.nonReentrant`]]
- :xref-ReentrancyGuard-nonReentrant: xref:utils.adoc#ReentrancyGuard-nonReentrant--
- :ReentrancyGuard-constructor: pass:normal[xref:utils.adoc#ReentrancyGuard-constructor--[`ReentrancyGuard.constructor`]]
- :xref-ReentrancyGuard-constructor: xref:utils.adoc#ReentrancyGuard-constructor--
- :SafeCast: pass:normal[xref:utils.adoc#SafeCast[`SafeCast`]]
- :xref-SafeCast: xref:utils.adoc#SafeCast
- :SafeCast-toUint128: pass:normal[xref:utils.adoc#SafeCast-toUint128-uint256-[`SafeCast.toUint128`]]
- :xref-SafeCast-toUint128: xref:utils.adoc#SafeCast-toUint128-uint256-
- :SafeCast-toUint64: pass:normal[xref:utils.adoc#SafeCast-toUint64-uint256-[`SafeCast.toUint64`]]
- :xref-SafeCast-toUint64: xref:utils.adoc#SafeCast-toUint64-uint256-
- :SafeCast-toUint32: pass:normal[xref:utils.adoc#SafeCast-toUint32-uint256-[`SafeCast.toUint32`]]
- :xref-SafeCast-toUint32: xref:utils.adoc#SafeCast-toUint32-uint256-
- :SafeCast-toUint16: pass:normal[xref:utils.adoc#SafeCast-toUint16-uint256-[`SafeCast.toUint16`]]
- :xref-SafeCast-toUint16: xref:utils.adoc#SafeCast-toUint16-uint256-
- :SafeCast-toUint8: pass:normal[xref:utils.adoc#SafeCast-toUint8-uint256-[`SafeCast.toUint8`]]
- :xref-SafeCast-toUint8: xref:utils.adoc#SafeCast-toUint8-uint256-
- :ERC721: pass:normal[xref:token/ERC721.adoc#ERC721[`ERC721`]]
- :xref-ERC721: xref:token/ERC721.adoc#ERC721
- :ERC721-balanceOf: pass:normal[xref:token/ERC721.adoc#ERC721-balanceOf-address-[`ERC721.balanceOf`]]
- :xref-ERC721-balanceOf: xref:token/ERC721.adoc#ERC721-balanceOf-address-
- :ERC721-ownerOf: pass:normal[xref:token/ERC721.adoc#ERC721-ownerOf-uint256-[`ERC721.ownerOf`]]
- :xref-ERC721-ownerOf: xref:token/ERC721.adoc#ERC721-ownerOf-uint256-
- :ERC721-approve: pass:normal[xref:token/ERC721.adoc#ERC721-approve-address-uint256-[`ERC721.approve`]]
- :xref-ERC721-approve: xref:token/ERC721.adoc#ERC721-approve-address-uint256-
- :ERC721-getApproved: pass:normal[xref:token/ERC721.adoc#ERC721-getApproved-uint256-[`ERC721.getApproved`]]
- :xref-ERC721-getApproved: xref:token/ERC721.adoc#ERC721-getApproved-uint256-
- :ERC721-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#ERC721-setApprovalForAll-address-bool-[`ERC721.setApprovalForAll`]]
- :xref-ERC721-setApprovalForAll: 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: 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: 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: 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: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-bytes-
- :ERC721-_safeTransferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-_safeTransferFrom-address-address-uint256-bytes-[`ERC721._safeTransferFrom`]]
- :xref-ERC721-_safeTransferFrom: xref:token/ERC721.adoc#ERC721-_safeTransferFrom-address-address-uint256-bytes-
- :ERC721-_exists: pass:normal[xref:token/ERC721.adoc#ERC721-_exists-uint256-[`ERC721._exists`]]
- :xref-ERC721-_exists: xref:token/ERC721.adoc#ERC721-_exists-uint256-
- :ERC721-_isApprovedOrOwner: pass:normal[xref:token/ERC721.adoc#ERC721-_isApprovedOrOwner-address-uint256-[`ERC721._isApprovedOrOwner`]]
- :xref-ERC721-_isApprovedOrOwner: 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: 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: 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: xref:token/ERC721.adoc#ERC721-_mint-address-uint256-
- :ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-address-uint256-[`ERC721._burn`]]
- :xref-ERC721-_burn: xref:token/ERC721.adoc#ERC721-_burn-address-uint256-
- :ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-uint256-[`ERC721._burn`]]
- :xref-ERC721-_burn: xref:token/ERC721.adoc#ERC721-_burn-uint256-
- :ERC721-_transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-_transferFrom-address-address-uint256-[`ERC721._transferFrom`]]
- :xref-ERC721-_transferFrom: xref:token/ERC721.adoc#ERC721-_transferFrom-address-address-uint256-
- :ERC721-_checkOnERC721Received: pass:normal[xref:token/ERC721.adoc#ERC721-_checkOnERC721Received-address-address-uint256-bytes-[`ERC721._checkOnERC721Received`]]
- :xref-ERC721-_checkOnERC721Received: xref:token/ERC721.adoc#ERC721-_checkOnERC721Received-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: xref:token/ERC721.adoc#ERC721Burnable-burn-uint256-
- :ERC721Enumerable: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable[`ERC721Enumerable`]]
- :xref-ERC721Enumerable: xref:token/ERC721.adoc#ERC721Enumerable
- :ERC721Enumerable-constructor: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-constructor--[`ERC721Enumerable.constructor`]]
- :xref-ERC721Enumerable-constructor: xref:token/ERC721.adoc#ERC721Enumerable-constructor--
- :ERC721Enumerable-tokenOfOwnerByIndex: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`ERC721Enumerable.tokenOfOwnerByIndex`]]
- :xref-ERC721Enumerable-tokenOfOwnerByIndex: 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: xref:token/ERC721.adoc#ERC721Enumerable-tokenByIndex-uint256-
- :ERC721Enumerable-_transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_transferFrom-address-address-uint256-[`ERC721Enumerable._transferFrom`]]
- :xref-ERC721Enumerable-_transferFrom: xref:token/ERC721.adoc#ERC721Enumerable-_transferFrom-address-address-uint256-
- :ERC721Enumerable-_mint: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_mint-address-uint256-[`ERC721Enumerable._mint`]]
- :xref-ERC721Enumerable-_mint: xref:token/ERC721.adoc#ERC721Enumerable-_mint-address-uint256-
- :ERC721Enumerable-_burn: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_burn-address-uint256-[`ERC721Enumerable._burn`]]
- :xref-ERC721Enumerable-_burn: xref:token/ERC721.adoc#ERC721Enumerable-_burn-address-uint256-
- :ERC721Enumerable-_tokensOfOwner: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_tokensOfOwner-address-[`ERC721Enumerable._tokensOfOwner`]]
- :xref-ERC721Enumerable-_tokensOfOwner: xref:token/ERC721.adoc#ERC721Enumerable-_tokensOfOwner-address-
- :ERC721Full: pass:normal[xref:token/ERC721.adoc#ERC721Full[`ERC721Full`]]
- :xref-ERC721Full: xref:token/ERC721.adoc#ERC721Full
- :ERC721Full-constructor: pass:normal[xref:token/ERC721.adoc#ERC721Full-constructor-string-string-[`ERC721Full.constructor`]]
- :xref-ERC721Full-constructor: xref:token/ERC721.adoc#ERC721Full-constructor-string-string-
- :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: xref:token/ERC721.adoc#ERC721Holder-onERC721Received-address-address-uint256-bytes-
- :ERC721Metadata: pass:normal[xref:token/ERC721.adoc#ERC721Metadata[`ERC721Metadata`]]
- :xref-ERC721Metadata: xref:token/ERC721.adoc#ERC721Metadata
- :ERC721Metadata-constructor: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-constructor-string-string-[`ERC721Metadata.constructor`]]
- :xref-ERC721Metadata-constructor: xref:token/ERC721.adoc#ERC721Metadata-constructor-string-string-
- :ERC721Metadata-name: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-name--[`ERC721Metadata.name`]]
- :xref-ERC721Metadata-name: xref:token/ERC721.adoc#ERC721Metadata-name--
- :ERC721Metadata-symbol: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-symbol--[`ERC721Metadata.symbol`]]
- :xref-ERC721Metadata-symbol: xref:token/ERC721.adoc#ERC721Metadata-symbol--
- :ERC721Metadata-tokenURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-tokenURI-uint256-[`ERC721Metadata.tokenURI`]]
- :xref-ERC721Metadata-tokenURI: xref:token/ERC721.adoc#ERC721Metadata-tokenURI-uint256-
- :ERC721Metadata-_setTokenURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-_setTokenURI-uint256-string-[`ERC721Metadata._setTokenURI`]]
- :xref-ERC721Metadata-_setTokenURI: xref:token/ERC721.adoc#ERC721Metadata-_setTokenURI-uint256-string-
- :ERC721Metadata-_setBaseURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-_setBaseURI-string-[`ERC721Metadata._setBaseURI`]]
- :xref-ERC721Metadata-_setBaseURI: xref:token/ERC721.adoc#ERC721Metadata-_setBaseURI-string-
- :ERC721Metadata-baseURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-baseURI--[`ERC721Metadata.baseURI`]]
- :xref-ERC721Metadata-baseURI: xref:token/ERC721.adoc#ERC721Metadata-baseURI--
- :ERC721Metadata-_burn: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-_burn-address-uint256-[`ERC721Metadata._burn`]]
- :xref-ERC721Metadata-_burn: xref:token/ERC721.adoc#ERC721Metadata-_burn-address-uint256-
- :ERC721MetadataMintable: pass:normal[xref:token/ERC721.adoc#ERC721MetadataMintable[`ERC721MetadataMintable`]]
- :xref-ERC721MetadataMintable: xref:token/ERC721.adoc#ERC721MetadataMintable
- :ERC721MetadataMintable-mintWithTokenURI: pass:normal[xref:token/ERC721.adoc#ERC721MetadataMintable-mintWithTokenURI-address-uint256-string-[`ERC721MetadataMintable.mintWithTokenURI`]]
- :xref-ERC721MetadataMintable-mintWithTokenURI: xref:token/ERC721.adoc#ERC721MetadataMintable-mintWithTokenURI-address-uint256-string-
- :ERC721Mintable: pass:normal[xref:token/ERC721.adoc#ERC721Mintable[`ERC721Mintable`]]
- :xref-ERC721Mintable: xref:token/ERC721.adoc#ERC721Mintable
- :ERC721Mintable-mint: pass:normal[xref:token/ERC721.adoc#ERC721Mintable-mint-address-uint256-[`ERC721Mintable.mint`]]
- :xref-ERC721Mintable-mint: xref:token/ERC721.adoc#ERC721Mintable-mint-address-uint256-
- :ERC721Mintable-safeMint: pass:normal[xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-[`ERC721Mintable.safeMint`]]
- :xref-ERC721Mintable-safeMint: xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-
- :ERC721Mintable-safeMint: pass:normal[xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-bytes-[`ERC721Mintable.safeMint`]]
- :xref-ERC721Mintable-safeMint: xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-bytes-
- :ERC721Pausable: pass:normal[xref:token/ERC721.adoc#ERC721Pausable[`ERC721Pausable`]]
- :xref-ERC721Pausable: xref:token/ERC721.adoc#ERC721Pausable
- :ERC721Pausable-approve: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-approve-address-uint256-[`ERC721Pausable.approve`]]
- :xref-ERC721Pausable-approve: xref:token/ERC721.adoc#ERC721Pausable-approve-address-uint256-
- :ERC721Pausable-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-setApprovalForAll-address-bool-[`ERC721Pausable.setApprovalForAll`]]
- :xref-ERC721Pausable-setApprovalForAll: xref:token/ERC721.adoc#ERC721Pausable-setApprovalForAll-address-bool-
- :ERC721Pausable-_transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-_transferFrom-address-address-uint256-[`ERC721Pausable._transferFrom`]]
- :xref-ERC721Pausable-_transferFrom: xref:token/ERC721.adoc#ERC721Pausable-_transferFrom-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: xref:token/ERC721.adoc#IERC721-balanceOf-address-
- :IERC721-ownerOf: pass:normal[xref:token/ERC721.adoc#IERC721-ownerOf-uint256-[`IERC721.ownerOf`]]
- :xref-IERC721-ownerOf: 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: 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: 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: xref:token/ERC721.adoc#IERC721-approve-address-uint256-
- :IERC721-getApproved: pass:normal[xref:token/ERC721.adoc#IERC721-getApproved-uint256-[`IERC721.getApproved`]]
- :xref-IERC721-getApproved: xref:token/ERC721.adoc#IERC721-getApproved-uint256-
- :IERC721-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#IERC721-setApprovalForAll-address-bool-[`IERC721.setApprovalForAll`]]
- :xref-IERC721-setApprovalForAll: 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: 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: 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: 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: 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: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
- :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: xref:token/ERC721.adoc#IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-
- :IERC721Enumerable-tokenByIndex: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-tokenByIndex-uint256-[`IERC721Enumerable.tokenByIndex`]]
- :xref-IERC721Enumerable-tokenByIndex: xref:token/ERC721.adoc#IERC721Enumerable-tokenByIndex-uint256-
- :IERC721Full: pass:normal[xref:token/ERC721.adoc#IERC721Full[`IERC721Full`]]
- :xref-IERC721Full: xref:token/ERC721.adoc#IERC721Full
- :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: xref:token/ERC721.adoc#IERC721Metadata-tokenURI-uint256-
- :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: xref:token/ERC721.adoc#IERC721Receiver-onERC721Received-address-address-uint256-bytes-
- :ERC20: pass:normal[xref:token/ERC20.adoc#ERC20[`ERC20`]]
- :xref-ERC20: xref:token/ERC20.adoc#ERC20
- :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: xref:token/ERC20.adoc#ERC20-balanceOf-address-
- :ERC20-transfer: pass:normal[xref:token/ERC20.adoc#ERC20-transfer-address-uint256-[`ERC20.transfer`]]
- :xref-ERC20-transfer: 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: 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: 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: 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: 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: 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: 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: 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: 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: xref:token/ERC20.adoc#ERC20-_approve-address-address-uint256-
- :ERC20-_burnFrom: pass:normal[xref:token/ERC20.adoc#ERC20-_burnFrom-address-uint256-[`ERC20._burnFrom`]]
- :xref-ERC20-_burnFrom: xref:token/ERC20.adoc#ERC20-_burnFrom-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: xref:token/ERC20.adoc#ERC20Burnable-burn-uint256-
- :ERC20Burnable-burnFrom: pass:normal[xref:token/ERC20.adoc#ERC20Burnable-burnFrom-address-uint256-[`ERC20Burnable.burnFrom`]]
- :xref-ERC20Burnable-burnFrom: 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: 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: xref:token/ERC20.adoc#ERC20Capped-_mint-address-uint256-
- :ERC20Detailed: pass:normal[xref:token/ERC20.adoc#ERC20Detailed[`ERC20Detailed`]]
- :xref-ERC20Detailed: xref:token/ERC20.adoc#ERC20Detailed
- :ERC20Detailed-constructor: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-constructor-string-string-uint8-[`ERC20Detailed.constructor`]]
- :xref-ERC20Detailed-constructor: xref:token/ERC20.adoc#ERC20Detailed-constructor-string-string-uint8-
- :ERC20Detailed-name: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-name--[`ERC20Detailed.name`]]
- :xref-ERC20Detailed-name: xref:token/ERC20.adoc#ERC20Detailed-name--
- :ERC20Detailed-symbol: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-symbol--[`ERC20Detailed.symbol`]]
- :xref-ERC20Detailed-symbol: xref:token/ERC20.adoc#ERC20Detailed-symbol--
- :ERC20Detailed-decimals: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-decimals--[`ERC20Detailed.decimals`]]
- :xref-ERC20Detailed-decimals: xref:token/ERC20.adoc#ERC20Detailed-decimals--
- :ERC20Mintable: pass:normal[xref:token/ERC20.adoc#ERC20Mintable[`ERC20Mintable`]]
- :xref-ERC20Mintable: xref:token/ERC20.adoc#ERC20Mintable
- :ERC20Mintable-mint: pass:normal[xref:token/ERC20.adoc#ERC20Mintable-mint-address-uint256-[`ERC20Mintable.mint`]]
- :xref-ERC20Mintable-mint: xref:token/ERC20.adoc#ERC20Mintable-mint-address-uint256-
- :ERC20Pausable: pass:normal[xref:token/ERC20.adoc#ERC20Pausable[`ERC20Pausable`]]
- :xref-ERC20Pausable: xref:token/ERC20.adoc#ERC20Pausable
- :ERC20Pausable-transfer: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-transfer-address-uint256-[`ERC20Pausable.transfer`]]
- :xref-ERC20Pausable-transfer: xref:token/ERC20.adoc#ERC20Pausable-transfer-address-uint256-
- :ERC20Pausable-transferFrom: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-transferFrom-address-address-uint256-[`ERC20Pausable.transferFrom`]]
- :xref-ERC20Pausable-transferFrom: xref:token/ERC20.adoc#ERC20Pausable-transferFrom-address-address-uint256-
- :ERC20Pausable-approve: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-approve-address-uint256-[`ERC20Pausable.approve`]]
- :xref-ERC20Pausable-approve: xref:token/ERC20.adoc#ERC20Pausable-approve-address-uint256-
- :ERC20Pausable-increaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-increaseAllowance-address-uint256-[`ERC20Pausable.increaseAllowance`]]
- :xref-ERC20Pausable-increaseAllowance: xref:token/ERC20.adoc#ERC20Pausable-increaseAllowance-address-uint256-
- :ERC20Pausable-decreaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-decreaseAllowance-address-uint256-[`ERC20Pausable.decreaseAllowance`]]
- :xref-ERC20Pausable-decreaseAllowance: xref:token/ERC20.adoc#ERC20Pausable-decreaseAllowance-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: xref:token/ERC20.adoc#IERC20-balanceOf-address-
- :IERC20-transfer: pass:normal[xref:token/ERC20.adoc#IERC20-transfer-address-uint256-[`IERC20.transfer`]]
- :xref-IERC20-transfer: 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: 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: 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: 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: 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: xref:token/ERC20.adoc#IERC20-Approval-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: 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: 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: 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: 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: 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: 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--
- :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: 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: 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: 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: 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: 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: 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: xref:token/ERC777.adoc#ERC777-isOperatorFor-address-address-
- :ERC777-authorizeOperator: pass:normal[xref:token/ERC777.adoc#ERC777-authorizeOperator-address-[`ERC777.authorizeOperator`]]
- :xref-ERC777-authorizeOperator: xref:token/ERC777.adoc#ERC777-authorizeOperator-address-
- :ERC777-revokeOperator: pass:normal[xref:token/ERC777.adoc#ERC777-revokeOperator-address-[`ERC777.revokeOperator`]]
- :xref-ERC777-revokeOperator: 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: 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: 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: 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: 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: xref:token/ERC777.adoc#ERC777-transferFrom-address-address-uint256-
- :ERC777-_mint: pass:normal[xref:token/ERC777.adoc#ERC777-_mint-address-address-uint256-bytes-bytes-[`ERC777._mint`]]
- :xref-ERC777-_mint: xref:token/ERC777.adoc#ERC777-_mint-address-address-uint256-bytes-bytes-
- :ERC777-_send: pass:normal[xref:token/ERC777.adoc#ERC777-_send-address-address-address-uint256-bytes-bytes-bool-[`ERC777._send`]]
- :xref-ERC777-_send: xref:token/ERC777.adoc#ERC777-_send-address-address-address-uint256-bytes-bytes-bool-
- :ERC777-_burn: pass:normal[xref:token/ERC777.adoc#ERC777-_burn-address-address-uint256-bytes-bytes-[`ERC777._burn`]]
- :xref-ERC777-_burn: xref:token/ERC777.adoc#ERC777-_burn-address-address-uint256-bytes-bytes-
- :ERC777-_approve: pass:normal[xref:token/ERC777.adoc#ERC777-_approve-address-address-uint256-[`ERC777._approve`]]
- :xref-ERC777-_approve: xref:token/ERC777.adoc#ERC777-_approve-address-address-uint256-
- :ERC777-_callTokensToSend: pass:normal[xref:token/ERC777.adoc#ERC777-_callTokensToSend-address-address-address-uint256-bytes-bytes-[`ERC777._callTokensToSend`]]
- :xref-ERC777-_callTokensToSend: xref:token/ERC777.adoc#ERC777-_callTokensToSend-address-address-address-uint256-bytes-bytes-
- :ERC777-_callTokensReceived: pass:normal[xref:token/ERC777.adoc#ERC777-_callTokensReceived-address-address-address-uint256-bytes-bytes-bool-[`ERC777._callTokensReceived`]]
- :xref-ERC777-_callTokensReceived: xref:token/ERC777.adoc#ERC777-_callTokensReceived-address-address-address-uint256-bytes-bytes-bool-
- :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: 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: 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: 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: xref:token/ERC777.adoc#IERC777-isOperatorFor-address-address-
- :IERC777-authorizeOperator: pass:normal[xref:token/ERC777.adoc#IERC777-authorizeOperator-address-[`IERC777.authorizeOperator`]]
- :xref-IERC777-authorizeOperator: xref:token/ERC777.adoc#IERC777-authorizeOperator-address-
- :IERC777-revokeOperator: pass:normal[xref:token/ERC777.adoc#IERC777-revokeOperator-address-[`IERC777.revokeOperator`]]
- :xref-IERC777-revokeOperator: 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: 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: 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: 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: 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: 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: 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: 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: 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: xref:token/ERC777.adoc#IERC777Sender-tokensToSend-address-address-address-uint256-bytes-bytes-
- = ERC 721
- This set of interfaces, contracts, and utilities are all related to the https://eips.ethereum.org/EIPS/eip-721[ERC721 Non-Fungible Token Standard].
- TIP: For a walkthrough on how to create an ERC721 token read our xref:ROOT:tokens.adoc#ERC721[ERC721 guide].
- The EIP consists of three interfaces, found here as {IERC721}, {IERC721Metadata}, and {IERC721Enumerable}. Only the first one is required in a contract to be ERC721 compliant.
- Each interface is implemented separately in {ERC721}, {ERC721Metadata}, and {ERC721Enumerable}. You can choose the subset of functionality you would like to support in your token by combining the
- desired subset through inheritance.
- The fully featured token implementing all three interfaces is prepackaged as {ERC721Full}.
- Additionally, {IERC721Receiver} can be used to prevent tokens from becoming forever locked in contracts. Imagine sending an in-game item to an exchange address that can't send it back!. When using <<IERC721-safeTransferFrom,`safeTransferFrom`>>, the token contract checks to see that the receiver is an {IERC721Receiver}, which implies that it knows how to handle {ERC721} tokens. If you're writing a contract that needs to receive {ERC721} tokens, you'll want to include this interface.
- Finally, some custom extensions are also included:
- * {ERC721Mintable} — like the ERC20 version, this allows certain addresses to mint new tokens
- * {ERC721Pausable} — like the ERC20 version, this allows addresses to freeze transfers of tokens
- NOTE: This page is incomplete. We're working to improve it for the next release. Stay tuned!
- == Core
- :IERC721: pass:normal[xref:#IERC721[`IERC721`]]
- :balanceOf: pass:normal[xref:#IERC721-balanceOf-address-[`balanceOf`]]
- :ownerOf: pass:normal[xref:#IERC721-ownerOf-uint256-[`ownerOf`]]
- :safeTransferFrom: pass:normal[xref:#IERC721-safeTransferFrom-address-address-uint256-[`safeTransferFrom`]]
- :transferFrom: pass:normal[xref:#IERC721-transferFrom-address-address-uint256-[`transferFrom`]]
- :approve: pass:normal[xref:#IERC721-approve-address-uint256-[`approve`]]
- :getApproved: pass:normal[xref:#IERC721-getApproved-uint256-[`getApproved`]]
- :setApprovalForAll: pass:normal[xref:#IERC721-setApprovalForAll-address-bool-[`setApprovalForAll`]]
- :isApprovedForAll: pass:normal[xref:#IERC721-isApprovedForAll-address-address-[`isApprovedForAll`]]
- :safeTransferFrom: pass:normal[xref:#IERC721-safeTransferFrom-address-address-uint256-bytes-[`safeTransferFrom`]]
- :Transfer: pass:normal[xref:#IERC721-Transfer-address-address-uint256-[`Transfer`]]
- :Approval: pass:normal[xref:#IERC721-Approval-address-address-uint256-[`Approval`]]
- :ApprovalForAll: pass:normal[xref:#IERC721-ApprovalForAll-address-address-bool-[`ApprovalForAll`]]
- [.contract]
- [[IERC721]]
- === `IERC721`
- Required interface of an ERC721 compliant contract.
- [.contract-index]
- .Functions
- --
- * {xref-IERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-IERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-IERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-IERC721-approve}[`approve(to, tokenId)`]
- * {xref-IERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-IERC721-setApprovalForAll}[`setApprovalForAll(operator, _approved)`]
- * {xref-IERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, data)`]
- [.contract-subindex-inherited]
- .IERC165
- * {xref-IERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- --
- [.contract-index]
- .Events
- --
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .IERC165
- --
- [.contract-item]
- [[IERC721-balanceOf-address-]]
- ==== `pass:normal[balanceOf([.var-type\]#address# [.var-name\]#owner#) → [.var-type\]#uint256# [.var-name\]#balance#]` [.item-kind]#public#
- Returns the number of NFTs in `owner`'s account.
- [.contract-item]
- [[IERC721-ownerOf-uint256-]]
- ==== `pass:normal[ownerOf([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#address# [.var-name\]#owner#]` [.item-kind]#public#
- Returns the owner of the NFT specified by `tokenId`.
- [.contract-item]
- [[IERC721-safeTransferFrom-address-address-uint256-]]
- ==== `pass:normal[safeTransferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- Transfers a specific NFT (`tokenId`) from one account (`from`) to
- another (`to`).
- Requirements:
- - `from`, `to` cannot be zero.
- - `tokenId` must be owned by `from`.
- - If the caller is not `from`, it must be have been allowed to move this
- NFT by either {approve} or {setApprovalForAll}.
- [.contract-item]
- [[IERC721-transferFrom-address-address-uint256-]]
- ==== `pass:normal[transferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- Transfers a specific NFT (`tokenId`) from one account (`from`) to
- another (`to`).
- Requirements:
- - If the caller is not `from`, it must be approved to move this NFT by
- either {approve} or {setApprovalForAll}.
- [.contract-item]
- [[IERC721-approve-address-uint256-]]
- ==== `pass:normal[approve([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- [.contract-item]
- [[IERC721-getApproved-uint256-]]
- ==== `pass:normal[getApproved([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#address# [.var-name\]#operator#]` [.item-kind]#public#
- [.contract-item]
- [[IERC721-setApprovalForAll-address-bool-]]
- ==== `pass:normal[setApprovalForAll([.var-type\]#address# [.var-name\]#operator#, [.var-type\]#bool# [.var-name\]#_approved#)]` [.item-kind]#public#
- [.contract-item]
- [[IERC721-isApprovedForAll-address-address-]]
- ==== `pass:normal[isApprovedForAll([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#address# [.var-name\]#operator#) → [.var-type\]#bool#]` [.item-kind]#public#
- [.contract-item]
- [[IERC721-safeTransferFrom-address-address-uint256-bytes-]]
- ==== `pass:normal[safeTransferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#data#)]` [.item-kind]#public#
- [.contract-item]
- [[IERC721-Transfer-address-address-uint256-]]
- ==== `pass:normal[Transfer([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#event#
- [.contract-item]
- [[IERC721-Approval-address-address-uint256-]]
- ==== `pass:normal[Approval([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#address# [.var-name\]#approved#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#event#
- [.contract-item]
- [[IERC721-ApprovalForAll-address-address-bool-]]
- ==== `pass:normal[ApprovalForAll([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#address# [.var-name\]#operator#, [.var-type\]#bool# [.var-name\]#approved#)]` [.item-kind]#event#
- :ERC721: pass:normal[xref:#ERC721[`ERC721`]]
- :balanceOf: pass:normal[xref:#ERC721-balanceOf-address-[`balanceOf`]]
- :ownerOf: pass:normal[xref:#ERC721-ownerOf-uint256-[`ownerOf`]]
- :approve: pass:normal[xref:#ERC721-approve-address-uint256-[`approve`]]
- :getApproved: pass:normal[xref:#ERC721-getApproved-uint256-[`getApproved`]]
- :setApprovalForAll: pass:normal[xref:#ERC721-setApprovalForAll-address-bool-[`setApprovalForAll`]]
- :isApprovedForAll: pass:normal[xref:#ERC721-isApprovedForAll-address-address-[`isApprovedForAll`]]
- :transferFrom: pass:normal[xref:#ERC721-transferFrom-address-address-uint256-[`transferFrom`]]
- :safeTransferFrom: pass:normal[xref:#ERC721-safeTransferFrom-address-address-uint256-[`safeTransferFrom`]]
- :safeTransferFrom: pass:normal[xref:#ERC721-safeTransferFrom-address-address-uint256-bytes-[`safeTransferFrom`]]
- :_safeTransferFrom: pass:normal[xref:#ERC721-_safeTransferFrom-address-address-uint256-bytes-[`_safeTransferFrom`]]
- :_exists: pass:normal[xref:#ERC721-_exists-uint256-[`_exists`]]
- :_isApprovedOrOwner: pass:normal[xref:#ERC721-_isApprovedOrOwner-address-uint256-[`_isApprovedOrOwner`]]
- :_safeMint: pass:normal[xref:#ERC721-_safeMint-address-uint256-[`_safeMint`]]
- :_safeMint: pass:normal[xref:#ERC721-_safeMint-address-uint256-bytes-[`_safeMint`]]
- :_mint: pass:normal[xref:#ERC721-_mint-address-uint256-[`_mint`]]
- :_burn: pass:normal[xref:#ERC721-_burn-address-uint256-[`_burn`]]
- :_burn: pass:normal[xref:#ERC721-_burn-uint256-[`_burn`]]
- :_transferFrom: pass:normal[xref:#ERC721-_transferFrom-address-address-uint256-[`_transferFrom`]]
- :_checkOnERC721Received: pass:normal[xref:#ERC721-_checkOnERC721Received-address-address-uint256-bytes-[`_checkOnERC721Received`]]
- [.contract]
- [[ERC721]]
- === `ERC721`
- see https://eips.ethereum.org/EIPS/eip-721
- [.contract-index]
- .Functions
- --
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(owner, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-constructor}[`constructor()`]
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721-balanceOf-address-]]
- ==== `pass:normal[balanceOf([.var-type\]#address# [.var-name\]#owner#) → [.var-type\]#uint256#]` [.item-kind]#public#
- Gets the balance of the specified address.
- [.contract-item]
- [[ERC721-ownerOf-uint256-]]
- ==== `pass:normal[ownerOf([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#address#]` [.item-kind]#public#
- Gets the owner of the specified token ID.
- [.contract-item]
- [[ERC721-approve-address-uint256-]]
- ==== `pass:normal[approve([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- Approves another address to transfer the given token ID
- The zero address indicates there is no approved address.
- There can only be one approved address per token at a given time.
- Can only be called by the token owner or an approved operator.
- [.contract-item]
- [[ERC721-getApproved-uint256-]]
- ==== `pass:normal[getApproved([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#address#]` [.item-kind]#public#
- Gets the approved address for a token ID, or zero if no address set
- Reverts if the token ID does not exist.
- [.contract-item]
- [[ERC721-setApprovalForAll-address-bool-]]
- ==== `pass:normal[setApprovalForAll([.var-type\]#address# [.var-name\]#to#, [.var-type\]#bool# [.var-name\]#approved#)]` [.item-kind]#public#
- Sets or unsets the approval of a given operator
- An operator is allowed to transfer all tokens of the sender on their behalf.
- [.contract-item]
- [[ERC721-isApprovedForAll-address-address-]]
- ==== `pass:normal[isApprovedForAll([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#address# [.var-name\]#operator#) → [.var-type\]#bool#]` [.item-kind]#public#
- Tells whether an operator is approved by a given owner.
- [.contract-item]
- [[ERC721-transferFrom-address-address-uint256-]]
- ==== `pass:normal[transferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- Transfers the ownership of a given token ID to another address.
- Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
- Requires the msg.sender to be the owner, approved, or operator.
- [.contract-item]
- [[ERC721-safeTransferFrom-address-address-uint256-]]
- ==== `pass:normal[safeTransferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- Safely transfers the ownership of a given token ID to another address
- If the target address is a contract, it must implement {IERC721Receiver-onERC721Received},
- which is called upon a safe transfer, and return the magic value
- `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise,
- the transfer is reverted.
- Requires the msg.sender to be the owner, approved, or operator
- [.contract-item]
- [[ERC721-safeTransferFrom-address-address-uint256-bytes-]]
- ==== `pass:normal[safeTransferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#_data#)]` [.item-kind]#public#
- Safely transfers the ownership of a given token ID to another address
- If the target address is a contract, it must implement {IERC721Receiver-onERC721Received},
- which is called upon a safe transfer, and return the magic value
- `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise,
- the transfer is reverted.
- Requires the _msgSender() to be the owner, approved, or operator
- [.contract-item]
- [[ERC721-_safeTransferFrom-address-address-uint256-bytes-]]
- ==== `pass:normal[_safeTransferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#_data#)]` [.item-kind]#internal#
- Safely transfers the ownership of a given token ID to another address
- If the target address is a contract, it must implement `onERC721Received`,
- which is called upon a safe transfer, and return the magic value
- `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise,
- the transfer is reverted.
- Requires the msg.sender to be the owner, approved, or operator
- [.contract-item]
- [[ERC721-_exists-uint256-]]
- ==== `pass:normal[_exists([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#bool#]` [.item-kind]#internal#
- Returns whether the specified token exists.
- [.contract-item]
- [[ERC721-_isApprovedOrOwner-address-uint256-]]
- ==== `pass:normal[_isApprovedOrOwner([.var-type\]#address# [.var-name\]#spender#, [.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#bool#]` [.item-kind]#internal#
- Returns whether the given spender can transfer a given token ID.
- [.contract-item]
- [[ERC721-_safeMint-address-uint256-]]
- ==== `pass:normal[_safeMint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to safely mint a new token.
- Reverts if the given token ID already exists.
- If the target address is a contract, it must implement `onERC721Received`,
- which is called upon a safe transfer, and return the magic value
- `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise,
- the transfer is reverted.
- [.contract-item]
- [[ERC721-_safeMint-address-uint256-bytes-]]
- ==== `pass:normal[_safeMint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#_data#)]` [.item-kind]#internal#
- Internal function to safely mint a new token.
- Reverts if the given token ID already exists.
- If the target address is a contract, it must implement `onERC721Received`,
- which is called upon a safe transfer, and return the magic value
- `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; otherwise,
- the transfer is reverted.
- [.contract-item]
- [[ERC721-_mint-address-uint256-]]
- ==== `pass:normal[_mint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to mint a new token.
- Reverts if the given token ID already exists.
- [.contract-item]
- [[ERC721-_burn-address-uint256-]]
- ==== `pass:normal[_burn([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to burn a specific token.
- Reverts if the token does not exist.
- Deprecated, use {_burn} instead.
- [.contract-item]
- [[ERC721-_burn-uint256-]]
- ==== `pass:normal[_burn([.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to burn a specific token.
- Reverts if the token does not exist.
- [.contract-item]
- [[ERC721-_transferFrom-address-address-uint256-]]
- ==== `pass:normal[_transferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to transfer ownership of a given token ID to another address.
- As opposed to {transferFrom}, this imposes no restrictions on msg.sender.
- [.contract-item]
- [[ERC721-_checkOnERC721Received-address-address-uint256-bytes-]]
- ==== `pass:normal[_checkOnERC721Received([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#_data#) → [.var-type\]#bool#]` [.item-kind]#internal#
- Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.
- The call is not executed if the target address is not a contract.
- This is an internal detail of the `ERC721` contract and its use is deprecated.
- :IERC721Metadata: pass:normal[xref:#IERC721Metadata[`IERC721Metadata`]]
- :name: pass:normal[xref:#IERC721Metadata-name--[`name`]]
- :symbol: pass:normal[xref:#IERC721Metadata-symbol--[`symbol`]]
- :tokenURI: pass:normal[xref:#IERC721Metadata-tokenURI-uint256-[`tokenURI`]]
- [.contract]
- [[IERC721Metadata]]
- === `IERC721Metadata`
- See https://eips.ethereum.org/EIPS/eip-721
- [.contract-index]
- .Functions
- --
- * {xref-IERC721Metadata-name}[`name()`]
- * {xref-IERC721Metadata-symbol}[`symbol()`]
- * {xref-IERC721Metadata-tokenURI}[`tokenURI(tokenId)`]
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-IERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-IERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-IERC721-approve}[`approve(to, tokenId)`]
- * {xref-IERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-IERC721-setApprovalForAll}[`setApprovalForAll(operator, _approved)`]
- * {xref-IERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, data)`]
- [.contract-subindex-inherited]
- .IERC165
- * {xref-IERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .IERC165
- --
- [.contract-item]
- [[IERC721Metadata-name--]]
- ==== `pass:normal[name() → [.var-type\]#string#]` [.item-kind]#external#
- [.contract-item]
- [[IERC721Metadata-symbol--]]
- ==== `pass:normal[symbol() → [.var-type\]#string#]` [.item-kind]#external#
- [.contract-item]
- [[IERC721Metadata-tokenURI-uint256-]]
- ==== `pass:normal[tokenURI([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#string#]` [.item-kind]#external#
- :ERC721Metadata: pass:normal[xref:#ERC721Metadata[`ERC721Metadata`]]
- :constructor: pass:normal[xref:#ERC721Metadata-constructor-string-string-[`constructor`]]
- :name: pass:normal[xref:#ERC721Metadata-name--[`name`]]
- :symbol: pass:normal[xref:#ERC721Metadata-symbol--[`symbol`]]
- :tokenURI: pass:normal[xref:#ERC721Metadata-tokenURI-uint256-[`tokenURI`]]
- :_setTokenURI: pass:normal[xref:#ERC721Metadata-_setTokenURI-uint256-string-[`_setTokenURI`]]
- :_setBaseURI: pass:normal[xref:#ERC721Metadata-_setBaseURI-string-[`_setBaseURI`]]
- :baseURI: pass:normal[xref:#ERC721Metadata-baseURI--[`baseURI`]]
- :_burn: pass:normal[xref:#ERC721Metadata-_burn-address-uint256-[`_burn`]]
- [.contract]
- [[ERC721Metadata]]
- === `ERC721Metadata`
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Metadata-constructor}[`constructor(name, symbol)`]
- * {xref-ERC721Metadata-name}[`name()`]
- * {xref-ERC721Metadata-symbol}[`symbol()`]
- * {xref-ERC721Metadata-tokenURI}[`tokenURI(tokenId)`]
- * {xref-ERC721Metadata-_setTokenURI}[`_setTokenURI(tokenId, _tokenURI)`]
- * {xref-ERC721Metadata-_setBaseURI}[`_setBaseURI(baseURI)`]
- * {xref-ERC721Metadata-baseURI}[`baseURI()`]
- * {xref-ERC721Metadata-_burn}[`_burn(owner, tokenId)`]
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721Metadata-constructor-string-string-]]
- ==== `pass:normal[constructor([.var-type\]#string# [.var-name\]#name#, [.var-type\]#string# [.var-name\]#symbol#)]` [.item-kind]#public#
- Constructor function
- [.contract-item]
- [[ERC721Metadata-name--]]
- ==== `pass:normal[name() → [.var-type\]#string#]` [.item-kind]#external#
- Gets the token name.
- [.contract-item]
- [[ERC721Metadata-symbol--]]
- ==== `pass:normal[symbol() → [.var-type\]#string#]` [.item-kind]#external#
- Gets the token symbol.
- [.contract-item]
- [[ERC721Metadata-tokenURI-uint256-]]
- ==== `pass:normal[tokenURI([.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#string#]` [.item-kind]#external#
- Returns the URI for a given token ID. May return an empty string.
- If the token's URI is non-empty and a base URI was set (via
- {_setBaseURI}), it will be added to the token ID's URI as a prefix.
- Reverts if the token ID does not exist.
- [.contract-item]
- [[ERC721Metadata-_setTokenURI-uint256-string-]]
- ==== `pass:normal[_setTokenURI([.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#string# [.var-name\]#_tokenURI#)]` [.item-kind]#internal#
- Internal function to set the token URI for a given token.
- Reverts if the token ID does not exist.
- TIP: if all token IDs share a prefix (e.g. if your URIs look like
- `http://api.myproject.com/token/<id>`), use {_setBaseURI} to store
- it and save gas.
- [.contract-item]
- [[ERC721Metadata-_setBaseURI-string-]]
- ==== `pass:normal[_setBaseURI([.var-type\]#string# [.var-name\]#baseURI#)]` [.item-kind]#internal#
- Internal function to set the base URI for all token IDs. It is
- automatically added as a prefix to the value returned in {tokenURI}.
- _Available since v2.5.0._
- [.contract-item]
- [[ERC721Metadata-baseURI--]]
- ==== `pass:normal[baseURI() → [.var-type\]#string#]` [.item-kind]#external#
- Returns the base URI set via {_setBaseURI}. This will be
- automatically added as a preffix in {tokenURI} to each token's URI, when
- they are non-empty.
- _Available since v2.5.0._
- [.contract-item]
- [[ERC721Metadata-_burn-address-uint256-]]
- ==== `pass:normal[_burn([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to burn a specific token.
- Reverts if the token does not exist.
- Deprecated, use _burn(uint256) instead.
- :ERC721Enumerable: pass:normal[xref:#ERC721Enumerable[`ERC721Enumerable`]]
- :constructor: pass:normal[xref:#ERC721Enumerable-constructor--[`constructor`]]
- :tokenOfOwnerByIndex: pass:normal[xref:#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`tokenOfOwnerByIndex`]]
- :totalSupply: pass:normal[xref:#ERC721Enumerable-totalSupply--[`totalSupply`]]
- :tokenByIndex: pass:normal[xref:#ERC721Enumerable-tokenByIndex-uint256-[`tokenByIndex`]]
- :_transferFrom: pass:normal[xref:#ERC721Enumerable-_transferFrom-address-address-uint256-[`_transferFrom`]]
- :_mint: pass:normal[xref:#ERC721Enumerable-_mint-address-uint256-[`_mint`]]
- :_burn: pass:normal[xref:#ERC721Enumerable-_burn-address-uint256-[`_burn`]]
- :_tokensOfOwner: pass:normal[xref:#ERC721Enumerable-_tokensOfOwner-address-[`_tokensOfOwner`]]
- [.contract]
- [[ERC721Enumerable]]
- === `ERC721Enumerable`
- See https://eips.ethereum.org/EIPS/eip-721
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Enumerable-constructor}[`constructor()`]
- * {xref-ERC721Enumerable-tokenOfOwnerByIndex}[`tokenOfOwnerByIndex(owner, index)`]
- * {xref-ERC721Enumerable-totalSupply}[`totalSupply()`]
- * {xref-ERC721Enumerable-tokenByIndex}[`tokenByIndex(index)`]
- * {xref-ERC721Enumerable-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721Enumerable-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721Enumerable-_burn}[`_burn(owner, tokenId)`]
- * {xref-ERC721Enumerable-_tokensOfOwner}[`_tokensOfOwner(owner)`]
- [.contract-subindex-inherited]
- .IERC721Enumerable
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC721Enumerable
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721Enumerable-constructor--]]
- ==== `pass:normal[constructor()]` [.item-kind]#public#
- Constructor function.
- [.contract-item]
- [[ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-]]
- ==== `pass:normal[tokenOfOwnerByIndex([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#uint256# [.var-name\]#index#) → [.var-type\]#uint256#]` [.item-kind]#public#
- Gets the token ID at a given index of the tokens list of the requested owner.
- [.contract-item]
- [[ERC721Enumerable-totalSupply--]]
- ==== `pass:normal[totalSupply() → [.var-type\]#uint256#]` [.item-kind]#public#
- Gets the total amount of tokens stored by the contract.
- [.contract-item]
- [[ERC721Enumerable-tokenByIndex-uint256-]]
- ==== `pass:normal[tokenByIndex([.var-type\]#uint256# [.var-name\]#index#) → [.var-type\]#uint256#]` [.item-kind]#public#
- Gets the token ID at a given index of all the tokens in this contract
- Reverts if the index is greater or equal to the total number of tokens.
- [.contract-item]
- [[ERC721Enumerable-_transferFrom-address-address-uint256-]]
- ==== `pass:normal[_transferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to transfer ownership of a given token ID to another address.
- As opposed to transferFrom, this imposes no restrictions on msg.sender.
- [.contract-item]
- [[ERC721Enumerable-_mint-address-uint256-]]
- ==== `pass:normal[_mint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to mint a new token.
- Reverts if the given token ID already exists.
- [.contract-item]
- [[ERC721Enumerable-_burn-address-uint256-]]
- ==== `pass:normal[_burn([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- Internal function to burn a specific token.
- Reverts if the token does not exist.
- Deprecated, use {ERC721-_burn} instead.
- [.contract-item]
- [[ERC721Enumerable-_tokensOfOwner-address-]]
- ==== `pass:normal[_tokensOfOwner([.var-type\]#address# [.var-name\]#owner#) → [.var-type\]#uint256[]#]` [.item-kind]#internal#
- Gets the list of token IDs of the requested owner.
- :IERC721Enumerable: pass:normal[xref:#IERC721Enumerable[`IERC721Enumerable`]]
- :totalSupply: pass:normal[xref:#IERC721Enumerable-totalSupply--[`totalSupply`]]
- :tokenOfOwnerByIndex: pass:normal[xref:#IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`tokenOfOwnerByIndex`]]
- :tokenByIndex: pass:normal[xref:#IERC721Enumerable-tokenByIndex-uint256-[`tokenByIndex`]]
- [.contract]
- [[IERC721Enumerable]]
- === `IERC721Enumerable`
- See https://eips.ethereum.org/EIPS/eip-721
- [.contract-index]
- .Functions
- --
- * {xref-IERC721Enumerable-totalSupply}[`totalSupply()`]
- * {xref-IERC721Enumerable-tokenOfOwnerByIndex}[`tokenOfOwnerByIndex(owner, index)`]
- * {xref-IERC721Enumerable-tokenByIndex}[`tokenByIndex(index)`]
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-IERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-IERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-IERC721-approve}[`approve(to, tokenId)`]
- * {xref-IERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-IERC721-setApprovalForAll}[`setApprovalForAll(operator, _approved)`]
- * {xref-IERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, data)`]
- [.contract-subindex-inherited]
- .IERC165
- * {xref-IERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .IERC165
- --
- [.contract-item]
- [[IERC721Enumerable-totalSupply--]]
- ==== `pass:normal[totalSupply() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-]]
- ==== `pass:normal[tokenOfOwnerByIndex([.var-type\]#address# [.var-name\]#owner#, [.var-type\]#uint256# [.var-name\]#index#) → [.var-type\]#uint256# [.var-name\]#tokenId#]` [.item-kind]#public#
- [.contract-item]
- [[IERC721Enumerable-tokenByIndex-uint256-]]
- ==== `pass:normal[tokenByIndex([.var-type\]#uint256# [.var-name\]#index#) → [.var-type\]#uint256#]` [.item-kind]#public#
- :IERC721Full: pass:normal[xref:#IERC721Full[`IERC721Full`]]
- [.contract]
- [[IERC721Full]]
- === `IERC721Full`
- See https://eips.ethereum.org/EIPS/eip-721
- [.contract-index]
- .Functions
- --
- [.contract-subindex-inherited]
- .IERC721Metadata
- * {xref-IERC721Metadata-name}[`name()`]
- * {xref-IERC721Metadata-symbol}[`symbol()`]
- * {xref-IERC721Metadata-tokenURI}[`tokenURI(tokenId)`]
- [.contract-subindex-inherited]
- .IERC721Enumerable
- * {xref-IERC721Enumerable-totalSupply}[`totalSupply()`]
- * {xref-IERC721Enumerable-tokenOfOwnerByIndex}[`tokenOfOwnerByIndex(owner, index)`]
- * {xref-IERC721Enumerable-tokenByIndex}[`tokenByIndex(index)`]
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-IERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-IERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-IERC721-approve}[`approve(to, tokenId)`]
- * {xref-IERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-IERC721-setApprovalForAll}[`setApprovalForAll(operator, _approved)`]
- * {xref-IERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-IERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, data)`]
- [.contract-subindex-inherited]
- .IERC165
- * {xref-IERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .IERC721Enumerable
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .IERC165
- --
- :ERC721Full: pass:normal[xref:#ERC721Full[`ERC721Full`]]
- :constructor: pass:normal[xref:#ERC721Full-constructor-string-string-[`constructor`]]
- [.contract]
- [[ERC721Full]]
- === `ERC721Full`
- This implementation includes all the required and some optional functionality of the ERC721 standard
- Moreover, it includes approve all functionality using operator terminology.
- See https://eips.ethereum.org/EIPS/eip-721
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Full-constructor}[`constructor(name, symbol)`]
- [.contract-subindex-inherited]
- .ERC721Metadata
- * {xref-ERC721Metadata-name}[`name()`]
- * {xref-ERC721Metadata-symbol}[`symbol()`]
- * {xref-ERC721Metadata-tokenURI}[`tokenURI(tokenId)`]
- * {xref-ERC721Metadata-_setTokenURI}[`_setTokenURI(tokenId, _tokenURI)`]
- * {xref-ERC721Metadata-_setBaseURI}[`_setBaseURI(baseURI)`]
- * {xref-ERC721Metadata-baseURI}[`baseURI()`]
- * {xref-ERC721Metadata-_burn}[`_burn(owner, tokenId)`]
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721Enumerable
- * {xref-ERC721Enumerable-tokenOfOwnerByIndex}[`tokenOfOwnerByIndex(owner, index)`]
- * {xref-ERC721Enumerable-totalSupply}[`totalSupply()`]
- * {xref-ERC721Enumerable-tokenByIndex}[`tokenByIndex(index)`]
- * {xref-ERC721Enumerable-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721Enumerable-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721Enumerable-_tokensOfOwner}[`_tokensOfOwner(owner)`]
- [.contract-subindex-inherited]
- .IERC721Enumerable
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC721Metadata
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721Enumerable
- [.contract-subindex-inherited]
- .IERC721Enumerable
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721Full-constructor-string-string-]]
- ==== `pass:normal[constructor([.var-type\]#string# [.var-name\]#name#, [.var-type\]#string# [.var-name\]#symbol#)]` [.item-kind]#public#
- :IERC721Receiver: pass:normal[xref:#IERC721Receiver[`IERC721Receiver`]]
- :onERC721Received: pass:normal[xref:#IERC721Receiver-onERC721Received-address-address-uint256-bytes-[`onERC721Received`]]
- [.contract]
- [[IERC721Receiver]]
- === `IERC721Receiver`
- Interface for any contract that wants to support safeTransfers
- from ERC721 asset contracts.
- [.contract-index]
- .Functions
- --
- * {xref-IERC721Receiver-onERC721Received}[`onERC721Received(operator, from, tokenId, data)`]
- --
- [.contract-item]
- [[IERC721Receiver-onERC721Received-address-address-uint256-bytes-]]
- ==== `pass:normal[onERC721Received([.var-type\]#address# [.var-name\]#operator#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#data#) → [.var-type\]#bytes4#]` [.item-kind]#public#
- The ERC721 smart contract calls this function on the recipient
- after a {IERC721-safeTransferFrom}. This function MUST return the function selector,
- otherwise the caller will revert the transaction. The selector to be
- returned can be obtained as `this.onERC721Received.selector`. This
- function MAY throw to revert and reject the transfer.
- Note: the ERC721 contract address is always the message sender.
- == Extensions
- :ERC721Mintable: pass:normal[xref:#ERC721Mintable[`ERC721Mintable`]]
- :mint: pass:normal[xref:#ERC721Mintable-mint-address-uint256-[`mint`]]
- :safeMint: pass:normal[xref:#ERC721Mintable-safeMint-address-uint256-[`safeMint`]]
- :safeMint: pass:normal[xref:#ERC721Mintable-safeMint-address-uint256-bytes-[`safeMint`]]
- [.contract]
- [[ERC721Mintable]]
- === `ERC721Mintable`
- ERC721 minting logic.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .MinterRole
- * {xref-MinterRole-onlyMinter}[`onlyMinter()`]
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Mintable-mint}[`mint(to, tokenId)`]
- * {xref-ERC721Mintable-safeMint}[`safeMint(to, tokenId)`]
- * {xref-ERC721Mintable-safeMint}[`safeMint(to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .MinterRole
- * {xref-MinterRole-constructor}[`constructor()`]
- * {xref-MinterRole-isMinter}[`isMinter(account)`]
- * {xref-MinterRole-addMinter}[`addMinter(account)`]
- * {xref-MinterRole-renounceMinter}[`renounceMinter()`]
- * {xref-MinterRole-_addMinter}[`_addMinter(account)`]
- * {xref-MinterRole-_removeMinter}[`_removeMinter(account)`]
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(owner, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .MinterRole
- * {xref-MinterRole-MinterAdded}[`MinterAdded(account)`]
- * {xref-MinterRole-MinterRemoved}[`MinterRemoved(account)`]
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721Mintable-mint-address-uint256-]]
- ==== `pass:normal[mint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#bool#]` [.item-kind]#public#
- Function to mint tokens.
- [.contract-item]
- [[ERC721Mintable-safeMint-address-uint256-]]
- ==== `pass:normal[safeMint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#) → [.var-type\]#bool#]` [.item-kind]#public#
- Function to safely mint tokens.
- [.contract-item]
- [[ERC721Mintable-safeMint-address-uint256-bytes-]]
- ==== `pass:normal[safeMint([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#bytes# [.var-name\]#_data#) → [.var-type\]#bool#]` [.item-kind]#public#
- Function to safely mint tokens.
- :ERC721MetadataMintable: pass:normal[xref:#ERC721MetadataMintable[`ERC721MetadataMintable`]]
- :mintWithTokenURI: pass:normal[xref:#ERC721MetadataMintable-mintWithTokenURI-address-uint256-string-[`mintWithTokenURI`]]
- [.contract]
- [[ERC721MetadataMintable]]
- === `ERC721MetadataMintable`
- ERC721 minting logic with metadata.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .MinterRole
- * {xref-MinterRole-onlyMinter}[`onlyMinter()`]
- [.contract-subindex-inherited]
- .ERC721Metadata
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-ERC721MetadataMintable-mintWithTokenURI}[`mintWithTokenURI(to, tokenId, tokenURI)`]
- [.contract-subindex-inherited]
- .MinterRole
- * {xref-MinterRole-constructor}[`constructor()`]
- * {xref-MinterRole-isMinter}[`isMinter(account)`]
- * {xref-MinterRole-addMinter}[`addMinter(account)`]
- * {xref-MinterRole-renounceMinter}[`renounceMinter()`]
- * {xref-MinterRole-_addMinter}[`_addMinter(account)`]
- * {xref-MinterRole-_removeMinter}[`_removeMinter(account)`]
- [.contract-subindex-inherited]
- .ERC721Metadata
- * {xref-ERC721Metadata-name}[`name()`]
- * {xref-ERC721Metadata-symbol}[`symbol()`]
- * {xref-ERC721Metadata-tokenURI}[`tokenURI(tokenId)`]
- * {xref-ERC721Metadata-_setTokenURI}[`_setTokenURI(tokenId, _tokenURI)`]
- * {xref-ERC721Metadata-_setBaseURI}[`_setBaseURI(baseURI)`]
- * {xref-ERC721Metadata-baseURI}[`baseURI()`]
- * {xref-ERC721Metadata-_burn}[`_burn(owner, tokenId)`]
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .MinterRole
- * {xref-MinterRole-MinterAdded}[`MinterAdded(account)`]
- * {xref-MinterRole-MinterRemoved}[`MinterRemoved(account)`]
- [.contract-subindex-inherited]
- .ERC721Metadata
- [.contract-subindex-inherited]
- .IERC721Metadata
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721MetadataMintable-mintWithTokenURI-address-uint256-string-]]
- ==== `pass:normal[mintWithTokenURI([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#, [.var-type\]#string# [.var-name\]#tokenURI#) → [.var-type\]#bool#]` [.item-kind]#public#
- Function to mint tokens.
- :ERC721Burnable: pass:normal[xref:#ERC721Burnable[`ERC721Burnable`]]
- :burn: pass:normal[xref:#ERC721Burnable-burn-uint256-[`burn`]]
- [.contract]
- [[ERC721Burnable]]
- === `ERC721Burnable`
- ERC721 Token that can be irreversibly burned (destroyed).
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Burnable-burn}[`burn(tokenId)`]
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-approve}[`approve(to, tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(owner, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-constructor}[`constructor()`]
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721Burnable-burn-uint256-]]
- ==== `pass:normal[burn([.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- Burns a specific ERC721 token.
- :ERC721Pausable: pass:normal[xref:#ERC721Pausable[`ERC721Pausable`]]
- :approve: pass:normal[xref:#ERC721Pausable-approve-address-uint256-[`approve`]]
- :setApprovalForAll: pass:normal[xref:#ERC721Pausable-setApprovalForAll-address-bool-[`setApprovalForAll`]]
- :_transferFrom: pass:normal[xref:#ERC721Pausable-_transferFrom-address-address-uint256-[`_transferFrom`]]
- [.contract]
- [[ERC721Pausable]]
- === `ERC721Pausable`
- ERC721 modified with pausable transfers.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-whenNotPaused}[`whenNotPaused()`]
- * {xref-Pausable-whenPaused}[`whenPaused()`]
- [.contract-subindex-inherited]
- .PauserRole
- * {xref-PauserRole-onlyPauser}[`onlyPauser()`]
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Pausable-approve}[`approve(to, tokenId)`]
- * {xref-ERC721Pausable-setApprovalForAll}[`setApprovalForAll(to, approved)`]
- * {xref-ERC721Pausable-_transferFrom}[`_transferFrom(from, to, tokenId)`]
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-constructor}[`constructor()`]
- * {xref-Pausable-paused}[`paused()`]
- * {xref-Pausable-pause}[`pause()`]
- * {xref-Pausable-unpause}[`unpause()`]
- [.contract-subindex-inherited]
- .PauserRole
- * {xref-PauserRole-isPauser}[`isPauser(account)`]
- * {xref-PauserRole-addPauser}[`addPauser(account)`]
- * {xref-PauserRole-renouncePauser}[`renouncePauser()`]
- * {xref-PauserRole-_addPauser}[`_addPauser(account)`]
- * {xref-PauserRole-_removePauser}[`_removePauser(account)`]
- [.contract-subindex-inherited]
- .ERC721
- * {xref-ERC721-balanceOf}[`balanceOf(owner)`]
- * {xref-ERC721-ownerOf}[`ownerOf(tokenId)`]
- * {xref-ERC721-getApproved}[`getApproved(tokenId)`]
- * {xref-ERC721-isApprovedForAll}[`isApprovedForAll(owner, operator)`]
- * {xref-ERC721-transferFrom}[`transferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId)`]
- * {xref-ERC721-safeTransferFrom}[`safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_safeTransferFrom}[`_safeTransferFrom(from, to, tokenId, _data)`]
- * {xref-ERC721-_exists}[`_exists(tokenId)`]
- * {xref-ERC721-_isApprovedOrOwner}[`_isApprovedOrOwner(spender, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId)`]
- * {xref-ERC721-_safeMint}[`_safeMint(to, tokenId, _data)`]
- * {xref-ERC721-_mint}[`_mint(to, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(owner, tokenId)`]
- * {xref-ERC721-_burn}[`_burn(tokenId)`]
- * {xref-ERC721-_checkOnERC721Received}[`_checkOnERC721Received(from, to, tokenId, _data)`]
- [.contract-subindex-inherited]
- .IERC721
- [.contract-subindex-inherited]
- .ERC165
- * {xref-ERC165-supportsInterface}[`supportsInterface(interfaceId)`]
- * {xref-ERC165-_registerInterface}[`_registerInterface(interfaceId)`]
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .Pausable
- * {xref-Pausable-Paused}[`Paused(account)`]
- * {xref-Pausable-Unpaused}[`Unpaused(account)`]
- [.contract-subindex-inherited]
- .PauserRole
- * {xref-PauserRole-PauserAdded}[`PauserAdded(account)`]
- * {xref-PauserRole-PauserRemoved}[`PauserRemoved(account)`]
- [.contract-subindex-inherited]
- .ERC721
- [.contract-subindex-inherited]
- .IERC721
- * {xref-IERC721-Transfer}[`Transfer(from, to, tokenId)`]
- * {xref-IERC721-Approval}[`Approval(owner, approved, tokenId)`]
- * {xref-IERC721-ApprovalForAll}[`ApprovalForAll(owner, operator, approved)`]
- [.contract-subindex-inherited]
- .ERC165
- [.contract-subindex-inherited]
- .IERC165
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[ERC721Pausable-approve-address-uint256-]]
- ==== `pass:normal[approve([.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#public#
- [.contract-item]
- [[ERC721Pausable-setApprovalForAll-address-bool-]]
- ==== `pass:normal[setApprovalForAll([.var-type\]#address# [.var-name\]#to#, [.var-type\]#bool# [.var-name\]#approved#)]` [.item-kind]#public#
- [.contract-item]
- [[ERC721Pausable-_transferFrom-address-address-uint256-]]
- ==== `pass:normal[_transferFrom([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#uint256# [.var-name\]#tokenId#)]` [.item-kind]#internal#
- == Convenience
- :ERC721Holder: pass:normal[xref:#ERC721Holder[`ERC721Holder`]]
- :onERC721Received: pass:normal[xref:#ERC721Holder-onERC721Received-address-address-uint256-bytes-[`onERC721Received`]]
- [.contract]
- [[ERC721Holder]]
- === `ERC721Holder`
- [.contract-index]
- .Functions
- --
- * {xref-ERC721Holder-onERC721Received}[`onERC721Received(_, _, _, _)`]
- [.contract-subindex-inherited]
- .IERC721Receiver
- --
- [.contract-item]
- [[ERC721Holder-onERC721Received-address-address-uint256-bytes-]]
- ==== `pass:normal[onERC721Received([.var-type\]#address#, [.var-type\]#address#, [.var-type\]#uint256#, [.var-type\]#bytes#) → [.var-type\]#bytes4#]` [.item-kind]#public#
|