@etherisc/gif-next 0.0.2-b38343e-249 → 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 (699) hide show
  1. package/README.md +38 -86
  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/{components → distribution}/Distribution.sol/Distribution.json +245 -443
  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 +274 -317
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -0
  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 +292 -2124
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +328 -69
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2883
  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 +663 -314
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +388 -263
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
  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 -49
  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 +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +291 -210
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +398 -326
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +397 -450
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +139 -89
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +277 -129
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IPricingService.sol/IPricingService.json} +254 -185
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +401 -241
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +90 -63
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/{components → product}/Product.sol/Product.json +378 -367
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +53 -16
  152. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
  153. package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1503 -0
  154. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
  155. package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1881 -0
  156. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
  157. package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +181 -19
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -138
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +569 -35
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1871 -0
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -87
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1140 -0
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +101 -103
  188. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  191. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  202. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  204. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  206. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  208. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IService.sol/IService.json +106 -18
  210. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  212. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  213. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  214. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  215. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  216. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  217. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  218. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.dbg.json +4 -0
  219. package/artifacts/contracts/shared/MainnetId.sol/MainnetContract.json +34 -0
  220. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.dbg.json +4 -0
  221. package/artifacts/contracts/shared/MainnetId.sol/MainnetId.json +24 -0
  222. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.dbg.json +4 -0
  223. package/artifacts/contracts/shared/MainnetId.sol/SidenetContract.json +34 -0
  224. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  225. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  226. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  228. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  229. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  230. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  232. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  234. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Service.sol/Service.json +114 -21
  236. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  237. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  238. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  240. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  242. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  244. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  245. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  246. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  248. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  250. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  252. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  254. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  256. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  258. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  259. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  260. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  261. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  262. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  264. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  266. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  268. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  270. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  272. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  274. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  276. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  277. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  278. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  280. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  282. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  284. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  286. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  288. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  290. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  294. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  296. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  298. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  300. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  302. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  304. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  306. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  308. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  310. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  311. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  315. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  316. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  317. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +590 -0
  319. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  320. package/contracts/authorization/Authorization.sol +218 -0
  321. package/contracts/authorization/IAccess.sol +48 -0
  322. package/contracts/authorization/IAccessAdmin.sol +136 -0
  323. package/contracts/authorization/IAuthorization.sol +54 -0
  324. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  325. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  326. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  327. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  328. package/contracts/distribution/BasicDistribution.sol +149 -0
  329. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  330. package/contracts/{components → distribution}/Distribution.sol +166 -191
  331. package/contracts/distribution/DistributionService.sol +288 -0
  332. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  333. package/contracts/distribution/IDistributionComponent.sol +48 -0
  334. package/contracts/distribution/IDistributionService.sol +85 -0
  335. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  336. package/contracts/instance/IInstance.sol +60 -66
  337. package/contracts/instance/IInstanceService.sol +57 -24
  338. package/contracts/instance/Instance.sol +176 -213
  339. package/contracts/instance/InstanceAdmin.sol +266 -0
  340. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  341. package/contracts/instance/InstanceReader.sol +173 -61
  342. package/contracts/instance/InstanceService.sol +310 -343
  343. package/contracts/instance/InstanceServiceManager.sol +12 -26
  344. package/contracts/instance/InstanceStore.sol +276 -0
  345. package/contracts/instance/base/BalanceStore.sol +123 -0
  346. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  347. package/contracts/instance/base/ObjectCounter.sol +21 -0
  348. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  349. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  350. package/contracts/instance/module/IAccess.sol +19 -20
  351. package/contracts/instance/module/IBundle.sol +8 -8
  352. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -19
  353. package/contracts/instance/module/IDistribution.sol +7 -4
  354. package/contracts/instance/module/IPolicy.sol +53 -16
  355. package/contracts/instance/module/IRisk.sol +1 -1
  356. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  357. package/contracts/oracle/BasicOracle.sol +48 -0
  358. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  359. package/contracts/oracle/IOracle.sol +36 -0
  360. package/contracts/oracle/IOracleComponent.sol +32 -0
  361. package/contracts/oracle/IOracleService.sol +65 -0
  362. package/contracts/oracle/Oracle.sol +157 -0
  363. package/contracts/oracle/OracleService.sol +278 -0
  364. package/contracts/oracle/OracleServiceManager.sol +39 -0
  365. package/contracts/pool/BasicPool.sol +164 -0
  366. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  367. package/contracts/pool/BundleService.sol +284 -0
  368. package/contracts/pool/BundleServiceManager.sol +39 -0
  369. package/contracts/pool/IBundleService.sol +106 -0
  370. package/contracts/pool/IPoolComponent.sol +52 -0
  371. package/contracts/pool/IPoolService.sol +150 -0
  372. package/contracts/pool/Pool.sol +311 -0
  373. package/contracts/pool/PoolService.sol +436 -0
  374. package/contracts/pool/PoolServiceManager.sol +39 -0
  375. package/contracts/product/ApplicationService.sol +230 -0
  376. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  377. package/contracts/product/BasicProduct.sol +82 -0
  378. package/contracts/product/BasicProductAuthorization.sol +40 -0
  379. package/contracts/product/ClaimService.sol +416 -0
  380. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  381. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  382. package/contracts/product/IClaimService.sol +99 -0
  383. package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
  384. package/contracts/product/IPricingService.sol +39 -0
  385. package/contracts/product/IProductComponent.sol +39 -0
  386. package/contracts/product/IProductService.sol +33 -0
  387. package/contracts/product/PolicyService.sol +475 -0
  388. package/contracts/product/PolicyServiceManager.sol +39 -0
  389. package/contracts/product/PricingService.sol +300 -0
  390. package/contracts/product/PricingServiceManager.sol +39 -0
  391. package/contracts/product/Product.sol +392 -0
  392. package/contracts/product/ProductService.sol +99 -0
  393. package/contracts/product/ProductServiceManager.sol +39 -0
  394. package/contracts/registry/ChainNft.sol +42 -26
  395. package/contracts/registry/GlobalRegistry.sol +95 -0
  396. package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
  397. package/contracts/registry/IGlobalRegistry.sol +17 -0
  398. package/contracts/registry/IRegistry.sol +60 -26
  399. package/contracts/registry/IRegistryService.sol +44 -42
  400. package/contracts/registry/ITransferInterceptor.sol +1 -0
  401. package/contracts/registry/Registry.sol +278 -175
  402. package/contracts/registry/RegistryAdmin.sol +447 -0
  403. package/contracts/registry/RegistryService.sol +70 -101
  404. package/contracts/registry/RegistryServiceManager.sol +23 -32
  405. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  406. package/contracts/registry/ReleaseRegistry.sol +533 -0
  407. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  408. package/contracts/registry/TokenRegistry.sol +261 -62
  409. package/contracts/shared/Component.sol +281 -0
  410. package/contracts/shared/ComponentService.sol +581 -0
  411. package/contracts/shared/ComponentServiceManager.sol +35 -0
  412. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  413. package/contracts/shared/ERC165.sol +1 -1
  414. package/contracts/shared/IComponent.sol +70 -0
  415. package/contracts/shared/IComponentService.sol +102 -0
  416. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  417. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  418. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  419. package/contracts/shared/INftOwnable.sol +2 -2
  420. package/contracts/shared/IPolicyHolder.sol +29 -10
  421. package/contracts/shared/IRegistryLinked.sol +0 -1
  422. package/contracts/shared/IService.sol +15 -6
  423. package/contracts/shared/InitializableCustom.sol +177 -0
  424. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  425. package/contracts/shared/KeyValueStore.sol +131 -0
  426. package/contracts/shared/Lifecycle.sol +77 -0
  427. package/contracts/shared/MainnetId.sol +29 -0
  428. package/contracts/shared/NftIdSet.sol +65 -0
  429. package/contracts/shared/NftOwnable.sol +3 -16
  430. package/contracts/shared/PolicyHolder.sol +40 -19
  431. package/contracts/shared/Registerable.sol +15 -14
  432. package/contracts/shared/RegistryLinked.sol +0 -5
  433. package/contracts/shared/Service.sol +47 -23
  434. package/contracts/shared/TokenHandler.sol +37 -6
  435. package/contracts/staking/IStaking.sol +167 -0
  436. package/contracts/staking/IStakingService.sol +160 -0
  437. package/contracts/staking/StakeManagerLib.sol +231 -0
  438. package/contracts/staking/Staking.sol +510 -0
  439. package/contracts/staking/StakingLifecycle.sol +23 -0
  440. package/contracts/staking/StakingManager.sol +50 -0
  441. package/contracts/staking/StakingReader.sol +183 -0
  442. package/contracts/staking/StakingService.sol +411 -0
  443. package/contracts/staking/StakingServiceManager.sol +44 -0
  444. package/contracts/staking/StakingStore.sol +605 -0
  445. package/contracts/staking/TargetManagerLib.sol +207 -0
  446. package/contracts/{types → type}/AddressSet.sol +1 -1
  447. package/contracts/type/Amount.sol +128 -0
  448. package/contracts/{types → type}/Blocknumber.sol +21 -3
  449. package/contracts/{types → type}/ClaimId.sol +25 -2
  450. package/contracts/{types → type}/Fee.sol +33 -23
  451. package/contracts/{types → type}/NftId.sol +21 -15
  452. package/contracts/{types → type}/NftIdSet.sol +2 -2
  453. package/contracts/type/ObjectType.sol +271 -0
  454. package/contracts/{types → type}/PayoutId.sol +33 -5
  455. package/contracts/{types → type}/Referral.sol +5 -1
  456. package/contracts/type/RequestId.sol +75 -0
  457. package/contracts/{types → type}/RiskId.sol +1 -1
  458. package/contracts/type/RoleId.sol +174 -0
  459. package/contracts/type/Seconds.sol +81 -0
  460. package/contracts/type/Selector.sol +102 -0
  461. package/contracts/{types → type}/StateId.sol +34 -4
  462. package/contracts/type/String.sol +53 -0
  463. package/contracts/{types → type}/Timestamp.sol +23 -14
  464. package/contracts/{types → type}/UFixed.sol +7 -0
  465. package/contracts/{types → type}/Version.sol +5 -2
  466. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  467. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  468. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  469. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  470. package/package.json +8 -5
  471. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  472. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  473. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  474. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  475. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  477. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  478. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  481. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  483. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  485. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  487. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  489. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  491. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  493. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  495. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  497. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  499. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  501. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  503. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  505. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  507. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  510. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  512. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  514. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  516. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  518. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  520. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  521. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  522. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  523. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  524. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  525. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  526. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  527. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  529. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  530. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  531. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  532. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  536. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  538. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  540. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  542. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  544. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  546. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  548. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  550. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  554. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  558. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  561. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  563. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  565. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  567. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  569. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  571. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  572. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  573. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  574. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  575. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  576. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  577. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  578. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  579. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  580. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  581. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  582. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  584. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  585. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  586. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  587. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  588. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  589. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  590. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  591. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  593. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  595. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  597. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  598. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  599. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  600. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  601. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  603. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  605. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  607. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  609. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  611. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  613. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  615. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  616. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  617. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  619. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  621. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  623. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  625. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  627. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  629. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  632. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  634. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  636. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  638. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  640. package/contracts/components/Component.sol +0 -242
  641. package/contracts/components/IComponent.sol +0 -55
  642. package/contracts/components/IDistributionComponent.sol +0 -100
  643. package/contracts/components/IPoolComponent.sol +0 -87
  644. package/contracts/components/IProductComponent.sol +0 -39
  645. package/contracts/components/Pool.sol +0 -254
  646. package/contracts/components/Product.sol +0 -285
  647. package/contracts/experiment/cloning/Cloner.sol +0 -47
  648. package/contracts/experiment/errors/Require.sol +0 -38
  649. package/contracts/experiment/errors/Revert.sol +0 -44
  650. package/contracts/experiment/inheritance/A.sol +0 -53
  651. package/contracts/experiment/inheritance/B.sol +0 -28
  652. package/contracts/experiment/inheritance/C.sol +0 -34
  653. package/contracts/experiment/inheritance/IA.sol +0 -13
  654. package/contracts/experiment/inheritance/IB.sol +0 -10
  655. package/contracts/experiment/inheritance/IC.sol +0 -12
  656. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  657. package/contracts/experiment/statemachine/ISM.sol +0 -25
  658. package/contracts/experiment/statemachine/SM.sol +0 -57
  659. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  660. package/contracts/experiment/types/TypeA.sol +0 -47
  661. package/contracts/experiment/types/TypeB.sol +0 -29
  662. package/contracts/instance/InstanceAccessManager.sol +0 -297
  663. package/contracts/instance/base/ComponentService.sol +0 -134
  664. package/contracts/instance/base/KeyValueStore.sol +0 -172
  665. package/contracts/instance/base/Lifecycle.sol +0 -100
  666. package/contracts/instance/module/ITreasury.sol +0 -23
  667. package/contracts/instance/service/ApplicationService.sol +0 -268
  668. package/contracts/instance/service/BundleService.sol +0 -298
  669. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  670. package/contracts/instance/service/ClaimService.sol +0 -151
  671. package/contracts/instance/service/DistributionService.sol +0 -277
  672. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  673. package/contracts/instance/service/IBundleService.sol +0 -54
  674. package/contracts/instance/service/IClaimService.sol +0 -61
  675. package/contracts/instance/service/IDistributionService.sol +0 -65
  676. package/contracts/instance/service/IPoolService.sol +0 -20
  677. package/contracts/instance/service/IProductService.sol +0 -40
  678. package/contracts/instance/service/PolicyService.sol +0 -474
  679. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  680. package/contracts/instance/service/PoolService.sol +0 -109
  681. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  682. package/contracts/instance/service/ProductService.sol +0 -233
  683. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  684. package/contracts/registry/RegistryAccessManager.sol +0 -216
  685. package/contracts/registry/ReleaseManager.sol +0 -322
  686. package/contracts/shared/ContractDeployerLib.sol +0 -72
  687. package/contracts/test/TestFee.sol +0 -25
  688. package/contracts/test/TestRegisterable.sol +0 -18
  689. package/contracts/test/TestRoleId.sol +0 -14
  690. package/contracts/test/TestService.sol +0 -25
  691. package/contracts/test/TestVersion.sol +0 -44
  692. package/contracts/test/TestVersionable.sol +0 -17
  693. package/contracts/test/Usdc.sol +0 -26
  694. package/contracts/types/ChainId.sol +0 -38
  695. package/contracts/types/NumberId.sol +0 -52
  696. package/contracts/types/ObjectType.sol +0 -156
  697. package/contracts/types/RoleId.sol +0 -90
  698. /package/contracts/{types → type}/DistributorType.sol +0 -0
  699. /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,30 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "../../shared/IService.sol";
4
+ import {IPolicy} from "../instance/module/IPolicy.sol";
5
+ import {IService} from "../shared/IService.sol";
6
6
 
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ReferralId} from "../../types/Referral.sol";
9
- import {RiskId} from "../../types/RiskId.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
- import {Timestamp} from "../../types/Timestamp.sol";
12
- import {UFixed} from "../../types/UFixed.sol";
13
- 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";
14
13
 
15
14
  /// @dev gif service responsible for creating applications
16
15
  /// only product components may call transaction functions
17
16
  interface IApplicationService is IService {
18
17
 
19
- error IApplicationServicePolicyNotApplied(NftId applicationNftId);
18
+ error ErrorApplicationServiceNotProduct(NftId callerNftId, ObjectType callerType);
19
+ error ErrorApplicationServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
20
20
 
21
21
  /// @dev creates a new application based on the specified attributes
22
22
  /// may only be called by a product component
23
23
  function create(
24
24
  address applicationOwner,
25
25
  RiskId riskId,
26
- uint256 sumInsuredAmount,
27
- uint256 lifetime,
26
+ Amount sumInsuredAmount,
27
+ Seconds lifetime,
28
28
  NftId bundleNftId,
29
29
  ReferralId referralId,
30
30
  bytes memory applicationData
@@ -38,8 +38,8 @@ interface IApplicationService is IService {
38
38
  RiskId riskId,
39
39
  NftId bundleNftId,
40
40
  ReferralId referralId,
41
- uint256 sumInsuredAmount,
42
- uint256 lifetime,
41
+ Amount sumInsuredAmount,
42
+ Seconds lifetime,
43
43
  bytes memory applicationData
44
44
  ) external;
45
45
 
@@ -59,24 +59,4 @@ interface IApplicationService is IService {
59
59
  /// an application can only be revoked in applied state
60
60
  /// only the application holder may revoke an application
61
61
  function revoke(NftId policyNftId) external;
62
-
63
- /// @dev calculates the premium amount for the specified attributes
64
- /// also returns the various fee components involved with creating a policy
65
- function calculatePremium(
66
- RiskId riskId,
67
- uint256 sumInsuredAmount,
68
- uint256 lifetime,
69
- bytes memory applicationData,
70
- NftId bundleNftId,
71
- ReferralId referralId
72
- )
73
- external
74
- view
75
- returns (
76
- uint256 premiumAmount,
77
- uint256 distributionFeeAmount,
78
- uint256 productFeeAmount,
79
- uint256 poolFeeAmount,
80
- uint256 bundleFeeAmount
81
- );
82
- }
62
+ }