@etherisc/gif-next 0.0.2-98bc1be-984 → 0.0.2-98e9f45-792

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 (462) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1500 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -292
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +255 -121
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -55
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -149
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +265 -135
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +327 -213
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  63. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -26
  81. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -157
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  89. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1406 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +402 -62
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -43
  96. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  98. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -278
  100. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -90
  102. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  103. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -417
  104. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -126
  106. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -36
  108. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
  110. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
  112. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  113. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1254 -0
  114. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  116. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +88 -72
  118. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  120. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  122. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
  124. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +183 -108
  126. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  128. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  129. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -68
  130. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  131. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  132. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -179
  133. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +49 -49
  135. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  136. package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -153
  137. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -75
  139. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  140. package/artifacts/contracts/product/Product.sol/Product.json +35 -220
  141. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  143. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  146. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  148. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  149. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  150. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  151. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  152. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
  154. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  157. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  159. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  160. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  162. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  163. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  164. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
  166. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  168. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  169. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  170. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -86
  172. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -61
  174. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  180. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -26
  181. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  183. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  184. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  185. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  191. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  192. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  193. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  194. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -117
  195. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  196. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  197. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  199. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  200. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  201. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  203. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  204. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  208. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  209. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  212. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  213. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  214. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  215. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
  216. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
  219. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  220. package/artifacts/contracts/staking/Staking.sol/Staking.json +55 -119
  221. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  222. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  223. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -46
  225. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  227. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  229. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  231. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  233. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
  235. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  237. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  239. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  241. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  243. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  245. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  247. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  249. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  251. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  253. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  255. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  257. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  259. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  261. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  263. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  265. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  269. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  271. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  273. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  275. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  277. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  279. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  281. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  283. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  285. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  286. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  287. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  288. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  289. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  290. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  291. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  292. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  293. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
  294. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  295. package/contracts/authorization/Authorization.sol +217 -0
  296. package/contracts/authorization/IAccess.sol +48 -0
  297. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  298. package/contracts/authorization/IAuthorization.sol +54 -0
  299. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  300. package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
  301. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  302. package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
  303. package/contracts/distribution/BasicDistribution.sol +138 -0
  304. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  305. package/contracts/distribution/Distribution.sol +144 -110
  306. package/contracts/distribution/DistributionService.sol +77 -38
  307. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  308. package/contracts/distribution/IDistributionComponent.sol +25 -39
  309. package/contracts/distribution/IDistributionService.sol +23 -3
  310. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  311. package/contracts/instance/IInstance.sol +8 -9
  312. package/contracts/instance/IInstanceService.sol +13 -18
  313. package/contracts/instance/Instance.sol +61 -70
  314. package/contracts/instance/InstanceAdmin.sol +221 -267
  315. package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
  316. package/contracts/instance/InstanceReader.sol +46 -16
  317. package/contracts/instance/InstanceService.sol +104 -76
  318. package/contracts/instance/InstanceServiceManager.sol +2 -6
  319. package/contracts/instance/InstanceStore.sol +27 -5
  320. package/contracts/instance/base/ObjectLifecycle.sol +110 -0
  321. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
  322. package/contracts/instance/module/IBundle.sol +1 -1
  323. package/contracts/instance/module/IComponents.sol +1 -7
  324. package/contracts/instance/module/IDistribution.sol +0 -1
  325. package/contracts/instance/module/IPolicy.sol +17 -17
  326. package/contracts/mock/Dip.sol +1 -1
  327. package/contracts/oracle/BasicOracle.sol +48 -0
  328. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  329. package/contracts/oracle/IOracle.sol +16 -0
  330. package/contracts/oracle/IOracleComponent.sol +2 -1
  331. package/contracts/oracle/Oracle.sol +72 -51
  332. package/contracts/oracle/OracleServiceManager.sol +2 -5
  333. package/contracts/pool/BasicPool.sol +166 -0
  334. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  335. package/contracts/pool/BundleService.sol +189 -47
  336. package/contracts/pool/BundleServiceManager.sol +2 -5
  337. package/contracts/pool/IBundleService.sol +33 -5
  338. package/contracts/pool/IPoolComponent.sol +6 -60
  339. package/contracts/pool/IPoolService.sol +36 -26
  340. package/contracts/pool/Pool.sol +164 -137
  341. package/contracts/pool/PoolService.sol +162 -105
  342. package/contracts/pool/PoolServiceManager.sol +2 -5
  343. package/contracts/product/ApplicationService.sol +51 -56
  344. package/contracts/product/ApplicationServiceManager.sol +2 -2
  345. package/contracts/product/BasicProduct.sol +52 -0
  346. package/contracts/product/BasicProductAuthorization.sol +43 -0
  347. package/contracts/product/ClaimService.sol +13 -39
  348. package/contracts/product/ClaimServiceManager.sol +2 -2
  349. package/contracts/product/IApplicationService.sol +1 -0
  350. package/contracts/product/IClaimService.sol +1 -0
  351. package/contracts/product/IPolicyService.sol +25 -30
  352. package/contracts/product/IPricingService.sol +7 -7
  353. package/contracts/product/IProductComponent.sol +7 -10
  354. package/contracts/product/IProductService.sol +1 -0
  355. package/contracts/product/PolicyService.sol +272 -171
  356. package/contracts/product/PolicyServiceManager.sol +2 -5
  357. package/contracts/product/PricingService.sol +42 -41
  358. package/contracts/product/PricingServiceManager.sol +2 -5
  359. package/contracts/product/Product.sol +129 -100
  360. package/contracts/product/ProductService.sol +7 -32
  361. package/contracts/product/ProductServiceManager.sol +2 -5
  362. package/contracts/registry/IRegistry.sol +26 -16
  363. package/contracts/registry/IRegistryService.sol +6 -6
  364. package/contracts/registry/Registry.sol +81 -87
  365. package/contracts/registry/RegistryAdmin.sol +127 -86
  366. package/contracts/registry/RegistryService.sol +4 -18
  367. package/contracts/registry/RegistryServiceManager.sol +2 -2
  368. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  369. package/contracts/registry/ReleaseRegistry.sol +485 -0
  370. package/contracts/registry/ServiceAuthorizationV3.sol +16 -17
  371. package/contracts/registry/TokenRegistry.sol +2 -2
  372. package/contracts/shared/Component.sol +24 -37
  373. package/contracts/shared/ComponentService.sol +96 -72
  374. package/contracts/shared/ComponentServiceManager.sol +2 -2
  375. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  376. package/contracts/shared/IComponent.sol +4 -4
  377. package/contracts/shared/IComponentService.sol +15 -9
  378. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  379. package/contracts/shared/IKeyValueStore.sol +1 -0
  380. package/contracts/shared/ILifecycle.sol +1 -2
  381. package/contracts/shared/IService.sol +1 -1
  382. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  383. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  384. package/contracts/shared/KeyValueStore.sol +6 -2
  385. package/contracts/shared/Lifecycle.sol +16 -69
  386. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  387. package/contracts/shared/NftOwnable.sol +2 -2
  388. package/contracts/shared/PolicyHolder.sol +2 -5
  389. package/contracts/shared/Service.sol +3 -4
  390. package/contracts/shared/TokenHandler.sol +100 -19
  391. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  392. package/contracts/staking/IStaking.sol +1 -2
  393. package/contracts/staking/IStakingService.sol +12 -5
  394. package/contracts/staking/StakeManagerLib.sol +0 -25
  395. package/contracts/staking/Staking.sol +21 -37
  396. package/contracts/staking/StakingLifecycle.sol +23 -0
  397. package/contracts/staking/StakingManager.sol +2 -6
  398. package/contracts/staking/StakingReader.sol +12 -16
  399. package/contracts/staking/StakingService.sol +8 -12
  400. package/contracts/staking/StakingServiceManager.sol +2 -2
  401. package/contracts/staking/StakingStore.sol +15 -23
  402. package/contracts/type/Amount.sol +12 -5
  403. package/contracts/type/Blocknumber.sol +7 -1
  404. package/contracts/type/ObjectType.sol +52 -18
  405. package/contracts/type/Referral.sol +1 -0
  406. package/contracts/type/RoleId.sol +55 -82
  407. package/contracts/type/Seconds.sol +13 -1
  408. package/contracts/type/Timestamp.sol +11 -1
  409. package/contracts/type/UFixed.sol +34 -9
  410. package/contracts/type/Version.sol +3 -1
  411. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  412. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  413. package/package.json +6 -3
  414. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  415. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  416. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  417. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  418. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  420. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  421. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  422. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
  423. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  424. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  425. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  426. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  427. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  428. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  429. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  430. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  431. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  432. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  433. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  434. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  435. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  436. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  437. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  438. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  439. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  440. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  441. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  442. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  443. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  444. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  445. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  446. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  447. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  448. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  449. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  450. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  451. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  452. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  453. package/contracts/registry/ReleaseManager.sol +0 -527
  454. package/contracts/shared/AccessManagerCustom.sol +0 -741
  455. package/contracts/shared/AccessManagerExtended.sol +0 -481
  456. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  457. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  458. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  459. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  460. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  461. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  462. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -71,7 +71,7 @@ contract PricingService is
71
71
  view
72
72
  virtual override
73
73
  returns (
74
- IPolicy.Premium memory premium
74
+ IPolicy.PremiumInfo memory premium
75
75
  )
76
76
  {
77
77
  InstanceReader reader;
@@ -84,6 +84,7 @@ contract PricingService is
84
84
  IInstance instance
85
85
  ) = _getAndVerifyComponentInfo(productNftId, PRODUCT(), false);
86
86
 
87
+ // get instance reader from local instance variable
87
88
  reader = instance.getInstanceReader();
88
89
 
89
90
  // calculate net premium
@@ -104,19 +105,21 @@ contract PricingService is
104
105
  revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
105
106
  }
106
107
 
107
- // calculate premium, order is important
108
+ // calculate fixed fees for product, pool, bundle
108
109
  premium = _getFixedFeeAmounts(
109
110
  netPremiumAmount,
110
111
  productInfo,
111
112
  bundleInfo
112
113
  );
113
114
 
115
+ // calculate variable fees for product, pool, bundle
114
116
  premium = _calculateVariableFeeAmounts(
115
117
  premium,
116
118
  productInfo,
117
119
  bundleInfo
118
120
  );
119
121
 
122
+ // calculate distribution fee and (if applicable) commission
120
123
  premium = _calculateDistributionOwnerFeeAmount(
121
124
  premium,
122
125
  productInfo,
@@ -124,18 +127,18 @@ contract PricingService is
124
127
  reader
125
128
  );
126
129
 
130
+ // calculate resulting amounts for product, pool, and distribution wallets
127
131
  premium = _calculateTargetWalletAmounts(premium);
128
132
 
129
133
  // sanity check to validate the fee calculation
130
- if(AmountLib.toAmount(premium.premiumAmount) !=
131
- premium.productFeeAmount
134
+ if(premium.premiumAmount != premium.productFeeAmount
132
135
  + premium.distributionFeeAndCommissionAmount
133
136
  + premium.poolPremiumAndFeeAmount)
134
137
  {
135
138
  revert ErrorPricingServiceTargetWalletAmountsMismatch();
136
139
  }
137
140
 
138
- if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
141
+ if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
139
142
  revert ErrorIPricingServiceFeeCalculationMismatch(
140
143
  premium.distributionFeeFixAmount,
141
144
  premium.distributionFeeVarAmount,
@@ -168,64 +171,64 @@ contract PricingService is
168
171
  internal
169
172
  pure
170
173
  returns (
171
- IPolicy.Premium memory premium
174
+ IPolicy.PremiumInfo memory premium
172
175
  )
173
176
  {
174
177
  // initial premium amount is the net premium
175
- premium.netPremiumAmount = netPremiumAmount.toInt();
176
- premium.fullPremiumAmount = netPremiumAmount.toInt();
178
+ premium.netPremiumAmount = netPremiumAmount;
179
+ premium.fullPremiumAmount = netPremiumAmount;
177
180
 
178
- uint256 t = productInfo.productFee.fixedFee;
181
+ Amount t = AmountLib.toAmount(productInfo.productFee.fixedFee);
179
182
  premium.productFeeFixAmount = t;
180
- premium.fullPremiumAmount += t;
183
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
181
184
 
182
- t = productInfo.poolFee.fixedFee;
185
+ t = AmountLib.toAmount(productInfo.poolFee.fixedFee);
183
186
  premium.poolFeeFixAmount = t;
184
- premium.fullPremiumAmount += t;
187
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
185
188
 
186
- t = bundleInfo.fee.fixedFee;
189
+ t = AmountLib.toAmount(bundleInfo.fee.fixedFee);
187
190
  premium.bundleFeeFixAmount = t;
188
- premium.fullPremiumAmount += t;
191
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
189
192
 
190
- t = productInfo.distributionFee.fixedFee;
193
+ t = AmountLib.toAmount(productInfo.distributionFee.fixedFee);
191
194
  premium.distributionFeeFixAmount = t;
192
- premium.fullPremiumAmount += t;
195
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
193
196
  }
194
197
 
195
198
  function _calculateVariableFeeAmounts(
196
- IPolicy.Premium memory premium,
199
+ IPolicy.PremiumInfo memory premium,
197
200
  IComponents.ProductInfo memory productInfo,
198
201
  IBundle.BundleInfo memory bundleInfo
199
202
  )
200
203
  internal
201
204
  pure
202
205
  returns (
203
- IPolicy.Premium memory intermadiatePremium
206
+ IPolicy.PremiumInfo memory intermadiatePremium
204
207
  )
205
208
  {
206
- UFixed netPremiumAmount = UFixedLib.toUFixed(premium.netPremiumAmount);
209
+ Amount netPremiumAmount = premium.netPremiumAmount;
207
210
 
208
- uint256 t = (netPremiumAmount * productInfo.productFee.fractionalFee).toInt();
211
+ Amount t = netPremiumAmount.multiplyWith(productInfo.productFee.fractionalFee);
209
212
  premium.productFeeVarAmount = t;
210
- premium.fullPremiumAmount += t;
213
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
211
214
 
212
- t = (netPremiumAmount * productInfo.poolFee.fractionalFee).toInt();
215
+ t = netPremiumAmount.multiplyWith(productInfo.poolFee.fractionalFee);
213
216
  premium.poolFeeVarAmount = t;
214
- premium.fullPremiumAmount += t;
217
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
215
218
 
216
- t = (netPremiumAmount * bundleInfo.fee.fractionalFee).toInt();
219
+ t = netPremiumAmount.multiplyWith(bundleInfo.fee.fractionalFee);
217
220
  premium.bundleFeeVarAmount = t;
218
- premium.fullPremiumAmount += t;
221
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
219
222
 
220
- t = (netPremiumAmount * productInfo.distributionFee.fractionalFee).toInt();
223
+ t = netPremiumAmount.multiplyWith(productInfo.distributionFee.fractionalFee);
221
224
  premium.distributionFeeVarAmount = t;
222
- premium.fullPremiumAmount += t;
225
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
223
226
 
224
227
  return premium;
225
228
  }
226
229
 
227
230
  function _calculateDistributionOwnerFeeAmount(
228
- IPolicy.Premium memory premium,
231
+ IPolicy.PremiumInfo memory premium,
229
232
  IComponents.ProductInfo memory productInfo,
230
233
  // ISetup.DistributionSetupInfo memory distInfo,
231
234
  ReferralId referralId,
@@ -233,7 +236,7 @@ contract PricingService is
233
236
  )
234
237
  internal
235
238
  view
236
- returns (IPolicy.Premium memory finalPremium)
239
+ returns (IPolicy.PremiumInfo memory finalPremium)
237
240
  {
238
241
 
239
242
  // if the referral is not valid, then the distribution owner gets everything
@@ -253,10 +256,10 @@ contract PricingService is
253
256
  IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
254
257
  IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
255
258
 
256
- uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
259
+ Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
257
260
  premium.commissionAmount = commissionAmount;
258
- premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
259
- premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
261
+ premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
262
+ premium.distributionOwnerFeeFixAmount = AmountLib.toAmount(minDistributionOwnerFee.fixedFee);
260
263
  premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
261
264
  premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
262
265
  }
@@ -266,29 +269,27 @@ contract PricingService is
266
269
 
267
270
 
268
271
  function _calculateTargetWalletAmounts(
269
- IPolicy.Premium memory premium
272
+ IPolicy.PremiumInfo memory premium
270
273
  )
271
274
  internal
272
275
  virtual
273
276
  view
274
277
  returns (
275
- IPolicy.Premium memory premiumWithTargetWalletAmounts
278
+ IPolicy.PremiumInfo memory premiumWithTargetWalletAmounts
276
279
  )
277
280
  {
278
281
  // fees for product owner
279
- premium.productFeeAmount = AmountLib.toAmount(
280
- premium.productFeeFixAmount + premium.productFeeVarAmount);
282
+ premium.productFeeAmount = premium.productFeeFixAmount + premium.productFeeVarAmount;
281
283
 
282
284
  // fees for distribution owner + distributor commission
283
- premium.distributionFeeAndCommissionAmount = AmountLib.toAmount(
285
+ premium.distributionFeeAndCommissionAmount =
284
286
  premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
285
- + premium.commissionAmount);
287
+ + premium.commissionAmount;
286
288
 
287
289
  // net premium + fees for pool owner + bundle owner
288
- premium.poolPremiumAndFeeAmount = AmountLib.toAmount(
289
- premium.netPremiumAmount
290
+ premium.poolPremiumAndFeeAmount = premium.netPremiumAmount
290
291
  + premium.poolFeeFixAmount + premium.poolFeeVarAmount
291
- + premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
292
+ + premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
292
293
 
293
294
  premiumWithTargetWalletAmounts = premium;
294
295
  }
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {PricingService} from "./PricingService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract PricingServiceManager is ProxyManager {
12
9
 
@@ -1,21 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
4
  import {Amount, AmountLib} from "../type/Amount.sol";
7
5
  import {ClaimId} from "../type/ClaimId.sol";
8
6
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
7
  import {Fee, FeeLib} from "../type/Fee.sol";
10
8
  import {IRisk} from "../instance/module/IRisk.sol";
11
9
  import {IApplicationService} from "./IApplicationService.sol";
10
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
12
11
  import {IComponentService} from "../shared/IComponentService.sol";
13
12
  import {IPolicyService} from "./IPolicyService.sol";
14
13
  import {IProductService} from "./IProductService.sol";
15
14
  import {IClaimService} from "./IClaimService.sol";
16
15
  import {IPricingService} from "./IPricingService.sol";
17
16
  import {IProductComponent} from "./IProductComponent.sol";
18
- import {NftId, NftIdLib} from "../type/NftId.sol";
17
+ import {NftId} from "../type/NftId.sol";
19
18
  import {PayoutId} from "../type/PayoutId.sol";
20
19
  import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
21
20
  import {ReferralId} from "../type/Referral.sol";
@@ -24,9 +23,6 @@ import {Seconds} from "../type/Seconds.sol";
24
23
  import {StateId} from "../type/StateId.sol";
25
24
  import {Timestamp} from "../type/Timestamp.sol";
26
25
 
27
- import {TokenHandler} from "../shared/TokenHandler.sol";
28
-
29
- import {InstanceReader} from "../instance/InstanceReader.sol";
30
26
  import {IPolicy} from "../instance/module/IPolicy.sol";
31
27
  import {IComponents} from "../instance/module/IComponents.sol";
32
28
  import {Pool} from "../pool/Pool.sol";
@@ -52,9 +48,92 @@ abstract contract Product is
52
48
  Distribution _distribution;
53
49
  }
54
50
 
55
- function initializeProduct(
51
+
52
+ function calculatePremium(
53
+ Amount sumInsuredAmount,
54
+ RiskId riskId,
55
+ Seconds lifetime,
56
+ bytes memory applicationData,
57
+ NftId bundleNftId,
58
+ ReferralId referralId
59
+ )
60
+ public
61
+ view
62
+ override
63
+ returns (Amount premiumAmount)
64
+ {
65
+ IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
66
+ getNftId(),
67
+ riskId,
68
+ sumInsuredAmount,
69
+ lifetime,
70
+ applicationData,
71
+ bundleNftId,
72
+ referralId
73
+ );
74
+
75
+ return premium.premiumAmount;
76
+ }
77
+
78
+ function calculateNetPremium(
79
+ Amount sumInsuredAmount,
80
+ RiskId,
81
+ Seconds,
82
+ bytes memory
83
+ )
84
+ external
85
+ view
86
+ virtual override
87
+ returns (Amount netPremiumAmount)
88
+ {
89
+ // default 10% of sum insured
90
+ return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
91
+ }
92
+
93
+
94
+ function register()
95
+ external
96
+ virtual
97
+ onlyOwner()
98
+ {
99
+ _getProductStorage()._componentService.registerProduct();
100
+ _approveTokenHandler(type(uint256).max);
101
+ }
102
+
103
+
104
+ function getInitialProductInfo()
105
+ public
106
+ virtual
107
+ view
108
+ returns (IComponents.ProductInfo memory poolInfo)
109
+ {
110
+ ProductStorage storage $ = _getProductStorage();
111
+
112
+ return IComponents.ProductInfo({
113
+ distributionNftId: $._distributionNftId,
114
+ poolNftId: $._poolNftId,
115
+ productFee: FeeLib.zero(),
116
+ processingFee: FeeLib.zero(),
117
+ distributionFee: FeeLib.zero(),
118
+ minDistributionOwnerFee: FeeLib.zero(),
119
+ poolFee: FeeLib.zero(),
120
+ stakingFee: FeeLib.zero(),
121
+ performanceFee: FeeLib.zero()
122
+ });
123
+ }
124
+
125
+ function getPoolNftId() external view override returns (NftId poolNftId) {
126
+ return getRegistry().getNftId(address(_getProductStorage()._pool));
127
+ }
128
+
129
+ function getDistributionNftId() external view override returns (NftId distributionNftId) {
130
+ return getRegistry().getNftId(address(_getProductStorage()._distribution));
131
+ }
132
+
133
+ function _initializeProduct(
56
134
  address registry,
57
135
  NftId instanceNftId,
136
+ IAuthorization authorization,
58
137
  address initialOwner,
59
138
  string memory name,
60
139
  address token,
@@ -64,11 +143,21 @@ abstract contract Product is
64
143
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
144
  bytes memory componentData // writeonly data that will saved in the object info record of the registry
66
145
  )
67
- public
146
+ internal
68
147
  virtual
69
148
  onlyInitializing()
70
149
  {
71
- initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
150
+ _initializeInstanceLinkedComponent(
151
+ registry,
152
+ instanceNftId,
153
+ name,
154
+ token,
155
+ PRODUCT(),
156
+ authorization,
157
+ isInterceptor,
158
+ initialOwner,
159
+ registryData,
160
+ componentData);
72
161
 
73
162
  ProductStorage storage $ = _getProductStorage();
74
163
  // TODO add validation
@@ -88,27 +177,17 @@ abstract contract Product is
88
177
  }
89
178
 
90
179
 
91
- function register()
92
- external
93
- virtual
94
- onlyOwner()
95
- {
96
- _getProductStorage()._componentService.registerProduct();
97
- }
98
-
99
-
100
- function setFees(
180
+ function _setFees(
101
181
  Fee memory productFee,
102
182
  Fee memory processingFee
103
183
  )
104
- external
105
- onlyOwner
106
- restricted()
107
- override
184
+ internal
185
+ virtual
108
186
  {
109
187
  _getProductStorage()._componentService.setProductFees(productFee, processingFee);
110
188
  }
111
189
 
190
+
112
191
  function _createRisk(
113
192
  RiskId id,
114
193
  bytes memory data
@@ -139,14 +218,17 @@ abstract contract Product is
139
218
  );
140
219
  }
141
220
 
221
+
142
222
  function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
143
223
  return getInstance().getInstanceReader().getRiskInfo(id);
144
224
  }
145
225
 
226
+
146
227
  function _createApplication(
147
228
  address applicationOwner,
148
229
  RiskId riskId,
149
230
  Amount sumInsuredAmount,
231
+ Amount premiumAmount,
150
232
  Seconds lifetime,
151
233
  NftId bundleNftId,
152
234
  ReferralId referralId,
@@ -159,6 +241,7 @@ abstract contract Product is
159
241
  applicationOwner,
160
242
  riskId,
161
243
  sumInsuredAmount,
244
+ premiumAmount,
162
245
  lifetime,
163
246
  bundleNftId,
164
247
  referralId,
@@ -166,19 +249,36 @@ abstract contract Product is
166
249
  );
167
250
  }
168
251
 
169
- function _collateralize(
170
- NftId policyNftId,
171
- bool requirePremiumPayment,
252
+ function _createPolicy(
253
+ NftId applicationNftId,
172
254
  Timestamp activateAt
173
255
  )
174
256
  internal
175
257
  {
176
- _getProductStorage()._policyService.collateralize(
177
- policyNftId,
178
- requirePremiumPayment,
258
+ _getProductStorage()._policyService.createPolicy(
259
+ applicationNftId,
179
260
  activateAt);
180
261
  }
181
262
 
263
+ function _decline(
264
+ NftId policyNftId
265
+ )
266
+ internal
267
+ {
268
+ _getProductStorage()._policyService.decline(
269
+ policyNftId);
270
+ }
271
+
272
+ function _expire(
273
+ NftId policyNftId,
274
+ Timestamp expireAt
275
+ )
276
+ internal
277
+ returns (Timestamp expiredAt)
278
+ {
279
+ expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
280
+ }
281
+
182
282
  function _collectPremium(
183
283
  NftId policyNftId,
184
284
  Timestamp activateAt
@@ -290,77 +390,6 @@ abstract contract Product is
290
390
  payoutId);
291
391
  }
292
392
 
293
- function calculatePremium(
294
- Amount sumInsuredAmount,
295
- RiskId riskId,
296
- Seconds lifetime,
297
- bytes memory applicationData,
298
- NftId bundleNftId,
299
- ReferralId referralId
300
- )
301
- external
302
- view
303
- override
304
- returns (Amount premiumAmount)
305
- {
306
- IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
307
- getNftId(),
308
- riskId,
309
- sumInsuredAmount,
310
- lifetime,
311
- applicationData,
312
- bundleNftId,
313
- referralId
314
- );
315
-
316
- return AmountLib.toAmount(premium.premiumAmount);
317
- }
318
-
319
- function calculateNetPremium(
320
- Amount sumInsuredAmount,
321
- RiskId riskId,
322
- Seconds lifetime,
323
- bytes memory applicationData
324
- )
325
- external
326
- view
327
- virtual override
328
- returns (Amount netPremiumAmount)
329
- {
330
- // default 10% of sum insured
331
- return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
332
- }
333
-
334
-
335
- function getInitialProductInfo()
336
- public
337
- virtual
338
- view
339
- returns (IComponents.ProductInfo memory poolInfo)
340
- {
341
- ProductStorage storage $ = _getProductStorage();
342
-
343
- return IComponents.ProductInfo({
344
- distributionNftId: $._distributionNftId,
345
- poolNftId: $._poolNftId,
346
- productFee: FeeLib.zero(),
347
- processingFee: FeeLib.zero(),
348
- distributionFee: FeeLib.zero(),
349
- minDistributionOwnerFee: FeeLib.zero(),
350
- poolFee: FeeLib.zero(),
351
- stakingFee: FeeLib.zero(),
352
- performanceFee: FeeLib.zero()
353
- });
354
- }
355
-
356
- function getPoolNftId() external view override returns (NftId poolNftId) {
357
- return getRegistry().getNftId(address(_getProductStorage()._pool));
358
- }
359
-
360
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
361
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
362
- }
363
-
364
393
  function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
365
394
  return RiskIdLib.toRiskId(riskName);
366
395
  }
@@ -1,45 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IProductComponent} from "./IProductComponent.sol";
6
- import {Product} from "./Product.sol";
7
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
9
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
10
4
  import {IInstance} from "../instance/IInstance.sol";
11
- import {IPolicy} from "../instance/module/IPolicy.sol";
12
- import {IRisk} from "../instance/module/IRisk.sol";
13
- import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IInstanceService} from "../instance/IInstanceService.sol";
6
+ import {IPoolService} from "../pool/PoolService.sol";
14
7
  import {IProductService} from "./IProductService.sol";
15
- import {IComponents} from "../instance/module/IComponents.sol";
16
-
17
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
-
19
- import {IVersionable} from "../shared/IVersionable.sol";
20
- import {Versionable} from "../shared/Versionable.sol";
8
+ import {IRegistryService} from "../registry/IRegistryService.sol";
9
+ import {IRisk} from "../instance/module/IRisk.sol";
21
10
 
22
- import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
23
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
24
- import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
11
+ import {InstanceReader} from "../instance/InstanceReader.sol";
25
12
  import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
26
- import {APPLIED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
27
- import {NftId, NftIdLib} from "../type/NftId.sol";
28
- import {Fee, FeeLib} from "../type/Fee.sol";
29
- import {ReferralId} from "../type/Referral.sol";
13
+ import {KEEP_STATE} from "../type/StateId.sol";
14
+ import {NftId} from "../type/NftId.sol";
30
15
  import {RiskId} from "../type/RiskId.sol";
31
16
  import {StateId} from "../type/StateId.sol";
32
- import {Version, VersionLib} from "../type/Version.sol";
33
- import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
34
-
35
- import {IService} from "../shared/IService.sol";
36
- import {Service} from "../shared/Service.sol";
37
17
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
38
- import {IInstanceService} from "../instance/IInstanceService.sol";
39
- import {IProductService} from "./IProductService.sol";
40
- import {IRegistryService} from "../registry/IRegistryService.sol";
41
- import {InstanceReader} from "../instance/InstanceReader.sol";
42
- import {IPoolService} from "../pool/PoolService.sol";
43
18
 
44
19
  contract ProductService is
45
20
  ComponentVerifyingService,
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ProductService} from "./ProductService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {VersionLib} from "../type/Version.sol";
10
7
 
11
8
  contract ProductServiceManager is ProxyManager {
12
9