@etherisc/gif-next 0.0.2-f62dcdf-553 → 0.0.2-f634e5c-828

Sign up to get free protection for your applications and to get access to all the features.
Files changed (363) 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 +2 -2
  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 +2 -2
  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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  16. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +55 -147
  18. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
  20. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +8 -52
  22. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +121 -82
  24. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -48
  26. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +11 -37
  28. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +23 -0
  30. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  31. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  32. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +37 -160
  33. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  34. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
  35. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  36. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +93 -200
  37. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
  39. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  40. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +79 -121
  42. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  43. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +33 -101
  44. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  45. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +155 -155
  46. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +391 -219
  48. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  49. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -18
  52. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +24 -17
  54. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/Instance.sol/Instance.json +96 -29
  56. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +103 -72
  58. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
  60. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +302 -74
  62. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +71 -48
  64. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +46 -22
  66. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +59 -69
  68. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  70. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  72. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  75. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  76. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  77. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  78. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  79. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  85. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +22 -114
  88. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
  90. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  92. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +11 -37
  93. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +8 -52
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +84 -60
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +66 -22
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  101. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +8 -67
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +101 -206
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +58 -70
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -57
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -76
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  113. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +77 -75
  114. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  115. package/artifacts/contracts/pool/Pool.sol/Pool.json +8 -91
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +154 -160
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -33
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +58 -23
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -22
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  125. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -52
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  127. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -66
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -47
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -7
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +38 -19
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +16 -37
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +132 -121
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +70 -42
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.json +50 -34
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +56 -32
  149. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  150. package/artifacts/contracts/product/Product.sol/Product.json +13 -52
  151. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -18
  153. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +40 -16
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +24 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  161. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  162. package/artifacts/contracts/registry/Registry.sol/Registry.json +62 -38
  163. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +107 -94
  165. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +32 -16
  167. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +39 -15
  169. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  171. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +12 -12
  173. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  175. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  177. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  178. package/artifacts/contracts/shared/Component.sol/Component.json +8 -38
  179. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +256 -116
  181. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +78 -42
  183. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  185. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +402 -6
  186. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  187. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  188. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  189. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -23
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +146 -14
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +11 -37
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +8 -52
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  208. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  210. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  212. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  214. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  216. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  218. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  219. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  223. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +29 -59
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
  230. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  231. package/artifacts/contracts/staking/Staking.sol/Staking.json +80 -152
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -46
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +36 -20
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +43 -19
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +13 -13
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  252. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  256. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  258. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  259. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +43 -5
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  286. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  287. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  288. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
  289. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  290. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  291. package/contracts/authorization/AccessAdmin.sol +21 -2
  292. package/contracts/authorization/ReleaseAccessManager.sol +1 -1
  293. package/contracts/distribution/BasicDistribution.sol +2 -2
  294. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  295. package/contracts/distribution/Distribution.sol +5 -6
  296. package/contracts/distribution/DistributionService.sol +18 -19
  297. package/contracts/distribution/IDistributionService.sol +5 -6
  298. package/contracts/examples/fire/FirePool.sol +16 -3
  299. package/contracts/examples/fire/FireProduct.sol +24 -8
  300. package/contracts/examples/unpermissioned/SimpleDistribution.sol +15 -0
  301. package/contracts/examples/unpermissioned/SimplePool.sol +34 -2
  302. package/contracts/examples/unpermissioned/SimpleProduct.sol +15 -21
  303. package/contracts/instance/BundleSet.sol +38 -34
  304. package/contracts/instance/IInstance.sol +7 -2
  305. package/contracts/instance/IInstanceService.sol +7 -9
  306. package/contracts/instance/Instance.sol +16 -9
  307. package/contracts/instance/InstanceAdmin.sol +41 -30
  308. package/contracts/instance/InstanceAuthorizationV3.sol +33 -9
  309. package/contracts/instance/InstanceReader.sol +88 -2
  310. package/contracts/instance/InstanceService.sol +39 -58
  311. package/contracts/instance/RiskSet.sol +119 -0
  312. package/contracts/instance/base/ObjectCounter.sol +1 -2
  313. package/contracts/instance/base/ObjectSet.sol +24 -25
  314. package/contracts/instance/module/IComponents.sol +1 -2
  315. package/contracts/instance/module/IPolicy.sol +2 -1
  316. package/contracts/instance/module/IRisk.sol +1 -0
  317. package/contracts/oracle/OracleService.sol +87 -69
  318. package/contracts/pool/BasicPool.sol +24 -3
  319. package/contracts/pool/BasicPoolAuthorization.sol +12 -1
  320. package/contracts/pool/BundleService.sol +14 -84
  321. package/contracts/pool/IBundleService.sol +2 -23
  322. package/contracts/pool/IPoolComponent.sol +1 -7
  323. package/contracts/pool/IPoolService.sol +12 -26
  324. package/contracts/pool/Pool.sol +112 -102
  325. package/contracts/pool/PoolService.sol +156 -88
  326. package/contracts/product/ApplicationService.sol +12 -12
  327. package/contracts/product/BasicProduct.sol +7 -11
  328. package/contracts/product/ClaimService.sol +3 -1
  329. package/contracts/product/IApplicationService.sol +5 -2
  330. package/contracts/product/IPolicyService.sol +17 -7
  331. package/contracts/product/PolicyService.sol +237 -195
  332. package/contracts/product/Product.sol +12 -40
  333. package/contracts/product/RiskService.sol +14 -3
  334. package/contracts/registry/ChainNft.sol +4 -2
  335. package/contracts/registry/IRegistry.sol +2 -0
  336. package/contracts/registry/Registry.sol +9 -1
  337. package/contracts/registry/RegistryAdmin.sol +15 -12
  338. package/contracts/registry/ReleaseRegistry.sol +5 -20
  339. package/contracts/registry/ServiceAuthorizationV3.sol +13 -31
  340. package/contracts/shared/Component.sol +43 -86
  341. package/contracts/shared/ComponentService.sol +160 -36
  342. package/contracts/shared/ComponentVerifyingService.sol +15 -13
  343. package/contracts/shared/ContractLib.sol +196 -10
  344. package/contracts/shared/IComponent.sol +5 -12
  345. package/contracts/shared/IComponentService.sol +19 -5
  346. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  347. package/contracts/shared/InstanceLinkedComponent.sol +1 -17
  348. package/contracts/shared/Registerable.sol +0 -2
  349. package/contracts/shared/RegistryLinked.sol +6 -12
  350. package/contracts/shared/TokenHandler.sol +316 -66
  351. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  352. package/contracts/staking/IStaking.sol +9 -4
  353. package/contracts/staking/Staking.sol +29 -21
  354. package/contracts/staking/StakingService.sol +41 -8
  355. package/contracts/type/Key32.sol +2 -2
  356. package/contracts/type/Key32Set.sol +62 -0
  357. package/contracts/type/NftId.sol +6 -0
  358. package/contracts/type/ObjectType.sol +2 -0
  359. package/contracts/type/RiskId.sol +18 -6
  360. package/contracts/type/UFixed.sol +9 -119
  361. package/package.json +3 -3
  362. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  363. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
@@ -5,6 +5,7 @@ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/acce
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
7
  import {BundleSet} from "./BundleSet.sol";
8
+ import {RiskSet} from "./RiskSet.sol";
8
9
  import {COMPONENT, INSTANCE} from "../type/ObjectType.sol";
9
10
  import {IInstance} from "./IInstance.sol";
10
11
  import {IComponentService} from "../shared/IComponentService.sol";
@@ -18,7 +19,6 @@ import {Registerable} from "../shared/Registerable.sol";
18
19
  import {RoleId} from "../type/RoleId.sol";
19
20
  import {Seconds} from "../type/Seconds.sol";
20
21
  import {UFixed} from "../type/UFixed.sol";
21
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
22
22
 
23
23
  contract Instance is
24
24
  IInstance,
@@ -31,7 +31,8 @@ contract Instance is
31
31
  IInstanceService internal _instanceService;
32
32
  InstanceAdmin internal _instanceAdmin;
33
33
  InstanceReader internal _instanceReader;
34
- BundleSet internal _bundleManager;
34
+ BundleSet internal _bundleSet;
35
+ RiskSet internal _riskSet;
35
36
  InstanceStore internal _instanceStore;
36
37
 
37
38
  modifier onlyChainNft() {
@@ -44,7 +45,8 @@ contract Instance is
44
45
  function initialize(
45
46
  InstanceAdmin instanceAdmin,
46
47
  InstanceStore instanceStore,
47
- BundleSet bundleManager,
48
+ BundleSet bundleSet,
49
+ RiskSet riskSet,
48
50
  InstanceReader instanceReader,
49
51
  IRegistry registry,
50
52
  address initialOwner
@@ -71,12 +73,14 @@ contract Instance is
71
73
 
72
74
  // store instance supporting contracts
73
75
  _instanceStore = instanceStore;
74
- _bundleManager = bundleManager;
76
+ _bundleSet = bundleSet;
77
+ _riskSet = riskSet;
75
78
  _instanceReader = instanceReader;
76
79
 
77
80
  // initialize instance supporting contracts
78
81
  _instanceStore.initialize();
79
- _bundleManager.initialize();
82
+ _bundleSet.initialize();
83
+ _riskSet.initialize();
80
84
  _instanceReader.initialize();
81
85
 
82
86
  _componentService = IComponentService(
@@ -181,12 +185,11 @@ contract Instance is
181
185
  // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
182
186
  }
183
187
 
184
- function setTargetLocked(address target, bool locked)
188
+ function setLocked(address target, bool locked)
185
189
  external
186
190
  onlyOwner()
187
191
  {
188
- // TODO refactor
189
- // _instanceAdmin.setTargetLockedByInstance(target, locked);
192
+ _componentService.setLockedFromInstance(target, locked);
190
193
  }
191
194
 
192
195
  //--- ITransferInterceptor ----------------------------------------------//
@@ -217,7 +220,11 @@ contract Instance is
217
220
  }
218
221
 
219
222
  function getBundleSet() external view returns (BundleSet) {
220
- return _bundleManager;
223
+ return _bundleSet;
224
+ }
225
+
226
+ function getRiskSet() external view returns (RiskSet) {
227
+ return _riskSet;
221
228
  }
222
229
 
223
230
  function getInstanceAdmin() external view returns (InstanceAdmin) {
@@ -1,19 +1,16 @@
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
8
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
11
9
  import {IAuthorization} from "../authorization/IAuthorization.sol";
12
10
  import {IRegistry} from "../registry/IRegistry.sol";
13
11
  import {IInstance} from "./IInstance.sol";
14
- import {IService} from "../shared/IService.sol";
15
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
16
- import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
12
+ import {ObjectType} from "../type/ObjectType.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
17
14
  import {Str, StrLib} from "../type/String.sol";
18
15
  import {TokenHandler} from "../shared/TokenHandler.sol";
19
16
  import {VersionPart} from "../type/Version.sol";
@@ -26,6 +23,7 @@ contract InstanceAdmin is
26
23
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
27
24
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
28
25
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
29
27
 
30
28
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
31
29
 
@@ -34,20 +32,20 @@ contract InstanceAdmin is
34
32
  error ErrorInstanceAdminReleaseMismatch();
35
33
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
36
34
 
37
- IInstance _instance;
35
+ IInstance internal _instance;
38
36
  IRegistry internal _registry;
39
- uint64 _idNext;
37
+ uint64 internal _idNext;
40
38
 
41
- IAuthorization _instanceAuthorization;
39
+ IAuthorization internal _instanceAuthorization;
42
40
 
43
41
  /// @dev Only used for master instance admin.
44
42
  /// Contracts created via constructor come with disabled initializers.
45
43
  constructor(
46
- IAuthorization instanceAuthorization
44
+ address instanceAuthorization
47
45
  )
48
46
  AccessAdmin()
49
47
  {
50
- _instanceAuthorization = instanceAuthorization;
48
+ _instanceAuthorization = IAuthorization(instanceAuthorization);
51
49
  }
52
50
 
53
51
  /// @dev Initializes this instance admin with the provided instances authorization specification.
@@ -56,10 +54,10 @@ contract InstanceAdmin is
56
54
  /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
57
55
  function initialize(
58
56
  AccessManagerCloneable accessManager,
59
- IAuthorization instanceAuthorization
57
+ address instanceAuthorization
60
58
  )
61
59
  external
62
- initializer()
60
+ initializer()
63
61
  {
64
62
  // create new access manager for this instance admin
65
63
  _initializeAuthority(address(accessManager));
@@ -71,19 +69,6 @@ contract InstanceAdmin is
71
69
  _instanceAuthorization = IAuthorization(instanceAuthorization);
72
70
  }
73
71
 
74
- function _checkTargetIsReadyForAuthorization(address target)
75
- internal
76
- view
77
- {
78
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
79
- revert ErrorInstanceAdminNotRegistered(target);
80
- }
81
-
82
- if (targetExists(target)) {
83
- revert ErrorInstanceAdminAlreadyAuthorized(target);
84
- }
85
- }
86
-
87
72
  /// @dev Completes the initialization of this instance admin using the provided instance.
88
73
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
89
74
  function initializeInstanceAuthorization(address instanceAddress)
@@ -114,10 +99,12 @@ contract InstanceAdmin is
114
99
  )
115
100
  external
116
101
  {
117
- _checkTargetIsReadyForAuthorization(address(component));
118
-
102
+ // checks
119
103
  // get authorization specification
120
104
  IAuthorization authorization = component.getAuthorization();
105
+ string memory targetName = authorization.getTargetName();
106
+ _checkTargetIsReadyForAuthorization(address(component));
107
+
121
108
 
122
109
  // create roles
123
110
  _createRoles(authorization);
@@ -125,13 +112,13 @@ contract InstanceAdmin is
125
112
  // create component target
126
113
  _createTarget(
127
114
  address(component),
128
- authorization.getTargetName(),
115
+ targetName,
129
116
  true, // checkAuthority
130
117
  false); // custom
131
118
 
132
119
  _createTarget(
133
120
  address(component.getTokenHandler()),
134
- string(abi.encodePacked(authorization.getTargetName(), "TH")),
121
+ string(abi.encodePacked(targetName, "TH")),
135
122
  true,
136
123
  false);
137
124
 
@@ -173,6 +160,15 @@ contract InstanceAdmin is
173
160
  _grantRoleToAccount(roleId, account);
174
161
  }
175
162
 
163
+ function setTargetLocked(address target, bool locked)
164
+ external
165
+ restricted()
166
+ {
167
+ _setTargetClosed(target, locked);
168
+ }
169
+
170
+
171
+
176
172
  /// @dev Returns the instance authorization specification used to set up this instance admin.
177
173
  function getInstanceAuthorization()
178
174
  external
@@ -183,6 +179,20 @@ contract InstanceAdmin is
183
179
  }
184
180
 
185
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
+
186
196
  function _createRoles(IAuthorization authorization)
187
197
  internal
188
198
  {
@@ -242,7 +252,7 @@ contract InstanceAdmin is
242
252
  _createTarget(
243
253
  target,
244
254
  targetName,
245
- 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)
246
256
  false);
247
257
 
248
258
  // assign target role if defined
@@ -260,6 +270,7 @@ contract InstanceAdmin is
260
270
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
261
271
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
262
272
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
273
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
263
274
 
264
275
  // create targets for services that need to access the module targets
265
276
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -2,10 +2,11 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
5
+ PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
- import {BundleSet} from "../instance/BundleSet.sol";
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
9
10
  import {IAccess} from "../authorization/IAccess.sol";
10
11
  import {Instance} from "../instance/Instance.sol";
11
12
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
@@ -23,6 +24,7 @@ contract InstanceAuthorizationV3
23
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
26
28
 
27
29
  constructor() Authorization(INSTANCE_TARGET_NAME) {}
28
30
 
@@ -49,6 +51,7 @@ contract InstanceAuthorizationV3
49
51
  _addTarget(INSTANCE_STORE_TARGET_NAME);
50
52
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
51
53
  _addTarget(BUNDLE_SET_TARGET_NAME);
54
+ _addTarget(RISK_SET_TARGET_NAME);
52
55
 
53
56
  // service targets relevant to instance
54
57
  _addServiceTargetWithRole(INSTANCE());
@@ -57,7 +60,7 @@ contract InstanceAuthorizationV3
57
60
  _addServiceTargetWithRole(ORACLE());
58
61
  _addServiceTargetWithRole(POOL());
59
62
  _addServiceTargetWithRole(BUNDLE());
60
- _addServiceTargetWithRole(PRODUCT());
63
+ _addServiceTargetWithRole(RISK());
61
64
  _addServiceTargetWithRole(APPLICATION());
62
65
  _addServiceTargetWithRole(POLICY());
63
66
  _addServiceTargetWithRole(CLAIM());
@@ -72,7 +75,7 @@ contract InstanceAuthorizationV3
72
75
  _setupInstanceAdminAuthorization();
73
76
  _setupInstanceStoreAuthorization();
74
77
  _setupBundleSetAuthorization();
75
-
78
+ _setUpRiskSetAuthorization();
76
79
  }
77
80
 
78
81
 
@@ -83,11 +86,31 @@ contract InstanceAuthorizationV3
83
86
 
84
87
  // authorize bundle service role
85
88
  functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
86
- _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
87
- _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
88
89
  _authorize(functions, BundleSet.add.selector, "add");
89
90
  _authorize(functions, BundleSet.lock.selector, "lock");
90
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");
91
114
  }
92
115
 
93
116
 
@@ -111,8 +134,9 @@ contract InstanceAuthorizationV3
111
134
  functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
112
135
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
113
136
 
114
- // authorize instance service role
115
- // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
137
+ // authorize component service role
138
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
139
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
116
140
  }
117
141
 
118
142
 
@@ -164,7 +188,7 @@ contract InstanceAuthorizationV3
164
188
  _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
165
189
 
166
190
  // authorize product service role
167
- functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
191
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
168
192
  _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
169
193
  _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
170
194
  _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 {
@@ -50,7 +52,9 @@ contract InstanceReader {
50
52
  }
51
53
 
52
54
  /// @dev This initializer needs to be called from the instance itself.
53
- function initializeWithInstance(address instanceAddress) public {
55
+ function initializeWithInstance(address instanceAddress)
56
+ public
57
+ {
54
58
  if(_initialized) {
55
59
  revert ErrorInstanceReaderAlreadyInitialized();
56
60
  }
@@ -59,6 +63,7 @@ contract InstanceReader {
59
63
  _instance = IInstance(instanceAddress);
60
64
  _store = _instance.getInstanceStore();
61
65
  _bundleSet = _instance.getBundleSet();
66
+ _riskSet = _instance.getRiskSet();
62
67
  }
63
68
 
64
69
 
@@ -102,6 +107,14 @@ contract InstanceReader {
102
107
  return _store.getState(toPremiumKey(policyNftId));
103
108
  }
104
109
 
110
+ function bundles(NftId poolNftId)
111
+ public
112
+ view
113
+ returns (uint256 bundles)
114
+ {
115
+ return _bundleSet.bundles(poolNftId);
116
+ }
117
+
105
118
  function activeBundles(NftId poolNftId)
106
119
  public
107
120
  view
@@ -118,6 +131,14 @@ contract InstanceReader {
118
131
  return _bundleSet.getActiveBundleNftId(poolNftId, idx);
119
132
  }
120
133
 
134
+ function getBundleNftId(NftId poolNftId, uint256 idx)
135
+ public
136
+ view
137
+ returns (NftId bundleNftId)
138
+ {
139
+ return _bundleSet.getBundleNftId(poolNftId, idx);
140
+ }
141
+
121
142
  function getBundleState(NftId bundleNftId)
122
143
  public
123
144
  view
@@ -226,6 +247,38 @@ contract InstanceReader {
226
247
  return _store.getState(payoutId.toKey32(policyNftId));
227
248
  }
228
249
 
250
+ function risks(NftId productNftId)
251
+ public
252
+ view
253
+ returns (uint256 activeRisks)
254
+ {
255
+ return _riskSet.risks(productNftId);
256
+ }
257
+
258
+ function getRiskId(NftId productNftId, uint256 idx)
259
+ public
260
+ view
261
+ returns (RiskId riskId)
262
+ {
263
+ return _riskSet.getRiskId(productNftId, idx);
264
+ }
265
+
266
+ function activeRisks(NftId productNftId)
267
+ public
268
+ view
269
+ returns (uint256 activeRisks)
270
+ {
271
+ return _riskSet.activeRisks(productNftId);
272
+ }
273
+
274
+ function getActiveRiskId(NftId productNftId, uint256 idx)
275
+ public
276
+ view
277
+ returns (RiskId riskId)
278
+ {
279
+ return _riskSet.getActiveRiskId(productNftId, idx);
280
+ }
281
+
229
282
  function getRiskInfo(RiskId riskId)
230
283
  public
231
284
  view
@@ -237,6 +290,31 @@ contract InstanceReader {
237
290
  }
238
291
  }
239
292
 
293
+ function getRiskState(RiskId riskId)
294
+ public
295
+ view
296
+ returns (StateId stateId)
297
+ {
298
+ bytes memory data = _store.getData(riskId.toKey32());
299
+ return _store.getState(riskId.toKey32());
300
+ }
301
+
302
+ function policiesForRisk(RiskId riskId)
303
+ public
304
+ view
305
+ returns (uint256 linkedPolicies)
306
+ {
307
+ return _riskSet.linkedPolicies(riskId);
308
+ }
309
+
310
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
311
+ public
312
+ view
313
+ returns (NftId linkedPolicyNftId)
314
+ {
315
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
316
+ }
317
+
240
318
  function getWallet(NftId componentNftId)
241
319
  public
242
320
  view
@@ -246,7 +324,7 @@ contract InstanceReader {
246
324
 
247
325
  if (data.length > 0) {
248
326
  IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
249
- return info.wallet;
327
+ return info.tokenHandler.getWallet();
250
328
  }
251
329
  }
252
330
 
@@ -485,6 +563,14 @@ contract InstanceReader {
485
563
  return _store;
486
564
  }
487
565
 
566
+ function getBundleSet() external view returns (BundleSet bundleSet) {
567
+ return _bundleSet;
568
+ }
569
+
570
+ function getRiskSet() external view returns (RiskSet riskSet) {
571
+ return _riskSet;
572
+ }
573
+
488
574
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
489
575
  return UFixedLib.toUFixed(value, exp);
490
576
  }