@etherisc/gif-next 0.0.2-bc11089-132 → 0.0.2-bc4f70f-636

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 (619) hide show
  1. package/README.md +10 -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 +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +286 -1351
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +321 -212
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -2526
  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 +630 -351
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +487 -425
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +350 -124
  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/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  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 -144
  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 → pool}/IBundleService.sol/IBundleService.json +299 -278
  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/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +216 -253
  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/{instance/service → product}/IPolicyService.sol/IPolicyService.json +339 -296
  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} +276 -239
  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/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +125 -122
  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 +388 -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 +576 -182
  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 -139
  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/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  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} +209 -204
  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/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +277 -115
  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/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +51 -31
  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/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  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/{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 +22 -25
  278. package/contracts/instance/IInstance.sol +65 -45
  279. package/contracts/instance/IInstanceService.sol +60 -17
  280. package/contracts/instance/Instance.sol +155 -195
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +160 -85
  284. package/contracts/instance/InstanceService.sol +272 -210
  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/{Cloneable.sol → base/Cloneable.sol} +8 -3
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
  291. package/contracts/instance/module/IAccess.sol +20 -22
  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 +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 +73 -30
  331. package/contracts/registry/IRegistryService.sol +47 -28
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +376 -248
  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 +600 -0
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +261 -57
  340. package/contracts/shared/AccessManagerCustom.sol +736 -0
  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 -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 +37 -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/{types → type}/NftIdSet.sol +2 -2
  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 +34 -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 +2 -1
  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 -772
  409. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  410. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  411. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  412. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  413. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  414. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  415. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  416. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  417. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -967
  418. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  419. package/artifacts/contracts/components/Product.sol/Product.json +0 -883
  420. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  422. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  424. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  426. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  428. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  430. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  432. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  434. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  436. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  438. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  443. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  445. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  447. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  451. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  453. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  455. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  457. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  459. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  460. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  461. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  462. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  463. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1057
  465. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  467. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  468. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  469. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  472. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
  474. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  477. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  478. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  479. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  480. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  483. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  485. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  491. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  494. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  496. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  501. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  505. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  507. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  509. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  511. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  512. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  513. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  514. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  515. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  516. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  521. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  529. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  530. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  531. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  532. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  534. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  536. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  539. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  540. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  541. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  542. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  543. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  545. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  547. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  549. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  554. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  558. package/contracts/components/BaseComponent.sol +0 -148
  559. package/contracts/components/Distribution.sol +0 -163
  560. package/contracts/components/IBaseComponent.sol +0 -32
  561. package/contracts/components/IDistributionComponent.sol +0 -44
  562. package/contracts/components/IPoolComponent.sol +0 -66
  563. package/contracts/components/IProductComponent.sol +0 -35
  564. package/contracts/components/Pool.sol +0 -271
  565. package/contracts/components/Product.sol +0 -292
  566. package/contracts/experiment/cloning/Cloner.sol +0 -47
  567. package/contracts/experiment/errors/Require.sol +0 -38
  568. package/contracts/experiment/errors/Revert.sol +0 -44
  569. package/contracts/experiment/inheritance/A.sol +0 -53
  570. package/contracts/experiment/inheritance/B.sol +0 -28
  571. package/contracts/experiment/inheritance/C.sol +0 -34
  572. package/contracts/experiment/inheritance/IA.sol +0 -13
  573. package/contracts/experiment/inheritance/IB.sol +0 -10
  574. package/contracts/experiment/inheritance/IC.sol +0 -12
  575. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  576. package/contracts/experiment/statemachine/ISM.sol +0 -25
  577. package/contracts/experiment/statemachine/SM.sol +0 -57
  578. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  579. package/contracts/experiment/types/TypeA.sol +0 -47
  580. package/contracts/experiment/types/TypeB.sol +0 -29
  581. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  582. package/contracts/instance/IInstanceBase.sol +0 -26
  583. package/contracts/instance/InstanceAccessManager.sol +0 -304
  584. package/contracts/instance/InstanceBase.sol +0 -41
  585. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  586. package/contracts/instance/base/IInstanceBase.sol +0 -23
  587. package/contracts/instance/base/KeyValueStore.sol +0 -172
  588. package/contracts/instance/module/ISetup.sol +0 -46
  589. package/contracts/instance/module/ITreasury.sol +0 -23
  590. package/contracts/instance/service/BundleService.sol +0 -260
  591. package/contracts/instance/service/BundleServiceManager.sol +0 -54
  592. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  593. package/contracts/instance/service/DistributionService.sol +0 -118
  594. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  595. package/contracts/instance/service/IBundleService.sol +0 -45
  596. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  597. package/contracts/instance/service/IDistributionService.sol +0 -12
  598. package/contracts/instance/service/IPolicyService.sol +0 -87
  599. package/contracts/instance/service/IPoolService.sol +0 -20
  600. package/contracts/instance/service/IProductService.sol +0 -40
  601. package/contracts/instance/service/PolicyService.sol +0 -508
  602. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  603. package/contracts/instance/service/PoolService.sol +0 -124
  604. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  605. package/contracts/instance/service/ProductService.sol +0 -173
  606. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  607. package/contracts/shared/ContractDeployerLib.sol +0 -72
  608. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  609. package/contracts/test/TestFee.sol +0 -25
  610. package/contracts/test/TestRegisterable.sol +0 -18
  611. package/contracts/test/TestRoleId.sol +0 -14
  612. package/contracts/test/TestService.sol +0 -24
  613. package/contracts/test/TestToken.sol +0 -26
  614. package/contracts/test/TestVersion.sol +0 -44
  615. package/contracts/test/TestVersionable.sol +0 -17
  616. package/contracts/types/ChainId.sol +0 -38
  617. package/contracts/types/NumberId.sol +0 -52
  618. package/contracts/types/RoleId.sol +0 -91
  619. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,470 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.20;
3
+
4
+
5
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
7
+ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
8
+
9
+ import {IAccessManagerExtended} from "./IAccessManagerExtended.sol";
10
+ import {AccessManagerCustom} from "./AccessManagerCustom.sol";
11
+
12
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
13
+
14
+
15
+ // IMPORTANT: check role/target for existance before using return value of getter
16
+ contract AccessManagerExtended is AccessManagerCustom, IAccessManagerExtended {
17
+ using EnumerableSet for EnumerableSet.AddressSet;
18
+
19
+ string constant private ADMIN_ROLE_NAME = "Admin";
20
+ string constant private PUBLIC_ROLE_NAME = "Public";
21
+
22
+ /// @custom:storage-location erc7201:etherisc.storage.AccessManagerExtended
23
+ struct AccessManagerExtendedStorage {
24
+ mapping(address target => TargetInfo info) _targetInfo;
25
+ mapping(string name => address target) _targetAddressForName;
26
+ address[] _targetAddresses;
27
+
28
+ mapping(uint64 roleId => RoleInfo) _roleInfo;
29
+ mapping(uint64 roleId => EnumerableSet.AddressSet roleMembers) _roleMembers;
30
+ mapping(string => uint64) _roleIdForName;
31
+ uint64[] _roleIds;
32
+ }
33
+
34
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerExtended")) - 1)) & ~bytes32(uint256(0xff));
35
+ bytes32 private constant AccessManagerExtendedStorageLocation = 0x5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876900;
36
+
37
+ function _getAccessManagerExtendedStorage() private pure returns (AccessManagerExtendedStorage storage $) {
38
+ assembly {
39
+ $.slot := AccessManagerExtendedStorageLocation
40
+ }
41
+ }
42
+
43
+ modifier roleExists(uint64 roleId) {
44
+ if(!isRoleExists(roleId)) {
45
+ revert AccessManagerRoleIdNotExists(roleId);
46
+ }
47
+ _;
48
+ }
49
+
50
+ modifier targetExists(address target) {
51
+ if(!isTargetExists(target)) {
52
+ revert AccessManagerTargetNotExists(target);
53
+ }
54
+ _;
55
+ }
56
+
57
+ function __AccessManagerExtended_init(address initialAdmin) internal onlyInitializing {
58
+
59
+ _createRole(ADMIN_ROLE, ADMIN_ROLE_NAME);//, IAccess.Type.Core);
60
+ _createRole(PUBLIC_ROLE, PUBLIC_ROLE_NAME);//, IAccess.Type.Core);
61
+
62
+
63
+ // grants ADMIN role to initialAdmin
64
+ __AccessManagerCustom_init(initialAdmin);
65
+ }
66
+
67
+ // =================================================== GETTERS ====================================================
68
+
69
+ function isTargetExists(address target) public view returns (bool) {
70
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
71
+ return $._targetInfo[target].createdAt.gtz();
72
+ }
73
+
74
+ function isTargetNameExists(string memory name) public view returns (bool) {
75
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
76
+ return $._targetAddressForName[name] != address(0);
77
+ }
78
+
79
+ function getTargetAddress(string memory name) public view returns(address targetAddress) {
80
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
81
+ return $._targetAddressForName[name];
82
+ }
83
+
84
+ function getTargetInfo(address target) public view returns (TargetInfo memory) {
85
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
86
+ return $._targetInfo[target];
87
+ }
88
+
89
+ function getRoleInfo(uint64 roleId) public view returns (RoleInfo memory) {
90
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
91
+ return $._roleInfo[roleId];
92
+ }
93
+
94
+ function getRoleMembers(uint64 roleId) public view returns (uint256 numberOfMembers) {
95
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
96
+ return EnumerableSet.length($._roleMembers[roleId]);
97
+ }
98
+
99
+ function getRoleMember(uint64 roleId, uint256 idx) public view returns (address member) {
100
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
101
+ return EnumerableSet.at($._roleMembers[roleId], idx);
102
+ }
103
+
104
+ function getRoleId(uint256 idx) public view returns (uint64 roleId) {
105
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
106
+ return $._roleIds[idx];
107
+ }
108
+
109
+ // TODO returns ADMIN_ROLE id for non existent name
110
+ function getRoleId(string memory name) public view returns (uint64 roleId) {
111
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
112
+ return $._roleIdForName[name];
113
+ }
114
+
115
+ function getRoles() public view returns (uint256 numberOfRoles) {
116
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
117
+ return $._roleIds.length;
118
+ }
119
+
120
+ function isRoleExists(uint64 roleId) public view returns (bool exists) {
121
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
122
+ return $._roleInfo[roleId].createdAt.gtz();
123
+ }
124
+
125
+ function isRoleNameExists(string memory name) public view returns (bool exists) {
126
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
127
+ return $._roleIdForName[name] != 0;
128
+ }
129
+
130
+ // =============================================== ROLE MANAGEMENT ===============================================
131
+
132
+ /// inheritdoc IAccessManagerExtended
133
+ function createRole(uint64 roleId, string memory name)//, IAccess.Type rtype)
134
+ public
135
+ onlyAuthorized
136
+ {
137
+ name = _validateRole(roleId, name);//, rtype);
138
+ _createRole(roleId, name);//, rtype);
139
+ }
140
+
141
+ function _validateRole(uint64 roleId, string memory name)//, IAccess.Type rtype)
142
+ internal
143
+ virtual
144
+ view
145
+ returns(string memory)
146
+ {
147
+ /*
148
+ if(rtype == IAccess.Type.Custom && roleId < CUSTOM_ROLE_ID_MIN) {
149
+ revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
150
+ }
151
+
152
+ if(
153
+ rtype != IAccess.Type.Custom &&
154
+ roleId >= CUSTOM_ROLE_ID_MIN &&
155
+ roleId != PUBLIC_ROLE().toInt())
156
+ {
157
+ revert AccessManagerRoleIdTooBig(roleId);
158
+ }
159
+ */
160
+
161
+ if(roleId == 0) {
162
+ revert AccessManagerRoleIdZero();
163
+ }
164
+
165
+ if(bytes(name).length == 0) {
166
+ revert AccessManagerRoleNameEmpty(roleId);
167
+ }
168
+
169
+ return name;
170
+ }
171
+
172
+ function _createRole(uint64 roleId, string memory name/*, IAccess.Type rtype*/) private
173
+ {
174
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
175
+
176
+ if(isRoleExists(roleId)) {
177
+ revert AccessManagerRoleIdAlreadyExists(roleId);
178
+ }
179
+
180
+ if(isRoleNameExists(name)) {
181
+ revert AccessManagerRoleNameAlreadyExists(
182
+ roleId,
183
+ getRoleId(name),
184
+ name);
185
+ }
186
+
187
+ $._roleInfo[roleId] = RoleInfo({
188
+ id: roleId,
189
+ name: name,
190
+ //rtype: rtype,
191
+ createdAt: TimestampLib.blockTimestamp()
192
+ // disableAt: 0;
193
+ });
194
+
195
+ $._roleIdForName[name] = roleId;
196
+ $._roleIds.push(roleId);
197
+
198
+ emit LogRoleCreation(roleId, name);//, rtype);
199
+ }
200
+
201
+ /// inheritdoc IAccessManager
202
+ function labelRole(uint64 roleId, string calldata label)
203
+ public
204
+ override (AccessManagerCustom, IAccessManager)
205
+ roleExists(roleId)
206
+ {
207
+ super.labelRole(roleId, label);
208
+ }
209
+
210
+ /// inheritdoc IAccessManager
211
+ function grantRole(uint64 roleId, address account, uint32 executionDelay)
212
+ public
213
+ override (AccessManagerCustom, IAccessManager)
214
+ roleExists(roleId)
215
+ {
216
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
217
+ $._roleMembers[roleId].add(account);
218
+ super.grantRole(roleId, account, executionDelay);
219
+ }
220
+
221
+ /// inheritdoc IAccessManager
222
+ function revokeRole(uint64 roleId, address account)
223
+ public
224
+ override (AccessManagerCustom, IAccessManager)
225
+ roleExists(roleId)
226
+ {
227
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
228
+ $._roleMembers[roleId].remove(account);
229
+ super.revokeRole(roleId, account);
230
+ }
231
+
232
+ /// inheritdoc IAccessManager
233
+ function renounceRole(uint64 roleId, address callerConfirmation)
234
+ public
235
+ override (AccessManagerCustom, IAccessManager)
236
+ roleExists(roleId)
237
+ {
238
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
239
+ $._roleMembers[roleId].remove(_msgSender());
240
+ super.renounceRole(roleId, callerConfirmation);
241
+ }
242
+
243
+ /// inheritdoc IAccessManager
244
+ function setRoleAdmin(uint64 roleId, uint64 admin)
245
+ public
246
+ override (AccessManagerCustom, IAccessManager)
247
+ roleExists(roleId)
248
+ roleExists(admin)
249
+ {
250
+ super.setRoleAdmin(roleId, admin);
251
+ }
252
+
253
+ /// inheritdoc IAccessManager
254
+ function setRoleGuardian(uint64 roleId, uint64 guardian)
255
+ public
256
+ override (AccessManagerCustom, IAccessManager)
257
+ roleExists(roleId)
258
+ {
259
+ super.setRoleGuardian(roleId, guardian);
260
+ }
261
+
262
+ /// inheritdoc IAccessManager
263
+ function setGrantDelay(uint64 roleId, uint32 newDelay)
264
+ public
265
+ override (AccessManagerCustom, IAccessManager)
266
+ roleExists(roleId)
267
+ {
268
+ super.setGrantDelay(roleId, newDelay);
269
+ }
270
+
271
+ // ============================================= TARGET MANAGEMENT ==============================================
272
+ /// inheritdoc IAccessManagerExtended
273
+ function createTarget(address target, string memory name)//, IAccess.Type.Custom)
274
+ public
275
+ onlyAuthorized
276
+ {
277
+ name = _validateTarget(target, name);
278
+ _createTarget(target, name);//, IAccess.Type.Custom);
279
+ }
280
+
281
+ /// inheritdoc IAccessManager
282
+ // TODO must not allow "target = this" -> access manager as target created at the begining
283
+ function _createTarget(address target, string memory name) private//, IAccess.Type ttype) private
284
+ {
285
+ AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
286
+
287
+ if(isTargetExists(target)) {
288
+ revert AccessManagerTargetAlreadyExists(target);
289
+ }
290
+
291
+ if(isTargetNameExists(name)) {
292
+ revert AccessManagerTargetNameAlreadyExists(
293
+ target,
294
+ $._targetAddressForName[name],
295
+ name);
296
+ }
297
+
298
+ $._targetInfo[target] = TargetInfo ({
299
+ taddress: target,
300
+ //ttype: ttype,
301
+ name: name,
302
+ createdAt: TimestampLib.blockTimestamp()
303
+ // disableAt: 0;
304
+ });
305
+
306
+ $._targetAddressForName[name] = target;
307
+ // must revert / panic on duplicate address -> -1 check then
308
+ $._targetAddresses.push(target);
309
+
310
+ emit LogTargetCreation(target, name);//, ttype);
311
+ }
312
+
313
+ /// inheritdoc IAccessManagerExtended
314
+ // panics in case interface is not supported, 0 address included
315
+ function _validateTarget(address target, string memory name)
316
+ internal
317
+ virtual
318
+ returns (string memory)
319
+ {
320
+ if(target == address(0)) {
321
+ revert AccessManagerTargetAddressZero();
322
+ }
323
+ // panic if not contract
324
+ //address authority = IAccessManaged(target).authority();
325
+
326
+ //if(authority != address(this)) {
327
+ // revert AccessManagerTargetAuthorityInvalid(target, authority);
328
+ //}
329
+
330
+ if(bytes(name).length == 0) {
331
+ revert AccessManagerTargetNameEmpty(target);
332
+ }
333
+
334
+ return name;
335
+ }
336
+
337
+ // ============================================= FUNCTION MANAGEMENT ==============================================
338
+
339
+ /// inheritdoc IAccessManager
340
+ function setTargetFunctionRole(
341
+ address target,
342
+ bytes4[] calldata selectors,
343
+ uint64 roleId
344
+ )
345
+ public
346
+ override (AccessManagerCustom, IAccessManager)
347
+ targetExists(target)
348
+ roleExists(roleId)
349
+ {
350
+ super.setTargetFunctionRole(target, selectors, roleId);
351
+ }
352
+ /// inheritdoc IAccessManager
353
+ function setTargetAdminDelay(address target, uint32 newDelay)
354
+ public
355
+ override (AccessManagerCustom, IAccessManager)
356
+ targetExists(target)
357
+ {
358
+ super.setTargetAdminDelay(target, newDelay);
359
+ }
360
+
361
+ // =============================================== MODE MANAGEMENT ================================================
362
+ /// inheritdoc IAccessManager
363
+ function setTargetClosed(address target, bool closed)
364
+ public
365
+ override (AccessManagerCustom, IAccessManager)
366
+ targetExists(target)
367
+ {
368
+ super.setTargetClosed(target, closed);
369
+ }
370
+
371
+ // ============================================== DELAYED OPERATIONS ==============================================
372
+ /// inheritdoc IAccessManager
373
+ function schedule(
374
+ address target,
375
+ bytes calldata data,
376
+ uint48 when
377
+ )
378
+ public
379
+ override (AccessManagerCustom, IAccessManager)
380
+ targetExists(target)
381
+ returns (bytes32 operationId, uint32 nonce)
382
+ {
383
+ (operationId, nonce) = super.schedule(target, data, when);
384
+ }
385
+
386
+ /// inheritdoc IAccessManager
387
+ function execute(address target, bytes calldata data)
388
+ public
389
+ payable
390
+ override (AccessManagerCustom, IAccessManager)
391
+ targetExists(target) returns (uint32)
392
+ {
393
+ return super.execute(target, data);
394
+ }
395
+
396
+ /// inheritdoc IAccessManager
397
+ function cancel(address caller, address target, bytes calldata data)
398
+ public
399
+ override (AccessManagerCustom, IAccessManager)
400
+ targetExists(target) returns (uint32)
401
+ {
402
+ return super.cancel(caller, target, data);
403
+ }
404
+
405
+ /// inheritdoc IAccessManager
406
+ function consumeScheduledOp(address caller, bytes calldata data)
407
+ public
408
+ override (AccessManagerCustom, IAccessManager)
409
+ targetExists(_msgSender())
410
+ {
411
+ super.consumeScheduledOp(caller, data);
412
+ }
413
+
414
+ // ==================================================== OTHERS ====================================================
415
+ /// inheritdoc IAccessManager
416
+ function updateAuthority(address target, address newAuthority)
417
+ public
418
+ override (AccessManagerCustom, IAccessManager)
419
+ targetExists(target)
420
+ {
421
+ super.updateAuthority(target, newAuthority);
422
+ }
423
+
424
+ // ================================================= ADMIN LOGIC ==================================================
425
+
426
+ function _getAdminRestrictions(
427
+ bytes calldata data
428
+ ) internal virtual override view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
429
+ if (data.length < 4) {
430
+ return (false, 0, 0);
431
+ }
432
+
433
+ bytes4 selector = _checkSelector(data);
434
+
435
+ // Restricted to ADMIN with no delay beside any execution delay the caller may have
436
+ if (
437
+ selector == this.labelRole.selector ||
438
+ selector == this.setRoleAdmin.selector ||
439
+ selector == this.setRoleGuardian.selector ||
440
+ selector == this.setGrantDelay.selector ||
441
+ selector == this.setTargetAdminDelay.selector ||
442
+ selector == this.createRole.selector ||
443
+ selector == this.createTarget.selector
444
+ ) {
445
+ return (true, ADMIN_ROLE, 0);
446
+ }
447
+
448
+ // Restricted to ADMIN with the admin delay corresponding to the target
449
+ if (
450
+ selector == this.updateAuthority.selector ||
451
+ selector == this.setTargetClosed.selector ||
452
+ selector == this.setTargetFunctionRole.selector
453
+ ) {
454
+ // First argument is a target.
455
+ address target = abi.decode(data[0x04:0x24], (address));// who is target???
456
+ uint32 delay = getTargetAdminDelay(target);
457
+ return (true, ADMIN_ROLE, delay);
458
+ }
459
+
460
+ // Restricted to that role's admin with no delay beside any execution delay the caller may have.
461
+ if (selector == this.grantRole.selector || selector == this.revokeRole.selector) {
462
+ // First argument is a roleId.
463
+ uint64 roleId = abi.decode(data[0x04:0x24], (uint64));
464
+ return (true, getRoleAdmin(roleId), 0);
465
+ }
466
+
467
+ return (false, 0, 0);
468
+ }
469
+
470
+ }
@@ -0,0 +1,13 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagerExtended} from "./AccessManagerExtended.sol";
5
+
6
+
7
+ contract AccessManagerExtendedInitializeable is AccessManagerExtended {
8
+
9
+ function initialize(address initialAdmin) initializer public {
10
+ __AccessManagerExtended_init(initialAdmin);
11
+ }
12
+
13
+ }
@@ -0,0 +1,137 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // OpenZeppelin Contracts (last updated v5.0.0) (access/manager/AccessManager.sol)
3
+
4
+ pragma solidity ^0.8.20;
5
+
6
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
7
+
8
+ import {VersionPart} from "../type/Version.sol";
9
+ import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
10
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
11
+
12
+ import {IAccessManagerExtendedWithDisable} from "./IAccessManagerExtendedWithDisable.sol";
13
+ import {AccessManagerExtended} from "./AccessManagerExtended.sol";
14
+ import {AccessManagerCustom} from "./AccessManagerCustom.sol";
15
+
16
+
17
+ contract AccessManagerExtendedWithDisable is AccessManagerExtended, IAccessManagerExtendedWithDisable {
18
+
19
+ /// @custom:storage-location erc7201:etherisc.storage.ReleaseAccessManager
20
+ struct AccessManagerExtendedWithDisableStorage {
21
+ VersionPart _version;
22
+ Timestamp _disabledAt;
23
+ }
24
+
25
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerExtendedWithDisable")) - 1)) & ~bytes32(uint256(0xff));
26
+ bytes32 private constant AccessManagerExtendedWithDisableStorageLocation = 0x6eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e600;
27
+
28
+ function _getAccessManagerExtendedWithDisableStorage() private pure returns (AccessManagerExtendedWithDisableStorage storage $) {
29
+ assembly {
30
+ $.slot := AccessManagerExtendedWithDisableStorageLocation
31
+ }
32
+ }
33
+
34
+ // TODO add version
35
+ function __AccessManagerExtendedWithDisable_init(address initialAdmin, VersionPart version) internal onlyInitializing {
36
+ AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
37
+ $._version = version;
38
+
39
+ __AccessManagerExtended_init(initialAdmin);
40
+ }
41
+
42
+ // =================================================== GETTERS ====================================================
43
+
44
+ function canCall(
45
+ address caller,
46
+ address target,
47
+ bytes4 selector
48
+ )
49
+ public view
50
+ virtual override (AccessManagerCustom, IAccessManager)
51
+ returns (bool immediate, uint32 delay)
52
+ {
53
+ AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
54
+ if(isDisabled()) {
55
+ revert AccessManagerDisabled();
56
+ }
57
+ return super.canCall(caller, target, selector);
58
+ }
59
+
60
+ function getVersion() public view returns (VersionPart) {
61
+ AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
62
+ return $._version;
63
+ }
64
+
65
+ function isDisabled() public view returns (bool) {
66
+ AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
67
+ return $._disabledAt.gtz() && TimestampLib.blockTimestamp() > $._disabledAt;
68
+ }
69
+
70
+ // ===================================== ACCESS MANAGER MODE MANAGEMENT ============================================
71
+
72
+ /// inheritdoc IAccessManagerExtended
73
+ function disable(Seconds delay) external onlyAuthorized {
74
+ AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
75
+ if($._disabledAt.gtz()) {
76
+ revert AccessManagerDisabled();
77
+ }
78
+ $._disabledAt = TimestampLib.blockTimestamp().addSeconds(delay);
79
+ }
80
+ /// inheritdoc IAccessManagerExtended
81
+ function enable() external onlyAuthorized {
82
+ AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
83
+ if(isDisabled()) {
84
+ revert AccessManagerDisabled();
85
+ }
86
+ $._disabledAt = zeroTimestamp();
87
+ }
88
+
89
+
90
+ // ========================= INTERNAL ==============================
91
+
92
+ function _getAdminRestrictions(
93
+ bytes calldata data
94
+ ) internal virtual override view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
95
+ if (data.length < 4) {
96
+ return (false, 0, 0);
97
+ }
98
+
99
+ bytes4 selector = _checkSelector(data);
100
+
101
+ // Restricted to ADMIN with no delay beside any execution delay the caller may have
102
+ if (
103
+ selector == this.labelRole.selector ||
104
+ selector == this.setRoleAdmin.selector ||
105
+ selector == this.setRoleGuardian.selector ||
106
+ selector == this.setGrantDelay.selector ||
107
+ selector == this.setTargetAdminDelay.selector ||
108
+ selector == this.createRole.selector ||
109
+ selector == this.createTarget.selector ||
110
+ selector == this.enable.selector ||
111
+ selector == this.disable.selector
112
+ ) {
113
+ return (true, ADMIN_ROLE, 0);
114
+ }
115
+
116
+ // Restricted to ADMIN with the admin delay corresponding to the target
117
+ if (
118
+ selector == this.updateAuthority.selector ||
119
+ selector == this.setTargetClosed.selector ||
120
+ selector == this.setTargetFunctionRole.selector
121
+ ) {
122
+ // First argument is a target.
123
+ address target = abi.decode(data[0x04:0x24], (address));// who is target???
124
+ uint32 delay = getTargetAdminDelay(target);
125
+ return (true, ADMIN_ROLE, delay);
126
+ }
127
+
128
+ // Restricted to that role's admin with no delay beside any execution delay the caller may have.
129
+ if (selector == this.grantRole.selector || selector == this.revokeRole.selector) {
130
+ // First argument is a roleId.
131
+ uint64 roleId = abi.decode(data[0x04:0x24], (uint64));
132
+ return (true, getRoleAdmin(roleId), 0);
133
+ }
134
+
135
+ return (false, 0, 0);
136
+ }
137
+ }
@@ -0,0 +1,14 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {VersionPart} from "../type/Version.sol";
5
+
6
+ import {AccessManagerExtendedWithDisable} from "./AccessManagerExtendedWithDisable.sol";
7
+
8
+ contract AccessManagerExtendedWithDisableInitializeable is AccessManagerExtendedWithDisable {
9
+
10
+ function initialize(address initialAdmin, VersionPart version) initializer public {
11
+ __AccessManagerExtendedWithDisable_init(initialAdmin, version);
12
+ }
13
+
14
+ }