@etherisc/gif-next 0.0.2-a66c9a8-623 → 0.0.2-a6a9eeb-432

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