@etherisc/gif-next 0.0.2-b3e9a44-364 → 0.0.2-b43fece-589

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 (365) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -13
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +138 -94
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +78 -58
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +64 -60
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +65 -58
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -0
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  32. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +119 -135
  34. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +114 -22
  36. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +218 -159
  38. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +81 -25
  40. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  42. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +140 -96
  43. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +121 -77
  45. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +197 -145
  47. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +508 -177
  49. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  50. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +37 -31
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -84
  55. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/Instance.sol/Instance.json +46 -40
  57. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
  59. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  61. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +94 -79
  63. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -130
  65. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -40
  67. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +174 -103
  69. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  74. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  76. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -75
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +60 -53
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -9
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +73 -53
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +70 -47
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +32 -36
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -81
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +125 -119
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +57 -69
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -15
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +60 -92
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +90 -88
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -92
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +149 -158
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -52
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -32
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +29 -33
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +118 -54
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -88
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -60
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +70 -57
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +105 -54
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -0
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +80 -62
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -49
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -115
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +42 -46
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  151. package/artifacts/contracts/product/Product.sol/Product.json +118 -54
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.json +44 -26
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +26 -30
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -15
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +98 -35
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +38 -53
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +129 -61
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -29
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +121 -223
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Component.sol/Component.json +52 -28
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +334 -155
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +67 -63
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +26 -0
  188. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +39 -28
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +305 -19
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +60 -53
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -0
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  207. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +73 -53
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +50 -8
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +26 -0
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +39 -28
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  233. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  234. package/artifacts/contracts/staking/Staking.sol/Staking.json +122 -78
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +52 -42
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +50 -32
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +29 -33
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  271. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  277. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  278. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  279. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +12 -12
  280. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  281. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  282. package/contracts/authorization/AccessAdmin.sol +65 -61
  283. package/contracts/authorization/Authorization.sol +106 -38
  284. package/contracts/authorization/IAccess.sol +1 -0
  285. package/contracts/authorization/IAccessAdmin.sol +4 -2
  286. package/contracts/authorization/IAuthorization.sol +13 -7
  287. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  288. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  289. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  290. package/contracts/distribution/BasicDistribution.sol +0 -1
  291. package/contracts/distribution/Distribution.sol +4 -15
  292. package/contracts/distribution/DistributionService.sol +14 -7
  293. package/contracts/distribution/IDistributionComponent.sol +1 -1
  294. package/contracts/examples/fire/FirePool.sol +19 -8
  295. package/contracts/examples/fire/FireProduct.sol +32 -12
  296. package/contracts/examples/fire/FireProductAuthorization.sol +1 -2
  297. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
  298. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  299. package/contracts/examples/unpermissioned/SimplePool.sol +11 -6
  300. package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
  301. package/contracts/instance/IInstance.sol +4 -1
  302. package/contracts/instance/IInstanceService.sol +0 -20
  303. package/contracts/instance/Instance.sol +20 -17
  304. package/contracts/instance/InstanceAdmin.sol +16 -27
  305. package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
  306. package/contracts/instance/InstanceService.sol +14 -68
  307. package/contracts/instance/module/IComponents.sol +7 -4
  308. package/contracts/oracle/BasicOracle.sol +0 -1
  309. package/contracts/oracle/IOracleService.sol +2 -1
  310. package/contracts/oracle/Oracle.sol +4 -15
  311. package/contracts/oracle/OracleService.sol +20 -14
  312. package/contracts/pool/BasicPool.sol +22 -12
  313. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  314. package/contracts/pool/BundleService.sol +63 -39
  315. package/contracts/pool/IBundleService.sol +2 -5
  316. package/contracts/pool/IPoolComponent.sol +1 -7
  317. package/contracts/pool/IPoolService.sol +23 -22
  318. package/contracts/pool/Pool.sol +111 -123
  319. package/contracts/pool/PoolService.sol +186 -128
  320. package/contracts/product/ApplicationService.sol +9 -1
  321. package/contracts/product/BasicProduct.sol +8 -12
  322. package/contracts/product/BasicProductAuthorization.sol +0 -1
  323. package/contracts/product/ClaimService.sol +82 -51
  324. package/contracts/product/IPricingService.sol +9 -9
  325. package/contracts/product/IProductComponent.sol +6 -0
  326. package/contracts/product/PolicyService.sol +15 -10
  327. package/contracts/product/PricingService.sol +7 -7
  328. package/contracts/product/Product.sol +51 -54
  329. package/contracts/registry/ChainNft.sol +6 -9
  330. package/contracts/registry/IRegistry.sol +0 -3
  331. package/contracts/registry/IRegistryService.sol +6 -4
  332. package/contracts/registry/ITransferInterceptor.sol +1 -2
  333. package/contracts/registry/Registry.sol +6 -4
  334. package/contracts/registry/RegistryAdmin.sol +7 -23
  335. package/contracts/registry/RegistryService.sol +37 -55
  336. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  337. package/contracts/registry/ReleaseRegistry.sol +201 -191
  338. package/contracts/registry/ServiceAuthorizationV3.sol +20 -15
  339. package/contracts/shared/Component.sol +25 -21
  340. package/contracts/shared/ComponentService.sol +235 -131
  341. package/contracts/shared/ComponentVerifyingService.sol +22 -14
  342. package/contracts/shared/IComponent.sol +6 -2
  343. package/contracts/shared/IComponentService.sol +25 -13
  344. package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
  345. package/contracts/shared/ILifecycle.sol +3 -1
  346. package/contracts/shared/IRegisterable.sol +11 -0
  347. package/contracts/shared/InstanceLinkedComponent.sol +67 -25
  348. package/contracts/shared/KeyValueStore.sol +1 -1
  349. package/contracts/shared/Lifecycle.sol +15 -4
  350. package/contracts/shared/NftOwnable.sol +8 -4
  351. package/contracts/shared/Registerable.sol +15 -7
  352. package/contracts/shared/Service.sol +4 -7
  353. package/contracts/staking/Staking.sol +2 -3
  354. package/contracts/staking/StakingService.sol +14 -0
  355. package/contracts/type/RiskId.sol +1 -1
  356. package/contracts/type/RoleId.sol +0 -12
  357. package/contracts/type/StateId.sol +14 -1
  358. package/contracts/upgradeability/ProxyManager.sol +2 -1
  359. package/package.json +1 -1
  360. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  361. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  362. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  363. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  364. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  365. package/contracts/authorization/ModuleAuthorization.sol +0 -78
@@ -13,6 +13,7 @@ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
13
13
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
14
14
  import {ContractLib} from "../shared/ContractLib.sol";
15
15
  import {InstanceReader} from "../instance/InstanceReader.sol";
16
+ import {InstanceStore} from "../instance/InstanceStore.sol";
16
17
  import {IClaimService} from "./IClaimService.sol";
17
18
  import {IComponents} from "../instance/module/IComponents.sol";
18
19
  import {IInstance} from "../instance/IInstance.sol";
@@ -62,10 +63,12 @@ contract ClaimService is
62
63
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
63
64
  returns (ClaimId claimId)
64
65
  {
66
+ _checkNftType(policyNftId, POLICY());
67
+
65
68
  (
66
69
  ,
67
- IInstance instance,
68
- InstanceReader instanceReader,
70
+ IInstance instance,,
71
+ InstanceStore instanceStore,
69
72
  IPolicy.PolicyInfo memory policyInfo
70
73
  ) = _verifyCallerWithPolicy(policyNftId);
71
74
 
@@ -85,7 +88,7 @@ contract ClaimService is
85
88
 
86
89
  // create new claim
87
90
  claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
88
- instance.getInstanceStore().createClaim(
91
+ instanceStore.createClaim(
89
92
  policyNftId,
90
93
  claimId,
91
94
  IPolicy.ClaimInfo({
@@ -98,10 +101,10 @@ contract ClaimService is
98
101
  closedAt: TimestampLib.zero()}));
99
102
 
100
103
  // update and save policy info with instance
104
+ // policy claim amount is only updated when claim is confirmed
101
105
  policyInfo.claimsCount += 1;
102
106
  policyInfo.openClaimsCount += 1;
103
- // policy claim amount is only updated when claim is confirmed
104
- instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
107
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
105
108
 
106
109
  emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
107
110
  }
@@ -117,10 +120,13 @@ contract ClaimService is
117
120
  virtual
118
121
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
119
122
  {
123
+ _checkNftType(policyNftId, POLICY());
124
+
120
125
  (
121
126
  NftId productNftId,
122
127
  IInstance instance,
123
128
  InstanceReader instanceReader,
129
+ InstanceStore instanceStore,
124
130
  IPolicy.PolicyInfo memory policyInfo
125
131
  ) = _verifyCallerWithPolicy(policyNftId);
126
132
 
@@ -130,11 +136,11 @@ contract ClaimService is
130
136
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
131
137
  claimInfo.claimAmount = confirmedAmount;
132
138
  claimInfo.processData = data;
133
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
139
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
134
140
 
135
141
  // update and save policy info with instance
136
142
  policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
137
- instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
143
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
138
144
 
139
145
  // should policy still be active it needs to become expired
140
146
  if (policyInfo.claimAmount >= policyInfo.sumInsuredAmount) {
@@ -160,10 +166,13 @@ contract ClaimService is
160
166
  virtual
161
167
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
162
168
  {
169
+ _checkNftType(policyNftId, POLICY());
170
+
163
171
  (
164
172
  ,
165
173
  IInstance instance,
166
174
  InstanceReader instanceReader,
175
+ InstanceStore instanceStore,
167
176
  IPolicy.PolicyInfo memory policyInfo
168
177
  ) = _verifyCallerWithPolicy(policyNftId);
169
178
 
@@ -171,11 +180,11 @@ contract ClaimService is
171
180
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
172
181
  claimInfo.processData = data;
173
182
  claimInfo.closedAt = TimestampLib.blockTimestamp();
174
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, DECLINED());
183
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
175
184
 
176
185
  // update and save policy info with instance
177
186
  policyInfo.openClaimsCount -= 1;
178
- instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
187
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
179
188
 
180
189
  emit LogClaimServiceClaimDeclined(policyNftId, claimId);
181
190
  }
@@ -190,21 +199,24 @@ contract ClaimService is
190
199
  virtual
191
200
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
192
201
  {
202
+ _checkNftType(policyNftId, POLICY());
203
+
193
204
  (
194
205
  ,
195
206
  IInstance instance,
196
207
  InstanceReader instanceReader,
208
+ InstanceStore instanceStore,
197
209
  IPolicy.PolicyInfo memory policyInfo
198
210
  ) = _verifyCallerWithPolicy(policyNftId);
199
211
 
200
212
  // check/update claim info
201
213
  IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
202
214
  claimInfo.closedAt = TimestampLib.blockTimestamp();
203
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, REVOKED());
215
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, REVOKED());
204
216
 
205
217
  // update and save policy info with instance
206
218
  policyInfo.openClaimsCount -= 1;
207
- instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
219
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
208
220
 
209
221
  emit LogClaimServiceClaimRevoked(policyNftId, claimId);
210
222
  }
@@ -218,10 +230,13 @@ contract ClaimService is
218
230
  virtual
219
231
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
220
232
  {
233
+ _checkNftType(policyNftId, POLICY());
234
+
221
235
  (
222
236
  ,
223
237
  IInstance instance,
224
238
  InstanceReader instanceReader,
239
+ InstanceStore instanceStore,
225
240
  IPolicy.PolicyInfo memory policyInfo
226
241
  ) = _verifyCallerWithPolicy(policyNftId);
227
242
 
@@ -246,7 +261,7 @@ contract ClaimService is
246
261
  }
247
262
 
248
263
  claimInfo.closedAt = TimestampLib.blockTimestamp();
249
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
264
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
250
265
  }
251
266
 
252
267
 
@@ -262,6 +277,8 @@ contract ClaimService is
262
277
  // nonReentrant() // prevents creating a reinsurance claim in a single tx
263
278
  returns (PayoutId payoutId)
264
279
  {
280
+ _checkNftType(policyNftId, POLICY());
281
+
265
282
  if (beneficiary == address(0)) {
266
283
  revert ErrorClaimServiceBeneficiaryIsZero(policyNftId, claimId);
267
284
  }
@@ -286,6 +303,8 @@ contract ClaimService is
286
303
  // nonReentrant() // prevents creating a reinsurance payout in a single tx
287
304
  returns (PayoutId payoutId)
288
305
  {
306
+ _checkNftType(policyNftId, POLICY());
307
+
289
308
  return _createPayout(
290
309
  policyNftId,
291
310
  claimId,
@@ -303,10 +322,13 @@ contract ClaimService is
303
322
  virtual
304
323
  // nonReentrant() // prevents creating a reinsurance payout in a single tx
305
324
  {
325
+ _checkNftType(policyNftId, POLICY());
326
+
306
327
  (
307
328
  ,
308
329
  IInstance instance,
309
330
  InstanceReader instanceReader,
331
+ InstanceStore instanceStore,
310
332
  IPolicy.PolicyInfo memory policyInfo
311
333
  ) = _verifyCallerWithPolicy(policyNftId);
312
334
 
@@ -315,28 +337,31 @@ contract ClaimService is
315
337
 
316
338
  // update and save payout info with instance
317
339
  payoutInfo.paidAt = TimestampLib.blockTimestamp();
318
- instance.getInstanceStore().updatePayout(policyNftId, payoutId, payoutInfo, PAID());
340
+ instanceStore.updatePayout(policyNftId, payoutId, payoutInfo, PAID());
319
341
 
320
- ClaimId claimId = payoutId.toClaimId();
321
342
  Amount payoutAmount = payoutInfo.amount;
322
- IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
323
- claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
324
- claimInfo.openPayoutsCount -= 1;
325
-
326
- // check if this payout is closing the linked claim
327
- // update claim and policy info accordingly
328
- if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
329
- claimInfo.closedAt = TimestampLib.blockTimestamp();
330
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
331
-
332
- policyInfo.openClaimsCount -= 1;
333
- } else {
334
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
343
+
344
+ {
345
+ ClaimId claimId = payoutId.toClaimId();
346
+ IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
347
+ claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
348
+ claimInfo.openPayoutsCount -= 1;
349
+
350
+ // check if this payout is closing the linked claim
351
+ // update claim and policy info accordingly
352
+ if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
353
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
354
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
355
+
356
+ policyInfo.openClaimsCount -= 1;
357
+ } else {
358
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
359
+ }
335
360
  }
336
361
 
337
362
  // update and save policy info with instance
338
363
  policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
339
- instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
364
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
340
365
 
341
366
  // inform pool about payout
342
367
  _poolService.processPayout(
@@ -347,28 +372,30 @@ contract ClaimService is
347
372
  payoutAmount);
348
373
 
349
374
  // transfer payout token and fee
350
- (
351
- Amount netPayoutAmount,
352
- Amount processingFeeAmount,
353
- address beneficiary
354
- ) = _calculatePayoutAmount(
355
- instanceReader,
356
- policyNftId,
357
- policyInfo,
358
- payoutInfo);
359
-
360
- emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
361
-
362
375
  {
363
- NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
364
- IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
365
- poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
376
+ (
377
+ Amount netPayoutAmount,
378
+ Amount processingFeeAmount,
379
+ address beneficiary
380
+ ) = _calculatePayoutAmount(
381
+ instanceReader,
382
+ policyNftId,
383
+ policyInfo,
384
+ payoutInfo);
385
+
386
+ emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount, processingFeeAmount);
387
+
388
+ {
389
+ NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
390
+ IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
391
+ poolInfo.tokenHandler.distributeTokens(poolInfo.wallet, beneficiary, netPayoutAmount);
392
+
393
+ // TODO add 2nd token tx if processingFeeAmount > 0
394
+ }
366
395
 
367
- // TODO add 2nd token tx if processingFeeAmount > 0
396
+ // callback to policy holder if applicable
397
+ _policyHolderPayoutExecuted(policyNftId, payoutId, beneficiary, payoutAmount);
368
398
  }
369
-
370
- // callback to policy holder if applicable
371
- _policyHolderPayoutExecuted(policyNftId, payoutId, beneficiary, payoutAmount);
372
399
  }
373
400
 
374
401
  // internal functions
@@ -387,8 +414,9 @@ contract ClaimService is
387
414
  {
388
415
  (
389
416
  ,
390
- IInstance instance,
417
+ ,
391
418
  InstanceReader instanceReader,
419
+ InstanceStore instanceStore,
392
420
  IPolicy.PolicyInfo memory policyInfo
393
421
  ) = _verifyCallerWithPolicy(policyNftId);
394
422
 
@@ -406,7 +434,8 @@ contract ClaimService is
406
434
  if (beneficiary == address(0)) {
407
435
  beneficiary = getRegistry().ownerOf(policyNftId);
408
436
  }
409
- instance.getInstanceStore().createPayout(
437
+
438
+ instanceStore.createPayout(
410
439
  policyNftId,
411
440
  payoutId,
412
441
  IPolicy.PayoutInfo({
@@ -419,11 +448,11 @@ contract ClaimService is
419
448
  // update and save claim info with instance
420
449
  claimInfo.payoutsCount += 1;
421
450
  claimInfo.openPayoutsCount += 1;
422
- instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
451
+ instanceStore.updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
423
452
 
424
453
  // update and save policy info with instance
425
454
  policyInfo.payoutAmount.add(amount);
426
- instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
455
+ instanceStore.updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
427
456
 
428
457
  emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount, beneficiary);
429
458
  }
@@ -477,11 +506,13 @@ contract ClaimService is
477
506
  NftId productNftId,
478
507
  IInstance instance,
479
508
  InstanceReader instanceReader,
509
+ InstanceStore instanceStore,
480
510
  IPolicy.PolicyInfo memory policyInfo
481
511
  )
482
512
  {
483
513
  (productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
484
514
  instanceReader = instance.getInstanceReader();
515
+ instanceStore = instance.getInstanceStore();
485
516
 
486
517
  // check caller(product) policy match
487
518
  policyInfo = instanceReader.getPolicyInfo(policyNftId);
@@ -14,15 +14,15 @@ interface IPricingService is IService
14
14
  {
15
15
 
16
16
  error ErrorPricingServiceTargetWalletAmountsMismatch();
17
- error ErrorIPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
- error ErrorIPricingServiceFeeCalculationMismatch(
19
- Amount distributionFeeFixAmount,
20
- Amount distributionFeeVarAmount,
21
- Amount distributionOwnerFeeFixAmount,
22
- Amount distributionOwnerFeeVarAmount,
23
- Amount commissionAmount,
24
- Amount discountAmount
25
- );
17
+ error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ error ErrorPricingServiceFeeCalculationMismatch(
19
+ Amount distributionFeeFixAmount,
20
+ Amount distributionFeeVarAmount,
21
+ Amount distributionOwnerFeeFixAmount,
22
+ Amount distributionOwnerFeeVarAmount,
23
+ Amount commissionAmount,
24
+ Amount discountAmount
25
+ );
26
26
 
27
27
  function calculatePremium(
28
28
  NftId productNftId,
@@ -6,6 +6,7 @@ import {ClaimId} from "../type/ClaimId.sol";
6
6
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
7
  import {IComponents} from "../instance/module/IComponents.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
9
10
  import {ReferralId} from "../type/Referral.sol";
10
11
  import {RiskId} from "../type/RiskId.sol";
11
12
  import {Seconds} from "../type/Seconds.sol";
@@ -14,6 +15,11 @@ interface IProductComponent is
14
15
  IInstanceLinkedComponent
15
16
  {
16
17
 
18
+ // @dev register a new component for this product cluster.
19
+ function registerComponent(address component)
20
+ external
21
+ returns (NftId componentNftId);
22
+
17
23
  /// @dev Callback function to inform product compnent about arrival of funding for a claim.
18
24
  /// The callback is called by the pool service after the corresponding pool triggers this function.
19
25
  /// The callback is only called when the product's property isProcessingFundedClaims is set.
@@ -15,7 +15,7 @@ import {Amount, AmountLib} from "../type/Amount.sol";
15
15
  import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
16
16
  import {ObjectType, APPLICATION, COMPONENT, DISTRIBUTION, PRODUCT, POOL, POLICY, BUNDLE, CLAIM, PRICE} from "../type/ObjectType.sol";
17
17
  import {APPLIED, COLLATERALIZED, KEEP_STATE, CLOSED, DECLINED, PAID} from "../type/StateId.sol";
18
- import {NftId, NftIdLib} from "../type/NftId.sol";
18
+ import {NftId} from "../type/NftId.sol";
19
19
  import {ReferralId} from "../type/Referral.sol";
20
20
  import {StateId} from "../type/StateId.sol";
21
21
  import {VersionPart} from "../type/Version.sol";
@@ -38,13 +38,7 @@ contract PolicyService is
38
38
  ComponentVerifyingService,
39
39
  IPolicyService
40
40
  {
41
- using NftIdLib for NftId;
42
- using TimestampLib for Timestamp;
43
-
44
- IApplicationService internal _applicationService;
45
41
  IComponentService internal _componentService;
46
- IBundleService internal _bundleService;
47
- IClaimService internal _claimService;
48
42
  IDistributionService internal _distributionService;
49
43
  IPoolService internal _poolService;
50
44
  IPricingService internal _pricingService;
@@ -65,10 +59,7 @@ contract PolicyService is
65
59
  _initializeService(registryAddress, authority, owner);
66
60
 
67
61
  VersionPart majorVersion = getVersion().toMajorPart();
68
- _applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), majorVersion));
69
- _bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), majorVersion));
70
62
  _componentService = IComponentService(getRegistry().getServiceAddress(COMPONENT(), majorVersion));
71
- _claimService = IClaimService(getRegistry().getServiceAddress(CLAIM(), majorVersion));
72
63
  _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
73
64
  _distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
74
65
  _pricingService = IPricingService(getRegistry().getServiceAddress(PRICE(), majorVersion));
@@ -84,6 +75,8 @@ contract PolicyService is
84
75
  virtual
85
76
  nonReentrant()
86
77
  {
78
+ _checkNftType(applicationNftId, POLICY());
79
+
87
80
  (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
88
81
  InstanceReader instanceReader = instance.getInstanceReader();
89
82
 
@@ -120,6 +113,8 @@ contract PolicyService is
120
113
  virtual
121
114
  nonReentrant()
122
115
  {
116
+ _checkNftType(applicationNftId, POLICY());
117
+
123
118
  // check caller is registered product
124
119
  (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
125
120
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -205,6 +200,8 @@ contract PolicyService is
205
200
  virtual
206
201
  nonReentrant()
207
202
  {
203
+ _checkNftType(policyNftId, POLICY());
204
+
208
205
  // check caller is registered product
209
206
  (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
210
207
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -249,6 +246,8 @@ contract PolicyService is
249
246
  virtual
250
247
  nonReentrant()
251
248
  {
249
+ _checkNftType(policyNftId, POLICY());
250
+
252
251
  // check caller is registered product
253
252
  (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
254
253
  InstanceReader instanceReader = instance.getInstanceReader();
@@ -276,6 +275,8 @@ contract PolicyService is
276
275
  nonReentrant()
277
276
  returns (Timestamp expiredAt)
278
277
  {
278
+ _checkNftType(policyNftId, POLICY());
279
+
279
280
  (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
280
281
 
281
282
  // check policy matches with calling product
@@ -305,6 +306,8 @@ contract PolicyService is
305
306
  nonReentrant()
306
307
  returns (Timestamp expiredAt)
307
308
  {
309
+ _checkNftType(policyNftId, POLICY());
310
+
308
311
  return _expire(
309
312
  instance,
310
313
  policyNftId,
@@ -364,6 +367,8 @@ contract PolicyService is
364
367
  virtual
365
368
  nonReentrant()
366
369
  {
370
+ _checkNftType(policyNftId, POLICY());
371
+
367
372
  (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
368
373
  InstanceReader instanceReader = instance.getInstanceReader();
369
374
 
@@ -9,7 +9,7 @@ import {NftId} from "../type/NftId.sol";
9
9
  import {Fee} from "../type/Fee.sol";
10
10
  import {ReferralId} from "../type/Referral.sol";
11
11
  import {RiskId} from "../type/RiskId.sol";
12
- import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
12
+ import {PRODUCT, BUNDLE, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
13
13
  import {IRegistry} from "../registry/IRegistry.sol";
14
14
 
15
15
  import {IProductComponent} from "./IProductComponent.sol";
@@ -31,11 +31,8 @@ contract PricingService is
31
31
  ComponentVerifyingService,
32
32
  IPricingService
33
33
  {
34
- using UFixedLib for UFixed;
35
-
36
34
  IDistributionService internal _distributionService;
37
35
 
38
-
39
36
  function _initialize(
40
37
  address owner,
41
38
  bytes memory data
@@ -73,6 +70,9 @@ contract PricingService is
73
70
  IPolicy.PremiumInfo memory premium
74
71
  )
75
72
  {
73
+ _checkNftType(productNftId, PRODUCT());
74
+ _checkNftType(bundleNftId, BUNDLE());
75
+
76
76
  InstanceReader reader;
77
77
  Amount netPremiumAmount;
78
78
 
@@ -101,7 +101,7 @@ contract PricingService is
101
101
 
102
102
  IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
103
103
  if(bundleInfo.poolNftId != productInfo.poolNftId) {
104
- revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
104
+ revert ErrorPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
105
105
  }
106
106
 
107
107
  // calculate fixed fees for product, pool, bundle
@@ -138,7 +138,7 @@ contract PricingService is
138
138
  }
139
139
 
140
140
  if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
141
- revert ErrorIPricingServiceFeeCalculationMismatch(
141
+ revert ErrorPricingServiceFeeCalculationMismatch(
142
142
  premium.distributionFeeFixAmount,
143
143
  premium.distributionFeeVarAmount,
144
144
  premium.distributionOwnerFeeFixAmount,
@@ -149,7 +149,7 @@ contract PricingService is
149
149
  }
150
150
 
151
151
  if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
152
- revert ErrorIPricingServiceFeeCalculationMismatch(
152
+ revert ErrorPricingServiceFeeCalculationMismatch(
153
153
  premium.distributionFeeFixAmount,
154
154
  premium.distributionFeeVarAmount,
155
155
  premium.distributionOwnerFeeFixAmount,