@etherisc/gif-next 0.0.2-a714036-117 → 0.0.2-a755cba-731

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