@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e7a5428-226

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 (577) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +146 -607
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +767 -301
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +288 -118
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +152 -273
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +553 -77
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +595 -96
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +497 -75
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +617 -250
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1789 -713
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +509 -220
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +204 -96
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1109 -817
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +873 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1242 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +582 -235
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +278 -96
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +398 -49
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +151 -394
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +770 -365
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -682
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +940 -518
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +283 -97
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +382 -166
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +222 -92
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1159 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +502 -230
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +251 -113
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +320 -9
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +369 -18
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +436 -101
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +202 -80
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +291 -264
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +295 -150
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +564 -292
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +259 -97
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +262 -299
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +220 -122
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +322 -596
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +454 -42
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +275 -193
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +806 -97
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +320 -312
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +206 -94
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +257 -147
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Component.sol/Component.json +92 -277
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +632 -542
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +241 -115
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +99 -94
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +549 -228
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +138 -130
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +51 -19
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +131 -366
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +61 -104
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -55
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -98
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1388 -635
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +705 -103
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +1703 -957
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +274 -92
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +544 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +751 -212
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +215 -85
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2637 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +657 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +122 -5
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +81 -17
  302. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +153 -4
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +167 -2
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  356. package/contracts/accounting/AccountingService.sol +274 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +47 -0
  359. package/contracts/authorization/AccessAdmin.sol +780 -0
  360. package/contracts/authorization/AccessAdminLib.sol +396 -0
  361. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  362. package/contracts/authorization/Authorization.sol +169 -0
  363. package/contracts/authorization/IAccess.sol +67 -0
  364. package/contracts/authorization/IAccessAdmin.sol +144 -0
  365. package/contracts/authorization/IAuthorization.sol +26 -0
  366. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  367. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  368. package/contracts/distribution/BasicDistribution.sol +141 -0
  369. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  370. package/contracts/distribution/Distribution.sol +126 -142
  371. package/contracts/distribution/DistributionService.sol +288 -137
  372. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  373. package/contracts/distribution/IDistributionComponent.sol +22 -43
  374. package/contracts/distribution/IDistributionService.sol +61 -27
  375. package/contracts/examples/fire/DamageLevel.sol +59 -0
  376. package/contracts/examples/fire/FirePool.sol +86 -0
  377. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  378. package/contracts/examples/fire/FireProduct.sol +433 -0
  379. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  380. package/contracts/examples/fire/FireUSD.sol +26 -0
  381. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  382. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  384. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  385. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  387. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  388. package/contracts/instance/BundleSet.sol +130 -0
  389. package/contracts/instance/IInstance.sol +117 -49
  390. package/contracts/instance/IInstanceService.sol +80 -46
  391. package/contracts/instance/Instance.sol +252 -133
  392. package/contracts/instance/InstanceAdmin.sol +383 -0
  393. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  394. package/contracts/instance/InstanceReader.sol +499 -233
  395. package/contracts/instance/InstanceService.sol +370 -218
  396. package/contracts/instance/InstanceServiceManager.sol +14 -29
  397. package/contracts/instance/InstanceStore.sol +94 -55
  398. package/contracts/instance/RiskSet.sol +126 -0
  399. package/contracts/instance/base/BalanceStore.sol +16 -13
  400. package/contracts/instance/base/Cloneable.sol +2 -25
  401. package/contracts/instance/base/ObjectCounter.sol +20 -0
  402. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  403. package/contracts/instance/base/ObjectSet.sol +77 -0
  404. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  405. package/contracts/instance/module/IBundle.sol +6 -5
  406. package/contracts/instance/module/IComponents.sol +30 -20
  407. package/contracts/instance/module/IDistribution.sol +21 -9
  408. package/contracts/instance/module/IPolicy.sol +50 -29
  409. package/contracts/instance/module/IRisk.sol +5 -0
  410. package/contracts/mock/Dip.sol +26 -0
  411. package/contracts/oracle/BasicOracle.sol +45 -0
  412. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  413. package/contracts/oracle/IOracle.sol +41 -0
  414. package/contracts/oracle/IOracleComponent.sol +33 -0
  415. package/contracts/oracle/IOracleService.sol +66 -0
  416. package/contracts/oracle/Oracle.sol +154 -0
  417. package/contracts/oracle/OracleService.sol +310 -0
  418. package/contracts/oracle/OracleServiceManager.sol +39 -0
  419. package/contracts/pool/BasicPool.sol +162 -0
  420. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  421. package/contracts/pool/BundleService.sol +225 -152
  422. package/contracts/pool/BundleServiceManager.sol +13 -25
  423. package/contracts/pool/IBundleService.sol +44 -34
  424. package/contracts/pool/IPoolComponent.sol +20 -70
  425. package/contracts/pool/IPoolService.sol +99 -76
  426. package/contracts/pool/Pool.sol +198 -164
  427. package/contracts/pool/PoolLib.sol +341 -0
  428. package/contracts/pool/PoolService.sol +448 -255
  429. package/contracts/pool/PoolServiceManager.sol +12 -24
  430. package/contracts/product/ApplicationService.sol +160 -86
  431. package/contracts/product/ApplicationServiceManager.sol +12 -9
  432. package/contracts/product/BasicProduct.sol +49 -0
  433. package/contracts/product/BasicProductAuthorization.sol +63 -0
  434. package/contracts/product/ClaimService.sol +389 -195
  435. package/contracts/product/ClaimServiceManager.sol +12 -9
  436. package/contracts/product/IApplicationService.sol +30 -4
  437. package/contracts/product/IClaimService.sol +52 -9
  438. package/contracts/product/IPolicyService.sol +62 -38
  439. package/contracts/product/IPricingService.sol +12 -11
  440. package/contracts/product/IProductComponent.sol +29 -9
  441. package/contracts/product/IRiskService.sol +48 -0
  442. package/contracts/product/PolicyService.sol +450 -276
  443. package/contracts/product/PolicyServiceLib.sol +139 -0
  444. package/contracts/product/PolicyServiceManager.sol +12 -27
  445. package/contracts/product/PricingService.sol +97 -91
  446. package/contracts/product/PricingServiceManager.sol +12 -24
  447. package/contracts/product/Product.sol +263 -147
  448. package/contracts/product/RiskService.sol +190 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +72 -39
  451. package/contracts/registry/IRegistry.sol +99 -38
  452. package/contracts/registry/IRegistryService.sol +26 -43
  453. package/contracts/registry/IRelease.sol +29 -0
  454. package/contracts/registry/ITransferInterceptor.sol +1 -2
  455. package/contracts/registry/Registry.sol +439 -232
  456. package/contracts/registry/RegistryAdmin.sol +188 -0
  457. package/contracts/registry/RegistryAuthorization.sol +309 -0
  458. package/contracts/registry/RegistryService.sol +66 -152
  459. package/contracts/registry/RegistryServiceManager.sol +23 -30
  460. package/contracts/registry/ReleaseAdmin.sol +195 -0
  461. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  462. package/contracts/registry/ReleaseRegistry.sol +525 -0
  463. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  464. package/contracts/registry/TokenRegistry.sol +211 -81
  465. package/contracts/shared/Component.sol +71 -143
  466. package/contracts/shared/ComponentService.sol +460 -369
  467. package/contracts/shared/ComponentServiceManager.sol +10 -7
  468. package/contracts/shared/ContractLib.sol +312 -0
  469. package/contracts/shared/IComponent.sol +7 -23
  470. package/contracts/shared/IComponentService.sol +51 -31
  471. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  472. package/contracts/shared/IKeyValueStore.sol +3 -2
  473. package/contracts/shared/ILifecycle.sol +3 -2
  474. package/contracts/shared/INftOwnable.sol +5 -1
  475. package/contracts/shared/IPolicyHolder.sol +12 -17
  476. package/contracts/shared/IRegisterable.sol +22 -1
  477. package/contracts/shared/IService.sol +11 -6
  478. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  479. package/contracts/shared/InstanceLinkedComponent.sol +95 -46
  480. package/contracts/shared/KeyValueStore.sol +32 -70
  481. package/contracts/shared/Lifecycle.sol +30 -63
  482. package/contracts/shared/NftIdSet.sol +65 -0
  483. package/contracts/shared/NftOwnable.sol +35 -24
  484. package/contracts/shared/PolicyHolder.sol +19 -50
  485. package/contracts/shared/Registerable.sol +52 -21
  486. package/contracts/shared/RegistryLinked.sol +9 -14
  487. package/contracts/shared/Service.sol +32 -42
  488. package/contracts/shared/TokenHandler.sol +310 -26
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +229 -42
  491. package/contracts/staking/IStakingService.sol +98 -76
  492. package/contracts/staking/Staking.sol +633 -99
  493. package/contracts/staking/StakingLib.sol +195 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +25 -20
  496. package/contracts/staking/StakingReader.sol +151 -0
  497. package/contracts/staking/StakingService.sol +174 -53
  498. package/contracts/staking/StakingServiceManager.sol +13 -8
  499. package/contracts/staking/StakingStore.sol +973 -0
  500. package/contracts/staking/TargetManagerLib.sol +211 -0
  501. package/contracts/type/AddressSet.sol +1 -1
  502. package/contracts/type/Amount.sol +43 -3
  503. package/contracts/type/Blocknumber.sol +34 -16
  504. package/contracts/type/ChainId.sol +101 -0
  505. package/contracts/type/ClaimId.sol +6 -1
  506. package/contracts/type/Fee.sol +9 -9
  507. package/contracts/type/Key32.sol +2 -2
  508. package/contracts/type/Key32Set.sol +62 -0
  509. package/contracts/type/NftId.sol +16 -4
  510. package/contracts/type/NftIdSet.sol +1 -1
  511. package/contracts/type/ObjectType.sol +204 -62
  512. package/contracts/type/PayoutId.sol +10 -10
  513. package/contracts/type/Referral.sol +2 -1
  514. package/contracts/type/RequestId.sol +75 -0
  515. package/contracts/type/RiskId.sol +39 -7
  516. package/contracts/type/RoleId.sol +122 -80
  517. package/contracts/type/Seconds.sol +62 -1
  518. package/contracts/type/Selector.sol +107 -0
  519. package/contracts/type/StateId.sol +41 -2
  520. package/contracts/type/String.sol +65 -0
  521. package/contracts/type/Timestamp.sol +20 -9
  522. package/contracts/type/UFixed.sol +62 -125
  523. package/contracts/type/Version.sol +58 -7
  524. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  525. package/contracts/{shared → upgradeability}/ProxyManager.sol +115 -38
  526. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  527. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  528. package/package.json +12 -8
  529. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  531. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  533. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
  535. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  537. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  539. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  540. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -381
  541. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  542. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
  543. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -636
  545. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  546. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
  547. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  548. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -688
  549. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  550. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  551. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  552. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  553. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  556. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  563. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  564. package/contracts/instance/BundleManager.sol +0 -126
  565. package/contracts/instance/InstanceAccessManager.sol +0 -543
  566. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
  567. package/contracts/instance/base/ObjectManager.sol +0 -82
  568. package/contracts/instance/module/IAccess.sol +0 -54
  569. package/contracts/product/IProductService.sol +0 -33
  570. package/contracts/product/ProductService.sol +0 -122
  571. package/contracts/product/ProductServiceManager.sol +0 -54
  572. package/contracts/registry/RegistryAccessManager.sol +0 -213
  573. package/contracts/registry/ReleaseManager.sol +0 -375
  574. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  575. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  576. package/contracts/shared/ComponentVerifyingService.sol +0 -111
  577. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -0,0 +1,139 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {InstanceReader} from "../instance/InstanceReader.sol";
5
+ import {IPolicy} from "../instance/module/IPolicy.sol";
6
+ import {IPolicyService} from "../product/IPolicyService.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {StateId, CLOSED, COLLATERALIZED} from "../type/StateId.sol";
9
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
10
+
11
+ library PolicyServiceLib {
12
+
13
+ function policyIsActive(InstanceReader instanceReader, NftId policyNftId)
14
+ external
15
+ view
16
+ returns (bool isActive)
17
+ {
18
+ // policy not collateralized
19
+ if (instanceReader.getPolicyState(policyNftId) != COLLATERALIZED()) {
20
+ return false;
21
+ }
22
+
23
+ IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
24
+
25
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
26
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
27
+ if (info.activatedAt > TimestampLib.current()) { return false; } // not yet active
28
+ if (info.expiredAt <= TimestampLib.current()) { return false; } // already expired
29
+
30
+ return true;
31
+ }
32
+
33
+ function activate(
34
+ NftId policyNftId,
35
+ IPolicy.PolicyInfo memory policyInfo,
36
+ Timestamp activateAt
37
+ )
38
+ external
39
+ pure
40
+ returns (IPolicy.PolicyInfo memory)
41
+ {
42
+ // fail if policy has already been activated and activateAt is different
43
+ if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
44
+ revert IPolicyService.ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
45
+ }
46
+
47
+ // ignore if policy has already been activated and activateAt is the same
48
+ if (policyInfo.activatedAt == activateAt) {
49
+ return policyInfo;
50
+ }
51
+
52
+ policyInfo.activatedAt = activateAt;
53
+ policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
54
+
55
+ return policyInfo;
56
+ }
57
+
58
+ function expire(
59
+ InstanceReader instanceReader,
60
+ NftId policyNftId,
61
+ IPolicy.PolicyInfo memory policyInfo,
62
+ Timestamp expireAt
63
+ )
64
+ external
65
+ view
66
+ returns (IPolicy.PolicyInfo memory)
67
+ {
68
+ StateId policyState = instanceReader.getPolicyState(policyNftId);
69
+
70
+ checkExpiration(
71
+ expireAt,
72
+ policyNftId,
73
+ policyState,
74
+ policyInfo);
75
+
76
+ // effects
77
+ // update policyInfo with new expiredAt timestamp
78
+ if (expireAt.gtz()) {
79
+ policyInfo.expiredAt = expireAt;
80
+ } else {
81
+ policyInfo.expiredAt = TimestampLib.current();
82
+ }
83
+
84
+ return policyInfo;
85
+ }
86
+
87
+ function checkExpiration(
88
+ Timestamp newExpiredAt,
89
+ NftId policyNftId,
90
+ StateId policyState,
91
+ IPolicy.PolicyInfo memory policyInfo
92
+ )
93
+ public
94
+ view
95
+ {
96
+ if (policyState != COLLATERALIZED()) {
97
+ revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
98
+ }
99
+ if (TimestampLib.current() < policyInfo.activatedAt) {
100
+ revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
101
+ }
102
+
103
+ // check expiredAt represents a valid expiry time
104
+ if (newExpiredAt >= policyInfo.expiredAt) {
105
+ revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
106
+ }
107
+
108
+ if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.current()) {
109
+ revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.current(), newExpiredAt);
110
+ }
111
+ }
112
+
113
+ function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
114
+ external
115
+ view
116
+ returns (bool isCloseable)
117
+ {
118
+ // policy already closed
119
+ if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
120
+ return false;
121
+ }
122
+
123
+ IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
124
+
125
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
126
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
127
+ if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
128
+
129
+ // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
130
+ if (info.claimAmount == info.sumInsuredAmount) { return true; }
131
+
132
+ // not closeable: not yet expired
133
+ if (TimestampLib.current() < info.expiredAt) { return false; }
134
+
135
+ // all conditions to close the policy are met
136
+ return true;
137
+ }
138
+
139
+ }
@@ -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 {PolicyService} from "./PolicyService.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 PolicyServiceManager is ProxyManager {
12
9
 
@@ -14,32 +11,20 @@ contract PolicyServiceManager is ProxyManager {
14
11
 
15
12
  /// @dev initializes proxy manager with product service implementation
16
13
  constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
20
18
  {
21
- PolicyService svc = new PolicyService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
19
+ PolicyService svc = new PolicyService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
24
23
  address(svc),
25
- data);
24
+ data,
25
+ salt);
26
26
 
27
27
  _policyService = PolicyService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- // _isDeployed = true;
43
28
  }
44
29
 
45
30
  //--- view functions ----------------------------------------------------//
@@ -1,41 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {Seconds} from "../type/Seconds.sol";
6
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
7
- import {ObjectType} from "../type/ObjectType.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {Fee} from "../type/Fee.sol";
10
- import {ReferralId} from "../type/Referral.sol";
11
- import {RiskId} from "../type/RiskId.sol";
12
- import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
13
- import {IRegistry} from "../registry/IRegistry.sol";
14
-
15
- import {IProductComponent} from "./IProductComponent.sol";
16
-
17
- import {IInstance} from "../instance/IInstance.sol";
18
- import {InstanceReader} from "../instance/InstanceReader.sol";
19
- import {IComponents} from "../instance/module/IComponents.sol";
20
- import {IPolicy} from "../instance/module/IPolicy.sol";
21
4
  import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
22
6
  import {IDistribution} from "../instance/module/IDistribution.sol";
23
-
24
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
25
-
26
- import {IPricingService} from "./IPricingService.sol";
27
7
  import {IDistributionService} from "../distribution/IDistributionService.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {IPolicy} from "../instance/module/IPolicy.sol";
10
+ import {IPricingService} from "./IPricingService.sol";
11
+ import {IProductComponent} from "./IProductComponent.sol";
12
+ import {IRegistry} from "../registry/IRegistry.sol";
13
+
14
+ import {Amount} from "../type/Amount.sol";
15
+ import {BUNDLE, DISTRIBUTION, PRICE, PRODUCT} from "../type/ObjectType.sol";
16
+ import {ContractLib} from "../shared/ContractLib.sol";
17
+ import {Fee} from "../type/Fee.sol";
18
+ import {InstanceReader} from "../instance/InstanceReader.sol";
19
+ import {NftId} from "../type/NftId.sol";
20
+ import {ObjectType} from "../type/ObjectType.sol";
21
+ import {ReferralId} from "../type/Referral.sol";
22
+ import {RiskId} from "../type/RiskId.sol";
23
+ import {Seconds} from "../type/Seconds.sol";
24
+ import {Service} from "../shared/Service.sol";
28
25
 
29
26
 
30
27
  contract PricingService is
31
- ComponentVerifyingService,
28
+ Service,
32
29
  IPricingService
33
30
  {
34
- using UFixedLib for UFixed;
35
-
36
31
  IDistributionService internal _distributionService;
37
32
 
38
-
39
33
  function _initialize(
40
34
  address owner,
41
35
  bytes memory data
@@ -44,20 +38,16 @@ contract PricingService is
44
38
  virtual override
45
39
  initializer()
46
40
  {
47
- // TODO check this, might no longer be the way, refactor if necessary
48
- address registryAddress;
49
- address initialOwner;
50
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
41
+ (
42
+ address authority,
43
+ address registry
44
+ ) = abi.decode(data, (address, address));
51
45
 
52
- initializeService(registryAddress, address(0), owner);
53
- registerInterface(type(IPricingService).interfaceId);
46
+ __Service_init(authority, registry, owner);
54
47
 
55
48
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
56
- }
57
-
58
49
 
59
- function getDomain() public pure override returns(ObjectType) {
60
- return PRICE();
50
+ _registerInterface(type(IPricingService).interfaceId);
61
51
  }
62
52
 
63
53
  /// @dev calculates the premium amount for the specified attributes
@@ -75,9 +65,12 @@ contract PricingService is
75
65
  view
76
66
  virtual override
77
67
  returns (
78
- IPolicy.Premium memory premium
68
+ IPolicy.PremiumInfo memory premium
79
69
  )
80
70
  {
71
+ _checkNftType(productNftId, PRODUCT());
72
+ _checkNftType(bundleNftId, BUNDLE());
73
+
81
74
  InstanceReader reader;
82
75
  Amount netPremiumAmount;
83
76
 
@@ -85,10 +78,16 @@ contract PricingService is
85
78
  // verify product
86
79
  (
87
80
  IRegistry.ObjectInfo memory registryInfo,
88
- IInstance instance
89
- ) = _getAndVerifyComponentInfo(productNftId, PRODUCT());
81
+ address instanceAddress
82
+ ) = ContractLib.getInfoAndInstance(getRegistry(), productNftId, false);
83
+
84
+ // get instance reader from local instance variable
85
+ reader = IInstance(instanceAddress).getInstanceReader();
90
86
 
91
- reader = instance.getInstanceReader();
87
+ NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
88
+ if (productNftId != riskProductNftId) {
89
+ revert ErrorPricingServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
90
+ }
92
91
 
93
92
  // calculate net premium
94
93
  netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
@@ -102,45 +101,49 @@ contract PricingService is
102
101
  {
103
102
  // get configurations for all involed objects
104
103
  IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
104
+ IComponents.FeeInfo memory feeInfo = reader.getFeeInfo(productNftId);
105
105
 
106
106
  IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
107
107
  if(bundleInfo.poolNftId != productInfo.poolNftId) {
108
- revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
108
+ revert ErrorPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
109
109
  }
110
110
 
111
- // calculate premium, order is important
111
+ // calculate fixed fees for product, pool, bundle
112
112
  premium = _getFixedFeeAmounts(
113
113
  netPremiumAmount,
114
- productInfo,
114
+ feeInfo,
115
115
  bundleInfo
116
116
  );
117
117
 
118
+ // calculate variable fees for product, pool, bundle
118
119
  premium = _calculateVariableFeeAmounts(
119
120
  premium,
120
- productInfo,
121
+ feeInfo,
121
122
  bundleInfo
122
123
  );
123
124
 
125
+ // calculate distribution fee and (if applicable) commission
124
126
  premium = _calculateDistributionOwnerFeeAmount(
125
127
  premium,
126
- productInfo,
128
+ feeInfo,
129
+ productInfo.distributionNftId,
127
130
  referralId,
128
131
  reader
129
132
  );
130
133
 
134
+ // calculate resulting amounts for product, pool, and distribution wallets
131
135
  premium = _calculateTargetWalletAmounts(premium);
132
136
 
133
137
  // sanity check to validate the fee calculation
134
- if(AmountLib.toAmount(premium.premiumAmount) !=
135
- premium.productFeeAmount
138
+ if(premium.premiumAmount != premium.productFeeAmount
136
139
  + premium.distributionFeeAndCommissionAmount
137
140
  + premium.poolPremiumAndFeeAmount)
138
141
  {
139
142
  revert ErrorPricingServiceTargetWalletAmountsMismatch();
140
143
  }
141
144
 
142
- if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
143
- revert ErrorIPricingServiceFeeCalculationMismatch(
145
+ if (premium.distributionOwnerFeeFixAmount < feeInfo.minDistributionOwnerFee.fixedFee) {
146
+ revert ErrorPricingServiceFeeCalculationMismatch(
144
147
  premium.distributionFeeFixAmount,
145
148
  premium.distributionFeeVarAmount,
146
149
  premium.distributionOwnerFeeFixAmount,
@@ -151,7 +154,7 @@ contract PricingService is
151
154
  }
152
155
 
153
156
  if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
154
- revert ErrorIPricingServiceFeeCalculationMismatch(
157
+ revert ErrorPricingServiceFeeCalculationMismatch(
155
158
  premium.distributionFeeFixAmount,
156
159
  premium.distributionFeeVarAmount,
157
160
  premium.distributionOwnerFeeFixAmount,
@@ -166,89 +169,90 @@ contract PricingService is
166
169
  // internal functions
167
170
  function _getFixedFeeAmounts(
168
171
  Amount netPremiumAmount,
169
- IComponents.ProductInfo memory productInfo,
172
+ IComponents.FeeInfo memory feeInfo,
170
173
  IBundle.BundleInfo memory bundleInfo
171
174
  )
172
175
  internal
173
- view
176
+ pure
174
177
  returns (
175
- IPolicy.Premium memory premium
178
+ IPolicy.PremiumInfo memory premium
176
179
  )
177
180
  {
178
181
  // initial premium amount is the net premium
179
- premium.netPremiumAmount = netPremiumAmount.toInt();
180
- premium.fullPremiumAmount = netPremiumAmount.toInt();
182
+ premium.netPremiumAmount = netPremiumAmount;
183
+ premium.fullPremiumAmount = netPremiumAmount;
181
184
 
182
- uint256 t = productInfo.productFee.fixedFee;
185
+ Amount t = feeInfo.productFee.fixedFee;
183
186
  premium.productFeeFixAmount = t;
184
- premium.fullPremiumAmount += t;
187
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
185
188
 
186
- t = productInfo.poolFee.fixedFee;
189
+ t = feeInfo.poolFee.fixedFee;
187
190
  premium.poolFeeFixAmount = t;
188
- premium.fullPremiumAmount += t;
191
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
189
192
 
190
193
  t = bundleInfo.fee.fixedFee;
191
194
  premium.bundleFeeFixAmount = t;
192
- premium.fullPremiumAmount += t;
195
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
193
196
 
194
- t = productInfo.distributionFee.fixedFee;
197
+ t = feeInfo.distributionFee.fixedFee;
195
198
  premium.distributionFeeFixAmount = t;
196
- premium.fullPremiumAmount += t;
199
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
197
200
  }
198
201
 
199
202
  function _calculateVariableFeeAmounts(
200
- IPolicy.Premium memory premium,
201
- IComponents.ProductInfo memory productInfo,
203
+ IPolicy.PremiumInfo memory premium,
204
+ IComponents.FeeInfo memory feeInfo,
202
205
  IBundle.BundleInfo memory bundleInfo
203
206
  )
204
207
  internal
205
- view
208
+ pure
206
209
  returns (
207
- IPolicy.Premium memory intermadiatePremium
210
+ IPolicy.PremiumInfo memory intermadiatePremium
208
211
  )
209
212
  {
210
- UFixed netPremiumAmount = UFixedLib.toUFixed(premium.netPremiumAmount);
213
+ Amount netPremiumAmount = premium.netPremiumAmount;
211
214
 
212
- uint256 t = (netPremiumAmount * productInfo.productFee.fractionalFee).toInt();
215
+ Amount t = netPremiumAmount.multiplyWith(feeInfo.productFee.fractionalFee);
213
216
  premium.productFeeVarAmount = t;
214
- premium.fullPremiumAmount += t;
217
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
215
218
 
216
- t = (netPremiumAmount * productInfo.poolFee.fractionalFee).toInt();
219
+ t = netPremiumAmount.multiplyWith(feeInfo.poolFee.fractionalFee);
217
220
  premium.poolFeeVarAmount = t;
218
- premium.fullPremiumAmount += t;
221
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
219
222
 
220
- t = (netPremiumAmount * bundleInfo.fee.fractionalFee).toInt();
223
+ t = netPremiumAmount.multiplyWith(bundleInfo.fee.fractionalFee);
221
224
  premium.bundleFeeVarAmount = t;
222
- premium.fullPremiumAmount += t;
225
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
223
226
 
224
- t = (netPremiumAmount * productInfo.distributionFee.fractionalFee).toInt();
227
+ t = netPremiumAmount.multiplyWith(feeInfo.distributionFee.fractionalFee);
225
228
  premium.distributionFeeVarAmount = t;
226
- premium.fullPremiumAmount += t;
229
+ premium.fullPremiumAmount = premium.fullPremiumAmount + t;
227
230
 
228
231
  return premium;
229
232
  }
230
233
 
231
234
  function _calculateDistributionOwnerFeeAmount(
232
- IPolicy.Premium memory premium,
233
- IComponents.ProductInfo memory productInfo,
235
+ IPolicy.PremiumInfo memory premium,
236
+ IComponents.FeeInfo memory feeInfo,
237
+ NftId distributionNftId,
234
238
  // ISetup.DistributionSetupInfo memory distInfo,
235
239
  ReferralId referralId,
236
240
  InstanceReader reader
237
241
  )
238
242
  internal
239
243
  view
240
- returns (IPolicy.Premium memory finalPremium)
244
+ returns (IPolicy.PremiumInfo memory finalPremium)
241
245
  {
242
246
 
243
247
  // if the referral is not valid, then the distribution owner gets everything
244
- if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
248
+ if (distributionNftId.eqz() || ! _distributionService.referralIsValid(distributionNftId, referralId)) {
245
249
  premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
246
250
  premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
247
251
  premium.premiumAmount = premium.fullPremiumAmount;
248
252
  return premium;
249
253
  }
250
254
 
251
- Fee memory minDistributionOwnerFee = productInfo.minDistributionOwnerFee;
255
+ Fee memory minDistributionOwnerFee = feeInfo.minDistributionOwnerFee;
252
256
 
253
257
  // if the referral is valid, the the commission and discount are calculated based in the full premium
254
258
  // the remaing amount goes to the distribution owner
@@ -257,9 +261,9 @@ contract PricingService is
257
261
  IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
258
262
  IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
259
263
 
260
- uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
264
+ Amount commissionAmount = premium.netPremiumAmount.multiplyWith(distributorTypeInfo.commissionPercentage);
261
265
  premium.commissionAmount = commissionAmount;
262
- premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
266
+ premium.discountAmount = premium.fullPremiumAmount.multiplyWith(referralInfo.discountPercentage);
263
267
  premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
264
268
  premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
265
269
  premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
@@ -270,31 +274,33 @@ contract PricingService is
270
274
 
271
275
 
272
276
  function _calculateTargetWalletAmounts(
273
- IPolicy.Premium memory premium
277
+ IPolicy.PremiumInfo memory premium
274
278
  )
275
279
  internal
276
280
  virtual
277
281
  view
278
282
  returns (
279
- IPolicy.Premium memory premiumWithTargetWalletAmounts
283
+ IPolicy.PremiumInfo memory premiumWithTargetWalletAmounts
280
284
  )
281
285
  {
282
286
  // fees for product owner
283
- premium.productFeeAmount = AmountLib.toAmount(
284
- premium.productFeeFixAmount + premium.productFeeVarAmount);
287
+ premium.productFeeAmount = premium.productFeeFixAmount + premium.productFeeVarAmount;
285
288
 
286
289
  // fees for distribution owner + distributor commission
287
- premium.distributionFeeAndCommissionAmount = AmountLib.toAmount(
290
+ premium.distributionFeeAndCommissionAmount =
288
291
  premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
289
- + premium.commissionAmount);
292
+ + premium.commissionAmount;
290
293
 
291
294
  // net premium + fees for pool owner + bundle owner
292
- premium.poolPremiumAndFeeAmount = AmountLib.toAmount(
293
- premium.netPremiumAmount
295
+ premium.poolPremiumAndFeeAmount = premium.netPremiumAmount
294
296
  + premium.poolFeeFixAmount + premium.poolFeeVarAmount
295
- + premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
297
+ + premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
296
298
 
297
299
  premiumWithTargetWalletAmounts = premium;
298
300
  }
299
301
 
302
+
303
+ function _getDomain() internal pure override returns(ObjectType) {
304
+ return PRICE();
305
+ }
300
306
  }
@@ -1,42 +1,30 @@
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
 
13
10
  PricingService private _pricingService;
14
11
 
15
- /// @dev initializes proxy manager with distribution service implementation and deploys instance
12
+ /// @dev initializes proxy manager with pricing service implementation and deploys instance
16
13
  constructor(
17
- address registryAddress
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
18
17
  )
19
- ProxyManager(registryAddress)
20
18
  {
21
- PricingService pricingSrv = new PricingService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
19
+ PricingService pricingSrv = new PricingService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
24
23
  address(pricingSrv),
25
- data);
24
+ data,
25
+ salt);
26
26
 
27
27
  _pricingService = PricingService(address(versionable));
28
-
29
- // TODO `thi` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_distributionService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_distributionService));
40
28
  }
41
29
 
42
30
  //--- view functions ----------------------------------------------------//