@etherisc/gif-next 0.0.2-7e8dbef-751 → 0.0.2-7edde36-170

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