@etherisc/gif-next 0.0.2-b2910e7-757 → 0.0.2-b2e620f-736

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 (452) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +77 -65
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -39
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +117 -110
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +46 -48
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +27 -3
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +102 -42
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +260 -185
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +117 -54
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +306 -147
  59. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  60. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  61. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  62. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -21
  63. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +75 -5
  65. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/Instance.sol/Instance.json +150 -41
  67. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +355 -99
  69. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
  71. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +549 -218
  73. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +87 -60
  75. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
  77. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +403 -353
  79. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  80. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  81. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  83. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  86. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  88. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  90. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  92. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  97. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -56
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +38 -26
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -40
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +98 -83
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +40 -22
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -39
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -310
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -83
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -122
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -26
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  127. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  128. package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -39
  129. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  130. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +241 -302
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -45
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +91 -65
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -22
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  140. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -130
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  142. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  144. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  150. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -55
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -117
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  160. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +198 -181
  161. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  162. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  163. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +51 -45
  165. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
  167. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
  169. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  170. package/artifacts/contracts/product/Product.sol/Product.json +157 -130
  171. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
  173. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
  175. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  177. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  179. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  181. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  182. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
  188. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  190. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
  192. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +316 -50
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  202. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Component.sol/Component.json +51 -39
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +119 -514
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +38 -72
  208. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +435 -5
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  218. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -26
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +45 -327
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
  224. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  225. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  226. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  230. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  233. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  234. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  235. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -39
  236. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  239. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  248. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  256. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  257. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +38 -26
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  259. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
  260. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  262. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  263. package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
  264. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +27 -19
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -20
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
  276. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  277. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  278. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  279. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  281. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  284. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  286. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  288. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  290. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  292. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  294. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  296. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  298. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  300. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  302. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  304. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
  306. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  308. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  311. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  313. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  319. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  328. package/contracts/accounting/AccountingService.sol +262 -0
  329. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  330. package/contracts/accounting/IAccountingService.sol +45 -0
  331. package/contracts/authorization/AccessAdmin.sol +177 -84
  332. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  333. package/contracts/authorization/Authorization.sol +277 -229
  334. package/contracts/authorization/IAccessAdmin.sol +13 -7
  335. package/contracts/authorization/IAuthorization.sol +15 -1
  336. package/contracts/distribution/BasicDistribution.sol +4 -4
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  338. package/contracts/distribution/Distribution.sol +27 -24
  339. package/contracts/distribution/DistributionService.sol +18 -15
  340. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  341. package/contracts/examples/fire/FirePool.sol +6 -2
  342. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  343. package/contracts/examples/fire/FireProduct.sol +8 -1
  344. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  345. package/contracts/examples/unpermissioned/SimpleDistribution.sol +6 -7
  346. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  347. package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
  348. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  349. package/contracts/examples/unpermissioned/SimpleProduct.sol +32 -0
  350. package/contracts/instance/BundleSet.sol +42 -38
  351. package/contracts/instance/IInstance.sol +13 -7
  352. package/contracts/instance/IInstanceService.sol +7 -1
  353. package/contracts/instance/Instance.sol +41 -16
  354. package/contracts/instance/InstanceAdmin.sol +241 -76
  355. package/contracts/instance/InstanceAuthorizationV3.sol +53 -31
  356. package/contracts/instance/InstanceReader.sol +162 -32
  357. package/contracts/instance/InstanceService.sol +59 -35
  358. package/contracts/instance/InstanceServiceManager.sol +1 -1
  359. package/contracts/instance/InstanceStore.sol +13 -2
  360. package/contracts/instance/RiskSet.sol +118 -0
  361. package/contracts/instance/base/ObjectCounter.sol +1 -2
  362. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  363. package/contracts/instance/base/ObjectSet.sol +31 -33
  364. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  365. package/contracts/instance/module/IComponents.sol +3 -2
  366. package/contracts/instance/module/IRisk.sol +3 -0
  367. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  368. package/contracts/oracle/Oracle.sol +1 -1
  369. package/contracts/oracle/OracleService.sol +92 -74
  370. package/contracts/oracle/OracleServiceManager.sol +1 -1
  371. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  372. package/contracts/pool/BundleService.sol +35 -125
  373. package/contracts/pool/BundleServiceManager.sol +1 -1
  374. package/contracts/pool/IBundleService.sol +13 -38
  375. package/contracts/pool/IPoolService.sol +49 -56
  376. package/contracts/pool/Pool.sol +9 -9
  377. package/contracts/pool/PoolLib.sol +216 -0
  378. package/contracts/pool/PoolService.sol +323 -186
  379. package/contracts/pool/PoolServiceManager.sol +1 -1
  380. package/contracts/product/ApplicationService.sol +15 -15
  381. package/contracts/product/ApplicationServiceManager.sol +1 -1
  382. package/contracts/product/BasicProduct.sol +2 -0
  383. package/contracts/product/BasicProductAuthorization.sol +24 -10
  384. package/contracts/product/ClaimService.sol +157 -139
  385. package/contracts/product/ClaimServiceManager.sol +1 -1
  386. package/contracts/product/IApplicationService.sol +5 -2
  387. package/contracts/product/IClaimService.sol +14 -2
  388. package/contracts/product/IPolicyService.sol +23 -10
  389. package/contracts/product/IProductComponent.sol +4 -1
  390. package/contracts/product/PolicyService.sol +269 -257
  391. package/contracts/product/PolicyServiceLib.sol +65 -0
  392. package/contracts/product/PolicyServiceManager.sol +1 -1
  393. package/contracts/product/PricingService.sol +23 -19
  394. package/contracts/product/PricingServiceManager.sol +3 -3
  395. package/contracts/product/Product.sol +53 -7
  396. package/contracts/product/RiskService.sol +74 -25
  397. package/contracts/product/RiskServiceManager.sol +1 -1
  398. package/contracts/registry/ChainNft.sol +4 -2
  399. package/contracts/registry/IRegistry.sol +8 -15
  400. package/contracts/registry/IRelease.sol +26 -0
  401. package/contracts/registry/Registry.sol +7 -2
  402. package/contracts/registry/RegistryAdmin.sol +129 -237
  403. package/contracts/registry/RegistryService.sol +3 -3
  404. package/contracts/registry/RegistryServiceManager.sol +1 -1
  405. package/contracts/registry/ReleaseAdmin.sol +245 -0
  406. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  407. package/contracts/registry/ReleaseRegistry.sol +127 -101
  408. package/contracts/registry/ServiceAuthorizationV3.sol +163 -40
  409. package/contracts/registry/TokenRegistry.sol +6 -8
  410. package/contracts/shared/Component.sol +30 -38
  411. package/contracts/shared/ComponentService.sol +165 -302
  412. package/contracts/shared/ComponentServiceManager.sol +1 -1
  413. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  414. package/contracts/shared/ContractLib.sol +208 -9
  415. package/contracts/shared/IComponent.sol +3 -9
  416. package/contracts/shared/IComponentService.sol +2 -27
  417. package/contracts/shared/IRegisterable.sol +15 -4
  418. package/contracts/shared/IService.sol +3 -5
  419. package/contracts/shared/InstanceLinkedComponent.sol +3 -3
  420. package/contracts/shared/NftOwnable.sol +4 -4
  421. package/contracts/shared/PolicyHolder.sol +1 -1
  422. package/contracts/shared/Registerable.sol +45 -19
  423. package/contracts/shared/RegistryLinked.sol +1 -1
  424. package/contracts/shared/Service.sol +8 -27
  425. package/contracts/shared/TokenHandler.sol +40 -96
  426. package/contracts/staking/IStaking.sol +0 -8
  427. package/contracts/staking/IStakingService.sol +8 -0
  428. package/contracts/staking/StakeManagerLib.sol +1 -1
  429. package/contracts/staking/Staking.sol +34 -13
  430. package/contracts/staking/StakingReader.sol +1 -1
  431. package/contracts/staking/StakingService.sol +32 -55
  432. package/contracts/staking/StakingServiceManager.sol +5 -4
  433. package/contracts/type/Key32.sol +2 -2
  434. package/contracts/type/Key32Set.sol +62 -0
  435. package/contracts/type/NftId.sol +6 -0
  436. package/contracts/type/ObjectType.sol +48 -21
  437. package/contracts/type/RiskId.sol +23 -6
  438. package/contracts/type/RoleId.sol +24 -4
  439. package/contracts/type/Selector.sol +5 -0
  440. package/contracts/type/Timestamp.sol +0 -5
  441. package/contracts/type/UFixed.sol +9 -119
  442. package/contracts/type/Version.sol +15 -5
  443. package/contracts/upgradeability/ProxyManager.sol +1 -1
  444. package/package.json +1 -1
  445. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  446. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  447. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  448. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  449. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  450. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  451. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  452. package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,32 +1,37 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {IBundle} from "../instance/module/IBundle.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {IDistribution} from "../instance/module/IDistribution.sol";
9
+ import {IInstance} from "./IInstance.sol";
10
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
11
+ import {IOracle} from "../oracle/IOracle.sol";
12
+ import {IPolicy} from "../instance/module/IPolicy.sol";
13
+ import {IRegistry} from "../registry/IRegistry.sol";
14
+ import {IRisk} from "../instance/module/IRisk.sol";
15
+ import {TimestampLib} from "../type/Timestamp.sol";
16
+
4
17
  import {Amount} from "../type/Amount.sol";
18
+ import {BundleSet} from "./BundleSet.sol";
19
+ import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
5
20
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
6
21
  import {DistributorType} from "../type/DistributorType.sol";
22
+ import {InstanceStore} from "./InstanceStore.sol";
7
23
  import {Key32} from "../type/Key32.sol";
8
24
  import {NftId} from "../type/NftId.sol";
9
- import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
25
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
11
26
  import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
27
  import {RequestId} from "../type/RequestId.sol";
13
28
  import {RiskId} from "../type/RiskId.sol";
29
+ import {RiskSet} from "./RiskSet.sol";
14
30
  import {RoleId} from "../type/RoleId.sol";
15
31
  import {StateId} from "../type/StateId.sol";
32
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
33
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
34
 
18
- import {IBundle} from "../instance/module/IBundle.sol";
19
- import {IComponents} from "../instance/module/IComponents.sol";
20
- import {IDistribution} from "../instance/module/IDistribution.sol";
21
- import {IInstance} from "./IInstance.sol";
22
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
- import {IOracle} from "../oracle/IOracle.sol";
24
- import {IPolicy} from "../instance/module/IPolicy.sol";
25
- import {IRisk} from "../instance/module/IRisk.sol";
26
- import {TimestampLib} from "../type/Timestamp.sol";
27
-
28
- import {InstanceStore} from "./InstanceStore.sol";
29
- import {BundleSet} from "./BundleSet.sol";
30
35
 
31
36
 
32
37
  contract InstanceReader {
@@ -36,9 +41,12 @@ contract InstanceReader {
36
41
 
37
42
  bool private _initialized = false;
38
43
 
44
+ IRegistry internal _registry;
39
45
  IInstance internal _instance;
46
+
40
47
  InstanceStore internal _store;
41
48
  BundleSet internal _bundleSet;
49
+ RiskSet internal _riskSet;
42
50
 
43
51
  /// @dev This initializer needs to be called from the instance itself.
44
52
  function initialize() public {
@@ -49,18 +57,36 @@ contract InstanceReader {
49
57
  initializeWithInstance(msg.sender);
50
58
  }
51
59
 
52
- /// @dev This initializer needs to be called from the instance itself.
53
- function initializeWithInstance(address instanceAddress) public {
60
+ function initializeWithInstance(address instanceAddress)
61
+ public
62
+ {
54
63
  if(_initialized) {
55
64
  revert ErrorInstanceReaderAlreadyInitialized();
56
65
  }
57
66
 
58
67
  _initialized = true;
59
68
  _instance = IInstance(instanceAddress);
69
+ _registry = _instance.getRegistry();
70
+
60
71
  _store = _instance.getInstanceStore();
61
72
  _bundleSet = _instance.getBundleSet();
73
+ _riskSet = _instance.getRiskSet();
74
+ }
75
+
76
+
77
+ // instance level functions
78
+
79
+ function getRegistry() public view returns (IRegistry registry) {
80
+ return _registry;
81
+ }
82
+
83
+ function getInstanceNftId() public view returns (NftId instanceNftid) {
84
+ return _registry.getNftIdForAddress(address(_instance));
62
85
  }
63
86
 
87
+ function getInstance() public view returns (IInstance instance) {
88
+ return _instance;
89
+ }
64
90
 
65
91
  // module specific functions
66
92
 
@@ -102,10 +128,18 @@ contract InstanceReader {
102
128
  return _store.getState(toPremiumKey(policyNftId));
103
129
  }
104
130
 
131
+ function bundles(NftId poolNftId)
132
+ public
133
+ view
134
+ returns (uint256 bundleCount)
135
+ {
136
+ return _bundleSet.bundles(poolNftId);
137
+ }
138
+
105
139
  function activeBundles(NftId poolNftId)
106
140
  public
107
141
  view
108
- returns (uint256 bundles)
142
+ returns (uint256 bundleCount)
109
143
  {
110
144
  return _bundleSet.activeBundles(poolNftId);
111
145
  }
@@ -118,6 +152,14 @@ contract InstanceReader {
118
152
  return _bundleSet.getActiveBundleNftId(poolNftId, idx);
119
153
  }
120
154
 
155
+ function getBundleNftId(NftId poolNftId, uint256 idx)
156
+ public
157
+ view
158
+ returns (NftId bundleNftId)
159
+ {
160
+ return _bundleSet.getBundleNftId(poolNftId, idx);
161
+ }
162
+
121
163
  function getBundleState(NftId bundleNftId)
122
164
  public
123
165
  view
@@ -145,7 +187,7 @@ contract InstanceReader {
145
187
  function claims(NftId policyNftId)
146
188
  public
147
189
  view
148
- returns (uint16 claims)
190
+ returns (uint16 claimCount)
149
191
  {
150
192
  return getPolicyInfo(policyNftId).claimsCount;
151
193
  }
@@ -183,7 +225,7 @@ contract InstanceReader {
183
225
  function payouts(NftId policyNftId, ClaimId claimId)
184
226
  public
185
227
  view
186
- returns (uint24 payouts)
228
+ returns (uint24 payoutCount)
187
229
  {
188
230
  return getClaimInfo(policyNftId, claimId).payoutsCount;
189
231
  }
@@ -226,6 +268,38 @@ contract InstanceReader {
226
268
  return _store.getState(payoutId.toKey32(policyNftId));
227
269
  }
228
270
 
271
+ function risks(NftId productNftId)
272
+ public
273
+ view
274
+ returns (uint256 riskCount)
275
+ {
276
+ return _riskSet.risks(productNftId);
277
+ }
278
+
279
+ function getRiskId(NftId productNftId, uint256 idx)
280
+ public
281
+ view
282
+ returns (RiskId riskId)
283
+ {
284
+ return _riskSet.getRiskId(productNftId, idx);
285
+ }
286
+
287
+ function activeRisks(NftId productNftId)
288
+ public
289
+ view
290
+ returns (uint256 activeRiskCount)
291
+ {
292
+ return _riskSet.activeRisks(productNftId);
293
+ }
294
+
295
+ function getActiveRiskId(NftId productNftId, uint256 idx)
296
+ public
297
+ view
298
+ returns (RiskId riskId)
299
+ {
300
+ return _riskSet.getActiveRiskId(productNftId, idx);
301
+ }
302
+
229
303
  function getRiskInfo(RiskId riskId)
230
304
  public
231
305
  view
@@ -237,32 +311,68 @@ contract InstanceReader {
237
311
  }
238
312
  }
239
313
 
240
- function getWallet(NftId componentNftId)
314
+ function getRiskState(RiskId riskId)
315
+ public
316
+ view
317
+ returns (StateId stateId)
318
+ {
319
+ bytes memory data = _store.getData(riskId.toKey32());
320
+ return _store.getState(riskId.toKey32());
321
+ }
322
+
323
+ function policiesForRisk(RiskId riskId)
241
324
  public
242
325
  view
243
- returns (address tokenHandler)
326
+ returns (uint256 linkedPolicies)
244
327
  {
245
- bytes memory data = _store.getData(toComponentKey(componentNftId));
328
+ return _riskSet.linkedPolicies(riskId);
329
+ }
246
330
 
247
- if (data.length > 0) {
248
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
249
- return info.tokenHandler.getWallet();
331
+ function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
332
+ public
333
+ view
334
+ returns (NftId linkedPolicyNftId)
335
+ {
336
+ return _riskSet.getLinkedPolicyNftId(riskId, idx);
337
+ }
338
+
339
+
340
+ function getToken(NftId componentNftId)
341
+ public
342
+ view
343
+ returns (IERC20Metadata token)
344
+ {
345
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
346
+ if (address(tokenHandler) != address(0)) {
347
+ return tokenHandler.TOKEN();
348
+ }
349
+ }
350
+
351
+
352
+ function getWallet(NftId componentNftId)
353
+ public
354
+ view
355
+ returns (address wallet)
356
+ {
357
+ TokenHandler tokenHandler = getTokenHandler(componentNftId);
358
+ if (address(tokenHandler) != address(0)) {
359
+ return tokenHandler.getWallet();
250
360
  }
251
361
  }
252
362
 
363
+
253
364
  function getTokenHandler(NftId componentNftId)
254
365
  public
255
366
  view
256
- returns (address tokenHandler)
367
+ returns (TokenHandler tokenHandler)
257
368
  {
258
369
  bytes memory data = _store.getData(toComponentKey(componentNftId));
259
-
260
370
  if (data.length > 0) {
261
- IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
262
- return address(info.tokenHandler);
371
+ return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
263
372
  }
264
373
  }
265
374
 
375
+
266
376
  function getBundleInfo(NftId bundleNftId)
267
377
  public
268
378
  view
@@ -330,6 +440,17 @@ contract InstanceReader {
330
440
  }
331
441
  }
332
442
 
443
+ function getFeeInfo(NftId productNftId)
444
+ public
445
+ view
446
+ returns (IComponents.FeeInfo memory feeInfo)
447
+ {
448
+ bytes memory data = _store.getData(toFeeKey(productNftId));
449
+ if (data.length > 0) {
450
+ return abi.decode(data, (IComponents.FeeInfo));
451
+ }
452
+ }
453
+
333
454
  function getPoolInfo(NftId poolNftId)
334
455
  public
335
456
  view
@@ -440,7 +561,7 @@ contract InstanceReader {
440
561
  }
441
562
 
442
563
 
443
- function isTargetLocked(address target) public view returns (bool) {
564
+ function isLocked(address target) public view returns (bool) {
444
565
  return _instance.getInstanceAdmin().isTargetLocked(target);
445
566
  }
446
567
 
@@ -476,15 +597,24 @@ contract InstanceReader {
476
597
  return productNftId.toKey32(PRODUCT());
477
598
  }
478
599
 
479
- // low level function
480
- function getInstance() external view returns (IInstance instance) {
481
- return _instance;
600
+ function toFeeKey(NftId productNftId) public pure returns (Key32) {
601
+ return productNftId.toKey32(FEE());
482
602
  }
483
603
 
604
+ // low level function
605
+
484
606
  function getInstanceStore() external view returns (IKeyValueStore store) {
485
607
  return _store;
486
608
  }
487
609
 
610
+ function getBundleSet() external view returns (BundleSet bundleSet) {
611
+ return _bundleSet;
612
+ }
613
+
614
+ function getRiskSet() external view returns (RiskSet riskSet) {
615
+ return _riskSet;
616
+ }
617
+
488
618
  function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
489
619
  return UFixedLib.toUFixed(value, exp);
490
620
  }
@@ -3,9 +3,12 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
 
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
7
8
  import {Amount} from "../type/Amount.sol";
8
9
  import {BundleSet} from "./BundleSet.sol";
10
+ import {RiskSet} from "./RiskSet.sol";
11
+ import {ChainNft} from "../registry/ChainNft.sol";
9
12
  import {NftId} from "../type/NftId.sol";
10
13
  import {RoleId} from "../type/RoleId.sol";
11
14
  import {UFixed} from "../type/UFixed.sol";
@@ -46,6 +49,7 @@ contract InstanceService is
46
49
  address internal _masterInstance;
47
50
  address internal _masterInstanceReader;
48
51
  address internal _masterInstanceBundleSet;
52
+ address internal _masterInstanceRiskSet;
49
53
  address internal _masterInstanceStore;
50
54
 
51
55
 
@@ -77,6 +81,7 @@ contract InstanceService is
77
81
  _;
78
82
  }
79
83
 
84
+
80
85
  // TODO check component - service - instance version match
81
86
  modifier onlyComponent() {
82
87
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
@@ -87,6 +92,7 @@ contract InstanceService is
87
92
 
88
93
  function createInstance()
89
94
  external
95
+ restricted()
90
96
  returns (
91
97
  IInstance instance,
92
98
  NftId instanceNftId
@@ -110,7 +116,11 @@ contract InstanceService is
110
116
  TargetManagerLib.getDefaultRewardRate());
111
117
 
112
118
  // MUST be set after instance is set up and registered
113
- instanceAdmin.initializeInstanceAuthorization(address(instance));
119
+ IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
120
+ VersionPart release = AccessManagerCloneable(authority()).getRelease();
121
+ instanceAdmin.completeSetup(
122
+ address(instance),
123
+ address(instanceAuthorization));
114
124
 
115
125
  emit LogInstanceCloned(
116
126
  instanceNftId,
@@ -121,6 +131,7 @@ contract InstanceService is
121
131
  function setStakingLockingPeriod(Seconds stakeLockingPeriod)
122
132
  external
123
133
  virtual
134
+ restricted()
124
135
  onlyInstance()
125
136
  {
126
137
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -133,6 +144,7 @@ contract InstanceService is
133
144
  function setStakingRewardRate(UFixed rewardRate)
134
145
  external
135
146
  virtual
147
+ restricted()
136
148
  onlyInstance()
137
149
  {
138
150
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -145,6 +157,7 @@ contract InstanceService is
145
157
  function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
146
158
  external
147
159
  virtual
160
+ restricted()
148
161
  onlyInstance()
149
162
  {
150
163
  NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
@@ -158,6 +171,7 @@ contract InstanceService is
158
171
  function withdrawStakingRewardReserves(Amount dipAmount)
159
172
  external
160
173
  virtual
174
+ restricted()
161
175
  onlyInstance()
162
176
  returns (Amount newBalance)
163
177
  {
@@ -167,19 +181,31 @@ contract InstanceService is
167
181
  dipAmount);
168
182
  }
169
183
 
170
- function getMasterInstanceReader() external view returns (address) {
171
- return _masterInstanceReader;
184
+ function upgradeInstanceReader(NftId instanceNftId)
185
+ external
186
+ nonReentrant()
187
+ restricted()
188
+ onlyInstanceOwner(instanceNftId)
189
+ onlyNftOfType(instanceNftId, INSTANCE())
190
+ {
191
+ IRegistry registry = getRegistry();
192
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
193
+ Instance instance = Instance(instanceInfo.objectAddress);
194
+
195
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
196
+ upgradedInstanceReaderClone.initializeWithInstance(address(instance));
197
+ instance.setInstanceReader(upgradedInstanceReaderClone);
172
198
  }
173
199
 
174
200
  function setAndRegisterMasterInstance(address instanceAddress)
175
- external
176
- onlyOwner
177
- returns(NftId masterInstanceNftId)
201
+ external
202
+ onlyOwner()
203
+ returns(NftId masterInstanceNftId)
178
204
  {
179
205
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
180
206
  if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
181
207
  if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
182
-
208
+ if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
183
209
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
184
210
 
185
211
  IInstance instance = IInstance(instanceAddress);
@@ -188,28 +214,34 @@ contract InstanceService is
188
214
  address instanceAdminAddress = address(instanceAdmin);
189
215
  InstanceReader instanceReader = instance.getInstanceReader();
190
216
  address instanceReaderAddress = address(instanceReader);
191
- BundleSet bundleManager = instance.getBundleSet();
192
- address bundleManagerAddress = address(bundleManager);
217
+ BundleSet bundleSet = instance.getBundleSet();
218
+ address bundleSetAddress = address(bundleSet);
219
+ RiskSet riskSet = instance.getRiskSet();
220
+ address riskSetAddress = address(riskSet);
193
221
  InstanceStore instanceStore = instance.getInstanceStore();
194
222
  address instanceStoreAddress = address(instanceStore);
195
223
 
196
224
  if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
197
225
  if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
198
226
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
199
- if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
227
+ if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
228
+ if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
200
229
  if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
201
230
 
202
231
  if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
203
- if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
232
+ if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
233
+ if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
204
234
  if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
205
- if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
235
+ if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
236
+ if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
206
237
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
207
238
 
208
239
  _masterAccessManager = accessManagerAddress;
209
240
  _masterInstanceAdmin = instanceAdminAddress;
210
241
  _masterInstance = instanceAddress;
211
242
  _masterInstanceReader = instanceReaderAddress;
212
- _masterInstanceBundleSet = bundleManagerAddress;
243
+ _masterInstanceBundleSet = bundleSetAddress;
244
+ _masterInstanceRiskSet = riskSetAddress;
213
245
  _masterInstanceStore = instanceStoreAddress;
214
246
 
215
247
  IInstance masterInstance = IInstance(_masterInstance);
@@ -217,7 +249,10 @@ contract InstanceService is
217
249
  masterInstanceNftId = info.nftId;
218
250
  }
219
251
 
220
- function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
252
+ function upgradeMasterInstanceReader(address instanceReaderAddress)
253
+ external
254
+ onlyOwner
255
+ {
221
256
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
222
257
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
223
258
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -228,18 +263,8 @@ contract InstanceService is
228
263
  _masterInstanceReader = instanceReaderAddress;
229
264
  }
230
265
 
231
- function upgradeInstanceReader(NftId instanceNftId)
232
- external
233
- onlyInstanceOwner(instanceNftId)
234
- onlyNftOfType(instanceNftId, INSTANCE())
235
- {
236
- IRegistry registry = getRegistry();
237
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
238
- Instance instance = Instance(instanceInfo.objectAddress);
239
-
240
- InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
241
- upgradedInstanceReaderClone.initializeWithInstance(address(instance));
242
- instance.setInstanceReader(upgradedInstanceReaderClone);
266
+ function getMasterInstanceReader() external view returns (address) {
267
+ return _masterInstanceReader;
243
268
  }
244
269
 
245
270
  /// @dev create new cloned instance admin
@@ -250,19 +275,16 @@ contract InstanceService is
250
275
  returns (InstanceAdmin clonedInstanceAdmin)
251
276
  {
252
277
  // start with setting up a new OZ access manager
278
+ // TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
253
279
  AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
254
280
  Clones.clone(_masterAccessManager));
255
281
 
256
282
  // set up the instance admin
257
283
  clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
258
- clonedAccessManager.initialize(
259
- address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
260
-
261
- address authorization = address(
262
- InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
263
284
  clonedInstanceAdmin.initialize(
264
285
  clonedAccessManager,
265
- authorization);
286
+ getRegistry(),
287
+ getRelease());
266
288
  }
267
289
 
268
290
 
@@ -278,6 +300,7 @@ contract InstanceService is
278
300
  {
279
301
  InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
280
302
  BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
303
+ RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
281
304
  InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
282
305
 
283
306
  // clone instance
@@ -286,6 +309,7 @@ contract InstanceService is
286
309
  instanceAdmin,
287
310
  clonedInstanceStore,
288
311
  clonedBundleSet,
312
+ clonedRiskSet,
289
313
  clonedInstanceReader,
290
314
  getRegistry(),
291
315
  instanceOwner);
@@ -332,11 +356,11 @@ contract InstanceService is
332
356
  initializer()
333
357
  {
334
358
  (
335
- address registryAddress,
336
- address authority
359
+ address authority,
360
+ address registry
337
361
  ) = abi.decode(data, (address, address));
338
362
 
339
- _initializeService(registryAddress, authority, owner);
363
+ __Service_init(authority, registry, owner);
340
364
 
341
365
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
342
366
  _stakingService = IStakingService(_getServiceAddress(STAKING()));
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  InstanceService svc = new InstanceService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -7,10 +7,10 @@ import {Amount} from "../type/Amount.sol";
7
7
  import {Key32} from "../type/Key32.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
9
  import {ClaimId} from "../type/ClaimId.sol";
10
- import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR, FEE} from "../type/ObjectType.sol";
11
11
  import {RequestId} from "../type/RequestId.sol";
12
12
  import {RiskId} from "../type/RiskId.sol";
13
- import {StateId} from "../type/StateId.sol";
13
+ import {StateId, KEEP_STATE} from "../type/StateId.sol";
14
14
  import {ReferralId} from "../type/Referral.sol";
15
15
  import {DistributorType} from "../type/DistributorType.sol";
16
16
  import {PayoutId} from "../type/PayoutId.sol";
@@ -85,6 +85,17 @@ contract InstanceStore is
85
85
  _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
86
86
  }
87
87
 
88
+
89
+ //--- Fee -----------------------------------------------------------//
90
+ function createFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
91
+ _create(_toNftKey32(productNftId, FEE()), abi.encode(info));
92
+ }
93
+
94
+ // Fee only has one state, so no change change possible
95
+ function updateFee(NftId productNftId, IComponents.FeeInfo memory info) external restricted() {
96
+ _update(_toNftKey32(productNftId, FEE()), abi.encode(info), KEEP_STATE());
97
+ }
98
+
88
99
  //--- Pool --------------------------------------------------------------//
89
100
 
90
101
  function createPool(