@etherisc/gif-next 0.0.2-b28f7c7-340 → 0.0.2-b3a8633-027

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 (645) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +184 -253
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +77 -324
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +296 -2011
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +422 -2807
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +825 -379
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -282
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -218
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -153
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +90 -46
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +191 -296
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +294 -60
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -400
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +86 -159
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +338 -248
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
  151. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
  152. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1503 -0
  153. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
  154. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1881 -0
  155. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
  156. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +172 -29
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +559 -44
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1871 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  170. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  172. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +139 -85
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
  186. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  189. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  198. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  200. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  206. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  208. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  216. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.dbg.json +4 -0
  217. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.json +34 -0
  218. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.dbg.json +4 -0
  219. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.json +24 -0
  220. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.dbg.json +4 -0
  221. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.json +34 -0
  222. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  223. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  224. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  226. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  227. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  228. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  230. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  231. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  232. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
  234. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  235. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  238. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  240. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  242. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  243. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  244. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  246. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  248. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  250. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  252. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  254. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  256. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  258. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  259. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  262. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  288. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  294. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  296. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  298. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  299. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  300. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  302. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  304. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  306. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  308. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  309. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  310. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  312. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  314. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  315. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  316. package/contracts/authorization/AccessAdmin.sol +590 -0
  317. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  318. package/contracts/authorization/Authorization.sol +218 -0
  319. package/contracts/authorization/IAccess.sol +48 -0
  320. package/contracts/authorization/IAccessAdmin.sol +136 -0
  321. package/contracts/authorization/IAuthorization.sol +54 -0
  322. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  323. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  324. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  326. package/contracts/distribution/BasicDistribution.sol +149 -0
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  328. package/contracts/{components → distribution}/Distribution.sol +162 -159
  329. package/contracts/distribution/DistributionService.sol +288 -0
  330. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  331. package/contracts/distribution/IDistributionComponent.sol +48 -0
  332. package/contracts/{instance/service → distribution}/IDistributionService.sol +24 -38
  333. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  334. package/contracts/instance/IInstance.sol +55 -67
  335. package/contracts/instance/IInstanceService.sol +50 -30
  336. package/contracts/instance/Instance.sol +160 -233
  337. package/contracts/instance/InstanceAdmin.sol +266 -0
  338. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  339. package/contracts/instance/InstanceReader.sol +173 -59
  340. package/contracts/instance/InstanceService.sol +280 -332
  341. package/contracts/instance/InstanceServiceManager.sol +12 -26
  342. package/contracts/instance/InstanceStore.sol +276 -0
  343. package/contracts/instance/base/BalanceStore.sol +123 -0
  344. package/contracts/instance/base/Cloneable.sol +28 -0
  345. package/contracts/instance/base/ObjectCounter.sol +21 -0
  346. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  347. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  348. package/contracts/instance/module/IAccess.sol +4 -12
  349. package/contracts/instance/module/IBundle.sol +6 -9
  350. package/contracts/instance/module/IComponents.sol +21 -10
  351. package/contracts/instance/module/IDistribution.sol +7 -6
  352. package/contracts/instance/module/IPolicy.sol +28 -16
  353. package/contracts/instance/module/IRisk.sol +1 -1
  354. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  355. package/contracts/oracle/BasicOracle.sol +48 -0
  356. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  357. package/contracts/oracle/IOracle.sol +36 -0
  358. package/contracts/oracle/IOracleComponent.sol +32 -0
  359. package/contracts/oracle/IOracleService.sol +65 -0
  360. package/contracts/oracle/Oracle.sol +157 -0
  361. package/contracts/oracle/OracleService.sol +278 -0
  362. package/contracts/oracle/OracleServiceManager.sol +39 -0
  363. package/contracts/pool/BasicPool.sol +164 -0
  364. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  365. package/contracts/pool/BundleService.sol +284 -0
  366. package/contracts/pool/BundleServiceManager.sol +39 -0
  367. package/contracts/{instance/service → pool}/IBundleService.sol +35 -22
  368. package/contracts/pool/IPoolComponent.sol +52 -0
  369. package/contracts/{instance/service → pool}/IPoolService.sol +72 -21
  370. package/contracts/pool/Pool.sol +311 -0
  371. package/contracts/pool/PoolService.sol +436 -0
  372. package/contracts/pool/PoolServiceManager.sol +39 -0
  373. package/contracts/product/ApplicationService.sol +230 -0
  374. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  375. package/contracts/product/BasicProduct.sol +82 -0
  376. package/contracts/product/BasicProductAuthorization.sol +40 -0
  377. package/contracts/product/ClaimService.sol +416 -0
  378. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  379. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  380. package/contracts/product/IClaimService.sol +99 -0
  381. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  382. package/contracts/product/IPricingService.sol +39 -0
  383. package/contracts/product/IProductComponent.sol +39 -0
  384. package/contracts/product/IProductService.sol +33 -0
  385. package/contracts/product/PolicyService.sol +475 -0
  386. package/contracts/product/PolicyServiceManager.sol +39 -0
  387. package/contracts/product/PricingService.sol +300 -0
  388. package/contracts/product/PricingServiceManager.sol +39 -0
  389. package/contracts/{components → product}/Product.sol +209 -110
  390. package/contracts/product/ProductService.sol +99 -0
  391. package/contracts/product/ProductServiceManager.sol +39 -0
  392. package/contracts/registry/ChainNft.sol +34 -26
  393. package/contracts/registry/GlobalRegistry.sol +95 -0
  394. package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
  395. package/contracts/registry/IGlobalRegistry.sol +17 -0
  396. package/contracts/registry/IRegistry.sol +58 -26
  397. package/contracts/registry/IRegistryService.sol +42 -41
  398. package/contracts/registry/Registry.sol +261 -161
  399. package/contracts/registry/RegistryAdmin.sol +447 -0
  400. package/contracts/registry/RegistryService.sol +69 -99
  401. package/contracts/registry/RegistryServiceManager.sol +23 -32
  402. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  403. package/contracts/registry/ReleaseRegistry.sol +533 -0
  404. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  405. package/contracts/registry/TokenRegistry.sol +261 -62
  406. package/contracts/shared/Component.sol +281 -0
  407. package/contracts/shared/ComponentService.sol +581 -0
  408. package/contracts/shared/ComponentServiceManager.sol +35 -0
  409. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  410. package/contracts/shared/ERC165.sol +1 -1
  411. package/contracts/{components → shared}/IComponent.sol +23 -29
  412. package/contracts/shared/IComponentService.sol +102 -0
  413. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  414. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  415. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  416. package/contracts/shared/INftOwnable.sol +2 -2
  417. package/contracts/shared/IPolicyHolder.sol +29 -10
  418. package/contracts/shared/IRegistryLinked.sol +0 -1
  419. package/contracts/shared/IService.sol +12 -3
  420. package/contracts/shared/InitializableCustom.sol +177 -0
  421. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  422. package/contracts/shared/KeyValueStore.sol +131 -0
  423. package/contracts/shared/Lifecycle.sol +77 -0
  424. package/contracts/shared/MainnetId.sol +29 -0
  425. package/contracts/shared/NftIdSet.sol +65 -0
  426. package/contracts/shared/NftOwnable.sol +3 -16
  427. package/contracts/shared/PolicyHolder.sol +40 -19
  428. package/contracts/shared/Registerable.sol +13 -12
  429. package/contracts/shared/RegistryLinked.sol +0 -5
  430. package/contracts/shared/Service.sol +32 -22
  431. package/contracts/shared/TokenHandler.sol +27 -2
  432. package/contracts/staking/IStaking.sol +167 -0
  433. package/contracts/staking/IStakingService.sol +160 -0
  434. package/contracts/staking/StakeManagerLib.sol +231 -0
  435. package/contracts/staking/Staking.sol +510 -0
  436. package/contracts/staking/StakingLifecycle.sol +23 -0
  437. package/contracts/staking/StakingManager.sol +50 -0
  438. package/contracts/staking/StakingReader.sol +183 -0
  439. package/contracts/staking/StakingService.sol +411 -0
  440. package/contracts/staking/StakingServiceManager.sol +44 -0
  441. package/contracts/staking/StakingStore.sol +605 -0
  442. package/contracts/staking/TargetManagerLib.sol +207 -0
  443. package/contracts/{types → type}/AddressSet.sol +1 -1
  444. package/contracts/type/Amount.sol +128 -0
  445. package/contracts/{types → type}/Blocknumber.sol +20 -3
  446. package/contracts/{types → type}/ClaimId.sol +25 -2
  447. package/contracts/{types → type}/Fee.sol +24 -22
  448. package/contracts/{types → type}/NftId.sol +14 -16
  449. package/contracts/{types → type}/NftIdSet.sol +2 -2
  450. package/contracts/type/ObjectType.sol +271 -0
  451. package/contracts/{types → type}/PayoutId.sol +33 -5
  452. package/contracts/{types → type}/Referral.sol +1 -1
  453. package/contracts/type/RequestId.sol +75 -0
  454. package/contracts/{types → type}/RiskId.sol +1 -1
  455. package/contracts/type/RoleId.sol +174 -0
  456. package/contracts/{types → type}/Seconds.sol +27 -0
  457. package/contracts/type/Selector.sol +102 -0
  458. package/contracts/{types → type}/StateId.sol +33 -4
  459. package/contracts/type/String.sol +53 -0
  460. package/contracts/{types → type}/Timestamp.sol +10 -1
  461. package/contracts/{types → type}/UFixed.sol +6 -0
  462. package/contracts/{types → type}/Version.sol +4 -2
  463. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  464. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  465. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  466. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  467. package/package.json +8 -5
  468. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  469. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  470. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  471. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  472. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  473. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  474. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  475. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  476. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  477. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  478. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  479. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  480. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  481. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  483. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  485. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  487. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  490. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  492. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  495. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  497. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  499. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  501. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  503. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  505. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  507. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  509. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  511. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  513. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  520. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  522. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  524. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  526. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  528. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  530. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  531. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  532. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  533. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  534. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  535. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  536. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  537. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  538. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  539. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  540. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  541. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  543. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  544. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  545. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  546. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  547. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  548. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  549. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  550. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  551. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  552. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  553. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  554. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  555. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  556. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  557. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  558. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  559. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  560. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  562. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  564. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  566. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  568. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  570. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  572. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  573. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  574. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  576. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  577. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  578. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  580. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  582. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  584. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  586. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  588. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  590. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  592. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  594. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  596. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  598. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  600. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  602. package/contracts/components/Component.sol +0 -253
  603. package/contracts/components/IDistributionComponent.sol +0 -71
  604. package/contracts/components/IPoolComponent.sol +0 -113
  605. package/contracts/components/IProductComponent.sol +0 -40
  606. package/contracts/components/Pool.sol +0 -303
  607. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  608. package/contracts/instance/Cloneable.sol +0 -51
  609. package/contracts/instance/InstanceAccessManager.sol +0 -527
  610. package/contracts/instance/base/ComponentService.sol +0 -121
  611. package/contracts/instance/base/KeyValueStore.sol +0 -180
  612. package/contracts/instance/base/Lifecycle.sol +0 -109
  613. package/contracts/instance/module/ISetup.sol +0 -33
  614. package/contracts/instance/module/ITreasury.sol +0 -23
  615. package/contracts/instance/service/ApplicationService.sol +0 -350
  616. package/contracts/instance/service/BundleService.sol +0 -431
  617. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  618. package/contracts/instance/service/ClaimService.sol +0 -151
  619. package/contracts/instance/service/DistributionService.sol +0 -435
  620. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  621. package/contracts/instance/service/IClaimService.sol +0 -61
  622. package/contracts/instance/service/IProductService.sol +0 -40
  623. package/contracts/instance/service/PolicyService.sol +0 -362
  624. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  625. package/contracts/instance/service/PoolService.sol +0 -303
  626. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  627. package/contracts/instance/service/ProductService.sol +0 -210
  628. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  629. package/contracts/registry/RegistryAccessManager.sol +0 -216
  630. package/contracts/registry/ReleaseManager.sol +0 -324
  631. package/contracts/shared/ContractDeployerLib.sol +0 -72
  632. package/contracts/test/TestFee.sol +0 -25
  633. package/contracts/test/TestRegisterable.sol +0 -18
  634. package/contracts/test/TestRoleId.sol +0 -14
  635. package/contracts/test/TestService.sol +0 -25
  636. package/contracts/test/TestToken.sol +0 -26
  637. package/contracts/test/TestVersion.sol +0 -44
  638. package/contracts/test/TestVersionable.sol +0 -17
  639. package/contracts/types/Amount.sol +0 -60
  640. package/contracts/types/ChainId.sol +0 -38
  641. package/contracts/types/NumberId.sol +0 -52
  642. package/contracts/types/ObjectType.sol +0 -157
  643. package/contracts/types/RoleId.sol +0 -97
  644. /package/contracts/{types → type}/DistributorType.sol +0 -0
  645. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ApplicationService} from "./ApplicationService.sol";
7
7
 
8
8
  contract ApplicationServiceManager is ProxyManager {
@@ -11,15 +11,18 @@ contract ApplicationServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address registryAddress
15
- )
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
16
18
  ProxyManager(registryAddress)
17
19
  {
18
- ApplicationService svc = new ApplicationService();
19
- bytes memory data = abi.encode(registryAddress, address(this));
20
- IVersionable versionable = deploy(
20
+ ApplicationService svc = new ApplicationService{salt: salt}();
21
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
22
+ IVersionable versionable = deployDetermenistic(
21
23
  address(svc),
22
- data);
24
+ data,
25
+ salt);
23
26
 
24
27
  _applicationService = ApplicationService(address(versionable));
25
28
  }
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
+ import {Fee, FeeLib} from "../type/Fee.sol";
10
+ import {IRisk} from "../instance/module/IRisk.sol";
11
+ import {IApplicationService} from "./IApplicationService.sol";
12
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
13
+ import {IComponentService} from "../shared/IComponentService.sol";
14
+ import {IPolicyService} from "./IPolicyService.sol";
15
+ import {IProductService} from "./IProductService.sol";
16
+ import {IClaimService} from "./IClaimService.sol";
17
+ import {IPricingService} from "./IPricingService.sol";
18
+ import {IProductComponent} from "./IProductComponent.sol";
19
+ import {NftId, NftIdLib} from "../type/NftId.sol";
20
+ import {Product} from "../product/Product.sol";
21
+ import {PayoutId} from "../type/PayoutId.sol";
22
+ import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
23
+ import {ReferralId} from "../type/Referral.sol";
24
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
25
+ import {Seconds} from "../type/Seconds.sol";
26
+ import {StateId} from "../type/StateId.sol";
27
+ import {Timestamp} from "../type/Timestamp.sol";
28
+
29
+ import {TokenHandler} from "../shared/TokenHandler.sol";
30
+
31
+ import {InstanceReader} from "../instance/InstanceReader.sol";
32
+ import {IPolicy} from "../instance/module/IPolicy.sol";
33
+ import {IComponents} from "../instance/module/IComponents.sol";
34
+ import {Pool} from "../pool/Pool.sol";
35
+ import {Distribution} from "../distribution/Distribution.sol";
36
+
37
+ abstract contract BasicProduct is
38
+ Product
39
+ {
40
+
41
+ function setFees(
42
+ Fee memory productFee,
43
+ Fee memory processingFee
44
+ )
45
+ external
46
+ virtual
47
+ onlyOwner()
48
+ restricted()
49
+ {
50
+ _setFees(productFee, processingFee);
51
+ }
52
+
53
+
54
+ function _initializeBasicProduct(
55
+ address registry,
56
+ NftId instanceNftId,
57
+ IAuthorization authorization,
58
+ address initialOwner,
59
+ string memory name,
60
+ address token,
61
+ bool isInterceptor,
62
+ address pool,
63
+ address distribution
64
+ )
65
+ internal
66
+ virtual
67
+ onlyInitializing()
68
+ {
69
+ _initializeProduct(
70
+ registry,
71
+ instanceNftId,
72
+ authorization,
73
+ initialOwner,
74
+ name,
75
+ token,
76
+ isInterceptor,
77
+ pool,
78
+ distribution,
79
+ "", //registryData,
80
+ ""); // componentData
81
+ }
82
+ }
@@ -0,0 +1,40 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicProduct} from "./BasicProduct.sol";
6
+ import {PRODUCT} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
10
+
11
+
12
+ contract BasicProductAuthorization
13
+ is Authorization
14
+ {
15
+
16
+ constructor(string memory componentName)
17
+ Authorization(componentName)
18
+ {}
19
+
20
+ function _setupTargets()
21
+ internal
22
+ virtual override
23
+ {
24
+ // basic component target
25
+ _addComponentTargetWithRole(PRODUCT());
26
+ }
27
+
28
+
29
+ function _setupTargetAuthorizations()
30
+ internal
31
+ virtual override
32
+ {
33
+ IAccess.FunctionInfo[] storage functions;
34
+
35
+ // authorize public role (open access to any account, only allows to lock target)
36
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
37
+ _authorize(functions, BasicProduct.setFees.selector, "setFees");
38
+ }
39
+ }
40
+
@@ -0,0 +1,416 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IComponents} from "../instance/module/IComponents.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+ import {IPolicy} from "../instance/module/IPolicy.sol";
7
+ import {Amount, AmountLib} from "../type/Amount.sol";
8
+ import {TimestampLib} from "../type/Timestamp.sol";
9
+ import {ObjectType, CLAIM, PRODUCT, POOL} from "../type/ObjectType.sol";
10
+ import {SUBMITTED, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {FeeLib} from "../type/Fee.sol";
13
+ import {StateId} from "../type/StateId.sol";
14
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
15
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
16
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
17
+ import {InstanceReader} from "../instance/InstanceReader.sol";
18
+ import {IClaimService} from "./IClaimService.sol";
19
+ import {IPoolService} from "../pool/IPoolService.sol";
20
+
21
+
22
+ contract ClaimService is
23
+ ComponentVerifyingService,
24
+ IClaimService
25
+ {
26
+
27
+ IPoolService internal _poolService;
28
+
29
+ function _initialize(
30
+ address owner,
31
+ bytes memory data
32
+ )
33
+ internal
34
+ virtual override
35
+ initializer()
36
+ {
37
+ (
38
+ address registryAddress,,
39
+ //address managerAddress
40
+ address authority
41
+ ) = abi.decode(data, (address, address, address));
42
+
43
+ initializeService(registryAddress, authority, owner);
44
+
45
+ _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
46
+
47
+ registerInterface(type(IClaimService).interfaceId);
48
+ }
49
+
50
+ function submit(
51
+ NftId policyNftId,
52
+ Amount claimAmount,
53
+ bytes memory claimData // claim submission data
54
+ )
55
+ external
56
+ virtual
57
+ returns (ClaimId claimId)
58
+ {
59
+ (
60
+ IInstance instance,
61
+ InstanceReader instanceReader,
62
+ IPolicy.PolicyInfo memory policyInfo
63
+ ) = _verifyCallerWithPolicy(policyNftId);
64
+
65
+ // check policy is in its active period
66
+ if(policyInfo.activatedAt.eqz() || TimestampLib.blockTimestamp() >= policyInfo.expiredAt) {
67
+ revert ErrorClaimServicePolicyNotOpen(policyNftId);
68
+ }
69
+
70
+ // check policy including this claim is still within sum insured
71
+ if(policyInfo.payoutAmount + claimAmount > policyInfo.sumInsuredAmount) {
72
+ revert ErrorClaimServiceClaimExceedsSumInsured(
73
+ policyNftId,
74
+ policyInfo.sumInsuredAmount,
75
+ AmountLib.toAmount(policyInfo.payoutAmount.toInt() + claimAmount.toInt()));
76
+ }
77
+
78
+ // create new claim
79
+ claimId = ClaimIdLib.toClaimId(policyInfo.claimsCount + 1);
80
+ instance.getInstanceStore().createClaim(
81
+ policyNftId,
82
+ claimId,
83
+ IPolicy.ClaimInfo(
84
+ claimAmount,
85
+ AmountLib.zero(), // paidAmount
86
+ 0, // payoutsCount
87
+ 0, // openPayoutsCount
88
+ claimData, // claim submission data
89
+ "", // claim processing data
90
+ TimestampLib.zero())); // closedAt
91
+
92
+ // update and save policy info with instance
93
+ policyInfo.claimsCount += 1;
94
+ policyInfo.openClaimsCount += 1;
95
+ // policy claim amount is only updated when claim is confirmed
96
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
97
+
98
+ emit LogClaimServiceClaimSubmitted(policyNftId, claimId, claimAmount);
99
+ }
100
+
101
+
102
+ function confirm(
103
+ NftId policyNftId,
104
+ ClaimId claimId,
105
+ Amount confirmedAmount,
106
+ bytes memory data // claim processing data
107
+ )
108
+ external
109
+ virtual
110
+ {
111
+ (
112
+ IInstance instance,
113
+ InstanceReader instanceReader,
114
+ IPolicy.PolicyInfo memory policyInfo
115
+ ) = _verifyCallerWithPolicy(policyNftId);
116
+
117
+ // check/update claim info
118
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
119
+ claimInfo.claimAmount = confirmedAmount;
120
+ claimInfo.processData = data;
121
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
122
+
123
+ // update and save policy info with instance
124
+ policyInfo.claimAmount = policyInfo.claimAmount + confirmedAmount;
125
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
126
+
127
+ emit LogClaimServiceClaimConfirmed(policyNftId, claimId, confirmedAmount);
128
+ }
129
+
130
+ function decline(
131
+ NftId policyNftId,
132
+ ClaimId claimId,
133
+ bytes memory data // claim processing data
134
+ )
135
+ external
136
+ virtual
137
+ {
138
+ (
139
+ IInstance instance,
140
+ InstanceReader instanceReader,
141
+ IPolicy.PolicyInfo memory policyInfo
142
+ ) = _verifyCallerWithPolicy(policyNftId);
143
+
144
+ // check/update claim info
145
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
146
+ claimInfo.processData = data;
147
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
148
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, DECLINED());
149
+
150
+ // update and save policy info with instance
151
+ policyInfo.openClaimsCount -= 1;
152
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
153
+
154
+ emit LogClaimServiceClaimDeclined(policyNftId, claimId);
155
+ }
156
+
157
+ function close(
158
+ NftId policyNftId,
159
+ ClaimId claimId
160
+ )
161
+ external
162
+ virtual
163
+ {
164
+ (
165
+ IInstance instance,
166
+ InstanceReader instanceReader,
167
+ IPolicy.PolicyInfo memory policyInfo
168
+ ) = _verifyCallerWithPolicy(policyNftId);
169
+
170
+ // check/update claim info
171
+ IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
172
+
173
+ // check claim has no open payouts
174
+ if(claimInfo.openPayoutsCount > 0) {
175
+ revert ErrorClaimServiceClaimWithOpenPayouts(
176
+ policyNftId,
177
+ claimId,
178
+ claimInfo.openPayoutsCount);
179
+ }
180
+
181
+ // check claim paid amount matches with claim amount
182
+ if(claimInfo.paidAmount.toInt() < claimInfo.claimAmount.toInt()) {
183
+ revert ErrorClaimServiceClaimWithMissingPayouts(
184
+ policyNftId,
185
+ claimId,
186
+ claimInfo.claimAmount,
187
+ claimInfo.paidAmount);
188
+ }
189
+
190
+ claimInfo.closedAt = TimestampLib.blockTimestamp();
191
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
192
+ }
193
+
194
+
195
+ function createPayout(
196
+ NftId policyNftId,
197
+ ClaimId claimId,
198
+ Amount amount,
199
+ bytes memory data
200
+ )
201
+ external
202
+ returns (PayoutId payoutId)
203
+ {
204
+ (
205
+ IInstance instance,
206
+ InstanceReader instanceReader,
207
+ IPolicy.PolicyInfo memory policyInfo
208
+ ) = _verifyCallerWithPolicy(policyNftId);
209
+
210
+ IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
211
+ StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
212
+
213
+ // TODO add checks
214
+ // claim needs to be open
215
+ // claim.paidAmount + amount <= claim.claimAmount
216
+
217
+ // check/update claim info
218
+ // create payout info with instance
219
+ uint8 claimNo = claimInfo.payoutsCount + 1;
220
+ payoutId = PayoutIdLib.toPayoutId(claimId, claimNo);
221
+ instance.getInstanceStore().createPayout(
222
+ policyNftId,
223
+ payoutId,
224
+ IPolicy.PayoutInfo(
225
+ payoutId.toClaimId(),
226
+ amount,
227
+ data,
228
+ TimestampLib.zero()));
229
+
230
+ // update and save claim info with instance
231
+ claimInfo.payoutsCount += 1;
232
+ claimInfo.openPayoutsCount += 1;
233
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
234
+
235
+ // update and save policy info with instance
236
+ policyInfo.payoutAmount.add(amount);
237
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
238
+
239
+ emit LogClaimServicePayoutCreated(policyNftId, payoutId, amount);
240
+ }
241
+
242
+
243
+ function processPayout(
244
+ NftId policyNftId,
245
+ PayoutId payoutId
246
+ )
247
+ external
248
+ virtual
249
+ {
250
+ (
251
+ IInstance instance,
252
+ InstanceReader instanceReader,
253
+ IPolicy.PolicyInfo memory policyInfo
254
+ ) = _verifyCallerWithPolicy(policyNftId);
255
+
256
+ // TODO add check that payout exists and is open
257
+ IPolicy.PayoutInfo memory payoutInfo = instanceReader.getPayoutInfo(policyNftId, payoutId);
258
+
259
+ // update and save payout info with instance
260
+ payoutInfo.paidAt = TimestampLib.blockTimestamp();
261
+ instance.getInstanceStore().updatePayout(policyNftId, payoutId, payoutInfo, PAID());
262
+
263
+ // TODO update and save claim info with instance
264
+ ClaimId claimId = payoutId.toClaimId();
265
+ Amount payoutAmount = payoutInfo.amount;
266
+ IPolicy.ClaimInfo memory claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
267
+ claimInfo.paidAmount = claimInfo.paidAmount.add(payoutAmount);
268
+ claimInfo.openPayoutsCount -= 1;
269
+
270
+ // check if this payout is closing the linked claim
271
+ // update claim and policy info accordingly
272
+ if(claimInfo.openPayoutsCount == 0 && claimInfo.paidAmount == claimInfo.claimAmount) {
273
+ claimInfo.closedAt == TimestampLib.blockTimestamp();
274
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, CLOSED());
275
+
276
+ policyInfo.openClaimsCount -= 1;
277
+ } else {
278
+ instance.getInstanceStore().updateClaim(policyNftId, claimId, claimInfo, KEEP_STATE());
279
+ }
280
+
281
+ // update and save policy info with instance
282
+ policyInfo.payoutAmount = policyInfo.payoutAmount.add(payoutAmount);
283
+ instance.getInstanceStore().updatePolicyClaims(policyNftId, policyInfo, KEEP_STATE());
284
+
285
+ // inform pool about payout
286
+ _poolService.reduceCollateral(
287
+ instance,
288
+ address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
289
+ policyNftId,
290
+ policyInfo,
291
+ payoutAmount);
292
+
293
+ // transfer payout token and fee
294
+ (
295
+ Amount netPayoutAmount,
296
+ address beneficiary
297
+ ) = _transferPayoutAmount(
298
+ instanceReader,
299
+ policyNftId,
300
+ policyInfo,
301
+ payoutInfo);
302
+
303
+ // TODO callback IPolicyHolder
304
+
305
+ emit LogClaimServicePayoutProcessed(policyNftId, payoutId, payoutAmount, beneficiary, netPayoutAmount);
306
+ }
307
+
308
+ // TODO create (I)TreasuryService that deals with all gif related token transfers
309
+ function _transferPayoutAmount(
310
+ InstanceReader instanceReader,
311
+ NftId policyNftId,
312
+ IPolicy.PolicyInfo memory policyInfo,
313
+ IPolicy.PayoutInfo memory payoutInfo
314
+ )
315
+ internal
316
+ returns (
317
+ Amount netPayoutAmount,
318
+ address beneficiary
319
+ )
320
+ {
321
+ Amount payoutAmount = payoutInfo.amount;
322
+
323
+ if(payoutAmount.gtz()) {
324
+ NftId productNftId = policyInfo.productNftId;
325
+
326
+ // get pool component info from policy or product
327
+ NftId poolNftId = getRegistry().getObjectInfo(policyInfo.bundleNftId).parentNftId;
328
+ IComponents.ComponentInfo memory poolInfo = instanceReader.getComponentInfo(poolNftId);
329
+
330
+ netPayoutAmount = payoutAmount;
331
+ beneficiary = _getBeneficiary(policyNftId, payoutInfo.claimId);
332
+
333
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
334
+ if(FeeLib.gtz(productInfo.processingFee)) {
335
+ // TODO calculate net payout and processing fees
336
+ // TODO transfer processing fees to product wallet
337
+ // TODO inform product to update fee book keeping
338
+ }
339
+
340
+ poolInfo.tokenHandler.transfer(
341
+ poolInfo.wallet,
342
+ beneficiary,
343
+ netPayoutAmount);
344
+ }
345
+ }
346
+
347
+ // internal functions
348
+
349
+ function _getBeneficiary(
350
+ NftId policyNftId,
351
+ ClaimId claimId
352
+ )
353
+ internal
354
+ returns (address beneficiary)
355
+ {
356
+ // TODO check if owner is IPolicyHolder
357
+ // if so, obtain beneficiary from this contract
358
+
359
+ // default beneficiary is policy nft owner
360
+ beneficiary = getRegistry().ownerOf(policyNftId);
361
+ }
362
+
363
+
364
+ function _verifyCallerWithPolicy(
365
+ NftId policyNftId
366
+ )
367
+ internal
368
+ view
369
+ virtual
370
+ returns (
371
+ IInstance instance,
372
+ InstanceReader instanceReader,
373
+ IPolicy.PolicyInfo memory policyInfo
374
+ )
375
+ {
376
+ NftId productNftId;
377
+ (productNftId,, instance) = _getAndVerifyActiveComponent(PRODUCT());
378
+ instanceReader = instance.getInstanceReader();
379
+
380
+ // check caller(product) policy match
381
+ policyInfo = instanceReader.getPolicyInfo(policyNftId);
382
+ if(policyInfo.productNftId != productNftId) {
383
+ revert ErrorClaimServicePolicyProductMismatch(policyNftId,
384
+ policyInfo.productNftId,
385
+ productNftId);
386
+ }
387
+ }
388
+
389
+ function _verifyClaim(
390
+ InstanceReader instanceReader,
391
+ NftId policyNftId,
392
+ ClaimId claimId,
393
+ StateId expectedState
394
+ )
395
+ internal
396
+ view
397
+ returns (
398
+ IPolicy.ClaimInfo memory claimInfo
399
+ )
400
+ {
401
+ // check claim is created state
402
+ StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
403
+ if(claimState != expectedState) {
404
+ revert ErrorClaimServiceClaimNotInExpectedState(
405
+ policyNftId, claimId, expectedState, claimState);
406
+ }
407
+
408
+ // get claim info
409
+ claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
410
+ }
411
+
412
+
413
+ function _getDomain() internal pure override returns(ObjectType) {
414
+ return CLAIM();
415
+ }
416
+ }
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
8
8
  contract ClaimServiceManager is ProxyManager {
@@ -11,15 +11,18 @@ contract ClaimServiceManager is ProxyManager {
11
11
 
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
- address registryAddress
15
- )
14
+ address authority,
15
+ address registryAddress,
16
+ bytes32 salt
17
+ )
16
18
  ProxyManager(registryAddress)
17
19
  {
18
- ClaimService svc = new ClaimService();
19
- bytes memory data = abi.encode(registryAddress, address(this));
20
- IVersionable versionable = deploy(
20
+ ClaimService svc = new ClaimService{salt: salt}();
21
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
22
+ IVersionable versionable = deployDetermenistic(
21
23
  address(svc),
22
- data);
24
+ data,
25
+ salt);
23
26
 
24
27
  _claimService = ClaimService(address(versionable));
25
28
  }
@@ -1,32 +1,29 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IPolicy} from "../module/IPolicy.sol";
5
- import {IRisk} from "../module/IRisk.sol";
6
- import {IService} from "../../shared/IService.sol";
4
+ import {IPolicy} from "../instance/module/IPolicy.sol";
5
+ import {IService} from "../shared/IService.sol";
7
6
 
8
- import {NftId} from "../../types/NftId.sol";
9
- import {ReferralId} from "../../types/Referral.sol";
10
- import {RiskId} from "../../types/RiskId.sol";
11
- import {Seconds} from "../../types/Seconds.sol";
12
- import {StateId} from "../../types/StateId.sol";
13
- import {Timestamp} from "../../types/Timestamp.sol";
14
- import {UFixed} from "../../types/UFixed.sol";
15
- import {Fee} from "../../types/Fee.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {ReferralId} from "../type/Referral.sol";
11
+ import {RiskId} from "../type/RiskId.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
16
13
 
17
14
  /// @dev gif service responsible for creating applications
18
15
  /// only product components may call transaction functions
19
16
  interface IApplicationService is IService {
20
17
 
21
- error IApplicationServicePolicyNotApplied(NftId applicationNftId);
22
- error IApplicationServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ error ErrorApplicationServiceNotProduct(NftId callerNftId, ObjectType callerType);
19
+ error ErrorApplicationServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
23
20
 
24
21
  /// @dev creates a new application based on the specified attributes
25
22
  /// may only be called by a product component
26
23
  function create(
27
24
  address applicationOwner,
28
25
  RiskId riskId,
29
- uint256 sumInsuredAmount,
26
+ Amount sumInsuredAmount,
30
27
  Seconds lifetime,
31
28
  NftId bundleNftId,
32
29
  ReferralId referralId,
@@ -41,8 +38,8 @@ interface IApplicationService is IService {
41
38
  RiskId riskId,
42
39
  NftId bundleNftId,
43
40
  ReferralId referralId,
44
- uint256 sumInsuredAmount,
45
- uint256 lifetime,
41
+ Amount sumInsuredAmount,
42
+ Seconds lifetime,
46
43
  bytes memory applicationData
47
44
  ) external;
48
45
 
@@ -62,21 +59,4 @@ interface IApplicationService is IService {
62
59
  /// an application can only be revoked in applied state
63
60
  /// only the application holder may revoke an application
64
61
  function revoke(NftId policyNftId) external;
65
-
66
- /// @dev calculates the premium amount for the specified attributes
67
- /// also returns the various fee components involved with creating a policy
68
- function calculatePremium(
69
- NftId productNftId,
70
- RiskId riskId,
71
- uint256 sumInsuredAmount,
72
- Seconds lifetime,
73
- bytes memory applicationData,
74
- NftId bundleNftId,
75
- ReferralId referralId
76
- )
77
- external
78
- view
79
- returns (
80
- IPolicy.Premium memory premium
81
- );
82
- }
62
+ }