1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716 |
- :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-
- = Crowdsales
- NOTE: This page is incomplete. We're working to improve it for the next release. Stay tuned!
- == Core
- :Crowdsale: pass:normal[xref:#Crowdsale[`Crowdsale`]]
- :constructor: pass:normal[xref:#Crowdsale-constructor-uint256-address-payable-contract-IERC20-[`constructor`]]
- :fallback: pass:normal[xref:#Crowdsale-fallback--[`fallback`]]
- :token: pass:normal[xref:#Crowdsale-token--[`token`]]
- :wallet: pass:normal[xref:#Crowdsale-wallet--[`wallet`]]
- :rate: pass:normal[xref:#Crowdsale-rate--[`rate`]]
- :weiRaised: pass:normal[xref:#Crowdsale-weiRaised--[`weiRaised`]]
- :buyTokens: pass:normal[xref:#Crowdsale-buyTokens-address-[`buyTokens`]]
- :_preValidatePurchase: pass:normal[xref:#Crowdsale-_preValidatePurchase-address-uint256-[`_preValidatePurchase`]]
- :_postValidatePurchase: pass:normal[xref:#Crowdsale-_postValidatePurchase-address-uint256-[`_postValidatePurchase`]]
- :_deliverTokens: pass:normal[xref:#Crowdsale-_deliverTokens-address-uint256-[`_deliverTokens`]]
- :_processPurchase: pass:normal[xref:#Crowdsale-_processPurchase-address-uint256-[`_processPurchase`]]
- :_updatePurchasingState: pass:normal[xref:#Crowdsale-_updatePurchasingState-address-uint256-[`_updatePurchasingState`]]
- :_getTokenAmount: pass:normal[xref:#Crowdsale-_getTokenAmount-uint256-[`_getTokenAmount`]]
- :_forwardFunds: pass:normal[xref:#Crowdsale-_forwardFunds--[`_forwardFunds`]]
- :TokensPurchased: pass:normal[xref:#Crowdsale-TokensPurchased-address-address-uint256-uint256-[`TokensPurchased`]]
- [.contract]
- [[Crowdsale]]
- === `Crowdsale`
- Crowdsale is a base contract for managing a token crowdsale,
- allowing investors to purchase tokens with ether. This contract implements
- such functionality in its most fundamental form and can be extended to provide additional
- functionality and/or custom behavior.
- The external interface represents the basic interface for purchasing tokens, and conforms
- the base architecture for crowdsales. It is *not* intended to be modified / overridden.
- The internal interface conforms the extensible and modifiable surface of crowdsales. Override
- the methods to add functionality. Consider using 'super' where appropriate to concatenate
- behavior.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-Crowdsale-constructor}[`constructor(rate, wallet, token)`]
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[Crowdsale-constructor-uint256-address-payable-contract-IERC20-]]
- ==== `pass:normal[constructor([.var-type\]#uint256# [.var-name\]#rate#, [.var-type\]#address payable# [.var-name\]#wallet#, [.var-type\]#contract IERC20# [.var-name\]#token#)]` [.item-kind]#public#
- The rate is the conversion between wei and the smallest and indivisible
- token unit. So, if you are using a rate of 1 with a ERC20Detailed token
- with 3 decimals called TOK, 1 wei will give you 1 unit, or 0.001 TOK.
- [.contract-item]
- [[Crowdsale-fallback--]]
- ==== `pass:normal[fallback()]` [.item-kind]#external#
- fallback function ***DO NOT OVERRIDE***
- Note that other contracts will transfer funds with a base gas stipend
- of 2300, which is not enough to call buyTokens. Consider calling
- buyTokens directly when purchasing tokens from a contract.
- [.contract-item]
- [[Crowdsale-token--]]
- ==== `pass:normal[token() → [.var-type\]#contract IERC20#]` [.item-kind]#public#
- [.contract-item]
- [[Crowdsale-wallet--]]
- ==== `pass:normal[wallet() → [.var-type\]#address payable#]` [.item-kind]#public#
- [.contract-item]
- [[Crowdsale-rate--]]
- ==== `pass:normal[rate() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[Crowdsale-weiRaised--]]
- ==== `pass:normal[weiRaised() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[Crowdsale-buyTokens-address-]]
- ==== `pass:normal[buyTokens([.var-type\]#address# [.var-name\]#beneficiary#)]` [.item-kind]#public#
- low level token purchase ***DO NOT OVERRIDE***
- This function has a non-reentrancy guard, so it shouldn't be called by
- another `nonReentrant` function.
- [.contract-item]
- [[Crowdsale-_preValidatePurchase-address-uint256-]]
- ==== `pass:normal[_preValidatePurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Validation of an incoming purchase. Use require statements to revert state when conditions are not met.
- Use `super` in contracts that inherit from Crowdsale to extend their validations.
- Example from CappedCrowdsale.sol's _preValidatePurchase method:
- super._preValidatePurchase(beneficiary, weiAmount);
- require(weiRaised().add(weiAmount) <= cap);
- [.contract-item]
- [[Crowdsale-_postValidatePurchase-address-uint256-]]
- ==== `pass:normal[_postValidatePurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Validation of an executed purchase. Observe state and use revert statements to undo rollback when valid
- conditions are not met.
- [.contract-item]
- [[Crowdsale-_deliverTokens-address-uint256-]]
- ==== `pass:normal[_deliverTokens([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#tokenAmount#)]` [.item-kind]#internal#
- Source of tokens. Override this method to modify the way in which the crowdsale ultimately gets and sends
- its tokens.
- [.contract-item]
- [[Crowdsale-_processPurchase-address-uint256-]]
- ==== `pass:normal[_processPurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#tokenAmount#)]` [.item-kind]#internal#
- Executed when a purchase has been validated and is ready to be executed. Doesn't necessarily emit/send
- tokens.
- [.contract-item]
- [[Crowdsale-_updatePurchasingState-address-uint256-]]
- ==== `pass:normal[_updatePurchasingState([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Override for extensions that require an internal state to check for validity (current user contributions,
- etc.)
- [.contract-item]
- [[Crowdsale-_getTokenAmount-uint256-]]
- ==== `pass:normal[_getTokenAmount([.var-type\]#uint256# [.var-name\]#weiAmount#) → [.var-type\]#uint256#]` [.item-kind]#internal#
- Override to extend the way in which ether is converted to tokens.
- [.contract-item]
- [[Crowdsale-_forwardFunds--]]
- ==== `pass:normal[_forwardFunds()]` [.item-kind]#internal#
- Determines how ETH is stored/forwarded on purchases.
- [.contract-item]
- [[Crowdsale-TokensPurchased-address-address-uint256-uint256-]]
- ==== `pass:normal[TokensPurchased([.var-type\]#address# [.var-name\]#purchaser#, [.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#value#, [.var-type\]#uint256# [.var-name\]#amount#)]` [.item-kind]#event#
- == Emission
- :AllowanceCrowdsale: pass:normal[xref:#AllowanceCrowdsale[`AllowanceCrowdsale`]]
- :constructor: pass:normal[xref:#AllowanceCrowdsale-constructor-address-[`constructor`]]
- :tokenWallet: pass:normal[xref:#AllowanceCrowdsale-tokenWallet--[`tokenWallet`]]
- :remainingTokens: pass:normal[xref:#AllowanceCrowdsale-remainingTokens--[`remainingTokens`]]
- :_deliverTokens: pass:normal[xref:#AllowanceCrowdsale-_deliverTokens-address-uint256-[`_deliverTokens`]]
- [.contract]
- [[AllowanceCrowdsale]]
- === `AllowanceCrowdsale`
- Extension of Crowdsale where tokens are held by a wallet, which approves an allowance to the crowdsale.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-AllowanceCrowdsale-constructor}[`constructor(tokenWallet)`]
- * {xref-AllowanceCrowdsale-tokenWallet}[`tokenWallet()`]
- * {xref-AllowanceCrowdsale-remainingTokens}[`remainingTokens()`]
- * {xref-AllowanceCrowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[AllowanceCrowdsale-constructor-address-]]
- ==== `pass:normal[constructor([.var-type\]#address# [.var-name\]#tokenWallet#)]` [.item-kind]#public#
- Constructor, takes token wallet address.
- [.contract-item]
- [[AllowanceCrowdsale-tokenWallet--]]
- ==== `pass:normal[tokenWallet() → [.var-type\]#address#]` [.item-kind]#public#
- [.contract-item]
- [[AllowanceCrowdsale-remainingTokens--]]
- ==== `pass:normal[remainingTokens() → [.var-type\]#uint256#]` [.item-kind]#public#
- Checks the amount of tokens left in the allowance.
- [.contract-item]
- [[AllowanceCrowdsale-_deliverTokens-address-uint256-]]
- ==== `pass:normal[_deliverTokens([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#tokenAmount#)]` [.item-kind]#internal#
- Overrides parent behavior by transferring tokens from wallet.
- :MintedCrowdsale: pass:normal[xref:#MintedCrowdsale[`MintedCrowdsale`]]
- :_deliverTokens: pass:normal[xref:#MintedCrowdsale-_deliverTokens-address-uint256-[`_deliverTokens`]]
- [.contract]
- [[MintedCrowdsale]]
- === `MintedCrowdsale`
- Extension of Crowdsale contract whose tokens are minted in each purchase.
- Token ownership should be transferred to MintedCrowdsale for minting.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-MintedCrowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-constructor}[`constructor(rate, wallet, token)`]
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[MintedCrowdsale-_deliverTokens-address-uint256-]]
- ==== `pass:normal[_deliverTokens([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#tokenAmount#)]` [.item-kind]#internal#
- Overrides delivery by minting tokens upon purchase.
- == Validation
- :CappedCrowdsale: pass:normal[xref:#CappedCrowdsale[`CappedCrowdsale`]]
- :constructor: pass:normal[xref:#CappedCrowdsale-constructor-uint256-[`constructor`]]
- :cap: pass:normal[xref:#CappedCrowdsale-cap--[`cap`]]
- :capReached: pass:normal[xref:#CappedCrowdsale-capReached--[`capReached`]]
- :_preValidatePurchase: pass:normal[xref:#CappedCrowdsale-_preValidatePurchase-address-uint256-[`_preValidatePurchase`]]
- [.contract]
- [[CappedCrowdsale]]
- === `CappedCrowdsale`
- Crowdsale with a limit for total contributions.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-CappedCrowdsale-constructor}[`constructor(cap)`]
- * {xref-CappedCrowdsale-cap}[`cap()`]
- * {xref-CappedCrowdsale-capReached}[`capReached()`]
- * {xref-CappedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[CappedCrowdsale-constructor-uint256-]]
- ==== `pass:normal[constructor([.var-type\]#uint256# [.var-name\]#cap#)]` [.item-kind]#public#
- Constructor, takes maximum amount of wei accepted in the crowdsale.
- [.contract-item]
- [[CappedCrowdsale-cap--]]
- ==== `pass:normal[cap() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[CappedCrowdsale-capReached--]]
- ==== `pass:normal[capReached() → [.var-type\]#bool#]` [.item-kind]#public#
- Checks whether the cap has been reached.
- [.contract-item]
- [[CappedCrowdsale-_preValidatePurchase-address-uint256-]]
- ==== `pass:normal[_preValidatePurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Extend parent behavior requiring purchase to respect the funding cap.
- :IndividuallyCappedCrowdsale: pass:normal[xref:#IndividuallyCappedCrowdsale[`IndividuallyCappedCrowdsale`]]
- :setCap: pass:normal[xref:#IndividuallyCappedCrowdsale-setCap-address-uint256-[`setCap`]]
- :getCap: pass:normal[xref:#IndividuallyCappedCrowdsale-getCap-address-[`getCap`]]
- :getContribution: pass:normal[xref:#IndividuallyCappedCrowdsale-getContribution-address-[`getContribution`]]
- :_preValidatePurchase: pass:normal[xref:#IndividuallyCappedCrowdsale-_preValidatePurchase-address-uint256-[`_preValidatePurchase`]]
- :_updatePurchasingState: pass:normal[xref:#IndividuallyCappedCrowdsale-_updatePurchasingState-address-uint256-[`_updatePurchasingState`]]
- [.contract]
- [[IndividuallyCappedCrowdsale]]
- === `IndividuallyCappedCrowdsale`
- Crowdsale with per-beneficiary caps.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .CapperRole
- * {xref-CapperRole-onlyCapper}[`onlyCapper()`]
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-IndividuallyCappedCrowdsale-setCap}[`setCap(beneficiary, cap)`]
- * {xref-IndividuallyCappedCrowdsale-getCap}[`getCap(beneficiary)`]
- * {xref-IndividuallyCappedCrowdsale-getContribution}[`getContribution(beneficiary)`]
- * {xref-IndividuallyCappedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-IndividuallyCappedCrowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- [.contract-subindex-inherited]
- .CapperRole
- * {xref-CapperRole-constructor}[`constructor()`]
- * {xref-CapperRole-isCapper}[`isCapper(account)`]
- * {xref-CapperRole-addCapper}[`addCapper(account)`]
- * {xref-CapperRole-renounceCapper}[`renounceCapper()`]
- * {xref-CapperRole-_addCapper}[`_addCapper(account)`]
- * {xref-CapperRole-_removeCapper}[`_removeCapper(account)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .CapperRole
- * {xref-CapperRole-CapperAdded}[`CapperAdded(account)`]
- * {xref-CapperRole-CapperRemoved}[`CapperRemoved(account)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[IndividuallyCappedCrowdsale-setCap-address-uint256-]]
- ==== `pass:normal[setCap([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#cap#)]` [.item-kind]#external#
- Sets a specific beneficiary's maximum contribution.
- [.contract-item]
- [[IndividuallyCappedCrowdsale-getCap-address-]]
- ==== `pass:normal[getCap([.var-type\]#address# [.var-name\]#beneficiary#) → [.var-type\]#uint256#]` [.item-kind]#public#
- Returns the cap of a specific beneficiary.
- [.contract-item]
- [[IndividuallyCappedCrowdsale-getContribution-address-]]
- ==== `pass:normal[getContribution([.var-type\]#address# [.var-name\]#beneficiary#) → [.var-type\]#uint256#]` [.item-kind]#public#
- Returns the amount contributed so far by a specific beneficiary.
- [.contract-item]
- [[IndividuallyCappedCrowdsale-_preValidatePurchase-address-uint256-]]
- ==== `pass:normal[_preValidatePurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Extend parent behavior requiring purchase to respect the beneficiary's funding cap.
- [.contract-item]
- [[IndividuallyCappedCrowdsale-_updatePurchasingState-address-uint256-]]
- ==== `pass:normal[_updatePurchasingState([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Extend parent behavior to update beneficiary contributions.
- :PausableCrowdsale: pass:normal[xref:#PausableCrowdsale[`PausableCrowdsale`]]
- :_preValidatePurchase: pass:normal[xref:#PausableCrowdsale-_preValidatePurchase-address-uint256-[`_preValidatePurchase`]]
- [.contract]
- [[PausableCrowdsale]]
- === `PausableCrowdsale`
- Extension of Crowdsale contract where purchases can be paused and unpaused by the pauser role.
- [.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]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-PausableCrowdsale-_preValidatePurchase}[`_preValidatePurchase(_beneficiary, _weiAmount)`]
- [.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]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.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]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[PausableCrowdsale-_preValidatePurchase-address-uint256-]]
- ==== `pass:normal[_preValidatePurchase([.var-type\]#address# [.var-name\]#_beneficiary#, [.var-type\]#uint256# [.var-name\]#_weiAmount#)]` [.item-kind]#internal#
- Validation of an incoming purchase. Use require statements to revert state when conditions are not met.
- Use super to concatenate validations.
- Adds the validation that the crowdsale must not be paused.
- :TimedCrowdsale: pass:normal[xref:#TimedCrowdsale[`TimedCrowdsale`]]
- :onlyWhileOpen: pass:normal[xref:#TimedCrowdsale-onlyWhileOpen--[`onlyWhileOpen`]]
- :constructor: pass:normal[xref:#TimedCrowdsale-constructor-uint256-uint256-[`constructor`]]
- :openingTime: pass:normal[xref:#TimedCrowdsale-openingTime--[`openingTime`]]
- :closingTime: pass:normal[xref:#TimedCrowdsale-closingTime--[`closingTime`]]
- :isOpen: pass:normal[xref:#TimedCrowdsale-isOpen--[`isOpen`]]
- :hasClosed: pass:normal[xref:#TimedCrowdsale-hasClosed--[`hasClosed`]]
- :_preValidatePurchase: pass:normal[xref:#TimedCrowdsale-_preValidatePurchase-address-uint256-[`_preValidatePurchase`]]
- :_extendTime: pass:normal[xref:#TimedCrowdsale-_extendTime-uint256-[`_extendTime`]]
- :TimedCrowdsaleExtended: pass:normal[xref:#TimedCrowdsale-TimedCrowdsaleExtended-uint256-uint256-[`TimedCrowdsaleExtended`]]
- [.contract]
- [[TimedCrowdsale]]
- === `TimedCrowdsale`
- Crowdsale accepting contributions only within a time frame.
- [.contract-index]
- .Modifiers
- --
- * {xref-TimedCrowdsale-onlyWhileOpen}[`onlyWhileOpen()`]
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-TimedCrowdsale-constructor}[`constructor(openingTime, closingTime)`]
- * {xref-TimedCrowdsale-openingTime}[`openingTime()`]
- * {xref-TimedCrowdsale-closingTime}[`closingTime()`]
- * {xref-TimedCrowdsale-isOpen}[`isOpen()`]
- * {xref-TimedCrowdsale-hasClosed}[`hasClosed()`]
- * {xref-TimedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-TimedCrowdsale-_extendTime}[`_extendTime(newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- * {xref-TimedCrowdsale-TimedCrowdsaleExtended}[`TimedCrowdsaleExtended(prevClosingTime, newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[TimedCrowdsale-onlyWhileOpen--]]
- ==== `pass:normal[onlyWhileOpen()]` [.item-kind]#modifier#
- Reverts if not in crowdsale time range.
- [.contract-item]
- [[TimedCrowdsale-constructor-uint256-uint256-]]
- ==== `pass:normal[constructor([.var-type\]#uint256# [.var-name\]#openingTime#, [.var-type\]#uint256# [.var-name\]#closingTime#)]` [.item-kind]#public#
- Constructor, takes crowdsale opening and closing times.
- [.contract-item]
- [[TimedCrowdsale-openingTime--]]
- ==== `pass:normal[openingTime() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[TimedCrowdsale-closingTime--]]
- ==== `pass:normal[closingTime() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[TimedCrowdsale-isOpen--]]
- ==== `pass:normal[isOpen() → [.var-type\]#bool#]` [.item-kind]#public#
- [.contract-item]
- [[TimedCrowdsale-hasClosed--]]
- ==== `pass:normal[hasClosed() → [.var-type\]#bool#]` [.item-kind]#public#
- Checks whether the period in which the crowdsale is open has already elapsed.
- [.contract-item]
- [[TimedCrowdsale-_preValidatePurchase-address-uint256-]]
- ==== `pass:normal[_preValidatePurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#weiAmount#)]` [.item-kind]#internal#
- Extend parent behavior requiring to be within contributing period.
- [.contract-item]
- [[TimedCrowdsale-_extendTime-uint256-]]
- ==== `pass:normal[_extendTime([.var-type\]#uint256# [.var-name\]#newClosingTime#)]` [.item-kind]#internal#
- Extend crowdsale.
- [.contract-item]
- [[TimedCrowdsale-TimedCrowdsaleExtended-uint256-uint256-]]
- ==== `pass:normal[TimedCrowdsaleExtended([.var-type\]#uint256# [.var-name\]#prevClosingTime#, [.var-type\]#uint256# [.var-name\]#newClosingTime#)]` [.item-kind]#event#
- :WhitelistCrowdsale: pass:normal[xref:#WhitelistCrowdsale[`WhitelistCrowdsale`]]
- :_preValidatePurchase: pass:normal[xref:#WhitelistCrowdsale-_preValidatePurchase-address-uint256-[`_preValidatePurchase`]]
- [.contract]
- [[WhitelistCrowdsale]]
- === `WhitelistCrowdsale`
- Crowdsale in which only whitelisted users can contribute.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .WhitelistedRole
- * {xref-WhitelistedRole-onlyWhitelisted}[`onlyWhitelisted()`]
- [.contract-subindex-inherited]
- .WhitelistAdminRole
- * {xref-WhitelistAdminRole-onlyWhitelistAdmin}[`onlyWhitelistAdmin()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-WhitelistCrowdsale-_preValidatePurchase}[`_preValidatePurchase(_beneficiary, _weiAmount)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-constructor}[`constructor(rate, wallet, token)`]
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .WhitelistedRole
- * {xref-WhitelistedRole-isWhitelisted}[`isWhitelisted(account)`]
- * {xref-WhitelistedRole-addWhitelisted}[`addWhitelisted(account)`]
- * {xref-WhitelistedRole-removeWhitelisted}[`removeWhitelisted(account)`]
- * {xref-WhitelistedRole-renounceWhitelisted}[`renounceWhitelisted()`]
- * {xref-WhitelistedRole-_addWhitelisted}[`_addWhitelisted(account)`]
- * {xref-WhitelistedRole-_removeWhitelisted}[`_removeWhitelisted(account)`]
- [.contract-subindex-inherited]
- .WhitelistAdminRole
- * {xref-WhitelistAdminRole-isWhitelistAdmin}[`isWhitelistAdmin(account)`]
- * {xref-WhitelistAdminRole-addWhitelistAdmin}[`addWhitelistAdmin(account)`]
- * {xref-WhitelistAdminRole-renounceWhitelistAdmin}[`renounceWhitelistAdmin()`]
- * {xref-WhitelistAdminRole-_addWhitelistAdmin}[`_addWhitelistAdmin(account)`]
- * {xref-WhitelistAdminRole-_removeWhitelistAdmin}[`_removeWhitelistAdmin(account)`]
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .WhitelistedRole
- * {xref-WhitelistedRole-WhitelistedAdded}[`WhitelistedAdded(account)`]
- * {xref-WhitelistedRole-WhitelistedRemoved}[`WhitelistedRemoved(account)`]
- [.contract-subindex-inherited]
- .WhitelistAdminRole
- * {xref-WhitelistAdminRole-WhitelistAdminAdded}[`WhitelistAdminAdded(account)`]
- * {xref-WhitelistAdminRole-WhitelistAdminRemoved}[`WhitelistAdminRemoved(account)`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[WhitelistCrowdsale-_preValidatePurchase-address-uint256-]]
- ==== `pass:normal[_preValidatePurchase([.var-type\]#address# [.var-name\]#_beneficiary#, [.var-type\]#uint256# [.var-name\]#_weiAmount#)]` [.item-kind]#internal#
- Extend parent behavior requiring beneficiary to be whitelisted. Note that no
- restriction is imposed on the account sending the transaction.
- == Distribution
- :FinalizableCrowdsale: pass:normal[xref:#FinalizableCrowdsale[`FinalizableCrowdsale`]]
- :constructor: pass:normal[xref:#FinalizableCrowdsale-constructor--[`constructor`]]
- :finalized: pass:normal[xref:#FinalizableCrowdsale-finalized--[`finalized`]]
- :finalize: pass:normal[xref:#FinalizableCrowdsale-finalize--[`finalize`]]
- :_finalization: pass:normal[xref:#FinalizableCrowdsale-_finalization--[`_finalization`]]
- :CrowdsaleFinalized: pass:normal[xref:#FinalizableCrowdsale-CrowdsaleFinalized--[`CrowdsaleFinalized`]]
- [.contract]
- [[FinalizableCrowdsale]]
- === `FinalizableCrowdsale`
- Extension of TimedCrowdsale with a one-off finalization action, where one
- can do extra work after finishing.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-onlyWhileOpen}[`onlyWhileOpen()`]
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-FinalizableCrowdsale-constructor}[`constructor()`]
- * {xref-FinalizableCrowdsale-finalized}[`finalized()`]
- * {xref-FinalizableCrowdsale-finalize}[`finalize()`]
- * {xref-FinalizableCrowdsale-_finalization}[`_finalization()`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-openingTime}[`openingTime()`]
- * {xref-TimedCrowdsale-closingTime}[`closingTime()`]
- * {xref-TimedCrowdsale-isOpen}[`isOpen()`]
- * {xref-TimedCrowdsale-hasClosed}[`hasClosed()`]
- * {xref-TimedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-TimedCrowdsale-_extendTime}[`_extendTime(newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- * {xref-FinalizableCrowdsale-CrowdsaleFinalized}[`CrowdsaleFinalized()`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-TimedCrowdsaleExtended}[`TimedCrowdsaleExtended(prevClosingTime, newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[FinalizableCrowdsale-constructor--]]
- ==== `pass:normal[constructor()]` [.item-kind]#internal#
- [.contract-item]
- [[FinalizableCrowdsale-finalized--]]
- ==== `pass:normal[finalized() → [.var-type\]#bool#]` [.item-kind]#public#
- [.contract-item]
- [[FinalizableCrowdsale-finalize--]]
- ==== `pass:normal[finalize()]` [.item-kind]#public#
- Must be called after crowdsale ends, to do some extra finalization
- work. Calls the contract's finalization function.
- [.contract-item]
- [[FinalizableCrowdsale-_finalization--]]
- ==== `pass:normal[_finalization()]` [.item-kind]#internal#
- Can be overridden to add finalization logic. The overriding function
- should call super._finalization() to ensure the chain of finalization is
- executed entirely.
- [.contract-item]
- [[FinalizableCrowdsale-CrowdsaleFinalized--]]
- ==== `pass:normal[CrowdsaleFinalized()]` [.item-kind]#event#
- :PostDeliveryCrowdsale: pass:normal[xref:#PostDeliveryCrowdsale[`PostDeliveryCrowdsale`]]
- :withdrawTokens: pass:normal[xref:#PostDeliveryCrowdsale-withdrawTokens-address-[`withdrawTokens`]]
- :balanceOf: pass:normal[xref:#PostDeliveryCrowdsale-balanceOf-address-[`balanceOf`]]
- :_processPurchase: pass:normal[xref:#PostDeliveryCrowdsale-_processPurchase-address-uint256-[`_processPurchase`]]
- [.contract]
- [[PostDeliveryCrowdsale]]
- === `PostDeliveryCrowdsale`
- Crowdsale that locks tokens from withdrawal until it ends.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-onlyWhileOpen}[`onlyWhileOpen()`]
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-PostDeliveryCrowdsale-withdrawTokens}[`withdrawTokens(beneficiary)`]
- * {xref-PostDeliveryCrowdsale-balanceOf}[`balanceOf(account)`]
- * {xref-PostDeliveryCrowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-constructor}[`constructor(openingTime, closingTime)`]
- * {xref-TimedCrowdsale-openingTime}[`openingTime()`]
- * {xref-TimedCrowdsale-closingTime}[`closingTime()`]
- * {xref-TimedCrowdsale-isOpen}[`isOpen()`]
- * {xref-TimedCrowdsale-hasClosed}[`hasClosed()`]
- * {xref-TimedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-TimedCrowdsale-_extendTime}[`_extendTime(newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- * {xref-Crowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-TimedCrowdsaleExtended}[`TimedCrowdsaleExtended(prevClosingTime, newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[PostDeliveryCrowdsale-withdrawTokens-address-]]
- ==== `pass:normal[withdrawTokens([.var-type\]#address# [.var-name\]#beneficiary#)]` [.item-kind]#public#
- Withdraw tokens only after crowdsale ends.
- [.contract-item]
- [[PostDeliveryCrowdsale-balanceOf-address-]]
- ==== `pass:normal[balanceOf([.var-type\]#address# [.var-name\]#account#) → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[PostDeliveryCrowdsale-_processPurchase-address-uint256-]]
- ==== `pass:normal[_processPurchase([.var-type\]#address# [.var-name\]#beneficiary#, [.var-type\]#uint256# [.var-name\]#tokenAmount#)]` [.item-kind]#internal#
- Overrides parent by storing due balances, and delivering tokens to the vault instead of the end user. This
- ensures that the tokens will be available by the time they are withdrawn (which may not be the case if
- `_deliverTokens` was called later).
- :RefundableCrowdsale: pass:normal[xref:#RefundableCrowdsale[`RefundableCrowdsale`]]
- :constructor: pass:normal[xref:#RefundableCrowdsale-constructor-uint256-[`constructor`]]
- :goal: pass:normal[xref:#RefundableCrowdsale-goal--[`goal`]]
- :claimRefund: pass:normal[xref:#RefundableCrowdsale-claimRefund-address-payable-[`claimRefund`]]
- :goalReached: pass:normal[xref:#RefundableCrowdsale-goalReached--[`goalReached`]]
- :_finalization: pass:normal[xref:#RefundableCrowdsale-_finalization--[`_finalization`]]
- :_forwardFunds: pass:normal[xref:#RefundableCrowdsale-_forwardFunds--[`_forwardFunds`]]
- [.contract]
- [[RefundableCrowdsale]]
- === `RefundableCrowdsale`
- Extension of `FinalizableCrowdsale` contract that adds a funding goal, and the possibility of users
- getting a refund if goal is not met.
- Deprecated, use `RefundablePostDeliveryCrowdsale` instead. Note that if you allow tokens to be traded before the goal
- is met, then an attack is possible in which the attacker purchases tokens from the crowdsale and when they sees that
- the goal is unlikely to be met, they sell their tokens (possibly at a discount). The attacker will be refunded when
- the crowdsale is finalized, and the users that purchased from them will be left with worthless tokens.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .FinalizableCrowdsale
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-onlyWhileOpen}[`onlyWhileOpen()`]
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-RefundableCrowdsale-constructor}[`constructor(goal)`]
- * {xref-RefundableCrowdsale-goal}[`goal()`]
- * {xref-RefundableCrowdsale-claimRefund}[`claimRefund(refundee)`]
- * {xref-RefundableCrowdsale-goalReached}[`goalReached()`]
- * {xref-RefundableCrowdsale-_finalization}[`_finalization()`]
- * {xref-RefundableCrowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .FinalizableCrowdsale
- * {xref-FinalizableCrowdsale-finalized}[`finalized()`]
- * {xref-FinalizableCrowdsale-finalize}[`finalize()`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-openingTime}[`openingTime()`]
- * {xref-TimedCrowdsale-closingTime}[`closingTime()`]
- * {xref-TimedCrowdsale-isOpen}[`isOpen()`]
- * {xref-TimedCrowdsale-hasClosed}[`hasClosed()`]
- * {xref-TimedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-TimedCrowdsale-_extendTime}[`_extendTime(newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .FinalizableCrowdsale
- * {xref-FinalizableCrowdsale-CrowdsaleFinalized}[`CrowdsaleFinalized()`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-TimedCrowdsaleExtended}[`TimedCrowdsaleExtended(prevClosingTime, newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[RefundableCrowdsale-constructor-uint256-]]
- ==== `pass:normal[constructor([.var-type\]#uint256# [.var-name\]#goal#)]` [.item-kind]#public#
- Constructor, creates RefundEscrow.
- [.contract-item]
- [[RefundableCrowdsale-goal--]]
- ==== `pass:normal[goal() → [.var-type\]#uint256#]` [.item-kind]#public#
- [.contract-item]
- [[RefundableCrowdsale-claimRefund-address-payable-]]
- ==== `pass:normal[claimRefund([.var-type\]#address payable# [.var-name\]#refundee#)]` [.item-kind]#public#
- Investors can claim refunds here if crowdsale is unsuccessful.
- [.contract-item]
- [[RefundableCrowdsale-goalReached--]]
- ==== `pass:normal[goalReached() → [.var-type\]#bool#]` [.item-kind]#public#
- Checks whether funding goal was reached.
- [.contract-item]
- [[RefundableCrowdsale-_finalization--]]
- ==== `pass:normal[_finalization()]` [.item-kind]#internal#
- Escrow finalization task, called when finalize() is called.
- [.contract-item]
- [[RefundableCrowdsale-_forwardFunds--]]
- ==== `pass:normal[_forwardFunds()]` [.item-kind]#internal#
- Overrides Crowdsale fund forwarding, sending funds to escrow.
- :RefundablePostDeliveryCrowdsale: pass:normal[xref:#RefundablePostDeliveryCrowdsale[`RefundablePostDeliveryCrowdsale`]]
- :withdrawTokens: pass:normal[xref:#RefundablePostDeliveryCrowdsale-withdrawTokens-address-[`withdrawTokens`]]
- [.contract]
- [[RefundablePostDeliveryCrowdsale]]
- === `RefundablePostDeliveryCrowdsale`
- Extension of RefundableCrowdsale contract that only delivers the tokens
- once the crowdsale has closed and the goal met, preventing refunds to be issued
- to token holders.
- [.contract-index]
- .Modifiers
- --
- [.contract-subindex-inherited]
- .PostDeliveryCrowdsale
- [.contract-subindex-inherited]
- .RefundableCrowdsale
- [.contract-subindex-inherited]
- .FinalizableCrowdsale
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-onlyWhileOpen}[`onlyWhileOpen()`]
- [.contract-subindex-inherited]
- .Crowdsale
- [.contract-subindex-inherited]
- .ReentrancyGuard
- * {xref-ReentrancyGuard-nonReentrant}[`nonReentrant()`]
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-index]
- .Functions
- --
- * {xref-RefundablePostDeliveryCrowdsale-withdrawTokens}[`withdrawTokens(beneficiary)`]
- [.contract-subindex-inherited]
- .PostDeliveryCrowdsale
- * {xref-PostDeliveryCrowdsale-balanceOf}[`balanceOf(account)`]
- * {xref-PostDeliveryCrowdsale-_processPurchase}[`_processPurchase(beneficiary, tokenAmount)`]
- [.contract-subindex-inherited]
- .RefundableCrowdsale
- * {xref-RefundableCrowdsale-constructor}[`constructor(goal)`]
- * {xref-RefundableCrowdsale-goal}[`goal()`]
- * {xref-RefundableCrowdsale-claimRefund}[`claimRefund(refundee)`]
- * {xref-RefundableCrowdsale-goalReached}[`goalReached()`]
- * {xref-RefundableCrowdsale-_finalization}[`_finalization()`]
- * {xref-RefundableCrowdsale-_forwardFunds}[`_forwardFunds()`]
- [.contract-subindex-inherited]
- .FinalizableCrowdsale
- * {xref-FinalizableCrowdsale-finalized}[`finalized()`]
- * {xref-FinalizableCrowdsale-finalize}[`finalize()`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-openingTime}[`openingTime()`]
- * {xref-TimedCrowdsale-closingTime}[`closingTime()`]
- * {xref-TimedCrowdsale-isOpen}[`isOpen()`]
- * {xref-TimedCrowdsale-hasClosed}[`hasClosed()`]
- * {xref-TimedCrowdsale-_preValidatePurchase}[`_preValidatePurchase(beneficiary, weiAmount)`]
- * {xref-TimedCrowdsale-_extendTime}[`_extendTime(newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-fallback}[`fallback()`]
- * {xref-Crowdsale-token}[`token()`]
- * {xref-Crowdsale-wallet}[`wallet()`]
- * {xref-Crowdsale-rate}[`rate()`]
- * {xref-Crowdsale-weiRaised}[`weiRaised()`]
- * {xref-Crowdsale-buyTokens}[`buyTokens(beneficiary)`]
- * {xref-Crowdsale-_postValidatePurchase}[`_postValidatePurchase(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_deliverTokens}[`_deliverTokens(beneficiary, tokenAmount)`]
- * {xref-Crowdsale-_updatePurchasingState}[`_updatePurchasingState(beneficiary, weiAmount)`]
- * {xref-Crowdsale-_getTokenAmount}[`_getTokenAmount(weiAmount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- * {xref-Context-_msgSender}[`_msgSender()`]
- * {xref-Context-_msgData}[`_msgData()`]
- --
- [.contract-index]
- .Events
- --
- [.contract-subindex-inherited]
- .PostDeliveryCrowdsale
- [.contract-subindex-inherited]
- .RefundableCrowdsale
- [.contract-subindex-inherited]
- .FinalizableCrowdsale
- * {xref-FinalizableCrowdsale-CrowdsaleFinalized}[`CrowdsaleFinalized()`]
- [.contract-subindex-inherited]
- .TimedCrowdsale
- * {xref-TimedCrowdsale-TimedCrowdsaleExtended}[`TimedCrowdsaleExtended(prevClosingTime, newClosingTime)`]
- [.contract-subindex-inherited]
- .Crowdsale
- * {xref-Crowdsale-TokensPurchased}[`TokensPurchased(purchaser, beneficiary, value, amount)`]
- [.contract-subindex-inherited]
- .ReentrancyGuard
- [.contract-subindex-inherited]
- .Context
- --
- [.contract-item]
- [[RefundablePostDeliveryCrowdsale-withdrawTokens-address-]]
- ==== `pass:normal[withdrawTokens([.var-type\]#address# [.var-name\]#beneficiary#)]` [.item-kind]#public#
|