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

Sign up to get free protection for your applications and to get access to all the features.
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
  }