@etherisc/gif-next 0.0.2-7d7c399-079 → 0.0.2-7d91021-862

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 (494) hide show
  1. package/README.md +63 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +603 -280
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +487 -207
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +66 -154
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -98
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +512 -204
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +147 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -97
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +358 -82
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -142
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +128 -178
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +360 -193
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
  63. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  64. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  67. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  68. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +472 -28
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +345 -12
  73. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  74. package/artifacts/contracts/instance/Instance.sol/Instance.json +510 -85
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +892 -408
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +327 -64
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +674 -494
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -64
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1328 -2007
  87. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  88. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  93. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -45
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -31
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +280 -209
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +117 -71
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +174 -87
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +306 -166
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +547 -340
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +145 -71
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +137 -139
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -87
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +45 -23
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +133 -65
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +231 -19
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +245 -161
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +126 -80
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +40 -52
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +279 -43
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +91 -41
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +52 -22
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/Registry.sol/Registry.json +90 -60
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +713 -414
  196. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +784 -427
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +188 -124
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +206 -252
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +110 -72
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +111 -157
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +62 -161
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +187 -107
  266. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  267. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  268. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +129 -70
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +229 -157
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -53
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
  282. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  286. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +9 -4
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  323. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  325. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  328. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  330. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  332. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  334. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  336. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  338. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  340. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  342. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  343. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  344. package/contracts/accounting/AccountingService.sol +15 -3
  345. package/contracts/accounting/IAccountingService.sol +4 -2
  346. package/contracts/authorization/AccessAdmin.sol +396 -275
  347. package/contracts/authorization/AccessAdminLib.sol +396 -0
  348. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  349. package/contracts/authorization/Authorization.sol +142 -262
  350. package/contracts/authorization/IAccess.sol +25 -7
  351. package/contracts/authorization/IAccessAdmin.sol +83 -79
  352. package/contracts/authorization/IAuthorization.sol +9 -43
  353. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  354. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  355. package/contracts/distribution/BasicDistribution.sol +14 -13
  356. package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
  357. package/contracts/distribution/Distribution.sol +22 -64
  358. package/contracts/distribution/DistributionService.sol +166 -75
  359. package/contracts/distribution/IDistributionComponent.sol +3 -10
  360. package/contracts/distribution/IDistributionService.sol +34 -19
  361. package/contracts/examples/fire/FirePool.sol +0 -4
  362. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  363. package/contracts/examples/fire/FireProduct.sol +7 -12
  364. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  365. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  366. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  367. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  368. package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
  369. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  370. package/contracts/examples/unpermissioned/SimpleProduct.sol +94 -27
  371. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  372. package/contracts/instance/BaseStore.sol +93 -0
  373. package/contracts/instance/BundleSet.sol +4 -4
  374. package/contracts/instance/IBaseStore.sol +37 -0
  375. package/contracts/instance/IInstance.sol +103 -13
  376. package/contracts/instance/IInstanceService.sol +54 -7
  377. package/contracts/instance/Instance.sol +177 -61
  378. package/contracts/instance/InstanceAdmin.sol +249 -196
  379. package/contracts/instance/InstanceAuthorizationV3.sol +117 -67
  380. package/contracts/instance/InstanceReader.sol +398 -382
  381. package/contracts/instance/InstanceService.sol +283 -173
  382. package/contracts/instance/InstanceStore.sol +153 -128
  383. package/contracts/instance/ProductStore.sol +290 -0
  384. package/contracts/instance/RiskSet.sol +14 -5
  385. package/contracts/instance/TargetNames.sol +10 -0
  386. package/contracts/instance/base/BalanceStore.sol +4 -6
  387. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  388. package/contracts/instance/base/ObjectSet.sol +7 -8
  389. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  390. package/contracts/instance/module/IBundle.sol +6 -5
  391. package/contracts/instance/module/IComponents.sol +15 -6
  392. package/contracts/instance/module/IDistribution.sol +21 -8
  393. package/contracts/instance/module/IPolicy.sol +28 -8
  394. package/contracts/instance/module/IRisk.sol +2 -0
  395. package/contracts/oracle/BasicOracle.sol +3 -6
  396. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  397. package/contracts/oracle/IOracle.sol +9 -4
  398. package/contracts/oracle/Oracle.sol +4 -8
  399. package/contracts/oracle/OracleService.sol +8 -8
  400. package/contracts/pool/BasicPool.sol +4 -18
  401. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  402. package/contracts/pool/BundleService.sol +57 -96
  403. package/contracts/pool/IBundleService.sol +27 -32
  404. package/contracts/pool/IPoolService.sol +57 -40
  405. package/contracts/pool/Pool.sol +15 -29
  406. package/contracts/pool/PoolLib.sol +341 -0
  407. package/contracts/pool/PoolService.sol +189 -190
  408. package/contracts/product/ApplicationService.sol +85 -17
  409. package/contracts/product/BasicProduct.sol +2 -5
  410. package/contracts/product/BasicProductAuthorization.sol +31 -9
  411. package/contracts/product/ClaimService.sol +112 -194
  412. package/contracts/product/IApplicationService.sol +24 -2
  413. package/contracts/product/IClaimService.sol +6 -6
  414. package/contracts/product/IPolicyService.sol +20 -8
  415. package/contracts/product/IPricingService.sol +1 -0
  416. package/contracts/product/IRiskService.sol +25 -10
  417. package/contracts/product/PolicyService.sol +110 -201
  418. package/contracts/product/PolicyServiceLib.sol +139 -0
  419. package/contracts/product/PricingService.sol +33 -31
  420. package/contracts/product/Product.sol +61 -33
  421. package/contracts/product/RiskService.sol +63 -25
  422. package/contracts/registry/IRegistry.sol +17 -9
  423. package/contracts/registry/IRelease.sol +6 -3
  424. package/contracts/registry/Registry.sol +19 -9
  425. package/contracts/registry/RegistryAdmin.sol +100 -253
  426. package/contracts/registry/RegistryAuthorization.sol +336 -0
  427. package/contracts/registry/RegistryService.sol +1 -1
  428. package/contracts/registry/ReleaseAdmin.sol +62 -112
  429. package/contracts/registry/ReleaseRegistry.sol +57 -43
  430. package/contracts/registry/ServiceAuthorizationV3.sol +131 -31
  431. package/contracts/registry/TokenRegistry.sol +56 -52
  432. package/contracts/shared/Component.sol +19 -35
  433. package/contracts/shared/ComponentService.sol +281 -290
  434. package/contracts/shared/ContractLib.sol +137 -77
  435. package/contracts/shared/IComponent.sol +1 -4
  436. package/contracts/shared/IComponentService.sol +21 -26
  437. package/contracts/shared/INftOwnable.sol +2 -0
  438. package/contracts/shared/IRegisterable.sol +0 -1
  439. package/contracts/shared/InitializableERC165.sol +9 -1
  440. package/contracts/shared/InstanceLinkedComponent.sol +8 -13
  441. package/contracts/shared/NftOwnable.sol +4 -2
  442. package/contracts/shared/PolicyHolder.sol +3 -2
  443. package/contracts/shared/Registerable.sol +1 -4
  444. package/contracts/shared/Service.sol +6 -4
  445. package/contracts/shared/TokenHandler.sol +44 -91
  446. package/contracts/staking/IStaking.sol +266 -72
  447. package/contracts/staking/IStakingService.sol +45 -75
  448. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  449. package/contracts/staking/Staking.sol +475 -204
  450. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  451. package/contracts/staking/StakingManager.sol +4 -3
  452. package/contracts/staking/StakingReader.sol +58 -77
  453. package/contracts/staking/StakingService.sol +62 -180
  454. package/contracts/staking/StakingServiceManager.sol +6 -4
  455. package/contracts/staking/StakingStore.sol +1093 -330
  456. package/contracts/staking/TargetHandler.sol +132 -0
  457. package/contracts/staking/TargetManagerLib.sol +69 -46
  458. package/contracts/type/Amount.sol +4 -0
  459. package/contracts/type/Blocknumber.sol +15 -15
  460. package/contracts/type/ChainId.sol +101 -0
  461. package/contracts/type/Fee.sol +8 -8
  462. package/contracts/type/NftId.sol +3 -3
  463. package/contracts/type/ObjectType.sol +69 -52
  464. package/contracts/type/RiskId.sol +4 -3
  465. package/contracts/type/RoleId.sol +60 -45
  466. package/contracts/type/Seconds.sol +19 -0
  467. package/contracts/type/Selector.sol +5 -0
  468. package/contracts/type/String.sol +12 -0
  469. package/contracts/type/Timestamp.sol +4 -2
  470. package/contracts/type/UFixed.sol +28 -10
  471. package/contracts/type/Version.sol +39 -0
  472. package/contracts/upgradeability/IVersionable.sol +3 -0
  473. package/contracts/upgradeability/ProxyManager.sol +25 -11
  474. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  475. package/contracts/upgradeability/Versionable.sol +6 -3
  476. package/package.json +2 -2
  477. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  478. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  479. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  480. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  481. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  482. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  483. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  484. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  485. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  486. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  487. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  488. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  489. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  490. package/contracts/instance/module/IAccess.sol +0 -46
  491. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  492. package/contracts/shared/IKeyValueStore.sol +0 -54
  493. package/contracts/shared/KeyValueStore.sol +0 -131
  494. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -1,81 +1,53 @@
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";
12
- import {ObjectType} from "../type/ObjectType.sol";
13
- import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
- import {Str, StrLib} from "../type/String.sol";
15
- import {TokenHandler} from "../shared/TokenHandler.sol";
16
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
9
+
10
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
11
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
12
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
13
+ import {ObjectType, INSTANCE} from "../type/ObjectType.sol";
14
+ import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
15
+ import {Str} from "../type/String.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+ import {INSTANCE_TARGET_NAME, INSTANCE_ADMIN_TARGET_NAME, INSTANCE_STORE_TARGET_NAME, PRODUCT_STORE_TARGET_NAME, BUNDLE_SET_TARGET_NAME, RISK_SET_TARGET_NAME} from "./TargetNames.sol";
17
18
 
18
19
 
19
20
  contract InstanceAdmin is
20
21
  AccessAdmin
21
22
  {
22
- string public constant INSTANCE_TARGET_NAME = "Instance";
23
- string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
- string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
- string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
- string public constant RISK_SET_TAGET_NAME = "RiskSet";
27
-
28
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
23
+ // onlyInstanceService
24
+ error ErrorInstanceAdminNotInstanceService(address caller);
29
25
 
30
- error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
31
- error ErrorInstanceAdminInstanceAlreadyLocked();
32
- error ErrorInstanceAdminNotRegistered(address target);
33
- error ErrorInstanceAdminAlreadyAuthorized(address target);
34
- error ErrorInstanceAdminReleaseMismatch();
35
- error ErrorInstanceAdminExpectedTargetMissing(string targetName);
26
+ // authorizeFunctions
27
+ error ErrorInstanceAdminNotComponentOrCustomTarget(address target);
36
28
 
37
29
  IInstance internal _instance;
38
30
  IRegistry internal _registry;
39
- uint64 internal _idNext;
31
+ VersionPart internal _release;
40
32
 
41
- IAuthorization internal _instanceAuthorization;
33
+ uint64 internal _customRoleIdNext;
42
34
 
35
+ mapping(address target => RoleId roleId) internal _targetRoleId;
36
+ uint64 internal _components;
43
37
 
44
- modifier onlyInstanceOwner() {
45
- if(msg.sender != _registry.ownerOf(address(_instance))) {
46
- revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
38
+
39
+ modifier onlyInstanceService() {
40
+ if (msg.sender != _registry.getServiceAddress(INSTANCE(), getRelease())) {
41
+ revert ErrorInstanceAdminNotInstanceService(msg.sender);
47
42
  }
48
43
  _;
49
44
  }
50
45
 
51
46
  /// @dev Only used for master instance admin.
52
- /// Contracts created via constructor come with disabled initializers.
53
- constructor(
54
- address instanceAuthorization
55
- ) {
56
- initialize(new AccessManagerCloneable());
57
-
58
- _instanceAuthorization = IAuthorization(instanceAuthorization);
59
-
60
- _disableInitializers();
61
- }
62
-
63
-
64
- function initialize(
65
- AccessManagerCloneable clonedAccessManager,
66
- IRegistry registry,
67
- VersionPart release
68
- )
69
- external
70
- initializer()
71
- {
72
- __AccessAdmin_init(clonedAccessManager);
73
-
74
- clonedAccessManager.completeSetup(
75
- address(registry),
76
- release);
77
-
78
- _registry = registry;
47
+ constructor(address accessManager) {
48
+ initialize(
49
+ accessManager,
50
+ "MasterInstanceAdmin");
79
51
  }
80
52
 
81
53
 
@@ -83,96 +55,167 @@ contract InstanceAdmin is
83
55
  /// Important: Initialization of instance admin is only complete after calling this function.
84
56
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
85
57
  function completeSetup(
86
- address instance,
87
- address authorization
58
+ address registry,
59
+ address authorization,
60
+ VersionPart release,
61
+ address instance
88
62
  )
89
63
  external
90
- reinitializer(uint64(getRelease().toInt()))
64
+ reinitializer(uint64(release.toInt()))
91
65
  onlyDeployer()
92
66
  {
93
- _idNext = CUSTOM_ROLE_ID_MIN;
67
+ // checks
68
+ AccessAdminLib.checkIsRegistered(registry, instance, INSTANCE());
69
+
70
+ AccessManagerCloneable(
71
+ authority()).completeSetup(
72
+ registry,
73
+ release);
74
+
75
+ _checkAuthorization(authorization, INSTANCE(), release, false, true);
76
+
77
+ // effects
78
+ _registry = IRegistry(registry);
79
+ _release = release;
80
+
94
81
  _instance = IInstance(instance);
95
- _instanceAuthorization = IAuthorization(authorization);
82
+ _authorization = IAuthorization(authorization);
83
+ _components = 0;
84
+ _customRoleIdNext = 0;
85
+
86
+ // link nft ownability to instance
87
+ _linkToNftOwnable(instance);
88
+
89
+ // setup instance targets
90
+ _createInstanceTargets(_authorization.getMainTargetName());
91
+
92
+ // setup non-contract roles
93
+ _setupServiceRoles(_authorization);
94
+ _createRoles(_authorization);
95
+
96
+ // authorize functions of instance contracts
97
+ _createTargetAuthorizations(_authorization);
98
+ }
99
+
100
+
101
+ /// @dev grants the service roles to the service addresses based on the authorization specification.
102
+ /// Service addresses used for the granting are determined by the registry and the release of this instance.
103
+ function _setupServiceRoles(IAuthorization authorization)
104
+ internal
105
+ {
106
+ ObjectType[] memory serviceDomains = authorization.getServiceDomains();
96
107
 
97
- // AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
98
- // accessManager.completeSetup(
99
- // address(_registry),
100
- // release);
108
+ for(uint256 i = 0; i < serviceDomains.length; i++) {
109
+ ObjectType serviceDomain = serviceDomains[i];
110
+ RoleId serviceRoleId = authorization.getServiceRole(serviceDomain);
111
+ string memory serviceRoleName = authorization.getRoleName(serviceRoleId);
101
112
 
102
- _checkTargetIsReadyForAuthorization(instance);
113
+ // create service role if missing
114
+ if (!roleExists(serviceRoleId)) {
115
+ _createRole(
116
+ serviceRoleId,
117
+ AccessAdminLib.toRole(
118
+ ADMIN_ROLE(),
119
+ IAccess.RoleType.Contract,
120
+ 1,
121
+ serviceRoleName));
122
+ }
103
123
 
104
- // check matching releases
105
- if (_instanceAuthorization.getRelease() != getRelease()) {
106
- revert ErrorInstanceAdminReleaseMismatch();
124
+ // grant service role to service
125
+ address service = _registry.getServiceAddress(serviceDomain, _release);
126
+ _grantRoleToAccount(
127
+ serviceRoleId,
128
+ service);
107
129
  }
130
+ }
108
131
 
109
- // add instance authorization
110
- _createRoles(_instanceAuthorization);
111
- _createModuleTargetsWithRoles();
112
- _createTargetAuthorizations(_instanceAuthorization);
132
+
133
+ function _createInstanceTargets(string memory instanceTargetName)
134
+ internal
135
+ {
136
+ _createManagedTarget(address(_instance), instanceTargetName, TargetType.Instance);
137
+ _createManagedTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, TargetType.Instance);
138
+ _createManagedTarget(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME, TargetType.Instance);
139
+ _createManagedTarget(address(_instance.getProductStore()), PRODUCT_STORE_TARGET_NAME, TargetType.Instance);
140
+ _createManagedTarget(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME, TargetType.Instance);
141
+ _createManagedTarget(address(_instance.getRiskSet()), RISK_SET_TARGET_NAME, TargetType.Instance);
113
142
  }
114
143
 
115
144
 
116
145
  /// @dev Initializes the authorization for the specified component.
117
146
  /// Important: The component MUST be registered.
118
147
  function initializeComponentAuthorization(
119
- IInstanceLinkedComponent component
148
+ address componentAddress,
149
+ ObjectType expectedType
120
150
  )
121
151
  external
152
+ restricted()
122
153
  {
123
- // !!! TODO add caller restrictions?
154
+ // checks
155
+ AccessAdminLib.checkIsRegistered(address(getRegistry()), componentAddress, expectedType);
124
156
 
125
- _checkTargetIsReadyForAuthorization(address(component));
126
-
127
- // get authorization specification
157
+ IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
128
158
  IAuthorization authorization = component.getAuthorization();
129
- string memory targetName = authorization.getTargetName();
130
- _checkTargetIsReadyForAuthorization(address(component));
131
-
159
+ _checkAuthorization(address(authorization), expectedType, getRelease(), false, false);
132
160
 
133
- // create roles
161
+ // effects
134
162
  _createRoles(authorization);
135
-
136
- // create component target
137
- _createTarget(
138
- address(component),
139
- targetName,
140
- true, // checkAuthority
141
- false); // custom
142
-
143
- _createTarget(
144
- address(component.getTokenHandler()),
145
- string(abi.encodePacked(targetName, "TH")),
146
- true,
147
- false);
148
-
149
- FunctionInfo[] memory functions = new FunctionInfo[](3);
150
- functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
151
- functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
152
- functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
153
-
154
- // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
155
- _authorizeTargetFunctions(
156
- address(component.getTokenHandler()),
157
- getPublicRole(),
158
- functions);
159
-
160
- _grantRoleToAccount(
161
- authorization.getTargetRole(
162
- authorization.getMainTarget()),
163
- address(component));
164
-
163
+ _createManagedTarget(componentAddress, authorization.getMainTargetName(), TargetType.Component);
165
164
  _createTargetAuthorizations(authorization);
165
+
166
+ // increase component count
167
+ _components++;
166
168
  }
167
169
 
168
- /// @dev Creates a custom role
169
- // TODO implement
170
- // function createRole()
171
- // external
172
- // restricted()
173
- // {
170
+ function getRelease()
171
+ public
172
+ view
173
+ override
174
+ returns (VersionPart release)
175
+ {
176
+ return _release;
177
+ }
178
+
179
+
180
+ /// @dev Creates a custom role.
181
+ function createRole(
182
+ string memory name,
183
+ RoleId adminRoleId,
184
+ uint32 maxMemberCount
185
+ )
186
+ external
187
+ restricted()
188
+ returns (RoleId roleId)
189
+ {
190
+ // check role does not yet exist
191
+ if (roleExists(name)) {
192
+ revert ErrorAccessAdminRoleAlreadyCreated(
193
+ getRoleForName(name),
194
+ name);
195
+ }
196
+
197
+ // create roleId
198
+ roleId = AccessAdminLib.getCustomRoleId(_customRoleIdNext++);
199
+
200
+ // create role
201
+ _createRole(
202
+ roleId,
203
+ AccessAdminLib.toRole(
204
+ adminRoleId,
205
+ IAccess.RoleType.Custom,
206
+ maxMemberCount,
207
+ name));
208
+ }
209
+
210
+
211
+ /// @dev Activtes/pauses the specified role.
212
+ function setRoleActive(RoleId roleId, bool active)
213
+ external
214
+ restricted()
215
+ {
216
+ _setRoleActive(roleId, active);
217
+ }
174
218
 
175
- // }
176
219
 
177
220
  /// @dev Grants the provided role to the specified account
178
221
  function grantRole(
@@ -185,26 +228,96 @@ contract InstanceAdmin is
185
228
  }
186
229
 
187
230
 
231
+ /// @dev Revokes the provided role from the specified account
232
+ function revokeRole(
233
+ RoleId roleId,
234
+ address account)
235
+ external
236
+ restricted()
237
+ {
238
+ _revokeRoleFromAccount(roleId, account);
239
+ }
240
+
241
+
242
+ /// @dev Create a new custom target.
243
+ /// The target needs to be an access managed contract.
244
+ function createTarget(
245
+ address target,
246
+ string memory name
247
+ )
248
+ external
249
+ restricted()
250
+ returns (RoleId contractRoleId)
251
+ {
252
+ return _createManagedTarget(
253
+ target,
254
+ name,
255
+ TargetType.Custom);
256
+ }
257
+
258
+
259
+ /// @dev Add function authorizations for the specified component or custom target.
260
+ function authorizeFunctions(
261
+ address target,
262
+ RoleId roleId,
263
+ IAccess.FunctionInfo[] memory functions
264
+ )
265
+ external
266
+ restricted()
267
+ {
268
+ _checkComponentOrCustomTarget(target);
269
+ _authorizeTargetFunctions(target, roleId, functions, true);
270
+ }
271
+
272
+
273
+ /// @dev Removes function authorizations for the specified component or custom target.
274
+ function unauthorizeFunctions(
275
+ address target,
276
+ IAccess.FunctionInfo[] memory functions
277
+ )
278
+ external
279
+ restricted()
280
+ {
281
+ _checkComponentOrCustomTarget(target);
282
+ _authorizeTargetFunctions(target, ADMIN_ROLE(), functions, false);
283
+ }
284
+
285
+
286
+ /// @dev locks the instance and all its releated targets including component and custom targets.
188
287
  function setInstanceLocked(bool locked)
189
288
  external
190
- onlyInstanceOwner()
289
+ // not restricted(): need to operate on locked instances to unlock instance
290
+ onlyInstanceService()
191
291
  {
192
292
  AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
193
-
194
- if(accessManager.isLocked() == locked) {
195
- revert ErrorInstanceAdminInstanceAlreadyLocked();
196
- }
197
293
  accessManager.setLocked(locked);
198
294
  }
199
295
 
296
+
200
297
  function setTargetLocked(address target, bool locked)
201
298
  external
202
- restricted()
299
+ // not restricted(): might need to operate on targets while instance is locked
300
+ onlyInstanceService()
203
301
  {
204
- _setTargetClosed(target, locked);
302
+ _setTargetLocked(target, locked);
205
303
  }
206
304
 
207
305
 
306
+ function setComponentLocked(address target, bool locked)
307
+ external
308
+ restricted()
309
+ {
310
+ _setTargetLocked(target, locked);
311
+ }
312
+
313
+ /// @dev Returns the number of components that have been registered with this instance.
314
+ function components()
315
+ external
316
+ view
317
+ returns (uint64)
318
+ {
319
+ return _components;
320
+ }
208
321
 
209
322
  /// @dev Returns the instance authorization specification used to set up this instance admin.
210
323
  function getInstanceAuthorization()
@@ -212,36 +325,23 @@ contract InstanceAdmin is
212
325
  view
213
326
  returns (IAuthorization instanceAuthorizaion)
214
327
  {
215
- return _instanceAuthorization;
328
+ return _authorization;
216
329
  }
217
330
 
218
331
  // ------------------- Internal functions ------------------- //
219
332
 
220
- function _checkTargetIsReadyForAuthorization(address target)
221
- internal
222
- view
223
- {
224
- if (!_registry.isRegistered(target)) {
225
- revert ErrorInstanceAdminNotRegistered(target);
226
- }
227
-
228
- if (targetExists(target)) {
229
- revert ErrorInstanceAdminAlreadyAuthorized(target);
230
- }
231
- }
232
-
233
-
234
333
  function _createRoles(IAuthorization authorization)
235
334
  internal
236
335
  {
237
336
  RoleId[] memory roles = authorization.getRoles();
238
- RoleId roleId;
239
- RoleInfo memory roleInfo;
337
+ RoleId mainTargetRoleId = authorization.getTargetRole(
338
+ authorization.getMainTarget());
240
339
 
241
340
  for(uint256 i = 0; i < roles.length; i++) {
242
- roleId = roles[i];
341
+ RoleId roleId = roles[i];
243
342
 
244
- if (!roleExists(roleId)) {
343
+ // skip main target role, create role if not exists
344
+ if (roleId != mainTargetRoleId && !roleExists(roleId)) {
245
345
  _createRole(
246
346
  roleId,
247
347
  authorization.getRoleInfo(roleId));
@@ -259,68 +359,21 @@ contract InstanceAdmin is
259
359
  for(uint256 i = 0; i < targets.length; i++) {
260
360
  target = targets[i];
261
361
  RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
262
- RoleId authorizedRole;
263
362
 
264
363
  for(uint256 j = 0; j < authorizedRoles.length; j++) {
265
- authorizedRole = authorizedRoles[j];
266
-
267
- _authorizeTargetFunctions(
268
- getTargetForName(target),
269
- authorizedRole,
270
- authorization.getAuthorizedFunctions(
271
- target,
272
- authorizedRole));
364
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
273
365
  }
274
366
  }
275
367
  }
276
368
 
277
- function _checkAndCreateTargetWithRole(
278
- address target,
279
- string memory targetName
280
- )
281
- internal
282
- {
283
- // check that target name is defined in authorization specification
284
- Str name = StrLib.toStr(targetName);
285
- if (!_instanceAuthorization.targetExists(name)) {
286
- revert ErrorInstanceAdminExpectedTargetMissing(targetName);
287
- }
288
369
 
289
- // create named target
290
- _createTarget(
291
- target,
292
- targetName,
293
- false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
294
- false);
295
-
296
- // assign target role if defined
297
- RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
298
- if (targetRoleId != RoleIdLib.zero()) {
299
- _grantRoleToAccount(targetRoleId, target);
300
- }
301
- }
302
-
303
- function _createModuleTargetsWithRoles()
370
+ function _checkComponentOrCustomTarget(address target)
304
371
  internal
372
+ view
305
373
  {
306
- // create module targets
307
- _checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
308
- _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
309
- _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
310
- _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
311
- _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
312
-
313
- // create targets for services that need to access the module targets
314
- ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
315
- VersionPart release = _instanceAuthorization.getRelease();
316
- ObjectType serviceDomain;
317
-
318
- for (uint256 i = 0; i < serviceDomains.length; i++) {
319
- serviceDomain = serviceDomains[i];
320
-
321
- _checkAndCreateTargetWithRole(
322
- _registry.getServiceAddress(serviceDomain, release),
323
- _instanceAuthorization.getServiceTarget(serviceDomain).toString());
374
+ IAccess.TargetType targetType = getTargetInfo(target).targetType;
375
+ if (targetType != TargetType.Component && targetType != TargetType.Custom) {
376
+ revert ErrorInstanceAdminNotComponentOrCustomTarget(target);
324
377
  }
325
378
  }
326
379
  }