@etherisc/gif-next 0.0.2-def25d4-556 → 0.0.2-df73b56-462

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 (679) hide show
  1. package/README.md +121 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +483 -552
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1545 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1983 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +518 -310
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +447 -170
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +345 -3046
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +942 -365
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +517 -315
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +337 -95
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3607 -0
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  78. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  83. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  88. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  90. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +384 -370
  92. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1276 -0
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +802 -0
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  111. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +937 -0
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  114. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/Pool.sol/Pool.json +1062 -0
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1474 -0
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +726 -0
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1101 -0
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1346 -0
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +814 -0
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → product/IApplicationService.sol/IApplicationService.json} +220 -189
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +867 -0
  138. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IPricingService.sol/IPricingService.json} +290 -187
  140. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  141. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +953 -0
  142. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +125 -191
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1223 -0
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +762 -0
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  152. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  153. package/artifacts/contracts/product/Product.sol/Product.json +1059 -0
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +541 -184
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +356 -269
  164. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  166. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/Registry.sol/Registry.json +873 -225
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  170. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +439 -331
  172. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +313 -137
  174. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  176. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  178. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  180. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  182. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  183. package/artifacts/contracts/shared/Component.sol/Component.json +685 -0
  184. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  186. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  188. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/{RegisterableUpgradable.sol/RegisterableUpgradable.json → ComponentVerifyingService.sol/ComponentVerifyingService.json} +149 -159
  190. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  191. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  192. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponent.sol/IComponent.json} +300 -256
  194. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  196. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  197. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  198. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  200. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  202. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  204. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  206. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  208. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  209. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  210. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  212. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  213. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  214. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  215. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  216. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  217. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  218. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  219. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  220. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  221. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  222. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  223. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  224. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  226. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  228. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Service.sol/Service.json +115 -183
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  236. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  238. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  240. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  242. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  244. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  245. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  246. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  258. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  260. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  268. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  270. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  272. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  274. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  276. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  277. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  278. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  280. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  282. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  284. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  286. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  288. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  290. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  294. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  296. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  298. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  300. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  302. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  304. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  306. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  308. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  310. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  315. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  316. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  317. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  318. package/contracts/authorization/AccessAdmin.sol +592 -0
  319. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  320. package/contracts/authorization/Authorization.sol +217 -0
  321. package/contracts/authorization/IAccess.sol +48 -0
  322. package/contracts/authorization/IAccessAdmin.sol +135 -0
  323. package/contracts/authorization/IAuthorization.sol +54 -0
  324. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  325. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  326. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  327. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  328. package/contracts/distribution/BasicDistribution.sol +138 -0
  329. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  330. package/contracts/distribution/Distribution.sol +295 -0
  331. package/contracts/distribution/DistributionService.sol +336 -0
  332. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  333. package/contracts/distribution/IDistributionComponent.sol +52 -0
  334. package/contracts/distribution/IDistributionService.sol +101 -0
  335. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  336. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  337. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  338. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  339. package/contracts/instance/BundleSet.sol +126 -0
  340. package/contracts/instance/IInstance.sol +56 -25
  341. package/contracts/instance/IInstanceService.sol +78 -16
  342. package/contracts/instance/Instance.sol +159 -373
  343. package/contracts/instance/InstanceAdmin.sol +285 -0
  344. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  345. package/contracts/instance/InstanceReader.sol +214 -74
  346. package/contracts/instance/InstanceService.sol +408 -112
  347. package/contracts/instance/InstanceServiceManager.sol +14 -31
  348. package/contracts/instance/InstanceStore.sol +287 -0
  349. package/contracts/instance/base/BalanceStore.sol +123 -0
  350. package/contracts/instance/base/Cloneable.sol +28 -0
  351. package/contracts/instance/base/ObjectCounter.sol +21 -0
  352. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  353. package/contracts/instance/base/ObjectSet.sol +79 -0
  354. package/contracts/instance/module/IAccess.sol +29 -21
  355. package/contracts/instance/module/IBundle.sol +8 -7
  356. package/contracts/instance/module/IComponents.sol +48 -0
  357. package/contracts/instance/module/IDistribution.sol +6 -4
  358. package/contracts/instance/module/IPolicy.sol +58 -19
  359. package/contracts/instance/module/IRisk.sol +1 -1
  360. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  361. package/contracts/oracle/BasicOracle.sol +48 -0
  362. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  363. package/contracts/oracle/IOracle.sol +36 -0
  364. package/contracts/oracle/IOracleComponent.sol +33 -0
  365. package/contracts/oracle/IOracleService.sol +65 -0
  366. package/contracts/oracle/Oracle.sol +167 -0
  367. package/contracts/oracle/OracleService.sol +281 -0
  368. package/contracts/oracle/OracleServiceManager.sol +39 -0
  369. package/contracts/pool/BasicPool.sol +166 -0
  370. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  371. package/contracts/pool/BundleService.sol +438 -0
  372. package/contracts/pool/BundleServiceManager.sol +39 -0
  373. package/contracts/pool/IBundleService.sol +134 -0
  374. package/contracts/pool/IPoolComponent.sol +68 -0
  375. package/contracts/pool/IPoolService.sol +160 -0
  376. package/contracts/pool/Pool.sol +342 -0
  377. package/contracts/pool/PoolService.sol +508 -0
  378. package/contracts/pool/PoolServiceManager.sol +39 -0
  379. package/contracts/product/ApplicationService.sol +247 -0
  380. package/contracts/product/ApplicationServiceManager.sol +38 -0
  381. package/contracts/product/BasicProduct.sol +53 -0
  382. package/contracts/product/BasicProductAuthorization.sol +43 -0
  383. package/contracts/product/ClaimService.sol +573 -0
  384. package/contracts/product/ClaimServiceManager.sol +38 -0
  385. package/contracts/product/IApplicationService.sol +63 -0
  386. package/contracts/product/IClaimService.sol +122 -0
  387. package/contracts/product/IPolicyService.sol +77 -0
  388. package/contracts/product/IPricingService.sol +39 -0
  389. package/contracts/product/IProductComponent.sol +39 -0
  390. package/contracts/product/IRiskService.sol +33 -0
  391. package/contracts/product/PolicyService.sol +646 -0
  392. package/contracts/product/PolicyServiceManager.sol +39 -0
  393. package/contracts/product/PricingService.sol +300 -0
  394. package/contracts/product/PricingServiceManager.sol +39 -0
  395. package/contracts/product/Product.sol +426 -0
  396. package/contracts/product/RiskService.sol +96 -0
  397. package/contracts/product/RiskServiceManager.sol +39 -0
  398. package/contracts/registry/ChainNft.sol +79 -31
  399. package/contracts/registry/IRegistry.sol +122 -48
  400. package/contracts/registry/IRegistryService.sol +52 -16
  401. package/contracts/registry/ITransferInterceptor.sol +1 -0
  402. package/contracts/registry/Registry.sol +517 -304
  403. package/contracts/registry/RegistryAdmin.sol +464 -0
  404. package/contracts/registry/RegistryService.sol +121 -268
  405. package/contracts/registry/RegistryServiceManager.sol +26 -53
  406. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  407. package/contracts/registry/ReleaseRegistry.sol +491 -0
  408. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  409. package/contracts/registry/TokenRegistry.sol +261 -57
  410. package/contracts/shared/Component.sol +268 -0
  411. package/contracts/shared/ComponentService.sol +641 -0
  412. package/contracts/shared/ComponentServiceManager.sol +38 -0
  413. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  414. package/contracts/shared/ContractLib.sol +38 -0
  415. package/contracts/shared/IComponent.sol +70 -0
  416. package/contracts/shared/IComponentService.sol +108 -0
  417. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  418. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  419. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  420. package/contracts/shared/INftOwnable.sol +13 -12
  421. package/contracts/shared/IPolicyHolder.sol +35 -0
  422. package/contracts/shared/IRegisterable.sol +4 -6
  423. package/contracts/shared/IRegistryLinked.sol +11 -0
  424. package/contracts/shared/IService.sol +16 -6
  425. package/contracts/shared/InitializableCustom.sol +177 -0
  426. package/contracts/shared/InitializableERC165.sol +27 -0
  427. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  428. package/contracts/shared/KeyValueStore.sol +131 -0
  429. package/contracts/shared/Lifecycle.sol +77 -0
  430. package/contracts/shared/NftIdSet.sol +65 -0
  431. package/contracts/shared/NftOwnable.sol +60 -89
  432. package/contracts/shared/PolicyHolder.sol +58 -0
  433. package/contracts/shared/Registerable.sol +23 -38
  434. package/contracts/shared/RegistryLinked.sol +44 -0
  435. package/contracts/shared/Service.sol +63 -30
  436. package/contracts/shared/TokenHandler.sol +122 -10
  437. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  438. package/contracts/staking/IStaking.sol +168 -0
  439. package/contracts/staking/IStakingService.sol +160 -0
  440. package/contracts/staking/StakeManagerLib.sol +224 -0
  441. package/contracts/staking/Staking.sol +498 -0
  442. package/contracts/staking/StakingLifecycle.sol +23 -0
  443. package/contracts/staking/StakingManager.sol +52 -0
  444. package/contracts/staking/StakingReader.sol +183 -0
  445. package/contracts/staking/StakingService.sol +407 -0
  446. package/contracts/staking/StakingServiceManager.sol +44 -0
  447. package/contracts/staking/StakingStore.sol +605 -0
  448. package/contracts/staking/TargetManagerLib.sol +211 -0
  449. package/contracts/{types → type}/AddressSet.sol +1 -1
  450. package/contracts/type/Amount.sol +135 -0
  451. package/contracts/{types → type}/Blocknumber.sol +27 -3
  452. package/contracts/type/ClaimId.sol +75 -0
  453. package/contracts/{types → type}/DistributorType.sol +2 -2
  454. package/contracts/{types → type}/Fee.sol +33 -23
  455. package/contracts/{types → type}/NftId.sol +21 -15
  456. package/contracts/type/NftIdSet.sol +62 -0
  457. package/contracts/type/ObjectType.sol +275 -0
  458. package/contracts/type/PayoutId.sol +82 -0
  459. package/contracts/{types → type}/Referral.sol +6 -1
  460. package/contracts/type/RequestId.sol +75 -0
  461. package/contracts/{types → type}/RiskId.sol +1 -1
  462. package/contracts/type/RoleId.sol +174 -0
  463. package/contracts/type/Seconds.sol +101 -0
  464. package/contracts/type/Selector.sol +102 -0
  465. package/contracts/{types → type}/StateId.sol +35 -4
  466. package/contracts/type/String.sol +53 -0
  467. package/contracts/{types → type}/Timestamp.sol +34 -15
  468. package/contracts/{types → type}/UFixed.sol +35 -9
  469. package/contracts/{types → type}/Version.sol +5 -2
  470. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  471. package/contracts/upgradeability/ProxyManager.sol +231 -0
  472. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  473. package/contracts/upgradeability/Versionable.sol +59 -0
  474. package/package.json +10 -7
  475. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  477. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  478. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  479. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  480. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  481. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  482. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  483. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  484. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  485. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  486. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  487. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  488. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -790
  489. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  490. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  491. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  493. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  495. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  497. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  499. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  501. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  503. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  505. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  507. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  509. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  511. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  514. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  516. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  518. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  521. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  523. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  525. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  527. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  529. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  530. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  531. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  532. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  533. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  535. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  538. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  540. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  542. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  544. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  548. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -657
  550. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  552. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  556. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  558. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  562. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  564. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  565. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  566. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  567. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  568. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  569. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  571. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  572. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  573. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  575. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  576. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  577. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  578. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  579. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  580. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  581. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  582. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  583. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  584. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  585. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  586. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  587. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  589. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  590. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  591. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  593. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  594. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  595. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  596. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  597. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  599. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  600. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  601. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  603. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  605. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  607. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  609. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  611. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  614. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  616. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  618. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  620. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  622. package/contracts/components/BaseComponent.sol +0 -91
  623. package/contracts/components/Distribution.sol +0 -166
  624. package/contracts/components/IBaseComponent.sol +0 -25
  625. package/contracts/components/IDistributionComponent.sol +0 -46
  626. package/contracts/components/IPoolComponent.sol +0 -62
  627. package/contracts/components/IProductComponent.sol +0 -35
  628. package/contracts/components/Pool.sol +0 -258
  629. package/contracts/components/Product.sol +0 -297
  630. package/contracts/experiment/cloning/Cloner.sol +0 -47
  631. package/contracts/experiment/errors/Require.sol +0 -38
  632. package/contracts/experiment/errors/Revert.sol +0 -44
  633. package/contracts/experiment/inheritance/A.sol +0 -53
  634. package/contracts/experiment/inheritance/B.sol +0 -28
  635. package/contracts/experiment/inheritance/C.sol +0 -34
  636. package/contracts/experiment/inheritance/IA.sol +0 -13
  637. package/contracts/experiment/inheritance/IB.sol +0 -10
  638. package/contracts/experiment/inheritance/IC.sol +0 -12
  639. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  640. package/contracts/experiment/statemachine/ISM.sol +0 -25
  641. package/contracts/experiment/statemachine/SM.sol +0 -57
  642. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  643. package/contracts/experiment/types/TypeA.sol +0 -47
  644. package/contracts/experiment/types/TypeB.sol +0 -29
  645. package/contracts/instance/AccessManagedSimple.sol +0 -115
  646. package/contracts/instance/AccessManagerSimple.sol +0 -692
  647. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  648. package/contracts/instance/InstanceAccessManager.sol +0 -288
  649. package/contracts/instance/base/ComponentServiceBase.sol +0 -41
  650. package/contracts/instance/base/IInstanceBase.sol +0 -23
  651. package/contracts/instance/base/KeyValueStore.sol +0 -172
  652. package/contracts/instance/base/Lifecycle.sol +0 -100
  653. package/contracts/instance/module/ISetup.sol +0 -43
  654. package/contracts/instance/module/ITreasury.sol +0 -23
  655. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  656. package/contracts/instance/service/DistributionService.sol +0 -105
  657. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  658. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  659. package/contracts/instance/service/IDistributionService.sol +0 -12
  660. package/contracts/instance/service/IPoolService.sol +0 -37
  661. package/contracts/instance/service/IProductService.sol +0 -107
  662. package/contracts/shared/ContractDeployerLib.sol +0 -72
  663. package/contracts/shared/ERC165.sol +0 -25
  664. package/contracts/shared/ProxyManager.sol +0 -94
  665. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  666. package/contracts/shared/Versionable.sol +0 -147
  667. package/contracts/test/TestFee.sol +0 -25
  668. package/contracts/test/TestRegisterable.sol +0 -18
  669. package/contracts/test/TestRoleId.sol +0 -14
  670. package/contracts/test/TestService.sol +0 -24
  671. package/contracts/test/TestToken.sol +0 -26
  672. package/contracts/test/TestVersion.sol +0 -44
  673. package/contracts/test/TestVersionable.sol +0 -17
  674. package/contracts/types/ChainId.sol +0 -38
  675. package/contracts/types/NftIdSet.sol +0 -60
  676. package/contracts/types/NumberId.sol +0 -52
  677. package/contracts/types/ObjectType.sol +0 -152
  678. package/contracts/types/RoleId.sol +0 -88
  679. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,692 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Context} from "@openzeppelin/contracts/utils/Context.sol";
5
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
-
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
- // Structure that stores the details for a target contract.
14
- struct TargetConfig {
15
- mapping(bytes4 selector => uint64 roleId) allowedRoles;
16
- uint112 adminDelay;
17
- bool closed;
18
- }
19
-
20
- // Structure that stores the details for a role/account pair. This structures fit into a single slot.
21
- struct Access {
22
- // Timepoint at which the user gets the permission.
23
- // If this is either 0 or in the future, then the role permission is not available.
24
- uint48 since;
25
- // Delay for execution. Only applies to restricted() / execute() calls.
26
- Delay delay;
27
- }
28
-
29
- // Structure that stores the details of a role.
30
- struct Role {
31
- // Members of the role.
32
- mapping(address user => Access access) members;
33
- // Admin who can grant or revoke permissions.
34
- uint64 admin;
35
- // Guardian who can cancel operations targeting functions that need this role.
36
- uint64 guardian;
37
- // Delay in which the role takes effect after being granted.
38
- Delay grantDelay;
39
- }
40
-
41
- // Structure that stores the details for a scheduled operation. This structure fits into a single slot.
42
- struct Schedule {
43
- // Moment at which the operation can be executed.
44
- uint48 timepoint;
45
- // Operation nonce to allow third-party contracts to identify the operation.
46
- uint32 nonce;
47
- }
48
-
49
- bool private _initialized;
50
-
51
- uint64 public constant ADMIN_ROLE = type(uint64).min; // 0
52
- uint64 public constant PUBLIC_ROLE = type(uint64).max; // 2**64-1
53
-
54
- mapping(address target => TargetConfig mode) private _targets;
55
- mapping(uint64 roleId => Role) private _roles;
56
- mapping(bytes32 operationId => Schedule) private _schedules;
57
-
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;
61
-
62
- /**
63
- * @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
64
- * {_getAdminRestrictions}.
65
- */
66
- modifier onlyAuthorized() {
67
- _checkAuthorized();
68
- _;
69
- }
70
-
71
- constructor(address initialAdmin) {
72
- initialize(initialAdmin);
73
- }
74
-
75
- function initialize(address initialAdmin) public {
76
- require(!_initialized, "AccessManager: already initialized");
77
-
78
- if (initialAdmin == address(0)) {
79
- revert AccessManagerInvalidInitialAdmin(address(0));
80
- }
81
-
82
- // admin is active immediately and without any execution delay.
83
- _grantRole(ADMIN_ROLE, initialAdmin, 0, 0);
84
- _initialized = true;
85
- }
86
-
87
-
88
- // =================================================== GETTERS ====================================================
89
- /// @inheritdoc IAccessManagerSimple
90
- function canCall(
91
- address caller,
92
- address target,
93
- bytes4 selector
94
- ) public view virtual returns (bool immediate, uint32 delay) {
95
- if (isTargetClosed(target)) {
96
- 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);
101
- } else {
102
- uint64 roleId = getTargetFunctionRole(target, selector);
103
- (bool isMember, uint32 currentDelay) = hasRole(roleId, caller);
104
- return isMember ? (currentDelay == 0, currentDelay) : (false, 0);
105
- }
106
- }
107
-
108
- /// @inheritdoc IAccessManagerSimple
109
- function expiration() public view virtual returns (uint32) {
110
- return 1 weeks;
111
- }
112
-
113
- /// @inheritdoc IAccessManagerSimple
114
- function minSetback() public view virtual returns (uint32) {
115
- return 5 days;
116
- }
117
-
118
- /// @inheritdoc IAccessManagerSimple
119
- function isTargetClosed(address target) public view virtual returns (bool) {
120
- return _targets[target].closed;
121
- }
122
-
123
- /// @inheritdoc IAccessManagerSimple
124
- function getTargetFunctionRole(address target, bytes4 selector) public view virtual returns (uint64) {
125
- return _targets[target].allowedRoles[selector];
126
- }
127
-
128
- /// @inheritdoc IAccessManagerSimple
129
- function getTargetAdminDelay(address target) public view virtual returns (uint32) {
130
- // return _targets[target].adminDelay.get();
131
- }
132
-
133
- /// @inheritdoc IAccessManagerSimple
134
- function getRoleAdmin(uint64 roleId) public view virtual returns (uint64) {
135
- return _roles[roleId].admin;
136
- }
137
-
138
- /// @inheritdoc IAccessManagerSimple
139
- function getRoleGuardian(uint64 roleId) public view virtual returns (uint64) {
140
- return _roles[roleId].guardian;
141
- }
142
-
143
- /// @inheritdoc IAccessManagerSimple
144
- function getRoleGrantDelay(uint64 roleId) public view virtual returns (uint32) {
145
- // return _roles[roleId].grantDelay.get();
146
- }
147
-
148
- /// @inheritdoc IAccessManagerSimple
149
- function getAccess(
150
- uint64 roleId,
151
- address account
152
- ) public view virtual returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect) {
153
- Access storage access = _roles[roleId].members[account];
154
-
155
- since = access.since;
156
- // (currentDelay, pendingDelay, effect) = access.delay.getFull();
157
-
158
- return (since, currentDelay, pendingDelay, effect);
159
- }
160
-
161
- /// @inheritdoc IAccessManagerSimple
162
- function hasRole(
163
- uint64 roleId,
164
- address account
165
- ) public view virtual returns (bool isMember, uint32 executionDelay) {
166
- if (roleId == PUBLIC_ROLE) {
167
- return (true, 0);
168
- } else {
169
- (uint48 hasRoleSince, uint32 currentDelay, , ) = getAccess(roleId, account);
170
- // return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
171
- return (hasRoleSince != 0 && hasRoleSince <= uint48(block.timestamp), currentDelay);
172
- }
173
- }
174
-
175
- // =============================================== ROLE MANAGEMENT ===============================================
176
- /// @inheritdoc IAccessManagerSimple
177
- function labelRole(uint64 roleId, string calldata label) public virtual onlyAuthorized {
178
- if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
179
- revert AccessManagerLockedRole(roleId);
180
- }
181
- emit RoleLabel(roleId, label);
182
- }
183
-
184
- /// @inheritdoc IAccessManagerSimple
185
- function grantRole(uint64 roleId, address account, uint32 executionDelay) public virtual onlyAuthorized {
186
- _grantRole(roleId, account, getRoleGrantDelay(roleId), executionDelay);
187
- }
188
-
189
- /// @inheritdoc IAccessManagerSimple
190
- function revokeRole(uint64 roleId, address account) public virtual onlyAuthorized {
191
- _revokeRole(roleId, account);
192
- }
193
-
194
- /// @inheritdoc IAccessManagerSimple
195
- function renounceRole(uint64 roleId, address callerConfirmation) public virtual {
196
- if (callerConfirmation != _msgSender()) {
197
- revert AccessManagerBadConfirmation();
198
- }
199
- _revokeRole(roleId, callerConfirmation);
200
- }
201
-
202
- /// @inheritdoc IAccessManagerSimple
203
- function setRoleAdmin(uint64 roleId, uint64 admin) public virtual onlyAuthorized {
204
- _setRoleAdmin(roleId, admin);
205
- }
206
-
207
- /// @inheritdoc IAccessManagerSimple
208
- function setRoleGuardian(uint64 roleId, uint64 guardian) public virtual onlyAuthorized {
209
- _setRoleGuardian(roleId, guardian);
210
- }
211
-
212
- /// @inheritdoc IAccessManagerSimple
213
- function setGrantDelay(uint64 roleId, uint32 newDelay) public virtual onlyAuthorized {
214
- // _setGrantDelay(roleId, newDelay);
215
- }
216
-
217
- /**
218
- * @dev Internal version of {grantRole} without access control. Returns true if the role was newly granted.
219
- *
220
- * Emits a {RoleGranted} event.
221
- */
222
- function _grantRole(
223
- uint64 roleId,
224
- address account,
225
- uint32 grantDelay,
226
- uint32 executionDelay
227
- ) internal virtual returns (bool) {
228
- if (roleId == PUBLIC_ROLE) {
229
- revert AccessManagerLockedRole(roleId);
230
- }
231
-
232
- bool newMember = _roles[roleId].members[account].since == 0;
233
- uint48 since;
234
-
235
- 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
- // }
247
-
248
- emit RoleGranted(roleId, account, executionDelay, since, newMember);
249
- return newMember;
250
- }
251
-
252
- /**
253
- * @dev Internal version of {revokeRole} without access control. This logic is also used by {renounceRole}.
254
- * Returns true if the role was previously granted.
255
- *
256
- * Emits a {RoleRevoked} event if the account had the role.
257
- */
258
- function _revokeRole(uint64 roleId, address account) internal virtual returns (bool) {
259
- if (roleId == PUBLIC_ROLE) {
260
- revert AccessManagerLockedRole(roleId);
261
- }
262
-
263
- if (_roles[roleId].members[account].since == 0) {
264
- return false;
265
- }
266
-
267
- delete _roles[roleId].members[account];
268
-
269
- emit RoleRevoked(roleId, account);
270
- return true;
271
- }
272
-
273
- /**
274
- * @dev Internal version of {setRoleAdmin} without access control.
275
- *
276
- * Emits a {RoleAdminChanged} event.
277
- *
278
- * NOTE: Setting the admin role as the `PUBLIC_ROLE` is allowed, but it will effectively allow
279
- * anyone to set grant or revoke such role.
280
- */
281
- function _setRoleAdmin(uint64 roleId, uint64 admin) internal virtual {
282
- if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
283
- revert AccessManagerLockedRole(roleId);
284
- }
285
-
286
- _roles[roleId].admin = admin;
287
-
288
- emit RoleAdminChanged(roleId, admin);
289
- }
290
-
291
- /**
292
- * @dev Internal version of {setRoleGuardian} without access control.
293
- *
294
- * Emits a {RoleGuardianChanged} event.
295
- *
296
- * NOTE: Setting the guardian role as the `PUBLIC_ROLE` is allowed, but it will effectively allow
297
- * anyone to cancel any scheduled operation for such role.
298
- */
299
- function _setRoleGuardian(uint64 roleId, uint64 guardian) internal virtual {
300
- if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
301
- revert AccessManagerLockedRole(roleId);
302
- }
303
-
304
- _roles[roleId].guardian = guardian;
305
-
306
- emit RoleGuardianChanged(roleId, guardian);
307
- }
308
-
309
- /**
310
- * @dev Internal version of {setGrantDelay} without access control.
311
- *
312
- * Emits a {RoleGrantDelayChanged} event.
313
- */
314
- // function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
315
- // if (roleId == PUBLIC_ROLE) {
316
- // revert AccessManagerLockedRole(roleId);
317
- // }
318
-
319
- // uint48 effect;
320
- // (_roles[roleId].grantDelay, effect) = _roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
321
-
322
- // emit RoleGrantDelayChanged(roleId, newDelay, effect);
323
- // }
324
-
325
- // ============================================= FUNCTION MANAGEMENT ==============================================
326
- /// @inheritdoc IAccessManagerSimple
327
- function setTargetFunctionRole(
328
- address target,
329
- bytes4[] calldata selectors,
330
- uint64 roleId
331
- ) public virtual onlyAuthorized {
332
- for (uint256 i = 0; i < selectors.length; ++i) {
333
- _setTargetFunctionRole(target, selectors[i], roleId);
334
- }
335
- }
336
-
337
- /**
338
- * @dev Internal version of {setTargetFunctionRole} without access control.
339
- *
340
- * Emits a {TargetFunctionRoleUpdated} event.
341
- */
342
- function _setTargetFunctionRole(address target, bytes4 selector, uint64 roleId) internal virtual {
343
- _targets[target].allowedRoles[selector] = roleId;
344
- emit TargetFunctionRoleUpdated(target, selector, roleId);
345
- }
346
-
347
- /// @inheritdoc IAccessManagerSimple
348
- function setTargetAdminDelay(address target, uint32 newDelay) public virtual onlyAuthorized {
349
- // _setTargetAdminDelay(target, newDelay);
350
- }
351
-
352
- /**
353
- * @dev Internal version of {setTargetAdminDelay} without access control.
354
- *
355
- * Emits a {TargetAdminDelayUpdated} event.
356
- */
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
- // }
363
-
364
- // =============================================== MODE MANAGEMENT ================================================
365
- /// @inheritdoc IAccessManagerSimple
366
- function setTargetClosed(address target, bool closed) public virtual onlyAuthorized {
367
- _setTargetClosed(target, closed);
368
- }
369
-
370
- /**
371
- * @dev Set the closed flag for a contract. This is an internal setter with no access restrictions.
372
- *
373
- * Emits a {TargetClosed} event.
374
- */
375
- function _setTargetClosed(address target, bool closed) internal virtual {
376
- if (target == address(this)) {
377
- revert AccessManagerLockedAccount(target);
378
- }
379
- _targets[target].closed = closed;
380
- emit TargetClosed(target, closed);
381
- }
382
-
383
- // ============================================== DELAYED OPERATIONS ==============================================
384
- /// @inheritdoc IAccessManagerSimple
385
- function getSchedule(bytes32 id) public view virtual returns (uint48) {
386
- // uint48 timepoint = _schedules[id].timepoint;
387
- // return _isExpired(timepoint) ? 0 : timepoint;
388
- }
389
-
390
- /// @inheritdoc IAccessManagerSimple
391
- function getNonce(bytes32 id) public view virtual returns (uint32) {
392
- // return _schedules[id].nonce;
393
- }
394
-
395
- /// @inheritdoc IAccessManagerSimple
396
- function schedule(
397
- address target,
398
- bytes calldata data,
399
- uint48 when
400
- ) public virtual returns (bytes32 operationId, uint32 nonce) {
401
- // address caller = _msgSender();
402
-
403
- // // Fetch restrictions that apply to the caller on the targeted function
404
- // (, uint32 setback) = _canCallExtended(caller, target, data);
405
-
406
- // uint48 minWhen = Time.timestamp() + setback;
407
-
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
- // }
412
-
413
- // // Reuse variable due to stack too deep
414
- // when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
415
-
416
- // // If caller is authorised, schedule operation
417
- // operationId = hashOperation(caller, target, data);
418
-
419
- // _checkNotScheduled(operationId);
420
-
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);
428
-
429
- // // Using named return values because otherwise we get stack too deep
430
- }
431
-
432
- /**
433
- * @dev Reverts if the operation is currently scheduled and has not expired.
434
- * (Note: This function was introduced due to stack too deep errors in schedule.)
435
- */
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
444
- // Reentrancy is not an issue because permissions are checked on msg.sender. Additionally,
445
- // _consumeScheduledOp guarantees a scheduled operation is only executed once.
446
- // slither-disable-next-line reentrancy-no-eth
447
- function execute(address target, bytes calldata data) public payable virtual returns (uint32) {
448
- // address caller = _msgSender();
449
-
450
- // // Fetch restrictions that apply to the caller on the targeted function
451
- // (bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
452
-
453
- // // If caller is not authorised, revert
454
- // if (!immediate && setback == 0) {
455
- // revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
456
- // }
457
-
458
- // bytes32 operationId = hashOperation(caller, target, data);
459
- // uint32 nonce;
460
-
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
- // }
466
-
467
- // // Mark the target and selector as authorised
468
- // bytes32 executionIdBefore = _executionId;
469
- // _executionId = _hashExecutionId(target, _checkSelector(data));
470
-
471
- // // Perform call
472
- // Address.functionCallWithValue(target, data, msg.value);
473
-
474
- // // Reset execute identifier
475
- // _executionId = executionIdBefore;
476
-
477
- // return nonce;
478
- }
479
-
480
- /// @inheritdoc IAccessManagerSimple
481
- function cancel(address caller, address target, bytes calldata data) public virtual returns (uint32) {
482
- // address msgsender = _msgSender();
483
- // bytes4 selector = _checkSelector(data);
484
-
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
- // }
496
-
497
- // delete _schedules[operationId].timepoint; // reset the timepoint, keep the nonce
498
- // uint32 nonce = _schedules[operationId].nonce;
499
- // emit OperationCanceled(operationId, nonce);
500
-
501
- // return nonce;
502
- }
503
-
504
- /// @inheritdoc IAccessManagerSimple
505
- 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
537
- function hashOperation(address caller, address target, bytes calldata data) public view virtual returns (bytes32) {
538
- return keccak256(abi.encode(caller, target, data));
539
- }
540
-
541
- // ==================================================== OTHERS ====================================================
542
- /// @inheritdoc IAccessManagerSimple
543
- function updateAuthority(address target, address newAuthority) public virtual onlyAuthorized {
544
- IAccessManaged(target).setAuthority(newAuthority);
545
- }
546
-
547
- // ================================================= ADMIN LOGIC ==================================================
548
- /**
549
- * @dev Check if the current call is authorized according to admin logic.
550
- */
551
- function _checkAuthorized() private {
552
- address caller = _msgSender();
553
- (bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
554
- if (!immediate) {
555
- if (delay == 0) {
556
- (, uint64 requiredRole, ) = _getAdminRestrictions(_msgData());
557
- revert AccessManagerUnauthorizedAccount(caller, requiredRole);
558
- }
559
- // else {
560
- // _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
561
- // }
562
- }
563
- }
564
-
565
- /**
566
- * @dev Get the admin restrictions of a given function call based on the function and arguments involved.
567
- *
568
- * Returns:
569
- * - bool restricted: does this data match a restricted operation
570
- * - uint64: which role is this operation restricted to
571
- * - uint32: minimum delay to enforce for that operation (max between operation's delay and admin's execution delay)
572
- */
573
- function _getAdminRestrictions(
574
- bytes calldata data
575
- ) private view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
576
- if (data.length < 4) {
577
- return (false, 0, 0);
578
- }
579
-
580
- bytes4 selector = _checkSelector(data);
581
-
582
- // Restricted to ADMIN with no delay beside any execution delay the caller may have
583
- if (
584
- selector == this.labelRole.selector ||
585
- selector == this.setRoleAdmin.selector ||
586
- selector == this.setRoleGuardian.selector ||
587
- selector == this.setGrantDelay.selector ||
588
- selector == this.setTargetAdminDelay.selector
589
- ) {
590
- return (true, ADMIN_ROLE, 0);
591
- }
592
-
593
- // Restricted to ADMIN with the admin delay corresponding to the target
594
- if (
595
- selector == this.updateAuthority.selector ||
596
- selector == this.setTargetClosed.selector ||
597
- selector == this.setTargetFunctionRole.selector
598
- ) {
599
- // First argument is a target.
600
- address target = abi.decode(data[0x04:0x24], (address));
601
- uint32 delay = getTargetAdminDelay(target);
602
- return (true, ADMIN_ROLE, delay);
603
- }
604
-
605
- // Restricted to that role's admin with no delay beside any execution delay the caller may have.
606
- if (selector == this.grantRole.selector || selector == this.revokeRole.selector) {
607
- // First argument is a roleId.
608
- uint64 roleId = abi.decode(data[0x04:0x24], (uint64));
609
- return (true, getRoleAdmin(roleId), 0);
610
- }
611
-
612
- return (false, 0, 0);
613
- }
614
-
615
- // =================================================== HELPERS ====================================================
616
- /**
617
- * @dev An extended version of {canCall} for internal usage that checks {_canCallSelf}
618
- * when the target is this contract.
619
- *
620
- * Returns:
621
- * - bool immediate: whether the operation can be executed immediately (with no delay)
622
- * - uint32 delay: the execution delay
623
- */
624
- function _canCallExtended(
625
- address caller,
626
- address target,
627
- bytes calldata data
628
- ) private view returns (bool immediate, uint32 delay) {
629
- if (target == address(this)) {
630
- return _canCallSelf(caller, data);
631
- } else {
632
- return data.length < 4 ? (false, 0) : canCall(caller, target, _checkSelector(data));
633
- }
634
- }
635
-
636
- /**
637
- * @dev A version of {canCall} that checks for admin restrictions in this contract.
638
- */
639
- function _canCallSelf(address caller, bytes calldata data) private view returns (bool immediate, uint32 delay) {
640
- if (data.length < 4) {
641
- return (false, 0);
642
- }
643
-
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
- // }
649
-
650
- (bool enabled, uint64 roleId, uint32 operationDelay) = _getAdminRestrictions(data);
651
- if (!enabled) {
652
- return (false, 0);
653
- }
654
-
655
- (bool inRole, uint32 executionDelay) = hasRole(roleId, caller);
656
- if (!inRole) {
657
- return (false, 0);
658
- }
659
-
660
- // downcast is safe because both options are uint32
661
- delay = 0; // uint32(Math.max(operationDelay, executionDelay));
662
- return (delay == 0, delay);
663
- }
664
-
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
- // }
671
-
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
- // }
678
-
679
- /**
680
- * @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
681
- */
682
- function _checkSelector(bytes calldata data) private pure returns (bytes4) {
683
- return bytes4(data[0:4]);
684
- }
685
-
686
- /**
687
- * @dev Hashing function for execute protection
688
- */
689
- // function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
690
- // return keccak256(abi.encode(target, selector));
691
- // }
692
- }