@etherisc/gif-next 0.0.2-b2910e7-757 → 0.0.2-b2e620f-736

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 (452) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -65
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -42
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +260 -185
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +117 -54
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +306 -147
  59. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  61. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -21
  63. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -5
  65. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/Instance.sol/Instance.json +150 -41
  67. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +355 -99
  69. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
  71. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +549 -218
  73. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +87 -60
  75. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  77. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
  79. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  81. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  83. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  86. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  88. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  90. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  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 -56
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -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 -26
  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 -40
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +98 -83
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +40 -22
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -310
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -83
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -122
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
  129. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +241 -302
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -45
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +91 -65
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -22
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -55
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +198 -181
  161. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  163. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +51 -45
  165. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  167. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  169. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  170. package/artifacts/contracts/product/Product.sol/Product.json +157 -130
  171. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  173. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  175. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  177. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  179. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  181. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  188. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  190. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  192. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +316 -50
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  202. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +119 -514
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +38 -72
  208. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +435 -5
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  218. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +45 -327
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
  224. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  225. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  226. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  230. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  233. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  234. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  235. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
  236. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  248. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  256. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  257. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  259. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  260. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  262. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  263. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  264. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  276. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  277. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  278. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  279. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  281. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  284. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  286. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  288. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  290. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  292. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  294. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  296. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  298. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  300. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  302. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  304. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  306. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  308. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  311. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  313. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  319. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  328. package/contracts/accounting/AccountingService.sol +262 -0
  329. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  330. package/contracts/accounting/IAccountingService.sol +45 -0
  331. package/contracts/authorization/AccessAdmin.sol +177 -84
  332. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  333. package/contracts/authorization/Authorization.sol +277 -229
  334. package/contracts/authorization/IAccessAdmin.sol +13 -7
  335. package/contracts/authorization/IAuthorization.sol +15 -1
  336. package/contracts/distribution/BasicDistribution.sol +4 -4
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  338. package/contracts/distribution/Distribution.sol +27 -24
  339. package/contracts/distribution/DistributionService.sol +18 -15
  340. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  341. package/contracts/examples/fire/FirePool.sol +6 -2
  342. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  343. package/contracts/examples/fire/FireProduct.sol +8 -1
  344. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  345. package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -7
  346. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  347. package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
  348. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  349. package/contracts/examples/unpermissioned/SimpleProduct.sol +32 -0
  350. package/contracts/instance/BundleSet.sol +42 -38
  351. package/contracts/instance/IInstance.sol +13 -7
  352. package/contracts/instance/IInstanceService.sol +7 -1
  353. package/contracts/instance/Instance.sol +41 -16
  354. package/contracts/instance/InstanceAdmin.sol +241 -76
  355. package/contracts/instance/InstanceAuthorizationV3.sol +53 -31
  356. package/contracts/instance/InstanceReader.sol +162 -32
  357. package/contracts/instance/InstanceService.sol +59 -35
  358. package/contracts/instance/InstanceServiceManager.sol +1 -1
  359. package/contracts/instance/InstanceStore.sol +13 -2
  360. package/contracts/instance/RiskSet.sol +118 -0
  361. package/contracts/instance/base/ObjectCounter.sol +1 -2
  362. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  363. package/contracts/instance/base/ObjectSet.sol +31 -33
  364. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  365. package/contracts/instance/module/IComponents.sol +3 -2
  366. package/contracts/instance/module/IRisk.sol +3 -0
  367. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  368. package/contracts/oracle/Oracle.sol +1 -1
  369. package/contracts/oracle/OracleService.sol +92 -74
  370. package/contracts/oracle/OracleServiceManager.sol +1 -1
  371. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  372. package/contracts/pool/BundleService.sol +35 -125
  373. package/contracts/pool/BundleServiceManager.sol +1 -1
  374. package/contracts/pool/IBundleService.sol +13 -38
  375. package/contracts/pool/IPoolService.sol +49 -56
  376. package/contracts/pool/Pool.sol +9 -9
  377. package/contracts/pool/PoolLib.sol +216 -0
  378. package/contracts/pool/PoolService.sol +323 -186
  379. package/contracts/pool/PoolServiceManager.sol +1 -1
  380. package/contracts/product/ApplicationService.sol +15 -15
  381. package/contracts/product/ApplicationServiceManager.sol +1 -1
  382. package/contracts/product/BasicProduct.sol +2 -0
  383. package/contracts/product/BasicProductAuthorization.sol +24 -10
  384. package/contracts/product/ClaimService.sol +157 -139
  385. package/contracts/product/ClaimServiceManager.sol +1 -1
  386. package/contracts/product/IApplicationService.sol +5 -2
  387. package/contracts/product/IClaimService.sol +14 -2
  388. package/contracts/product/IPolicyService.sol +23 -10
  389. package/contracts/product/IProductComponent.sol +4 -1
  390. package/contracts/product/PolicyService.sol +269 -257
  391. package/contracts/product/PolicyServiceLib.sol +65 -0
  392. package/contracts/product/PolicyServiceManager.sol +1 -1
  393. package/contracts/product/PricingService.sol +23 -19
  394. package/contracts/product/PricingServiceManager.sol +3 -3
  395. package/contracts/product/Product.sol +53 -7
  396. package/contracts/product/RiskService.sol +74 -25
  397. package/contracts/product/RiskServiceManager.sol +1 -1
  398. package/contracts/registry/ChainNft.sol +4 -2
  399. package/contracts/registry/IRegistry.sol +8 -15
  400. package/contracts/registry/IRelease.sol +26 -0
  401. package/contracts/registry/Registry.sol +7 -2
  402. package/contracts/registry/RegistryAdmin.sol +129 -237
  403. package/contracts/registry/RegistryService.sol +3 -3
  404. package/contracts/registry/RegistryServiceManager.sol +1 -1
  405. package/contracts/registry/ReleaseAdmin.sol +245 -0
  406. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  407. package/contracts/registry/ReleaseRegistry.sol +127 -101
  408. package/contracts/registry/ServiceAuthorizationV3.sol +163 -40
  409. package/contracts/registry/TokenRegistry.sol +6 -8
  410. package/contracts/shared/Component.sol +30 -38
  411. package/contracts/shared/ComponentService.sol +165 -302
  412. package/contracts/shared/ComponentServiceManager.sol +1 -1
  413. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  414. package/contracts/shared/ContractLib.sol +208 -9
  415. package/contracts/shared/IComponent.sol +3 -9
  416. package/contracts/shared/IComponentService.sol +2 -27
  417. package/contracts/shared/IRegisterable.sol +15 -4
  418. package/contracts/shared/IService.sol +3 -5
  419. package/contracts/shared/InstanceLinkedComponent.sol +3 -3
  420. package/contracts/shared/NftOwnable.sol +4 -4
  421. package/contracts/shared/PolicyHolder.sol +1 -1
  422. package/contracts/shared/Registerable.sol +45 -19
  423. package/contracts/shared/RegistryLinked.sol +1 -1
  424. package/contracts/shared/Service.sol +8 -27
  425. package/contracts/shared/TokenHandler.sol +40 -96
  426. package/contracts/staking/IStaking.sol +0 -8
  427. package/contracts/staking/IStakingService.sol +8 -0
  428. package/contracts/staking/StakeManagerLib.sol +1 -1
  429. package/contracts/staking/Staking.sol +34 -13
  430. package/contracts/staking/StakingReader.sol +1 -1
  431. package/contracts/staking/StakingService.sol +32 -55
  432. package/contracts/staking/StakingServiceManager.sol +5 -4
  433. package/contracts/type/Key32.sol +2 -2
  434. package/contracts/type/Key32Set.sol +62 -0
  435. package/contracts/type/NftId.sol +6 -0
  436. package/contracts/type/ObjectType.sol +48 -21
  437. package/contracts/type/RiskId.sol +23 -6
  438. package/contracts/type/RoleId.sol +24 -4
  439. package/contracts/type/Selector.sol +5 -0
  440. package/contracts/type/Timestamp.sol +0 -5
  441. package/contracts/type/UFixed.sol +9 -119
  442. package/contracts/type/Version.sol +15 -5
  443. package/contracts/upgradeability/ProxyManager.sol +1 -1
  444. package/package.json +1 -1
  445. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  446. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  447. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  448. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  449. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  450. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  451. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  452. package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,19 +1,20 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
-
5
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
6
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
4
+ import {IAccess} from "../authorization/IAccess.sol";
7
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
8
6
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
- import {IAuthorization} from "../authorization/IAuthorization.sol";
10
7
  import {IRegistry} from "../registry/IRegistry.sol";
11
8
  import {IInstance} from "./IInstance.sol";
9
+
10
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {NftId} from "../type/NftId.sol";
12
13
  import {ObjectType} from "../type/ObjectType.sol";
13
14
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
15
  import {Str, StrLib} from "../type/String.sol";
15
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {VersionPart} from "../type/Version.sol";
17
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
17
18
 
18
19
 
19
20
  contract InstanceAdmin is
@@ -23,83 +24,107 @@ contract InstanceAdmin is
23
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
26
28
 
27
29
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
28
30
 
31
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
32
+ error ErrorInstanceAdminCallerNotInstance(address caller);
33
+ error ErrorInstanceAdminInstanceAlreadyLocked();
29
34
  error ErrorInstanceAdminNotRegistered(address target);
35
+
30
36
  error ErrorInstanceAdminAlreadyAuthorized(address target);
37
+ error ErrorInstanceAdminNotComponentRole(RoleId roleId);
38
+ error ErrorInstanceAdminRoleAlreadyExists(RoleId roleId);
39
+ error ErrorInstanceAdminRoleTypeNotContract(RoleId roleId, IAccess.RoleType roleType);
40
+
31
41
  error ErrorInstanceAdminReleaseMismatch();
32
42
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
33
43
 
34
44
  IInstance internal _instance;
35
45
  IRegistry internal _registry;
36
- uint64 internal _idNext;
46
+ uint64 internal _customIdNext;
47
+
48
+ mapping(address target => RoleId roleId) internal _targetRoleId;
49
+ uint64 internal _components;
37
50
 
38
51
  IAuthorization internal _instanceAuthorization;
39
52
 
53
+
54
+ modifier onlyInstanceOwner() {
55
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
56
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
57
+ }
58
+ _;
59
+ }
60
+
61
+ modifier onlyInstance() {
62
+ if(msg.sender != address(_instance)) {
63
+ revert ErrorInstanceAdminCallerNotInstance(msg.sender);
64
+ }
65
+ _;
66
+ }
67
+
40
68
  /// @dev Only used for master instance admin.
41
69
  /// Contracts created via constructor come with disabled initializers.
42
70
  constructor(
43
71
  address instanceAuthorization
44
- )
45
- AccessAdmin()
46
- {
72
+ ) {
73
+ initialize(new AccessManagerCloneable());
74
+
47
75
  _instanceAuthorization = IAuthorization(instanceAuthorization);
76
+
77
+ _disableInitializers();
48
78
  }
49
79
 
50
- /// @dev Initializes this instance admin with the provided instances authorization specification.
51
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
52
- /// for the inststance authorizatios.
53
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
80
+
54
81
  function initialize(
55
- AccessManagerCloneable accessManager,
56
- address instanceAuthorization
82
+ AccessManagerCloneable clonedAccessManager,
83
+ IRegistry registry,
84
+ VersionPart release
57
85
  )
58
86
  external
59
- initializer()
87
+ initializer()
60
88
  {
61
- // create new access manager for this instance admin
62
- _initializeAuthority(address(accessManager));
63
-
64
- // create basic instance independent setup
65
- _createAdminAndPublicRoles();
89
+ __AccessAdmin_init(clonedAccessManager);
66
90
 
67
- // store instance authorization specification
68
- _instanceAuthorization = IAuthorization(instanceAuthorization);
69
- }
70
-
71
- function _checkTargetIsReadyForAuthorization(address target)
72
- internal
73
- view
74
- {
75
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
76
- revert ErrorInstanceAdminNotRegistered(target);
77
- }
91
+ clonedAccessManager.completeSetup(
92
+ address(registry),
93
+ release);
78
94
 
79
- if (targetExists(target)) {
80
- revert ErrorInstanceAdminAlreadyAuthorized(target);
81
- }
95
+ _registry = registry;
82
96
  }
83
97
 
84
- /// @dev Completes the initialization of this instance admin using the provided instance.
98
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
99
+ /// Important: Initialization of instance admin is only complete after calling this function.
85
100
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
86
- function initializeInstanceAuthorization(address instanceAddress)
101
+ function completeSetup(
102
+ address instance,
103
+ address authorization
104
+ )
87
105
  external
106
+ reinitializer(uint64(getRelease().toInt()))
107
+ onlyDeployer()
88
108
  {
89
- _checkTargetIsReadyForAuthorization(instanceAddress);
109
+ _components = 0;
110
+ _customIdNext = CUSTOM_ROLE_ID_MIN;
111
+ _instance = IInstance(instance);
112
+ _instanceAuthorization = IAuthorization(authorization);
90
113
 
91
- _idNext = CUSTOM_ROLE_ID_MIN;
92
- _instance = IInstance(instanceAddress);
93
- _registry = _instance.getRegistry();
114
+ _checkTargetIsReadyForAuthorization(instance);
94
115
 
95
116
  // check matching releases
96
- if (_instanceAuthorization.getRelease() != _instance.getRelease()) {
117
+ if (_instanceAuthorization.getRelease() != getRelease()) {
97
118
  revert ErrorInstanceAdminReleaseMismatch();
98
119
  }
99
120
 
121
+ // create instance role and target
122
+ _setupInstance(instance);
123
+
100
124
  // add instance authorization
101
125
  _createRoles(_instanceAuthorization);
102
- _createModuleTargetsWithRoles();
126
+
127
+ _setupInstanceHelperTargetsWithRoles();
103
128
  _createTargetAuthorizations(_instanceAuthorization);
104
129
  }
105
130
 
@@ -110,45 +135,51 @@ contract InstanceAdmin is
110
135
  IInstanceLinkedComponent component
111
136
  )
112
137
  external
138
+ restricted()
113
139
  {
140
+ // TODO check componentInfo exists
141
+ // TODO deploy token handler here
142
+ // checks
114
143
  _checkTargetIsReadyForAuthorization(address(component));
115
144
 
116
- // get authorization specification
117
- IAuthorization authorization = component.getAuthorization();
145
+ // setup target and role for component (including token handler)
146
+ _setupComponentAndTokenHandler(component);
118
147
 
119
- // create roles
148
+ // create other roles
149
+ IAuthorization authorization = component.getAuthorization();
120
150
  _createRoles(authorization);
121
151
 
122
- // create component target
123
- _createTarget(
124
- address(component),
125
- authorization.getTargetName(),
126
- true, // checkAuthority
127
- false); // custom
128
152
 
129
- _createTarget(
130
- address(component.getTokenHandler()),
131
- string(abi.encodePacked(authorization.getTargetName(), "TH")),
132
- true,
133
- false);
153
+ // // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
154
+ // _authorizeTargetFunctions(
155
+ // address(component.getTokenHandler()),
156
+ // getPublicRole(),
157
+ // functions);
134
158
 
135
- FunctionInfo[] memory functions = new FunctionInfo[](3);
136
- functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
137
- functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
138
- functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
159
+ _createTargetAuthorizations(authorization);
160
+ }
161
+
162
+ // create instance role and target
163
+ function _setupInstance(address instance) internal {
164
+ // create instance role
165
+ RoleId instanceRoleId = _instanceAuthorization.getTargetRole(
166
+ _instanceAuthorization.getMainTarget());
139
167
 
140
- // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
141
- _authorizeTargetFunctions(
142
- address(component.getTokenHandler()),
143
- getPublicRole(),
144
- functions);
168
+ _createRole(
169
+ instanceRoleId,
170
+ _instanceAuthorization.getRoleInfo(instanceRoleId));
171
+
172
+ // create instance target
173
+ _createTarget(
174
+ instance,
175
+ _instanceAuthorization.getMainTargetName(),
176
+ true, // checkAuthority
177
+ false); // custom
145
178
 
179
+ // assign instance role to instance
146
180
  _grantRoleToAccount(
147
- authorization.getTargetRole(
148
- authorization.getMainTarget()),
149
- address(component));
150
-
151
- _createTargetAuthorizations(authorization);
181
+ instanceRoleId,
182
+ instance);
152
183
  }
153
184
 
154
185
  /// @dev Creates a custom role
@@ -170,9 +201,22 @@ contract InstanceAdmin is
170
201
  _grantRoleToAccount(roleId, account);
171
202
  }
172
203
 
204
+
205
+ function setInstanceLocked(bool locked)
206
+ external
207
+ onlyInstanceOwner()
208
+ {
209
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
210
+
211
+ if(accessManager.isLocked() == locked) {
212
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
213
+ }
214
+ accessManager.setLocked(locked);
215
+ }
216
+
173
217
  function setTargetLocked(address target, bool locked)
174
218
  external
175
- restricted()
219
+ onlyInstance()
176
220
  {
177
221
  _setTargetClosed(target, locked);
178
222
  }
@@ -188,18 +232,127 @@ contract InstanceAdmin is
188
232
  return _instanceAuthorization;
189
233
  }
190
234
 
235
+ // ------------------- Internal functions ------------------- //
236
+
237
+ function _setupComponentAndTokenHandler(IInstanceLinkedComponent component)
238
+ internal
239
+ {
240
+
241
+ IAuthorization authorization = component.getAuthorization();
242
+ string memory targetName = authorization.getMainTargetName();
243
+
244
+ // create component role and target
245
+ RoleId componentRoleId = _createComponentRoleId(component, authorization);
246
+
247
+ // create component's target
248
+ _createTarget(
249
+ address(component),
250
+ targetName,
251
+ true, // checkAuthority
252
+ false); // custom
253
+
254
+ // create component's token handler target
255
+ NftId componentNftId = _registry.getNftIdForAddress(address(component));
256
+ address tokenHandler = address(
257
+ _instance.getInstanceReader().getComponentInfo(
258
+ componentNftId).tokenHandler);
259
+
260
+ _createTarget(
261
+ tokenHandler,
262
+ authorization.getTokenHandlerName(),
263
+ true,
264
+ false);
265
+
266
+ // assign component role to component
267
+ _grantRoleToAccount(
268
+ componentRoleId,
269
+ address(component));
270
+
271
+ // token handler does not require its own role
272
+ // token handler is not calling other components
273
+ }
274
+
275
+
276
+ function _createComponentRoleId(
277
+ IInstanceLinkedComponent component,
278
+ IAuthorization authorization
279
+ )
280
+ internal
281
+ returns (RoleId componentRoleId)
282
+ {
283
+ // checks
284
+ // check component is not yet authorized
285
+ if (_targetRoleId[address(component)].gtz()) {
286
+ revert ErrorInstanceAdminAlreadyAuthorized(address(component));
287
+ }
288
+
289
+ // check generic component role
290
+ RoleId genericComponentRoleId = authorization.getTargetRole(
291
+ authorization.getMainTarget());
292
+
293
+ if (!genericComponentRoleId.isComponentRole()) {
294
+ revert ErrorInstanceAdminNotComponentRole(genericComponentRoleId);
295
+ }
296
+
297
+ // check component role does not exist
298
+ componentRoleId = toComponentRole(
299
+ genericComponentRoleId,
300
+ _components);
301
+
302
+ if (roleExists(componentRoleId)) {
303
+ revert ErrorInstanceAdminRoleAlreadyExists(componentRoleId);
304
+ }
305
+
306
+ // check role info
307
+ IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(
308
+ genericComponentRoleId);
309
+
310
+ if (roleInfo.roleType != IAccess.RoleType.Contract) {
311
+ revert ErrorInstanceAdminRoleTypeNotContract(
312
+ componentRoleId,
313
+ roleInfo.roleType);
314
+ }
315
+
316
+ // effects
317
+ _targetRoleId[address(component)] = componentRoleId;
318
+ _components++;
319
+
320
+ _createRole(
321
+ componentRoleId,
322
+ roleInfo);
323
+ }
324
+
325
+
326
+ function _checkTargetIsReadyForAuthorization(address target)
327
+ internal
328
+ view
329
+ {
330
+ if (!_registry.isRegistered(target)) {
331
+ revert ErrorInstanceAdminNotRegistered(target);
332
+ }
333
+
334
+ if (targetExists(target)) {
335
+ revert ErrorInstanceAdminAlreadyAuthorized(target);
336
+ }
337
+ }
338
+
191
339
 
192
340
  function _createRoles(IAuthorization authorization)
193
341
  internal
194
342
  {
195
343
  RoleId[] memory roles = authorization.getRoles();
344
+ RoleId mainTargetRoleId = authorization.getTargetRole(
345
+ authorization.getMainTarget());
346
+
196
347
  RoleId roleId;
197
348
  RoleInfo memory roleInfo;
198
349
 
199
350
  for(uint256 i = 0; i < roles.length; i++) {
351
+
200
352
  roleId = roles[i];
201
353
 
202
- if (!roleExists(roleId)) {
354
+ // skip main target role, create role if not exists
355
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
203
356
  _createRole(
204
357
  roleId,
205
358
  authorization.getRoleInfo(roleId));
@@ -208,6 +361,16 @@ contract InstanceAdmin is
208
361
  }
209
362
 
210
363
 
364
+ function toComponentRole(RoleId roleId, uint64 componentIdx)
365
+ internal
366
+ pure
367
+ returns (RoleId)
368
+ {
369
+ return RoleIdLib.toRoleId(
370
+ RoleIdLib.toInt(roleId) + componentIdx);
371
+ }
372
+
373
+
211
374
  function _createTargetAuthorizations(IAuthorization authorization)
212
375
  internal
213
376
  {
@@ -248,7 +411,7 @@ contract InstanceAdmin is
248
411
  _createTarget(
249
412
  target,
250
413
  targetName,
251
- false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
414
+ false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
252
415
  false);
253
416
 
254
417
  // assign target role if defined
@@ -258,14 +421,16 @@ contract InstanceAdmin is
258
421
  }
259
422
  }
260
423
 
261
- function _createModuleTargetsWithRoles()
424
+ function _setupInstanceHelperTargetsWithRoles()
262
425
  internal
263
426
  {
427
+ // _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
428
+
264
429
  // create module targets
265
- _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
266
430
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
267
431
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
268
432
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
433
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
269
434
 
270
435
  // create targets for services that need to access the module targets
271
436
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -2,10 +2,11 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
5
+ ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
- import {BundleSet} from "../instance/BundleSet.sol";
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
9
10
  import {IAccess} from "../authorization/IAccess.sol";
10
11
  import {Instance} from "../instance/Instance.sol";
11
12
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
@@ -23,41 +24,31 @@ contract InstanceAuthorizationV3
23
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
26
28
 
27
- constructor() Authorization(INSTANCE_TARGET_NAME) {}
28
-
29
-
30
- function _setupRoles()
31
- internal
32
- override
33
- {
34
- // empty implementation
35
- }
36
-
29
+ constructor()
30
+ Authorization(INSTANCE_TARGET_NAME, INSTANCE())
31
+ { }
37
32
 
38
33
  function _setupTargets()
39
34
  internal
40
35
  override
41
36
  {
42
- // instance target
43
- _addTargetWithRole(
44
- INSTANCE_TARGET_NAME,
45
- _toTargetRoleId(INSTANCE()),
46
- INSTANCE_ROLE_NAME);
47
-
48
37
  // instance supporting targets
49
38
  _addTarget(INSTANCE_STORE_TARGET_NAME);
50
39
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
51
40
  _addTarget(BUNDLE_SET_TARGET_NAME);
41
+ _addTarget(RISK_SET_TARGET_NAME);
52
42
 
53
43
  // service targets relevant to instance
54
44
  _addServiceTargetWithRole(INSTANCE());
45
+ _addServiceTargetWithRole(ACCOUNTING());
55
46
  _addServiceTargetWithRole(COMPONENT());
56
47
  _addServiceTargetWithRole(DISTRIBUTION());
57
48
  _addServiceTargetWithRole(ORACLE());
58
49
  _addServiceTargetWithRole(POOL());
59
50
  _addServiceTargetWithRole(BUNDLE());
60
- _addServiceTargetWithRole(PRODUCT());
51
+ _addServiceTargetWithRole(RISK());
61
52
  _addServiceTargetWithRole(APPLICATION());
62
53
  _addServiceTargetWithRole(POLICY());
63
54
  _addServiceTargetWithRole(CLAIM());
@@ -72,7 +63,7 @@ contract InstanceAuthorizationV3
72
63
  _setupInstanceAdminAuthorization();
73
64
  _setupInstanceStoreAuthorization();
74
65
  _setupBundleSetAuthorization();
75
-
66
+ _setUpRiskSetAuthorization();
76
67
  }
77
68
 
78
69
 
@@ -83,11 +74,31 @@ contract InstanceAuthorizationV3
83
74
 
84
75
  // authorize bundle service role
85
76
  functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
86
- _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
87
- _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
88
77
  _authorize(functions, BundleSet.add.selector, "add");
89
78
  _authorize(functions, BundleSet.lock.selector, "lock");
90
79
  _authorize(functions, BundleSet.unlock.selector, "unlock");
80
+
81
+ // authorize bundle service role
82
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
83
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
84
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
85
+ }
86
+
87
+ function _setUpRiskSetAuthorization()
88
+ internal
89
+ {
90
+ IAccess.FunctionInfo[] storage functions;
91
+
92
+ // authorize risk service role
93
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
94
+ _authorize(functions, RiskSet.add.selector, "add");
95
+ _authorize(functions, RiskSet.pause.selector, "pause");
96
+ _authorize(functions, RiskSet.activate.selector, "activate");
97
+
98
+ // authorize policy service role
99
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
100
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
101
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
91
102
  }
92
103
 
93
104
 
@@ -99,6 +110,10 @@ contract InstanceAuthorizationV3
99
110
  // authorize instance service role
100
111
  functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
101
112
  _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
113
+
114
+ // authorize component service role
115
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(COMPONENT()));
116
+ _authorize(functions, Instance.setLockedFromService.selector, "setLockedFromService");
102
117
  }
103
118
 
104
119
 
@@ -108,11 +123,12 @@ contract InstanceAuthorizationV3
108
123
  IAccess.FunctionInfo[] storage functions;
109
124
 
110
125
  // authorize instance role
111
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
126
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getComponentRole(INSTANCE()));
112
127
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
113
128
 
114
- // authorize instance service role
115
- // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
129
+ // authorize component service role
130
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
131
+ _authorize(functions, InstanceAdmin.initializeComponentAuthorization.selector, "initializeComponentAuthoriz");
116
132
  }
117
133
 
118
134
 
@@ -121,6 +137,13 @@ contract InstanceAuthorizationV3
121
137
  {
122
138
  IAccess.FunctionInfo[] storage functions;
123
139
 
140
+ // authorize accounting service role
141
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
142
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
143
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
144
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
145
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
146
+
124
147
  // authorize component service role
125
148
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
126
149
  _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
@@ -128,11 +151,9 @@ contract InstanceAuthorizationV3
128
151
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
129
152
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
130
153
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
131
- _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
132
- _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
133
- _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
134
- _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
135
-
154
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
155
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
156
+
136
157
  // authorize distribution service role
137
158
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
138
159
  _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
@@ -164,7 +185,7 @@ contract InstanceAuthorizationV3
164
185
  _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
165
186
 
166
187
  // authorize product service role
167
- functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
188
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
168
189
  _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
169
190
  _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
170
191
  _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
@@ -189,6 +210,7 @@ contract InstanceAuthorizationV3
189
210
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
190
211
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
191
212
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
213
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
192
214
  }
193
215
  }
194
216