@etherisc/gif-next 0.0.2-93a7619-595 → 0.0.2-93ee1cf-782

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