@etherisc/gif-next 0.0.2-9b7f7f5-445 → 0.0.2-9badda4-428

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