@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-df69269-973

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 (406) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  12. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +115 -21
  14. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +37 -5
  17. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +42 -13
  19. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -47
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +90 -33
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +76 -42
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -40
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +90 -33
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -54
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +90 -33
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
  54. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -40
  56. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +262 -147
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +90 -33
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
  66. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +289 -92
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +97 -40
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +81 -195
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +40 -268
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  84. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  91. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  97. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +92 -35
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -8
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -40
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -94
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +38 -40
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +27 -3
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +27 -3
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +85 -78
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +30 -32
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +90 -33
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +249 -150
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +57 -55
  145. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -3
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
  155. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +95 -88
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +35 -37
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  165. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  166. package/artifacts/contracts/product/Product.sol/Product.json +157 -112
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +7 -2
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  176. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +45 -40
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +176 -214
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  187. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +307 -49
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  197. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  198. package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +113 -90
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -38
  203. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
  207. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  211. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -8
  213. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -3
  215. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
  217. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  219. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  223. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  241. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  242. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +3 -3
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  249. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -8
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  255. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  256. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +59 -52
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +17 -19
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  281. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  282. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  306. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  311. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  315. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  316. package/contracts/accounting/AccountingService.sol +3 -4
  317. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +115 -71
  319. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  320. package/contracts/authorization/Authorization.sol +268 -227
  321. package/contracts/authorization/IAccessAdmin.sol +6 -3
  322. package/contracts/authorization/IAuthorization.sol +7 -1
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +9 -8
  324. package/contracts/distribution/DistributionService.sol +6 -6
  325. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  326. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  327. package/contracts/examples/fire/FireProduct.sol +3 -1
  328. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  329. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  330. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  331. package/contracts/examples/unpermissioned/SimpleProduct.sol +18 -0
  332. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  333. package/contracts/instance/BundleSet.sol +0 -1
  334. package/contracts/instance/IInstance.sol +6 -7
  335. package/contracts/instance/IInstanceService.sol +2 -0
  336. package/contracts/instance/Instance.sol +17 -9
  337. package/contracts/instance/InstanceAdmin.sol +227 -53
  338. package/contracts/instance/InstanceAuthorizationV3.sol +14 -8
  339. package/contracts/instance/InstanceReader.sol +6 -6
  340. package/contracts/instance/InstanceService.sol +41 -29
  341. package/contracts/instance/InstanceServiceManager.sol +1 -1
  342. package/contracts/instance/InstanceStore.sol +1 -0
  343. package/contracts/instance/RiskSet.sol +7 -9
  344. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  345. package/contracts/instance/module/IComponents.sol +0 -8
  346. package/contracts/instance/module/IRisk.sol +2 -0
  347. package/contracts/oracle/BasicOracleAuthorization.sol +11 -10
  348. package/contracts/oracle/Oracle.sol +1 -1
  349. package/contracts/oracle/OracleService.sol +16 -15
  350. package/contracts/oracle/OracleServiceManager.sol +1 -1
  351. package/contracts/pool/BasicPoolAuthorization.sol +10 -9
  352. package/contracts/pool/BundleService.sol +3 -3
  353. package/contracts/pool/BundleServiceManager.sol +1 -1
  354. package/contracts/pool/PoolService.sol +4 -4
  355. package/contracts/pool/PoolServiceManager.sol +1 -1
  356. package/contracts/product/ApplicationService.sol +3 -3
  357. package/contracts/product/ApplicationServiceManager.sol +1 -1
  358. package/contracts/product/BasicProduct.sol +2 -0
  359. package/contracts/product/BasicProductAuthorization.sol +10 -9
  360. package/contracts/product/ClaimService.sol +144 -50
  361. package/contracts/product/ClaimServiceManager.sol +1 -1
  362. package/contracts/product/IClaimService.sol +13 -0
  363. package/contracts/product/IProductComponent.sol +4 -1
  364. package/contracts/product/PolicyService.sol +3 -3
  365. package/contracts/product/PolicyServiceManager.sol +1 -1
  366. package/contracts/product/PricingService.sol +23 -19
  367. package/contracts/product/PricingServiceManager.sol +3 -3
  368. package/contracts/product/Product.sol +36 -0
  369. package/contracts/product/RiskService.sol +65 -21
  370. package/contracts/product/RiskServiceManager.sol +1 -1
  371. package/contracts/registry/IRegistry.sol +6 -15
  372. package/contracts/registry/IRelease.sol +26 -0
  373. package/contracts/registry/Registry.sol +3 -2
  374. package/contracts/registry/RegistryAdmin.sol +117 -230
  375. package/contracts/registry/RegistryService.sol +3 -3
  376. package/contracts/registry/RegistryServiceManager.sol +1 -1
  377. package/contracts/registry/ReleaseAdmin.sol +245 -0
  378. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  379. package/contracts/registry/ReleaseRegistry.sol +124 -99
  380. package/contracts/registry/ServiceAuthorizationV3.sol +36 -1
  381. package/contracts/registry/TokenRegistry.sol +6 -8
  382. package/contracts/shared/Component.sol +24 -17
  383. package/contracts/shared/ComponentService.sol +63 -51
  384. package/contracts/shared/ComponentServiceManager.sol +1 -1
  385. package/contracts/shared/ContractLib.sol +29 -1
  386. package/contracts/shared/IComponent.sol +3 -4
  387. package/contracts/shared/IRegisterable.sol +15 -4
  388. package/contracts/shared/IService.sol +3 -5
  389. package/contracts/shared/NftOwnable.sol +4 -4
  390. package/contracts/shared/PolicyHolder.sol +1 -1
  391. package/contracts/shared/Registerable.sol +45 -19
  392. package/contracts/shared/RegistryLinked.sol +1 -1
  393. package/contracts/shared/Service.sol +8 -27
  394. package/contracts/shared/TokenHandler.sol +2 -2
  395. package/contracts/staking/Staking.sol +23 -12
  396. package/contracts/staking/StakingService.sol +2 -3
  397. package/contracts/type/ObjectType.sol +41 -27
  398. package/contracts/type/RiskId.sol +5 -0
  399. package/contracts/type/RoleId.sol +24 -4
  400. package/contracts/type/Timestamp.sol +0 -5
  401. package/contracts/type/Version.sol +15 -5
  402. package/contracts/upgradeability/ProxyManager.sol +1 -1
  403. package/package.json +1 -1
  404. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  405. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  406. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -22,6 +22,7 @@ contract Authorization
22
22
  mapping(ObjectType domain => Str target) internal _serviceTarget;
23
23
 
24
24
  string internal _mainTargetName = "Component";
25
+ Str internal _mainTarget;
25
26
  Str[] internal _targets;
26
27
 
27
28
  mapping(Str target => RoleId roleid) internal _targetRole;
@@ -34,256 +35,296 @@ contract Authorization
34
35
  mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
35
36
 
36
37
 
37
- constructor(string memory mainTargetName) {
38
+ constructor(
39
+ string memory mainTargetName,
40
+ ObjectType targetDomain
41
+ )
42
+ {
43
+ // checks
44
+ if (bytes(mainTargetName).length == 0) {
45
+ revert ErrorAuthorizationMainTargetNameEmpty();
46
+ }
47
+
48
+ if (targetDomain.eqz()) {
49
+ revert ErrorAuthorizationTargetDomainZero();
50
+ }
51
+
52
+ // effects
53
+ // setup main target, main role id and main role info
38
54
  _mainTargetName = mainTargetName;
39
55
 
56
+ RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
57
+ string memory mainRolName = _toTargetRoleName(mainTargetName);
58
+ // RoleInfo memory mainRoleInfo = _toRoleInfo(
59
+ // ADMIN_ROLE(),
60
+ // RoleType.Contract,
61
+ // 1,
62
+ // mainTargetName);
63
+
64
+ _addTargetWithRole(
65
+ _mainTargetName,
66
+ mainRoleId,
67
+ mainRolName);
68
+
69
+ _mainTarget = StrLib.toStr(mainTargetName);
70
+ _targetRole[_mainTarget] = mainRoleId;
71
+ // string memory targetName,
72
+ // RoleId roleId,
73
+ // string memory roleName
74
+
75
+ // setup use case specific parts
40
76
  _setupServiceTargets();
41
- _setupRoles();
42
- _setupTargets();
77
+ _setupRoles(); // not including main target role
78
+ _setupTargets(); // not including main target
43
79
  _setupTargetAuthorizations();
44
80
  }
45
81
 
46
- function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
47
- return _serviceDomains;
48
- }
82
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
83
+ return _serviceDomains;
84
+ }
49
85
 
50
- function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
51
- return RoleIdLib.roleForTypeAndVersion(
52
- serviceDomain,
53
- getRelease());
54
- }
86
+ function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
87
+ return RoleIdLib.toComponentRoleId(componentDomain, 0);
88
+ }
55
89
 
56
- function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
57
- return _serviceTarget[serviceDomain];
58
- }
90
+ function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
91
+ return RoleIdLib.roleForTypeAndVersion(
92
+ serviceDomain,
93
+ getRelease());
94
+ }
59
95
 
60
- function getRoles() external view returns(RoleId[] memory roles) {
61
- return _roles;
62
- }
96
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
97
+ return _serviceTarget[serviceDomain];
98
+ }
63
99
 
64
- function roleExists(RoleId roleId) public view returns(bool exists) {
65
- return _roleInfo[roleId].roleType != RoleType.Undefined;
66
- }
100
+ function getRoles() external view returns(RoleId[] memory roles) {
101
+ return _roles;
102
+ }
67
103
 
68
- function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
69
- return _roleInfo[roleId];
70
- }
104
+ function roleExists(RoleId roleId) public view returns(bool exists) {
105
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
106
+ }
71
107
 
72
- function getTargetName() public virtual view returns (string memory name) {
73
- return _mainTargetName;
74
- }
108
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
109
+ return _roleInfo[roleId];
110
+ }
75
111
 
76
- function getMainTarget() public view returns(Str) {
77
- return getTarget(_mainTargetName);
78
- }
112
+ function getMainTargetName() public virtual view returns (string memory name) {
113
+ return _mainTargetName;
114
+ }
79
115
 
80
- function getTarget(string memory targetName) public view returns(Str target) {
81
- return StrLib.toStr(targetName);
82
- }
116
+ function getMainTarget() public view returns(Str) {
117
+ return _mainTarget;
118
+ }
83
119
 
84
- function getTargets() external view returns(Str[] memory targets) {
85
- return _targets;
86
- }
120
+ function getTarget(string memory targetName) public view returns(Str target) {
121
+ return StrLib.toStr(targetName);
122
+ }
87
123
 
88
- function targetExists(Str target) external view returns(bool exists) {
89
- return _targetExists[target];
90
- }
124
+ function getTargets() external view returns(Str[] memory targets) {
125
+ return _targets;
126
+ }
127
+
128
+ function targetExists(Str target) external view returns(bool exists) {
129
+ return target == _mainTarget || _targetExists[target];
130
+ }
91
131
 
92
- function getTargetRole(Str target) external view returns(RoleId roleId) {
93
- return _targetRole[target];
94
- }
132
+ function getTargetRole(Str target) external view returns(RoleId roleId) {
133
+ return _targetRole[target];
134
+ }
95
135
 
96
- function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
97
- return _authorizedRoles[target];
98
- }
136
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
137
+ return _authorizedRoles[target];
138
+ }
99
139
 
100
- function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
101
- return _authorizedFunctions[target][roleId];
102
- }
140
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
141
+ return _authorizedFunctions[target][roleId];
142
+ }
103
143
 
104
144
  function getRelease() public virtual pure returns(VersionPart release) {
105
145
  return VersionPartLib.toVersionPart(GIF_RELEASE);
106
146
  }
107
147
 
108
- /// @dev Sets up the relevant service targets for the component.
109
- /// Overwrite this function for a specific component.
110
- function _setupServiceTargets() internal virtual { }
111
-
112
- /// @dev Sets up the relevant (non-service) targets for the component.
113
- /// Overwrite this function for a specific component.
114
- function _setupTargets() internal virtual { }
115
-
116
- /// @dev Sets up the relevant roles for the component.
117
- /// Overwrite this function for a specific component.
118
- function _setupRoles() internal virtual {}
119
-
120
- /// @dev Sets up the relevant target authorizations for the component.
121
- /// Overwrite this function for a specific realease.
122
- function _setupTargetAuthorizations() internal virtual {}
123
-
124
-
125
- /// @dev Add the service target role for the specified service domain
126
- function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
127
- // add service domain
128
- _serviceDomains.push(serviceDomain);
129
-
130
- // get versioned target name
131
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
132
- ObjectTypeLib.toName(serviceDomain),
133
- "Service",
134
- getRelease().toInt());
135
-
136
- _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
137
-
138
- RoleId serviceRoleId = getServiceRole(serviceDomain);
139
- string memory serviceRoleName = ObjectTypeLib.toVersionedName(
140
- ObjectTypeLib.toName(serviceDomain),
141
- "ServiceRole",
142
- getRelease().toInt());
143
-
144
- _addTargetWithRole(
145
- serviceTargetName,
146
- serviceRoleId,
147
- serviceRoleName);
148
- }
149
-
150
-
151
- /// @dev Use this method to to add an authorized role.
152
- function _addRole(RoleId roleId, RoleInfo memory info) internal {
153
- _roles.push(roleId);
154
- _roleInfo[roleId] = info;
155
- }
156
-
157
-
158
- /// @dev Add a contract role for the provided role id and name.
159
- function _addContractRole(RoleId roleId, string memory name) internal {
160
- _addRole(
161
- roleId,
162
- _toRoleInfo(
163
- ADMIN_ROLE(),
164
- RoleType.Contract,
165
- 1,
166
- name));
167
- }
168
-
169
-
170
- /// @dev Add the versioned service role for the specified service domain
171
- function _addServiceRole(ObjectType serviceDomain) internal {
172
- _addContractRole(
173
- getServiceRole(serviceDomain),
174
- ObjectTypeLib.toVersionedName(
175
- ObjectTypeLib.toName(serviceDomain),
176
- SERVICE_ROLE_NAME_SUFFIX,
177
- getRelease().toInt()));
178
- }
179
-
180
-
181
- function _addComponentTargetWithRole(ObjectType componentType) internal {
182
- _addComponentTargetWithRole(componentType, 0);
183
- }
184
-
185
-
186
- function _addComponentTargetWithRole(ObjectType componentType, uint64 index) internal {
187
- _addTargetWithRole(
188
- getTargetName(),
189
- RoleIdLib.toComponentRoleId(componentType, index),
190
- _toTargetRoleName(
191
- getTargetName()));
192
- }
193
-
194
-
195
- /// @dev Add a contract role for the provided role id and name.
196
- function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
197
- _addRole(
198
- roleId,
199
- _toRoleInfo(
200
- adminRoleId,
201
- RoleType.Custom,
202
- maxMemberCount,
203
- name));
204
- }
205
-
206
- /// @dev Use this method to to add an authorized target together with its target role.
207
- function _addTargetWithRole(
208
- string memory targetName,
209
- RoleId roleId,
210
- string memory roleName
211
- )
212
- internal
213
- {
214
- // add target
215
- Str target = StrLib.toStr(targetName);
216
- _targets.push(target);
217
-
218
- _targetExists[target] = true;
219
-
220
- // link role to target if defined
221
- if (roleId != RoleIdLib.zero()) {
222
- // add role if new
223
- if (!roleExists(roleId)) {
224
- _addContractRole(roleId, roleName);
225
- }
226
-
227
- // link target to role
228
- _targetRole[target] = roleId;
229
- }
230
- }
231
-
232
-
233
- /// @dev Use this method to to add an authorized target.
234
- function _addTarget(string memory name) internal {
235
- _addTargetWithRole(name, RoleIdLib.zero(), "");
236
- }
237
-
238
-
239
- /// @dev Use this method to authorize the specified role to access the target.
240
- function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
241
- internal
242
- returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
243
- {
244
- Str targetStr = StrLib.toStr(target);
245
- _authorizedRoles[targetStr].push(authorizedRoleId);
246
- return _authorizedFunctions[targetStr][authorizedRoleId];
247
- }
248
-
249
-
250
- /// @dev Use this method to authorize a specific function authorization
251
- function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
252
- functions.push(
253
- IAccess.FunctionInfo({
254
- selector: SelectorLib.toSelector(selector),
255
- name: StrLib.toStr(name),
256
- createdAt: TimestampLib.blockTimestamp()}));
257
- }
258
-
259
-
260
- /// @dev role id for targets registry, staking and instance
261
- function _toTargetRoleId(ObjectType targetDomain)
262
- internal
263
- pure
264
- returns (RoleId targetRoleId)
265
- {
266
- return RoleIdLib.roleForType(targetDomain);
267
- }
268
-
269
-
270
- function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
271
- return string(
272
- abi.encodePacked(
273
- targetName,
274
- ROLE_NAME_SUFFIX));
275
- }
276
-
277
-
278
- /// @dev creates a role info object from the provided parameters
279
- function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
280
- return RoleInfo({
281
- name: StrLib.toStr(name),
282
- adminRoleId: adminRoleId,
283
- roleType: roleType,
284
- maxMemberCount: maxMemberCount,
285
- createdAt: TimestampLib.blockTimestamp(),
286
- pausedAt: TimestampLib.max()});
287
- }
148
+ /// @dev Sets up the relevant service targets for the component.
149
+ /// Overwrite this function for a specific component.
150
+ function _setupServiceTargets() internal virtual { }
151
+
152
+ /// @dev Sets up the relevant (non-service) targets for the component.
153
+ /// Overwrite this function for a specific component.
154
+ function _setupTargets() internal virtual { }
155
+
156
+ /// @dev Sets up the relevant roles for the component.
157
+ /// Overwrite this function for a specific component.
158
+ function _setupRoles() internal virtual {}
159
+
160
+ /// @dev Sets up the relevant target authorizations for the component.
161
+ /// Overwrite this function for a specific realease.
162
+ function _setupTargetAuthorizations() internal virtual {}
163
+
164
+
165
+ /// @dev Add the service target role for the specified service domain
166
+ function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
167
+ // add service domain
168
+ _serviceDomains.push(serviceDomain);
169
+
170
+ // get versioned target name
171
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
172
+ ObjectTypeLib.toName(serviceDomain),
173
+ "Service",
174
+ getRelease().toInt());
175
+
176
+ _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
177
+
178
+ RoleId serviceRoleId = getServiceRole(serviceDomain);
179
+ string memory serviceRoleName = ObjectTypeLib.toVersionedName(
180
+ ObjectTypeLib.toName(serviceDomain),
181
+ "ServiceRole",
182
+ getRelease().toInt());
183
+
184
+ _addTargetWithRole(
185
+ serviceTargetName,
186
+ serviceRoleId,
187
+ serviceRoleName);
188
+ }
189
+
190
+
191
+ /// @dev Use this method to to add an authorized role.
192
+ function _addRole(RoleId roleId, RoleInfo memory info) internal {
193
+ _roles.push(roleId);
194
+ _roleInfo[roleId] = info;
195
+ }
196
+
197
+
198
+ /// @dev Add a contract role for the provided role id and name.
199
+ function _addContractRole(RoleId roleId, string memory name) internal {
200
+ _addRole(
201
+ roleId,
202
+ _toRoleInfo(
203
+ ADMIN_ROLE(),
204
+ RoleType.Contract,
205
+ 1,
206
+ name));
207
+ }
208
+
209
+
210
+ /// @dev Add the versioned service role for the specified service domain
211
+ function _addServiceRole(ObjectType serviceDomain) internal {
212
+ _addContractRole(
213
+ getServiceRole(serviceDomain),
214
+ ObjectTypeLib.toVersionedName(
215
+ ObjectTypeLib.toName(serviceDomain),
216
+ SERVICE_ROLE_NAME_SUFFIX,
217
+ getRelease().toInt()));
218
+ }
219
+
220
+ // TODO cleanup
221
+ // function _addComponentTargetWithRole(ObjectType componentType) internal {
222
+ // _addComponentTargetWithRole(componentType, 0);
223
+ // }
224
+
225
+
226
+ // function _addComponentTargetWithRole(ObjectType componentType, uint64 index) internal {
227
+ // string memory mainTargetName = getMainTargetName();
228
+ // _addTargetWithRole(
229
+ // mainTargetName,
230
+ // RoleIdLib.toComponentRoleId(componentType, index),
231
+ // _toTargetRoleName(
232
+ // mainTargetName));
233
+ // }
234
+
235
+
236
+ /// @dev Add a contract role for the provided role id and name.
237
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
238
+ _addRole(
239
+ roleId,
240
+ _toRoleInfo(
241
+ adminRoleId,
242
+ RoleType.Custom,
243
+ maxMemberCount,
244
+ name));
245
+ }
246
+
247
+ /// @dev Use this method to to add an authorized target together with its target role.
248
+ function _addTargetWithRole(
249
+ string memory targetName,
250
+ RoleId roleId,
251
+ string memory roleName
252
+ )
253
+ internal
254
+ {
255
+ // add target
256
+ Str target = StrLib.toStr(targetName);
257
+ _targets.push(target);
258
+
259
+ _targetExists[target] = true;
260
+
261
+ // link role to target if defined
262
+ if (roleId != RoleIdLib.zero()) {
263
+ // add role if new
264
+ if (!roleExists(roleId)) {
265
+ _addContractRole(roleId, roleName);
266
+ }
267
+
268
+ // link target to role
269
+ _targetRole[target] = roleId;
270
+ }
271
+ }
272
+
273
+
274
+ /// @dev Use this method to to add an authorized target.
275
+ function _addTarget(string memory name) internal {
276
+ _addTargetWithRole(name, RoleIdLib.zero(), "");
277
+ }
278
+
279
+
280
+ /// @dev Use this method to authorize the specified role to access the target.
281
+ function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
282
+ internal
283
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
284
+ {
285
+ Str targetStr = StrLib.toStr(target);
286
+ _authorizedRoles[targetStr].push(authorizedRoleId);
287
+ return _authorizedFunctions[targetStr][authorizedRoleId];
288
+ }
289
+
290
+
291
+ /// @dev Use this method to authorize a specific function authorization
292
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
293
+ functions.push(
294
+ IAccess.FunctionInfo({
295
+ selector: SelectorLib.toSelector(selector),
296
+ name: StrLib.toStr(name),
297
+ createdAt: TimestampLib.blockTimestamp()}));
298
+ }
299
+
300
+
301
+ /// @dev role id for targets registry, staking and instance
302
+ function _toTargetRoleId(ObjectType targetDomain)
303
+ internal
304
+ pure
305
+ returns (RoleId targetRoleId)
306
+ {
307
+ return RoleIdLib.roleForType(targetDomain);
308
+ }
309
+
310
+
311
+ function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
312
+ return string(
313
+ abi.encodePacked(
314
+ targetName,
315
+ ROLE_NAME_SUFFIX));
316
+ }
317
+
318
+
319
+ /// @dev creates a role info object from the provided parameters
320
+ function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
321
+ return RoleInfo({
322
+ name: StrLib.toStr(name),
323
+ adminRoleId: adminRoleId,
324
+ roleType: roleType,
325
+ maxMemberCount: maxMemberCount,
326
+ createdAt: TimestampLib.blockTimestamp(),
327
+ pausedAt: TimestampLib.max()});
328
+ }
288
329
  }
289
330
 
@@ -4,14 +4,16 @@ pragma solidity ^0.8.20;
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {IAccess} from "./IAccess.sol";
7
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
7
8
  import {RoleId} from "../type/RoleId.sol";
8
9
  import {Selector} from "../type/Selector.sol";
9
10
  import {Str} from "../type/String.sol";
10
- import {Timestamp} from "../type/Timestamp.sol";
11
+ import {VersionPart} from "../type/Version.sol";
11
12
 
12
13
  interface IAccessAdmin is
13
14
  IAccessManaged,
14
- IAccess
15
+ IAccess,
16
+ IRegistryLinked
15
17
  {
16
18
 
17
19
  // roles
@@ -29,7 +31,6 @@ interface IAccessAdmin is
29
31
  error ErrorNotRoleOwner(RoleId roleId);
30
32
 
31
33
  // initialize authority
32
- error ErrorAuthorityAlreadySet();
33
34
  error ErrorAdminRoleMissing();
34
35
 
35
36
  // create role
@@ -106,6 +107,8 @@ interface IAccessAdmin is
106
107
 
107
108
  //--- view functions ----------------------------------------------------//
108
109
 
110
+ function getRelease() external view returns (VersionPart release);
111
+
109
112
  function roles() external view returns (uint256 numberOfRoles);
110
113
  function getRoleId(uint256 idx) external view returns (RoleId roleId);
111
114
  function getAdminRole() external view returns (RoleId roleId);
@@ -11,6 +11,9 @@ interface IAuthorization is
11
11
  IAccess
12
12
  {
13
13
 
14
+ error ErrorAuthorizationMainTargetNameEmpty();
15
+ error ErrorAuthorizationTargetDomainZero();
16
+
14
17
  /// @dev Returns the list of service targets.
15
18
  function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
16
19
 
@@ -20,6 +23,9 @@ interface IAuthorization is
20
23
  /// @dev Returns the service target for the specified domain.
21
24
  function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
22
25
 
26
+ /// @dev Returns the component role for the specified domain.
27
+ function getComponentRole(ObjectType componentDomain) external view returns(RoleId componentRoleId);
28
+
23
29
  /// @dev Returns the list of involved roles.
24
30
  function getRoles() external view returns(RoleId[] memory roles);
25
31
 
@@ -32,7 +38,7 @@ interface IAuthorization is
32
38
  /// @dev Returns the main target id name as string.
33
39
  /// This name is used to derive the target id and a corresponding target role name
34
40
  /// Overwrite this function to change the basic pool target name.
35
- function getTargetName() external view returns (string memory name);
41
+ function getMainTargetName() external view returns (string memory name);
36
42
 
37
43
  /// @dev Returns the main target.
38
44
  function getMainTarget() external view returns(Str target);
@@ -15,15 +15,16 @@ contract BasicDistributionAuthorization
15
15
  {
16
16
 
17
17
  constructor(string memory distributionlName)
18
- Authorization(distributionlName)
18
+ Authorization(distributionlName, DISTRIBUTION())
19
19
  {}
20
20
 
21
- function _setupTargets()
22
- internal
23
- virtual override
24
- {
25
- _addComponentTargetWithRole(DISTRIBUTION()); // basic target
26
- }
21
+ // TODO cleanup
22
+ // function _setupTargets()
23
+ // internal
24
+ // virtual override
25
+ // {
26
+ // _addComponentTargetWithRole(DISTRIBUTION()); // basic target
27
+ // }
27
28
 
28
29
 
29
30
  function _setupTargetAuthorizations()
@@ -33,7 +34,7 @@ contract BasicDistributionAuthorization
33
34
  IAccess.FunctionInfo[] storage functions;
34
35
 
35
36
  // authorize public role (open access to any account, only allows to lock target)
36
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
37
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
37
38
  _authorize(functions, BasicDistribution.setFees.selector, "setFees");
38
39
  _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
39
40
  _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");