@etherisc/gif-next 0.0.2-ef935e0-790 → 0.0.2-efd035d-094

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