GSN.adoc 154 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944
  1. :Context: pass:normal[xref:GSN.adoc#Context[`Context`]]
  2. :xref-Context: xref:GSN.adoc#Context
  3. :Context-constructor: pass:normal[xref:GSN.adoc#Context-constructor--[`Context.constructor`]]
  4. :xref-Context-constructor: xref:GSN.adoc#Context-constructor--
  5. :Context-_msgSender: pass:normal[xref:GSN.adoc#Context-_msgSender--[`Context._msgSender`]]
  6. :xref-Context-_msgSender: xref:GSN.adoc#Context-_msgSender--
  7. :Context-_msgData: pass:normal[xref:GSN.adoc#Context-_msgData--[`Context._msgData`]]
  8. :xref-Context-_msgData: xref:GSN.adoc#Context-_msgData--
  9. :GSNRecipient: pass:normal[xref:GSN.adoc#GSNRecipient[`GSNRecipient`]]
  10. :xref-GSNRecipient: xref:GSN.adoc#GSNRecipient
  11. :GSNRecipient-POST_RELAYED_CALL_MAX_GAS: pass:normal[xref:GSN.adoc#GSNRecipient-POST_RELAYED_CALL_MAX_GAS-uint256[`GSNRecipient.POST_RELAYED_CALL_MAX_GAS`]]
  12. :xref-GSNRecipient-POST_RELAYED_CALL_MAX_GAS: xref:GSN.adoc#GSNRecipient-POST_RELAYED_CALL_MAX_GAS-uint256
  13. :GSNRecipient-getHubAddr: pass:normal[xref:GSN.adoc#GSNRecipient-getHubAddr--[`GSNRecipient.getHubAddr`]]
  14. :xref-GSNRecipient-getHubAddr: xref:GSN.adoc#GSNRecipient-getHubAddr--
  15. :GSNRecipient-_upgradeRelayHub: pass:normal[xref:GSN.adoc#GSNRecipient-_upgradeRelayHub-address-[`GSNRecipient._upgradeRelayHub`]]
  16. :xref-GSNRecipient-_upgradeRelayHub: xref:GSN.adoc#GSNRecipient-_upgradeRelayHub-address-
  17. :GSNRecipient-relayHubVersion: pass:normal[xref:GSN.adoc#GSNRecipient-relayHubVersion--[`GSNRecipient.relayHubVersion`]]
  18. :xref-GSNRecipient-relayHubVersion: xref:GSN.adoc#GSNRecipient-relayHubVersion--
  19. :GSNRecipient-_withdrawDeposits: pass:normal[xref:GSN.adoc#GSNRecipient-_withdrawDeposits-uint256-address-payable-[`GSNRecipient._withdrawDeposits`]]
  20. :xref-GSNRecipient-_withdrawDeposits: xref:GSN.adoc#GSNRecipient-_withdrawDeposits-uint256-address-payable-
  21. :GSNRecipient-_msgSender: pass:normal[xref:GSN.adoc#GSNRecipient-_msgSender--[`GSNRecipient._msgSender`]]
  22. :xref-GSNRecipient-_msgSender: xref:GSN.adoc#GSNRecipient-_msgSender--
  23. :GSNRecipient-_msgData: pass:normal[xref:GSN.adoc#GSNRecipient-_msgData--[`GSNRecipient._msgData`]]
  24. :xref-GSNRecipient-_msgData: xref:GSN.adoc#GSNRecipient-_msgData--
  25. :GSNRecipient-preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-preRelayedCall-bytes-[`GSNRecipient.preRelayedCall`]]
  26. :xref-GSNRecipient-preRelayedCall: xref:GSN.adoc#GSNRecipient-preRelayedCall-bytes-
  27. :GSNRecipient-_preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_preRelayedCall-bytes-[`GSNRecipient._preRelayedCall`]]
  28. :xref-GSNRecipient-_preRelayedCall: xref:GSN.adoc#GSNRecipient-_preRelayedCall-bytes-
  29. :GSNRecipient-postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipient.postRelayedCall`]]
  30. :xref-GSNRecipient-postRelayedCall: xref:GSN.adoc#GSNRecipient-postRelayedCall-bytes-bool-uint256-bytes32-
  31. :GSNRecipient-_postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipient._postRelayedCall`]]
  32. :xref-GSNRecipient-_postRelayedCall: xref:GSN.adoc#GSNRecipient-_postRelayedCall-bytes-bool-uint256-bytes32-
  33. :GSNRecipient-_approveRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_approveRelayedCall--[`GSNRecipient._approveRelayedCall`]]
  34. :xref-GSNRecipient-_approveRelayedCall: xref:GSN.adoc#GSNRecipient-_approveRelayedCall--
  35. :GSNRecipient-_approveRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_approveRelayedCall-bytes-[`GSNRecipient._approveRelayedCall`]]
  36. :xref-GSNRecipient-_approveRelayedCall: xref:GSN.adoc#GSNRecipient-_approveRelayedCall-bytes-
  37. :GSNRecipient-_rejectRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipient-_rejectRelayedCall-uint256-[`GSNRecipient._rejectRelayedCall`]]
  38. :xref-GSNRecipient-_rejectRelayedCall: xref:GSN.adoc#GSNRecipient-_rejectRelayedCall-uint256-
  39. :GSNRecipient-_computeCharge: pass:normal[xref:GSN.adoc#GSNRecipient-_computeCharge-uint256-uint256-uint256-[`GSNRecipient._computeCharge`]]
  40. :xref-GSNRecipient-_computeCharge: xref:GSN.adoc#GSNRecipient-_computeCharge-uint256-uint256-uint256-
  41. :GSNRecipient-RelayHubChanged: pass:normal[xref:GSN.adoc#GSNRecipient-RelayHubChanged-address-address-[`GSNRecipient.RelayHubChanged`]]
  42. :xref-GSNRecipient-RelayHubChanged: xref:GSN.adoc#GSNRecipient-RelayHubChanged-address-address-
  43. :GSNRecipientERC20Fee: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee[`GSNRecipientERC20Fee`]]
  44. :xref-GSNRecipientERC20Fee: xref:GSN.adoc#GSNRecipientERC20Fee
  45. :GSNRecipientERC20Fee-constructor: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-constructor-string-string-[`GSNRecipientERC20Fee.constructor`]]
  46. :xref-GSNRecipientERC20Fee-constructor: xref:GSN.adoc#GSNRecipientERC20Fee-constructor-string-string-
  47. :GSNRecipientERC20Fee-token: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-token--[`GSNRecipientERC20Fee.token`]]
  48. :xref-GSNRecipientERC20Fee-token: xref:GSN.adoc#GSNRecipientERC20Fee-token--
  49. :GSNRecipientERC20Fee-_mint: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-_mint-address-uint256-[`GSNRecipientERC20Fee._mint`]]
  50. :xref-GSNRecipientERC20Fee-_mint: xref:GSN.adoc#GSNRecipientERC20Fee-_mint-address-uint256-
  51. :GSNRecipientERC20Fee-acceptRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`GSNRecipientERC20Fee.acceptRelayedCall`]]
  52. :xref-GSNRecipientERC20Fee-acceptRelayedCall: xref:GSN.adoc#GSNRecipientERC20Fee-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-
  53. :GSNRecipientERC20Fee-_preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-_preRelayedCall-bytes-[`GSNRecipientERC20Fee._preRelayedCall`]]
  54. :xref-GSNRecipientERC20Fee-_preRelayedCall: xref:GSN.adoc#GSNRecipientERC20Fee-_preRelayedCall-bytes-
  55. :GSNRecipientERC20Fee-_postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientERC20Fee-_postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipientERC20Fee._postRelayedCall`]]
  56. :xref-GSNRecipientERC20Fee-_postRelayedCall: xref:GSN.adoc#GSNRecipientERC20Fee-_postRelayedCall-bytes-bool-uint256-bytes32-
  57. :__unstable__ERC20PrimaryAdmin: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin[`__unstable__ERC20PrimaryAdmin`]]
  58. :xref-__unstable__ERC20PrimaryAdmin: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin
  59. :__unstable__ERC20PrimaryAdmin-constructor: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-constructor-string-string-uint8-[`__unstable__ERC20PrimaryAdmin.constructor`]]
  60. :xref-__unstable__ERC20PrimaryAdmin-constructor: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-constructor-string-string-uint8-
  61. :__unstable__ERC20PrimaryAdmin-mint: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-mint-address-uint256-[`__unstable__ERC20PrimaryAdmin.mint`]]
  62. :xref-__unstable__ERC20PrimaryAdmin-mint: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-mint-address-uint256-
  63. :__unstable__ERC20PrimaryAdmin-allowance: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-allowance-address-address-[`__unstable__ERC20PrimaryAdmin.allowance`]]
  64. :xref-__unstable__ERC20PrimaryAdmin-allowance: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-allowance-address-address-
  65. :__unstable__ERC20PrimaryAdmin-_approve: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-_approve-address-address-uint256-[`__unstable__ERC20PrimaryAdmin._approve`]]
  66. :xref-__unstable__ERC20PrimaryAdmin-_approve: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-_approve-address-address-uint256-
  67. :__unstable__ERC20PrimaryAdmin-transferFrom: pass:normal[xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-transferFrom-address-address-uint256-[`__unstable__ERC20PrimaryAdmin.transferFrom`]]
  68. :xref-__unstable__ERC20PrimaryAdmin-transferFrom: xref:GSN.adoc#__unstable__ERC20PrimaryAdmin-transferFrom-address-address-uint256-
  69. :GSNRecipientSignature: pass:normal[xref:GSN.adoc#GSNRecipientSignature[`GSNRecipientSignature`]]
  70. :xref-GSNRecipientSignature: xref:GSN.adoc#GSNRecipientSignature
  71. :GSNRecipientSignature-constructor: pass:normal[xref:GSN.adoc#GSNRecipientSignature-constructor-address-[`GSNRecipientSignature.constructor`]]
  72. :xref-GSNRecipientSignature-constructor: xref:GSN.adoc#GSNRecipientSignature-constructor-address-
  73. :GSNRecipientSignature-acceptRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientSignature-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`GSNRecipientSignature.acceptRelayedCall`]]
  74. :xref-GSNRecipientSignature-acceptRelayedCall: xref:GSN.adoc#GSNRecipientSignature-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-
  75. :GSNRecipientSignature-_preRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientSignature-_preRelayedCall-bytes-[`GSNRecipientSignature._preRelayedCall`]]
  76. :xref-GSNRecipientSignature-_preRelayedCall: xref:GSN.adoc#GSNRecipientSignature-_preRelayedCall-bytes-
  77. :GSNRecipientSignature-_postRelayedCall: pass:normal[xref:GSN.adoc#GSNRecipientSignature-_postRelayedCall-bytes-bool-uint256-bytes32-[`GSNRecipientSignature._postRelayedCall`]]
  78. :xref-GSNRecipientSignature-_postRelayedCall: xref:GSN.adoc#GSNRecipientSignature-_postRelayedCall-bytes-bool-uint256-bytes32-
  79. :IRelayHub: pass:normal[xref:GSN.adoc#IRelayHub[`IRelayHub`]]
  80. :xref-IRelayHub: xref:GSN.adoc#IRelayHub
  81. :IRelayHub-stake: pass:normal[xref:GSN.adoc#IRelayHub-stake-address-uint256-[`IRelayHub.stake`]]
  82. :xref-IRelayHub-stake: xref:GSN.adoc#IRelayHub-stake-address-uint256-
  83. :IRelayHub-registerRelay: pass:normal[xref:GSN.adoc#IRelayHub-registerRelay-uint256-string-[`IRelayHub.registerRelay`]]
  84. :xref-IRelayHub-registerRelay: xref:GSN.adoc#IRelayHub-registerRelay-uint256-string-
  85. :IRelayHub-removeRelayByOwner: pass:normal[xref:GSN.adoc#IRelayHub-removeRelayByOwner-address-[`IRelayHub.removeRelayByOwner`]]
  86. :xref-IRelayHub-removeRelayByOwner: xref:GSN.adoc#IRelayHub-removeRelayByOwner-address-
  87. :IRelayHub-unstake: pass:normal[xref:GSN.adoc#IRelayHub-unstake-address-[`IRelayHub.unstake`]]
  88. :xref-IRelayHub-unstake: xref:GSN.adoc#IRelayHub-unstake-address-
  89. :IRelayHub-getRelay: pass:normal[xref:GSN.adoc#IRelayHub-getRelay-address-[`IRelayHub.getRelay`]]
  90. :xref-IRelayHub-getRelay: xref:GSN.adoc#IRelayHub-getRelay-address-
  91. :IRelayHub-depositFor: pass:normal[xref:GSN.adoc#IRelayHub-depositFor-address-[`IRelayHub.depositFor`]]
  92. :xref-IRelayHub-depositFor: xref:GSN.adoc#IRelayHub-depositFor-address-
  93. :IRelayHub-balanceOf: pass:normal[xref:GSN.adoc#IRelayHub-balanceOf-address-[`IRelayHub.balanceOf`]]
  94. :xref-IRelayHub-balanceOf: xref:GSN.adoc#IRelayHub-balanceOf-address-
  95. :IRelayHub-withdraw: pass:normal[xref:GSN.adoc#IRelayHub-withdraw-uint256-address-payable-[`IRelayHub.withdraw`]]
  96. :xref-IRelayHub-withdraw: xref:GSN.adoc#IRelayHub-withdraw-uint256-address-payable-
  97. :IRelayHub-canRelay: pass:normal[xref:GSN.adoc#IRelayHub-canRelay-address-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-[`IRelayHub.canRelay`]]
  98. :xref-IRelayHub-canRelay: xref:GSN.adoc#IRelayHub-canRelay-address-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-
  99. :IRelayHub-relayCall: pass:normal[xref:GSN.adoc#IRelayHub-relayCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-[`IRelayHub.relayCall`]]
  100. :xref-IRelayHub-relayCall: xref:GSN.adoc#IRelayHub-relayCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-
  101. :IRelayHub-requiredGas: pass:normal[xref:GSN.adoc#IRelayHub-requiredGas-uint256-[`IRelayHub.requiredGas`]]
  102. :xref-IRelayHub-requiredGas: xref:GSN.adoc#IRelayHub-requiredGas-uint256-
  103. :IRelayHub-maxPossibleCharge: pass:normal[xref:GSN.adoc#IRelayHub-maxPossibleCharge-uint256-uint256-uint256-[`IRelayHub.maxPossibleCharge`]]
  104. :xref-IRelayHub-maxPossibleCharge: xref:GSN.adoc#IRelayHub-maxPossibleCharge-uint256-uint256-uint256-
  105. :IRelayHub-penalizeRepeatedNonce: pass:normal[xref:GSN.adoc#IRelayHub-penalizeRepeatedNonce-bytes-bytes-bytes-bytes-[`IRelayHub.penalizeRepeatedNonce`]]
  106. :xref-IRelayHub-penalizeRepeatedNonce: xref:GSN.adoc#IRelayHub-penalizeRepeatedNonce-bytes-bytes-bytes-bytes-
  107. :IRelayHub-penalizeIllegalTransaction: pass:normal[xref:GSN.adoc#IRelayHub-penalizeIllegalTransaction-bytes-bytes-[`IRelayHub.penalizeIllegalTransaction`]]
  108. :xref-IRelayHub-penalizeIllegalTransaction: xref:GSN.adoc#IRelayHub-penalizeIllegalTransaction-bytes-bytes-
  109. :IRelayHub-getNonce: pass:normal[xref:GSN.adoc#IRelayHub-getNonce-address-[`IRelayHub.getNonce`]]
  110. :xref-IRelayHub-getNonce: xref:GSN.adoc#IRelayHub-getNonce-address-
  111. :IRelayHub-Staked: pass:normal[xref:GSN.adoc#IRelayHub-Staked-address-uint256-uint256-[`IRelayHub.Staked`]]
  112. :xref-IRelayHub-Staked: xref:GSN.adoc#IRelayHub-Staked-address-uint256-uint256-
  113. :IRelayHub-RelayAdded: pass:normal[xref:GSN.adoc#IRelayHub-RelayAdded-address-address-uint256-uint256-uint256-string-[`IRelayHub.RelayAdded`]]
  114. :xref-IRelayHub-RelayAdded: xref:GSN.adoc#IRelayHub-RelayAdded-address-address-uint256-uint256-uint256-string-
  115. :IRelayHub-RelayRemoved: pass:normal[xref:GSN.adoc#IRelayHub-RelayRemoved-address-uint256-[`IRelayHub.RelayRemoved`]]
  116. :xref-IRelayHub-RelayRemoved: xref:GSN.adoc#IRelayHub-RelayRemoved-address-uint256-
  117. :IRelayHub-Unstaked: pass:normal[xref:GSN.adoc#IRelayHub-Unstaked-address-uint256-[`IRelayHub.Unstaked`]]
  118. :xref-IRelayHub-Unstaked: xref:GSN.adoc#IRelayHub-Unstaked-address-uint256-
  119. :IRelayHub-Deposited: pass:normal[xref:GSN.adoc#IRelayHub-Deposited-address-address-uint256-[`IRelayHub.Deposited`]]
  120. :xref-IRelayHub-Deposited: xref:GSN.adoc#IRelayHub-Deposited-address-address-uint256-
  121. :IRelayHub-Withdrawn: pass:normal[xref:GSN.adoc#IRelayHub-Withdrawn-address-address-uint256-[`IRelayHub.Withdrawn`]]
  122. :xref-IRelayHub-Withdrawn: xref:GSN.adoc#IRelayHub-Withdrawn-address-address-uint256-
  123. :IRelayHub-CanRelayFailed: pass:normal[xref:GSN.adoc#IRelayHub-CanRelayFailed-address-address-address-bytes4-uint256-[`IRelayHub.CanRelayFailed`]]
  124. :xref-IRelayHub-CanRelayFailed: xref:GSN.adoc#IRelayHub-CanRelayFailed-address-address-address-bytes4-uint256-
  125. :IRelayHub-TransactionRelayed: pass:normal[xref:GSN.adoc#IRelayHub-TransactionRelayed-address-address-address-bytes4-enum-IRelayHub-RelayCallStatus-uint256-[`IRelayHub.TransactionRelayed`]]
  126. :xref-IRelayHub-TransactionRelayed: xref:GSN.adoc#IRelayHub-TransactionRelayed-address-address-address-bytes4-enum-IRelayHub-RelayCallStatus-uint256-
  127. :IRelayHub-Penalized: pass:normal[xref:GSN.adoc#IRelayHub-Penalized-address-address-uint256-[`IRelayHub.Penalized`]]
  128. :xref-IRelayHub-Penalized: xref:GSN.adoc#IRelayHub-Penalized-address-address-uint256-
  129. :IRelayRecipient: pass:normal[xref:GSN.adoc#IRelayRecipient[`IRelayRecipient`]]
  130. :xref-IRelayRecipient: xref:GSN.adoc#IRelayRecipient
  131. :IRelayRecipient-getHubAddr: pass:normal[xref:GSN.adoc#IRelayRecipient-getHubAddr--[`IRelayRecipient.getHubAddr`]]
  132. :xref-IRelayRecipient-getHubAddr: xref:GSN.adoc#IRelayRecipient-getHubAddr--
  133. :IRelayRecipient-acceptRelayedCall: pass:normal[xref:GSN.adoc#IRelayRecipient-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`IRelayRecipient.acceptRelayedCall`]]
  134. :xref-IRelayRecipient-acceptRelayedCall: xref:GSN.adoc#IRelayRecipient-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-
  135. :IRelayRecipient-preRelayedCall: pass:normal[xref:GSN.adoc#IRelayRecipient-preRelayedCall-bytes-[`IRelayRecipient.preRelayedCall`]]
  136. :xref-IRelayRecipient-preRelayedCall: xref:GSN.adoc#IRelayRecipient-preRelayedCall-bytes-
  137. :IRelayRecipient-postRelayedCall: pass:normal[xref:GSN.adoc#IRelayRecipient-postRelayedCall-bytes-bool-uint256-bytes32-[`IRelayRecipient.postRelayedCall`]]
  138. :xref-IRelayRecipient-postRelayedCall: xref:GSN.adoc#IRelayRecipient-postRelayedCall-bytes-bool-uint256-bytes32-
  139. :Crowdsale: pass:normal[xref:crowdsale.adoc#Crowdsale[`Crowdsale`]]
  140. :xref-Crowdsale: xref:crowdsale.adoc#Crowdsale
  141. :Crowdsale-constructor: pass:normal[xref:crowdsale.adoc#Crowdsale-constructor-uint256-address-payable-contract-IERC20-[`Crowdsale.constructor`]]
  142. :xref-Crowdsale-constructor: xref:crowdsale.adoc#Crowdsale-constructor-uint256-address-payable-contract-IERC20-
  143. :Crowdsale-fallback: pass:normal[xref:crowdsale.adoc#Crowdsale-fallback--[`Crowdsale.fallback`]]
  144. :xref-Crowdsale-fallback: xref:crowdsale.adoc#Crowdsale-fallback--
  145. :Crowdsale-token: pass:normal[xref:crowdsale.adoc#Crowdsale-token--[`Crowdsale.token`]]
  146. :xref-Crowdsale-token: xref:crowdsale.adoc#Crowdsale-token--
  147. :Crowdsale-wallet: pass:normal[xref:crowdsale.adoc#Crowdsale-wallet--[`Crowdsale.wallet`]]
  148. :xref-Crowdsale-wallet: xref:crowdsale.adoc#Crowdsale-wallet--
  149. :Crowdsale-rate: pass:normal[xref:crowdsale.adoc#Crowdsale-rate--[`Crowdsale.rate`]]
  150. :xref-Crowdsale-rate: xref:crowdsale.adoc#Crowdsale-rate--
  151. :Crowdsale-weiRaised: pass:normal[xref:crowdsale.adoc#Crowdsale-weiRaised--[`Crowdsale.weiRaised`]]
  152. :xref-Crowdsale-weiRaised: xref:crowdsale.adoc#Crowdsale-weiRaised--
  153. :Crowdsale-buyTokens: pass:normal[xref:crowdsale.adoc#Crowdsale-buyTokens-address-[`Crowdsale.buyTokens`]]
  154. :xref-Crowdsale-buyTokens: xref:crowdsale.adoc#Crowdsale-buyTokens-address-
  155. :Crowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#Crowdsale-_preValidatePurchase-address-uint256-[`Crowdsale._preValidatePurchase`]]
  156. :xref-Crowdsale-_preValidatePurchase: xref:crowdsale.adoc#Crowdsale-_preValidatePurchase-address-uint256-
  157. :Crowdsale-_postValidatePurchase: pass:normal[xref:crowdsale.adoc#Crowdsale-_postValidatePurchase-address-uint256-[`Crowdsale._postValidatePurchase`]]
  158. :xref-Crowdsale-_postValidatePurchase: xref:crowdsale.adoc#Crowdsale-_postValidatePurchase-address-uint256-
  159. :Crowdsale-_deliverTokens: pass:normal[xref:crowdsale.adoc#Crowdsale-_deliverTokens-address-uint256-[`Crowdsale._deliverTokens`]]
  160. :xref-Crowdsale-_deliverTokens: xref:crowdsale.adoc#Crowdsale-_deliverTokens-address-uint256-
  161. :Crowdsale-_processPurchase: pass:normal[xref:crowdsale.adoc#Crowdsale-_processPurchase-address-uint256-[`Crowdsale._processPurchase`]]
  162. :xref-Crowdsale-_processPurchase: xref:crowdsale.adoc#Crowdsale-_processPurchase-address-uint256-
  163. :Crowdsale-_updatePurchasingState: pass:normal[xref:crowdsale.adoc#Crowdsale-_updatePurchasingState-address-uint256-[`Crowdsale._updatePurchasingState`]]
  164. :xref-Crowdsale-_updatePurchasingState: xref:crowdsale.adoc#Crowdsale-_updatePurchasingState-address-uint256-
  165. :Crowdsale-_getTokenAmount: pass:normal[xref:crowdsale.adoc#Crowdsale-_getTokenAmount-uint256-[`Crowdsale._getTokenAmount`]]
  166. :xref-Crowdsale-_getTokenAmount: xref:crowdsale.adoc#Crowdsale-_getTokenAmount-uint256-
  167. :Crowdsale-_forwardFunds: pass:normal[xref:crowdsale.adoc#Crowdsale-_forwardFunds--[`Crowdsale._forwardFunds`]]
  168. :xref-Crowdsale-_forwardFunds: xref:crowdsale.adoc#Crowdsale-_forwardFunds--
  169. :Crowdsale-TokensPurchased: pass:normal[xref:crowdsale.adoc#Crowdsale-TokensPurchased-address-address-uint256-uint256-[`Crowdsale.TokensPurchased`]]
  170. :xref-Crowdsale-TokensPurchased: xref:crowdsale.adoc#Crowdsale-TokensPurchased-address-address-uint256-uint256-
  171. :FinalizableCrowdsale: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale[`FinalizableCrowdsale`]]
  172. :xref-FinalizableCrowdsale: xref:crowdsale.adoc#FinalizableCrowdsale
  173. :FinalizableCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-constructor--[`FinalizableCrowdsale.constructor`]]
  174. :xref-FinalizableCrowdsale-constructor: xref:crowdsale.adoc#FinalizableCrowdsale-constructor--
  175. :FinalizableCrowdsale-finalized: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-finalized--[`FinalizableCrowdsale.finalized`]]
  176. :xref-FinalizableCrowdsale-finalized: xref:crowdsale.adoc#FinalizableCrowdsale-finalized--
  177. :FinalizableCrowdsale-finalize: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-finalize--[`FinalizableCrowdsale.finalize`]]
  178. :xref-FinalizableCrowdsale-finalize: xref:crowdsale.adoc#FinalizableCrowdsale-finalize--
  179. :FinalizableCrowdsale-_finalization: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-_finalization--[`FinalizableCrowdsale._finalization`]]
  180. :xref-FinalizableCrowdsale-_finalization: xref:crowdsale.adoc#FinalizableCrowdsale-_finalization--
  181. :FinalizableCrowdsale-CrowdsaleFinalized: pass:normal[xref:crowdsale.adoc#FinalizableCrowdsale-CrowdsaleFinalized--[`FinalizableCrowdsale.CrowdsaleFinalized`]]
  182. :xref-FinalizableCrowdsale-CrowdsaleFinalized: xref:crowdsale.adoc#FinalizableCrowdsale-CrowdsaleFinalized--
  183. :PostDeliveryCrowdsale: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale[`PostDeliveryCrowdsale`]]
  184. :xref-PostDeliveryCrowdsale: xref:crowdsale.adoc#PostDeliveryCrowdsale
  185. :PostDeliveryCrowdsale-withdrawTokens: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale-withdrawTokens-address-[`PostDeliveryCrowdsale.withdrawTokens`]]
  186. :xref-PostDeliveryCrowdsale-withdrawTokens: xref:crowdsale.adoc#PostDeliveryCrowdsale-withdrawTokens-address-
  187. :PostDeliveryCrowdsale-balanceOf: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale-balanceOf-address-[`PostDeliveryCrowdsale.balanceOf`]]
  188. :xref-PostDeliveryCrowdsale-balanceOf: xref:crowdsale.adoc#PostDeliveryCrowdsale-balanceOf-address-
  189. :PostDeliveryCrowdsale-_processPurchase: pass:normal[xref:crowdsale.adoc#PostDeliveryCrowdsale-_processPurchase-address-uint256-[`PostDeliveryCrowdsale._processPurchase`]]
  190. :xref-PostDeliveryCrowdsale-_processPurchase: xref:crowdsale.adoc#PostDeliveryCrowdsale-_processPurchase-address-uint256-
  191. :__unstable__TokenVault: pass:normal[xref:crowdsale.adoc#__unstable__TokenVault[`__unstable__TokenVault`]]
  192. :xref-__unstable__TokenVault: xref:crowdsale.adoc#__unstable__TokenVault
  193. :__unstable__TokenVault-transfer: pass:normal[xref:crowdsale.adoc#__unstable__TokenVault-transfer-contract-IERC20-address-uint256-[`__unstable__TokenVault.transfer`]]
  194. :xref-__unstable__TokenVault-transfer: xref:crowdsale.adoc#__unstable__TokenVault-transfer-contract-IERC20-address-uint256-
  195. :RefundableCrowdsale: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale[`RefundableCrowdsale`]]
  196. :xref-RefundableCrowdsale: xref:crowdsale.adoc#RefundableCrowdsale
  197. :RefundableCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-constructor-uint256-[`RefundableCrowdsale.constructor`]]
  198. :xref-RefundableCrowdsale-constructor: xref:crowdsale.adoc#RefundableCrowdsale-constructor-uint256-
  199. :RefundableCrowdsale-goal: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-goal--[`RefundableCrowdsale.goal`]]
  200. :xref-RefundableCrowdsale-goal: xref:crowdsale.adoc#RefundableCrowdsale-goal--
  201. :RefundableCrowdsale-claimRefund: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-claimRefund-address-payable-[`RefundableCrowdsale.claimRefund`]]
  202. :xref-RefundableCrowdsale-claimRefund: xref:crowdsale.adoc#RefundableCrowdsale-claimRefund-address-payable-
  203. :RefundableCrowdsale-goalReached: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-goalReached--[`RefundableCrowdsale.goalReached`]]
  204. :xref-RefundableCrowdsale-goalReached: xref:crowdsale.adoc#RefundableCrowdsale-goalReached--
  205. :RefundableCrowdsale-_finalization: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-_finalization--[`RefundableCrowdsale._finalization`]]
  206. :xref-RefundableCrowdsale-_finalization: xref:crowdsale.adoc#RefundableCrowdsale-_finalization--
  207. :RefundableCrowdsale-_forwardFunds: pass:normal[xref:crowdsale.adoc#RefundableCrowdsale-_forwardFunds--[`RefundableCrowdsale._forwardFunds`]]
  208. :xref-RefundableCrowdsale-_forwardFunds: xref:crowdsale.adoc#RefundableCrowdsale-_forwardFunds--
  209. :RefundablePostDeliveryCrowdsale: pass:normal[xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale[`RefundablePostDeliveryCrowdsale`]]
  210. :xref-RefundablePostDeliveryCrowdsale: xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale
  211. :RefundablePostDeliveryCrowdsale-withdrawTokens: pass:normal[xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale-withdrawTokens-address-[`RefundablePostDeliveryCrowdsale.withdrawTokens`]]
  212. :xref-RefundablePostDeliveryCrowdsale-withdrawTokens: xref:crowdsale.adoc#RefundablePostDeliveryCrowdsale-withdrawTokens-address-
  213. :AllowanceCrowdsale: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale[`AllowanceCrowdsale`]]
  214. :xref-AllowanceCrowdsale: xref:crowdsale.adoc#AllowanceCrowdsale
  215. :AllowanceCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-constructor-address-[`AllowanceCrowdsale.constructor`]]
  216. :xref-AllowanceCrowdsale-constructor: xref:crowdsale.adoc#AllowanceCrowdsale-constructor-address-
  217. :AllowanceCrowdsale-tokenWallet: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-tokenWallet--[`AllowanceCrowdsale.tokenWallet`]]
  218. :xref-AllowanceCrowdsale-tokenWallet: xref:crowdsale.adoc#AllowanceCrowdsale-tokenWallet--
  219. :AllowanceCrowdsale-remainingTokens: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-remainingTokens--[`AllowanceCrowdsale.remainingTokens`]]
  220. :xref-AllowanceCrowdsale-remainingTokens: xref:crowdsale.adoc#AllowanceCrowdsale-remainingTokens--
  221. :AllowanceCrowdsale-_deliverTokens: pass:normal[xref:crowdsale.adoc#AllowanceCrowdsale-_deliverTokens-address-uint256-[`AllowanceCrowdsale._deliverTokens`]]
  222. :xref-AllowanceCrowdsale-_deliverTokens: xref:crowdsale.adoc#AllowanceCrowdsale-_deliverTokens-address-uint256-
  223. :MintedCrowdsale: pass:normal[xref:crowdsale.adoc#MintedCrowdsale[`MintedCrowdsale`]]
  224. :xref-MintedCrowdsale: xref:crowdsale.adoc#MintedCrowdsale
  225. :MintedCrowdsale-_deliverTokens: pass:normal[xref:crowdsale.adoc#MintedCrowdsale-_deliverTokens-address-uint256-[`MintedCrowdsale._deliverTokens`]]
  226. :xref-MintedCrowdsale-_deliverTokens: xref:crowdsale.adoc#MintedCrowdsale-_deliverTokens-address-uint256-
  227. :IncreasingPriceCrowdsale: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale[`IncreasingPriceCrowdsale`]]
  228. :xref-IncreasingPriceCrowdsale: xref:crowdsale.adoc#IncreasingPriceCrowdsale
  229. :IncreasingPriceCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-constructor-uint256-uint256-[`IncreasingPriceCrowdsale.constructor`]]
  230. :xref-IncreasingPriceCrowdsale-constructor: xref:crowdsale.adoc#IncreasingPriceCrowdsale-constructor-uint256-uint256-
  231. :IncreasingPriceCrowdsale-rate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-rate--[`IncreasingPriceCrowdsale.rate`]]
  232. :xref-IncreasingPriceCrowdsale-rate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-rate--
  233. :IncreasingPriceCrowdsale-initialRate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-initialRate--[`IncreasingPriceCrowdsale.initialRate`]]
  234. :xref-IncreasingPriceCrowdsale-initialRate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-initialRate--
  235. :IncreasingPriceCrowdsale-finalRate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-finalRate--[`IncreasingPriceCrowdsale.finalRate`]]
  236. :xref-IncreasingPriceCrowdsale-finalRate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-finalRate--
  237. :IncreasingPriceCrowdsale-getCurrentRate: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-getCurrentRate--[`IncreasingPriceCrowdsale.getCurrentRate`]]
  238. :xref-IncreasingPriceCrowdsale-getCurrentRate: xref:crowdsale.adoc#IncreasingPriceCrowdsale-getCurrentRate--
  239. :IncreasingPriceCrowdsale-_getTokenAmount: pass:normal[xref:crowdsale.adoc#IncreasingPriceCrowdsale-_getTokenAmount-uint256-[`IncreasingPriceCrowdsale._getTokenAmount`]]
  240. :xref-IncreasingPriceCrowdsale-_getTokenAmount: xref:crowdsale.adoc#IncreasingPriceCrowdsale-_getTokenAmount-uint256-
  241. :CappedCrowdsale: pass:normal[xref:crowdsale.adoc#CappedCrowdsale[`CappedCrowdsale`]]
  242. :xref-CappedCrowdsale: xref:crowdsale.adoc#CappedCrowdsale
  243. :CappedCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-constructor-uint256-[`CappedCrowdsale.constructor`]]
  244. :xref-CappedCrowdsale-constructor: xref:crowdsale.adoc#CappedCrowdsale-constructor-uint256-
  245. :CappedCrowdsale-cap: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-cap--[`CappedCrowdsale.cap`]]
  246. :xref-CappedCrowdsale-cap: xref:crowdsale.adoc#CappedCrowdsale-cap--
  247. :CappedCrowdsale-capReached: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-capReached--[`CappedCrowdsale.capReached`]]
  248. :xref-CappedCrowdsale-capReached: xref:crowdsale.adoc#CappedCrowdsale-capReached--
  249. :CappedCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#CappedCrowdsale-_preValidatePurchase-address-uint256-[`CappedCrowdsale._preValidatePurchase`]]
  250. :xref-CappedCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#CappedCrowdsale-_preValidatePurchase-address-uint256-
  251. :IndividuallyCappedCrowdsale: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale[`IndividuallyCappedCrowdsale`]]
  252. :xref-IndividuallyCappedCrowdsale: xref:crowdsale.adoc#IndividuallyCappedCrowdsale
  253. :IndividuallyCappedCrowdsale-setCap: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-setCap-address-uint256-[`IndividuallyCappedCrowdsale.setCap`]]
  254. :xref-IndividuallyCappedCrowdsale-setCap: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-setCap-address-uint256-
  255. :IndividuallyCappedCrowdsale-getCap: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getCap-address-[`IndividuallyCappedCrowdsale.getCap`]]
  256. :xref-IndividuallyCappedCrowdsale-getCap: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getCap-address-
  257. :IndividuallyCappedCrowdsale-getContribution: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getContribution-address-[`IndividuallyCappedCrowdsale.getContribution`]]
  258. :xref-IndividuallyCappedCrowdsale-getContribution: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-getContribution-address-
  259. :IndividuallyCappedCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_preValidatePurchase-address-uint256-[`IndividuallyCappedCrowdsale._preValidatePurchase`]]
  260. :xref-IndividuallyCappedCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_preValidatePurchase-address-uint256-
  261. :IndividuallyCappedCrowdsale-_updatePurchasingState: pass:normal[xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_updatePurchasingState-address-uint256-[`IndividuallyCappedCrowdsale._updatePurchasingState`]]
  262. :xref-IndividuallyCappedCrowdsale-_updatePurchasingState: xref:crowdsale.adoc#IndividuallyCappedCrowdsale-_updatePurchasingState-address-uint256-
  263. :PausableCrowdsale: pass:normal[xref:crowdsale.adoc#PausableCrowdsale[`PausableCrowdsale`]]
  264. :xref-PausableCrowdsale: xref:crowdsale.adoc#PausableCrowdsale
  265. :PausableCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#PausableCrowdsale-_preValidatePurchase-address-uint256-[`PausableCrowdsale._preValidatePurchase`]]
  266. :xref-PausableCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#PausableCrowdsale-_preValidatePurchase-address-uint256-
  267. :TimedCrowdsale: pass:normal[xref:crowdsale.adoc#TimedCrowdsale[`TimedCrowdsale`]]
  268. :xref-TimedCrowdsale: xref:crowdsale.adoc#TimedCrowdsale
  269. :TimedCrowdsale-onlyWhileOpen: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-onlyWhileOpen--[`TimedCrowdsale.onlyWhileOpen`]]
  270. :xref-TimedCrowdsale-onlyWhileOpen: xref:crowdsale.adoc#TimedCrowdsale-onlyWhileOpen--
  271. :TimedCrowdsale-constructor: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-constructor-uint256-uint256-[`TimedCrowdsale.constructor`]]
  272. :xref-TimedCrowdsale-constructor: xref:crowdsale.adoc#TimedCrowdsale-constructor-uint256-uint256-
  273. :TimedCrowdsale-openingTime: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-openingTime--[`TimedCrowdsale.openingTime`]]
  274. :xref-TimedCrowdsale-openingTime: xref:crowdsale.adoc#TimedCrowdsale-openingTime--
  275. :TimedCrowdsale-closingTime: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-closingTime--[`TimedCrowdsale.closingTime`]]
  276. :xref-TimedCrowdsale-closingTime: xref:crowdsale.adoc#TimedCrowdsale-closingTime--
  277. :TimedCrowdsale-isOpen: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-isOpen--[`TimedCrowdsale.isOpen`]]
  278. :xref-TimedCrowdsale-isOpen: xref:crowdsale.adoc#TimedCrowdsale-isOpen--
  279. :TimedCrowdsale-hasClosed: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-hasClosed--[`TimedCrowdsale.hasClosed`]]
  280. :xref-TimedCrowdsale-hasClosed: xref:crowdsale.adoc#TimedCrowdsale-hasClosed--
  281. :TimedCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-_preValidatePurchase-address-uint256-[`TimedCrowdsale._preValidatePurchase`]]
  282. :xref-TimedCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#TimedCrowdsale-_preValidatePurchase-address-uint256-
  283. :TimedCrowdsale-_extendTime: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-_extendTime-uint256-[`TimedCrowdsale._extendTime`]]
  284. :xref-TimedCrowdsale-_extendTime: xref:crowdsale.adoc#TimedCrowdsale-_extendTime-uint256-
  285. :TimedCrowdsale-TimedCrowdsaleExtended: pass:normal[xref:crowdsale.adoc#TimedCrowdsale-TimedCrowdsaleExtended-uint256-uint256-[`TimedCrowdsale.TimedCrowdsaleExtended`]]
  286. :xref-TimedCrowdsale-TimedCrowdsaleExtended: xref:crowdsale.adoc#TimedCrowdsale-TimedCrowdsaleExtended-uint256-uint256-
  287. :WhitelistCrowdsale: pass:normal[xref:crowdsale.adoc#WhitelistCrowdsale[`WhitelistCrowdsale`]]
  288. :xref-WhitelistCrowdsale: xref:crowdsale.adoc#WhitelistCrowdsale
  289. :WhitelistCrowdsale-_preValidatePurchase: pass:normal[xref:crowdsale.adoc#WhitelistCrowdsale-_preValidatePurchase-address-uint256-[`WhitelistCrowdsale._preValidatePurchase`]]
  290. :xref-WhitelistCrowdsale-_preValidatePurchase: xref:crowdsale.adoc#WhitelistCrowdsale-_preValidatePurchase-address-uint256-
  291. :Counters: pass:normal[xref:drafts.adoc#Counters[`Counters`]]
  292. :xref-Counters: xref:drafts.adoc#Counters
  293. :Counters-current: pass:normal[xref:drafts.adoc#Counters-current-struct-Counters-Counter-[`Counters.current`]]
  294. :xref-Counters-current: xref:drafts.adoc#Counters-current-struct-Counters-Counter-
  295. :Counters-increment: pass:normal[xref:drafts.adoc#Counters-increment-struct-Counters-Counter-[`Counters.increment`]]
  296. :xref-Counters-increment: xref:drafts.adoc#Counters-increment-struct-Counters-Counter-
  297. :Counters-decrement: pass:normal[xref:drafts.adoc#Counters-decrement-struct-Counters-Counter-[`Counters.decrement`]]
  298. :xref-Counters-decrement: xref:drafts.adoc#Counters-decrement-struct-Counters-Counter-
  299. :ERC20Metadata: pass:normal[xref:drafts.adoc#ERC20Metadata[`ERC20Metadata`]]
  300. :xref-ERC20Metadata: xref:drafts.adoc#ERC20Metadata
  301. :ERC20Metadata-constructor: pass:normal[xref:drafts.adoc#ERC20Metadata-constructor-string-[`ERC20Metadata.constructor`]]
  302. :xref-ERC20Metadata-constructor: xref:drafts.adoc#ERC20Metadata-constructor-string-
  303. :ERC20Metadata-tokenURI: pass:normal[xref:drafts.adoc#ERC20Metadata-tokenURI--[`ERC20Metadata.tokenURI`]]
  304. :xref-ERC20Metadata-tokenURI: xref:drafts.adoc#ERC20Metadata-tokenURI--
  305. :ERC20Metadata-_setTokenURI: pass:normal[xref:drafts.adoc#ERC20Metadata-_setTokenURI-string-[`ERC20Metadata._setTokenURI`]]
  306. :xref-ERC20Metadata-_setTokenURI: xref:drafts.adoc#ERC20Metadata-_setTokenURI-string-
  307. :ERC20Migrator: pass:normal[xref:drafts.adoc#ERC20Migrator[`ERC20Migrator`]]
  308. :xref-ERC20Migrator: xref:drafts.adoc#ERC20Migrator
  309. :ERC20Migrator-constructor: pass:normal[xref:drafts.adoc#ERC20Migrator-constructor-contract-IERC20-[`ERC20Migrator.constructor`]]
  310. :xref-ERC20Migrator-constructor: xref:drafts.adoc#ERC20Migrator-constructor-contract-IERC20-
  311. :ERC20Migrator-legacyToken: pass:normal[xref:drafts.adoc#ERC20Migrator-legacyToken--[`ERC20Migrator.legacyToken`]]
  312. :xref-ERC20Migrator-legacyToken: xref:drafts.adoc#ERC20Migrator-legacyToken--
  313. :ERC20Migrator-newToken: pass:normal[xref:drafts.adoc#ERC20Migrator-newToken--[`ERC20Migrator.newToken`]]
  314. :xref-ERC20Migrator-newToken: xref:drafts.adoc#ERC20Migrator-newToken--
  315. :ERC20Migrator-beginMigration: pass:normal[xref:drafts.adoc#ERC20Migrator-beginMigration-contract-ERC20Mintable-[`ERC20Migrator.beginMigration`]]
  316. :xref-ERC20Migrator-beginMigration: xref:drafts.adoc#ERC20Migrator-beginMigration-contract-ERC20Mintable-
  317. :ERC20Migrator-migrate: pass:normal[xref:drafts.adoc#ERC20Migrator-migrate-address-uint256-[`ERC20Migrator.migrate`]]
  318. :xref-ERC20Migrator-migrate: xref:drafts.adoc#ERC20Migrator-migrate-address-uint256-
  319. :ERC20Migrator-migrateAll: pass:normal[xref:drafts.adoc#ERC20Migrator-migrateAll-address-[`ERC20Migrator.migrateAll`]]
  320. :xref-ERC20Migrator-migrateAll: xref:drafts.adoc#ERC20Migrator-migrateAll-address-
  321. :ERC20Snapshot: pass:normal[xref:drafts.adoc#ERC20Snapshot[`ERC20Snapshot`]]
  322. :xref-ERC20Snapshot: xref:drafts.adoc#ERC20Snapshot
  323. :ERC20Snapshot-snapshot: pass:normal[xref:drafts.adoc#ERC20Snapshot-snapshot--[`ERC20Snapshot.snapshot`]]
  324. :xref-ERC20Snapshot-snapshot: xref:drafts.adoc#ERC20Snapshot-snapshot--
  325. :ERC20Snapshot-balanceOfAt: pass:normal[xref:drafts.adoc#ERC20Snapshot-balanceOfAt-address-uint256-[`ERC20Snapshot.balanceOfAt`]]
  326. :xref-ERC20Snapshot-balanceOfAt: xref:drafts.adoc#ERC20Snapshot-balanceOfAt-address-uint256-
  327. :ERC20Snapshot-totalSupplyAt: pass:normal[xref:drafts.adoc#ERC20Snapshot-totalSupplyAt-uint256-[`ERC20Snapshot.totalSupplyAt`]]
  328. :xref-ERC20Snapshot-totalSupplyAt: xref:drafts.adoc#ERC20Snapshot-totalSupplyAt-uint256-
  329. :ERC20Snapshot-_transfer: pass:normal[xref:drafts.adoc#ERC20Snapshot-_transfer-address-address-uint256-[`ERC20Snapshot._transfer`]]
  330. :xref-ERC20Snapshot-_transfer: xref:drafts.adoc#ERC20Snapshot-_transfer-address-address-uint256-
  331. :ERC20Snapshot-_mint: pass:normal[xref:drafts.adoc#ERC20Snapshot-_mint-address-uint256-[`ERC20Snapshot._mint`]]
  332. :xref-ERC20Snapshot-_mint: xref:drafts.adoc#ERC20Snapshot-_mint-address-uint256-
  333. :ERC20Snapshot-_burn: pass:normal[xref:drafts.adoc#ERC20Snapshot-_burn-address-uint256-[`ERC20Snapshot._burn`]]
  334. :xref-ERC20Snapshot-_burn: xref:drafts.adoc#ERC20Snapshot-_burn-address-uint256-
  335. :ERC20Snapshot-Snapshot: pass:normal[xref:drafts.adoc#ERC20Snapshot-Snapshot-uint256-[`ERC20Snapshot.Snapshot`]]
  336. :xref-ERC20Snapshot-Snapshot: xref:drafts.adoc#ERC20Snapshot-Snapshot-uint256-
  337. :SignedSafeMath: pass:normal[xref:drafts.adoc#SignedSafeMath[`SignedSafeMath`]]
  338. :xref-SignedSafeMath: xref:drafts.adoc#SignedSafeMath
  339. :SignedSafeMath-mul: pass:normal[xref:drafts.adoc#SignedSafeMath-mul-int256-int256-[`SignedSafeMath.mul`]]
  340. :xref-SignedSafeMath-mul: xref:drafts.adoc#SignedSafeMath-mul-int256-int256-
  341. :SignedSafeMath-div: pass:normal[xref:drafts.adoc#SignedSafeMath-div-int256-int256-[`SignedSafeMath.div`]]
  342. :xref-SignedSafeMath-div: xref:drafts.adoc#SignedSafeMath-div-int256-int256-
  343. :SignedSafeMath-sub: pass:normal[xref:drafts.adoc#SignedSafeMath-sub-int256-int256-[`SignedSafeMath.sub`]]
  344. :xref-SignedSafeMath-sub: xref:drafts.adoc#SignedSafeMath-sub-int256-int256-
  345. :SignedSafeMath-add: pass:normal[xref:drafts.adoc#SignedSafeMath-add-int256-int256-[`SignedSafeMath.add`]]
  346. :xref-SignedSafeMath-add: xref:drafts.adoc#SignedSafeMath-add-int256-int256-
  347. :Strings: pass:normal[xref:drafts.adoc#Strings[`Strings`]]
  348. :xref-Strings: xref:drafts.adoc#Strings
  349. :Strings-fromUint256: pass:normal[xref:drafts.adoc#Strings-fromUint256-uint256-[`Strings.fromUint256`]]
  350. :xref-Strings-fromUint256: xref:drafts.adoc#Strings-fromUint256-uint256-
  351. :TokenVesting: pass:normal[xref:drafts.adoc#TokenVesting[`TokenVesting`]]
  352. :xref-TokenVesting: xref:drafts.adoc#TokenVesting
  353. :TokenVesting-constructor: pass:normal[xref:drafts.adoc#TokenVesting-constructor-address-uint256-uint256-uint256-bool-[`TokenVesting.constructor`]]
  354. :xref-TokenVesting-constructor: xref:drafts.adoc#TokenVesting-constructor-address-uint256-uint256-uint256-bool-
  355. :TokenVesting-beneficiary: pass:normal[xref:drafts.adoc#TokenVesting-beneficiary--[`TokenVesting.beneficiary`]]
  356. :xref-TokenVesting-beneficiary: xref:drafts.adoc#TokenVesting-beneficiary--
  357. :TokenVesting-cliff: pass:normal[xref:drafts.adoc#TokenVesting-cliff--[`TokenVesting.cliff`]]
  358. :xref-TokenVesting-cliff: xref:drafts.adoc#TokenVesting-cliff--
  359. :TokenVesting-start: pass:normal[xref:drafts.adoc#TokenVesting-start--[`TokenVesting.start`]]
  360. :xref-TokenVesting-start: xref:drafts.adoc#TokenVesting-start--
  361. :TokenVesting-duration: pass:normal[xref:drafts.adoc#TokenVesting-duration--[`TokenVesting.duration`]]
  362. :xref-TokenVesting-duration: xref:drafts.adoc#TokenVesting-duration--
  363. :TokenVesting-revocable: pass:normal[xref:drafts.adoc#TokenVesting-revocable--[`TokenVesting.revocable`]]
  364. :xref-TokenVesting-revocable: xref:drafts.adoc#TokenVesting-revocable--
  365. :TokenVesting-released: pass:normal[xref:drafts.adoc#TokenVesting-released-address-[`TokenVesting.released`]]
  366. :xref-TokenVesting-released: xref:drafts.adoc#TokenVesting-released-address-
  367. :TokenVesting-revoked: pass:normal[xref:drafts.adoc#TokenVesting-revoked-address-[`TokenVesting.revoked`]]
  368. :xref-TokenVesting-revoked: xref:drafts.adoc#TokenVesting-revoked-address-
  369. :TokenVesting-release: pass:normal[xref:drafts.adoc#TokenVesting-release-contract-IERC20-[`TokenVesting.release`]]
  370. :xref-TokenVesting-release: xref:drafts.adoc#TokenVesting-release-contract-IERC20-
  371. :TokenVesting-revoke: pass:normal[xref:drafts.adoc#TokenVesting-revoke-contract-IERC20-[`TokenVesting.revoke`]]
  372. :xref-TokenVesting-revoke: xref:drafts.adoc#TokenVesting-revoke-contract-IERC20-
  373. :TokenVesting-TokensReleased: pass:normal[xref:drafts.adoc#TokenVesting-TokensReleased-address-uint256-[`TokenVesting.TokensReleased`]]
  374. :xref-TokenVesting-TokensReleased: xref:drafts.adoc#TokenVesting-TokensReleased-address-uint256-
  375. :TokenVesting-TokenVestingRevoked: pass:normal[xref:drafts.adoc#TokenVesting-TokenVestingRevoked-address-[`TokenVesting.TokenVestingRevoked`]]
  376. :xref-TokenVesting-TokenVestingRevoked: xref:drafts.adoc#TokenVesting-TokenVestingRevoked-address-
  377. :Roles: pass:normal[xref:access.adoc#Roles[`Roles`]]
  378. :xref-Roles: xref:access.adoc#Roles
  379. :Roles-add: pass:normal[xref:access.adoc#Roles-add-struct-Roles-Role-address-[`Roles.add`]]
  380. :xref-Roles-add: xref:access.adoc#Roles-add-struct-Roles-Role-address-
  381. :Roles-remove: pass:normal[xref:access.adoc#Roles-remove-struct-Roles-Role-address-[`Roles.remove`]]
  382. :xref-Roles-remove: xref:access.adoc#Roles-remove-struct-Roles-Role-address-
  383. :Roles-has: pass:normal[xref:access.adoc#Roles-has-struct-Roles-Role-address-[`Roles.has`]]
  384. :xref-Roles-has: xref:access.adoc#Roles-has-struct-Roles-Role-address-
  385. :CapperRole: pass:normal[xref:access.adoc#CapperRole[`CapperRole`]]
  386. :xref-CapperRole: xref:access.adoc#CapperRole
  387. :CapperRole-onlyCapper: pass:normal[xref:access.adoc#CapperRole-onlyCapper--[`CapperRole.onlyCapper`]]
  388. :xref-CapperRole-onlyCapper: xref:access.adoc#CapperRole-onlyCapper--
  389. :CapperRole-constructor: pass:normal[xref:access.adoc#CapperRole-constructor--[`CapperRole.constructor`]]
  390. :xref-CapperRole-constructor: xref:access.adoc#CapperRole-constructor--
  391. :CapperRole-isCapper: pass:normal[xref:access.adoc#CapperRole-isCapper-address-[`CapperRole.isCapper`]]
  392. :xref-CapperRole-isCapper: xref:access.adoc#CapperRole-isCapper-address-
  393. :CapperRole-addCapper: pass:normal[xref:access.adoc#CapperRole-addCapper-address-[`CapperRole.addCapper`]]
  394. :xref-CapperRole-addCapper: xref:access.adoc#CapperRole-addCapper-address-
  395. :CapperRole-renounceCapper: pass:normal[xref:access.adoc#CapperRole-renounceCapper--[`CapperRole.renounceCapper`]]
  396. :xref-CapperRole-renounceCapper: xref:access.adoc#CapperRole-renounceCapper--
  397. :CapperRole-_addCapper: pass:normal[xref:access.adoc#CapperRole-_addCapper-address-[`CapperRole._addCapper`]]
  398. :xref-CapperRole-_addCapper: xref:access.adoc#CapperRole-_addCapper-address-
  399. :CapperRole-_removeCapper: pass:normal[xref:access.adoc#CapperRole-_removeCapper-address-[`CapperRole._removeCapper`]]
  400. :xref-CapperRole-_removeCapper: xref:access.adoc#CapperRole-_removeCapper-address-
  401. :CapperRole-CapperAdded: pass:normal[xref:access.adoc#CapperRole-CapperAdded-address-[`CapperRole.CapperAdded`]]
  402. :xref-CapperRole-CapperAdded: xref:access.adoc#CapperRole-CapperAdded-address-
  403. :CapperRole-CapperRemoved: pass:normal[xref:access.adoc#CapperRole-CapperRemoved-address-[`CapperRole.CapperRemoved`]]
  404. :xref-CapperRole-CapperRemoved: xref:access.adoc#CapperRole-CapperRemoved-address-
  405. :MinterRole: pass:normal[xref:access.adoc#MinterRole[`MinterRole`]]
  406. :xref-MinterRole: xref:access.adoc#MinterRole
  407. :MinterRole-onlyMinter: pass:normal[xref:access.adoc#MinterRole-onlyMinter--[`MinterRole.onlyMinter`]]
  408. :xref-MinterRole-onlyMinter: xref:access.adoc#MinterRole-onlyMinter--
  409. :MinterRole-constructor: pass:normal[xref:access.adoc#MinterRole-constructor--[`MinterRole.constructor`]]
  410. :xref-MinterRole-constructor: xref:access.adoc#MinterRole-constructor--
  411. :MinterRole-isMinter: pass:normal[xref:access.adoc#MinterRole-isMinter-address-[`MinterRole.isMinter`]]
  412. :xref-MinterRole-isMinter: xref:access.adoc#MinterRole-isMinter-address-
  413. :MinterRole-addMinter: pass:normal[xref:access.adoc#MinterRole-addMinter-address-[`MinterRole.addMinter`]]
  414. :xref-MinterRole-addMinter: xref:access.adoc#MinterRole-addMinter-address-
  415. :MinterRole-renounceMinter: pass:normal[xref:access.adoc#MinterRole-renounceMinter--[`MinterRole.renounceMinter`]]
  416. :xref-MinterRole-renounceMinter: xref:access.adoc#MinterRole-renounceMinter--
  417. :MinterRole-_addMinter: pass:normal[xref:access.adoc#MinterRole-_addMinter-address-[`MinterRole._addMinter`]]
  418. :xref-MinterRole-_addMinter: xref:access.adoc#MinterRole-_addMinter-address-
  419. :MinterRole-_removeMinter: pass:normal[xref:access.adoc#MinterRole-_removeMinter-address-[`MinterRole._removeMinter`]]
  420. :xref-MinterRole-_removeMinter: xref:access.adoc#MinterRole-_removeMinter-address-
  421. :MinterRole-MinterAdded: pass:normal[xref:access.adoc#MinterRole-MinterAdded-address-[`MinterRole.MinterAdded`]]
  422. :xref-MinterRole-MinterAdded: xref:access.adoc#MinterRole-MinterAdded-address-
  423. :MinterRole-MinterRemoved: pass:normal[xref:access.adoc#MinterRole-MinterRemoved-address-[`MinterRole.MinterRemoved`]]
  424. :xref-MinterRole-MinterRemoved: xref:access.adoc#MinterRole-MinterRemoved-address-
  425. :PauserRole: pass:normal[xref:access.adoc#PauserRole[`PauserRole`]]
  426. :xref-PauserRole: xref:access.adoc#PauserRole
  427. :PauserRole-onlyPauser: pass:normal[xref:access.adoc#PauserRole-onlyPauser--[`PauserRole.onlyPauser`]]
  428. :xref-PauserRole-onlyPauser: xref:access.adoc#PauserRole-onlyPauser--
  429. :PauserRole-constructor: pass:normal[xref:access.adoc#PauserRole-constructor--[`PauserRole.constructor`]]
  430. :xref-PauserRole-constructor: xref:access.adoc#PauserRole-constructor--
  431. :PauserRole-isPauser: pass:normal[xref:access.adoc#PauserRole-isPauser-address-[`PauserRole.isPauser`]]
  432. :xref-PauserRole-isPauser: xref:access.adoc#PauserRole-isPauser-address-
  433. :PauserRole-addPauser: pass:normal[xref:access.adoc#PauserRole-addPauser-address-[`PauserRole.addPauser`]]
  434. :xref-PauserRole-addPauser: xref:access.adoc#PauserRole-addPauser-address-
  435. :PauserRole-renouncePauser: pass:normal[xref:access.adoc#PauserRole-renouncePauser--[`PauserRole.renouncePauser`]]
  436. :xref-PauserRole-renouncePauser: xref:access.adoc#PauserRole-renouncePauser--
  437. :PauserRole-_addPauser: pass:normal[xref:access.adoc#PauserRole-_addPauser-address-[`PauserRole._addPauser`]]
  438. :xref-PauserRole-_addPauser: xref:access.adoc#PauserRole-_addPauser-address-
  439. :PauserRole-_removePauser: pass:normal[xref:access.adoc#PauserRole-_removePauser-address-[`PauserRole._removePauser`]]
  440. :xref-PauserRole-_removePauser: xref:access.adoc#PauserRole-_removePauser-address-
  441. :PauserRole-PauserAdded: pass:normal[xref:access.adoc#PauserRole-PauserAdded-address-[`PauserRole.PauserAdded`]]
  442. :xref-PauserRole-PauserAdded: xref:access.adoc#PauserRole-PauserAdded-address-
  443. :PauserRole-PauserRemoved: pass:normal[xref:access.adoc#PauserRole-PauserRemoved-address-[`PauserRole.PauserRemoved`]]
  444. :xref-PauserRole-PauserRemoved: xref:access.adoc#PauserRole-PauserRemoved-address-
  445. :SignerRole: pass:normal[xref:access.adoc#SignerRole[`SignerRole`]]
  446. :xref-SignerRole: xref:access.adoc#SignerRole
  447. :SignerRole-onlySigner: pass:normal[xref:access.adoc#SignerRole-onlySigner--[`SignerRole.onlySigner`]]
  448. :xref-SignerRole-onlySigner: xref:access.adoc#SignerRole-onlySigner--
  449. :SignerRole-constructor: pass:normal[xref:access.adoc#SignerRole-constructor--[`SignerRole.constructor`]]
  450. :xref-SignerRole-constructor: xref:access.adoc#SignerRole-constructor--
  451. :SignerRole-isSigner: pass:normal[xref:access.adoc#SignerRole-isSigner-address-[`SignerRole.isSigner`]]
  452. :xref-SignerRole-isSigner: xref:access.adoc#SignerRole-isSigner-address-
  453. :SignerRole-addSigner: pass:normal[xref:access.adoc#SignerRole-addSigner-address-[`SignerRole.addSigner`]]
  454. :xref-SignerRole-addSigner: xref:access.adoc#SignerRole-addSigner-address-
  455. :SignerRole-renounceSigner: pass:normal[xref:access.adoc#SignerRole-renounceSigner--[`SignerRole.renounceSigner`]]
  456. :xref-SignerRole-renounceSigner: xref:access.adoc#SignerRole-renounceSigner--
  457. :SignerRole-_addSigner: pass:normal[xref:access.adoc#SignerRole-_addSigner-address-[`SignerRole._addSigner`]]
  458. :xref-SignerRole-_addSigner: xref:access.adoc#SignerRole-_addSigner-address-
  459. :SignerRole-_removeSigner: pass:normal[xref:access.adoc#SignerRole-_removeSigner-address-[`SignerRole._removeSigner`]]
  460. :xref-SignerRole-_removeSigner: xref:access.adoc#SignerRole-_removeSigner-address-
  461. :SignerRole-SignerAdded: pass:normal[xref:access.adoc#SignerRole-SignerAdded-address-[`SignerRole.SignerAdded`]]
  462. :xref-SignerRole-SignerAdded: xref:access.adoc#SignerRole-SignerAdded-address-
  463. :SignerRole-SignerRemoved: pass:normal[xref:access.adoc#SignerRole-SignerRemoved-address-[`SignerRole.SignerRemoved`]]
  464. :xref-SignerRole-SignerRemoved: xref:access.adoc#SignerRole-SignerRemoved-address-
  465. :WhitelistAdminRole: pass:normal[xref:access.adoc#WhitelistAdminRole[`WhitelistAdminRole`]]
  466. :xref-WhitelistAdminRole: xref:access.adoc#WhitelistAdminRole
  467. :WhitelistAdminRole-onlyWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-onlyWhitelistAdmin--[`WhitelistAdminRole.onlyWhitelistAdmin`]]
  468. :xref-WhitelistAdminRole-onlyWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-onlyWhitelistAdmin--
  469. :WhitelistAdminRole-constructor: pass:normal[xref:access.adoc#WhitelistAdminRole-constructor--[`WhitelistAdminRole.constructor`]]
  470. :xref-WhitelistAdminRole-constructor: xref:access.adoc#WhitelistAdminRole-constructor--
  471. :WhitelistAdminRole-isWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-isWhitelistAdmin-address-[`WhitelistAdminRole.isWhitelistAdmin`]]
  472. :xref-WhitelistAdminRole-isWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-isWhitelistAdmin-address-
  473. :WhitelistAdminRole-addWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-addWhitelistAdmin-address-[`WhitelistAdminRole.addWhitelistAdmin`]]
  474. :xref-WhitelistAdminRole-addWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-addWhitelistAdmin-address-
  475. :WhitelistAdminRole-renounceWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-renounceWhitelistAdmin--[`WhitelistAdminRole.renounceWhitelistAdmin`]]
  476. :xref-WhitelistAdminRole-renounceWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-renounceWhitelistAdmin--
  477. :WhitelistAdminRole-_addWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-_addWhitelistAdmin-address-[`WhitelistAdminRole._addWhitelistAdmin`]]
  478. :xref-WhitelistAdminRole-_addWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-_addWhitelistAdmin-address-
  479. :WhitelistAdminRole-_removeWhitelistAdmin: pass:normal[xref:access.adoc#WhitelistAdminRole-_removeWhitelistAdmin-address-[`WhitelistAdminRole._removeWhitelistAdmin`]]
  480. :xref-WhitelistAdminRole-_removeWhitelistAdmin: xref:access.adoc#WhitelistAdminRole-_removeWhitelistAdmin-address-
  481. :WhitelistAdminRole-WhitelistAdminAdded: pass:normal[xref:access.adoc#WhitelistAdminRole-WhitelistAdminAdded-address-[`WhitelistAdminRole.WhitelistAdminAdded`]]
  482. :xref-WhitelistAdminRole-WhitelistAdminAdded: xref:access.adoc#WhitelistAdminRole-WhitelistAdminAdded-address-
  483. :WhitelistAdminRole-WhitelistAdminRemoved: pass:normal[xref:access.adoc#WhitelistAdminRole-WhitelistAdminRemoved-address-[`WhitelistAdminRole.WhitelistAdminRemoved`]]
  484. :xref-WhitelistAdminRole-WhitelistAdminRemoved: xref:access.adoc#WhitelistAdminRole-WhitelistAdminRemoved-address-
  485. :WhitelistedRole: pass:normal[xref:access.adoc#WhitelistedRole[`WhitelistedRole`]]
  486. :xref-WhitelistedRole: xref:access.adoc#WhitelistedRole
  487. :WhitelistedRole-onlyWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-onlyWhitelisted--[`WhitelistedRole.onlyWhitelisted`]]
  488. :xref-WhitelistedRole-onlyWhitelisted: xref:access.adoc#WhitelistedRole-onlyWhitelisted--
  489. :WhitelistedRole-isWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-isWhitelisted-address-[`WhitelistedRole.isWhitelisted`]]
  490. :xref-WhitelistedRole-isWhitelisted: xref:access.adoc#WhitelistedRole-isWhitelisted-address-
  491. :WhitelistedRole-addWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-addWhitelisted-address-[`WhitelistedRole.addWhitelisted`]]
  492. :xref-WhitelistedRole-addWhitelisted: xref:access.adoc#WhitelistedRole-addWhitelisted-address-
  493. :WhitelistedRole-removeWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-removeWhitelisted-address-[`WhitelistedRole.removeWhitelisted`]]
  494. :xref-WhitelistedRole-removeWhitelisted: xref:access.adoc#WhitelistedRole-removeWhitelisted-address-
  495. :WhitelistedRole-renounceWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-renounceWhitelisted--[`WhitelistedRole.renounceWhitelisted`]]
  496. :xref-WhitelistedRole-renounceWhitelisted: xref:access.adoc#WhitelistedRole-renounceWhitelisted--
  497. :WhitelistedRole-_addWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-_addWhitelisted-address-[`WhitelistedRole._addWhitelisted`]]
  498. :xref-WhitelistedRole-_addWhitelisted: xref:access.adoc#WhitelistedRole-_addWhitelisted-address-
  499. :WhitelistedRole-_removeWhitelisted: pass:normal[xref:access.adoc#WhitelistedRole-_removeWhitelisted-address-[`WhitelistedRole._removeWhitelisted`]]
  500. :xref-WhitelistedRole-_removeWhitelisted: xref:access.adoc#WhitelistedRole-_removeWhitelisted-address-
  501. :WhitelistedRole-WhitelistedAdded: pass:normal[xref:access.adoc#WhitelistedRole-WhitelistedAdded-address-[`WhitelistedRole.WhitelistedAdded`]]
  502. :xref-WhitelistedRole-WhitelistedAdded: xref:access.adoc#WhitelistedRole-WhitelistedAdded-address-
  503. :WhitelistedRole-WhitelistedRemoved: pass:normal[xref:access.adoc#WhitelistedRole-WhitelistedRemoved-address-[`WhitelistedRole.WhitelistedRemoved`]]
  504. :xref-WhitelistedRole-WhitelistedRemoved: xref:access.adoc#WhitelistedRole-WhitelistedRemoved-address-
  505. :ECDSA: pass:normal[xref:cryptography.adoc#ECDSA[`ECDSA`]]
  506. :xref-ECDSA: xref:cryptography.adoc#ECDSA
  507. :ECDSA-recover: pass:normal[xref:cryptography.adoc#ECDSA-recover-bytes32-bytes-[`ECDSA.recover`]]
  508. :xref-ECDSA-recover: xref:cryptography.adoc#ECDSA-recover-bytes32-bytes-
  509. :ECDSA-toEthSignedMessageHash: pass:normal[xref:cryptography.adoc#ECDSA-toEthSignedMessageHash-bytes32-[`ECDSA.toEthSignedMessageHash`]]
  510. :xref-ECDSA-toEthSignedMessageHash: xref:cryptography.adoc#ECDSA-toEthSignedMessageHash-bytes32-
  511. :MerkleProof: pass:normal[xref:cryptography.adoc#MerkleProof[`MerkleProof`]]
  512. :xref-MerkleProof: xref:cryptography.adoc#MerkleProof
  513. :MerkleProof-verify: pass:normal[xref:cryptography.adoc#MerkleProof-verify-bytes32---bytes32-bytes32-[`MerkleProof.verify`]]
  514. :xref-MerkleProof-verify: xref:cryptography.adoc#MerkleProof-verify-bytes32---bytes32-bytes32-
  515. :ERC165: pass:normal[xref:introspection.adoc#ERC165[`ERC165`]]
  516. :xref-ERC165: xref:introspection.adoc#ERC165
  517. :ERC165-constructor: pass:normal[xref:introspection.adoc#ERC165-constructor--[`ERC165.constructor`]]
  518. :xref-ERC165-constructor: xref:introspection.adoc#ERC165-constructor--
  519. :ERC165-supportsInterface: pass:normal[xref:introspection.adoc#ERC165-supportsInterface-bytes4-[`ERC165.supportsInterface`]]
  520. :xref-ERC165-supportsInterface: xref:introspection.adoc#ERC165-supportsInterface-bytes4-
  521. :ERC165-_registerInterface: pass:normal[xref:introspection.adoc#ERC165-_registerInterface-bytes4-[`ERC165._registerInterface`]]
  522. :xref-ERC165-_registerInterface: xref:introspection.adoc#ERC165-_registerInterface-bytes4-
  523. :ERC165Checker: pass:normal[xref:introspection.adoc#ERC165Checker[`ERC165Checker`]]
  524. :xref-ERC165Checker: xref:introspection.adoc#ERC165Checker
  525. :ERC165Checker-_supportsERC165: pass:normal[xref:introspection.adoc#ERC165Checker-_supportsERC165-address-[`ERC165Checker._supportsERC165`]]
  526. :xref-ERC165Checker-_supportsERC165: xref:introspection.adoc#ERC165Checker-_supportsERC165-address-
  527. :ERC165Checker-_supportsInterface: pass:normal[xref:introspection.adoc#ERC165Checker-_supportsInterface-address-bytes4-[`ERC165Checker._supportsInterface`]]
  528. :xref-ERC165Checker-_supportsInterface: xref:introspection.adoc#ERC165Checker-_supportsInterface-address-bytes4-
  529. :ERC165Checker-_supportsAllInterfaces: pass:normal[xref:introspection.adoc#ERC165Checker-_supportsAllInterfaces-address-bytes4---[`ERC165Checker._supportsAllInterfaces`]]
  530. :xref-ERC165Checker-_supportsAllInterfaces: xref:introspection.adoc#ERC165Checker-_supportsAllInterfaces-address-bytes4---
  531. :ERC1820Implementer: pass:normal[xref:introspection.adoc#ERC1820Implementer[`ERC1820Implementer`]]
  532. :xref-ERC1820Implementer: xref:introspection.adoc#ERC1820Implementer
  533. :ERC1820Implementer-canImplementInterfaceForAddress: pass:normal[xref:introspection.adoc#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`ERC1820Implementer.canImplementInterfaceForAddress`]]
  534. :xref-ERC1820Implementer-canImplementInterfaceForAddress: xref:introspection.adoc#ERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-
  535. :ERC1820Implementer-_registerInterfaceForAddress: pass:normal[xref:introspection.adoc#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-[`ERC1820Implementer._registerInterfaceForAddress`]]
  536. :xref-ERC1820Implementer-_registerInterfaceForAddress: xref:introspection.adoc#ERC1820Implementer-_registerInterfaceForAddress-bytes32-address-
  537. :IERC165: pass:normal[xref:introspection.adoc#IERC165[`IERC165`]]
  538. :xref-IERC165: xref:introspection.adoc#IERC165
  539. :IERC165-supportsInterface: pass:normal[xref:introspection.adoc#IERC165-supportsInterface-bytes4-[`IERC165.supportsInterface`]]
  540. :xref-IERC165-supportsInterface: xref:introspection.adoc#IERC165-supportsInterface-bytes4-
  541. :IERC1820Implementer: pass:normal[xref:introspection.adoc#IERC1820Implementer[`IERC1820Implementer`]]
  542. :xref-IERC1820Implementer: xref:introspection.adoc#IERC1820Implementer
  543. :IERC1820Implementer-canImplementInterfaceForAddress: pass:normal[xref:introspection.adoc#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-[`IERC1820Implementer.canImplementInterfaceForAddress`]]
  544. :xref-IERC1820Implementer-canImplementInterfaceForAddress: xref:introspection.adoc#IERC1820Implementer-canImplementInterfaceForAddress-bytes32-address-
  545. :IERC1820Registry: pass:normal[xref:introspection.adoc#IERC1820Registry[`IERC1820Registry`]]
  546. :xref-IERC1820Registry: xref:introspection.adoc#IERC1820Registry
  547. :IERC1820Registry-setManager: pass:normal[xref:introspection.adoc#IERC1820Registry-setManager-address-address-[`IERC1820Registry.setManager`]]
  548. :xref-IERC1820Registry-setManager: xref:introspection.adoc#IERC1820Registry-setManager-address-address-
  549. :IERC1820Registry-getManager: pass:normal[xref:introspection.adoc#IERC1820Registry-getManager-address-[`IERC1820Registry.getManager`]]
  550. :xref-IERC1820Registry-getManager: xref:introspection.adoc#IERC1820Registry-getManager-address-
  551. :IERC1820Registry-setInterfaceImplementer: pass:normal[xref:introspection.adoc#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-[`IERC1820Registry.setInterfaceImplementer`]]
  552. :xref-IERC1820Registry-setInterfaceImplementer: xref:introspection.adoc#IERC1820Registry-setInterfaceImplementer-address-bytes32-address-
  553. :IERC1820Registry-getInterfaceImplementer: pass:normal[xref:introspection.adoc#IERC1820Registry-getInterfaceImplementer-address-bytes32-[`IERC1820Registry.getInterfaceImplementer`]]
  554. :xref-IERC1820Registry-getInterfaceImplementer: xref:introspection.adoc#IERC1820Registry-getInterfaceImplementer-address-bytes32-
  555. :IERC1820Registry-interfaceHash: pass:normal[xref:introspection.adoc#IERC1820Registry-interfaceHash-string-[`IERC1820Registry.interfaceHash`]]
  556. :xref-IERC1820Registry-interfaceHash: xref:introspection.adoc#IERC1820Registry-interfaceHash-string-
  557. :IERC1820Registry-updateERC165Cache: pass:normal[xref:introspection.adoc#IERC1820Registry-updateERC165Cache-address-bytes4-[`IERC1820Registry.updateERC165Cache`]]
  558. :xref-IERC1820Registry-updateERC165Cache: xref:introspection.adoc#IERC1820Registry-updateERC165Cache-address-bytes4-
  559. :IERC1820Registry-implementsERC165Interface: pass:normal[xref:introspection.adoc#IERC1820Registry-implementsERC165Interface-address-bytes4-[`IERC1820Registry.implementsERC165Interface`]]
  560. :xref-IERC1820Registry-implementsERC165Interface: xref:introspection.adoc#IERC1820Registry-implementsERC165Interface-address-bytes4-
  561. :IERC1820Registry-implementsERC165InterfaceNoCache: pass:normal[xref:introspection.adoc#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-[`IERC1820Registry.implementsERC165InterfaceNoCache`]]
  562. :xref-IERC1820Registry-implementsERC165InterfaceNoCache: xref:introspection.adoc#IERC1820Registry-implementsERC165InterfaceNoCache-address-bytes4-
  563. :IERC1820Registry-InterfaceImplementerSet: pass:normal[xref:introspection.adoc#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-[`IERC1820Registry.InterfaceImplementerSet`]]
  564. :xref-IERC1820Registry-InterfaceImplementerSet: xref:introspection.adoc#IERC1820Registry-InterfaceImplementerSet-address-bytes32-address-
  565. :IERC1820Registry-ManagerChanged: pass:normal[xref:introspection.adoc#IERC1820Registry-ManagerChanged-address-address-[`IERC1820Registry.ManagerChanged`]]
  566. :xref-IERC1820Registry-ManagerChanged: xref:introspection.adoc#IERC1820Registry-ManagerChanged-address-address-
  567. :Pausable: pass:normal[xref:lifecycle.adoc#Pausable[`Pausable`]]
  568. :xref-Pausable: xref:lifecycle.adoc#Pausable
  569. :Pausable-whenNotPaused: pass:normal[xref:lifecycle.adoc#Pausable-whenNotPaused--[`Pausable.whenNotPaused`]]
  570. :xref-Pausable-whenNotPaused: xref:lifecycle.adoc#Pausable-whenNotPaused--
  571. :Pausable-whenPaused: pass:normal[xref:lifecycle.adoc#Pausable-whenPaused--[`Pausable.whenPaused`]]
  572. :xref-Pausable-whenPaused: xref:lifecycle.adoc#Pausable-whenPaused--
  573. :Pausable-constructor: pass:normal[xref:lifecycle.adoc#Pausable-constructor--[`Pausable.constructor`]]
  574. :xref-Pausable-constructor: xref:lifecycle.adoc#Pausable-constructor--
  575. :Pausable-paused: pass:normal[xref:lifecycle.adoc#Pausable-paused--[`Pausable.paused`]]
  576. :xref-Pausable-paused: xref:lifecycle.adoc#Pausable-paused--
  577. :Pausable-pause: pass:normal[xref:lifecycle.adoc#Pausable-pause--[`Pausable.pause`]]
  578. :xref-Pausable-pause: xref:lifecycle.adoc#Pausable-pause--
  579. :Pausable-unpause: pass:normal[xref:lifecycle.adoc#Pausable-unpause--[`Pausable.unpause`]]
  580. :xref-Pausable-unpause: xref:lifecycle.adoc#Pausable-unpause--
  581. :Pausable-Paused: pass:normal[xref:lifecycle.adoc#Pausable-Paused-address-[`Pausable.Paused`]]
  582. :xref-Pausable-Paused: xref:lifecycle.adoc#Pausable-Paused-address-
  583. :Pausable-Unpaused: pass:normal[xref:lifecycle.adoc#Pausable-Unpaused-address-[`Pausable.Unpaused`]]
  584. :xref-Pausable-Unpaused: xref:lifecycle.adoc#Pausable-Unpaused-address-
  585. :Ownable: pass:normal[xref:ownership.adoc#Ownable[`Ownable`]]
  586. :xref-Ownable: xref:ownership.adoc#Ownable
  587. :Ownable-onlyOwner: pass:normal[xref:ownership.adoc#Ownable-onlyOwner--[`Ownable.onlyOwner`]]
  588. :xref-Ownable-onlyOwner: xref:ownership.adoc#Ownable-onlyOwner--
  589. :Ownable-constructor: pass:normal[xref:ownership.adoc#Ownable-constructor--[`Ownable.constructor`]]
  590. :xref-Ownable-constructor: xref:ownership.adoc#Ownable-constructor--
  591. :Ownable-owner: pass:normal[xref:ownership.adoc#Ownable-owner--[`Ownable.owner`]]
  592. :xref-Ownable-owner: xref:ownership.adoc#Ownable-owner--
  593. :Ownable-isOwner: pass:normal[xref:ownership.adoc#Ownable-isOwner--[`Ownable.isOwner`]]
  594. :xref-Ownable-isOwner: xref:ownership.adoc#Ownable-isOwner--
  595. :Ownable-renounceOwnership: pass:normal[xref:ownership.adoc#Ownable-renounceOwnership--[`Ownable.renounceOwnership`]]
  596. :xref-Ownable-renounceOwnership: xref:ownership.adoc#Ownable-renounceOwnership--
  597. :Ownable-transferOwnership: pass:normal[xref:ownership.adoc#Ownable-transferOwnership-address-[`Ownable.transferOwnership`]]
  598. :xref-Ownable-transferOwnership: xref:ownership.adoc#Ownable-transferOwnership-address-
  599. :Ownable-_transferOwnership: pass:normal[xref:ownership.adoc#Ownable-_transferOwnership-address-[`Ownable._transferOwnership`]]
  600. :xref-Ownable-_transferOwnership: xref:ownership.adoc#Ownable-_transferOwnership-address-
  601. :Ownable-OwnershipTransferred: pass:normal[xref:ownership.adoc#Ownable-OwnershipTransferred-address-address-[`Ownable.OwnershipTransferred`]]
  602. :xref-Ownable-OwnershipTransferred: xref:ownership.adoc#Ownable-OwnershipTransferred-address-address-
  603. :Secondary: pass:normal[xref:ownership.adoc#Secondary[`Secondary`]]
  604. :xref-Secondary: xref:ownership.adoc#Secondary
  605. :Secondary-onlyPrimary: pass:normal[xref:ownership.adoc#Secondary-onlyPrimary--[`Secondary.onlyPrimary`]]
  606. :xref-Secondary-onlyPrimary: xref:ownership.adoc#Secondary-onlyPrimary--
  607. :Secondary-constructor: pass:normal[xref:ownership.adoc#Secondary-constructor--[`Secondary.constructor`]]
  608. :xref-Secondary-constructor: xref:ownership.adoc#Secondary-constructor--
  609. :Secondary-primary: pass:normal[xref:ownership.adoc#Secondary-primary--[`Secondary.primary`]]
  610. :xref-Secondary-primary: xref:ownership.adoc#Secondary-primary--
  611. :Secondary-transferPrimary: pass:normal[xref:ownership.adoc#Secondary-transferPrimary-address-[`Secondary.transferPrimary`]]
  612. :xref-Secondary-transferPrimary: xref:ownership.adoc#Secondary-transferPrimary-address-
  613. :Secondary-PrimaryTransferred: pass:normal[xref:ownership.adoc#Secondary-PrimaryTransferred-address-[`Secondary.PrimaryTransferred`]]
  614. :xref-Secondary-PrimaryTransferred: xref:ownership.adoc#Secondary-PrimaryTransferred-address-
  615. :Math: pass:normal[xref:math.adoc#Math[`Math`]]
  616. :xref-Math: xref:math.adoc#Math
  617. :Math-max: pass:normal[xref:math.adoc#Math-max-uint256-uint256-[`Math.max`]]
  618. :xref-Math-max: xref:math.adoc#Math-max-uint256-uint256-
  619. :Math-min: pass:normal[xref:math.adoc#Math-min-uint256-uint256-[`Math.min`]]
  620. :xref-Math-min: xref:math.adoc#Math-min-uint256-uint256-
  621. :Math-average: pass:normal[xref:math.adoc#Math-average-uint256-uint256-[`Math.average`]]
  622. :xref-Math-average: xref:math.adoc#Math-average-uint256-uint256-
  623. :SafeMath: pass:normal[xref:math.adoc#SafeMath[`SafeMath`]]
  624. :xref-SafeMath: xref:math.adoc#SafeMath
  625. :SafeMath-add: pass:normal[xref:math.adoc#SafeMath-add-uint256-uint256-[`SafeMath.add`]]
  626. :xref-SafeMath-add: xref:math.adoc#SafeMath-add-uint256-uint256-
  627. :SafeMath-sub: pass:normal[xref:math.adoc#SafeMath-sub-uint256-uint256-[`SafeMath.sub`]]
  628. :xref-SafeMath-sub: xref:math.adoc#SafeMath-sub-uint256-uint256-
  629. :SafeMath-sub: pass:normal[xref:math.adoc#SafeMath-sub-uint256-uint256-string-[`SafeMath.sub`]]
  630. :xref-SafeMath-sub: xref:math.adoc#SafeMath-sub-uint256-uint256-string-
  631. :SafeMath-mul: pass:normal[xref:math.adoc#SafeMath-mul-uint256-uint256-[`SafeMath.mul`]]
  632. :xref-SafeMath-mul: xref:math.adoc#SafeMath-mul-uint256-uint256-
  633. :SafeMath-div: pass:normal[xref:math.adoc#SafeMath-div-uint256-uint256-[`SafeMath.div`]]
  634. :xref-SafeMath-div: xref:math.adoc#SafeMath-div-uint256-uint256-
  635. :SafeMath-div: pass:normal[xref:math.adoc#SafeMath-div-uint256-uint256-string-[`SafeMath.div`]]
  636. :xref-SafeMath-div: xref:math.adoc#SafeMath-div-uint256-uint256-string-
  637. :SafeMath-mod: pass:normal[xref:math.adoc#SafeMath-mod-uint256-uint256-[`SafeMath.mod`]]
  638. :xref-SafeMath-mod: xref:math.adoc#SafeMath-mod-uint256-uint256-
  639. :SafeMath-mod: pass:normal[xref:math.adoc#SafeMath-mod-uint256-uint256-string-[`SafeMath.mod`]]
  640. :xref-SafeMath-mod: xref:math.adoc#SafeMath-mod-uint256-uint256-string-
  641. :PaymentSplitter: pass:normal[xref:payment.adoc#PaymentSplitter[`PaymentSplitter`]]
  642. :xref-PaymentSplitter: xref:payment.adoc#PaymentSplitter
  643. :PaymentSplitter-constructor: pass:normal[xref:payment.adoc#PaymentSplitter-constructor-address---uint256---[`PaymentSplitter.constructor`]]
  644. :xref-PaymentSplitter-constructor: xref:payment.adoc#PaymentSplitter-constructor-address---uint256---
  645. :PaymentSplitter-fallback: pass:normal[xref:payment.adoc#PaymentSplitter-fallback--[`PaymentSplitter.fallback`]]
  646. :xref-PaymentSplitter-fallback: xref:payment.adoc#PaymentSplitter-fallback--
  647. :PaymentSplitter-totalShares: pass:normal[xref:payment.adoc#PaymentSplitter-totalShares--[`PaymentSplitter.totalShares`]]
  648. :xref-PaymentSplitter-totalShares: xref:payment.adoc#PaymentSplitter-totalShares--
  649. :PaymentSplitter-totalReleased: pass:normal[xref:payment.adoc#PaymentSplitter-totalReleased--[`PaymentSplitter.totalReleased`]]
  650. :xref-PaymentSplitter-totalReleased: xref:payment.adoc#PaymentSplitter-totalReleased--
  651. :PaymentSplitter-shares: pass:normal[xref:payment.adoc#PaymentSplitter-shares-address-[`PaymentSplitter.shares`]]
  652. :xref-PaymentSplitter-shares: xref:payment.adoc#PaymentSplitter-shares-address-
  653. :PaymentSplitter-released: pass:normal[xref:payment.adoc#PaymentSplitter-released-address-[`PaymentSplitter.released`]]
  654. :xref-PaymentSplitter-released: xref:payment.adoc#PaymentSplitter-released-address-
  655. :PaymentSplitter-payee: pass:normal[xref:payment.adoc#PaymentSplitter-payee-uint256-[`PaymentSplitter.payee`]]
  656. :xref-PaymentSplitter-payee: xref:payment.adoc#PaymentSplitter-payee-uint256-
  657. :PaymentSplitter-release: pass:normal[xref:payment.adoc#PaymentSplitter-release-address-payable-[`PaymentSplitter.release`]]
  658. :xref-PaymentSplitter-release: xref:payment.adoc#PaymentSplitter-release-address-payable-
  659. :PaymentSplitter-PayeeAdded: pass:normal[xref:payment.adoc#PaymentSplitter-PayeeAdded-address-uint256-[`PaymentSplitter.PayeeAdded`]]
  660. :xref-PaymentSplitter-PayeeAdded: xref:payment.adoc#PaymentSplitter-PayeeAdded-address-uint256-
  661. :PaymentSplitter-PaymentReleased: pass:normal[xref:payment.adoc#PaymentSplitter-PaymentReleased-address-uint256-[`PaymentSplitter.PaymentReleased`]]
  662. :xref-PaymentSplitter-PaymentReleased: xref:payment.adoc#PaymentSplitter-PaymentReleased-address-uint256-
  663. :PaymentSplitter-PaymentReceived: pass:normal[xref:payment.adoc#PaymentSplitter-PaymentReceived-address-uint256-[`PaymentSplitter.PaymentReceived`]]
  664. :xref-PaymentSplitter-PaymentReceived: xref:payment.adoc#PaymentSplitter-PaymentReceived-address-uint256-
  665. :PullPayment: pass:normal[xref:payment.adoc#PullPayment[`PullPayment`]]
  666. :xref-PullPayment: xref:payment.adoc#PullPayment
  667. :PullPayment-constructor: pass:normal[xref:payment.adoc#PullPayment-constructor--[`PullPayment.constructor`]]
  668. :xref-PullPayment-constructor: xref:payment.adoc#PullPayment-constructor--
  669. :PullPayment-withdrawPayments: pass:normal[xref:payment.adoc#PullPayment-withdrawPayments-address-payable-[`PullPayment.withdrawPayments`]]
  670. :xref-PullPayment-withdrawPayments: xref:payment.adoc#PullPayment-withdrawPayments-address-payable-
  671. :PullPayment-withdrawPaymentsWithGas: pass:normal[xref:payment.adoc#PullPayment-withdrawPaymentsWithGas-address-payable-[`PullPayment.withdrawPaymentsWithGas`]]
  672. :xref-PullPayment-withdrawPaymentsWithGas: xref:payment.adoc#PullPayment-withdrawPaymentsWithGas-address-payable-
  673. :PullPayment-payments: pass:normal[xref:payment.adoc#PullPayment-payments-address-[`PullPayment.payments`]]
  674. :xref-PullPayment-payments: xref:payment.adoc#PullPayment-payments-address-
  675. :PullPayment-_asyncTransfer: pass:normal[xref:payment.adoc#PullPayment-_asyncTransfer-address-uint256-[`PullPayment._asyncTransfer`]]
  676. :xref-PullPayment-_asyncTransfer: xref:payment.adoc#PullPayment-_asyncTransfer-address-uint256-
  677. :ConditionalEscrow: pass:normal[xref:payment.adoc#ConditionalEscrow[`ConditionalEscrow`]]
  678. :xref-ConditionalEscrow: xref:payment.adoc#ConditionalEscrow
  679. :ConditionalEscrow-withdrawalAllowed: pass:normal[xref:payment.adoc#ConditionalEscrow-withdrawalAllowed-address-[`ConditionalEscrow.withdrawalAllowed`]]
  680. :xref-ConditionalEscrow-withdrawalAllowed: xref:payment.adoc#ConditionalEscrow-withdrawalAllowed-address-
  681. :ConditionalEscrow-withdraw: pass:normal[xref:payment.adoc#ConditionalEscrow-withdraw-address-payable-[`ConditionalEscrow.withdraw`]]
  682. :xref-ConditionalEscrow-withdraw: xref:payment.adoc#ConditionalEscrow-withdraw-address-payable-
  683. :Escrow: pass:normal[xref:payment.adoc#Escrow[`Escrow`]]
  684. :xref-Escrow: xref:payment.adoc#Escrow
  685. :Escrow-depositsOf: pass:normal[xref:payment.adoc#Escrow-depositsOf-address-[`Escrow.depositsOf`]]
  686. :xref-Escrow-depositsOf: xref:payment.adoc#Escrow-depositsOf-address-
  687. :Escrow-deposit: pass:normal[xref:payment.adoc#Escrow-deposit-address-[`Escrow.deposit`]]
  688. :xref-Escrow-deposit: xref:payment.adoc#Escrow-deposit-address-
  689. :Escrow-withdraw: pass:normal[xref:payment.adoc#Escrow-withdraw-address-payable-[`Escrow.withdraw`]]
  690. :xref-Escrow-withdraw: xref:payment.adoc#Escrow-withdraw-address-payable-
  691. :Escrow-withdrawWithGas: pass:normal[xref:payment.adoc#Escrow-withdrawWithGas-address-payable-[`Escrow.withdrawWithGas`]]
  692. :xref-Escrow-withdrawWithGas: xref:payment.adoc#Escrow-withdrawWithGas-address-payable-
  693. :Escrow-Deposited: pass:normal[xref:payment.adoc#Escrow-Deposited-address-uint256-[`Escrow.Deposited`]]
  694. :xref-Escrow-Deposited: xref:payment.adoc#Escrow-Deposited-address-uint256-
  695. :Escrow-Withdrawn: pass:normal[xref:payment.adoc#Escrow-Withdrawn-address-uint256-[`Escrow.Withdrawn`]]
  696. :xref-Escrow-Withdrawn: xref:payment.adoc#Escrow-Withdrawn-address-uint256-
  697. :RefundEscrow: pass:normal[xref:payment.adoc#RefundEscrow[`RefundEscrow`]]
  698. :xref-RefundEscrow: xref:payment.adoc#RefundEscrow
  699. :RefundEscrow-constructor: pass:normal[xref:payment.adoc#RefundEscrow-constructor-address-payable-[`RefundEscrow.constructor`]]
  700. :xref-RefundEscrow-constructor: xref:payment.adoc#RefundEscrow-constructor-address-payable-
  701. :RefundEscrow-state: pass:normal[xref:payment.adoc#RefundEscrow-state--[`RefundEscrow.state`]]
  702. :xref-RefundEscrow-state: xref:payment.adoc#RefundEscrow-state--
  703. :RefundEscrow-beneficiary: pass:normal[xref:payment.adoc#RefundEscrow-beneficiary--[`RefundEscrow.beneficiary`]]
  704. :xref-RefundEscrow-beneficiary: xref:payment.adoc#RefundEscrow-beneficiary--
  705. :RefundEscrow-deposit: pass:normal[xref:payment.adoc#RefundEscrow-deposit-address-[`RefundEscrow.deposit`]]
  706. :xref-RefundEscrow-deposit: xref:payment.adoc#RefundEscrow-deposit-address-
  707. :RefundEscrow-close: pass:normal[xref:payment.adoc#RefundEscrow-close--[`RefundEscrow.close`]]
  708. :xref-RefundEscrow-close: xref:payment.adoc#RefundEscrow-close--
  709. :RefundEscrow-enableRefunds: pass:normal[xref:payment.adoc#RefundEscrow-enableRefunds--[`RefundEscrow.enableRefunds`]]
  710. :xref-RefundEscrow-enableRefunds: xref:payment.adoc#RefundEscrow-enableRefunds--
  711. :RefundEscrow-beneficiaryWithdraw: pass:normal[xref:payment.adoc#RefundEscrow-beneficiaryWithdraw--[`RefundEscrow.beneficiaryWithdraw`]]
  712. :xref-RefundEscrow-beneficiaryWithdraw: xref:payment.adoc#RefundEscrow-beneficiaryWithdraw--
  713. :RefundEscrow-withdrawalAllowed: pass:normal[xref:payment.adoc#RefundEscrow-withdrawalAllowed-address-[`RefundEscrow.withdrawalAllowed`]]
  714. :xref-RefundEscrow-withdrawalAllowed: xref:payment.adoc#RefundEscrow-withdrawalAllowed-address-
  715. :RefundEscrow-RefundsClosed: pass:normal[xref:payment.adoc#RefundEscrow-RefundsClosed--[`RefundEscrow.RefundsClosed`]]
  716. :xref-RefundEscrow-RefundsClosed: xref:payment.adoc#RefundEscrow-RefundsClosed--
  717. :RefundEscrow-RefundsEnabled: pass:normal[xref:payment.adoc#RefundEscrow-RefundsEnabled--[`RefundEscrow.RefundsEnabled`]]
  718. :xref-RefundEscrow-RefundsEnabled: xref:payment.adoc#RefundEscrow-RefundsEnabled--
  719. :Address: pass:normal[xref:utils.adoc#Address[`Address`]]
  720. :xref-Address: xref:utils.adoc#Address
  721. :Address-isContract: pass:normal[xref:utils.adoc#Address-isContract-address-[`Address.isContract`]]
  722. :xref-Address-isContract: xref:utils.adoc#Address-isContract-address-
  723. :Address-toPayable: pass:normal[xref:utils.adoc#Address-toPayable-address-[`Address.toPayable`]]
  724. :xref-Address-toPayable: xref:utils.adoc#Address-toPayable-address-
  725. :Address-sendValue: pass:normal[xref:utils.adoc#Address-sendValue-address-payable-uint256-[`Address.sendValue`]]
  726. :xref-Address-sendValue: xref:utils.adoc#Address-sendValue-address-payable-uint256-
  727. :Arrays: pass:normal[xref:utils.adoc#Arrays[`Arrays`]]
  728. :xref-Arrays: xref:utils.adoc#Arrays
  729. :Arrays-findUpperBound: pass:normal[xref:utils.adoc#Arrays-findUpperBound-uint256---uint256-[`Arrays.findUpperBound`]]
  730. :xref-Arrays-findUpperBound: xref:utils.adoc#Arrays-findUpperBound-uint256---uint256-
  731. :Create2: pass:normal[xref:utils.adoc#Create2[`Create2`]]
  732. :xref-Create2: xref:utils.adoc#Create2
  733. :Create2-deploy: pass:normal[xref:utils.adoc#Create2-deploy-bytes32-bytes-[`Create2.deploy`]]
  734. :xref-Create2-deploy: xref:utils.adoc#Create2-deploy-bytes32-bytes-
  735. :Create2-computeAddress: pass:normal[xref:utils.adoc#Create2-computeAddress-bytes32-bytes-[`Create2.computeAddress`]]
  736. :xref-Create2-computeAddress: xref:utils.adoc#Create2-computeAddress-bytes32-bytes-
  737. :Create2-computeAddress: pass:normal[xref:utils.adoc#Create2-computeAddress-bytes32-bytes-address-[`Create2.computeAddress`]]
  738. :xref-Create2-computeAddress: xref:utils.adoc#Create2-computeAddress-bytes32-bytes-address-
  739. :EnumerableSet: pass:normal[xref:utils.adoc#EnumerableSet[`EnumerableSet`]]
  740. :xref-EnumerableSet: xref:utils.adoc#EnumerableSet
  741. :EnumerableSet-add: pass:normal[xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-AddressSet-address-[`EnumerableSet.add`]]
  742. :xref-EnumerableSet-add: xref:utils.adoc#EnumerableSet-add-struct-EnumerableSet-AddressSet-address-
  743. :EnumerableSet-remove: pass:normal[xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-[`EnumerableSet.remove`]]
  744. :xref-EnumerableSet-remove: xref:utils.adoc#EnumerableSet-remove-struct-EnumerableSet-AddressSet-address-
  745. :EnumerableSet-contains: pass:normal[xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-[`EnumerableSet.contains`]]
  746. :xref-EnumerableSet-contains: xref:utils.adoc#EnumerableSet-contains-struct-EnumerableSet-AddressSet-address-
  747. :EnumerableSet-enumerate: pass:normal[xref:utils.adoc#EnumerableSet-enumerate-struct-EnumerableSet-AddressSet-[`EnumerableSet.enumerate`]]
  748. :xref-EnumerableSet-enumerate: xref:utils.adoc#EnumerableSet-enumerate-struct-EnumerableSet-AddressSet-
  749. :EnumerableSet-length: pass:normal[xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-AddressSet-[`EnumerableSet.length`]]
  750. :xref-EnumerableSet-length: xref:utils.adoc#EnumerableSet-length-struct-EnumerableSet-AddressSet-
  751. :EnumerableSet-get: pass:normal[xref:utils.adoc#EnumerableSet-get-struct-EnumerableSet-AddressSet-uint256-[`EnumerableSet.get`]]
  752. :xref-EnumerableSet-get: xref:utils.adoc#EnumerableSet-get-struct-EnumerableSet-AddressSet-uint256-
  753. :ReentrancyGuard: pass:normal[xref:utils.adoc#ReentrancyGuard[`ReentrancyGuard`]]
  754. :xref-ReentrancyGuard: xref:utils.adoc#ReentrancyGuard
  755. :ReentrancyGuard-nonReentrant: pass:normal[xref:utils.adoc#ReentrancyGuard-nonReentrant--[`ReentrancyGuard.nonReentrant`]]
  756. :xref-ReentrancyGuard-nonReentrant: xref:utils.adoc#ReentrancyGuard-nonReentrant--
  757. :ReentrancyGuard-constructor: pass:normal[xref:utils.adoc#ReentrancyGuard-constructor--[`ReentrancyGuard.constructor`]]
  758. :xref-ReentrancyGuard-constructor: xref:utils.adoc#ReentrancyGuard-constructor--
  759. :SafeCast: pass:normal[xref:utils.adoc#SafeCast[`SafeCast`]]
  760. :xref-SafeCast: xref:utils.adoc#SafeCast
  761. :SafeCast-toUint128: pass:normal[xref:utils.adoc#SafeCast-toUint128-uint256-[`SafeCast.toUint128`]]
  762. :xref-SafeCast-toUint128: xref:utils.adoc#SafeCast-toUint128-uint256-
  763. :SafeCast-toUint64: pass:normal[xref:utils.adoc#SafeCast-toUint64-uint256-[`SafeCast.toUint64`]]
  764. :xref-SafeCast-toUint64: xref:utils.adoc#SafeCast-toUint64-uint256-
  765. :SafeCast-toUint32: pass:normal[xref:utils.adoc#SafeCast-toUint32-uint256-[`SafeCast.toUint32`]]
  766. :xref-SafeCast-toUint32: xref:utils.adoc#SafeCast-toUint32-uint256-
  767. :SafeCast-toUint16: pass:normal[xref:utils.adoc#SafeCast-toUint16-uint256-[`SafeCast.toUint16`]]
  768. :xref-SafeCast-toUint16: xref:utils.adoc#SafeCast-toUint16-uint256-
  769. :SafeCast-toUint8: pass:normal[xref:utils.adoc#SafeCast-toUint8-uint256-[`SafeCast.toUint8`]]
  770. :xref-SafeCast-toUint8: xref:utils.adoc#SafeCast-toUint8-uint256-
  771. :ERC721: pass:normal[xref:token/ERC721.adoc#ERC721[`ERC721`]]
  772. :xref-ERC721: xref:token/ERC721.adoc#ERC721
  773. :ERC721-balanceOf: pass:normal[xref:token/ERC721.adoc#ERC721-balanceOf-address-[`ERC721.balanceOf`]]
  774. :xref-ERC721-balanceOf: xref:token/ERC721.adoc#ERC721-balanceOf-address-
  775. :ERC721-ownerOf: pass:normal[xref:token/ERC721.adoc#ERC721-ownerOf-uint256-[`ERC721.ownerOf`]]
  776. :xref-ERC721-ownerOf: xref:token/ERC721.adoc#ERC721-ownerOf-uint256-
  777. :ERC721-approve: pass:normal[xref:token/ERC721.adoc#ERC721-approve-address-uint256-[`ERC721.approve`]]
  778. :xref-ERC721-approve: xref:token/ERC721.adoc#ERC721-approve-address-uint256-
  779. :ERC721-getApproved: pass:normal[xref:token/ERC721.adoc#ERC721-getApproved-uint256-[`ERC721.getApproved`]]
  780. :xref-ERC721-getApproved: xref:token/ERC721.adoc#ERC721-getApproved-uint256-
  781. :ERC721-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#ERC721-setApprovalForAll-address-bool-[`ERC721.setApprovalForAll`]]
  782. :xref-ERC721-setApprovalForAll: xref:token/ERC721.adoc#ERC721-setApprovalForAll-address-bool-
  783. :ERC721-isApprovedForAll: pass:normal[xref:token/ERC721.adoc#ERC721-isApprovedForAll-address-address-[`ERC721.isApprovedForAll`]]
  784. :xref-ERC721-isApprovedForAll: xref:token/ERC721.adoc#ERC721-isApprovedForAll-address-address-
  785. :ERC721-transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-transferFrom-address-address-uint256-[`ERC721.transferFrom`]]
  786. :xref-ERC721-transferFrom: xref:token/ERC721.adoc#ERC721-transferFrom-address-address-uint256-
  787. :ERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-[`ERC721.safeTransferFrom`]]
  788. :xref-ERC721-safeTransferFrom: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-
  789. :ERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-bytes-[`ERC721.safeTransferFrom`]]
  790. :xref-ERC721-safeTransferFrom: xref:token/ERC721.adoc#ERC721-safeTransferFrom-address-address-uint256-bytes-
  791. :ERC721-_safeTransferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-_safeTransferFrom-address-address-uint256-bytes-[`ERC721._safeTransferFrom`]]
  792. :xref-ERC721-_safeTransferFrom: xref:token/ERC721.adoc#ERC721-_safeTransferFrom-address-address-uint256-bytes-
  793. :ERC721-_exists: pass:normal[xref:token/ERC721.adoc#ERC721-_exists-uint256-[`ERC721._exists`]]
  794. :xref-ERC721-_exists: xref:token/ERC721.adoc#ERC721-_exists-uint256-
  795. :ERC721-_isApprovedOrOwner: pass:normal[xref:token/ERC721.adoc#ERC721-_isApprovedOrOwner-address-uint256-[`ERC721._isApprovedOrOwner`]]
  796. :xref-ERC721-_isApprovedOrOwner: xref:token/ERC721.adoc#ERC721-_isApprovedOrOwner-address-uint256-
  797. :ERC721-_safeMint: pass:normal[xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-[`ERC721._safeMint`]]
  798. :xref-ERC721-_safeMint: xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-
  799. :ERC721-_safeMint: pass:normal[xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-bytes-[`ERC721._safeMint`]]
  800. :xref-ERC721-_safeMint: xref:token/ERC721.adoc#ERC721-_safeMint-address-uint256-bytes-
  801. :ERC721-_mint: pass:normal[xref:token/ERC721.adoc#ERC721-_mint-address-uint256-[`ERC721._mint`]]
  802. :xref-ERC721-_mint: xref:token/ERC721.adoc#ERC721-_mint-address-uint256-
  803. :ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-address-uint256-[`ERC721._burn`]]
  804. :xref-ERC721-_burn: xref:token/ERC721.adoc#ERC721-_burn-address-uint256-
  805. :ERC721-_burn: pass:normal[xref:token/ERC721.adoc#ERC721-_burn-uint256-[`ERC721._burn`]]
  806. :xref-ERC721-_burn: xref:token/ERC721.adoc#ERC721-_burn-uint256-
  807. :ERC721-_transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721-_transferFrom-address-address-uint256-[`ERC721._transferFrom`]]
  808. :xref-ERC721-_transferFrom: xref:token/ERC721.adoc#ERC721-_transferFrom-address-address-uint256-
  809. :ERC721-_checkOnERC721Received: pass:normal[xref:token/ERC721.adoc#ERC721-_checkOnERC721Received-address-address-uint256-bytes-[`ERC721._checkOnERC721Received`]]
  810. :xref-ERC721-_checkOnERC721Received: xref:token/ERC721.adoc#ERC721-_checkOnERC721Received-address-address-uint256-bytes-
  811. :ERC721Burnable: pass:normal[xref:token/ERC721.adoc#ERC721Burnable[`ERC721Burnable`]]
  812. :xref-ERC721Burnable: xref:token/ERC721.adoc#ERC721Burnable
  813. :ERC721Burnable-burn: pass:normal[xref:token/ERC721.adoc#ERC721Burnable-burn-uint256-[`ERC721Burnable.burn`]]
  814. :xref-ERC721Burnable-burn: xref:token/ERC721.adoc#ERC721Burnable-burn-uint256-
  815. :ERC721Enumerable: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable[`ERC721Enumerable`]]
  816. :xref-ERC721Enumerable: xref:token/ERC721.adoc#ERC721Enumerable
  817. :ERC721Enumerable-constructor: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-constructor--[`ERC721Enumerable.constructor`]]
  818. :xref-ERC721Enumerable-constructor: xref:token/ERC721.adoc#ERC721Enumerable-constructor--
  819. :ERC721Enumerable-tokenOfOwnerByIndex: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`ERC721Enumerable.tokenOfOwnerByIndex`]]
  820. :xref-ERC721Enumerable-tokenOfOwnerByIndex: xref:token/ERC721.adoc#ERC721Enumerable-tokenOfOwnerByIndex-address-uint256-
  821. :ERC721Enumerable-totalSupply: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-totalSupply--[`ERC721Enumerable.totalSupply`]]
  822. :xref-ERC721Enumerable-totalSupply: xref:token/ERC721.adoc#ERC721Enumerable-totalSupply--
  823. :ERC721Enumerable-tokenByIndex: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-tokenByIndex-uint256-[`ERC721Enumerable.tokenByIndex`]]
  824. :xref-ERC721Enumerable-tokenByIndex: xref:token/ERC721.adoc#ERC721Enumerable-tokenByIndex-uint256-
  825. :ERC721Enumerable-_transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_transferFrom-address-address-uint256-[`ERC721Enumerable._transferFrom`]]
  826. :xref-ERC721Enumerable-_transferFrom: xref:token/ERC721.adoc#ERC721Enumerable-_transferFrom-address-address-uint256-
  827. :ERC721Enumerable-_mint: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_mint-address-uint256-[`ERC721Enumerable._mint`]]
  828. :xref-ERC721Enumerable-_mint: xref:token/ERC721.adoc#ERC721Enumerable-_mint-address-uint256-
  829. :ERC721Enumerable-_burn: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_burn-address-uint256-[`ERC721Enumerable._burn`]]
  830. :xref-ERC721Enumerable-_burn: xref:token/ERC721.adoc#ERC721Enumerable-_burn-address-uint256-
  831. :ERC721Enumerable-_tokensOfOwner: pass:normal[xref:token/ERC721.adoc#ERC721Enumerable-_tokensOfOwner-address-[`ERC721Enumerable._tokensOfOwner`]]
  832. :xref-ERC721Enumerable-_tokensOfOwner: xref:token/ERC721.adoc#ERC721Enumerable-_tokensOfOwner-address-
  833. :ERC721Full: pass:normal[xref:token/ERC721.adoc#ERC721Full[`ERC721Full`]]
  834. :xref-ERC721Full: xref:token/ERC721.adoc#ERC721Full
  835. :ERC721Full-constructor: pass:normal[xref:token/ERC721.adoc#ERC721Full-constructor-string-string-[`ERC721Full.constructor`]]
  836. :xref-ERC721Full-constructor: xref:token/ERC721.adoc#ERC721Full-constructor-string-string-
  837. :ERC721Holder: pass:normal[xref:token/ERC721.adoc#ERC721Holder[`ERC721Holder`]]
  838. :xref-ERC721Holder: xref:token/ERC721.adoc#ERC721Holder
  839. :ERC721Holder-onERC721Received: pass:normal[xref:token/ERC721.adoc#ERC721Holder-onERC721Received-address-address-uint256-bytes-[`ERC721Holder.onERC721Received`]]
  840. :xref-ERC721Holder-onERC721Received: xref:token/ERC721.adoc#ERC721Holder-onERC721Received-address-address-uint256-bytes-
  841. :ERC721Metadata: pass:normal[xref:token/ERC721.adoc#ERC721Metadata[`ERC721Metadata`]]
  842. :xref-ERC721Metadata: xref:token/ERC721.adoc#ERC721Metadata
  843. :ERC721Metadata-constructor: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-constructor-string-string-[`ERC721Metadata.constructor`]]
  844. :xref-ERC721Metadata-constructor: xref:token/ERC721.adoc#ERC721Metadata-constructor-string-string-
  845. :ERC721Metadata-name: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-name--[`ERC721Metadata.name`]]
  846. :xref-ERC721Metadata-name: xref:token/ERC721.adoc#ERC721Metadata-name--
  847. :ERC721Metadata-symbol: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-symbol--[`ERC721Metadata.symbol`]]
  848. :xref-ERC721Metadata-symbol: xref:token/ERC721.adoc#ERC721Metadata-symbol--
  849. :ERC721Metadata-tokenURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-tokenURI-uint256-[`ERC721Metadata.tokenURI`]]
  850. :xref-ERC721Metadata-tokenURI: xref:token/ERC721.adoc#ERC721Metadata-tokenURI-uint256-
  851. :ERC721Metadata-_setTokenURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-_setTokenURI-uint256-string-[`ERC721Metadata._setTokenURI`]]
  852. :xref-ERC721Metadata-_setTokenURI: xref:token/ERC721.adoc#ERC721Metadata-_setTokenURI-uint256-string-
  853. :ERC721Metadata-_setBaseURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-_setBaseURI-string-[`ERC721Metadata._setBaseURI`]]
  854. :xref-ERC721Metadata-_setBaseURI: xref:token/ERC721.adoc#ERC721Metadata-_setBaseURI-string-
  855. :ERC721Metadata-baseURI: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-baseURI--[`ERC721Metadata.baseURI`]]
  856. :xref-ERC721Metadata-baseURI: xref:token/ERC721.adoc#ERC721Metadata-baseURI--
  857. :ERC721Metadata-_burn: pass:normal[xref:token/ERC721.adoc#ERC721Metadata-_burn-address-uint256-[`ERC721Metadata._burn`]]
  858. :xref-ERC721Metadata-_burn: xref:token/ERC721.adoc#ERC721Metadata-_burn-address-uint256-
  859. :ERC721MetadataMintable: pass:normal[xref:token/ERC721.adoc#ERC721MetadataMintable[`ERC721MetadataMintable`]]
  860. :xref-ERC721MetadataMintable: xref:token/ERC721.adoc#ERC721MetadataMintable
  861. :ERC721MetadataMintable-mintWithTokenURI: pass:normal[xref:token/ERC721.adoc#ERC721MetadataMintable-mintWithTokenURI-address-uint256-string-[`ERC721MetadataMintable.mintWithTokenURI`]]
  862. :xref-ERC721MetadataMintable-mintWithTokenURI: xref:token/ERC721.adoc#ERC721MetadataMintable-mintWithTokenURI-address-uint256-string-
  863. :ERC721Mintable: pass:normal[xref:token/ERC721.adoc#ERC721Mintable[`ERC721Mintable`]]
  864. :xref-ERC721Mintable: xref:token/ERC721.adoc#ERC721Mintable
  865. :ERC721Mintable-mint: pass:normal[xref:token/ERC721.adoc#ERC721Mintable-mint-address-uint256-[`ERC721Mintable.mint`]]
  866. :xref-ERC721Mintable-mint: xref:token/ERC721.adoc#ERC721Mintable-mint-address-uint256-
  867. :ERC721Mintable-safeMint: pass:normal[xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-[`ERC721Mintable.safeMint`]]
  868. :xref-ERC721Mintable-safeMint: xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-
  869. :ERC721Mintable-safeMint: pass:normal[xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-bytes-[`ERC721Mintable.safeMint`]]
  870. :xref-ERC721Mintable-safeMint: xref:token/ERC721.adoc#ERC721Mintable-safeMint-address-uint256-bytes-
  871. :ERC721Pausable: pass:normal[xref:token/ERC721.adoc#ERC721Pausable[`ERC721Pausable`]]
  872. :xref-ERC721Pausable: xref:token/ERC721.adoc#ERC721Pausable
  873. :ERC721Pausable-approve: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-approve-address-uint256-[`ERC721Pausable.approve`]]
  874. :xref-ERC721Pausable-approve: xref:token/ERC721.adoc#ERC721Pausable-approve-address-uint256-
  875. :ERC721Pausable-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-setApprovalForAll-address-bool-[`ERC721Pausable.setApprovalForAll`]]
  876. :xref-ERC721Pausable-setApprovalForAll: xref:token/ERC721.adoc#ERC721Pausable-setApprovalForAll-address-bool-
  877. :ERC721Pausable-_transferFrom: pass:normal[xref:token/ERC721.adoc#ERC721Pausable-_transferFrom-address-address-uint256-[`ERC721Pausable._transferFrom`]]
  878. :xref-ERC721Pausable-_transferFrom: xref:token/ERC721.adoc#ERC721Pausable-_transferFrom-address-address-uint256-
  879. :IERC721: pass:normal[xref:token/ERC721.adoc#IERC721[`IERC721`]]
  880. :xref-IERC721: xref:token/ERC721.adoc#IERC721
  881. :IERC721-balanceOf: pass:normal[xref:token/ERC721.adoc#IERC721-balanceOf-address-[`IERC721.balanceOf`]]
  882. :xref-IERC721-balanceOf: xref:token/ERC721.adoc#IERC721-balanceOf-address-
  883. :IERC721-ownerOf: pass:normal[xref:token/ERC721.adoc#IERC721-ownerOf-uint256-[`IERC721.ownerOf`]]
  884. :xref-IERC721-ownerOf: xref:token/ERC721.adoc#IERC721-ownerOf-uint256-
  885. :IERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-[`IERC721.safeTransferFrom`]]
  886. :xref-IERC721-safeTransferFrom: xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-
  887. :IERC721-transferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-transferFrom-address-address-uint256-[`IERC721.transferFrom`]]
  888. :xref-IERC721-transferFrom: xref:token/ERC721.adoc#IERC721-transferFrom-address-address-uint256-
  889. :IERC721-approve: pass:normal[xref:token/ERC721.adoc#IERC721-approve-address-uint256-[`IERC721.approve`]]
  890. :xref-IERC721-approve: xref:token/ERC721.adoc#IERC721-approve-address-uint256-
  891. :IERC721-getApproved: pass:normal[xref:token/ERC721.adoc#IERC721-getApproved-uint256-[`IERC721.getApproved`]]
  892. :xref-IERC721-getApproved: xref:token/ERC721.adoc#IERC721-getApproved-uint256-
  893. :IERC721-setApprovalForAll: pass:normal[xref:token/ERC721.adoc#IERC721-setApprovalForAll-address-bool-[`IERC721.setApprovalForAll`]]
  894. :xref-IERC721-setApprovalForAll: xref:token/ERC721.adoc#IERC721-setApprovalForAll-address-bool-
  895. :IERC721-isApprovedForAll: pass:normal[xref:token/ERC721.adoc#IERC721-isApprovedForAll-address-address-[`IERC721.isApprovedForAll`]]
  896. :xref-IERC721-isApprovedForAll: xref:token/ERC721.adoc#IERC721-isApprovedForAll-address-address-
  897. :IERC721-safeTransferFrom: pass:normal[xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-bytes-[`IERC721.safeTransferFrom`]]
  898. :xref-IERC721-safeTransferFrom: xref:token/ERC721.adoc#IERC721-safeTransferFrom-address-address-uint256-bytes-
  899. :IERC721-Transfer: pass:normal[xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-[`IERC721.Transfer`]]
  900. :xref-IERC721-Transfer: xref:token/ERC721.adoc#IERC721-Transfer-address-address-uint256-
  901. :IERC721-Approval: pass:normal[xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-[`IERC721.Approval`]]
  902. :xref-IERC721-Approval: xref:token/ERC721.adoc#IERC721-Approval-address-address-uint256-
  903. :IERC721-ApprovalForAll: pass:normal[xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-[`IERC721.ApprovalForAll`]]
  904. :xref-IERC721-ApprovalForAll: xref:token/ERC721.adoc#IERC721-ApprovalForAll-address-address-bool-
  905. :IERC721Enumerable: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable[`IERC721Enumerable`]]
  906. :xref-IERC721Enumerable: xref:token/ERC721.adoc#IERC721Enumerable
  907. :IERC721Enumerable-totalSupply: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-totalSupply--[`IERC721Enumerable.totalSupply`]]
  908. :xref-IERC721Enumerable-totalSupply: xref:token/ERC721.adoc#IERC721Enumerable-totalSupply--
  909. :IERC721Enumerable-tokenOfOwnerByIndex: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-[`IERC721Enumerable.tokenOfOwnerByIndex`]]
  910. :xref-IERC721Enumerable-tokenOfOwnerByIndex: xref:token/ERC721.adoc#IERC721Enumerable-tokenOfOwnerByIndex-address-uint256-
  911. :IERC721Enumerable-tokenByIndex: pass:normal[xref:token/ERC721.adoc#IERC721Enumerable-tokenByIndex-uint256-[`IERC721Enumerable.tokenByIndex`]]
  912. :xref-IERC721Enumerable-tokenByIndex: xref:token/ERC721.adoc#IERC721Enumerable-tokenByIndex-uint256-
  913. :IERC721Full: pass:normal[xref:token/ERC721.adoc#IERC721Full[`IERC721Full`]]
  914. :xref-IERC721Full: xref:token/ERC721.adoc#IERC721Full
  915. :IERC721Metadata: pass:normal[xref:token/ERC721.adoc#IERC721Metadata[`IERC721Metadata`]]
  916. :xref-IERC721Metadata: xref:token/ERC721.adoc#IERC721Metadata
  917. :IERC721Metadata-name: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-name--[`IERC721Metadata.name`]]
  918. :xref-IERC721Metadata-name: xref:token/ERC721.adoc#IERC721Metadata-name--
  919. :IERC721Metadata-symbol: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-symbol--[`IERC721Metadata.symbol`]]
  920. :xref-IERC721Metadata-symbol: xref:token/ERC721.adoc#IERC721Metadata-symbol--
  921. :IERC721Metadata-tokenURI: pass:normal[xref:token/ERC721.adoc#IERC721Metadata-tokenURI-uint256-[`IERC721Metadata.tokenURI`]]
  922. :xref-IERC721Metadata-tokenURI: xref:token/ERC721.adoc#IERC721Metadata-tokenURI-uint256-
  923. :IERC721Receiver: pass:normal[xref:token/ERC721.adoc#IERC721Receiver[`IERC721Receiver`]]
  924. :xref-IERC721Receiver: xref:token/ERC721.adoc#IERC721Receiver
  925. :IERC721Receiver-onERC721Received: pass:normal[xref:token/ERC721.adoc#IERC721Receiver-onERC721Received-address-address-uint256-bytes-[`IERC721Receiver.onERC721Received`]]
  926. :xref-IERC721Receiver-onERC721Received: xref:token/ERC721.adoc#IERC721Receiver-onERC721Received-address-address-uint256-bytes-
  927. :ERC20: pass:normal[xref:token/ERC20.adoc#ERC20[`ERC20`]]
  928. :xref-ERC20: xref:token/ERC20.adoc#ERC20
  929. :ERC20-totalSupply: pass:normal[xref:token/ERC20.adoc#ERC20-totalSupply--[`ERC20.totalSupply`]]
  930. :xref-ERC20-totalSupply: xref:token/ERC20.adoc#ERC20-totalSupply--
  931. :ERC20-balanceOf: pass:normal[xref:token/ERC20.adoc#ERC20-balanceOf-address-[`ERC20.balanceOf`]]
  932. :xref-ERC20-balanceOf: xref:token/ERC20.adoc#ERC20-balanceOf-address-
  933. :ERC20-transfer: pass:normal[xref:token/ERC20.adoc#ERC20-transfer-address-uint256-[`ERC20.transfer`]]
  934. :xref-ERC20-transfer: xref:token/ERC20.adoc#ERC20-transfer-address-uint256-
  935. :ERC20-allowance: pass:normal[xref:token/ERC20.adoc#ERC20-allowance-address-address-[`ERC20.allowance`]]
  936. :xref-ERC20-allowance: xref:token/ERC20.adoc#ERC20-allowance-address-address-
  937. :ERC20-approve: pass:normal[xref:token/ERC20.adoc#ERC20-approve-address-uint256-[`ERC20.approve`]]
  938. :xref-ERC20-approve: xref:token/ERC20.adoc#ERC20-approve-address-uint256-
  939. :ERC20-transferFrom: pass:normal[xref:token/ERC20.adoc#ERC20-transferFrom-address-address-uint256-[`ERC20.transferFrom`]]
  940. :xref-ERC20-transferFrom: xref:token/ERC20.adoc#ERC20-transferFrom-address-address-uint256-
  941. :ERC20-increaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20-increaseAllowance-address-uint256-[`ERC20.increaseAllowance`]]
  942. :xref-ERC20-increaseAllowance: xref:token/ERC20.adoc#ERC20-increaseAllowance-address-uint256-
  943. :ERC20-decreaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20-decreaseAllowance-address-uint256-[`ERC20.decreaseAllowance`]]
  944. :xref-ERC20-decreaseAllowance: xref:token/ERC20.adoc#ERC20-decreaseAllowance-address-uint256-
  945. :ERC20-_transfer: pass:normal[xref:token/ERC20.adoc#ERC20-_transfer-address-address-uint256-[`ERC20._transfer`]]
  946. :xref-ERC20-_transfer: xref:token/ERC20.adoc#ERC20-_transfer-address-address-uint256-
  947. :ERC20-_mint: pass:normal[xref:token/ERC20.adoc#ERC20-_mint-address-uint256-[`ERC20._mint`]]
  948. :xref-ERC20-_mint: xref:token/ERC20.adoc#ERC20-_mint-address-uint256-
  949. :ERC20-_burn: pass:normal[xref:token/ERC20.adoc#ERC20-_burn-address-uint256-[`ERC20._burn`]]
  950. :xref-ERC20-_burn: xref:token/ERC20.adoc#ERC20-_burn-address-uint256-
  951. :ERC20-_approve: pass:normal[xref:token/ERC20.adoc#ERC20-_approve-address-address-uint256-[`ERC20._approve`]]
  952. :xref-ERC20-_approve: xref:token/ERC20.adoc#ERC20-_approve-address-address-uint256-
  953. :ERC20-_burnFrom: pass:normal[xref:token/ERC20.adoc#ERC20-_burnFrom-address-uint256-[`ERC20._burnFrom`]]
  954. :xref-ERC20-_burnFrom: xref:token/ERC20.adoc#ERC20-_burnFrom-address-uint256-
  955. :ERC20Burnable: pass:normal[xref:token/ERC20.adoc#ERC20Burnable[`ERC20Burnable`]]
  956. :xref-ERC20Burnable: xref:token/ERC20.adoc#ERC20Burnable
  957. :ERC20Burnable-burn: pass:normal[xref:token/ERC20.adoc#ERC20Burnable-burn-uint256-[`ERC20Burnable.burn`]]
  958. :xref-ERC20Burnable-burn: xref:token/ERC20.adoc#ERC20Burnable-burn-uint256-
  959. :ERC20Burnable-burnFrom: pass:normal[xref:token/ERC20.adoc#ERC20Burnable-burnFrom-address-uint256-[`ERC20Burnable.burnFrom`]]
  960. :xref-ERC20Burnable-burnFrom: xref:token/ERC20.adoc#ERC20Burnable-burnFrom-address-uint256-
  961. :ERC20Capped: pass:normal[xref:token/ERC20.adoc#ERC20Capped[`ERC20Capped`]]
  962. :xref-ERC20Capped: xref:token/ERC20.adoc#ERC20Capped
  963. :ERC20Capped-constructor: pass:normal[xref:token/ERC20.adoc#ERC20Capped-constructor-uint256-[`ERC20Capped.constructor`]]
  964. :xref-ERC20Capped-constructor: xref:token/ERC20.adoc#ERC20Capped-constructor-uint256-
  965. :ERC20Capped-cap: pass:normal[xref:token/ERC20.adoc#ERC20Capped-cap--[`ERC20Capped.cap`]]
  966. :xref-ERC20Capped-cap: xref:token/ERC20.adoc#ERC20Capped-cap--
  967. :ERC20Capped-_mint: pass:normal[xref:token/ERC20.adoc#ERC20Capped-_mint-address-uint256-[`ERC20Capped._mint`]]
  968. :xref-ERC20Capped-_mint: xref:token/ERC20.adoc#ERC20Capped-_mint-address-uint256-
  969. :ERC20Detailed: pass:normal[xref:token/ERC20.adoc#ERC20Detailed[`ERC20Detailed`]]
  970. :xref-ERC20Detailed: xref:token/ERC20.adoc#ERC20Detailed
  971. :ERC20Detailed-constructor: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-constructor-string-string-uint8-[`ERC20Detailed.constructor`]]
  972. :xref-ERC20Detailed-constructor: xref:token/ERC20.adoc#ERC20Detailed-constructor-string-string-uint8-
  973. :ERC20Detailed-name: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-name--[`ERC20Detailed.name`]]
  974. :xref-ERC20Detailed-name: xref:token/ERC20.adoc#ERC20Detailed-name--
  975. :ERC20Detailed-symbol: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-symbol--[`ERC20Detailed.symbol`]]
  976. :xref-ERC20Detailed-symbol: xref:token/ERC20.adoc#ERC20Detailed-symbol--
  977. :ERC20Detailed-decimals: pass:normal[xref:token/ERC20.adoc#ERC20Detailed-decimals--[`ERC20Detailed.decimals`]]
  978. :xref-ERC20Detailed-decimals: xref:token/ERC20.adoc#ERC20Detailed-decimals--
  979. :ERC20Mintable: pass:normal[xref:token/ERC20.adoc#ERC20Mintable[`ERC20Mintable`]]
  980. :xref-ERC20Mintable: xref:token/ERC20.adoc#ERC20Mintable
  981. :ERC20Mintable-mint: pass:normal[xref:token/ERC20.adoc#ERC20Mintable-mint-address-uint256-[`ERC20Mintable.mint`]]
  982. :xref-ERC20Mintable-mint: xref:token/ERC20.adoc#ERC20Mintable-mint-address-uint256-
  983. :ERC20Pausable: pass:normal[xref:token/ERC20.adoc#ERC20Pausable[`ERC20Pausable`]]
  984. :xref-ERC20Pausable: xref:token/ERC20.adoc#ERC20Pausable
  985. :ERC20Pausable-transfer: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-transfer-address-uint256-[`ERC20Pausable.transfer`]]
  986. :xref-ERC20Pausable-transfer: xref:token/ERC20.adoc#ERC20Pausable-transfer-address-uint256-
  987. :ERC20Pausable-transferFrom: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-transferFrom-address-address-uint256-[`ERC20Pausable.transferFrom`]]
  988. :xref-ERC20Pausable-transferFrom: xref:token/ERC20.adoc#ERC20Pausable-transferFrom-address-address-uint256-
  989. :ERC20Pausable-approve: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-approve-address-uint256-[`ERC20Pausable.approve`]]
  990. :xref-ERC20Pausable-approve: xref:token/ERC20.adoc#ERC20Pausable-approve-address-uint256-
  991. :ERC20Pausable-increaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-increaseAllowance-address-uint256-[`ERC20Pausable.increaseAllowance`]]
  992. :xref-ERC20Pausable-increaseAllowance: xref:token/ERC20.adoc#ERC20Pausable-increaseAllowance-address-uint256-
  993. :ERC20Pausable-decreaseAllowance: pass:normal[xref:token/ERC20.adoc#ERC20Pausable-decreaseAllowance-address-uint256-[`ERC20Pausable.decreaseAllowance`]]
  994. :xref-ERC20Pausable-decreaseAllowance: xref:token/ERC20.adoc#ERC20Pausable-decreaseAllowance-address-uint256-
  995. :IERC20: pass:normal[xref:token/ERC20.adoc#IERC20[`IERC20`]]
  996. :xref-IERC20: xref:token/ERC20.adoc#IERC20
  997. :IERC20-totalSupply: pass:normal[xref:token/ERC20.adoc#IERC20-totalSupply--[`IERC20.totalSupply`]]
  998. :xref-IERC20-totalSupply: xref:token/ERC20.adoc#IERC20-totalSupply--
  999. :IERC20-balanceOf: pass:normal[xref:token/ERC20.adoc#IERC20-balanceOf-address-[`IERC20.balanceOf`]]
  1000. :xref-IERC20-balanceOf: xref:token/ERC20.adoc#IERC20-balanceOf-address-
  1001. :IERC20-transfer: pass:normal[xref:token/ERC20.adoc#IERC20-transfer-address-uint256-[`IERC20.transfer`]]
  1002. :xref-IERC20-transfer: xref:token/ERC20.adoc#IERC20-transfer-address-uint256-
  1003. :IERC20-allowance: pass:normal[xref:token/ERC20.adoc#IERC20-allowance-address-address-[`IERC20.allowance`]]
  1004. :xref-IERC20-allowance: xref:token/ERC20.adoc#IERC20-allowance-address-address-
  1005. :IERC20-approve: pass:normal[xref:token/ERC20.adoc#IERC20-approve-address-uint256-[`IERC20.approve`]]
  1006. :xref-IERC20-approve: xref:token/ERC20.adoc#IERC20-approve-address-uint256-
  1007. :IERC20-transferFrom: pass:normal[xref:token/ERC20.adoc#IERC20-transferFrom-address-address-uint256-[`IERC20.transferFrom`]]
  1008. :xref-IERC20-transferFrom: xref:token/ERC20.adoc#IERC20-transferFrom-address-address-uint256-
  1009. :IERC20-Transfer: pass:normal[xref:token/ERC20.adoc#IERC20-Transfer-address-address-uint256-[`IERC20.Transfer`]]
  1010. :xref-IERC20-Transfer: xref:token/ERC20.adoc#IERC20-Transfer-address-address-uint256-
  1011. :IERC20-Approval: pass:normal[xref:token/ERC20.adoc#IERC20-Approval-address-address-uint256-[`IERC20.Approval`]]
  1012. :xref-IERC20-Approval: xref:token/ERC20.adoc#IERC20-Approval-address-address-uint256-
  1013. :SafeERC20: pass:normal[xref:token/ERC20.adoc#SafeERC20[`SafeERC20`]]
  1014. :xref-SafeERC20: xref:token/ERC20.adoc#SafeERC20
  1015. :SafeERC20-safeTransfer: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeTransfer-contract-IERC20-address-uint256-[`SafeERC20.safeTransfer`]]
  1016. :xref-SafeERC20-safeTransfer: xref:token/ERC20.adoc#SafeERC20-safeTransfer-contract-IERC20-address-uint256-
  1017. :SafeERC20-safeTransferFrom: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-[`SafeERC20.safeTransferFrom`]]
  1018. :xref-SafeERC20-safeTransferFrom: xref:token/ERC20.adoc#SafeERC20-safeTransferFrom-contract-IERC20-address-address-uint256-
  1019. :SafeERC20-safeApprove: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeApprove-contract-IERC20-address-uint256-[`SafeERC20.safeApprove`]]
  1020. :xref-SafeERC20-safeApprove: xref:token/ERC20.adoc#SafeERC20-safeApprove-contract-IERC20-address-uint256-
  1021. :SafeERC20-safeIncreaseAllowance: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-[`SafeERC20.safeIncreaseAllowance`]]
  1022. :xref-SafeERC20-safeIncreaseAllowance: xref:token/ERC20.adoc#SafeERC20-safeIncreaseAllowance-contract-IERC20-address-uint256-
  1023. :SafeERC20-safeDecreaseAllowance: pass:normal[xref:token/ERC20.adoc#SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-[`SafeERC20.safeDecreaseAllowance`]]
  1024. :xref-SafeERC20-safeDecreaseAllowance: xref:token/ERC20.adoc#SafeERC20-safeDecreaseAllowance-contract-IERC20-address-uint256-
  1025. :TokenTimelock: pass:normal[xref:token/ERC20.adoc#TokenTimelock[`TokenTimelock`]]
  1026. :xref-TokenTimelock: xref:token/ERC20.adoc#TokenTimelock
  1027. :TokenTimelock-constructor: pass:normal[xref:token/ERC20.adoc#TokenTimelock-constructor-contract-IERC20-address-uint256-[`TokenTimelock.constructor`]]
  1028. :xref-TokenTimelock-constructor: xref:token/ERC20.adoc#TokenTimelock-constructor-contract-IERC20-address-uint256-
  1029. :TokenTimelock-token: pass:normal[xref:token/ERC20.adoc#TokenTimelock-token--[`TokenTimelock.token`]]
  1030. :xref-TokenTimelock-token: xref:token/ERC20.adoc#TokenTimelock-token--
  1031. :TokenTimelock-beneficiary: pass:normal[xref:token/ERC20.adoc#TokenTimelock-beneficiary--[`TokenTimelock.beneficiary`]]
  1032. :xref-TokenTimelock-beneficiary: xref:token/ERC20.adoc#TokenTimelock-beneficiary--
  1033. :TokenTimelock-releaseTime: pass:normal[xref:token/ERC20.adoc#TokenTimelock-releaseTime--[`TokenTimelock.releaseTime`]]
  1034. :xref-TokenTimelock-releaseTime: xref:token/ERC20.adoc#TokenTimelock-releaseTime--
  1035. :TokenTimelock-release: pass:normal[xref:token/ERC20.adoc#TokenTimelock-release--[`TokenTimelock.release`]]
  1036. :xref-TokenTimelock-release: xref:token/ERC20.adoc#TokenTimelock-release--
  1037. :ERC777: pass:normal[xref:token/ERC777.adoc#ERC777[`ERC777`]]
  1038. :xref-ERC777: xref:token/ERC777.adoc#ERC777
  1039. :ERC777-ERC1820_REGISTRY: pass:normal[xref:token/ERC777.adoc#ERC777-ERC1820_REGISTRY-contract-IERC1820Registry[`ERC777.ERC1820_REGISTRY`]]
  1040. :xref-ERC777-ERC1820_REGISTRY: xref:token/ERC777.adoc#ERC777-ERC1820_REGISTRY-contract-IERC1820Registry
  1041. :ERC777-constructor: pass:normal[xref:token/ERC777.adoc#ERC777-constructor-string-string-address---[`ERC777.constructor`]]
  1042. :xref-ERC777-constructor: xref:token/ERC777.adoc#ERC777-constructor-string-string-address---
  1043. :ERC777-name: pass:normal[xref:token/ERC777.adoc#ERC777-name--[`ERC777.name`]]
  1044. :xref-ERC777-name: xref:token/ERC777.adoc#ERC777-name--
  1045. :ERC777-symbol: pass:normal[xref:token/ERC777.adoc#ERC777-symbol--[`ERC777.symbol`]]
  1046. :xref-ERC777-symbol: xref:token/ERC777.adoc#ERC777-symbol--
  1047. :ERC777-decimals: pass:normal[xref:token/ERC777.adoc#ERC777-decimals--[`ERC777.decimals`]]
  1048. :xref-ERC777-decimals: xref:token/ERC777.adoc#ERC777-decimals--
  1049. :ERC777-granularity: pass:normal[xref:token/ERC777.adoc#ERC777-granularity--[`ERC777.granularity`]]
  1050. :xref-ERC777-granularity: xref:token/ERC777.adoc#ERC777-granularity--
  1051. :ERC777-totalSupply: pass:normal[xref:token/ERC777.adoc#ERC777-totalSupply--[`ERC777.totalSupply`]]
  1052. :xref-ERC777-totalSupply: xref:token/ERC777.adoc#ERC777-totalSupply--
  1053. :ERC777-balanceOf: pass:normal[xref:token/ERC777.adoc#ERC777-balanceOf-address-[`ERC777.balanceOf`]]
  1054. :xref-ERC777-balanceOf: xref:token/ERC777.adoc#ERC777-balanceOf-address-
  1055. :ERC777-send: pass:normal[xref:token/ERC777.adoc#ERC777-send-address-uint256-bytes-[`ERC777.send`]]
  1056. :xref-ERC777-send: xref:token/ERC777.adoc#ERC777-send-address-uint256-bytes-
  1057. :ERC777-transfer: pass:normal[xref:token/ERC777.adoc#ERC777-transfer-address-uint256-[`ERC777.transfer`]]
  1058. :xref-ERC777-transfer: xref:token/ERC777.adoc#ERC777-transfer-address-uint256-
  1059. :ERC777-burn: pass:normal[xref:token/ERC777.adoc#ERC777-burn-uint256-bytes-[`ERC777.burn`]]
  1060. :xref-ERC777-burn: xref:token/ERC777.adoc#ERC777-burn-uint256-bytes-
  1061. :ERC777-isOperatorFor: pass:normal[xref:token/ERC777.adoc#ERC777-isOperatorFor-address-address-[`ERC777.isOperatorFor`]]
  1062. :xref-ERC777-isOperatorFor: xref:token/ERC777.adoc#ERC777-isOperatorFor-address-address-
  1063. :ERC777-authorizeOperator: pass:normal[xref:token/ERC777.adoc#ERC777-authorizeOperator-address-[`ERC777.authorizeOperator`]]
  1064. :xref-ERC777-authorizeOperator: xref:token/ERC777.adoc#ERC777-authorizeOperator-address-
  1065. :ERC777-revokeOperator: pass:normal[xref:token/ERC777.adoc#ERC777-revokeOperator-address-[`ERC777.revokeOperator`]]
  1066. :xref-ERC777-revokeOperator: xref:token/ERC777.adoc#ERC777-revokeOperator-address-
  1067. :ERC777-defaultOperators: pass:normal[xref:token/ERC777.adoc#ERC777-defaultOperators--[`ERC777.defaultOperators`]]
  1068. :xref-ERC777-defaultOperators: xref:token/ERC777.adoc#ERC777-defaultOperators--
  1069. :ERC777-operatorSend: pass:normal[xref:token/ERC777.adoc#ERC777-operatorSend-address-address-uint256-bytes-bytes-[`ERC777.operatorSend`]]
  1070. :xref-ERC777-operatorSend: xref:token/ERC777.adoc#ERC777-operatorSend-address-address-uint256-bytes-bytes-
  1071. :ERC777-operatorBurn: pass:normal[xref:token/ERC777.adoc#ERC777-operatorBurn-address-uint256-bytes-bytes-[`ERC777.operatorBurn`]]
  1072. :xref-ERC777-operatorBurn: xref:token/ERC777.adoc#ERC777-operatorBurn-address-uint256-bytes-bytes-
  1073. :ERC777-allowance: pass:normal[xref:token/ERC777.adoc#ERC777-allowance-address-address-[`ERC777.allowance`]]
  1074. :xref-ERC777-allowance: xref:token/ERC777.adoc#ERC777-allowance-address-address-
  1075. :ERC777-approve: pass:normal[xref:token/ERC777.adoc#ERC777-approve-address-uint256-[`ERC777.approve`]]
  1076. :xref-ERC777-approve: xref:token/ERC777.adoc#ERC777-approve-address-uint256-
  1077. :ERC777-transferFrom: pass:normal[xref:token/ERC777.adoc#ERC777-transferFrom-address-address-uint256-[`ERC777.transferFrom`]]
  1078. :xref-ERC777-transferFrom: xref:token/ERC777.adoc#ERC777-transferFrom-address-address-uint256-
  1079. :ERC777-_mint: pass:normal[xref:token/ERC777.adoc#ERC777-_mint-address-address-uint256-bytes-bytes-[`ERC777._mint`]]
  1080. :xref-ERC777-_mint: xref:token/ERC777.adoc#ERC777-_mint-address-address-uint256-bytes-bytes-
  1081. :ERC777-_send: pass:normal[xref:token/ERC777.adoc#ERC777-_send-address-address-address-uint256-bytes-bytes-bool-[`ERC777._send`]]
  1082. :xref-ERC777-_send: xref:token/ERC777.adoc#ERC777-_send-address-address-address-uint256-bytes-bytes-bool-
  1083. :ERC777-_burn: pass:normal[xref:token/ERC777.adoc#ERC777-_burn-address-address-uint256-bytes-bytes-[`ERC777._burn`]]
  1084. :xref-ERC777-_burn: xref:token/ERC777.adoc#ERC777-_burn-address-address-uint256-bytes-bytes-
  1085. :ERC777-_approve: pass:normal[xref:token/ERC777.adoc#ERC777-_approve-address-address-uint256-[`ERC777._approve`]]
  1086. :xref-ERC777-_approve: xref:token/ERC777.adoc#ERC777-_approve-address-address-uint256-
  1087. :ERC777-_callTokensToSend: pass:normal[xref:token/ERC777.adoc#ERC777-_callTokensToSend-address-address-address-uint256-bytes-bytes-[`ERC777._callTokensToSend`]]
  1088. :xref-ERC777-_callTokensToSend: xref:token/ERC777.adoc#ERC777-_callTokensToSend-address-address-address-uint256-bytes-bytes-
  1089. :ERC777-_callTokensReceived: pass:normal[xref:token/ERC777.adoc#ERC777-_callTokensReceived-address-address-address-uint256-bytes-bytes-bool-[`ERC777._callTokensReceived`]]
  1090. :xref-ERC777-_callTokensReceived: xref:token/ERC777.adoc#ERC777-_callTokensReceived-address-address-address-uint256-bytes-bytes-bool-
  1091. :IERC777: pass:normal[xref:token/ERC777.adoc#IERC777[`IERC777`]]
  1092. :xref-IERC777: xref:token/ERC777.adoc#IERC777
  1093. :IERC777-name: pass:normal[xref:token/ERC777.adoc#IERC777-name--[`IERC777.name`]]
  1094. :xref-IERC777-name: xref:token/ERC777.adoc#IERC777-name--
  1095. :IERC777-symbol: pass:normal[xref:token/ERC777.adoc#IERC777-symbol--[`IERC777.symbol`]]
  1096. :xref-IERC777-symbol: xref:token/ERC777.adoc#IERC777-symbol--
  1097. :IERC777-granularity: pass:normal[xref:token/ERC777.adoc#IERC777-granularity--[`IERC777.granularity`]]
  1098. :xref-IERC777-granularity: xref:token/ERC777.adoc#IERC777-granularity--
  1099. :IERC777-totalSupply: pass:normal[xref:token/ERC777.adoc#IERC777-totalSupply--[`IERC777.totalSupply`]]
  1100. :xref-IERC777-totalSupply: xref:token/ERC777.adoc#IERC777-totalSupply--
  1101. :IERC777-balanceOf: pass:normal[xref:token/ERC777.adoc#IERC777-balanceOf-address-[`IERC777.balanceOf`]]
  1102. :xref-IERC777-balanceOf: xref:token/ERC777.adoc#IERC777-balanceOf-address-
  1103. :IERC777-send: pass:normal[xref:token/ERC777.adoc#IERC777-send-address-uint256-bytes-[`IERC777.send`]]
  1104. :xref-IERC777-send: xref:token/ERC777.adoc#IERC777-send-address-uint256-bytes-
  1105. :IERC777-burn: pass:normal[xref:token/ERC777.adoc#IERC777-burn-uint256-bytes-[`IERC777.burn`]]
  1106. :xref-IERC777-burn: xref:token/ERC777.adoc#IERC777-burn-uint256-bytes-
  1107. :IERC777-isOperatorFor: pass:normal[xref:token/ERC777.adoc#IERC777-isOperatorFor-address-address-[`IERC777.isOperatorFor`]]
  1108. :xref-IERC777-isOperatorFor: xref:token/ERC777.adoc#IERC777-isOperatorFor-address-address-
  1109. :IERC777-authorizeOperator: pass:normal[xref:token/ERC777.adoc#IERC777-authorizeOperator-address-[`IERC777.authorizeOperator`]]
  1110. :xref-IERC777-authorizeOperator: xref:token/ERC777.adoc#IERC777-authorizeOperator-address-
  1111. :IERC777-revokeOperator: pass:normal[xref:token/ERC777.adoc#IERC777-revokeOperator-address-[`IERC777.revokeOperator`]]
  1112. :xref-IERC777-revokeOperator: xref:token/ERC777.adoc#IERC777-revokeOperator-address-
  1113. :IERC777-defaultOperators: pass:normal[xref:token/ERC777.adoc#IERC777-defaultOperators--[`IERC777.defaultOperators`]]
  1114. :xref-IERC777-defaultOperators: xref:token/ERC777.adoc#IERC777-defaultOperators--
  1115. :IERC777-operatorSend: pass:normal[xref:token/ERC777.adoc#IERC777-operatorSend-address-address-uint256-bytes-bytes-[`IERC777.operatorSend`]]
  1116. :xref-IERC777-operatorSend: xref:token/ERC777.adoc#IERC777-operatorSend-address-address-uint256-bytes-bytes-
  1117. :IERC777-operatorBurn: pass:normal[xref:token/ERC777.adoc#IERC777-operatorBurn-address-uint256-bytes-bytes-[`IERC777.operatorBurn`]]
  1118. :xref-IERC777-operatorBurn: xref:token/ERC777.adoc#IERC777-operatorBurn-address-uint256-bytes-bytes-
  1119. :IERC777-Sent: pass:normal[xref:token/ERC777.adoc#IERC777-Sent-address-address-address-uint256-bytes-bytes-[`IERC777.Sent`]]
  1120. :xref-IERC777-Sent: xref:token/ERC777.adoc#IERC777-Sent-address-address-address-uint256-bytes-bytes-
  1121. :IERC777-Minted: pass:normal[xref:token/ERC777.adoc#IERC777-Minted-address-address-uint256-bytes-bytes-[`IERC777.Minted`]]
  1122. :xref-IERC777-Minted: xref:token/ERC777.adoc#IERC777-Minted-address-address-uint256-bytes-bytes-
  1123. :IERC777-Burned: pass:normal[xref:token/ERC777.adoc#IERC777-Burned-address-address-uint256-bytes-bytes-[`IERC777.Burned`]]
  1124. :xref-IERC777-Burned: xref:token/ERC777.adoc#IERC777-Burned-address-address-uint256-bytes-bytes-
  1125. :IERC777-AuthorizedOperator: pass:normal[xref:token/ERC777.adoc#IERC777-AuthorizedOperator-address-address-[`IERC777.AuthorizedOperator`]]
  1126. :xref-IERC777-AuthorizedOperator: xref:token/ERC777.adoc#IERC777-AuthorizedOperator-address-address-
  1127. :IERC777-RevokedOperator: pass:normal[xref:token/ERC777.adoc#IERC777-RevokedOperator-address-address-[`IERC777.RevokedOperator`]]
  1128. :xref-IERC777-RevokedOperator: xref:token/ERC777.adoc#IERC777-RevokedOperator-address-address-
  1129. :IERC777Recipient: pass:normal[xref:token/ERC777.adoc#IERC777Recipient[`IERC777Recipient`]]
  1130. :xref-IERC777Recipient: xref:token/ERC777.adoc#IERC777Recipient
  1131. :IERC777Recipient-tokensReceived: pass:normal[xref:token/ERC777.adoc#IERC777Recipient-tokensReceived-address-address-address-uint256-bytes-bytes-[`IERC777Recipient.tokensReceived`]]
  1132. :xref-IERC777Recipient-tokensReceived: xref:token/ERC777.adoc#IERC777Recipient-tokensReceived-address-address-address-uint256-bytes-bytes-
  1133. :IERC777Sender: pass:normal[xref:token/ERC777.adoc#IERC777Sender[`IERC777Sender`]]
  1134. :xref-IERC777Sender: xref:token/ERC777.adoc#IERC777Sender
  1135. :IERC777Sender-tokensToSend: pass:normal[xref:token/ERC777.adoc#IERC777Sender-tokensToSend-address-address-address-uint256-bytes-bytes-[`IERC777Sender.tokensToSend`]]
  1136. :xref-IERC777Sender-tokensToSend: xref:token/ERC777.adoc#IERC777Sender-tokensToSend-address-address-address-uint256-bytes-bytes-
  1137. = Gas Station Network (GSN)
  1138. _Available since v2.4.0._
  1139. This set of contracts provide all the tools required to make a contract callable via the https://gsn.openzeppelin.com[Gas Station Network].
  1140. TIP: If you're new to the GSN, head over to our xref:learn::sending-gasless-transactions.adoc[overview of the system] and basic guide to xref:ROOT:gsn.adoc[creating a GSN-capable contract].
  1141. The core contract a recipient must inherit from is {GSNRecipient}: it includes all necessary interfaces, as well as some helper methods to make interacting with the GSN easier.
  1142. Utilities to make writing xref:ROOT:gsn-strategies.adoc[GSN strategies] easy are available in {GSNRecipient}, or you can simply use one of our pre-made strategies:
  1143. * {GSNRecipientERC20Fee} charges the end user for gas costs in an application-specific xref:ROOT:tokens.adoc#ERC20[ERC20 token]
  1144. * {GSNRecipientSignature} accepts all relayed calls that have been signed by a trusted third party (e.g. a private key in a backend)
  1145. You can also take a look at the two contract interfaces that make up the GSN protocol: {IRelayRecipient} and {IRelayHub}, but you won't need to use those directly.
  1146. == Recipient
  1147. :GSNRecipient: pass:normal[xref:#GSNRecipient[`GSNRecipient`]]
  1148. :POST_RELAYED_CALL_MAX_GAS: pass:normal[xref:#GSNRecipient-POST_RELAYED_CALL_MAX_GAS-uint256[`POST_RELAYED_CALL_MAX_GAS`]]
  1149. :getHubAddr: pass:normal[xref:#GSNRecipient-getHubAddr--[`getHubAddr`]]
  1150. :_upgradeRelayHub: pass:normal[xref:#GSNRecipient-_upgradeRelayHub-address-[`_upgradeRelayHub`]]
  1151. :relayHubVersion: pass:normal[xref:#GSNRecipient-relayHubVersion--[`relayHubVersion`]]
  1152. :_withdrawDeposits: pass:normal[xref:#GSNRecipient-_withdrawDeposits-uint256-address-payable-[`_withdrawDeposits`]]
  1153. :_msgSender: pass:normal[xref:#GSNRecipient-_msgSender--[`_msgSender`]]
  1154. :_msgData: pass:normal[xref:#GSNRecipient-_msgData--[`_msgData`]]
  1155. :preRelayedCall: pass:normal[xref:#GSNRecipient-preRelayedCall-bytes-[`preRelayedCall`]]
  1156. :_preRelayedCall: pass:normal[xref:#GSNRecipient-_preRelayedCall-bytes-[`_preRelayedCall`]]
  1157. :postRelayedCall: pass:normal[xref:#GSNRecipient-postRelayedCall-bytes-bool-uint256-bytes32-[`postRelayedCall`]]
  1158. :_postRelayedCall: pass:normal[xref:#GSNRecipient-_postRelayedCall-bytes-bool-uint256-bytes32-[`_postRelayedCall`]]
  1159. :_approveRelayedCall: pass:normal[xref:#GSNRecipient-_approveRelayedCall--[`_approveRelayedCall`]]
  1160. :_approveRelayedCall: pass:normal[xref:#GSNRecipient-_approveRelayedCall-bytes-[`_approveRelayedCall`]]
  1161. :_rejectRelayedCall: pass:normal[xref:#GSNRecipient-_rejectRelayedCall-uint256-[`_rejectRelayedCall`]]
  1162. :_computeCharge: pass:normal[xref:#GSNRecipient-_computeCharge-uint256-uint256-uint256-[`_computeCharge`]]
  1163. :RelayHubChanged: pass:normal[xref:#GSNRecipient-RelayHubChanged-address-address-[`RelayHubChanged`]]
  1164. [.contract]
  1165. [[GSNRecipient]]
  1166. === `GSNRecipient`
  1167. Base GSN recipient contract: includes the {IRelayRecipient} interface
  1168. and enables GSN support on all contracts in the inheritance tree.
  1169. TIP: This contract is abstract. The functions {IRelayRecipient-acceptRelayedCall},
  1170. {_preRelayedCall}, and {_postRelayedCall} are not implemented and must be
  1171. provided by derived contracts. See the
  1172. xref:ROOT:gsn-strategies.adoc#gsn-strategies[GSN strategies] for more
  1173. information on how to use the pre-built {GSNRecipientSignature} and
  1174. {GSNRecipientERC20Fee}, or how to write your own.
  1175. [.contract-index]
  1176. .Functions
  1177. --
  1178. * {xref-GSNRecipient-getHubAddr}[`getHubAddr()`]
  1179. * {xref-GSNRecipient-_upgradeRelayHub}[`_upgradeRelayHub(newRelayHub)`]
  1180. * {xref-GSNRecipient-relayHubVersion}[`relayHubVersion()`]
  1181. * {xref-GSNRecipient-_withdrawDeposits}[`_withdrawDeposits(amount, payee)`]
  1182. * {xref-GSNRecipient-_msgSender}[`_msgSender()`]
  1183. * {xref-GSNRecipient-_msgData}[`_msgData()`]
  1184. * {xref-GSNRecipient-preRelayedCall}[`preRelayedCall(context)`]
  1185. * {xref-GSNRecipient-_preRelayedCall}[`_preRelayedCall(context)`]
  1186. * {xref-GSNRecipient-postRelayedCall}[`postRelayedCall(context, success, actualCharge, preRetVal)`]
  1187. * {xref-GSNRecipient-_postRelayedCall}[`_postRelayedCall(context, success, actualCharge, preRetVal)`]
  1188. * {xref-GSNRecipient-_approveRelayedCall}[`_approveRelayedCall()`]
  1189. * {xref-GSNRecipient-_approveRelayedCall}[`_approveRelayedCall(context)`]
  1190. * {xref-GSNRecipient-_rejectRelayedCall}[`_rejectRelayedCall(errorCode)`]
  1191. * {xref-GSNRecipient-_computeCharge}[`_computeCharge(gas, gasPrice, serviceFee)`]
  1192. [.contract-subindex-inherited]
  1193. .Context
  1194. * {xref-Context-constructor}[`constructor()`]
  1195. [.contract-subindex-inherited]
  1196. .IRelayRecipient
  1197. * {xref-IRelayRecipient-acceptRelayedCall}[`acceptRelayedCall(relay, from, encodedFunction, transactionFee, gasPrice, gasLimit, nonce, approvalData, maxPossibleCharge)`]
  1198. --
  1199. [.contract-index]
  1200. .Events
  1201. --
  1202. * {xref-GSNRecipient-RelayHubChanged}[`RelayHubChanged(oldRelayHub, newRelayHub)`]
  1203. [.contract-subindex-inherited]
  1204. .Context
  1205. [.contract-subindex-inherited]
  1206. .IRelayRecipient
  1207. --
  1208. [.contract-item]
  1209. [[GSNRecipient-getHubAddr--]]
  1210. ==== `pass:normal[getHubAddr() → [.var-type\]#address#]` [.item-kind]#public#
  1211. Returns the address of the {IRelayHub} contract for this recipient.
  1212. [.contract-item]
  1213. [[GSNRecipient-_upgradeRelayHub-address-]]
  1214. ==== `pass:normal[_upgradeRelayHub([.var-type\]#address# [.var-name\]#newRelayHub#)]` [.item-kind]#internal#
  1215. Switches to a new {IRelayHub} instance. This method is added for future-proofing: there's no reason to not
  1216. use the default instance.
  1217. IMPORTANT: After upgrading, the {GSNRecipient} will no longer be able to receive relayed calls from the old
  1218. {IRelayHub} instance. Additionally, all funds should be previously withdrawn via {_withdrawDeposits}.
  1219. [.contract-item]
  1220. [[GSNRecipient-relayHubVersion--]]
  1221. ==== `pass:normal[relayHubVersion() → [.var-type\]#string#]` [.item-kind]#public#
  1222. Returns the version string of the {IRelayHub} for which this recipient implementation was built. If
  1223. {_upgradeRelayHub} is used, the new {IRelayHub} instance should be compatible with this version.
  1224. [.contract-item]
  1225. [[GSNRecipient-_withdrawDeposits-uint256-address-payable-]]
  1226. ==== `pass:normal[_withdrawDeposits([.var-type\]#uint256# [.var-name\]#amount#, [.var-type\]#address payable# [.var-name\]#payee#)]` [.item-kind]#internal#
  1227. Withdraws the recipient's deposits in `RelayHub`.
  1228. Derived contracts should expose this in an external interface with proper access control.
  1229. [.contract-item]
  1230. [[GSNRecipient-_msgSender--]]
  1231. ==== `pass:normal[_msgSender() → [.var-type\]#address payable#]` [.item-kind]#internal#
  1232. Replacement for msg.sender. Returns the actual sender of a transaction: msg.sender for regular transactions,
  1233. and the end-user for GSN relayed calls (where msg.sender is actually `RelayHub`).
  1234. IMPORTANT: Contracts derived from {GSNRecipient} should never use `msg.sender`, and use {_msgSender} instead.
  1235. [.contract-item]
  1236. [[GSNRecipient-_msgData--]]
  1237. ==== `pass:normal[_msgData() → [.var-type\]#bytes#]` [.item-kind]#internal#
  1238. Replacement for msg.data. Returns the actual calldata of a transaction: msg.data for regular transactions,
  1239. and a reduced version for GSN relayed calls (where msg.data contains additional information).
  1240. IMPORTANT: Contracts derived from {GSNRecipient} should never use `msg.data`, and use {_msgData} instead.
  1241. [.contract-item]
  1242. [[GSNRecipient-preRelayedCall-bytes-]]
  1243. ==== `pass:normal[preRelayedCall([.var-type\]#bytes# [.var-name\]#context#) → [.var-type\]#bytes32#]` [.item-kind]#external#
  1244. See `IRelayRecipient.preRelayedCall`.
  1245. This function should not be overriden directly, use `_preRelayedCall` instead.
  1246. * Requirements:
  1247. - the caller must be the `RelayHub` contract.
  1248. [.contract-item]
  1249. [[GSNRecipient-_preRelayedCall-bytes-]]
  1250. ==== `pass:normal[_preRelayedCall([.var-type\]#bytes# [.var-name\]#context#) → [.var-type\]#bytes32#]` [.item-kind]#internal#
  1251. See `IRelayRecipient.preRelayedCall`.
  1252. Called by `GSNRecipient.preRelayedCall`, which asserts the caller is the `RelayHub` contract. Derived contracts
  1253. must implement this function with any relayed-call preprocessing they may wish to do.
  1254. [.contract-item]
  1255. [[GSNRecipient-postRelayedCall-bytes-bool-uint256-bytes32-]]
  1256. ==== `pass:normal[postRelayedCall([.var-type\]#bytes# [.var-name\]#context#, [.var-type\]#bool# [.var-name\]#success#, [.var-type\]#uint256# [.var-name\]#actualCharge#, [.var-type\]#bytes32# [.var-name\]#preRetVal#)]` [.item-kind]#external#
  1257. See `IRelayRecipient.postRelayedCall`.
  1258. This function should not be overriden directly, use `_postRelayedCall` instead.
  1259. * Requirements:
  1260. - the caller must be the `RelayHub` contract.
  1261. [.contract-item]
  1262. [[GSNRecipient-_postRelayedCall-bytes-bool-uint256-bytes32-]]
  1263. ==== `pass:normal[_postRelayedCall([.var-type\]#bytes# [.var-name\]#context#, [.var-type\]#bool# [.var-name\]#success#, [.var-type\]#uint256# [.var-name\]#actualCharge#, [.var-type\]#bytes32# [.var-name\]#preRetVal#)]` [.item-kind]#internal#
  1264. See `IRelayRecipient.postRelayedCall`.
  1265. Called by `GSNRecipient.postRelayedCall`, which asserts the caller is the `RelayHub` contract. Derived contracts
  1266. must implement this function with any relayed-call postprocessing they may wish to do.
  1267. [.contract-item]
  1268. [[GSNRecipient-_approveRelayedCall--]]
  1269. ==== `pass:normal[_approveRelayedCall() → [.var-type\]#uint256#, [.var-type\]#bytes#]` [.item-kind]#internal#
  1270. Return this in acceptRelayedCall to proceed with the execution of a relayed call. Note that this contract
  1271. will be charged a fee by RelayHub
  1272. [.contract-item]
  1273. [[GSNRecipient-_approveRelayedCall-bytes-]]
  1274. ==== `pass:normal[_approveRelayedCall([.var-type\]#bytes# [.var-name\]#context#) → [.var-type\]#uint256#, [.var-type\]#bytes#]` [.item-kind]#internal#
  1275. See `GSNRecipient._approveRelayedCall`.
  1276. This overload forwards `context` to _preRelayedCall and _postRelayedCall.
  1277. [.contract-item]
  1278. [[GSNRecipient-_rejectRelayedCall-uint256-]]
  1279. ==== `pass:normal[_rejectRelayedCall([.var-type\]#uint256# [.var-name\]#errorCode#) → [.var-type\]#uint256#, [.var-type\]#bytes#]` [.item-kind]#internal#
  1280. Return this in acceptRelayedCall to impede execution of a relayed call. No fees will be charged.
  1281. [.contract-item]
  1282. [[GSNRecipient-_computeCharge-uint256-uint256-uint256-]]
  1283. ==== `pass:normal[_computeCharge([.var-type\]#uint256# [.var-name\]#gas#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256# [.var-name\]#serviceFee#) → [.var-type\]#uint256#]` [.item-kind]#internal#
  1284. [.contract-item]
  1285. [[GSNRecipient-RelayHubChanged-address-address-]]
  1286. ==== `pass:normal[RelayHubChanged([.var-type\]#address# [.var-name\]#oldRelayHub#, [.var-type\]#address# [.var-name\]#newRelayHub#)]` [.item-kind]#event#
  1287. Emitted when a contract changes its {IRelayHub} contract to a new one.
  1288. == Strategies
  1289. :GSNRecipientSignature: pass:normal[xref:#GSNRecipientSignature[`GSNRecipientSignature`]]
  1290. :constructor: pass:normal[xref:#GSNRecipientSignature-constructor-address-[`constructor`]]
  1291. :acceptRelayedCall: pass:normal[xref:#GSNRecipientSignature-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`acceptRelayedCall`]]
  1292. :_preRelayedCall: pass:normal[xref:#GSNRecipientSignature-_preRelayedCall-bytes-[`_preRelayedCall`]]
  1293. :_postRelayedCall: pass:normal[xref:#GSNRecipientSignature-_postRelayedCall-bytes-bool-uint256-bytes32-[`_postRelayedCall`]]
  1294. [.contract]
  1295. [[GSNRecipientSignature]]
  1296. === `GSNRecipientSignature`
  1297. A xref:ROOT:gsn-strategies.adoc#gsn-strategies[GSN strategy] that allows relayed transactions through when they are
  1298. accompanied by the signature of a trusted signer. The intent is for this signature to be generated by a server that
  1299. performs validations off-chain. Note that nothing is charged to the user in this scheme. Thus, the server should make
  1300. sure to account for this in their economic and threat model.
  1301. [.contract-index]
  1302. .Functions
  1303. --
  1304. * {xref-GSNRecipientSignature-constructor}[`constructor(trustedSigner)`]
  1305. * {xref-GSNRecipientSignature-acceptRelayedCall}[`acceptRelayedCall(relay, from, encodedFunction, transactionFee, gasPrice, gasLimit, nonce, approvalData, _)`]
  1306. * {xref-GSNRecipientSignature-_preRelayedCall}[`_preRelayedCall(_)`]
  1307. * {xref-GSNRecipientSignature-_postRelayedCall}[`_postRelayedCall(_, _, _, _)`]
  1308. [.contract-subindex-inherited]
  1309. .GSNRecipient
  1310. * {xref-GSNRecipient-getHubAddr}[`getHubAddr()`]
  1311. * {xref-GSNRecipient-_upgradeRelayHub}[`_upgradeRelayHub(newRelayHub)`]
  1312. * {xref-GSNRecipient-relayHubVersion}[`relayHubVersion()`]
  1313. * {xref-GSNRecipient-_withdrawDeposits}[`_withdrawDeposits(amount, payee)`]
  1314. * {xref-GSNRecipient-_msgSender}[`_msgSender()`]
  1315. * {xref-GSNRecipient-_msgData}[`_msgData()`]
  1316. * {xref-GSNRecipient-preRelayedCall}[`preRelayedCall(context)`]
  1317. * {xref-GSNRecipient-postRelayedCall}[`postRelayedCall(context, success, actualCharge, preRetVal)`]
  1318. * {xref-GSNRecipient-_approveRelayedCall}[`_approveRelayedCall()`]
  1319. * {xref-GSNRecipient-_approveRelayedCall}[`_approveRelayedCall(context)`]
  1320. * {xref-GSNRecipient-_rejectRelayedCall}[`_rejectRelayedCall(errorCode)`]
  1321. * {xref-GSNRecipient-_computeCharge}[`_computeCharge(gas, gasPrice, serviceFee)`]
  1322. [.contract-subindex-inherited]
  1323. .Context
  1324. [.contract-subindex-inherited]
  1325. .IRelayRecipient
  1326. --
  1327. [.contract-index]
  1328. .Events
  1329. --
  1330. [.contract-subindex-inherited]
  1331. .GSNRecipient
  1332. * {xref-GSNRecipient-RelayHubChanged}[`RelayHubChanged(oldRelayHub, newRelayHub)`]
  1333. [.contract-subindex-inherited]
  1334. .Context
  1335. [.contract-subindex-inherited]
  1336. .IRelayRecipient
  1337. --
  1338. [.contract-item]
  1339. [[GSNRecipientSignature-constructor-address-]]
  1340. ==== `pass:normal[constructor([.var-type\]#address# [.var-name\]#trustedSigner#)]` [.item-kind]#public#
  1341. Sets the trusted signer that is going to be producing signatures to approve relayed calls.
  1342. [.contract-item]
  1343. [[GSNRecipientSignature-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-]]
  1344. ==== `pass:normal[acceptRelayedCall([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#bytes# [.var-name\]#encodedFunction#, [.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256# [.var-name\]#gasLimit#, [.var-type\]#uint256# [.var-name\]#nonce#, [.var-type\]#bytes# [.var-name\]#approvalData#, [.var-type\]#uint256#) → [.var-type\]#uint256#, [.var-type\]#bytes#]` [.item-kind]#external#
  1345. Ensures that only transactions with a trusted signature can be relayed through the GSN.
  1346. [.contract-item]
  1347. [[GSNRecipientSignature-_preRelayedCall-bytes-]]
  1348. ==== `pass:normal[_preRelayedCall([.var-type\]#bytes#) → [.var-type\]#bytes32#]` [.item-kind]#internal#
  1349. [.contract-item]
  1350. [[GSNRecipientSignature-_postRelayedCall-bytes-bool-uint256-bytes32-]]
  1351. ==== `pass:normal[_postRelayedCall([.var-type\]#bytes#, [.var-type\]#bool#, [.var-type\]#uint256#, [.var-type\]#bytes32#)]` [.item-kind]#internal#
  1352. :GSNRecipientERC20Fee: pass:normal[xref:#GSNRecipientERC20Fee[`GSNRecipientERC20Fee`]]
  1353. :constructor: pass:normal[xref:#GSNRecipientERC20Fee-constructor-string-string-[`constructor`]]
  1354. :token: pass:normal[xref:#GSNRecipientERC20Fee-token--[`token`]]
  1355. :_mint: pass:normal[xref:#GSNRecipientERC20Fee-_mint-address-uint256-[`_mint`]]
  1356. :acceptRelayedCall: pass:normal[xref:#GSNRecipientERC20Fee-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`acceptRelayedCall`]]
  1357. :_preRelayedCall: pass:normal[xref:#GSNRecipientERC20Fee-_preRelayedCall-bytes-[`_preRelayedCall`]]
  1358. :_postRelayedCall: pass:normal[xref:#GSNRecipientERC20Fee-_postRelayedCall-bytes-bool-uint256-bytes32-[`_postRelayedCall`]]
  1359. [.contract]
  1360. [[GSNRecipientERC20Fee]]
  1361. === `GSNRecipientERC20Fee`
  1362. A xref:ROOT:gsn-strategies.adoc#gsn-strategies[GSN strategy] that charges transaction fees in a special purpose ERC20
  1363. token, which we refer to as the gas payment token. The amount charged is exactly the amount of Ether charged to the
  1364. recipient. This means that the token is essentially pegged to the value of Ether.
  1365. The distribution strategy of the gas payment token to users is not defined by this contract. It's a mintable token
  1366. whose only minter is the recipient, so the strategy must be implemented in a derived contract, making use of the
  1367. internal {_mint} function.
  1368. [.contract-index]
  1369. .Functions
  1370. --
  1371. * {xref-GSNRecipientERC20Fee-constructor}[`constructor(name, symbol)`]
  1372. * {xref-GSNRecipientERC20Fee-token}[`token()`]
  1373. * {xref-GSNRecipientERC20Fee-_mint}[`_mint(account, amount)`]
  1374. * {xref-GSNRecipientERC20Fee-acceptRelayedCall}[`acceptRelayedCall(_, from, _, transactionFee, gasPrice, _, _, _, maxPossibleCharge)`]
  1375. * {xref-GSNRecipientERC20Fee-_preRelayedCall}[`_preRelayedCall(context)`]
  1376. * {xref-GSNRecipientERC20Fee-_postRelayedCall}[`_postRelayedCall(context, _, actualCharge, _)`]
  1377. [.contract-subindex-inherited]
  1378. .GSNRecipient
  1379. * {xref-GSNRecipient-getHubAddr}[`getHubAddr()`]
  1380. * {xref-GSNRecipient-_upgradeRelayHub}[`_upgradeRelayHub(newRelayHub)`]
  1381. * {xref-GSNRecipient-relayHubVersion}[`relayHubVersion()`]
  1382. * {xref-GSNRecipient-_withdrawDeposits}[`_withdrawDeposits(amount, payee)`]
  1383. * {xref-GSNRecipient-_msgSender}[`_msgSender()`]
  1384. * {xref-GSNRecipient-_msgData}[`_msgData()`]
  1385. * {xref-GSNRecipient-preRelayedCall}[`preRelayedCall(context)`]
  1386. * {xref-GSNRecipient-postRelayedCall}[`postRelayedCall(context, success, actualCharge, preRetVal)`]
  1387. * {xref-GSNRecipient-_approveRelayedCall}[`_approveRelayedCall()`]
  1388. * {xref-GSNRecipient-_approveRelayedCall}[`_approveRelayedCall(context)`]
  1389. * {xref-GSNRecipient-_rejectRelayedCall}[`_rejectRelayedCall(errorCode)`]
  1390. * {xref-GSNRecipient-_computeCharge}[`_computeCharge(gas, gasPrice, serviceFee)`]
  1391. [.contract-subindex-inherited]
  1392. .Context
  1393. [.contract-subindex-inherited]
  1394. .IRelayRecipient
  1395. --
  1396. [.contract-index]
  1397. .Events
  1398. --
  1399. [.contract-subindex-inherited]
  1400. .GSNRecipient
  1401. * {xref-GSNRecipient-RelayHubChanged}[`RelayHubChanged(oldRelayHub, newRelayHub)`]
  1402. [.contract-subindex-inherited]
  1403. .Context
  1404. [.contract-subindex-inherited]
  1405. .IRelayRecipient
  1406. --
  1407. [.contract-item]
  1408. [[GSNRecipientERC20Fee-constructor-string-string-]]
  1409. ==== `pass:normal[constructor([.var-type\]#string# [.var-name\]#name#, [.var-type\]#string# [.var-name\]#symbol#)]` [.item-kind]#public#
  1410. The arguments to the constructor are the details that the gas payment token will have: `name` and `symbol`. `decimals` is hard-coded to 18.
  1411. [.contract-item]
  1412. [[GSNRecipientERC20Fee-token--]]
  1413. ==== `pass:normal[token() → [.var-type\]#contract IERC20#]` [.item-kind]#public#
  1414. Returns the gas payment token.
  1415. [.contract-item]
  1416. [[GSNRecipientERC20Fee-_mint-address-uint256-]]
  1417. ==== `pass:normal[_mint([.var-type\]#address# [.var-name\]#account#, [.var-type\]#uint256# [.var-name\]#amount#)]` [.item-kind]#internal#
  1418. Internal function that mints the gas payment token. Derived contracts should expose this function in their public API, with proper access control mechanisms.
  1419. [.contract-item]
  1420. [[GSNRecipientERC20Fee-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-]]
  1421. ==== `pass:normal[acceptRelayedCall([.var-type\]#address#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#bytes#, [.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256#, [.var-type\]#uint256#, [.var-type\]#bytes#, [.var-type\]#uint256# [.var-name\]#maxPossibleCharge#) → [.var-type\]#uint256#, [.var-type\]#bytes#]` [.item-kind]#external#
  1422. Ensures that only users with enough gas payment token balance can have transactions relayed through the GSN.
  1423. [.contract-item]
  1424. [[GSNRecipientERC20Fee-_preRelayedCall-bytes-]]
  1425. ==== `pass:normal[_preRelayedCall([.var-type\]#bytes# [.var-name\]#context#) → [.var-type\]#bytes32#]` [.item-kind]#internal#
  1426. Implements the precharge to the user. The maximum possible charge (depending on gas limit, gas price, and
  1427. fee) will be deducted from the user balance of gas payment token. Note that this is an overestimation of the
  1428. actual charge, necessary because we cannot predict how much gas the execution will actually need. The remainder
  1429. is returned to the user in {_postRelayedCall}.
  1430. [.contract-item]
  1431. [[GSNRecipientERC20Fee-_postRelayedCall-bytes-bool-uint256-bytes32-]]
  1432. ==== `pass:normal[_postRelayedCall([.var-type\]#bytes# [.var-name\]#context#, [.var-type\]#bool#, [.var-type\]#uint256# [.var-name\]#actualCharge#, [.var-type\]#bytes32#)]` [.item-kind]#internal#
  1433. Returns to the user the extra amount that was previously charged, once the actual execution cost is known.
  1434. == Protocol
  1435. :IRelayRecipient: pass:normal[xref:#IRelayRecipient[`IRelayRecipient`]]
  1436. :getHubAddr: pass:normal[xref:#IRelayRecipient-getHubAddr--[`getHubAddr`]]
  1437. :acceptRelayedCall: pass:normal[xref:#IRelayRecipient-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-[`acceptRelayedCall`]]
  1438. :preRelayedCall: pass:normal[xref:#IRelayRecipient-preRelayedCall-bytes-[`preRelayedCall`]]
  1439. :postRelayedCall: pass:normal[xref:#IRelayRecipient-postRelayedCall-bytes-bool-uint256-bytes32-[`postRelayedCall`]]
  1440. [.contract]
  1441. [[IRelayRecipient]]
  1442. === `IRelayRecipient`
  1443. Base interface for a contract that will be called via the GSN from {IRelayHub}.
  1444. TIP: You don't need to write an implementation yourself! Inherit from {GSNRecipient} instead.
  1445. [.contract-index]
  1446. .Functions
  1447. --
  1448. * {xref-IRelayRecipient-getHubAddr}[`getHubAddr()`]
  1449. * {xref-IRelayRecipient-acceptRelayedCall}[`acceptRelayedCall(relay, from, encodedFunction, transactionFee, gasPrice, gasLimit, nonce, approvalData, maxPossibleCharge)`]
  1450. * {xref-IRelayRecipient-preRelayedCall}[`preRelayedCall(context)`]
  1451. * {xref-IRelayRecipient-postRelayedCall}[`postRelayedCall(context, success, actualCharge, preRetVal)`]
  1452. --
  1453. [.contract-item]
  1454. [[IRelayRecipient-getHubAddr--]]
  1455. ==== `pass:normal[getHubAddr() → [.var-type\]#address#]` [.item-kind]#external#
  1456. Returns the address of the {IRelayHub} instance this recipient interacts with.
  1457. [.contract-item]
  1458. [[IRelayRecipient-acceptRelayedCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-uint256-]]
  1459. ==== `pass:normal[acceptRelayedCall([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#bytes# [.var-name\]#encodedFunction#, [.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256# [.var-name\]#gasLimit#, [.var-type\]#uint256# [.var-name\]#nonce#, [.var-type\]#bytes# [.var-name\]#approvalData#, [.var-type\]#uint256# [.var-name\]#maxPossibleCharge#) → [.var-type\]#uint256#, [.var-type\]#bytes#]` [.item-kind]#external#
  1460. Called by {IRelayHub} to validate if this recipient accepts being charged for a relayed call. Note that the
  1461. recipient will be charged regardless of the execution result of the relayed call (i.e. if it reverts or not).
  1462. The relay request was originated by `from` and will be served by `relay`. `encodedFunction` is the relayed call
  1463. calldata, so its first four bytes are the function selector. The relayed call will be forwarded `gasLimit` gas,
  1464. and the transaction executed with a gas price of at least `gasPrice`. `relay`'s fee is `transactionFee`, and the
  1465. recipient will be charged at most `maxPossibleCharge` (in wei). `nonce` is the sender's (`from`) nonce for
  1466. replay attack protection in {IRelayHub}, and `approvalData` is a optional parameter that can be used to hold a signature
  1467. over all or some of the previous values.
  1468. Returns a tuple, where the first value is used to indicate approval (0) or rejection (custom non-zero error code,
  1469. values 1 to 10 are reserved) and the second one is data to be passed to the other {IRelayRecipient} functions.
  1470. {acceptRelayedCall} is called with 50k gas: if it runs out during execution, the request will be considered
  1471. rejected. A regular revert will also trigger a rejection.
  1472. [.contract-item]
  1473. [[IRelayRecipient-preRelayedCall-bytes-]]
  1474. ==== `pass:normal[preRelayedCall([.var-type\]#bytes# [.var-name\]#context#) → [.var-type\]#bytes32#]` [.item-kind]#external#
  1475. Called by {IRelayHub} on approved relay call requests, before the relayed call is executed. This allows to e.g.
  1476. pre-charge the sender of the transaction.
  1477. `context` is the second value returned in the tuple by {acceptRelayedCall}.
  1478. Returns a value to be passed to {postRelayedCall}.
  1479. {preRelayedCall} is called with 100k gas: if it runs out during exection or otherwise reverts, the relayed call
  1480. will not be executed, but the recipient will still be charged for the transaction's cost.
  1481. [.contract-item]
  1482. [[IRelayRecipient-postRelayedCall-bytes-bool-uint256-bytes32-]]
  1483. ==== `pass:normal[postRelayedCall([.var-type\]#bytes# [.var-name\]#context#, [.var-type\]#bool# [.var-name\]#success#, [.var-type\]#uint256# [.var-name\]#actualCharge#, [.var-type\]#bytes32# [.var-name\]#preRetVal#)]` [.item-kind]#external#
  1484. Called by {IRelayHub} on approved relay call requests, after the relayed call is executed. This allows to e.g.
  1485. charge the user for the relayed call costs, return any overcharges from {preRelayedCall}, or perform
  1486. contract-specific bookkeeping.
  1487. `context` is the second value returned in the tuple by {acceptRelayedCall}. `success` is the execution status of
  1488. the relayed call. `actualCharge` is an estimate of how much the recipient will be charged for the transaction,
  1489. not including any gas used by {postRelayedCall} itself. `preRetVal` is {preRelayedCall}'s return value.
  1490. {postRelayedCall} is called with 100k gas: if it runs out during execution or otherwise reverts, the relayed call
  1491. and the call to {preRelayedCall} will be reverted retroactively, but the recipient will still be charged for the
  1492. transaction's cost.
  1493. :IRelayHub: pass:normal[xref:#IRelayHub[`IRelayHub`]]
  1494. :stake: pass:normal[xref:#IRelayHub-stake-address-uint256-[`stake`]]
  1495. :registerRelay: pass:normal[xref:#IRelayHub-registerRelay-uint256-string-[`registerRelay`]]
  1496. :removeRelayByOwner: pass:normal[xref:#IRelayHub-removeRelayByOwner-address-[`removeRelayByOwner`]]
  1497. :unstake: pass:normal[xref:#IRelayHub-unstake-address-[`unstake`]]
  1498. :getRelay: pass:normal[xref:#IRelayHub-getRelay-address-[`getRelay`]]
  1499. :depositFor: pass:normal[xref:#IRelayHub-depositFor-address-[`depositFor`]]
  1500. :balanceOf: pass:normal[xref:#IRelayHub-balanceOf-address-[`balanceOf`]]
  1501. :withdraw: pass:normal[xref:#IRelayHub-withdraw-uint256-address-payable-[`withdraw`]]
  1502. :canRelay: pass:normal[xref:#IRelayHub-canRelay-address-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-[`canRelay`]]
  1503. :relayCall: pass:normal[xref:#IRelayHub-relayCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-[`relayCall`]]
  1504. :requiredGas: pass:normal[xref:#IRelayHub-requiredGas-uint256-[`requiredGas`]]
  1505. :maxPossibleCharge: pass:normal[xref:#IRelayHub-maxPossibleCharge-uint256-uint256-uint256-[`maxPossibleCharge`]]
  1506. :penalizeRepeatedNonce: pass:normal[xref:#IRelayHub-penalizeRepeatedNonce-bytes-bytes-bytes-bytes-[`penalizeRepeatedNonce`]]
  1507. :penalizeIllegalTransaction: pass:normal[xref:#IRelayHub-penalizeIllegalTransaction-bytes-bytes-[`penalizeIllegalTransaction`]]
  1508. :getNonce: pass:normal[xref:#IRelayHub-getNonce-address-[`getNonce`]]
  1509. :Staked: pass:normal[xref:#IRelayHub-Staked-address-uint256-uint256-[`Staked`]]
  1510. :RelayAdded: pass:normal[xref:#IRelayHub-RelayAdded-address-address-uint256-uint256-uint256-string-[`RelayAdded`]]
  1511. :RelayRemoved: pass:normal[xref:#IRelayHub-RelayRemoved-address-uint256-[`RelayRemoved`]]
  1512. :Unstaked: pass:normal[xref:#IRelayHub-Unstaked-address-uint256-[`Unstaked`]]
  1513. :Deposited: pass:normal[xref:#IRelayHub-Deposited-address-address-uint256-[`Deposited`]]
  1514. :Withdrawn: pass:normal[xref:#IRelayHub-Withdrawn-address-address-uint256-[`Withdrawn`]]
  1515. :CanRelayFailed: pass:normal[xref:#IRelayHub-CanRelayFailed-address-address-address-bytes4-uint256-[`CanRelayFailed`]]
  1516. :TransactionRelayed: pass:normal[xref:#IRelayHub-TransactionRelayed-address-address-address-bytes4-enum-IRelayHub-RelayCallStatus-uint256-[`TransactionRelayed`]]
  1517. :Penalized: pass:normal[xref:#IRelayHub-Penalized-address-address-uint256-[`Penalized`]]
  1518. [.contract]
  1519. [[IRelayHub]]
  1520. === `IRelayHub`
  1521. Interface for `RelayHub`, the core contract of the GSN. Users should not need to interact with this contract
  1522. directly.
  1523. See the https://github.com/OpenZeppelin/openzeppelin-gsn-helpers[OpenZeppelin GSN helpers] for more information on
  1524. how to deploy an instance of `RelayHub` on your local test network.
  1525. [.contract-index]
  1526. .Functions
  1527. --
  1528. * {xref-IRelayHub-stake}[`stake(relayaddr, unstakeDelay)`]
  1529. * {xref-IRelayHub-registerRelay}[`registerRelay(transactionFee, url)`]
  1530. * {xref-IRelayHub-removeRelayByOwner}[`removeRelayByOwner(relay)`]
  1531. * {xref-IRelayHub-unstake}[`unstake(relay)`]
  1532. * {xref-IRelayHub-getRelay}[`getRelay(relay)`]
  1533. * {xref-IRelayHub-depositFor}[`depositFor(target)`]
  1534. * {xref-IRelayHub-balanceOf}[`balanceOf(target)`]
  1535. * {xref-IRelayHub-withdraw}[`withdraw(amount, dest)`]
  1536. * {xref-IRelayHub-canRelay}[`canRelay(relay, from, to, encodedFunction, transactionFee, gasPrice, gasLimit, nonce, signature, approvalData)`]
  1537. * {xref-IRelayHub-relayCall}[`relayCall(from, to, encodedFunction, transactionFee, gasPrice, gasLimit, nonce, signature, approvalData)`]
  1538. * {xref-IRelayHub-requiredGas}[`requiredGas(relayedCallStipend)`]
  1539. * {xref-IRelayHub-maxPossibleCharge}[`maxPossibleCharge(relayedCallStipend, gasPrice, transactionFee)`]
  1540. * {xref-IRelayHub-penalizeRepeatedNonce}[`penalizeRepeatedNonce(unsignedTx1, signature1, unsignedTx2, signature2)`]
  1541. * {xref-IRelayHub-penalizeIllegalTransaction}[`penalizeIllegalTransaction(unsignedTx, signature)`]
  1542. * {xref-IRelayHub-getNonce}[`getNonce(from)`]
  1543. --
  1544. [.contract-index]
  1545. .Events
  1546. --
  1547. * {xref-IRelayHub-Staked}[`Staked(relay, stake, unstakeDelay)`]
  1548. * {xref-IRelayHub-RelayAdded}[`RelayAdded(relay, owner, transactionFee, stake, unstakeDelay, url)`]
  1549. * {xref-IRelayHub-RelayRemoved}[`RelayRemoved(relay, unstakeTime)`]
  1550. * {xref-IRelayHub-Unstaked}[`Unstaked(relay, stake)`]
  1551. * {xref-IRelayHub-Deposited}[`Deposited(recipient, from, amount)`]
  1552. * {xref-IRelayHub-Withdrawn}[`Withdrawn(account, dest, amount)`]
  1553. * {xref-IRelayHub-CanRelayFailed}[`CanRelayFailed(relay, from, to, selector, reason)`]
  1554. * {xref-IRelayHub-TransactionRelayed}[`TransactionRelayed(relay, from, to, selector, status, charge)`]
  1555. * {xref-IRelayHub-Penalized}[`Penalized(relay, sender, amount)`]
  1556. --
  1557. [.contract-item]
  1558. [[IRelayHub-stake-address-uint256-]]
  1559. ==== `pass:normal[stake([.var-type\]#address# [.var-name\]#relayaddr#, [.var-type\]#uint256# [.var-name\]#unstakeDelay#)]` [.item-kind]#external#
  1560. Adds stake to a relay and sets its `unstakeDelay`. If the relay does not exist, it is created, and the caller
  1561. of this function becomes its owner. If the relay already exists, only the owner can call this function. A relay
  1562. cannot be its own owner.
  1563. All Ether in this function call will be added to the relay's stake.
  1564. Its unstake delay will be assigned to `unstakeDelay`, but the new value must be greater or equal to the current one.
  1565. Emits a {Staked} event.
  1566. [.contract-item]
  1567. [[IRelayHub-registerRelay-uint256-string-]]
  1568. ==== `pass:normal[registerRelay([.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#string# [.var-name\]#url#)]` [.item-kind]#external#
  1569. Registers the caller as a relay.
  1570. The relay must be staked for, and not be a contract (i.e. this function must be called directly from an EOA).
  1571. This function can be called multiple times, emitting new {RelayAdded} events. Note that the received
  1572. `transactionFee` is not enforced by {relayCall}.
  1573. Emits a {RelayAdded} event.
  1574. [.contract-item]
  1575. [[IRelayHub-removeRelayByOwner-address-]]
  1576. ==== `pass:normal[removeRelayByOwner([.var-type\]#address# [.var-name\]#relay#)]` [.item-kind]#external#
  1577. Removes (deregisters) a relay. Unregistered (but staked for) relays can also be removed.
  1578. Can only be called by the owner of the relay. After the relay's `unstakeDelay` has elapsed, {unstake} will be
  1579. callable.
  1580. Emits a {RelayRemoved} event.
  1581. [.contract-item]
  1582. [[IRelayHub-unstake-address-]]
  1583. ==== `pass:normal[unstake([.var-type\]#address# [.var-name\]#relay#)]` [.item-kind]#external#
  1584. [.contract-item]
  1585. [[IRelayHub-getRelay-address-]]
  1586. ==== `pass:normal[getRelay([.var-type\]#address# [.var-name\]#relay#) → [.var-type\]#uint256# [.var-name\]#totalStake#, [.var-type\]#uint256# [.var-name\]#unstakeDelay#, [.var-type\]#uint256# [.var-name\]#unstakeTime#, [.var-type\]#address payable# [.var-name\]#owner#, [.var-type\]#enum IRelayHub.RelayState# [.var-name\]#state#]` [.item-kind]#external#
  1587. Returns a relay's status. Note that relays can be deleted when unstaked or penalized, causing this function
  1588. to return an empty entry.
  1589. [.contract-item]
  1590. [[IRelayHub-depositFor-address-]]
  1591. ==== `pass:normal[depositFor([.var-type\]#address# [.var-name\]#target#)]` [.item-kind]#external#
  1592. Deposits Ether for a contract, so that it can receive (and pay for) relayed transactions.
  1593. Unused balance can only be withdrawn by the contract itself, by calling {withdraw}.
  1594. Emits a {Deposited} event.
  1595. [.contract-item]
  1596. [[IRelayHub-balanceOf-address-]]
  1597. ==== `pass:normal[balanceOf([.var-type\]#address# [.var-name\]#target#) → [.var-type\]#uint256#]` [.item-kind]#external#
  1598. Returns an account's deposits. These can be either a contracts's funds, or a relay owner's revenue.
  1599. [.contract-item]
  1600. [[IRelayHub-withdraw-uint256-address-payable-]]
  1601. ==== `pass:normal[withdraw([.var-type\]#uint256# [.var-name\]#amount#, [.var-type\]#address payable# [.var-name\]#dest#)]` [.item-kind]#external#
  1602. [.contract-item]
  1603. [[IRelayHub-canRelay-address-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-]]
  1604. ==== `pass:normal[canRelay([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#bytes# [.var-name\]#encodedFunction#, [.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256# [.var-name\]#gasLimit#, [.var-type\]#uint256# [.var-name\]#nonce#, [.var-type\]#bytes# [.var-name\]#signature#, [.var-type\]#bytes# [.var-name\]#approvalData#) → [.var-type\]#uint256# [.var-name\]#status#, [.var-type\]#bytes# [.var-name\]#recipientContext#]` [.item-kind]#external#
  1605. Checks if the `RelayHub` will accept a relayed operation.
  1606. Multiple things must be true for this to happen:
  1607. - all arguments must be signed for by the sender (`from`)
  1608. - the sender's nonce must be the current one
  1609. - the recipient must accept this transaction (via {acceptRelayedCall})
  1610. Returns a `PreconditionCheck` value (`OK` when the transaction can be relayed), or a recipient-specific error
  1611. code if it returns one in {acceptRelayedCall}.
  1612. [.contract-item]
  1613. [[IRelayHub-relayCall-address-address-bytes-uint256-uint256-uint256-uint256-bytes-bytes-]]
  1614. ==== `pass:normal[relayCall([.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#bytes# [.var-name\]#encodedFunction#, [.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256# [.var-name\]#gasLimit#, [.var-type\]#uint256# [.var-name\]#nonce#, [.var-type\]#bytes# [.var-name\]#signature#, [.var-type\]#bytes# [.var-name\]#approvalData#)]` [.item-kind]#external#
  1615. Relays a transaction.
  1616. For this to succeed, multiple conditions must be met:
  1617. - {canRelay} must `return PreconditionCheck.OK`
  1618. - the sender must be a registered relay
  1619. - the transaction's gas price must be larger or equal to the one that was requested by the sender
  1620. - the transaction must have enough gas to not run out of gas if all internal transactions (calls to the
  1621. recipient) use all gas available to them
  1622. - the recipient must have enough balance to pay the relay for the worst-case scenario (i.e. when all gas is
  1623. spent)
  1624. If all conditions are met, the call will be relayed and the recipient charged. {preRelayedCall}, the encoded
  1625. function and {postRelayedCall} will be called in that order.
  1626. Parameters:
  1627. - `from`: the client originating the request
  1628. - `to`: the target {IRelayRecipient} contract
  1629. - `encodedFunction`: the function call to relay, including data
  1630. - `transactionFee`: fee (%) the relay takes over actual gas cost
  1631. - `gasPrice`: gas price the client is willing to pay
  1632. - `gasLimit`: gas to forward when calling the encoded function
  1633. - `nonce`: client's nonce
  1634. - `signature`: client's signature over all previous params, plus the relay and RelayHub addresses
  1635. - `approvalData`: dapp-specific data forwared to {acceptRelayedCall}. This value is *not* verified by the
  1636. `RelayHub`, but it still can be used for e.g. a signature.
  1637. Emits a {TransactionRelayed} event.
  1638. [.contract-item]
  1639. [[IRelayHub-requiredGas-uint256-]]
  1640. ==== `pass:normal[requiredGas([.var-type\]#uint256# [.var-name\]#relayedCallStipend#) → [.var-type\]#uint256#]` [.item-kind]#external#
  1641. Returns how much gas should be forwarded to a call to {relayCall}, in order to relay a transaction that will
  1642. spend up to `relayedCallStipend` gas.
  1643. [.contract-item]
  1644. [[IRelayHub-maxPossibleCharge-uint256-uint256-uint256-]]
  1645. ==== `pass:normal[maxPossibleCharge([.var-type\]#uint256# [.var-name\]#relayedCallStipend#, [.var-type\]#uint256# [.var-name\]#gasPrice#, [.var-type\]#uint256# [.var-name\]#transactionFee#) → [.var-type\]#uint256#]` [.item-kind]#external#
  1646. Returns the maximum recipient charge, given the amount of gas forwarded, gas price and relay fee.
  1647. [.contract-item]
  1648. [[IRelayHub-penalizeRepeatedNonce-bytes-bytes-bytes-bytes-]]
  1649. ==== `pass:normal[penalizeRepeatedNonce([.var-type\]#bytes# [.var-name\]#unsignedTx1#, [.var-type\]#bytes# [.var-name\]#signature1#, [.var-type\]#bytes# [.var-name\]#unsignedTx2#, [.var-type\]#bytes# [.var-name\]#signature2#)]` [.item-kind]#external#
  1650. Penalize a relay that signed two transactions using the same nonce (making only the first one valid) and
  1651. different data (gas price, gas limit, etc. may be different).
  1652. The (unsigned) transaction data and signature for both transactions must be provided.
  1653. [.contract-item]
  1654. [[IRelayHub-penalizeIllegalTransaction-bytes-bytes-]]
  1655. ==== `pass:normal[penalizeIllegalTransaction([.var-type\]#bytes# [.var-name\]#unsignedTx#, [.var-type\]#bytes# [.var-name\]#signature#)]` [.item-kind]#external#
  1656. Penalize a relay that sent a transaction that didn't target `RelayHub`'s {registerRelay} or {relayCall}.
  1657. [.contract-item]
  1658. [[IRelayHub-getNonce-address-]]
  1659. ==== `pass:normal[getNonce([.var-type\]#address# [.var-name\]#from#) → [.var-type\]#uint256#]` [.item-kind]#external#
  1660. Returns an account's nonce in `RelayHub`.
  1661. [.contract-item]
  1662. [[IRelayHub-Staked-address-uint256-uint256-]]
  1663. ==== `pass:normal[Staked([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#uint256# [.var-name\]#stake#, [.var-type\]#uint256# [.var-name\]#unstakeDelay#)]` [.item-kind]#event#
  1664. Emitted when a relay's stake or unstakeDelay are increased
  1665. [.contract-item]
  1666. [[IRelayHub-RelayAdded-address-address-uint256-uint256-uint256-string-]]
  1667. ==== `pass:normal[RelayAdded([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#owner#, [.var-type\]#uint256# [.var-name\]#transactionFee#, [.var-type\]#uint256# [.var-name\]#stake#, [.var-type\]#uint256# [.var-name\]#unstakeDelay#, [.var-type\]#string# [.var-name\]#url#)]` [.item-kind]#event#
  1668. Emitted when a relay is registered or re-registerd. Looking at these events (and filtering out
  1669. {RelayRemoved} events) lets a client discover the list of available relays.
  1670. [.contract-item]
  1671. [[IRelayHub-RelayRemoved-address-uint256-]]
  1672. ==== `pass:normal[RelayRemoved([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#uint256# [.var-name\]#unstakeTime#)]` [.item-kind]#event#
  1673. Emitted when a relay is removed (deregistered). `unstakeTime` is the time when unstake will be callable.
  1674. [.contract-item]
  1675. [[IRelayHub-Unstaked-address-uint256-]]
  1676. ==== `pass:normal[Unstaked([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#uint256# [.var-name\]#stake#)]` [.item-kind]#event#
  1677. Emitted when a relay is unstaked for, including the returned stake.
  1678. [.contract-item]
  1679. [[IRelayHub-Deposited-address-address-uint256-]]
  1680. ==== `pass:normal[Deposited([.var-type\]#address# [.var-name\]#recipient#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#uint256# [.var-name\]#amount#)]` [.item-kind]#event#
  1681. Emitted when {depositFor} is called, including the amount and account that was funded.
  1682. [.contract-item]
  1683. [[IRelayHub-Withdrawn-address-address-uint256-]]
  1684. ==== `pass:normal[Withdrawn([.var-type\]#address# [.var-name\]#account#, [.var-type\]#address# [.var-name\]#dest#, [.var-type\]#uint256# [.var-name\]#amount#)]` [.item-kind]#event#
  1685. Emitted when an account withdraws funds from `RelayHub`.
  1686. [.contract-item]
  1687. [[IRelayHub-CanRelayFailed-address-address-address-bytes4-uint256-]]
  1688. ==== `pass:normal[CanRelayFailed([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#bytes4# [.var-name\]#selector#, [.var-type\]#uint256# [.var-name\]#reason#)]` [.item-kind]#event#
  1689. Emitted when an attempt to relay a call failed.
  1690. This can happen due to incorrect {relayCall} arguments, or the recipient not accepting the relayed call. The
  1691. actual relayed call was not executed, and the recipient not charged.
  1692. The `reason` parameter contains an error code: values 1-10 correspond to `PreconditionCheck` entries, and values
  1693. over 10 are custom recipient error codes returned from {acceptRelayedCall}.
  1694. [.contract-item]
  1695. [[IRelayHub-TransactionRelayed-address-address-address-bytes4-enum-IRelayHub-RelayCallStatus-uint256-]]
  1696. ==== `pass:normal[TransactionRelayed([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#from#, [.var-type\]#address# [.var-name\]#to#, [.var-type\]#bytes4# [.var-name\]#selector#, [.var-type\]#enum IRelayHub.RelayCallStatus# [.var-name\]#status#, [.var-type\]#uint256# [.var-name\]#charge#)]` [.item-kind]#event#
  1697. Emitted when a transaction is relayed.
  1698. Useful when monitoring a relay's operation and relayed calls to a contract
  1699. Note that the actual encoded function might be reverted: this is indicated in the `status` parameter.
  1700. `charge` is the Ether value deducted from the recipient's balance, paid to the relay's owner.
  1701. [.contract-item]
  1702. [[IRelayHub-Penalized-address-address-uint256-]]
  1703. ==== `pass:normal[Penalized([.var-type\]#address# [.var-name\]#relay#, [.var-type\]#address# [.var-name\]#sender#, [.var-type\]#uint256# [.var-name\]#amount#)]` [.item-kind]#event#
  1704. Emitted when a relay is penalized.