@etherisc/gif-next 0.0.2-a733491-751 → 0.0.2-a78920e-322

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 (673) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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 +414 -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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1310 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1004 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +321 -361
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1415 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1965 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +304 -2127
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +260 -101
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +368 -2916
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1671 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1028 -361
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +333 -364
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -114
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +12 -115
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  93. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +370 -283
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  105. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +344 -334
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  111. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +468 -550
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +964 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  121. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +410 -402
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  135. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +420 -532
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +173 -89
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +931 -0
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +244 -238
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  151. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +457 -272
  152. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +120 -64
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  162. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  163. package/artifacts/contracts/product/Product.sol/Product.json +1092 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -123
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -253
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1916 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +838 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +118 -185
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +245 -138
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1467 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +135 -18
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  224. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  227. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  240. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Service.sol/Service.json +136 -108
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  249. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +723 -677
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  321. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  327. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  328. package/contracts/authorization/AccessAdmin.sol +596 -0
  329. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  330. package/contracts/authorization/Authorization.sol +289 -0
  331. package/contracts/authorization/IAccess.sol +49 -0
  332. package/contracts/authorization/IAccessAdmin.sol +137 -0
  333. package/contracts/authorization/IAuthorization.sol +60 -0
  334. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  335. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  336. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  337. package/contracts/distribution/BasicDistribution.sol +139 -0
  338. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  339. package/contracts/distribution/Distribution.sol +284 -0
  340. package/contracts/distribution/DistributionService.sol +354 -0
  341. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  342. package/contracts/distribution/IDistributionComponent.sol +52 -0
  343. package/contracts/distribution/IDistributionService.sol +100 -0
  344. package/contracts/examples/fire/DamageLevel.sol +59 -0
  345. package/contracts/examples/fire/FirePool.sol +86 -0
  346. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  347. package/contracts/examples/fire/FireProduct.sol +431 -0
  348. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  349. package/contracts/examples/fire/FireUSD.sol +26 -0
  350. package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
  351. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  352. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  353. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  354. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  355. package/contracts/instance/IInstance.sol +45 -74
  356. package/contracts/instance/IInstanceService.sol +33 -32
  357. package/contracts/instance/Instance.sol +164 -230
  358. package/contracts/instance/InstanceAdmin.sol +283 -0
  359. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  360. package/contracts/instance/InstanceReader.sol +264 -62
  361. package/contracts/instance/InstanceService.sol +246 -333
  362. package/contracts/instance/InstanceServiceManager.sol +14 -29
  363. package/contracts/instance/InstanceStore.sol +287 -0
  364. package/contracts/instance/base/BalanceStore.sol +123 -0
  365. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  366. package/contracts/instance/base/ObjectCounter.sol +21 -0
  367. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  368. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  369. package/contracts/instance/module/IAccess.sol +6 -14
  370. package/contracts/instance/module/IBundle.sol +8 -8
  371. package/contracts/instance/module/IComponents.sol +50 -0
  372. package/contracts/instance/module/IDistribution.sol +6 -4
  373. package/contracts/instance/module/IPolicy.sol +56 -18
  374. package/contracts/instance/module/IRisk.sol +1 -1
  375. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  376. package/contracts/oracle/BasicOracle.sol +47 -0
  377. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  378. package/contracts/oracle/IOracle.sol +36 -0
  379. package/contracts/oracle/IOracleComponent.sol +33 -0
  380. package/contracts/oracle/IOracleService.sol +66 -0
  381. package/contracts/oracle/Oracle.sol +156 -0
  382. package/contracts/oracle/OracleService.sol +292 -0
  383. package/contracts/oracle/OracleServiceManager.sol +39 -0
  384. package/contracts/pool/BasicPool.sol +175 -0
  385. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  386. package/contracts/pool/BundleService.sol +485 -0
  387. package/contracts/pool/BundleServiceManager.sol +39 -0
  388. package/contracts/pool/IBundleService.sol +140 -0
  389. package/contracts/pool/IPoolComponent.sol +62 -0
  390. package/contracts/pool/IPoolService.sol +172 -0
  391. package/contracts/pool/Pool.sol +345 -0
  392. package/contracts/pool/PoolService.sol +620 -0
  393. package/contracts/pool/PoolServiceManager.sol +39 -0
  394. package/contracts/product/ApplicationService.sol +259 -0
  395. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  396. package/contracts/product/BasicProduct.sol +49 -0
  397. package/contracts/product/BasicProductAuthorization.sol +42 -0
  398. package/contracts/product/ClaimService.sol +614 -0
  399. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  400. package/contracts/{instance/service → product}/IApplicationService.sol +17 -36
  401. package/contracts/product/IClaimService.sol +123 -0
  402. package/contracts/product/IPolicyService.sol +82 -0
  403. package/contracts/product/IPricingService.sol +39 -0
  404. package/contracts/product/IProductComponent.sol +59 -0
  405. package/contracts/product/IRiskService.sol +33 -0
  406. package/contracts/product/PolicyService.sol +695 -0
  407. package/contracts/product/PolicyServiceManager.sol +39 -0
  408. package/contracts/product/PricingService.sol +300 -0
  409. package/contracts/product/PricingServiceManager.sol +39 -0
  410. package/contracts/product/Product.sol +432 -0
  411. package/contracts/product/RiskService.sol +96 -0
  412. package/contracts/product/RiskServiceManager.sol +39 -0
  413. package/contracts/registry/ChainNft.sol +79 -34
  414. package/contracts/registry/IRegistry.sol +98 -26
  415. package/contracts/registry/IRegistryService.sol +36 -41
  416. package/contracts/registry/ITransferInterceptor.sol +1 -1
  417. package/contracts/registry/Registry.sol +454 -198
  418. package/contracts/registry/RegistryAdmin.sol +462 -0
  419. package/contracts/registry/RegistryService.sol +87 -129
  420. package/contracts/registry/RegistryServiceManager.sol +23 -32
  421. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  422. package/contracts/registry/ReleaseRegistry.sol +485 -0
  423. package/contracts/registry/ServiceAuthorizationV3.sol +204 -0
  424. package/contracts/registry/TokenRegistry.sol +261 -62
  425. package/contracts/shared/Component.sol +234 -0
  426. package/contracts/shared/ComponentService.sol +826 -0
  427. package/contracts/shared/ComponentServiceManager.sol +38 -0
  428. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  429. package/contracts/shared/ContractLib.sol +54 -0
  430. package/contracts/shared/IComponent.sol +67 -0
  431. package/contracts/shared/IComponentService.sol +134 -0
  432. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  433. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  434. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  435. package/contracts/shared/INftOwnable.sol +4 -2
  436. package/contracts/shared/IPolicyHolder.sol +23 -14
  437. package/contracts/shared/IRegisterable.sol +11 -0
  438. package/contracts/shared/IRegistryLinked.sol +0 -1
  439. package/contracts/shared/IService.sol +15 -6
  440. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  441. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  442. package/contracts/shared/KeyValueStore.sol +131 -0
  443. package/contracts/shared/Lifecycle.sol +88 -0
  444. package/contracts/shared/NftIdSet.sol +65 -0
  445. package/contracts/shared/NftOwnable.sol +32 -25
  446. package/contracts/shared/PolicyHolder.sol +22 -41
  447. package/contracts/shared/Registerable.sol +31 -22
  448. package/contracts/shared/RegistryLinked.sol +9 -19
  449. package/contracts/shared/Service.sol +55 -29
  450. package/contracts/shared/TokenHandler.sol +382 -12
  451. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  452. package/contracts/staking/IStaking.sol +173 -0
  453. package/contracts/staking/IStakingService.sol +157 -0
  454. package/contracts/staking/StakeManagerLib.sol +224 -0
  455. package/contracts/staking/Staking.sol +505 -0
  456. package/contracts/staking/StakingLifecycle.sol +23 -0
  457. package/contracts/staking/StakingManager.sol +52 -0
  458. package/contracts/staking/StakingReader.sol +190 -0
  459. package/contracts/staking/StakingService.sol +453 -0
  460. package/contracts/staking/StakingServiceManager.sol +44 -0
  461. package/contracts/staking/StakingStore.sol +605 -0
  462. package/contracts/staking/TargetManagerLib.sol +211 -0
  463. package/contracts/{types → type}/AddressSet.sol +1 -1
  464. package/contracts/type/Amount.sol +150 -0
  465. package/contracts/{types → type}/Blocknumber.sol +27 -3
  466. package/contracts/{types → type}/ClaimId.sol +31 -3
  467. package/contracts/{types → type}/Fee.sol +33 -23
  468. package/contracts/{types → type}/NftId.sol +22 -15
  469. package/contracts/{types → type}/NftIdSet.sol +2 -2
  470. package/contracts/type/ObjectType.sol +276 -0
  471. package/contracts/type/PayoutId.sol +82 -0
  472. package/contracts/{types → type}/Referral.sol +6 -1
  473. package/contracts/type/RequestId.sol +75 -0
  474. package/contracts/{types → type}/RiskId.sol +17 -3
  475. package/contracts/type/RoleId.sol +162 -0
  476. package/contracts/type/Seconds.sol +101 -0
  477. package/contracts/type/Selector.sol +102 -0
  478. package/contracts/{types → type}/StateId.sol +48 -4
  479. package/contracts/type/String.sol +53 -0
  480. package/contracts/{types → type}/Timestamp.sol +34 -15
  481. package/contracts/{types → type}/UFixed.sol +39 -9
  482. package/contracts/{types → type}/Version.sol +5 -2
  483. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  484. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  485. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  486. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  487. package/package.json +11 -7
  488. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  489. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  490. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  494. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  495. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  497. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  499. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  500. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1221
  503. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  505. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  510. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  512. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  516. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  518. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  520. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  522. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  524. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  526. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -943
  528. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -681
  530. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  534. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  536. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  539. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  542. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  544. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -724
  546. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  548. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  550. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  552. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  553. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  554. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  555. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  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 -73
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  562. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  563. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  564. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  565. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  568. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  570. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  572. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  574. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  576. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  578. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  580. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  581. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  582. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  583. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  584. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  586. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  588. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  590. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  592. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  594. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  595. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  596. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  598. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  599. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  600. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  602. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  604. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  606. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  608. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  610. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  612. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  614. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  616. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  618. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  620. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  622. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  624. package/contracts/components/Component.sol +0 -241
  625. package/contracts/components/Distribution.sol +0 -308
  626. package/contracts/components/IComponent.sol +0 -54
  627. package/contracts/components/IDistributionComponent.sol +0 -100
  628. package/contracts/components/IPoolComponent.sol +0 -87
  629. package/contracts/components/IProductComponent.sol +0 -39
  630. package/contracts/components/Pool.sol +0 -254
  631. package/contracts/components/Product.sol +0 -285
  632. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  633. package/contracts/instance/InstanceAccessManager.sol +0 -580
  634. package/contracts/instance/base/ComponentService.sol +0 -134
  635. package/contracts/instance/base/KeyValueStore.sol +0 -172
  636. package/contracts/instance/base/Lifecycle.sol +0 -100
  637. package/contracts/instance/module/ISetup.sol +0 -47
  638. package/contracts/instance/module/ITreasury.sol +0 -23
  639. package/contracts/instance/service/ApplicationService.sol +0 -268
  640. package/contracts/instance/service/BundleService.sol +0 -298
  641. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  642. package/contracts/instance/service/ClaimService.sol +0 -151
  643. package/contracts/instance/service/DistributionService.sol +0 -295
  644. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  645. package/contracts/instance/service/IBundleService.sol +0 -54
  646. package/contracts/instance/service/IClaimService.sol +0 -61
  647. package/contracts/instance/service/IDistributionService.sol +0 -65
  648. package/contracts/instance/service/IPolicyService.sol +0 -89
  649. package/contracts/instance/service/IPoolService.sol +0 -20
  650. package/contracts/instance/service/IProductService.sol +0 -40
  651. package/contracts/instance/service/PolicyService.sol +0 -474
  652. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  653. package/contracts/instance/service/PoolService.sol +0 -125
  654. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  655. package/contracts/instance/service/ProductService.sol +0 -241
  656. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  657. package/contracts/registry/RegistryAccessManager.sol +0 -216
  658. package/contracts/registry/ReleaseManager.sol +0 -322
  659. package/contracts/shared/ContractDeployerLib.sol +0 -72
  660. package/contracts/test/TestFee.sol +0 -25
  661. package/contracts/test/TestRegisterable.sol +0 -18
  662. package/contracts/test/TestRoleId.sol +0 -14
  663. package/contracts/test/TestService.sol +0 -25
  664. package/contracts/test/TestToken.sol +0 -26
  665. package/contracts/test/TestVersion.sol +0 -44
  666. package/contracts/test/TestVersionable.sol +0 -17
  667. package/contracts/types/ChainId.sol +0 -38
  668. package/contracts/types/NumberId.sol +0 -52
  669. package/contracts/types/ObjectType.sol +0 -156
  670. package/contracts/types/PayoutId.sol +0 -54
  671. package/contracts/types/RoleId.sol +0 -93
  672. /package/contracts/{types → type}/DistributorType.sol +0 -0
  673. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,580 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
6
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
7
-
8
- import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, INSTANCE_SERVICE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
9
- import {TimestampLib} from "../types/Timestamp.sol";
10
- import {NftId} from "../types/NftId.sol";
11
-
12
- import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
13
-
14
- import {IAccess} from "./module/IAccess.sol";
15
- import {IRegistry} from "../registry/IRegistry.sol";
16
-
17
- contract InstanceAccessManager is
18
- AccessManagedUpgradeable
19
- {
20
- using RoleIdLib for RoleId;
21
-
22
- string public constant ADMIN_ROLE_NAME = "AdminRole";
23
- string public constant PUBLIC_ROLE_NAME = "PublicRole";
24
-
25
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
26
- uint32 public constant EXECUTION_DELAY = 0;
27
-
28
- // role specific state
29
- mapping(RoleId roleId => IAccess.RoleInfo info) internal _roleInfo;
30
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
31
- mapping(ShortString name => RoleId roleId) internal _roleIdForName;
32
- RoleId [] internal _roleIds;
33
- uint64 _idNext;
34
-
35
- // target specific state
36
- mapping(address target => IAccess.TargetInfo info) internal _targetInfo;
37
- mapping(ShortString name => address target) internal _targetAddressForName;
38
- address [] internal _targets;
39
-
40
- AccessManagerUpgradeableInitializeable internal _accessManager;
41
- IRegistry internal _registry;
42
-
43
- modifier restrictedToRoleAdmin(RoleId roleId) {
44
- RoleId admin = getRoleAdmin(roleId);
45
- (bool inRole, uint32 executionDelay) = _accessManager.hasRole(admin.toInt(), _msgSender());
46
- assert(executionDelay == 0); // to be sure no delayed execution functionality is used
47
- if (!inRole) {
48
- revert IAccess.ErrorIAccessCallerIsNotRoleAdmin(_msgSender(), roleId);
49
- }
50
- _;
51
- }
52
-
53
- function initialize(address ozAccessManager, address registry) external initializer
54
- {
55
- require(ozAccessManager != address(0));
56
- require(registry != address(0));
57
-
58
- __AccessManaged_init(ozAccessManager);
59
-
60
- _accessManager = AccessManagerUpgradeableInitializeable(ozAccessManager);
61
- _registry = IRegistry(registry);
62
- _idNext = CUSTOM_ROLE_ID_MIN;
63
-
64
- _createRole(ADMIN_ROLE(), ADMIN_ROLE_NAME, IAccess.Type.Core);
65
- _createRole(PUBLIC_ROLE(), PUBLIC_ROLE_NAME, IAccess.Type.Core);
66
-
67
- // assume `this` is already a member of ADMIN_ROLE
68
- // assume msg.sender is instance service which is also member of ADMIN_ROLE
69
- // assume instance service will renounce ADMIN_ROLE through ozAccessManager and should not be added to _roleMembers here
70
- EnumerableSet.add(_roleMembers[ADMIN_ROLE()], address(this));
71
- //EnumerableSet.add(_roleMembers[ADMIN_ROLE()], initialAdmin);
72
- }
73
-
74
- //--- Role ------------------------------------------------------//
75
- // INSTANCE_SERVICE_ROLE
76
- // assume core roles are never revoked or renounced -> core roles admin is never active after intialization
77
- function createCoreRole(RoleId roleId, string memory name)
78
- external
79
- restricted()
80
- {
81
- _createRole(roleId, name, IAccess.Type.Core);
82
- }
83
- // INSTANCE_SERVICE_ROLE
84
- // assume gif roles can be revoked or renounced
85
- // TODO who can be admin of gif role?
86
- function createGifRole(RoleId roleId, string memory name, RoleId admin)
87
- external
88
- restricted()
89
- {
90
- _createRole(roleId, name, IAccess.Type.Gif);
91
- setRoleAdmin(roleId, admin);
92
- }
93
-
94
- // INSTANCE_OWNER_ROLE
95
- function createCustomRole(string memory roleName, string memory adminName)
96
- external
97
- restricted()
98
- returns(RoleId roleId, RoleId admin)
99
- {
100
- (roleId, admin) = _getNextCustomRoleId();
101
-
102
- _createRole(roleId, roleName, IAccess.Type.Custom);
103
- _createRole(admin, adminName, IAccess.Type.Custom);
104
-
105
- // TODO works without this -> why?
106
- setRoleAdmin(roleId, admin);
107
- setRoleAdmin(admin, INSTANCE_OWNER_ROLE());
108
- }
109
-
110
- // ADMIN_ROLE
111
- // TODO restricted to ADMIN_ROLE or have restrictedToRoleAdmin modifier ???
112
- function setRoleAdmin(RoleId roleId, RoleId admin)
113
- public
114
- restricted()
115
- {
116
- if (!roleExists(roleId)) {
117
- revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
118
- }
119
-
120
- if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
121
- revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
122
- }
123
-
124
- if (!roleExists(admin)) {
125
- revert IAccess.ErrorIAccessRoleIdInvalid(admin);
126
- }
127
-
128
- _roleInfo[roleId].admin = admin;
129
- }
130
-
131
- // TODO notify member?
132
- // TODO granting/revoking can be `attached` to nft transfer?
133
- function grantRole(RoleId roleId, address member)
134
- public
135
- restrictedToRoleAdmin(roleId)
136
- returns (bool granted)
137
- {
138
- if (!roleExists(roleId)) {
139
- revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
140
- }
141
-
142
- granted = EnumerableSet.add(_roleMembers[roleId], member);
143
- if(granted) {
144
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
145
- }
146
- }
147
-
148
- function revokeRole(RoleId roleId, address member)
149
- external
150
- restrictedToRoleAdmin(roleId)
151
- returns (bool)
152
- {
153
- return _revokeRole(roleId, member);
154
- }
155
-
156
- /// @dev not restricted function by intention
157
- /// the restriction to role members is already enforced by the call to the access manager
158
- function renounceRole(RoleId roleId)
159
- external
160
- returns (bool)
161
- {
162
- address member = msg.sender;
163
- // cannot use accessManger.renounce as it directly checks against msg.sender
164
- return _revokeRole(roleId, member);
165
- }
166
-
167
- function roleExists(RoleId roleId) public view returns (bool exists) {
168
- return _roleInfo[roleId].createdAt.gtz();
169
- }
170
- // TODO returns ADMIN_ROLE id for non existent roleId
171
- function getRoleAdmin(RoleId roleId) public view returns(RoleId admin) {
172
- return _roleInfo[roleId].admin;
173
- }
174
-
175
- function getRoleInfo(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
176
- return _roleInfo[roleId];
177
- }
178
-
179
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
180
- return EnumerableSet.length(_roleMembers[roleId]);
181
- }
182
-
183
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
184
- return _roleIds[idx];
185
- }
186
-
187
- // TODO now: for non existent name returns ADMIN_ROLE id
188
- function getRoleIdForName(string memory name) external view returns (RoleId roleId) {
189
- return _roleIdForName[ShortStrings.toShortString(name)];
190
- }
191
-
192
- function roleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
193
- return EnumerableSet.at(_roleMembers[roleId], idx);
194
- }
195
-
196
- function hasRole(RoleId roleId, address account) external view returns (bool accountHasRole) {
197
- (accountHasRole, ) = _accessManager.hasRole(roleId.toInt(), account);
198
- }
199
-
200
- function roles() external view returns (uint256 numberOfRoles) {
201
- return _roleIds.length;
202
- }
203
-
204
- function isCustomRoleAdmin(RoleId roleId) public pure returns (bool) {
205
- uint roleIdInt = roleId.toInt();
206
- return (
207
- roleIdInt >= CUSTOM_ROLE_ID_MIN &&
208
- roleIdInt % 2 == 1
209
- );
210
- }
211
-
212
- //--- Target ------------------------------------------------------//
213
- // INSTANCE_SERVICE_ROLE
214
- // assume some core targets are registred (instance) while others are not (instance accesss manager, instance reader, bundle manager)
215
- function createCoreTarget(address target, string memory name) external restricted() {
216
- _createTarget(target, name, IAccess.Type.Core);
217
- }
218
- // INSTANCE_SERVICE_ROLE
219
- // assume gif target is registered and belongs to the same instance as instance access manager
220
- function createGifTarget(address target, string memory name) external restricted()
221
- {
222
- _createTarget(target, name, IAccess.Type.Gif);
223
- }
224
- // INSTANCE_OWNER_ROLE
225
- // assume custom target.authority() is constant -> target can not be used with different instance access manager
226
- // assume custom target can not be registered as component -> each service which is doing component registration MUST register a gif target
227
- // assume custom target can not be registered as instance or service -> why?
228
- // TODO check target associated with instance owner or instance or instance's components or components helpers
229
- function createCustomTarget(address target, string memory name)
230
- external
231
- restricted()
232
- {
233
- if(_registry.isRegistered(target)) {
234
- revert IAccess.ErrorIAccessTargetIsRegistered(target);
235
- }
236
-
237
- _createTarget(target, name, IAccess.Type.Custom);
238
- }
239
- // INSTANCE_SERVICE_ROLE
240
- // IMPORTANT: instance access manager MUST be of Core type -> otherwise will be locked forever
241
- function setTargetLocked(string memory targetName, bool locked)
242
- external
243
- restricted()
244
- {
245
- ShortString nameShort = ShortStrings.toShortString(targetName);
246
- address target = _targetAddressForName[nameShort];
247
-
248
- if (target == address(0)) {
249
- revert IAccess.ErrorIAccessTargetDoesNotExist(nameShort);
250
- }
251
-
252
- if(_targetInfo[target].ttype == IAccess.Type.Core) {
253
- revert IAccess.ErrorIAccessTargetTypeInvalid(nameShort, _targetInfo[target].ttype);
254
- }
255
- // TODO isLocked is redundant but makes getTargetInfo() faster
256
- _targetInfo[target].isLocked = locked;
257
- _accessManager.setTargetClosed(target, locked);
258
- }
259
-
260
- // allowed combinations of roles and targets:
261
- //1) set core role for core target
262
- //2) set gif role for gif target
263
- //3) set custom role for gif target
264
- //4) set custom role for custom target
265
-
266
- // ADMIN_ROLE if used only during initialization, works with:
267
- // any roles for any targets
268
- // INSTANCE_SERVICE_ROLE if used not only during initilization, works with:
269
- // core roles for core targets
270
- // gif roles for gif targets
271
- function setTargetFunctionRole(
272
- string memory targetName,
273
- bytes4[] calldata selectors,
274
- RoleId roleId
275
- )
276
- public
277
- virtual
278
- restricted()
279
- {
280
- ShortString nameShort = ShortStrings.toShortString(targetName);
281
- address target = _targetAddressForName[nameShort];
282
-
283
- // not custom target
284
- if(_targetInfo[target].ttype == IAccess.Type.Custom) {
285
- revert IAccess.ErrorIAccessTargetTypeInvalid(nameShort, _targetInfo[target].ttype);
286
- }
287
-
288
- // not custom role
289
- if(_roleInfo[roleId].rtype == IAccess.Type.Custom) {
290
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, _roleInfo[roleId].rtype);
291
- }
292
-
293
- _setTargetFunctionRole(target, nameShort, selectors, roleId);
294
- }
295
-
296
- // INSTANCE_OWNER_ROLE
297
- // custom role for gif target
298
- // custom role for custom target
299
- // TODO instance owner can mess with gif target (component) -> e.g. set custom role for function intendent to work with gif role
300
- function setTargetFunctionCustomRole(
301
- string memory targetName,
302
- bytes4[] calldata selectors,
303
- RoleId roleId
304
- )
305
- public
306
- virtual
307
- restricted()
308
- {
309
- ShortString nameShort = ShortStrings.toShortString(targetName);
310
- address target = _targetAddressForName[nameShort];
311
-
312
- // not core target
313
- if(_targetInfo[target].ttype == IAccess.Type.Core) {
314
- revert IAccess.ErrorIAccessTargetTypeInvalid(nameShort, _targetInfo[target].ttype);
315
- }
316
-
317
- // not core role
318
- if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
319
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, _roleInfo[roleId].rtype);
320
- }
321
-
322
- _setTargetFunctionRole(target, nameShort, selectors, roleId);
323
- }
324
-
325
- function isTargetLocked(address target) public view returns (bool locked) {
326
- return _accessManager.isTargetClosed(target);
327
- }
328
-
329
- function targetExists(address target) public view returns (bool exists) {
330
- return _targetInfo[target].createdAt.gtz();
331
- }
332
-
333
- function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory) {
334
- return _targetInfo[target];
335
- }
336
-
337
- //--- internal view/pure functions --------------------------------------//
338
-
339
- function _createRole(RoleId roleId, string memory nameLong, IAccess.Type rtype)
340
- internal
341
- {
342
- ShortString name = ShortStrings.toShortString(nameLong);
343
- _validateRole(roleId, name, rtype);
344
-
345
- if(roleExists(roleId)) {
346
- revert IAccess.ErrorIAccessRoleIdAlreadyExists(roleId);
347
- }
348
-
349
- if (_roleIdForName[name].gtz()) {
350
- revert IAccess.ErrorIAccessRoleNameNotUnique(_roleIdForName[name], name);
351
- }
352
-
353
- IAccess.RoleInfo memory role = IAccess.RoleInfo(
354
- name,
355
- rtype,
356
- ADMIN_ROLE(),
357
- TimestampLib.blockTimestamp(),
358
- TimestampLib.blockTimestamp());
359
-
360
- _roleInfo[roleId] = role;
361
- _roleIdForName[role.name] = roleId;
362
- _roleIds.push(roleId);
363
- }
364
-
365
- function _validateRole(RoleId roleId, ShortString name, IAccess.Type rtype)
366
- internal
367
- view
368
- {
369
-
370
- uint roleIdInt = roleId.toInt();
371
- if(rtype == IAccess.Type.Custom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
372
- revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
373
- }
374
-
375
- if(
376
- rtype != IAccess.Type.Custom &&
377
- roleIdInt >= CUSTOM_ROLE_ID_MIN &&
378
- roleIdInt != PUBLIC_ROLE().toInt())
379
- {
380
- revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
381
- }
382
-
383
- // role name checks
384
- if (ShortStrings.byteLength(name) == 0) {
385
- revert IAccess.ErrorIAccessRoleNameEmpty(roleId);
386
- }
387
- }
388
- // TODO if custom role admin have > 1 member -> limit to 1 member or revoke from all members?
389
- function _revokeRole(RoleId roleId, address member)
390
- internal
391
- returns(bool revoked)
392
- {
393
- if (!roleExists(roleId)) {
394
- revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
395
- }
396
-
397
- revoked = EnumerableSet.remove(_roleMembers[roleId], member);
398
- if(revoked) {
399
- uint64 roleIdInt = roleId.toInt();
400
- _accessManager.revokeRole(roleIdInt, member);
401
-
402
- // revoke custom role if custom role admin is being revoked
403
- if(isCustomRoleAdmin(roleId)) {
404
- uint64 customRoleIdInt = roleIdInt - 1;
405
- RoleId customRoleId = RoleIdLib.toRoleId(customRoleIdInt);
406
- // loop through all custom role members
407
- uint memberCount = EnumerableSet.length(_roleMembers[customRoleId]);
408
- for(uint memberIdx = 0; memberIdx < memberCount; memberIdx++)
409
- {
410
- member = EnumerableSet.at(_roleMembers[customRoleId], memberIdx);
411
- bool revokedCustom = EnumerableSet.remove(_roleMembers[customRoleId], member);
412
- if(revokedCustom) {
413
- _accessManager.revokeRole(customRoleIdInt, member);
414
- }
415
- }
416
- }
417
- }
418
- }
419
-
420
- function _getNextCustomRoleId()
421
- internal
422
- returns(RoleId roleId, RoleId admin)
423
- {
424
- uint64 roleIdInt = _idNext;
425
- uint64 adminInt = roleIdInt + 1;
426
-
427
- _idNext = roleIdInt + 2;
428
-
429
- roleId = RoleIdLib.toRoleId(roleIdInt);
430
- admin = RoleIdLib.toRoleId(adminInt);
431
- }
432
-
433
- function _createTarget(address target, string memory nameLong, IAccess.Type ttype)
434
- internal
435
- {
436
- ShortString name = ShortStrings.toShortString(nameLong);
437
- _validateTarget(target, name, ttype);
438
-
439
- if (_targetInfo[target].createdAt.gtz()) {
440
- revert IAccess.ErrorIAccessTargetAlreadyExists(target, _targetInfo[target].name);
441
- }
442
-
443
- if (_targetAddressForName[name] != address(0)) {
444
- revert IAccess.ErrorIAccessTargetNameExists(
445
- target,
446
- _targetAddressForName[name],
447
- name);
448
- }
449
-
450
- IAccess.TargetInfo memory info = IAccess.TargetInfo(
451
- name,
452
- ttype,
453
- _accessManager.isTargetClosed(target), // sync with state in access manager
454
- TimestampLib.blockTimestamp(),
455
- TimestampLib.blockTimestamp());
456
-
457
- _targetInfo[target] = info;
458
- _targetAddressForName[info.name] = target;
459
- _targets.push(target);
460
- }
461
-
462
- function _validateTarget(address target, ShortString name, IAccess.Type ttype)
463
- internal
464
- view
465
- {
466
- address targetAuthority = AccessManagedUpgradeable(target).authority();
467
- // TODO check depends on target upgradabillity
468
- if(targetAuthority != authority()) {
469
- revert IAccess.ErrorIAccessTargetAuthorityInvalid(target, targetAuthority);
470
- }
471
-
472
- if (ShortStrings.byteLength(name) == 0) {
473
- revert IAccess.ErrorIAccessTargetNameEmpty(target);
474
- }
475
- }
476
-
477
- function _setTargetFunctionRole(
478
- address target,
479
- ShortString name,
480
- bytes4[] calldata selectors,
481
- RoleId roleId
482
- )
483
- internal
484
- {
485
- if (target == address(0)) {
486
- revert IAccess.ErrorIAccessTargetDoesNotExist(name);
487
- }
488
-
489
- if (!roleExists(roleId)) {
490
- revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
491
- }
492
-
493
- uint64 roleIdInt = RoleId.unwrap(roleId);
494
- _accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
495
- }
496
-
497
- function canCall(
498
- address caller,
499
- address target,
500
- bytes4 selector
501
- ) public view virtual returns (bool immediate, uint32 delay) {
502
- return _accessManager.canCall(caller, target, selector);
503
- }
504
- }
505
-
506
-
507
- /// TODO taget admin example:
508
- // 1) ADMIN_ROLE (or `this`) is always admin for core targets
509
- // 2) INSTANCE_OWNER_ROLE (or instance owner address) is always admin for gif(component) target
510
- // 3) INSTANCE_OWNER_ROLE or custom role is initial admin for custom target, initialAdmin can be changed
511
- /*function setTargetFunctionRole(
512
- string memory targetName,
513
- bytes4[] calldata selectors,
514
- RoleId roleId
515
- )
516
- public
517
- virtual
518
- {
519
- ShortString nameShort = ShortStrings.toShortString(targetName);
520
- address target = _targetAddressForName[nameShort];
521
-
522
- if(msg.sender != getTargetAdmin(target)) {
523
- revert IAccess.ErrorIAccessNotTargetAdmin(target, msg.sender);
524
- }
525
- // checked at target creation time or always?
526
- if(!_registry.isRegistered(target)) {
527
- revert IAccess.ErrorIAccessTargetNotRegistered(target);
528
- }
529
- // guarantee apropriate target admin for core targets
530
- // not core target
531
- if(_targetInfo[target].ttype == IAccess.Type.Core) {
532
- revert IAccess.ErrorIAccessTargetTypeInvalid(nameShort, _targetInfo[target].ttype);
533
- }
534
-
535
- // not core role
536
- if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
537
- revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, _roleInfo[roleId].rtype);
538
- }
539
-
540
- _setTargetFunctionRole(target, nameShort, selectors, roleId);
541
- }
542
-
543
- function setTargetLocked(string memory targetName, bool locked)
544
- external
545
- {
546
- ShortString nameShort = ShortStrings.toShortString(targetName);
547
- address target = _targetAddressForName[nameShort];
548
-
549
- if(msg.sender != getTargetAdmin(target)) {
550
- revert IAccess.ErrorIAccessNotTargetAdmin(target, msg.sender);
551
- }
552
-
553
- _accessManager.setTargetClosed(target, locked);
554
- }
555
-
556
- function setTargetAdmin(address target, address admin)
557
- public
558
- restricted()
559
- {
560
- if (!targetExists(target)) {
561
- revert IAccess.ErrorIAccessTargetInvalid(target);
562
- }
563
-
564
- if (!targetExists(admin)) {
565
- revert IAccess.ErrorIAccessTargetInvalid(target);
566
- }
567
-
568
- if(_targetInfo[target].ttype == IAccess.Type.Core) {
569
- revert IAccess.ErrorIAccessTargetInvalid(target);
570
- }
571
-
572
- // target admin is not target itself
573
- //if (!targetExists(admin)) {
574
- // revert IAccess.ErrorIAccessRoleIdInvalid(admin);
575
- //}
576
-
577
- _targetAdmin[target] = admin;
578
- }*/
579
- ///
580
-