@etherisc/gif-next 0.0.2-b9e9dc3-713 → 0.0.2-bad23b9-926

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 (583) hide show
  1. package/README.md +76 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -246
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +384 -155
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2918
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +742 -298
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +591 -241
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -76
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +297 -358
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +233 -200
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +259 -284
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +132 -166
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +521 -59
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +438 -200
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +828 -311
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -352
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +339 -134
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +225 -167
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  177. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +97 -78
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +193 -180
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +126 -0
  278. package/contracts/instance/IInstance.sol +70 -16
  279. package/contracts/instance/IInstanceService.sol +72 -8
  280. package/contracts/instance/Instance.sol +158 -358
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +175 -65
  284. package/contracts/instance/InstanceService.sol +318 -58
  285. package/contracts/instance/InstanceServiceManager.sol +12 -24
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/base/Cloneable.sol +51 -0
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/base/ObjectManager.sol +82 -0
  291. package/contracts/instance/module/IAccess.sol +29 -21
  292. package/contracts/instance/module/IBundle.sol +8 -7
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +32 -0
  300. package/contracts/oracle/IOracleService.sol +65 -0
  301. package/contracts/oracle/Oracle.sol +145 -0
  302. package/contracts/oracle/OracleService.sol +277 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +99 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +15 -0
  330. package/contracts/registry/IRegistry.sol +79 -12
  331. package/contracts/registry/IRegistryService.sol +54 -20
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +397 -244
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +124 -298
  336. package/contracts/registry/RegistryServiceManager.sol +26 -32
  337. package/contracts/registry/ReleaseManager.sol +600 -0
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +315 -0
  340. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +277 -223
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  349. package/contracts/shared/ERC165.sol +15 -9
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +4 -6
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +18 -0
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +60 -89
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +26 -40
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +77 -0
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/type/NftIdSet.sol +62 -0
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +38 -4
  402. package/contracts/{types → type}/Timestamp.sol +23 -14
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +6 -2
  405. package/package.json +5 -5
  406. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  409. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  410. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  411. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  412. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  413. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  414. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  415. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  416. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  417. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  418. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  419. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  420. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  421. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  423. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  425. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  427. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  429. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  431. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  433. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  435. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  437. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  441. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  444. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  446. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  452. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  454. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  456. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  458. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  460. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  461. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  462. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  463. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  466. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  469. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  476. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  477. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  481. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  484. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  486. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  487. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  488. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  489. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  490. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  491. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  492. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  493. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  494. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  495. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  496. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  497. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  498. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  499. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  500. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  501. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  502. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  503. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  504. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  505. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  507. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  508. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  509. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  512. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  513. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  515. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  516. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  517. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  518. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  519. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  521. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  522. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  523. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  524. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  528. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  529. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  533. package/contracts/components/BaseComponent.sol +0 -86
  534. package/contracts/components/Distribution.sol +0 -166
  535. package/contracts/components/IBaseComponent.sol +0 -24
  536. package/contracts/components/IDistributionComponent.sol +0 -43
  537. package/contracts/components/IPoolComponent.sol +0 -62
  538. package/contracts/components/IProductComponent.sol +0 -35
  539. package/contracts/components/Pool.sol +0 -259
  540. package/contracts/components/Product.sol +0 -297
  541. package/contracts/experiment/cloning/Cloner.sol +0 -47
  542. package/contracts/experiment/errors/Require.sol +0 -38
  543. package/contracts/experiment/errors/Revert.sol +0 -44
  544. package/contracts/experiment/inheritance/A.sol +0 -53
  545. package/contracts/experiment/inheritance/B.sol +0 -28
  546. package/contracts/experiment/inheritance/C.sol +0 -34
  547. package/contracts/experiment/inheritance/IA.sol +0 -13
  548. package/contracts/experiment/inheritance/IB.sol +0 -10
  549. package/contracts/experiment/inheritance/IC.sol +0 -12
  550. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  551. package/contracts/experiment/statemachine/ISM.sol +0 -25
  552. package/contracts/experiment/statemachine/SM.sol +0 -57
  553. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  554. package/contracts/experiment/types/TypeA.sol +0 -47
  555. package/contracts/experiment/types/TypeB.sol +0 -29
  556. package/contracts/instance/AccessManagedSimple.sol +0 -114
  557. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  558. package/contracts/instance/InstanceAccessManager.sol +0 -288
  559. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  560. package/contracts/instance/base/IInstanceBase.sol +0 -23
  561. package/contracts/instance/base/IService.sol +0 -15
  562. package/contracts/instance/base/KeyValueStore.sol +0 -172
  563. package/contracts/instance/base/ServiceBase.sol +0 -44
  564. package/contracts/instance/module/ISetup.sol +0 -43
  565. package/contracts/instance/module/ITreasury.sol +0 -23
  566. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  567. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  568. package/contracts/instance/service/IDistributionService.sol +0 -12
  569. package/contracts/instance/service/IPoolService.sol +0 -37
  570. package/contracts/instance/service/IProductService.sol +0 -107
  571. package/contracts/shared/ContractDeployerLib.sol +0 -72
  572. package/contracts/test/TestFee.sol +0 -25
  573. package/contracts/test/TestRegisterable.sol +0 -18
  574. package/contracts/test/TestRoleId.sol +0 -14
  575. package/contracts/test/TestService.sol +0 -26
  576. package/contracts/test/TestToken.sol +0 -26
  577. package/contracts/test/TestVersion.sol +0 -44
  578. package/contracts/test/TestVersionable.sol +0 -17
  579. package/contracts/types/ChainId.sol +0 -38
  580. package/contracts/types/NftIdSet.sol +0 -60
  581. package/contracts/types/NumberId.sol +0 -52
  582. package/contracts/types/RoleId.sol +0 -82
  583. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,19 +1,29 @@
1
- // SPDX-License-Identifier: Apache-2.0
1
+ // SPDX-License-Identifier: MIT
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Context} from "@openzeppelin/contracts/utils/Context.sol";
4
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
5
5
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+ import {Address} from "@openzeppelin/contracts/utils/Address.sol";
7
+ import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
8
+ import {MulticallUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol";
9
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
10
+ import {Time} from "@openzeppelin/contracts/utils/types/Time.sol";
11
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
12
+
13
+ /*
14
+ * copy of @openzeppelin/contract-upgradeable/access/manager/AccessManagerUpgradeable.sol" except:
15
+ 1. abstract
16
+ 2. renamed to AccessManagerCustom
17
+ 2. _getAdminRestrictions() private view -> internal virtual view
18
+ 3. _checkSelector() private pure -> internal pure
19
+ */
20
+ abstract contract AccessManagerCustom is Initializable, ContextUpgradeable, MulticallUpgradeable, IAccessManager {
21
+ using Time for *;
6
22
 
7
- import {IAccessManagerSimple} from "./IAccessManagerSimple.sol";
8
-
9
- type Delay is uint112;
10
-
11
- // @dev as oz5 AccessManager but without multicall and without timing logic
12
- contract AccessManagerSimple is Context, IAccessManagerSimple {
13
23
  // Structure that stores the details for a target contract.
14
24
  struct TargetConfig {
15
25
  mapping(bytes4 selector => uint64 roleId) allowedRoles;
16
- uint112 adminDelay;
26
+ Time.Delay adminDelay;
17
27
  bool closed;
18
28
  }
19
29
 
@@ -23,7 +33,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
23
33
  // If this is either 0 or in the future, then the role permission is not available.
24
34
  uint48 since;
25
35
  // Delay for execution. Only applies to restricted() / execute() calls.
26
- Delay delay;
36
+ Time.Delay delay;
27
37
  }
28
38
 
29
39
  // Structure that stores the details of a role.
@@ -35,7 +45,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
35
45
  // Guardian who can cancel operations targeting functions that need this role.
36
46
  uint64 guardian;
37
47
  // Delay in which the role takes effect after being granted.
38
- Delay grantDelay;
48
+ Time.Delay grantDelay;
39
49
  }
40
50
 
41
51
  // Structure that stores the details for a scheduled operation. This structure fits into a single slot.
@@ -49,13 +59,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
49
59
  uint64 public constant ADMIN_ROLE = type(uint64).min; // 0
50
60
  uint64 public constant PUBLIC_ROLE = type(uint64).max; // 2**64-1
51
61
 
52
- mapping(address target => TargetConfig mode) private _targets;
53
- mapping(uint64 roleId => Role) private _roles;
54
- mapping(bytes32 operationId => Schedule) private _schedules;
62
+ /// @custom:storage-location erc7201:openzeppelin.storage.AccessManagerCustom
63
+ struct AccessManagerStorage {
64
+ mapping(address target => TargetConfig mode) _targets;
65
+ mapping(uint64 roleId => Role) _roles;
66
+ mapping(bytes32 operationId => Schedule) _schedules;
67
+
68
+ // Used to identify operations that are currently being executed via {execute}.
69
+ // This should be transient storage when supported by the EVM.
70
+ bytes32 _executionId;
71
+ }
72
+
73
+ // TODO compute address
74
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerCustom")) - 1)) & ~bytes32(uint256(0xff))
75
+ bytes32 private constant AccessManagerCustomStorageLocation = 0x77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf00;
55
76
 
56
- // Used to identify operations that are currently being executed via {execute}.
57
- // This should be transient storage when supported by the EVM.
58
- bytes32 private _executionId;
77
+ function _getAccessManagerCustomStorage() private pure returns (AccessManagerStorage storage $) {
78
+ assembly {
79
+ $.slot := AccessManagerCustomStorageLocation
80
+ }
81
+ }
59
82
 
60
83
  /**
61
84
  * @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
@@ -66,7 +89,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
66
89
  _;
67
90
  }
68
91
 
69
- constructor(address initialAdmin) {
92
+ function __AccessManagerCustom_init(address initialAdmin) internal onlyInitializing {
93
+ __AccessManagerCustom_init_unchained(initialAdmin);
94
+ }
95
+
96
+ function __AccessManagerCustom_init_unchained(address initialAdmin) internal onlyInitializing {
70
97
  if (initialAdmin == address(0)) {
71
98
  revert AccessManagerInvalidInitialAdmin(address(0));
72
99
  }
@@ -76,7 +103,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
76
103
  }
77
104
 
78
105
  // =================================================== GETTERS ====================================================
79
- /// @inheritdoc IAccessManagerSimple
106
+ /// @inheritdoc IAccessManager
80
107
  function canCall(
81
108
  address caller,
82
109
  address target,
@@ -84,10 +111,10 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
84
111
  ) public view virtual returns (bool immediate, uint32 delay) {
85
112
  if (isTargetClosed(target)) {
86
113
  return (false, 0);
87
- // } else if (caller == address(this)) {
88
- // // Caller is AccessManager, this means the call was sent through {execute} and it already checked
89
- // // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
90
- // return (_isExecuting(target, selector), 0);
114
+ } else if (caller == address(this)) {
115
+ // Caller is AccessManager, this means the call was sent through {execute} and it already checked
116
+ // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
117
+ return (_isExecuting(target, selector), 0);
91
118
  } else {
92
119
  uint64 roleId = getTargetFunctionRole(target, selector);
93
120
  (bool isMember, uint32 currentDelay) = hasRole(roleId, caller);
@@ -95,60 +122,67 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
95
122
  }
96
123
  }
97
124
 
98
- /// @inheritdoc IAccessManagerSimple
125
+ /// @inheritdoc IAccessManager
99
126
  function expiration() public view virtual returns (uint32) {
100
127
  return 1 weeks;
101
128
  }
102
129
 
103
- /// @inheritdoc IAccessManagerSimple
130
+ /// @inheritdoc IAccessManager
104
131
  function minSetback() public view virtual returns (uint32) {
105
132
  return 5 days;
106
133
  }
107
134
 
108
- /// @inheritdoc IAccessManagerSimple
135
+ /// @inheritdoc IAccessManager
109
136
  function isTargetClosed(address target) public view virtual returns (bool) {
110
- return _targets[target].closed;
137
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
138
+ return $._targets[target].closed;
111
139
  }
112
140
 
113
- /// @inheritdoc IAccessManagerSimple
141
+ /// @inheritdoc IAccessManager
114
142
  function getTargetFunctionRole(address target, bytes4 selector) public view virtual returns (uint64) {
115
- return _targets[target].allowedRoles[selector];
143
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
144
+ return $._targets[target].allowedRoles[selector];
116
145
  }
117
146
 
118
- /// @inheritdoc IAccessManagerSimple
147
+ /// @inheritdoc IAccessManager
119
148
  function getTargetAdminDelay(address target) public view virtual returns (uint32) {
120
- // return _targets[target].adminDelay.get();
149
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
150
+ return $._targets[target].adminDelay.get();
121
151
  }
122
152
 
123
- /// @inheritdoc IAccessManagerSimple
153
+ /// @inheritdoc IAccessManager
124
154
  function getRoleAdmin(uint64 roleId) public view virtual returns (uint64) {
125
- return _roles[roleId].admin;
155
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
156
+ return $._roles[roleId].admin;
126
157
  }
127
158
 
128
- /// @inheritdoc IAccessManagerSimple
159
+ /// @inheritdoc IAccessManager
129
160
  function getRoleGuardian(uint64 roleId) public view virtual returns (uint64) {
130
- return _roles[roleId].guardian;
161
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
162
+ return $._roles[roleId].guardian;
131
163
  }
132
164
 
133
- /// @inheritdoc IAccessManagerSimple
165
+ /// @inheritdoc IAccessManager
134
166
  function getRoleGrantDelay(uint64 roleId) public view virtual returns (uint32) {
135
- // return _roles[roleId].grantDelay.get();
167
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
168
+ return $._roles[roleId].grantDelay.get();
136
169
  }
137
170
 
138
- /// @inheritdoc IAccessManagerSimple
171
+ /// @inheritdoc IAccessManager
139
172
  function getAccess(
140
173
  uint64 roleId,
141
174
  address account
142
175
  ) public view virtual returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect) {
143
- Access storage access = _roles[roleId].members[account];
176
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
177
+ Access storage access = $._roles[roleId].members[account];
144
178
 
145
179
  since = access.since;
146
- // (currentDelay, pendingDelay, effect) = access.delay.getFull();
180
+ (currentDelay, pendingDelay, effect) = access.delay.getFull();
147
181
 
148
182
  return (since, currentDelay, pendingDelay, effect);
149
183
  }
150
184
 
151
- /// @inheritdoc IAccessManagerSimple
185
+ /// @inheritdoc IAccessManager
152
186
  function hasRole(
153
187
  uint64 roleId,
154
188
  address account
@@ -157,13 +191,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
157
191
  return (true, 0);
158
192
  } else {
159
193
  (uint48 hasRoleSince, uint32 currentDelay, , ) = getAccess(roleId, account);
160
- // return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
161
- return (hasRoleSince != 0 && hasRoleSince <= uint48(block.timestamp), currentDelay);
194
+ return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
162
195
  }
163
196
  }
164
197
 
165
198
  // =============================================== ROLE MANAGEMENT ===============================================
166
- /// @inheritdoc IAccessManagerSimple
199
+ /// @inheritdoc IAccessManager
167
200
  function labelRole(uint64 roleId, string calldata label) public virtual onlyAuthorized {
168
201
  if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
169
202
  revert AccessManagerLockedRole(roleId);
@@ -171,17 +204,17 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
171
204
  emit RoleLabel(roleId, label);
172
205
  }
173
206
 
174
- /// @inheritdoc IAccessManagerSimple
207
+ /// @inheritdoc IAccessManager
175
208
  function grantRole(uint64 roleId, address account, uint32 executionDelay) public virtual onlyAuthorized {
176
209
  _grantRole(roleId, account, getRoleGrantDelay(roleId), executionDelay);
177
210
  }
178
211
 
179
- /// @inheritdoc IAccessManagerSimple
212
+ /// @inheritdoc IAccessManager
180
213
  function revokeRole(uint64 roleId, address account) public virtual onlyAuthorized {
181
214
  _revokeRole(roleId, account);
182
215
  }
183
216
 
184
- /// @inheritdoc IAccessManagerSimple
217
+ /// @inheritdoc IAccessManager
185
218
  function renounceRole(uint64 roleId, address callerConfirmation) public virtual {
186
219
  if (callerConfirmation != _msgSender()) {
187
220
  revert AccessManagerBadConfirmation();
@@ -189,19 +222,19 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
189
222
  _revokeRole(roleId, callerConfirmation);
190
223
  }
191
224
 
192
- /// @inheritdoc IAccessManagerSimple
225
+ /// @inheritdoc IAccessManager
193
226
  function setRoleAdmin(uint64 roleId, uint64 admin) public virtual onlyAuthorized {
194
227
  _setRoleAdmin(roleId, admin);
195
228
  }
196
229
 
197
- /// @inheritdoc IAccessManagerSimple
230
+ /// @inheritdoc IAccessManager
198
231
  function setRoleGuardian(uint64 roleId, uint64 guardian) public virtual onlyAuthorized {
199
232
  _setRoleGuardian(roleId, guardian);
200
233
  }
201
234
 
202
- /// @inheritdoc IAccessManagerSimple
235
+ /// @inheritdoc IAccessManager
203
236
  function setGrantDelay(uint64 roleId, uint32 newDelay) public virtual onlyAuthorized {
204
- // _setGrantDelay(roleId, newDelay);
237
+ _setGrantDelay(roleId, newDelay);
205
238
  }
206
239
 
207
240
  /**
@@ -215,25 +248,25 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
215
248
  uint32 grantDelay,
216
249
  uint32 executionDelay
217
250
  ) internal virtual returns (bool) {
251
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
218
252
  if (roleId == PUBLIC_ROLE) {
219
253
  revert AccessManagerLockedRole(roleId);
220
254
  }
221
255
 
222
- bool newMember = _roles[roleId].members[account].since == 0;
256
+ bool newMember = $._roles[roleId].members[account].since == 0;
223
257
  uint48 since;
224
258
 
225
259
  if (newMember) {
226
- since = uint48(block.timestamp); // Time.timestamp() + grantDelay;
227
- _roles[roleId].members[account] = Access({since: since, delay: Delay.wrap(0)});
228
- }
229
- // else {
230
- // // No setback here. Value can be reset by doing revoke + grant, effectively allowing the admin to perform
231
- // // any change to the execution delay within the duration of the role admin delay.
232
- // (_roles[roleId].members[account].delay, since) = _roles[roleId].members[account].delay.withUpdate(
233
- // executionDelay,
234
- // 0
235
- // );
236
- // }
260
+ since = Time.timestamp() + grantDelay;
261
+ $._roles[roleId].members[account] = Access({since: since, delay: executionDelay.toDelay()});
262
+ } else {
263
+ // No setback here. Value can be reset by doing revoke + grant, effectively allowing the admin to perform
264
+ // any change to the execution delay within the duration of the role admin delay.
265
+ ($._roles[roleId].members[account].delay, since) = $._roles[roleId].members[account].delay.withUpdate(
266
+ executionDelay,
267
+ 0
268
+ );
269
+ }
237
270
 
238
271
  emit RoleGranted(roleId, account, executionDelay, since, newMember);
239
272
  return newMember;
@@ -246,15 +279,16 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
246
279
  * Emits a {RoleRevoked} event if the account had the role.
247
280
  */
248
281
  function _revokeRole(uint64 roleId, address account) internal virtual returns (bool) {
282
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
249
283
  if (roleId == PUBLIC_ROLE) {
250
284
  revert AccessManagerLockedRole(roleId);
251
285
  }
252
286
 
253
- if (_roles[roleId].members[account].since == 0) {
287
+ if ($._roles[roleId].members[account].since == 0) {
254
288
  return false;
255
289
  }
256
290
 
257
- delete _roles[roleId].members[account];
291
+ delete $._roles[roleId].members[account];
258
292
 
259
293
  emit RoleRevoked(roleId, account);
260
294
  return true;
@@ -269,11 +303,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
269
303
  * anyone to set grant or revoke such role.
270
304
  */
271
305
  function _setRoleAdmin(uint64 roleId, uint64 admin) internal virtual {
306
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
272
307
  if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
273
308
  revert AccessManagerLockedRole(roleId);
274
309
  }
275
310
 
276
- _roles[roleId].admin = admin;
311
+ $._roles[roleId].admin = admin;
277
312
 
278
313
  emit RoleAdminChanged(roleId, admin);
279
314
  }
@@ -287,11 +322,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
287
322
  * anyone to cancel any scheduled operation for such role.
288
323
  */
289
324
  function _setRoleGuardian(uint64 roleId, uint64 guardian) internal virtual {
325
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
290
326
  if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
291
327
  revert AccessManagerLockedRole(roleId);
292
328
  }
293
329
 
294
- _roles[roleId].guardian = guardian;
330
+ $._roles[roleId].guardian = guardian;
295
331
 
296
332
  emit RoleGuardianChanged(roleId, guardian);
297
333
  }
@@ -301,19 +337,20 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
301
337
  *
302
338
  * Emits a {RoleGrantDelayChanged} event.
303
339
  */
304
- // function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
305
- // if (roleId == PUBLIC_ROLE) {
306
- // revert AccessManagerLockedRole(roleId);
307
- // }
340
+ function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
341
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
342
+ if (roleId == PUBLIC_ROLE) {
343
+ revert AccessManagerLockedRole(roleId);
344
+ }
308
345
 
309
- // uint48 effect;
310
- // (_roles[roleId].grantDelay, effect) = _roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
346
+ uint48 effect;
347
+ ($._roles[roleId].grantDelay, effect) = $._roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
311
348
 
312
- // emit RoleGrantDelayChanged(roleId, newDelay, effect);
313
- // }
349
+ emit RoleGrantDelayChanged(roleId, newDelay, effect);
350
+ }
314
351
 
315
352
  // ============================================= FUNCTION MANAGEMENT ==============================================
316
- /// @inheritdoc IAccessManagerSimple
353
+ /// @inheritdoc IAccessManager
317
354
  function setTargetFunctionRole(
318
355
  address target,
319
356
  bytes4[] calldata selectors,
@@ -330,13 +367,14 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
330
367
  * Emits a {TargetFunctionRoleUpdated} event.
331
368
  */
332
369
  function _setTargetFunctionRole(address target, bytes4 selector, uint64 roleId) internal virtual {
333
- _targets[target].allowedRoles[selector] = roleId;
370
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
371
+ $._targets[target].allowedRoles[selector] = roleId;
334
372
  emit TargetFunctionRoleUpdated(target, selector, roleId);
335
373
  }
336
374
 
337
- /// @inheritdoc IAccessManagerSimple
375
+ /// @inheritdoc IAccessManager
338
376
  function setTargetAdminDelay(address target, uint32 newDelay) public virtual onlyAuthorized {
339
- // _setTargetAdminDelay(target, newDelay);
377
+ _setTargetAdminDelay(target, newDelay);
340
378
  }
341
379
 
342
380
  /**
@@ -344,15 +382,15 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
344
382
  *
345
383
  * Emits a {TargetAdminDelayUpdated} event.
346
384
  */
347
- // function _setTargetAdminDelay(address target, uint32 newDelay) internal virtual {
348
- // uint48 effect;
349
- // (_targets[target].adminDelay, effect) = _targets[target].adminDelay.withUpdate(newDelay, minSetback());
350
-
351
- // emit TargetAdminDelayUpdated(target, newDelay, effect);
352
- // }
385
+ function _setTargetAdminDelay(address target, uint32 newDelay) internal virtual {
386
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
387
+ uint48 effect;
388
+ ($._targets[target].adminDelay, effect) = $._targets[target].adminDelay.withUpdate(newDelay, minSetback());
389
+ emit TargetAdminDelayUpdated(target, newDelay, effect);
390
+ }
353
391
 
354
392
  // =============================================== MODE MANAGEMENT ================================================
355
- /// @inheritdoc IAccessManagerSimple
393
+ /// @inheritdoc IAccessManager
356
394
  function setTargetClosed(address target, bool closed) public virtual onlyAuthorized {
357
395
  _setTargetClosed(target, closed);
358
396
  }
@@ -363,173 +401,181 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
363
401
  * Emits a {TargetClosed} event.
364
402
  */
365
403
  function _setTargetClosed(address target, bool closed) internal virtual {
404
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
366
405
  if (target == address(this)) {
367
406
  revert AccessManagerLockedAccount(target);
368
407
  }
369
- _targets[target].closed = closed;
408
+ $._targets[target].closed = closed;
370
409
  emit TargetClosed(target, closed);
371
410
  }
372
411
 
373
412
  // ============================================== DELAYED OPERATIONS ==============================================
374
- /// @inheritdoc IAccessManagerSimple
413
+ /// @inheritdoc IAccessManager
375
414
  function getSchedule(bytes32 id) public view virtual returns (uint48) {
376
- // uint48 timepoint = _schedules[id].timepoint;
377
- // return _isExpired(timepoint) ? 0 : timepoint;
415
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
416
+ uint48 timepoint = $._schedules[id].timepoint;
417
+ return _isExpired(timepoint) ? 0 : timepoint;
378
418
  }
379
419
 
380
- /// @inheritdoc IAccessManagerSimple
420
+ /// @inheritdoc IAccessManager
381
421
  function getNonce(bytes32 id) public view virtual returns (uint32) {
382
- // return _schedules[id].nonce;
422
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
423
+ return $._schedules[id].nonce;
383
424
  }
384
425
 
385
- /// @inheritdoc IAccessManagerSimple
426
+ /// @inheritdoc IAccessManager
386
427
  function schedule(
387
428
  address target,
388
429
  bytes calldata data,
389
430
  uint48 when
390
431
  ) public virtual returns (bytes32 operationId, uint32 nonce) {
391
- // address caller = _msgSender();
432
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
433
+ address caller = _msgSender();
392
434
 
393
- // // Fetch restrictions that apply to the caller on the targeted function
394
- // (, uint32 setback) = _canCallExtended(caller, target, data);
435
+ // Fetch restrictions that apply to the caller on the targeted function
436
+ (, uint32 setback) = _canCallExtended(caller, target, data);
395
437
 
396
- // uint48 minWhen = Time.timestamp() + setback;
438
+ uint48 minWhen = Time.timestamp() + setback;
397
439
 
398
- // // if call with delay is not authorized, or if requested timing is too soon
399
- // if (setback == 0 || (when > 0 && when < minWhen)) {
400
- // revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
401
- // }
440
+ // if call with delay is not authorized, or if requested timing is too soon
441
+ if (setback == 0 || (when > 0 && when < minWhen)) {
442
+ revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
443
+ }
402
444
 
403
- // // Reuse variable due to stack too deep
404
- // when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
445
+ // Reuse variable due to stack too deep
446
+ when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
405
447
 
406
- // // If caller is authorised, schedule operation
407
- // operationId = hashOperation(caller, target, data);
448
+ // If caller is authorised, schedule operation
449
+ operationId = hashOperation(caller, target, data);
408
450
 
409
- // _checkNotScheduled(operationId);
451
+ _checkNotScheduled(operationId);
410
452
 
411
- // unchecked {
412
- // // It's not feasible to overflow the nonce in less than 1000 years
413
- // nonce = _schedules[operationId].nonce + 1;
414
- // }
415
- // _schedules[operationId].timepoint = when;
416
- // _schedules[operationId].nonce = nonce;
417
- // emit OperationScheduled(operationId, nonce, when, caller, target, data);
453
+ unchecked {
454
+ // It's not feasible to overflow the nonce in less than 1000 years
455
+ nonce = $._schedules[operationId].nonce + 1;
456
+ }
457
+ $._schedules[operationId].timepoint = when;
458
+ $._schedules[operationId].nonce = nonce;
459
+ emit OperationScheduled(operationId, nonce, when, caller, target, data);
418
460
 
419
- // // Using named return values because otherwise we get stack too deep
461
+ // Using named return values because otherwise we get stack too deep
420
462
  }
421
463
 
422
464
  /**
423
465
  * @dev Reverts if the operation is currently scheduled and has not expired.
424
466
  * (Note: This function was introduced due to stack too deep errors in schedule.)
425
467
  */
426
- // function _checkNotScheduled(bytes32 operationId) private view {
427
- // uint48 prevTimepoint = _schedules[operationId].timepoint;
428
- // if (prevTimepoint != 0 && !_isExpired(prevTimepoint)) {
429
- // revert AccessManagerAlreadyScheduled(operationId);
430
- // }
431
- // }
432
-
433
- /// @inheritdoc IAccessManagerSimple
468
+ function _checkNotScheduled(bytes32 operationId) private view {
469
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
470
+ uint48 prevTimepoint = $._schedules[operationId].timepoint;
471
+ if (prevTimepoint != 0 && !_isExpired(prevTimepoint)) {
472
+ revert AccessManagerAlreadyScheduled(operationId);
473
+ }
474
+ }
475
+
476
+ /// @inheritdoc IAccessManager
434
477
  // Reentrancy is not an issue because permissions are checked on msg.sender. Additionally,
435
478
  // _consumeScheduledOp guarantees a scheduled operation is only executed once.
436
479
  // slither-disable-next-line reentrancy-no-eth
437
480
  function execute(address target, bytes calldata data) public payable virtual returns (uint32) {
438
- // address caller = _msgSender();
481
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
482
+ address caller = _msgSender();
439
483
 
440
- // // Fetch restrictions that apply to the caller on the targeted function
441
- // (bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
484
+ // Fetch restrictions that apply to the caller on the targeted function
485
+ (bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
442
486
 
443
- // // If caller is not authorised, revert
444
- // if (!immediate && setback == 0) {
445
- // revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
446
- // }
487
+ // If caller is not authorised, revert
488
+ if (!immediate && setback == 0) {
489
+ revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
490
+ }
447
491
 
448
- // bytes32 operationId = hashOperation(caller, target, data);
449
- // uint32 nonce;
492
+ bytes32 operationId = hashOperation(caller, target, data);
493
+ uint32 nonce;
450
494
 
451
- // // If caller is authorised, check operation was scheduled early enough
452
- // // Consume an available schedule even if there is no currently enforced delay
453
- // if (setback != 0 || getSchedule(operationId) != 0) {
454
- // nonce = _consumeScheduledOp(operationId);
455
- // }
495
+ // If caller is authorised, check operation was scheduled early enough
496
+ // Consume an available schedule even if there is no currently enforced delay
497
+ if (setback != 0 || getSchedule(operationId) != 0) {
498
+ nonce = _consumeScheduledOp(operationId);
499
+ }
456
500
 
457
- // // Mark the target and selector as authorised
458
- // bytes32 executionIdBefore = _executionId;
459
- // _executionId = _hashExecutionId(target, _checkSelector(data));
501
+ // Mark the target and selector as authorised
502
+ bytes32 executionIdBefore = $._executionId;
503
+ $._executionId = _hashExecutionId(target, _checkSelector(data));
460
504
 
461
- // // Perform call
462
- // Address.functionCallWithValue(target, data, msg.value);
505
+ // Perform call
506
+ Address.functionCallWithValue(target, data, msg.value);
463
507
 
464
- // // Reset execute identifier
465
- // _executionId = executionIdBefore;
508
+ // Reset execute identifier
509
+ $._executionId = executionIdBefore;
466
510
 
467
- // return nonce;
511
+ return nonce;
468
512
  }
469
513
 
470
- /// @inheritdoc IAccessManagerSimple
514
+ /// @inheritdoc IAccessManager
471
515
  function cancel(address caller, address target, bytes calldata data) public virtual returns (uint32) {
472
- // address msgsender = _msgSender();
473
- // bytes4 selector = _checkSelector(data);
516
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
517
+ address msgsender = _msgSender();
518
+ bytes4 selector = _checkSelector(data);
474
519
 
475
- // bytes32 operationId = hashOperation(caller, target, data);
476
- // if (_schedules[operationId].timepoint == 0) {
477
- // revert AccessManagerNotScheduled(operationId);
478
- // } else if (caller != msgsender) {
479
- // // calls can only be canceled by the account that scheduled them, a global admin, or by a guardian of the required role.
480
- // (bool isAdmin, ) = hasRole(ADMIN_ROLE, msgsender);
481
- // (bool isGuardian, ) = hasRole(getRoleGuardian(getTargetFunctionRole(target, selector)), msgsender);
482
- // if (!isAdmin && !isGuardian) {
483
- // revert AccessManagerUnauthorizedCancel(msgsender, caller, target, selector);
484
- // }
485
- // }
520
+ bytes32 operationId = hashOperation(caller, target, data);
521
+ if ($._schedules[operationId].timepoint == 0) {
522
+ revert AccessManagerNotScheduled(operationId);
523
+ } else if (caller != msgsender) {
524
+ // calls can only be canceled by the account that scheduled them, a global admin, or by a guardian of the required role.
525
+ (bool isAdmin, ) = hasRole(ADMIN_ROLE, msgsender);
526
+ (bool isGuardian, ) = hasRole(getRoleGuardian(getTargetFunctionRole(target, selector)), msgsender);
527
+ if (!isAdmin && !isGuardian) {
528
+ revert AccessManagerUnauthorizedCancel(msgsender, caller, target, selector);
529
+ }
530
+ }
486
531
 
487
- // delete _schedules[operationId].timepoint; // reset the timepoint, keep the nonce
488
- // uint32 nonce = _schedules[operationId].nonce;
489
- // emit OperationCanceled(operationId, nonce);
532
+ delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
533
+ uint32 nonce = $._schedules[operationId].nonce;
534
+ emit OperationCanceled(operationId, nonce);
490
535
 
491
- // return nonce;
536
+ return nonce;
492
537
  }
493
538
 
494
- /// @inheritdoc IAccessManagerSimple
539
+ /// @inheritdoc IAccessManager
495
540
  function consumeScheduledOp(address caller, bytes calldata data) public virtual {
496
- // address target = _msgSender();
497
- // if (IAccessManaged(target).isConsumingScheduledOp() != IAccessManaged.isConsumingScheduledOp.selector) {
498
- // revert AccessManagerUnauthorizedConsume(target);
499
- // }
500
- // _consumeScheduledOp(hashOperation(caller, target, data));
501
- }
502
-
503
- // /**
504
- // * @dev Internal variant of {consumeScheduledOp} that operates on bytes32 operationId.
505
- // *
506
- // * Returns the nonce of the scheduled operation that is consumed.
507
- // */
508
- // function _consumeScheduledOp(bytes32 operationId) internal virtual returns (uint32) {
509
- // uint48 timepoint = _schedules[operationId].timepoint;
510
- // uint32 nonce = _schedules[operationId].nonce;
511
-
512
- // if (timepoint == 0) {
513
- // revert AccessManagerNotScheduled(operationId);
514
- // } else if (timepoint > Time.timestamp()) {
515
- // revert AccessManagerNotReady(operationId);
516
- // } else if (_isExpired(timepoint)) {
517
- // revert AccessManagerExpired(operationId);
518
- // }
519
-
520
- // delete _schedules[operationId].timepoint; // reset the timepoint, keep the nonce
521
- // emit OperationExecuted(operationId, nonce);
522
-
523
- // return nonce;
524
- // }
525
-
526
- /// @inheritdoc IAccessManagerSimple
541
+ address target = _msgSender();
542
+ if (IAccessManaged(target).isConsumingScheduledOp() != IAccessManaged.isConsumingScheduledOp.selector) {
543
+ revert AccessManagerUnauthorizedConsume(target);
544
+ }
545
+ _consumeScheduledOp(hashOperation(caller, target, data));
546
+ }
547
+
548
+ /**
549
+ * @dev Internal variant of {consumeScheduledOp} that operates on bytes32 operationId.
550
+ *
551
+ * Returns the nonce of the scheduled operation that is consumed.
552
+ */
553
+ function _consumeScheduledOp(bytes32 operationId) internal virtual returns (uint32) {
554
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
555
+ uint48 timepoint = $._schedules[operationId].timepoint;
556
+ uint32 nonce = $._schedules[operationId].nonce;
557
+
558
+ if (timepoint == 0) {
559
+ revert AccessManagerNotScheduled(operationId);
560
+ } else if (timepoint > Time.timestamp()) {
561
+ revert AccessManagerNotReady(operationId);
562
+ } else if (_isExpired(timepoint)) {
563
+ revert AccessManagerExpired(operationId);
564
+ }
565
+
566
+ delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
567
+ emit OperationExecuted(operationId, nonce);
568
+
569
+ return nonce;
570
+ }
571
+
572
+ /// @inheritdoc IAccessManager
527
573
  function hashOperation(address caller, address target, bytes calldata data) public view virtual returns (bytes32) {
528
574
  return keccak256(abi.encode(caller, target, data));
529
575
  }
530
576
 
531
577
  // ==================================================== OTHERS ====================================================
532
- /// @inheritdoc IAccessManagerSimple
578
+ /// @inheritdoc IAccessManager
533
579
  function updateAuthority(address target, address newAuthority) public virtual onlyAuthorized {
534
580
  IAccessManaged(target).setAuthority(newAuthority);
535
581
  }
@@ -539,19 +585,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
539
585
  * @dev Check if the current call is authorized according to admin logic.
540
586
  */
541
587
  function _checkAuthorized() private {
542
- address caller = _msgSender();
588
+ address caller = msg.sender;//_msgSender();
543
589
  (bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
544
590
  if (!immediate) {
545
591
  if (delay == 0) {
546
592
  (, uint64 requiredRole, ) = _getAdminRestrictions(_msgData());
547
593
  revert AccessManagerUnauthorizedAccount(caller, requiredRole);
594
+ } else {
595
+ _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
548
596
  }
549
- // else {
550
- // _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
551
- // }
552
597
  }
553
598
  }
554
599
 
600
+ /**
601
+ * @dev Get the admin restrictions of a given function call based on the function and arguments involved.
602
+ *
603
+ * Returns:
604
+ * - bool restricted: does this data match a restricted operation
605
+ * - uint64: which role is this operation restricted to
606
+ * - uint32: minimum delay to enforce for that operation (max between operation's delay and admin's execution delay)
607
+ */
555
608
  /**
556
609
  * @dev Get the admin restrictions of a given function call based on the function and arguments involved.
557
610
  *
@@ -562,7 +615,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
562
615
  */
563
616
  function _getAdminRestrictions(
564
617
  bytes calldata data
565
- ) private view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
618
+ ) internal virtual view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
566
619
  if (data.length < 4) {
567
620
  return (false, 0, 0);
568
621
  }
@@ -587,7 +640,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
587
640
  selector == this.setTargetFunctionRole.selector
588
641
  ) {
589
642
  // First argument is a target.
590
- address target = abi.decode(data[0x04:0x24], (address));
643
+ address target = abi.decode(data[0x04:0x24], (address));// who is target???
591
644
  uint32 delay = getTargetAdminDelay(target);
592
645
  return (true, ADMIN_ROLE, delay);
593
646
  }
@@ -631,11 +684,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
631
684
  return (false, 0);
632
685
  }
633
686
 
634
- // if (caller == address(this)) {
635
- // // Caller is AccessManager, this means the call was sent through {execute} and it already checked
636
- // // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
637
- // return (_isExecuting(address(this), _checkSelector(data)), 0);
638
- // }
687
+ if (caller == address(this)) {
688
+ // Caller is AccessManager, this means the call was sent through {execute} and it already checked
689
+ // permissions. We verify that the call "identifier", which is set during {execute}, is correct.
690
+ return (_isExecuting(address(this), _checkSelector(data)), 0);
691
+ }
639
692
 
640
693
  (bool enabled, uint64 roleId, uint32 operationDelay) = _getAdminRestrictions(data);
641
694
  if (!enabled) {
@@ -648,35 +701,36 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
648
701
  }
649
702
 
650
703
  // downcast is safe because both options are uint32
651
- delay = 0; // uint32(Math.max(operationDelay, executionDelay));
704
+ delay = uint32(Math.max(operationDelay, executionDelay));
652
705
  return (delay == 0, delay);
653
706
  }
654
707
 
655
- // /**
656
- // * @dev Returns true if a call with `target` and `selector` is being executed via {executed}.
657
- // */
658
- // function _isExecuting(address target, bytes4 selector) private view returns (bool) {
659
- // return _executionId == _hashExecutionId(target, selector);
660
- // }
708
+ /**
709
+ * @dev Returns true if a call with `target` and `selector` is being executed via {executed}.
710
+ */
711
+ function _isExecuting(address target, bytes4 selector) private view returns (bool) {
712
+ AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
713
+ return $._executionId == _hashExecutionId(target, selector);
714
+ }
661
715
 
662
- // /**
663
- // * @dev Returns true if a schedule timepoint is past its expiration deadline.
664
- // */
665
- // function _isExpired(uint48 timepoint) private view returns (bool) {
666
- // return timepoint + expiration() <= Time.timestamp();
667
- // }
716
+ /**
717
+ * @dev Returns true if a schedule timepoint is past its expiration deadline.
718
+ */
719
+ function _isExpired(uint48 timepoint) private view returns (bool) {
720
+ return timepoint + expiration() <= Time.timestamp();
721
+ }
668
722
 
669
723
  /**
670
724
  * @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
671
725
  */
672
- function _checkSelector(bytes calldata data) private pure returns (bytes4) {
726
+ function _checkSelector(bytes calldata data) internal pure returns (bytes4) {
673
727
  return bytes4(data[0:4]);
674
728
  }
675
729
 
676
730
  /**
677
731
  * @dev Hashing function for execute protection
678
732
  */
679
- // function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
680
- // return keccak256(abi.encode(target, selector));
681
- // }
733
+ function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
734
+ return keccak256(abi.encode(target, selector));
735
+ }
682
736
  }