@etherisc/gif-next 0.0.2-bb3faee-097 → 0.0.2-bb9ecaf-723

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 (345) hide show
  1. package/README.md +15 -320
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +2 -2
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +49 -29
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +201 -130
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +845 -126
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +73 -46
  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 +105 -77
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +12 -2
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +12 -2
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +38 -32
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +8 -18
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +93 -54
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -10
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +2 -2
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +79 -59
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -10
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  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 +20 -30
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +93 -54
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +64 -74
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +93 -54
  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 +21 -31
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +93 -54
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +16 -26
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -34
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +93 -54
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +25 -35
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +93 -54
  61. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  62. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +50 -228
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  66. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +23 -0
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +20 -0
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +70 -35
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +335 -284
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +82 -112
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +55 -175
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +40 -20
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +45 -25
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1362 -2115
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  86. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +6 -16
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +87 -48
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +0 -10
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -10
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +54 -34
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -10
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +93 -54
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +66 -46
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -10
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -10
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +67 -47
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -28
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -10
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +93 -54
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +74 -74
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +71 -51
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  156. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -10
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +2 -2
  160. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  161. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  162. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +64 -44
  164. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  166. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -35
  168. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  169. package/artifacts/contracts/product/Product.sol/Product.json +0 -10
  170. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  171. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  172. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -26
  174. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +312 -217
  183. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  184. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +126 -63
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -21
  189. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +330 -211
  191. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +98 -86
  194. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +62 -40
  196. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  198. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Component.sol/Component.json +0 -10
  200. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +28 -28
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +65 -45
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  210. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -10
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -10
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  215. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -10
  223. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  236. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  237. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  238. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  240. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -10
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  243. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  244. package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -48
  245. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +50 -38
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +44 -24
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +198 -166
  257. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  258. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  260. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +21 -2
  265. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  271. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  288. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  289. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  290. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +22 -6
  291. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  292. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  293. package/contracts/authorization/AccessAdmin.sol +220 -321
  294. package/contracts/authorization/AccessAdminLib.sol +309 -27
  295. package/contracts/authorization/AccessManagerCloneable.sol +0 -18
  296. package/contracts/authorization/Authorization.sol +30 -9
  297. package/contracts/authorization/IAccess.sol +13 -14
  298. package/contracts/authorization/IAccessAdmin.sol +9 -11
  299. package/contracts/authorization/ServiceAuthorization.sol +10 -30
  300. package/contracts/distribution/BasicDistribution.sol +1 -2
  301. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  302. package/contracts/distribution/Distribution.sol +2 -4
  303. package/contracts/instance/BaseStore.sol +93 -0
  304. package/contracts/instance/IBaseStore.sol +37 -0
  305. package/contracts/instance/IInstance.sol +11 -0
  306. package/contracts/instance/IInstanceService.sol +2 -0
  307. package/contracts/instance/Instance.sol +18 -14
  308. package/contracts/instance/InstanceAdmin.sol +43 -119
  309. package/contracts/instance/InstanceAuthorizationV3.sol +49 -40
  310. package/contracts/instance/InstanceReader.sol +33 -59
  311. package/contracts/instance/InstanceService.sol +57 -43
  312. package/contracts/instance/InstanceStore.sol +153 -128
  313. package/contracts/instance/ProductStore.sol +290 -0
  314. package/contracts/instance/TargetNames.sol +10 -0
  315. package/contracts/instance/module/IComponents.sol +0 -2
  316. package/contracts/oracle/BasicOracle.sol +1 -2
  317. package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
  318. package/contracts/oracle/Oracle.sol +2 -4
  319. package/contracts/pool/BasicPool.sol +1 -2
  320. package/contracts/pool/BasicPoolAuthorization.sol +1 -1
  321. package/contracts/pool/Pool.sol +2 -4
  322. package/contracts/product/ApplicationService.sol +2 -2
  323. package/contracts/product/BasicProduct.sol +1 -2
  324. package/contracts/product/BasicProductAuthorization.sol +1 -1
  325. package/contracts/product/ClaimService.sol +49 -53
  326. package/contracts/product/PolicyService.sol +9 -9
  327. package/contracts/product/Product.sol +2 -4
  328. package/contracts/product/RiskService.sol +3 -4
  329. package/contracts/registry/RegistryAdmin.sol +12 -30
  330. package/contracts/registry/RegistryAuthorization.sol +32 -31
  331. package/contracts/registry/ReleaseAdmin.sol +13 -9
  332. package/contracts/shared/Component.sol +2 -6
  333. package/contracts/shared/ComponentService.sol +22 -18
  334. package/contracts/shared/InstanceLinkedComponent.sol +2 -4
  335. package/contracts/staking/IStaking.sol +0 -1
  336. package/contracts/staking/Staking.sol +6 -6
  337. package/contracts/staking/StakingStore.sol +6 -0
  338. package/contracts/type/Blocknumber.sol +4 -9
  339. package/contracts/upgradeability/ProxyManager.sol +2 -2
  340. package/package.json +1 -1
  341. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  342. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  343. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
  344. package/contracts/shared/IKeyValueStore.sol +0 -54
  345. package/contracts/shared/KeyValueStore.sol +0 -131
@@ -18,6 +18,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
18
18
  import {NftId} from "../type/NftId.sol";
19
19
  import {ObjectType, CLAIM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
20
20
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
21
+ import {ProductStore} from "../instance/ProductStore.sol";
21
22
  import {Service} from "../shared/Service.sol";
22
23
  import {StateId} from "../type/StateId.sol";
23
24
  import {SUBMITTED, KEEP_STATE, DECLINED, REVOKED, CANCELLED, CONFIRMED, CLOSED, EXPECTED, PAID} from "../type/StateId.sol";
@@ -66,8 +67,8 @@ contract ClaimService is
66
67
  {
67
68
  // checks
68
69
  (
69
- ,,,
70
- InstanceStore instanceStore,
70
+ ,,
71
+ IInstance.InstanceContracts memory instanceContracts,
71
72
  IPolicy.PolicyInfo memory policyInfo
72
73
  ) = _verifyCallerWithPolicy(policyNftId);
73
74
 
@@ -81,7 +82,7 @@ contract ClaimService is
81
82
  // effects
82
83
  // create new claim
83
84
  claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
84
- instanceStore.createClaim(
85
+ instanceContracts.productStore.createClaim(
85
86
  policyNftId,
86
87
  claimId,
87
88
  IPolicy.ClaimInfo({
@@ -97,7 +98,7 @@ contract ClaimService is
97
98
  // policy claim amount is only updated when claim is confirmed
98
99
  policyInfo.claimsCount += 1;
99
100
  policyInfo.openClaimsCount += 1;
100
- instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
101
+ instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
101
102
 
102
103
  emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
103
104
  }
@@ -120,8 +121,7 @@ contract ClaimService is
120
121
  (
121
122
  NftId productNftId,
122
123
  IInstance instance,
123
- InstanceReader instanceReader,
124
- InstanceStore instanceStore,
124
+ IInstance.InstanceContracts memory instanceContracts,
125
125
  IPolicy.PolicyInfo memory policyInfo
126
126
  ) = _verifyCallerWithPolicy(policyNftId);
127
127
 
@@ -129,14 +129,14 @@ contract ClaimService is
129
129
 
130
130
  // effects
131
131
  // check/update claim info
132
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
132
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
133
133
  claimInfo.claimAmount = confirmedAmount;
134
134
  claimInfo.processData = data;
135
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
135
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
136
136
 
137
137
  // update and save policy info with instance
138
138
  policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
139
- instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
139
+ instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
140
140
 
141
141
  // should policy still be active it needs to become expired
142
142
  if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
@@ -147,7 +147,7 @@ contract ClaimService is
147
147
 
148
148
  // interactions
149
149
  // callback to pool if applicable
150
- _processConfirmedClaimByPool(instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
150
+ _processConfirmedClaimByPool(instanceContracts.instanceReader, productNftId, policyNftId, claimId, confirmedAmount);
151
151
 
152
152
  // callback to policy holder if applicable
153
153
  _policyHolderClaimConfirmed(policyNftId, claimId, confirmedAmount);
@@ -168,20 +168,19 @@ contract ClaimService is
168
168
 
169
169
  (
170
170
  ,,
171
- InstanceReader instanceReader,
172
- InstanceStore instanceStore,
171
+ IInstance.InstanceContracts memory instanceContracts,
173
172
  IPolicy.PolicyInfo memory policyInfo
174
173
  ) = _verifyCallerWithPolicy(policyNftId);
175
174
 
176
175
  // check/update claim info
177
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
176
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
178
177
  claimInfo.processData = data;
179
178
  claimInfo.closedAt = TimestampLib.current();
180
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
179
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
181
180
 
182
181
  // update and save policy info with instance
183
182
  policyInfo.openClaimsCount -= 1;
184
- instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
183
+ instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
185
184
 
186
185
  emit LogClaimServiceClaimDeclined(policyNftId, claimId);
187
186
  }
@@ -198,19 +197,18 @@ contract ClaimService is
198
197
  {
199
198
  (
200
199
  ,,
201
- InstanceReader instanceReader,
202
- InstanceStore instanceStore,
200
+ IInstance.InstanceContracts memory instanceContracts,
203
201
  IPolicy.PolicyInfo memory policyInfo
204
202
  ) = _verifyCallerWithPolicy(policyNftId);
205
203
 
206
204
  // check/update claim info
207
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
205
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, SUBMITTED());
208
206
  claimInfo.closedAt = TimestampLib.current();
209
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
207
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
210
208
 
211
209
  // update and save policy info with instance
212
210
  policyInfo.openClaimsCount -= 1;
213
- instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
211
+ instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
214
212
 
215
213
  emit LogClaimServiceClaimRevoked(policyNftId, claimId);
216
214
  }
@@ -229,12 +227,11 @@ contract ClaimService is
229
227
 
230
228
  (
231
229
  ,,
232
- InstanceReader instanceReader,
233
- InstanceStore instanceStore,
230
+ IInstance.InstanceContracts memory instanceContracts,
234
231
  ) = _verifyCallerWithPolicy(policyNftId);
235
232
 
236
233
  // check/update claim info
237
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
234
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceContracts.instanceReader, policyNftId, claimId, CONFIRMED());
238
235
 
239
236
  // check claim has no open payouts
240
237
  if(claimInfo.openPayoutsCount > 0) {
@@ -245,7 +242,7 @@ contract ClaimService is
245
242
  }
246
243
 
247
244
  claimInfo.closedAt = TimestampLib.current();
248
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
245
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CANCELLED());
249
246
 
250
247
  emit LogClaimServiceClaimCancelled(policyNftId, claimId);
251
248
  }
@@ -313,8 +310,7 @@ contract ClaimService is
313
310
  // checks
314
311
  (
315
312
  ,,
316
- InstanceReader instanceReader,
317
- InstanceStore instanceStore,
313
+ IInstance.InstanceContracts memory instanceContracts,
318
314
  IPolicy.PolicyInfo memory policyInfo
319
315
  ) = _verifyCallerWithPolicy(policyNftId);
320
316
 
@@ -324,16 +320,16 @@ contract ClaimService is
324
320
 
325
321
  {
326
322
  // check that payout exists and is open
327
- IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
323
+ IPolicy.PayoutInfo memory payoutInfo = instanceContracts.instanceReader.getPayoutInfo(policyNftId, payoutId);
328
324
  payoutBeneficiary = payoutInfo.beneficiary;
329
325
  payoutAmount = payoutInfo.amount;
330
- StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
326
+ StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
331
327
  if(payoutState != EXPECTED()) {
332
328
  revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
333
329
  }
334
330
 
335
331
  // check that payout amount does not violate claim amount
336
- claimInfo = instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
332
+ claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, payoutId.toClaimId());
337
333
  if(claimInfo.paidAmount + payoutInfo.amount > claimInfo.claimAmount) {
338
334
  revert ErrorClaimServicePayoutExceedsClaimAmount(
339
335
  policyNftId,
@@ -345,7 +341,7 @@ contract ClaimService is
345
341
  // effects
346
342
  // update and save payout info with instance
347
343
  payoutInfo.paidAt = TimestampLib.current();
348
- instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
344
+ instanceContracts.productStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
349
345
  }
350
346
 
351
347
  // update and save claim info with instance
@@ -358,25 +354,25 @@ contract ClaimService is
358
354
  // update claim and policy info accordingly
359
355
  if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
360
356
  claimInfo.closedAt = TimestampLib.current();
361
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
357
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
362
358
 
363
359
  policyInfo.openClaimsCount -= 1;
364
360
  } else {
365
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
361
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
366
362
  }
367
363
  }
368
364
 
369
365
  // update and save policy info with instance
370
366
  policyInfo.payoutAmount = policyInfo.payoutAmount + payoutAmount;
371
- instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
367
+ instanceContracts.productStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
372
368
 
373
369
  emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount);
374
370
 
375
371
  // effects + interactions (push tokens to beneficiary, product)
376
372
  // delegate to pool to update book keeping and moving tokens payout
377
373
  (netPayoutAmount, processingFeeAmount) = _poolService.processPayout(
378
- instanceReader,
379
- instanceStore,
374
+ instanceContracts.instanceReader,
375
+ instanceContracts.instanceStore,
380
376
  policyInfo.productNftId, // product nft id
381
377
  policyNftId,
382
378
  policyInfo.bundleNftId,
@@ -396,24 +392,23 @@ contract ClaimService is
396
392
  // checks
397
393
  (
398
394
  ,,
399
- InstanceReader instanceReader,
400
- InstanceStore instanceStore,
395
+ IInstance.InstanceContracts memory instanceContracts,
401
396
  ) = _verifyCallerWithPolicy(policyNftId);
402
397
 
403
- StateId payoutState = instanceReader.getPayoutState(policyNftId, payoutId);
398
+ StateId payoutState = instanceContracts.instanceReader.getPayoutState(policyNftId, payoutId);
404
399
  if (payoutState != EXPECTED()) {
405
400
  revert ErrorClaimServicePayoutNotExpected(policyNftId, payoutId, payoutState);
406
401
  }
407
402
 
408
403
  // effects
409
404
  // update and save payout info with instance
410
- instanceStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
405
+ instanceContracts.productStore.updatePayoutState(policyNftId, payoutId, CANCELLED());
411
406
 
412
407
  {
413
408
  ClaimId claimId = payoutId.toClaimId();
414
- IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
409
+ IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
415
410
  claimInfo.openPayoutsCount -= 1;
416
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
411
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
417
412
  }
418
413
 
419
414
  emit LogClaimServicePayoutCancelled(policyNftId, payoutId);
@@ -457,16 +452,15 @@ contract ClaimService is
457
452
  // checks
458
453
  (
459
454
  ,,
460
- InstanceReader instanceReader,
461
- InstanceStore instanceStore,
455
+ IInstance.InstanceContracts memory instanceContracts,
462
456
  // IPolicy.PolicyInfo memory policyInfo
463
457
  ) = _verifyCallerWithPolicy(policyNftId);
464
458
 
465
- IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
459
+ IPolicy.ClaimInfo memory claimInfo = instanceContracts.instanceReader.getClaimInfo(policyNftId, claimId);
466
460
 
467
461
  {
468
462
  // check claim state
469
- StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
463
+ StateId claimState = instanceContracts.instanceReader.getClaimState(policyNftId, claimId);
470
464
  if (claimState != CONFIRMED()) {
471
465
  revert ErrorClaimServiceClaimNotConfirmed(policyNftId, claimId, claimState);
472
466
  }
@@ -487,7 +481,7 @@ contract ClaimService is
487
481
  beneficiary = getRegistry().ownerOf(policyNftId);
488
482
  }
489
483
 
490
- instanceStore.createPayout(
484
+ instanceContracts.productStore.createPayout(
491
485
  policyNftId,
492
486
  payoutId,
493
487
  IPolicy.PayoutInfo({
@@ -500,12 +494,14 @@ contract ClaimService is
500
494
  // update and save claim info with instance
501
495
  claimInfo.payoutsCount += 1;
502
496
  claimInfo.openPayoutsCount += 1;
503
- instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
497
+ instanceContracts.productStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
504
498
 
505
499
  emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
506
500
  }
507
501
 
508
-
502
+ /// @dev Verifies the caller is a product and the policy is active.
503
+ /// Returns the product nft id, instance, instance contracts and policy info.
504
+ /// in InstanceContracts only the contracts instanceReader, instanceStore and productStore are set.
509
505
  function _verifyCallerWithPolicy(
510
506
  NftId policyNftId
511
507
  )
@@ -515,17 +511,17 @@ contract ClaimService is
515
511
  returns (
516
512
  NftId productNftId,
517
513
  IInstance instance,
518
- InstanceReader instanceReader,
519
- InstanceStore instanceStore,
514
+ IInstance.InstanceContracts memory instanceContracts,
520
515
  IPolicy.PolicyInfo memory policyInfo
521
516
  )
522
517
  {
523
518
  (productNftId, instance) = _getAndVerifyActiveProduct();
524
- instanceReader = instance.getInstanceReader();
525
- instanceStore = instance.getInstanceStore();
519
+ instanceContracts.instanceReader = InstanceReader(instance.getInstanceReader());
520
+ instanceContracts.instanceStore = InstanceStore(instance.getInstanceStore());
521
+ instanceContracts.productStore = ProductStore(instance.getProductStore());
526
522
 
527
523
  // check caller(product) policy match
528
- policyInfo = instanceReader.getPolicyInfo(policyNftId);
524
+ policyInfo = instanceContracts.instanceReader.getPolicyInfo(policyNftId);
529
525
  if(policyInfo.productNftId != productNftId) {
530
526
  revert ErrorClaimServicePolicyProductMismatch(policyNftId,
531
527
  policyInfo.productNftId,
@@ -83,7 +83,7 @@ contract PolicyService is
83
83
 
84
84
  // effects
85
85
  // store updated policy info
86
- instance.getInstanceStore().updatePolicyState(
86
+ instance.getProductStore().updatePolicyState(
87
87
  applicationNftId,
88
88
  DECLINED());
89
89
 
@@ -132,7 +132,7 @@ contract PolicyService is
132
132
  }
133
133
 
134
134
  // update policy and set state to collateralized
135
- instance.getInstanceStore().updatePolicy(
135
+ instance.getProductStore().updatePolicy(
136
136
  applicationNftId,
137
137
  applicationInfo,
138
138
  COLLATERALIZED());
@@ -158,7 +158,7 @@ contract PolicyService is
158
158
  }
159
159
 
160
160
  premiumAmount = premium.premiumAmount;
161
- instance.getInstanceStore().createPremium(
161
+ instance.getProductStore().createPremium(
162
162
  applicationNftId,
163
163
  premium);
164
164
 
@@ -243,8 +243,8 @@ contract PolicyService is
243
243
  policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
244
244
  }
245
245
 
246
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
247
- instance.getInstanceStore().updatePremiumState(policyNftId, PAID());
246
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
247
+ instance.getProductStore().updatePremiumState(policyNftId, PAID());
248
248
 
249
249
  // log premium collection before interactions with token
250
250
  emit LogPolicyServicePolicyPremiumCollected(policyNftId, premium.premiumAmount);
@@ -269,7 +269,7 @@ contract PolicyService is
269
269
 
270
270
  // effects
271
271
  policyInfo = PolicyServiceLib.activate(policyNftId, policyInfo, activateAt);
272
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
272
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
273
273
 
274
274
  // log policy activation before interactions with policy holder
275
275
  emit LogPolicyServicePolicyActivated(policyNftId, activateAt);
@@ -309,7 +309,7 @@ contract PolicyService is
309
309
 
310
310
  // effects
311
311
  policyInfo.activatedAt = newActivateAt;
312
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
312
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
313
313
 
314
314
  // log policy activation before interactions with policy holder
315
315
  emit LogPolicyServicePolicyActivatedUpdated(policyNftId, newActivateAt);
@@ -415,7 +415,7 @@ contract PolicyService is
415
415
 
416
416
  // update policy state to closed
417
417
  policyInfo.closedAt = TimestampLib.current();
418
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
418
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, CLOSED());
419
419
 
420
420
  // unlink policy from risk and bundle
421
421
  NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
@@ -442,7 +442,7 @@ contract PolicyService is
442
442
  policyInfo,
443
443
  expireAt);
444
444
 
445
- instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
445
+ instance.getProductStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
446
446
 
447
447
  emit LogPolicyServicePolicyExpirationUpdated(policyNftId, policyInfo.expiredAt);
448
448
 
@@ -140,8 +140,7 @@ abstract contract Product is
140
140
  IComponents.ProductInfo memory productInfo,
141
141
  IComponents.FeeInfo memory feeInfo,
142
142
  IAuthorization authorization,
143
- address initialOwner,
144
- bytes memory componentData // writeonly data that will saved in the object info record of the registry
143
+ address initialOwner
145
144
  )
146
145
  internal
147
146
  virtual
@@ -154,8 +153,7 @@ abstract contract Product is
154
153
  PRODUCT(),
155
154
  authorization,
156
155
  productInfo.isInterceptingPolicyTransfers,
157
- initialOwner,
158
- componentData);
156
+ initialOwner);
159
157
 
160
158
  ProductStorage storage $ = _getProductStorage();
161
159
  $._productInfo = productInfo;
@@ -12,7 +12,6 @@ import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
12
12
  import {ACTIVE, KEEP_STATE, CLOSED} from "../type/StateId.sol";
13
13
  import {NftId} from "../type/NftId.sol";
14
14
  import {RiskId, RiskIdLib} from "../type/RiskId.sol";
15
- import {StateId} from "../type/StateId.sol";
16
15
  import {RiskSet} from "../instance/RiskSet.sol";
17
16
  import {Service} from "../shared/Service.sol";
18
17
  import {TimestampLib} from "../type/Timestamp.sol";
@@ -59,7 +58,7 @@ contract RiskService is
59
58
  createdAt: TimestampLib.current(),
60
59
  data: data});
61
60
 
62
- instance.getInstanceStore().createRisk(
61
+ instance.getProductStore().createRisk(
63
62
  riskId,
64
63
  riskInfo
65
64
  );
@@ -92,7 +91,7 @@ contract RiskService is
92
91
  }
93
92
 
94
93
  riskInfo.data = data;
95
- instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
94
+ instance.getProductStore().updateRisk(riskId, riskInfo, KEEP_STATE());
96
95
 
97
96
  emit LogRiskServiceRiskUpdated(productNftId, riskId);
98
97
  }
@@ -148,7 +147,7 @@ contract RiskService is
148
147
  }
149
148
 
150
149
  // effects
151
- instance.getInstanceStore().updateRiskState(riskId, CLOSED());
150
+ instance.getProductStore().updateRiskState(riskId, CLOSED());
152
151
 
153
152
  emit LogRiskServiceRiskClosed(productNftId, riskId);
154
153
  }
@@ -76,7 +76,6 @@ contract RegistryAdmin is
76
76
  public
77
77
  virtual
78
78
  reinitializer(type(uint8).max)
79
- onlyDeployer()
80
79
  {
81
80
  // checks
82
81
  AccessAdminLib.checkRegistry(registry);
@@ -101,11 +100,12 @@ contract RegistryAdmin is
101
100
  // link nft ownability to registry
102
101
  _linkToNftOwnable(_registry);
103
102
 
103
+ _createRoles(_authorization);
104
+
104
105
  // setup registry core targets
105
106
  _createCoreTargets(_authorization.getMainTargetName());
106
107
 
107
108
  // setup non-contract roles
108
- _createRoles(_authorization);
109
109
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
110
110
  _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
111
111
 
@@ -138,38 +138,20 @@ contract RegistryAdmin is
138
138
 
139
139
  //--- private initialization functions -------------------------------------------//
140
140
 
141
- function _createRoles(IAuthorization authorization)
142
- internal
143
- {
144
- RoleId[] memory roles = authorization.getRoles();
145
-
146
- for(uint256 i = 0; i < roles.length; i++) {
147
- RoleId roleId = roles[i];
148
- RoleInfo memory roleInfo = authorization.getRoleInfo(roleId);
149
-
150
- // create role if not exists
151
- if (!roleExists(roleInfo.name.toString())) {
152
- _createRole(
153
- roleId,
154
- roleInfo);
155
- }
156
- }
157
- }
158
-
159
141
 
160
142
  function _createCoreTargets(string memory registryTargetName)
161
143
  internal
162
144
  {
163
- // registry
164
- _createUncheckedTarget(_registry, registryTargetName, TargetType.Core);
165
- _createUncheckedTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core);
166
- _createUncheckedTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core);
167
- _createUncheckedTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core);
168
-
169
- // staking
170
- _createUncheckedTarget(_staking, STAKING_TARGET_NAME, TargetType.Core);
171
- _createUncheckedTarget(_stakingTargetHandler, STAKING_TARGET_HANDLER_NAME, TargetType.Core);
172
- _createUncheckedTarget(_stakingStore, STAKING_STORE_TARGET_NAME, TargetType.Core);
145
+ // create unchecked registry targets
146
+ _createTarget(_registry, registryTargetName, TargetType.Core, false);
147
+ _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core, false);
148
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core, false);
149
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core, false);
150
+
151
+ // create unchecked staking targets
152
+ _createTarget(_staking, STAKING_TARGET_NAME, TargetType.Core, false);
153
+ _createTarget(_stakingTargetHandler, STAKING_TARGET_HANDLER_NAME, TargetType.Core, false);
154
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, TargetType.Core, false);
173
155
  }
174
156
 
175
157
 
@@ -5,6 +5,7 @@ import {IAccess} from "../authorization/IAccess.sol";
5
5
  import {IRegistry} from "../registry/IRegistry.sol";
6
6
  import {IStaking} from "../staking/IStaking.sol";
7
7
 
8
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
8
9
  import {Authorization} from "../authorization/Authorization.sol";
9
10
  import {COMPONENT, POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
10
11
  import {PUBLIC_ROLE} from "../type/RoleId.sol";
@@ -50,7 +51,7 @@ contract RegistryAuthorization
50
51
  REGISTRY(),
51
52
  3,
52
53
  commitHash,
53
- false, // isComponent
54
+ TargetType.Core,
54
55
  false) // includeTokenHandler
55
56
  { }
56
57
 
@@ -63,53 +64,53 @@ contract RegistryAuthorization
63
64
  // service roles (for all releases)
64
65
  _addRole(
65
66
  RoleIdLib.toGenericServiceRoleId(REGISTRY()),
66
- _toRoleInfo({
67
- adminRoleId: ADMIN_ROLE(),
68
- roleType: RoleType.Core,
69
- maxMemberCount: maxReleases,
70
- name: REGISTRY_SERVICE_ROLE_NAME}));
67
+ AccessAdminLib.roleInfo(
68
+ ADMIN_ROLE(),
69
+ TargetType.Core,
70
+ maxReleases,
71
+ REGISTRY_SERVICE_ROLE_NAME));
71
72
 
72
73
  _addRole(
73
74
  RoleIdLib.toGenericServiceRoleId(STAKING()),
74
- _toRoleInfo({
75
- adminRoleId: ADMIN_ROLE(),
76
- roleType: RoleType.Core,
77
- maxMemberCount: maxReleases,
78
- name: STAKING_SERVICE_ROLE_NAME}));
75
+ AccessAdminLib.roleInfo(
76
+ ADMIN_ROLE(),
77
+ TargetType.Core,
78
+ maxReleases,
79
+ STAKING_SERVICE_ROLE_NAME));
79
80
 
80
81
  _addRole(
81
82
  RoleIdLib.toGenericServiceRoleId(COMPONENT()),
82
- _toRoleInfo({
83
- adminRoleId: ADMIN_ROLE(),
84
- roleType: RoleType.Core,
85
- maxMemberCount: maxReleases,
86
- name: COMPONENT_SERVICE_ROLE_NAME}));
83
+ AccessAdminLib.roleInfo(
84
+ ADMIN_ROLE(),
85
+ TargetType.Core,
86
+ maxReleases,
87
+ COMPONENT_SERVICE_ROLE_NAME));
87
88
 
88
89
  _addRole(
89
90
  RoleIdLib.toGenericServiceRoleId(POOL()),
90
- _toRoleInfo({
91
- adminRoleId: ADMIN_ROLE(),
92
- roleType: RoleType.Core,
93
- maxMemberCount: maxReleases,
94
- name: POOL_SERVICE_ROLE_NAME}));
91
+ AccessAdminLib.roleInfo(
92
+ ADMIN_ROLE(),
93
+ TargetType.Core,
94
+ maxReleases,
95
+ POOL_SERVICE_ROLE_NAME));
95
96
 
96
97
  // gif admin role
97
98
  _addRole(
98
99
  GIF_ADMIN_ROLE(),
99
- _toRoleInfo({
100
- adminRoleId: ADMIN_ROLE(),
101
- roleType: RoleType.Core,
102
- maxMemberCount: 2, // TODO decide on max member count
103
- name: GIF_ADMIN_ROLE_NAME}));
100
+ AccessAdminLib.roleInfo(
101
+ ADMIN_ROLE(),
102
+ TargetType.Custom, // custom is only type that allows role removal
103
+ 2, // TODO decide on max member count
104
+ GIF_ADMIN_ROLE_NAME));
104
105
 
105
106
  // gif manager role
106
107
  _addRole(
107
108
  GIF_MANAGER_ROLE(),
108
- _toRoleInfo({
109
- adminRoleId: ADMIN_ROLE(),
110
- roleType: RoleType.Core,
111
- maxMemberCount: 1, // TODO decide on max member count
112
- name: GIF_MANAGER_ROLE_NAME}));
109
+ AccessAdminLib.roleInfo(
110
+ ADMIN_ROLE(),
111
+ TargetType.Custom, // custom is only type that allows role removal
112
+ 1, // TODO decide on max member count
113
+ GIF_MANAGER_ROLE_NAME));
113
114
 
114
115
  }
115
116
 
@@ -63,7 +63,6 @@ contract ReleaseAdmin is
63
63
  external
64
64
  reinitializer(uint64(release.toInt()))
65
65
  {
66
-
67
66
  // checks
68
67
  AccessAdminLib.checkRegistry(registry);
69
68
 
@@ -79,6 +78,8 @@ contract ReleaseAdmin is
79
78
  // link nft ownability to registry
80
79
  _linkToNftOwnable(registry);
81
80
 
81
+ _createRoles(_serviceAuthorization);
82
+
82
83
  // setup release contract
83
84
  _setupReleaseRegistry(releaseRegistry);
84
85
 
@@ -165,7 +166,8 @@ contract ReleaseAdmin is
165
166
  string memory serviceTargetName = ObjectTypeLib.toVersionedName(
166
167
  baseName, "Service", release);
167
168
 
168
- _createUncheckedTarget(address(service), serviceTargetName, TargetType.Service);
169
+ // create unchecked target
170
+ _createTarget(address(service), serviceTargetName, TargetType.Service, false);
169
171
  }
170
172
 
171
173
  //--- private initialization functions -------------------------------------------//
@@ -174,21 +176,23 @@ contract ReleaseAdmin is
174
176
  private
175
177
  onlyInitializing()
176
178
  {
177
- _createManagedTarget(address(this), RELEASE_ADMIN_TARGET_NAME, IAccess.TargetType.Core);
178
179
 
179
180
  _createRole(
180
181
  RELEASE_REGISTRY_ROLE(),
181
- AccessAdminLib.toRole({
182
- adminRoleId: ADMIN_ROLE(),
183
- roleType: RoleType.Contract,
184
- maxMemberCount: 1,
185
- name: RELEASE_REGISTRY_ROLE_NAME}));
182
+ AccessAdminLib.coreRoleInfo(RELEASE_REGISTRY_ROLE_NAME),
183
+ true); // revets on existing role
184
+
185
+ _createTarget(
186
+ address(this),
187
+ RELEASE_ADMIN_TARGET_NAME,
188
+ IAccess.TargetType.Core,
189
+ true); // check authority maches
186
190
 
187
191
  FunctionInfo[] memory functions;
188
192
  functions = new FunctionInfo[](2);
189
193
  functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
190
194
  functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
191
- _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, true);
195
+ _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, false, true);
192
196
 
193
197
  _grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
194
198
  }