polkamarkets-js 3.4.1 → 3.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/package.json +1 -1
  2. package/script/AddAdminToLand.s.sol +1 -1
  3. package/script/ClaimMerkleRoot.s.sol +29 -29
  4. package/script/CreateLand.s.sol +1 -1
  5. package/script/DeployMerkleRewardsDistributor.s.sol +21 -21
  6. package/script/MintTokens.s.sol +1 -1
  7. package/script/PublishMerkleRoot.s.sol +50 -50
  8. package/script/UpdateMarket.s.sol +55 -0
  9. package/script/copy-abis.js +57 -0
  10. package/src/Application.js +12 -1
  11. package/src/models/IContract.js +87 -1
  12. package/src/models/PolkamarketsSmartAccount.js +23 -0
  13. package/src/models/PredictionMarketV3Contract.js +49 -16
  14. package/abis/AccessControlUpgradeable.json +0 -1
  15. package/abis/AddAdminToLand.json +0 -1
  16. package/abis/AddressUpgradeable.json +0 -1
  17. package/abis/ClaimMerkleRoot.json +0 -1
  18. package/abis/CreateLand.json +0 -1
  19. package/abis/CreateMarkets.json +0 -1
  20. package/abis/DeployContracts.json +0 -1
  21. package/abis/DeployMerkleRewardsDistributor.json +0 -1
  22. package/abis/DeployToken.json +0 -1
  23. package/abis/DeployUSDT.json +0 -1
  24. package/abis/ECDSA.json +0 -1
  25. package/abis/ERC165Upgradeable.json +0 -1
  26. package/abis/ERC1967UpgradeUpgradeable.json +0 -1
  27. package/abis/Hashes.json +0 -1
  28. package/abis/IBeaconUpgradeable.json +0 -1
  29. package/abis/IERC1822ProxiableUpgradeable.json +0 -1
  30. package/abis/IERC20PermitUpgradeable.json +0 -1
  31. package/abis/IERC20Upgradeable.json +0 -1
  32. package/abis/Manager.json +0 -1
  33. package/abis/MerkleProof.json +0 -1
  34. package/abis/MerkleRewardsDistributor.json +0 -1
  35. package/abis/MerkleRewardsDistributorTest.json +0 -1
  36. package/abis/MessageHashUtils.json +0 -1
  37. package/abis/MintTokens.json +0 -1
  38. package/abis/Nonces.json +0 -1
  39. package/abis/Panic.json +0 -1
  40. package/abis/PublishMerkleRoot.json +0 -1
  41. package/abis/ResolveMarket.json +0 -1
  42. package/abis/RewardsDistributor.json +0 -1
  43. package/abis/RewardsDistributorTest.json +0 -1
  44. package/abis/SafeCast.json +0 -1
  45. package/abis/SafeERC20Upgradeable.json +0 -1
  46. package/abis/SignedMath.json +0 -1
  47. package/abis/StorageSlotUpgradeable.json +0 -1
  48. package/abis/TradeMarket.json +0 -1
  49. package/abis/USDT.json +0 -1
  50. package/abis/UpdateMarket.json +0 -1
  51. package/abis/UpdateTest.json +0 -1
  52. package/abis/WhaleTest.json +0 -1
  53. package/lib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sol +0 -22
  54. package/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +0 -109
  55. package/lib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sol +0 -9
  56. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintBase.sol +0 -25
  57. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintMissing.sol +0 -24
  58. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRole.sol +0 -23
  59. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sol +0 -14
  60. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessManagedERC20MintBase.sol +0 -16
  61. package/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sol +0 -17
  62. package/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyAccountERC7702.sol +0 -20
  63. package/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyFactoryAccount.sol +0 -37
  64. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +0 -80
  65. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +0 -21
  66. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +0 -32
  67. package/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +0 -28
  68. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/GameItems.sol +0 -21
  69. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sol +0 -7
  70. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sol +0 -11
  71. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC6909/ERC6909GameItems.sol +0 -26
  72. package/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC721/GameItem.sol +0 -19
  73. package/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Base64NFT.sol +0 -27
  74. package/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sol +0 -15
  75. package/lib/openzeppelin-contracts/docs/README.md +0 -16
  76. package/lib/openzeppelin-contracts/docs/antora.yml +0 -7
  77. package/lib/openzeppelin-contracts/docs/config.js +0 -21
  78. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-control-multiple.svg +0 -97
  79. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager-functions.svg +0 -47
  80. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager.svg +0 -99
  81. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  82. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  83. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  84. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  85. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  86. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  87. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  88. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  89. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  90. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  91. package/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  92. package/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +0 -29
  93. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +0 -288
  94. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/account-abstraction.adoc +0 -100
  95. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/accounts.adoc +0 -354
  96. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +0 -50
  97. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/eoa-delegation.adoc +0 -143
  98. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +0 -118
  99. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +0 -71
  100. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +0 -67
  101. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +0 -214
  102. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc6909.adoc +0 -47
  103. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +0 -58
  104. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +0 -51
  105. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +0 -13
  106. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +0 -239
  107. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +0 -70
  108. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/multisig.adoc +0 -306
  109. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +0 -31
  110. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +0 -77
  111. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +0 -591
  112. package/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +0 -15
  113. package/lib/openzeppelin-contracts/docs/templates/contract.hbs +0 -141
  114. package/lib/openzeppelin-contracts/docs/templates/helpers.js +0 -46
  115. package/lib/openzeppelin-contracts/docs/templates/page.hbs +0 -4
  116. package/lib/openzeppelin-contracts/docs/templates/properties.js +0 -88
  117. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/ERC20WithAutoMinerRewardUpgradeable.sol +0 -28
  118. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/ERC4626FeesUpgradeable.sol +0 -115
  119. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/MyNFTUpgradeable.sol +0 -14
  120. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlERC20MintBaseUpgradeable.sol +0 -31
  121. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlERC20MintMissingUpgradeable.sol +0 -30
  122. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRoleUpgradeable.sol +0 -29
  123. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessControlModifiedUpgradeable.sol +0 -20
  124. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/AccessManagedERC20MintBaseUpgradeable.sol +0 -22
  125. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/access-control/MyContractOwnableUpgradeable.sol +0 -22
  126. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/account/MyAccountERC7702Upgradeable.sol +0 -26
  127. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/account/MyFactoryAccountUpgradeable.sol +0 -42
  128. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyGovernorUpgradeable.sol +0 -92
  129. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyTokenTimestampBasedUpgradeable.sol +0 -39
  130. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyTokenUpgradeable.sol +0 -28
  131. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/governance/MyTokenWrappedUpgradeable.sol +0 -39
  132. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC1155/GameItemsUpgradeable.sol +0 -27
  133. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC1155/MyERC115HolderContractUpgradeable.sol +0 -13
  134. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC20/GLDTokenUpgradeable.sol +0 -17
  135. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC6909/ERC6909GameItemsUpgradeable.sol +0 -31
  136. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/token/ERC721/GameItemUpgradeable.sol +0 -24
  137. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/utilities/Base64NFTUpgradeable.sol +0 -32
  138. package/lib/openzeppelin-contracts-upgradeable/contracts/mocks/docs/utilities/MulticallUpgradeable.sol +0 -21
  139. package/lib/openzeppelin-contracts-upgradeable/docs/README.md +0 -16
  140. package/lib/openzeppelin-contracts-upgradeable/docs/antora.yml +0 -7
  141. package/lib/openzeppelin-contracts-upgradeable/docs/config.js +0 -21
  142. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/access-control-multiple.svg +0 -97
  143. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/access-manager-functions.svg +0 -47
  144. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/access-manager.svg +0 -99
  145. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  146. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  147. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  148. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  149. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  150. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  151. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  152. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  153. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  154. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-exec.png +0 -0
  155. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/images/tally-vote.png +0 -0
  156. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/nav.adoc +0 -29
  157. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/access-control.adoc +0 -288
  158. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/account-abstraction.adoc +0 -100
  159. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/accounts.adoc +0 -354
  160. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/backwards-compatibility.adoc +0 -50
  161. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/eoa-delegation.adoc +0 -143
  162. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc1155.adoc +0 -118
  163. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc20-supply.adoc +0 -71
  164. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc20.adoc +0 -67
  165. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc4626.adoc +0 -214
  166. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc6909.adoc +0 -47
  167. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/erc721.adoc +0 -58
  168. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/extending-contracts.adoc +0 -51
  169. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/faq.adoc +0 -13
  170. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/governance.adoc +0 -239
  171. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/index.adoc +0 -70
  172. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/multisig.adoc +0 -306
  173. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/tokens.adoc +0 -31
  174. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/upgradeable.adoc +0 -77
  175. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/utilities.adoc +0 -591
  176. package/lib/openzeppelin-contracts-upgradeable/docs/modules/ROOT/pages/wizard.adoc +0 -15
  177. package/lib/openzeppelin-contracts-upgradeable/docs/templates/contract.hbs +0 -141
  178. package/lib/openzeppelin-contracts-upgradeable/docs/templates/helpers.js +0 -46
  179. package/lib/openzeppelin-contracts-upgradeable/docs/templates/page.hbs +0 -4
  180. package/lib/openzeppelin-contracts-upgradeable/docs/templates/properties.js +0 -88
  181. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/ERC20WithAutoMinerReward.sol +0 -22
  182. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/ERC4626Fees.sol +0 -109
  183. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/MyNFT.sol +0 -9
  184. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintBase.sol +0 -25
  185. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintMissing.sol +0 -24
  186. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlERC20MintOnlyRole.sol +0 -23
  187. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessControlModified.sol +0 -14
  188. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/AccessManagedERC20MintBase.sol +0 -16
  189. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/access-control/MyContractOwnable.sol +0 -17
  190. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyAccountERC7702.sol +0 -20
  191. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/account/MyFactoryAccount.sol +0 -37
  192. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyGovernor.sol +0 -80
  193. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyToken.sol +0 -21
  194. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenTimestampBased.sol +0 -32
  195. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/governance/MyTokenWrapped.sol +0 -28
  196. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/GameItems.sol +0 -21
  197. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC1155/MyERC115HolderContract.sol +0 -7
  198. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC20/GLDToken.sol +0 -11
  199. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC6909/ERC6909GameItems.sol +0 -26
  200. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/token/ERC721/GameItem.sol +0 -19
  201. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Base64NFT.sol +0 -27
  202. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/mocks/docs/utilities/Multicall.sol +0 -15
  203. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/README.md +0 -16
  204. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/antora.yml +0 -7
  205. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/config.js +0 -21
  206. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-control-multiple.svg +0 -97
  207. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager-functions.svg +0 -47
  208. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/access-manager.svg +0 -99
  209. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3a.png +0 -0
  210. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-3b.png +0 -0
  211. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack-6.png +0 -0
  212. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-attack.png +0 -0
  213. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-deposit.png +0 -0
  214. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-mint.png +0 -0
  215. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-linear.png +0 -0
  216. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglog.png +0 -0
  217. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/erc4626-rate-loglogext.png +0 -0
  218. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-exec.png +0 -0
  219. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/images/tally-vote.png +0 -0
  220. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/nav.adoc +0 -29
  221. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/access-control.adoc +0 -288
  222. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/account-abstraction.adoc +0 -100
  223. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/accounts.adoc +0 -354
  224. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/backwards-compatibility.adoc +0 -50
  225. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/eoa-delegation.adoc +0 -143
  226. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc1155.adoc +0 -118
  227. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20-supply.adoc +0 -71
  228. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc20.adoc +0 -67
  229. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc4626.adoc +0 -214
  230. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc6909.adoc +0 -47
  231. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/erc721.adoc +0 -58
  232. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/extending-contracts.adoc +0 -51
  233. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/faq.adoc +0 -13
  234. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/governance.adoc +0 -239
  235. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/index.adoc +0 -70
  236. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/multisig.adoc +0 -306
  237. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/tokens.adoc +0 -31
  238. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/upgradeable.adoc +0 -77
  239. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/utilities.adoc +0 -591
  240. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/modules/ROOT/pages/wizard.adoc +0 -15
  241. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/contract.hbs +0 -141
  242. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/helpers.js +0 -46
  243. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/page.hbs +0 -4
  244. package/lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/docs/templates/properties.js +0 -88
  245. package/lib/openzeppelin-contracts-upgradeable.git/docs/antora.yml +0 -6
  246. package/lib/openzeppelin-contracts-upgradeable.git/docs/config.js +0 -21
  247. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/images/tally-exec.png +0 -0
  248. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/images/tally-vote.png +0 -0
  249. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/nav.adoc +0 -23
  250. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/access-control.adoc +0 -217
  251. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/crosschain.adoc +0 -210
  252. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/crowdsales.adoc +0 -11
  253. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/drafts.adoc +0 -19
  254. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/erc1155.adoc +0 -153
  255. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/erc20-supply.adoc +0 -113
  256. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/erc20.adoc +0 -85
  257. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/erc721.adoc +0 -90
  258. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/erc777.adoc +0 -73
  259. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/extending-contracts.adoc +0 -129
  260. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/governance.adoc +0 -321
  261. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/index.adoc +0 -63
  262. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/releases-stability.adoc +0 -85
  263. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/tokens.adoc +0 -32
  264. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/upgradeable.adoc +0 -73
  265. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/utilities.adoc +0 -190
  266. package/lib/openzeppelin-contracts-upgradeable.git/docs/modules/ROOT/pages/wizard.adoc +0 -15
  267. package/lib/openzeppelin-contracts-upgradeable.git/docs/templates/contract.hbs +0 -85
  268. package/lib/openzeppelin-contracts-upgradeable.git/docs/templates/helpers.js +0 -46
  269. package/lib/openzeppelin-contracts-upgradeable.git/docs/templates/page.hbs +0 -4
  270. package/lib/openzeppelin-contracts-upgradeable.git/docs/templates/properties.js +0 -49
  271. package/lib/openzeppelin-contracts.git/docs/antora.yml +0 -6
  272. package/lib/openzeppelin-contracts.git/docs/config.js +0 -21
  273. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/images/tally-exec.png +0 -0
  274. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/images/tally-vote.png +0 -0
  275. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/nav.adoc +0 -23
  276. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/access-control.adoc +0 -217
  277. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/crosschain.adoc +0 -210
  278. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/crowdsales.adoc +0 -11
  279. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/drafts.adoc +0 -19
  280. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/erc1155.adoc +0 -153
  281. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/erc20-supply.adoc +0 -113
  282. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/erc20.adoc +0 -85
  283. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/erc721.adoc +0 -90
  284. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/erc777.adoc +0 -73
  285. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/extending-contracts.adoc +0 -129
  286. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/governance.adoc +0 -321
  287. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/index.adoc +0 -63
  288. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/releases-stability.adoc +0 -85
  289. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/tokens.adoc +0 -32
  290. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/upgradeable.adoc +0 -73
  291. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/utilities.adoc +0 -190
  292. package/lib/openzeppelin-contracts.git/docs/modules/ROOT/pages/wizard.adoc +0 -15
  293. package/lib/openzeppelin-contracts.git/docs/templates/contract.hbs +0 -85
  294. package/lib/openzeppelin-contracts.git/docs/templates/helpers.js +0 -46
  295. package/lib/openzeppelin-contracts.git/docs/templates/page.hbs +0 -4
  296. package/lib/openzeppelin-contracts.git/docs/templates/properties.js +0 -49
  297. package/lib/reality-eth-monorepo/packages/docs/Audit_Reality_v3_202108.pdf +0 -0
  298. package/lib/reality-eth-monorepo/packages/docs/Makefile +0 -20
  299. package/lib/reality-eth-monorepo/packages/docs/arbitrators.rst +0 -85
  300. package/lib/reality-eth-monorepo/packages/docs/audit.rst +0 -12
  301. package/lib/reality-eth-monorepo/packages/docs/audit_v2.rst +0 -249
  302. package/lib/reality-eth-monorepo/packages/docs/audit_v2_ERC20.rst +0 -1075
  303. package/lib/reality-eth-monorepo/packages/docs/audit_v3.rst +0 -70
  304. package/lib/reality-eth-monorepo/packages/docs/conf.py +0 -155
  305. package/lib/reality-eth-monorepo/packages/docs/contract_explanation.rst +0 -82
  306. package/lib/reality-eth-monorepo/packages/docs/contracts.rst +0 -277
  307. package/lib/reality-eth-monorepo/packages/docs/dapp.rst +0 -126
  308. package/lib/reality-eth-monorepo/packages/docs/dapp_links.rst +0 -67
  309. package/lib/reality-eth-monorepo/packages/docs/fees.rst +0 -89
  310. package/lib/reality-eth-monorepo/packages/docs/index.rst +0 -26
  311. package/lib/reality-eth-monorepo/packages/docs/javascript.rst +0 -142
  312. package/lib/reality-eth-monorepo/packages/docs/make.bat +0 -36
  313. package/lib/reality-eth-monorepo/packages/docs/question_box.png +0 -0
  314. package/lib/reality-eth-monorepo/packages/docs/requirements.txt +0 -24
  315. package/lib/reality-eth-monorepo/packages/docs/whitepaper.rst +0 -165
  316. package/test/UpdateTest.t.sol +0 -55
  317. package/test/WhaleTest.t.sol +0 -188
  318. package/tooling/docs/jsdoc.json +0 -6
@@ -1,15 +0,0 @@
1
- = Contracts Wizard
2
- :page-notoc:
3
-
4
- Not sure where to start? Use the interactive generator below to bootstrap your
5
- contract and learn about the components offered in OpenZeppelin Contracts.
6
-
7
- TIP: Place the resulting contract in your `contracts` or `src` directory in order to compile it with a tool like Hardhat or Foundry. Consider reading our guide on xref:learn::developing-smart-contracts.adoc[Developing Smart Contracts] for more guidance!
8
-
9
- ++++
10
- <script async src="https://wizard.openzeppelin.com/build/embed.js"></script>
11
-
12
- <oz-wizard style="display: block; min-height: 40rem;"></oz-wizard>
13
- ++++
14
-
15
-
@@ -1,141 +0,0 @@
1
- {{#each items}}
2
- :{{name}}: pass:normal[xref:#{{anchor}}[`++{{name}}++`]]
3
- {{/each}}
4
-
5
- {{#each functions}}
6
- :{{fullname}}: pass:normal[xref:#{{anchor}}[`++{{name}}++`]]
7
- {{/each}}
8
-
9
- [.contract]
10
- [[{{anchor}}]]
11
- === `++{{name}}++` link:https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v{{oz-version}}/{{__item_context.file.absolutePath}}[{github-icon},role=heading-link]
12
-
13
- [.hljs-theme-light.nopadding]
14
- ```solidity
15
- import "@openzeppelin/{{__item_context.file.absolutePath}}";
16
- ```
17
-
18
- {{{natspec.dev}}}
19
-
20
- {{#if modifiers}}
21
- [.contract-index]
22
- .Modifiers
23
- --
24
- {{#each modifiers}}
25
- * {xref-{{anchor~}} }[`++{{name}}({{names params}})++`]
26
- {{/each}}
27
- --
28
- {{/if}}
29
-
30
- {{#if has-functions}}
31
- [.contract-index]
32
- .Functions
33
- --
34
- {{#each inherited-functions}}
35
- {{#unless @first}}
36
- [.contract-subindex-inherited]
37
- .{{contract.name}}
38
- {{/unless}}
39
- {{#each functions}}
40
- * {xref-{{anchor~}} }[`++{{name}}({{names params}})++`]
41
- {{/each}}
42
-
43
- {{/each}}
44
- --
45
- {{/if}}
46
-
47
- {{#if has-events}}
48
- [.contract-index]
49
- .Events
50
- --
51
- {{#each inheritance}}
52
- {{#unless @first}}
53
- [.contract-subindex-inherited]
54
- .{{name}}
55
- {{/unless}}
56
- {{#each events}}
57
- * {xref-{{anchor~}} }[`++{{name}}({{names params}})++`]
58
- {{/each}}
59
-
60
- {{/each}}
61
- --
62
- {{/if}}
63
-
64
- {{#if has-errors}}
65
- [.contract-index]
66
- .Errors
67
- --
68
- {{#each inheritance}}
69
- {{#unless @first}}
70
- [.contract-subindex-inherited]
71
- .{{name}}
72
- {{/unless}}
73
- {{#each errors}}
74
- * {xref-{{anchor~}} }[`++{{name}}({{names params}})++`]
75
- {{/each}}
76
-
77
- {{/each}}
78
- --
79
- {{/if}}
80
-
81
- {{#if has-internal-variables}}
82
- [.contract-index]
83
- .Internal Variables
84
- --
85
- {{#each inheritance}}
86
- {{#unless @first}}
87
- [.contract-subindex-inherited]
88
- .{{name}}
89
- {{/unless}}
90
- {{#each internal-variables}}
91
- * {xref-{{anchor~}} }[`++{{typeDescriptions.typeString}} {{#if constant}}constant{{/if}} {{name}}++`]
92
- {{/each}}
93
-
94
- {{/each}}
95
- --
96
- {{/if}}
97
-
98
- {{#each modifiers}}
99
- [.contract-item]
100
- [[{{anchor}}]]
101
- ==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}})++` [.item-kind]#modifier#
102
-
103
- {{{natspec.dev}}}
104
-
105
- {{/each}}
106
-
107
- {{#each functions}}
108
- [.contract-item]
109
- [[{{anchor}}]]
110
- ==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}}){{#if returns2}} → {{typed-params returns2}}{{/if}}++` [.item-kind]#{{visibility}}#
111
-
112
- {{{natspec.dev}}}
113
-
114
- {{/each}}
115
-
116
- {{#each events}}
117
- [.contract-item]
118
- [[{{anchor}}]]
119
- ==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}})++` [.item-kind]#event#
120
-
121
- {{{natspec.dev}}}
122
-
123
- {{/each}}
124
-
125
- {{#each errors}}
126
- [.contract-item]
127
- [[{{anchor}}]]
128
- ==== `[.contract-item-name]#++{{name}}++#++({{typed-params params}})++` [.item-kind]#error#
129
-
130
- {{{natspec.dev}}}
131
-
132
- {{/each}}
133
-
134
- {{#each internal-variables}}
135
- [.contract-item]
136
- [[{{anchor}}]]
137
- ==== `{{typeDescriptions.typeString}} [.contract-item-name]#++{{name}}++#` [.item-kind]#internal{{#if constant}} constant{{/if}}#
138
-
139
- {{{natspec.dev}}}
140
-
141
- {{/each}}
@@ -1,46 +0,0 @@
1
- const { version } = require('../../package.json');
2
-
3
- module.exports['oz-version'] = () => version;
4
-
5
- module.exports['readme-path'] = opts => {
6
- return 'contracts/' + opts.data.root.id.replace(/\.adoc$/, '') + '/README.adoc';
7
- };
8
-
9
- module.exports.names = params => params?.map(p => p.name).join(', ');
10
-
11
- module.exports['typed-params'] = params => {
12
- return params?.map(p => `${p.type}${p.indexed ? ' indexed' : ''}${p.name ? ' ' + p.name : ''}`).join(', ');
13
- };
14
-
15
- const slug = (module.exports.slug = str => {
16
- if (str === undefined) {
17
- throw new Error('Missing argument');
18
- }
19
- return str.replace(/\W/g, '-');
20
- });
21
-
22
- const linksCache = new WeakMap();
23
-
24
- function getAllLinks(items) {
25
- if (linksCache.has(items)) {
26
- return linksCache.get(items);
27
- }
28
- const res = {};
29
- linksCache.set(items, res);
30
- for (const item of items) {
31
- res[`xref-${item.anchor}`] = `xref:${item.__item_context.page}#${item.anchor}`;
32
- res[slug(item.fullName)] = `pass:normal[xref:${item.__item_context.page}#${item.anchor}[\`${item.fullName}\`]]`;
33
- }
34
- return res;
35
- }
36
-
37
- module.exports['with-prelude'] = opts => {
38
- const links = getAllLinks(opts.data.site.items);
39
- const contents = opts.fn();
40
- const neededLinks = contents
41
- .match(/\{[-._a-z0-9]+\}/gi)
42
- .map(m => m.replace(/^\{(.+)\}$/, '$1'))
43
- .filter(k => k in links);
44
- const prelude = neededLinks.map(k => `:${k}: ${links[k]}`).join('\n');
45
- return prelude + '\n' + contents;
46
- };
@@ -1,4 +0,0 @@
1
- :github-icon: pass:[<svg class="icon"><use href="#github-icon"/></svg>]
2
- {{#with-prelude}}
3
- {{readme (readme-path)}}
4
- {{/with-prelude}}
@@ -1,88 +0,0 @@
1
- const { isNodeType, findAll } = require('solidity-ast/utils');
2
- const { slug } = require('./helpers');
3
-
4
- module.exports.anchor = function anchor({ item, contract }) {
5
- let res = '';
6
- if (contract) {
7
- res += contract.name + '-';
8
- }
9
- res += item.name;
10
- if ('parameters' in item) {
11
- const signature = item.parameters.parameters.map(v => v.typeName.typeDescriptions.typeString).join(',');
12
- res += slug('(' + signature + ')');
13
- }
14
- if (isNodeType('VariableDeclaration', item)) {
15
- res += '-' + slug(item.typeName.typeDescriptions.typeString);
16
- }
17
- return res;
18
- };
19
-
20
- module.exports.fullname = function fullname({ item }) {
21
- let res = '';
22
- res += item.name;
23
- if ('parameters' in item) {
24
- const signature = item.parameters.parameters.map(v => v.typeName.typeDescriptions.typeString).join(',');
25
- res += slug('(' + signature + ')');
26
- }
27
- if (isNodeType('VariableDeclaration', item)) {
28
- res += '-' + slug(item.typeName.typeDescriptions.typeString);
29
- }
30
- if (res.charAt(res.length - 1) === '-') {
31
- return res.slice(0, -1);
32
- }
33
- return res;
34
- };
35
-
36
- module.exports.inheritance = function ({ item, build }) {
37
- if (!isNodeType('ContractDefinition', item)) {
38
- throw new Error('used inherited-items on non-contract');
39
- }
40
-
41
- return item.linearizedBaseContracts
42
- .map(id => build.deref('ContractDefinition', id))
43
- .filter((c, i) => c.name !== 'Context' || i === 0);
44
- };
45
-
46
- module.exports['has-functions'] = function ({ item }) {
47
- return item.inheritance.some(c => c.functions.length > 0);
48
- };
49
-
50
- module.exports['has-events'] = function ({ item }) {
51
- return item.inheritance.some(c => c.events.length > 0);
52
- };
53
-
54
- module.exports['has-errors'] = function ({ item }) {
55
- return item.inheritance.some(c => c.errors.length > 0);
56
- };
57
-
58
- module.exports['internal-variables'] = function ({ item }) {
59
- return item.variables.filter(({ visibility }) => visibility === 'internal');
60
- };
61
-
62
- module.exports['has-internal-variables'] = function ({ item }) {
63
- return module.exports['internal-variables']({ item }).length > 0;
64
- };
65
-
66
- module.exports.functions = function ({ item }) {
67
- return [
68
- ...[...findAll('FunctionDefinition', item)].filter(f => f.visibility !== 'private'),
69
- ...[...findAll('VariableDeclaration', item)].filter(f => f.visibility === 'public'),
70
- ];
71
- };
72
-
73
- module.exports.returns2 = function ({ item }) {
74
- if (isNodeType('VariableDeclaration', item)) {
75
- return [{ type: item.typeDescriptions.typeString }];
76
- } else {
77
- return item.returns;
78
- }
79
- };
80
-
81
- module.exports['inherited-functions'] = function ({ item }) {
82
- const { inheritance } = item;
83
- const baseFunctions = new Set(inheritance.flatMap(c => c.functions.flatMap(f => f.baseFunctions ?? [])));
84
- return inheritance.map((contract, i) => ({
85
- contract,
86
- functions: contract.functions.filter(f => !baseFunctions.has(f.id) && (f.name !== 'constructor' || i === 0)),
87
- }));
88
- };
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
-
3
- pragma solidity ^0.8.20;
4
-
5
- import {ERC20} from "../../token/ERC20/ERC20.sol";
6
-
7
- contract ERC20WithAutoMinerReward is ERC20 {
8
- constructor() ERC20("Reward", "RWD") {
9
- _mintMinerReward();
10
- }
11
-
12
- function _mintMinerReward() internal {
13
- _mint(block.coinbase, 1000);
14
- }
15
-
16
- function _update(address from, address to, uint256 value) internal virtual override {
17
- if (!(from == address(0) && to == block.coinbase)) {
18
- _mintMinerReward();
19
- }
20
- super._update(from, to, value);
21
- }
22
- }
@@ -1,109 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
-
3
- pragma solidity ^0.8.20;
4
-
5
- import {IERC20} from "../../token/ERC20/IERC20.sol";
6
- import {ERC4626} from "../../token/ERC20/extensions/ERC4626.sol";
7
- import {SafeERC20} from "../../token/ERC20/utils/SafeERC20.sol";
8
- import {Math} from "../../utils/math/Math.sol";
9
-
10
- /// @dev ERC-4626 vault with entry/exit fees expressed in https://en.wikipedia.org/wiki/Basis_point[basis point (bp)].
11
- ///
12
- /// NOTE: The contract charges fees in terms of assets, not shares. This means that the fees are calculated based on the
13
- /// amount of assets that are being deposited or withdrawn, and not based on the amount of shares that are being minted or
14
- /// redeemed. This is an opinionated design decision that should be taken into account when integrating this contract.
15
- ///
16
- /// WARNING: This contract has not been audited and shouldn't be considered production ready. Consider using it with caution.
17
- abstract contract ERC4626Fees is ERC4626 {
18
- using Math for uint256;
19
-
20
- uint256 private constant _BASIS_POINT_SCALE = 1e4;
21
-
22
- // === Overrides ===
23
-
24
- /// @dev Preview taking an entry fee on deposit. See {IERC4626-previewDeposit}.
25
- function previewDeposit(uint256 assets) public view virtual override returns (uint256) {
26
- uint256 fee = _feeOnTotal(assets, _entryFeeBasisPoints());
27
- return super.previewDeposit(assets - fee);
28
- }
29
-
30
- /// @dev Preview adding an entry fee on mint. See {IERC4626-previewMint}.
31
- function previewMint(uint256 shares) public view virtual override returns (uint256) {
32
- uint256 assets = super.previewMint(shares);
33
- return assets + _feeOnRaw(assets, _entryFeeBasisPoints());
34
- }
35
-
36
- /// @dev Preview adding an exit fee on withdraw. See {IERC4626-previewWithdraw}.
37
- function previewWithdraw(uint256 assets) public view virtual override returns (uint256) {
38
- uint256 fee = _feeOnRaw(assets, _exitFeeBasisPoints());
39
- return super.previewWithdraw(assets + fee);
40
- }
41
-
42
- /// @dev Preview taking an exit fee on redeem. See {IERC4626-previewRedeem}.
43
- function previewRedeem(uint256 shares) public view virtual override returns (uint256) {
44
- uint256 assets = super.previewRedeem(shares);
45
- return assets - _feeOnTotal(assets, _exitFeeBasisPoints());
46
- }
47
-
48
- /// @dev Send entry fee to {_entryFeeRecipient}. See {IERC4626-_deposit}.
49
- function _deposit(address caller, address receiver, uint256 assets, uint256 shares) internal virtual override {
50
- uint256 fee = _feeOnTotal(assets, _entryFeeBasisPoints());
51
- address recipient = _entryFeeRecipient();
52
-
53
- super._deposit(caller, receiver, assets, shares);
54
-
55
- if (fee > 0 && recipient != address(this)) {
56
- SafeERC20.safeTransfer(IERC20(asset()), recipient, fee);
57
- }
58
- }
59
-
60
- /// @dev Send exit fee to {_exitFeeRecipient}. See {IERC4626-_deposit}.
61
- function _withdraw(
62
- address caller,
63
- address receiver,
64
- address owner,
65
- uint256 assets,
66
- uint256 shares
67
- ) internal virtual override {
68
- uint256 fee = _feeOnRaw(assets, _exitFeeBasisPoints());
69
- address recipient = _exitFeeRecipient();
70
-
71
- super._withdraw(caller, receiver, owner, assets, shares);
72
-
73
- if (fee > 0 && recipient != address(this)) {
74
- SafeERC20.safeTransfer(IERC20(asset()), recipient, fee);
75
- }
76
- }
77
-
78
- // === Fee configuration ===
79
-
80
- function _entryFeeBasisPoints() internal view virtual returns (uint256) {
81
- return 0; // replace with e.g. 100 for 1%
82
- }
83
-
84
- function _exitFeeBasisPoints() internal view virtual returns (uint256) {
85
- return 0; // replace with e.g. 100 for 1%
86
- }
87
-
88
- function _entryFeeRecipient() internal view virtual returns (address) {
89
- return address(0); // replace with e.g. a treasury address
90
- }
91
-
92
- function _exitFeeRecipient() internal view virtual returns (address) {
93
- return address(0); // replace with e.g. a treasury address
94
- }
95
-
96
- // === Fee operations ===
97
-
98
- /// @dev Calculates the fees that should be added to an amount `assets` that does not already include fees.
99
- /// Used in {IERC4626-mint} and {IERC4626-withdraw} operations.
100
- function _feeOnRaw(uint256 assets, uint256 feeBasisPoints) private pure returns (uint256) {
101
- return assets.mulDiv(feeBasisPoints, _BASIS_POINT_SCALE, Math.Rounding.Ceil);
102
- }
103
-
104
- /// @dev Calculates the fee part of an amount `assets` that already includes fees.
105
- /// Used in {IERC4626-deposit} and {IERC4626-redeem} operations.
106
- function _feeOnTotal(uint256 assets, uint256 feeBasisPoints) private pure returns (uint256) {
107
- return assets.mulDiv(feeBasisPoints, feeBasisPoints + _BASIS_POINT_SCALE, Math.Rounding.Ceil);
108
- }
109
- }
@@ -1,9 +0,0 @@
1
- // contracts/MyNFT.sol
2
- // SPDX-License-Identifier: MIT
3
- pragma solidity ^0.8.20;
4
-
5
- import {ERC721} from "../../token/ERC721/ERC721.sol";
6
-
7
- contract MyNFT is ERC721 {
8
- constructor() ERC721("MyNFT", "MNFT") {}
9
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessControl} from "../../../access/AccessControl.sol";
5
- import {ERC20} from "../../../token/ERC20/ERC20.sol";
6
-
7
- contract AccessControlERC20MintBase is ERC20, AccessControl {
8
- // Create a new role identifier for the minter role
9
- bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
10
-
11
- error CallerNotMinter(address caller);
12
-
13
- constructor(address minter) ERC20("MyToken", "TKN") {
14
- // Grant the minter role to a specified account
15
- _grantRole(MINTER_ROLE, minter);
16
- }
17
-
18
- function mint(address to, uint256 amount) public {
19
- // Check that the calling account has the minter role
20
- if (!hasRole(MINTER_ROLE, msg.sender)) {
21
- revert CallerNotMinter(msg.sender);
22
- }
23
- _mint(to, amount);
24
- }
25
- }
@@ -1,24 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessControl} from "../../../access/AccessControl.sol";
5
- import {ERC20} from "../../../token/ERC20/ERC20.sol";
6
-
7
- contract AccessControlERC20MintMissing is ERC20, AccessControl {
8
- bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
9
- bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE");
10
-
11
- constructor() ERC20("MyToken", "TKN") {
12
- // Grant the contract deployer the default admin role: it will be able
13
- // to grant and revoke any roles
14
- _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
15
- }
16
-
17
- function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) {
18
- _mint(to, amount);
19
- }
20
-
21
- function burn(address from, uint256 amount) public onlyRole(BURNER_ROLE) {
22
- _burn(from, amount);
23
- }
24
- }
@@ -1,23 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessControl} from "../../../access/AccessControl.sol";
5
- import {ERC20} from "../../../token/ERC20/ERC20.sol";
6
-
7
- contract AccessControlERC20Mint is ERC20, AccessControl {
8
- bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
9
- bytes32 public constant BURNER_ROLE = keccak256("BURNER_ROLE");
10
-
11
- constructor(address minter, address burner) ERC20("MyToken", "TKN") {
12
- _grantRole(MINTER_ROLE, minter);
13
- _grantRole(BURNER_ROLE, burner);
14
- }
15
-
16
- function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) {
17
- _mint(to, amount);
18
- }
19
-
20
- function burn(address from, uint256 amount) public onlyRole(BURNER_ROLE) {
21
- _burn(from, amount);
22
- }
23
- }
@@ -1,14 +0,0 @@
1
- // contracts/AccessControlModified.sol
2
- // SPDX-License-Identifier: MIT
3
- pragma solidity ^0.8.20;
4
-
5
- import {AccessControl} from "../../../access/AccessControl.sol";
6
-
7
- contract AccessControlModified is AccessControl {
8
- error AccessControlNonRevocable();
9
-
10
- // Override the revokeRole function
11
- function revokeRole(bytes32, address) public pure override {
12
- revert AccessControlNonRevocable();
13
- }
14
- }
@@ -1,16 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManaged} from "../../../access/manager/AccessManaged.sol";
5
- import {ERC20} from "../../../token/ERC20/ERC20.sol";
6
-
7
- contract AccessManagedERC20Mint is ERC20, AccessManaged {
8
- constructor(address manager) ERC20("MyToken", "TKN") AccessManaged(manager) {}
9
-
10
- // Minting is restricted according to the manager rules for this function.
11
- // The function is identified by its selector: 0x40c10f19.
12
- // Calculated with bytes4(keccak256('mint(address,uint256)'))
13
- function mint(address to, uint256 amount) public restricted {
14
- _mint(to, amount);
15
- }
16
- }
@@ -1,17 +0,0 @@
1
- // SPDX-License-Identifier: MIT
2
-
3
- pragma solidity ^0.8.20;
4
-
5
- import {Ownable} from "../../../access/Ownable.sol";
6
-
7
- contract MyContract is Ownable {
8
- constructor(address initialOwner) Ownable(initialOwner) {}
9
-
10
- function normalThing() public {
11
- // anyone can call this normalThing()
12
- }
13
-
14
- function specialThing() public onlyOwner {
15
- // only the owner can call specialThing()!
16
- }
17
- }
@@ -1,20 +0,0 @@
1
- // contracts/MyAccountERC7702.sol
2
- // SPDX-License-Identifier: MIT
3
- pragma solidity ^0.8.20;
4
-
5
- import {Account} from "../../../account/Account.sol";
6
- import {ERC721Holder} from "../../../token/ERC721/utils/ERC721Holder.sol";
7
- import {ERC1155Holder} from "../../../token/ERC1155/utils/ERC1155Holder.sol";
8
- import {ERC7821} from "../../../account/extensions/draft-ERC7821.sol";
9
- import {SignerERC7702} from "../../../utils/cryptography/signers/SignerERC7702.sol";
10
-
11
- contract MyAccountERC7702 is Account, SignerERC7702, ERC7821, ERC721Holder, ERC1155Holder {
12
- /// @dev Allows the entry point as an authorized executor.
13
- function _erc7821AuthorizedExecutor(
14
- address caller,
15
- bytes32 mode,
16
- bytes calldata executionData
17
- ) internal view virtual override returns (bool) {
18
- return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);
19
- }
20
- }
@@ -1,37 +0,0 @@
1
- // contracts/MyFactoryAccount.sol
2
- // SPDX-License-Identifier: MIT
3
-
4
- pragma solidity ^0.8.20;
5
-
6
- import {Clones} from "../../../proxy/Clones.sol";
7
- import {Address} from "../../../utils/Address.sol";
8
-
9
- /**
10
- * @dev A factory contract to create accounts on demand.
11
- */
12
- contract MyFactoryAccount {
13
- using Clones for address;
14
- using Address for address;
15
-
16
- address private immutable _impl;
17
-
18
- constructor(address impl_) {
19
- require(impl_.code.length > 0);
20
- _impl = impl_;
21
- }
22
-
23
- /// @dev Predict the address of the account
24
- function predictAddress(bytes calldata callData) public view returns (address) {
25
- return _impl.predictDeterministicAddress(keccak256(callData), address(this));
26
- }
27
-
28
- /// @dev Create clone accounts on demand
29
- function cloneAndInitialize(bytes calldata callData) public returns (address) {
30
- address predicted = predictAddress(callData);
31
- if (predicted.code.length == 0) {
32
- _impl.cloneDeterministic(keccak256(callData));
33
- predicted.functionCall(callData);
34
- }
35
- return predicted;
36
- }
37
- }