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

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 (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
  }