@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd2113c-488

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 (617) hide show
  1. package/README.md +10 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +373 -368
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +61 -116
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +239 -1554
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +373 -190
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -2524
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +661 -341
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +558 -362
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +389 -104
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +294 -304
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +273 -285
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +211 -230
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +251 -297
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -215
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +358 -312
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +126 -167
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +865 -216
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +203 -21
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +360 -218
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  120. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +440 -36
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -254
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -95
  130. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +769 -98
  132. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  138. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  140. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  142. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  151. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +330 -283
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +178 -242
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  160. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  166. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +213 -230
  168. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  171. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +210 -161
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  174. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  176. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  180. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  183. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.json +84 -154
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  188. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  196. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  202. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  208. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Service.sol/Service.json +188 -157
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  212. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  214. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  274. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  282. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  286. package/contracts/distribution/Distribution.sol +261 -0
  287. package/contracts/distribution/DistributionService.sol +297 -0
  288. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  289. package/contracts/distribution/IDistributionComponent.sol +66 -0
  290. package/contracts/distribution/IDistributionService.sol +81 -0
  291. package/contracts/instance/BundleManager.sol +15 -14
  292. package/contracts/instance/IInstance.sol +61 -46
  293. package/contracts/instance/IInstanceService.sol +76 -20
  294. package/contracts/instance/Instance.sol +176 -182
  295. package/contracts/instance/InstanceAdmin.sol +331 -0
  296. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  297. package/contracts/instance/InstanceReader.sol +159 -60
  298. package/contracts/instance/InstanceService.sol +313 -306
  299. package/contracts/instance/InstanceServiceManager.sol +12 -22
  300. package/contracts/instance/InstanceStore.sol +269 -0
  301. package/contracts/instance/base/BalanceStore.sol +123 -0
  302. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  303. package/contracts/instance/base/ObjectCounter.sol +21 -0
  304. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -16
  305. package/contracts/instance/module/IAccess.sol +19 -21
  306. package/contracts/instance/module/IBundle.sol +8 -8
  307. package/contracts/instance/module/IComponents.sol +52 -0
  308. package/contracts/instance/module/IDistribution.sol +7 -4
  309. package/contracts/instance/module/IPolicy.sol +56 -17
  310. package/contracts/instance/module/IRisk.sol +1 -1
  311. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  312. package/contracts/oracle/IOracle.sol +20 -0
  313. package/contracts/oracle/IOracleComponent.sol +32 -0
  314. package/contracts/oracle/IOracleService.sol +65 -0
  315. package/contracts/oracle/Oracle.sol +145 -0
  316. package/contracts/oracle/OracleService.sol +278 -0
  317. package/contracts/oracle/OracleServiceManager.sol +42 -0
  318. package/contracts/pool/BundleService.sol +296 -0
  319. package/contracts/pool/BundleServiceManager.sol +42 -0
  320. package/contracts/pool/IBundleService.sol +106 -0
  321. package/contracts/pool/IPoolComponent.sol +112 -0
  322. package/contracts/pool/IPoolService.sol +150 -0
  323. package/contracts/pool/Pool.sol +299 -0
  324. package/contracts/pool/PoolService.sol +452 -0
  325. package/contracts/pool/PoolServiceManager.sol +42 -0
  326. package/contracts/product/ApplicationService.sol +254 -0
  327. package/contracts/product/ApplicationServiceManager.sol +38 -0
  328. package/contracts/product/ClaimService.sol +442 -0
  329. package/contracts/product/ClaimServiceManager.sol +38 -0
  330. package/contracts/product/IApplicationService.sol +62 -0
  331. package/contracts/product/IClaimService.sol +99 -0
  332. package/contracts/product/IPolicyService.sol +78 -0
  333. package/contracts/product/IPricingService.sol +39 -0
  334. package/contracts/product/IProductComponent.sol +42 -0
  335. package/contracts/product/IProductService.sol +33 -0
  336. package/contracts/product/PolicyService.sol +475 -0
  337. package/contracts/product/PolicyServiceManager.sol +42 -0
  338. package/contracts/product/PricingService.sol +300 -0
  339. package/contracts/product/PricingServiceManager.sol +42 -0
  340. package/contracts/product/Product.sol +377 -0
  341. package/contracts/product/ProductService.sol +124 -0
  342. package/contracts/product/ProductServiceManager.sol +42 -0
  343. package/contracts/registry/ChainNft.sol +16 -1
  344. package/contracts/registry/IRegistry.sol +47 -21
  345. package/contracts/registry/IRegistryService.sol +42 -38
  346. package/contracts/registry/IServiceAuthorization.sol +35 -0
  347. package/contracts/registry/ITransferInterceptor.sol +1 -0
  348. package/contracts/registry/Registry.sol +227 -97
  349. package/contracts/registry/RegistryAdmin.sol +333 -0
  350. package/contracts/registry/RegistryService.sol +108 -104
  351. package/contracts/registry/RegistryServiceManager.sol +22 -31
  352. package/contracts/registry/ReleaseManager.sol +398 -203
  353. package/contracts/registry/ServiceAuthorization.sol +86 -0
  354. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  355. package/contracts/registry/TokenRegistry.sol +263 -60
  356. package/contracts/shared/AccessAdmin.sol +759 -0
  357. package/contracts/shared/AccessManagerCustom.sol +741 -0
  358. package/contracts/shared/AccessManagerExtended.sol +481 -0
  359. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  360. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  361. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  362. package/contracts/shared/Component.sol +281 -0
  363. package/contracts/shared/ComponentService.sol +617 -0
  364. package/contracts/shared/ComponentServiceManager.sol +35 -0
  365. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  366. package/contracts/shared/ERC165.sol +15 -13
  367. package/contracts/shared/IAccessAdmin.sol +168 -0
  368. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  369. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  370. package/contracts/shared/IComponent.sol +70 -0
  371. package/contracts/shared/IComponentService.sol +102 -0
  372. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  373. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  374. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  375. package/contracts/shared/INftOwnable.sol +13 -12
  376. package/contracts/shared/IPolicyHolder.sol +45 -0
  377. package/contracts/shared/IRegisterable.sol +3 -3
  378. package/contracts/shared/IRegistryLinked.sol +11 -0
  379. package/contracts/shared/IService.sol +14 -5
  380. package/contracts/shared/IVersionable.sol +5 -48
  381. package/contracts/shared/InitializableCustom.sol +177 -0
  382. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  383. package/contracts/shared/KeyValueStore.sol +127 -0
  384. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  385. package/contracts/shared/NftIdSetManager.sol +65 -0
  386. package/contracts/shared/NftOwnable.sol +59 -91
  387. package/contracts/shared/PolicyHolder.sol +102 -0
  388. package/contracts/shared/ProxyManager.sol +131 -26
  389. package/contracts/shared/Registerable.sol +19 -30
  390. package/contracts/shared/RegistryLinked.sol +43 -0
  391. package/contracts/shared/Service.sol +54 -31
  392. package/contracts/shared/TokenHandler.sol +37 -6
  393. package/contracts/shared/Versionable.sol +4 -92
  394. package/contracts/staking/IStaking.sol +168 -0
  395. package/contracts/staking/IStakingService.sol +153 -0
  396. package/contracts/staking/StakeManagerLib.sol +231 -0
  397. package/contracts/staking/Staking.sol +513 -0
  398. package/contracts/staking/StakingManager.sol +54 -0
  399. package/contracts/staking/StakingReader.sol +187 -0
  400. package/contracts/staking/StakingService.sol +411 -0
  401. package/contracts/staking/StakingServiceManager.sol +44 -0
  402. package/contracts/staking/StakingStore.sol +613 -0
  403. package/contracts/staking/TargetManagerLib.sol +207 -0
  404. package/contracts/{types → type}/AddressSet.sol +1 -1
  405. package/contracts/type/Amount.sol +128 -0
  406. package/contracts/{types → type}/Blocknumber.sol +21 -3
  407. package/contracts/type/ClaimId.sol +75 -0
  408. package/contracts/{types → type}/DistributorType.sol +2 -2
  409. package/contracts/{types → type}/Fee.sol +33 -23
  410. package/contracts/{types → type}/NftId.sol +21 -15
  411. package/contracts/{types → type}/NftIdSet.sol +2 -2
  412. package/contracts/type/ObjectType.sol +241 -0
  413. package/contracts/type/PayoutId.sol +82 -0
  414. package/contracts/{types → type}/Referral.sol +5 -1
  415. package/contracts/type/RequestId.sol +75 -0
  416. package/contracts/{types → type}/RiskId.sol +1 -1
  417. package/contracts/type/RoleId.sol +201 -0
  418. package/contracts/type/Seconds.sol +81 -0
  419. package/contracts/type/Selector.sol +102 -0
  420. package/contracts/{types → type}/StateId.sol +34 -4
  421. package/contracts/type/String.sol +53 -0
  422. package/contracts/{types → type}/Timestamp.sol +23 -14
  423. package/contracts/{types → type}/UFixed.sol +1 -0
  424. package/contracts/{types → type}/Version.sol +2 -1
  425. package/package.json +5 -5
  426. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  427. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  428. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  429. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  430. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  432. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  434. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  437. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  439. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  441. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  443. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  445. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  447. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  449. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  451. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  453. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  455. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  458. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  460. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  462. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  464. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  466. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  468. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  470. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  472. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  474. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  475. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  477. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  478. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  479. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  481. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  482. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  483. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  484. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  485. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  486. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  487. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  490. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  492. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  494. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  496. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  503. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  505. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  507. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  509. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  511. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  513. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  514. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  515. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  516. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  517. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  519. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  521. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  523. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  525. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  527. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  529. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  531. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  532. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  533. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  534. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  536. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  538. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  541. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  544. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  549. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  551. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  554. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  557. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  561. package/contracts/components/Component.sol +0 -216
  562. package/contracts/components/Distribution.sol +0 -150
  563. package/contracts/components/IComponent.sol +0 -43
  564. package/contracts/components/IDistributionComponent.sol +0 -47
  565. package/contracts/components/IPoolComponent.sol +0 -60
  566. package/contracts/components/IProductComponent.sol +0 -39
  567. package/contracts/components/Pool.sol +0 -227
  568. package/contracts/components/Product.sol +0 -265
  569. package/contracts/experiment/cloning/Cloner.sol +0 -47
  570. package/contracts/experiment/errors/Require.sol +0 -38
  571. package/contracts/experiment/errors/Revert.sol +0 -44
  572. package/contracts/experiment/inheritance/A.sol +0 -53
  573. package/contracts/experiment/inheritance/B.sol +0 -28
  574. package/contracts/experiment/inheritance/C.sol +0 -34
  575. package/contracts/experiment/inheritance/IA.sol +0 -13
  576. package/contracts/experiment/inheritance/IB.sol +0 -10
  577. package/contracts/experiment/inheritance/IC.sol +0 -12
  578. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  579. package/contracts/experiment/statemachine/ISM.sol +0 -25
  580. package/contracts/experiment/statemachine/SM.sol +0 -57
  581. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  582. package/contracts/experiment/types/TypeA.sol +0 -47
  583. package/contracts/experiment/types/TypeB.sol +0 -29
  584. package/contracts/instance/InstanceAccessManager.sol +0 -298
  585. package/contracts/instance/base/ComponentService.sol +0 -134
  586. package/contracts/instance/base/KeyValueStore.sol +0 -172
  587. package/contracts/instance/module/ISetup.sol +0 -46
  588. package/contracts/instance/module/ITreasury.sol +0 -23
  589. package/contracts/instance/service/BundleService.sol +0 -293
  590. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  591. package/contracts/instance/service/DistributionService.sol +0 -106
  592. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  593. package/contracts/instance/service/IBundleService.sol +0 -44
  594. package/contracts/instance/service/IDistributionService.sol +0 -12
  595. package/contracts/instance/service/IPolicyService.sol +0 -94
  596. package/contracts/instance/service/IPoolService.sol +0 -20
  597. package/contracts/instance/service/IProductService.sol +0 -40
  598. package/contracts/instance/service/PolicyService.sol +0 -538
  599. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  600. package/contracts/instance/service/PoolService.sol +0 -110
  601. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  602. package/contracts/instance/service/ProductService.sol +0 -234
  603. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  604. package/contracts/registry/RegistryAccessManager.sol +0 -216
  605. package/contracts/shared/ContractDeployerLib.sol +0 -72
  606. package/contracts/test/TestFee.sol +0 -25
  607. package/contracts/test/TestRegisterable.sol +0 -18
  608. package/contracts/test/TestRoleId.sol +0 -14
  609. package/contracts/test/TestService.sol +0 -25
  610. package/contracts/test/TestVersion.sol +0 -44
  611. package/contracts/test/TestVersionable.sol +0 -17
  612. package/contracts/test/Usdc.sol +0 -26
  613. package/contracts/types/ChainId.sol +0 -38
  614. package/contracts/types/NumberId.sol +0 -52
  615. package/contracts/types/ObjectType.sol +0 -152
  616. package/contracts/types/RoleId.sol +0 -90
  617. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,538 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {Product} from "../../components/Product.sol";
7
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
8
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
9
- import {IInstance} from "../IInstance.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
- import {IRisk} from "../module/IRisk.sol";
12
- import {IBundle} from "../module/IBundle.sol";
13
- import {IProductService} from "./IProductService.sol";
14
- import {ITreasury} from "../module/ITreasury.sol";
15
- import {ISetup} from "../module/ISetup.sol";
16
-
17
- import {TokenHandler} from "../../shared/TokenHandler.sol";
18
-
19
- import {IVersionable} from "../../shared/IVersionable.sol";
20
- import {Versionable} from "../../shared/Versionable.sol";
21
-
22
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
23
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
24
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
25
- import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, BUNDLE} from "../../types/ObjectType.sol";
26
- import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
27
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
28
- import {Fee, FeeLib} from "../../types/Fee.sol";
29
- import {ReferralId} from "../../types/Referral.sol";
30
- import {RiskId} from "../../types/RiskId.sol";
31
- import {StateId} from "../../types/StateId.sol";
32
- import {Version, VersionLib} from "../../types/Version.sol";
33
- //import {RoleId, PRODUCT_OWNER_ROLE} from "../../types/RoleId.sol";
34
-
35
- import {IService} from "../../shared/IService.sol";
36
- import {Service} from "../../shared/Service.sol";
37
- import {ComponentService} from "../base/ComponentService.sol";
38
- import {IPolicyService} from "./IPolicyService.sol";
39
- import {InstanceReader} from "../InstanceReader.sol";
40
- import {IPoolService} from "./IPoolService.sol";
41
- import {IBundleService} from "./IBundleService.sol";
42
-
43
-
44
- contract PolicyService is ComponentService, IPolicyService {
45
- using NftIdLib for NftId;
46
- using TimestampLib for Timestamp;
47
-
48
- IPoolService internal _poolService;
49
- IBundleService internal _bundleService;
50
-
51
- event LogProductServiceSender(address sender);
52
-
53
- function _initialize(
54
- address owner,
55
- bytes memory data
56
- )
57
- internal
58
- initializer
59
- virtual override
60
- {
61
- address registryAddress;
62
- address initialOwner;
63
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
64
-
65
- _initializeService(registryAddress, owner);
66
-
67
- _poolService = IPoolService(_registry.getServiceAddress(POOL(), getMajorVersion()));
68
- _bundleService = IBundleService(_registry.getServiceAddress(BUNDLE(), getMajorVersion()));
69
-
70
- _registerInterface(type(IPolicyService).interfaceId);
71
- }
72
-
73
-
74
- function getDomain() public pure override(IService, Service) returns(ObjectType) {
75
- return POLICY();
76
- }
77
-
78
-
79
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
80
- IRegistry.ObjectInfo memory productInfo;
81
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
82
- product = Product(productInfo.objectAddress);
83
- }
84
- // TODO: no access restrictions
85
- function calculatePremium(
86
- RiskId riskId,
87
- uint256 sumInsuredAmount,
88
- uint256 lifetime,
89
- bytes memory applicationData,
90
- NftId bundleNftId,
91
- ReferralId referralId
92
- )
93
- public
94
- view
95
- override
96
- returns (
97
- uint256 premiumAmount,
98
- uint256 productFeeAmount,
99
- uint256 poolFeeAmount,
100
- uint256 bundleFeeAmount,
101
- uint256 distributionFeeAmount
102
- )
103
- {
104
- Product product = _getAndVerifyInstanceAndProduct();
105
- uint256 netPremiumAmount = product.calculateNetPremium(
106
- sumInsuredAmount,
107
- riskId,
108
- lifetime,
109
- applicationData
110
- );
111
-
112
- (
113
- productFeeAmount,
114
- poolFeeAmount,
115
- bundleFeeAmount,
116
- distributionFeeAmount
117
- ) = _calculateFeeAmounts(
118
- netPremiumAmount,
119
- product,
120
- bundleNftId,
121
- referralId
122
- );
123
-
124
- premiumAmount = netPremiumAmount + productFeeAmount;
125
- premiumAmount += poolFeeAmount + bundleFeeAmount;
126
- premiumAmount += distributionFeeAmount;
127
- }
128
-
129
- function _calculateFeeAmounts(
130
- uint256 netPremiumAmount,
131
- Product product,
132
- NftId bundleNftId,
133
- ReferralId referralId
134
- )
135
- internal
136
- view
137
- returns (
138
- uint256 productFeeAmount,
139
- uint256 poolFeeAmount,
140
- uint256 bundleFeeAmount,
141
- uint256 distributionFeeAmount
142
- )
143
- {
144
- InstanceReader instanceReader;
145
- {
146
- IInstance instance = product.getInstance();
147
- instanceReader = instance.getInstanceReader();
148
- }
149
-
150
- NftId poolNftId = product.getPoolNftId();
151
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
152
- require(bundleInfo.poolNftId == poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
153
-
154
- {
155
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
156
- (productFeeAmount,) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
157
- }
158
- {
159
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
160
- (poolFeeAmount,) = FeeLib.calculateFee(poolSetupInfo.poolFee, netPremiumAmount);
161
- }
162
- {
163
- NftId distributionNftId = product.getDistributionNftId();
164
- ISetup.DistributionSetupInfo memory distributionSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
165
- (distributionFeeAmount,) = FeeLib.calculateFee(distributionSetupInfo.distributionFee, netPremiumAmount);
166
- }
167
-
168
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
169
- }
170
-
171
-
172
- function createApplication(
173
- address applicationOwner,
174
- RiskId riskId,
175
- uint256 sumInsuredAmount,
176
- uint256 lifetime,
177
- bytes memory applicationData,
178
- NftId bundleNftId,
179
- ReferralId referralId
180
- ) external override returns (NftId policyNftId) {
181
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
182
- // TODO: add validations (see create bundle in pool service)
183
-
184
- policyNftId = getRegistryService().registerPolicy(
185
- IRegistry.ObjectInfo(
186
- zeroNftId(),
187
- productInfo.nftId,
188
- POLICY(),
189
- false, // intercepting property for policies is defined on product
190
- address(0),
191
- applicationOwner,
192
- ""
193
- )
194
- );
195
-
196
- (uint256 premiumAmount,,,,) = calculatePremium(
197
- riskId,
198
- sumInsuredAmount,
199
- lifetime,
200
- applicationData,
201
- bundleNftId,
202
- referralId
203
- );
204
-
205
- IPolicy.PolicyInfo memory policyInfo = IPolicy.PolicyInfo(
206
- productInfo.nftId,
207
- bundleNftId,
208
- referralId,
209
- riskId,
210
- sumInsuredAmount,
211
- premiumAmount,
212
- 0,
213
- lifetime,
214
- applicationData,
215
- "",
216
- 0,
217
- 0,
218
- 0,
219
- zeroTimestamp(),
220
- zeroTimestamp(),
221
- zeroTimestamp()
222
- );
223
-
224
- instance.createPolicy(policyNftId, policyInfo);
225
- instance.updatePolicyState(policyNftId, APPLIED());
226
-
227
- // TODO: add logging
228
- }
229
-
230
- function _getAndVerifyUnderwritingSetup(
231
- IInstance instance,
232
- InstanceReader instanceReader,
233
- IPolicy.PolicyInfo memory policyInfo,
234
- ISetup.ProductSetupInfo memory productSetupInfo
235
- )
236
- internal
237
- view
238
- returns (
239
- NftId bundleNftId,
240
- IBundle.BundleInfo memory bundleInfo,
241
- uint256 collateralAmount
242
- )
243
- {
244
- // check match between policy and bundle (via pool)
245
- bundleNftId = policyInfo.bundleNftId;
246
- bundleInfo = instanceReader.getBundleInfo(bundleNftId);
247
- require(bundleInfo.poolNftId == productSetupInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
248
-
249
- // calculate required collateral
250
- NftId poolNftId = productSetupInfo.poolNftId;
251
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
252
-
253
- // obtain remaining return values
254
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
255
- }
256
-
257
- function _lockCollateralInBundle(
258
- IInstance instance,
259
- NftId bundleNftId,
260
- IBundle.BundleInfo memory bundleInfo,
261
- NftId policyNftId,
262
- uint256 collateralAmount
263
- )
264
- internal
265
- returns (IBundle.BundleInfo memory)
266
- {
267
- bundleInfo.lockedAmount += collateralAmount;
268
- // TODO: track policy associated to bundle in bundlemanager (tbd) and how much is locked for it
269
- return bundleInfo;
270
- }
271
-
272
- function _underwriteByPool(
273
- NftId poolNftId,
274
- NftId policyNftId,
275
- IPolicy.PolicyInfo memory policyInfo,
276
- bytes memory bundleFilter,
277
- uint256 collateralAmount
278
- )
279
- internal
280
- {
281
- address poolAddress = getRegistry().getObjectInfo(poolNftId).objectAddress;
282
- IPoolComponent pool = IPoolComponent(poolAddress);
283
- pool.underwrite(
284
- policyNftId,
285
- policyInfo.applicationData,
286
- bundleFilter,
287
- collateralAmount);
288
- }
289
-
290
-
291
- function revoke(
292
- NftId policyNftId
293
- )
294
- external
295
- override
296
- {
297
- require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
298
- }
299
-
300
-
301
- function underwrite(
302
- NftId policyNftId,
303
- bool requirePremiumPayment,
304
- Timestamp activateAt
305
- )
306
- external
307
- override
308
- {
309
- // check caller is registered product
310
- (
311
- IRegistry.ObjectInfo memory productInfo,
312
- IInstance instance
313
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
314
- InstanceReader instanceReader = instance.getInstanceReader();
315
-
316
- // check match between policy and calling product
317
- NftId productNftId = productInfo.nftId;
318
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
319
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
320
- require(instanceReader.getPolicyState(policyNftId) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
321
-
322
- NftId bundleNftId;
323
- IBundle.BundleInfo memory bundleInfo;
324
- uint256 collateralAmount;
325
- uint256 netPremiumAmount = 0; // > 0 if immediate premium payment
326
- {
327
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
328
- IBundle.BundleInfo memory bundleInfo;
329
-
330
- (
331
- bundleNftId,
332
- bundleInfo,
333
- collateralAmount
334
- ) = _getAndVerifyUnderwritingSetup(
335
- instance,
336
- instanceReader,
337
- policyInfo,
338
- productSetupInfo
339
- );
340
- }
341
-
342
- // lock bundle collateral
343
- bundleInfo = _lockCollateralInBundle(
344
- instance,
345
- bundleNftId,
346
- bundleInfo,
347
- policyNftId,
348
- collateralAmount);
349
- StateId newPolicyState = UNDERWRITTEN();
350
-
351
- // optional activation of policy
352
- if(activateAt > zeroTimestamp()) {
353
- newPolicyState = ACTIVE();
354
- policyInfo.activatedAt = activateAt;
355
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
356
- }
357
-
358
- // optional collection of premium
359
- if(requirePremiumPayment) {
360
- netPremiumAmount = _processPremiumByTreasury(
361
- instance,
362
- productInfo.nftId,
363
- policyNftId,
364
- policyInfo.premiumAmount);
365
-
366
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
367
- }
368
-
369
- _bundleService.underwritePolicy(instance, policyNftId, bundleNftId, collateralAmount, netPremiumAmount);
370
- instance.updatePolicy(policyNftId, policyInfo, newPolicyState);
371
-
372
- // involve pool if necessary
373
- {
374
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(bundleInfo.poolNftId);
375
-
376
- if(poolInfo.isConfirmingApplication) {
377
- _underwriteByPool(
378
- bundleInfo.poolNftId,
379
- policyNftId,
380
- policyInfo,
381
- bundleInfo.filter,
382
- collateralAmount
383
- );
384
- }
385
- }
386
-
387
- // TODO: add logging
388
- }
389
-
390
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
391
- UFixed sumInsuredUFixed = UFixedLib.toUFixed(sumInsuredAmount);
392
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
393
- return collateralUFixed.toInt();
394
- }
395
-
396
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
397
- // check caller is registered product
398
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
399
- InstanceReader instanceReader = instance.getInstanceReader();
400
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
401
-
402
- if (policyInfo.premiumPaidAmount == policyInfo.premiumAmount) {
403
- revert ErrorIPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
404
- }
405
-
406
- uint256 unpaidPremiumAmount = policyInfo.premiumAmount - policyInfo.premiumPaidAmount;
407
-
408
- uint256 netPremiumAmount = _processPremiumByTreasury(
409
- instance,
410
- productInfo.nftId,
411
- policyNftId,
412
- unpaidPremiumAmount);
413
-
414
- policyInfo.premiumPaidAmount += unpaidPremiumAmount;
415
-
416
- _bundleService.increaseBalance(instance, policyInfo.bundleNftId, netPremiumAmount);
417
- instance.updatePolicy(policyNftId, policyInfo, KEEP_STATE());
418
-
419
- if(activateAt.gtz() && policyInfo.activatedAt.eqz()) {
420
- activate(policyNftId, activateAt);
421
- }
422
-
423
- // TODO: add logging
424
- }
425
-
426
- function activate(NftId policyNftId, Timestamp activateAt) public override {
427
- // check caller is registered product
428
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
429
- InstanceReader instanceReader = instance.getInstanceReader();
430
-
431
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
432
-
433
- require(
434
- policyInfo.activatedAt.eqz(),
435
- "ERROR:PRS-020:ALREADY_ACTIVATED");
436
-
437
- policyInfo.activatedAt = activateAt;
438
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
439
-
440
- instance.updatePolicy(policyNftId, policyInfo, ACTIVE());
441
-
442
- // TODO: add logging
443
- }
444
-
445
- function close(
446
- NftId policyNftId
447
- ) external override // solhint-disable-next-line no-empty-blocks
448
- {
449
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
450
- InstanceReader instanceReader = instance.getInstanceReader();
451
-
452
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
453
-
454
- if (policyInfo.activatedAt.eqz()) {
455
- revert ErrorIPolicyServicePolicyNotActivated(policyNftId);
456
- }
457
-
458
- StateId state = instanceReader.getPolicyState(policyNftId);
459
- if (state != ACTIVE()) {
460
- revert ErrorIPolicyServicePolicyNotActive(policyNftId, state);
461
- }
462
-
463
- if (policyInfo.closedAt.gtz()) {
464
- revert ErrorIPolicyServicePolicyAlreadyClosed(policyNftId);
465
- }
466
-
467
- if (policyInfo.premiumAmount != policyInfo.premiumPaidAmount) {
468
- revert ErrorIPolicyServicePremiumNotFullyPaid(policyNftId, policyInfo.premiumAmount, policyInfo.premiumPaidAmount);
469
- }
470
-
471
- if (policyInfo.openClaimsCount > 0) {
472
- revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
473
- }
474
-
475
- if (TimestampLib.blockTimestamp().lte(policyInfo.expiredAt) && (policyInfo.payoutAmount < policyInfo.sumInsuredAmount)) {
476
- revert ErrorIPolicyServicePolicyHasNotExpired(policyNftId, policyInfo.expiredAt);
477
- }
478
-
479
- policyInfo.closedAt = TimestampLib.blockTimestamp();
480
-
481
- _bundleService.closePolicy(instance, policyNftId, policyInfo.bundleNftId, policyInfo.sumInsuredAmount);
482
- instance.updatePolicy(policyNftId, policyInfo, CLOSED());
483
- }
484
-
485
- function _getPoolNftId(
486
- IInstance instance,
487
- NftId productNftId
488
- )
489
- internal
490
- view
491
- returns (NftId poolNftid)
492
- {
493
- InstanceReader instanceReader = instance.getInstanceReader();
494
- ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(productNftId);
495
- return productSetupInfo.poolNftId;
496
- }
497
-
498
-
499
- function _processPremiumByTreasury(
500
- IInstance instance,
501
- NftId productNftId,
502
- NftId policyNftId,
503
- uint256 premiumAmount
504
- )
505
- internal
506
- returns (uint256 netPremiumAmount)
507
- {
508
- // process token transfer(s)
509
- if(premiumAmount > 0) {
510
- ISetup.ProductSetupInfo memory productSetupInfo = instance.getInstanceReader().getProductSetupInfo(productNftId);
511
- TokenHandler tokenHandler = productSetupInfo.tokenHandler;
512
- address policyOwner = getRegistry().ownerOf(policyNftId);
513
- ISetup.PoolSetupInfo memory poolSetupInfo = instance.getInstanceReader().getPoolSetupInfo(productSetupInfo.poolNftId);
514
- address poolWallet = poolSetupInfo.wallet;
515
- netPremiumAmount = premiumAmount;
516
- Fee memory productFee = productSetupInfo.productFee;
517
-
518
- if (FeeLib.feeIsZero(productFee)) {
519
- tokenHandler.transfer(
520
- policyOwner,
521
- poolWallet,
522
- premiumAmount
523
- );
524
- } else {
525
- (uint256 productFeeAmount, uint256 netAmount) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
526
- address productWallet = productSetupInfo.wallet;
527
- if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premiumAmount) {
528
- revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premiumAmount);
529
- }
530
- tokenHandler.transfer(policyOwner, productWallet, productFeeAmount);
531
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
532
- netPremiumAmount = netAmount;
533
- }
534
- }
535
-
536
- // TODO: add logging
537
- }
538
- }
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {PolicyService} from "./PolicyService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {VersionLib} from "../../types/Version.sol";
10
-
11
- contract PolicyServiceManager is ProxyManager {
12
-
13
- PolicyService private _policyService;
14
-
15
- /// @dev initializes proxy manager with product service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager()
20
- {
21
- PolicyService svc = new PolicyService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(svc),
25
- data);
26
-
27
- _policyService = PolicyService(address(versionable));
28
-
29
- // Registry registry = Registry(registryAddress);
30
- // address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
31
- // RegistryService registryService = RegistryService(registryServiceAddress);
32
- // TODO this must have a role or own nft to register service
33
- //registryService.registerService(_productService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_productService));
40
-
41
- // implies that after this constructor call only upgrade functionality is available
42
- _isDeployed = true;
43
- }
44
-
45
- //--- view functions ----------------------------------------------------//
46
- function getPolicyService()
47
- external
48
- view
49
- returns (PolicyService policyService)
50
- {
51
- return _policyService;
52
- }
53
-
54
- }
@@ -1,110 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Pool} from "../../components/Pool.sol";
5
- import {IRegistry} from "../../registry/IRegistry.sol";
6
- import {IInstance} from "../../instance/IInstance.sol";
7
- import {IBundle} from "../../instance/module/IBundle.sol";
8
- import {TokenHandler} from "../../instance/module/ITreasury.sol";
9
- import {ISetup} from "../module/ISetup.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
-
12
- import {IVersionable} from "../../shared/IVersionable.sol";
13
- import {Versionable} from "../../shared/Versionable.sol";
14
- import {INftOwnable} from "../../shared/INftOwnable.sol";
15
-
16
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
17
- import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
18
- import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
19
- import {Fee, FeeLib} from "../../types/Fee.sol";
20
- import {Version, VersionLib} from "../../types/Version.sol";
21
- import {KEEP_STATE, StateId} from "../../types/StateId.sol";
22
- import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
23
-
24
- import {IService} from "../../shared/IService.sol";
25
- import {Service} from "../../shared/Service.sol";
26
- import {BundleManager} from "../BundleManager.sol";
27
- import {ComponentService} from "../base/ComponentService.sol";
28
- import {IPoolService} from "./IPoolService.sol";
29
- import {IRegistryService} from "../../registry/IRegistryService.sol";
30
- import {InstanceService} from "../InstanceService.sol";
31
- import {InstanceReader} from "../InstanceReader.sol";
32
- import {IComponent} from "../../components/IComponent.sol";
33
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
34
-
35
- string constant POOL_SERVICE_NAME = "PoolService";
36
-
37
- contract PoolService is
38
- ComponentService,
39
- IPoolService
40
- {
41
- using NftIdLib for NftId;
42
-
43
- address internal _registryAddress;
44
-
45
- function _initialize(
46
- address owner,
47
- bytes memory data
48
- )
49
- internal
50
- initializer
51
- virtual override
52
- {
53
- address registryAddress;
54
- address initialOwner;
55
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
56
- // TODO while PoolService is not deployed in PoolServiceManager constructor
57
- // owner is PoolServiceManager deployer
58
- _initializeService(registryAddress, owner);
59
-
60
- _registerInterface(type(IPoolService).interfaceId);
61
- }
62
-
63
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
64
- return POOL();
65
- }
66
-
67
- function register(address poolAddress)
68
- external
69
- returns(NftId poolNftId)
70
- {
71
- (
72
- IComponent component,
73
- address owner,
74
- IInstance instance,
75
- NftId instanceNftId
76
- ) = _checkComponentForRegistration(
77
- poolAddress,
78
- POOL(),
79
- POOL_OWNER_ROLE());
80
-
81
- IPoolComponent pool = IPoolComponent(poolAddress);
82
- IRegistry.ObjectInfo memory poolInfo = getRegistryService().registerPool(pool, owner);
83
- pool.linkToRegisteredNftId();
84
- poolNftId = poolInfo.nftId;
85
-
86
- instance.createPoolSetup(poolNftId, pool.getSetupInfo());
87
- getInstanceService().createGifTarget(instanceNftId, poolAddress, pool.getName());
88
- getInstanceService().grantPoolDefaultPermissions(instanceNftId, pool);
89
- }
90
-
91
- function setFees(
92
- Fee memory poolFee,
93
- Fee memory stakingFee,
94
- Fee memory performanceFee
95
- )
96
- external
97
- override
98
- {
99
- (IRegistry.ObjectInfo memory poolInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
100
- InstanceReader instanceReader = instance.getInstanceReader();
101
- NftId poolNftId = poolInfo.nftId;
102
-
103
- ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
104
- poolSetupInfo.poolFee = poolFee;
105
- poolSetupInfo.stakingFee = stakingFee;
106
- poolSetupInfo.performanceFee = performanceFee;
107
-
108
- instance.updatePoolSetup(poolNftId, poolSetupInfo, KEEP_STATE());
109
- }
110
- }