@etherisc/gif-next 0.0.2-716a895-659 → 0.0.2-7177fd8-761

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 (730) hide show
  1. package/README.md +224 -17
  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/access → authorization}/IAccess.sol/IAccess.json +1 -1
  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 +1518 -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 +1196 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +914 -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 +261 -1858
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +467 -2246
  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 +4 -0
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1693 -0
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -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/base/Cloneable.sol/Cloneable.json +137 -0
  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 +4 -0
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  70. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  71. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  72. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  73. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  74. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  76. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  78. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  79. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  80. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  82. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  84. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  86. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  88. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  90. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
  92. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  94. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  96. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1432 -0
  98. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  100. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +946 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1182 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1644 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +770 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -0
  122. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  124. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  125. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +834 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +242 -191
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +800 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +266 -278
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  138. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +145 -166
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1355 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +806 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  146. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  148. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  149. package/artifacts/contracts/product/Product.sol/Product.json +1238 -0
  150. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  152. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  154. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +525 -59
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +346 -278
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +830 -285
  164. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  166. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +532 -325
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +355 -124
  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 +1159 -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 +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Component.sol/Component.json +858 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1751 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +210 -215
  186. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/IComponent.sol/IComponent.json} +322 -159
  188. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  190. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +362 -376
  192. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  194. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  196. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  198. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  200. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  202. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  204. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  205. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +112 -67
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  208. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  210. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  212. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +102 -165
  214. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  216. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  218. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  220. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  226. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +198 -172
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +197 -0
  230. package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.dbg.json +4 -0
  231. package/artifacts/contracts/shared/TokenTransferLib.sol/TokenTransferLib.json +42 -0
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  240. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  242. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  244. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  246. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  248. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  250. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  294. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  304. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  306. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  307. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  308. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  310. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  312. package/contracts/authorization/AccessAdmin.sol +591 -0
  313. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  314. package/contracts/authorization/Authorization.sol +218 -0
  315. package/contracts/authorization/IAccess.sol +48 -0
  316. package/contracts/authorization/IAccessAdmin.sol +136 -0
  317. package/contracts/authorization/IAuthorization.sol +54 -0
  318. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  319. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  320. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  321. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  322. package/contracts/distribution/BasicDistribution.sol +138 -0
  323. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  324. package/contracts/distribution/Distribution.sol +295 -0
  325. package/contracts/distribution/DistributionService.sol +323 -0
  326. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  327. package/contracts/distribution/IDistributionComponent.sol +52 -0
  328. package/contracts/distribution/IDistributionService.sol +95 -0
  329. package/contracts/instance/BundleSet.sol +126 -0
  330. package/contracts/instance/IInstance.sol +78 -46
  331. package/contracts/instance/IInstanceService.sol +92 -0
  332. package/contracts/instance/Instance.sol +239 -72
  333. package/contracts/instance/InstanceAdmin.sol +266 -0
  334. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  335. package/contracts/instance/InstanceReader.sol +408 -0
  336. package/contracts/instance/InstanceService.sol +467 -0
  337. package/contracts/instance/InstanceServiceManager.sol +40 -0
  338. package/contracts/instance/InstanceStore.sol +277 -0
  339. package/contracts/instance/base/BalanceStore.sol +123 -0
  340. package/contracts/instance/base/Cloneable.sol +28 -0
  341. package/contracts/instance/base/ObjectCounter.sol +21 -0
  342. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  343. package/contracts/instance/base/ObjectSet.sol +79 -0
  344. package/contracts/instance/module/IAccess.sol +46 -0
  345. package/contracts/instance/module/IBundle.sol +20 -0
  346. package/contracts/instance/module/IComponents.sol +46 -0
  347. package/contracts/instance/module/IDistribution.sol +41 -0
  348. package/contracts/instance/module/IPolicy.sol +84 -0
  349. package/contracts/instance/module/IRisk.sol +11 -0
  350. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  351. package/contracts/oracle/BasicOracle.sol +48 -0
  352. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  353. package/contracts/oracle/IOracle.sol +36 -0
  354. package/contracts/oracle/IOracleComponent.sol +33 -0
  355. package/contracts/oracle/IOracleService.sol +65 -0
  356. package/contracts/oracle/Oracle.sol +166 -0
  357. package/contracts/oracle/OracleService.sol +278 -0
  358. package/contracts/oracle/OracleServiceManager.sol +39 -0
  359. package/contracts/pool/BasicPool.sol +166 -0
  360. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  361. package/contracts/pool/BundleService.sol +437 -0
  362. package/contracts/pool/BundleServiceManager.sol +39 -0
  363. package/contracts/pool/IBundleService.sol +133 -0
  364. package/contracts/pool/IPoolComponent.sol +58 -0
  365. package/contracts/pool/IPoolService.sol +147 -0
  366. package/contracts/pool/Pool.sol +328 -0
  367. package/contracts/pool/PoolService.sol +524 -0
  368. package/contracts/pool/PoolServiceManager.sol +39 -0
  369. package/contracts/product/ApplicationService.sol +250 -0
  370. package/contracts/product/ApplicationServiceManager.sol +38 -0
  371. package/contracts/product/BasicProduct.sol +52 -0
  372. package/contracts/product/BasicProductAuthorization.sol +43 -0
  373. package/contracts/product/ClaimService.sol +417 -0
  374. package/contracts/product/ClaimServiceManager.sol +38 -0
  375. package/contracts/product/IApplicationService.sol +63 -0
  376. package/contracts/product/IClaimService.sol +100 -0
  377. package/contracts/product/IPolicyService.sol +84 -0
  378. package/contracts/product/IPricingService.sol +39 -0
  379. package/contracts/product/IProductComponent.sol +40 -0
  380. package/contracts/product/IProductService.sol +34 -0
  381. package/contracts/product/PolicyService.sol +600 -0
  382. package/contracts/product/PolicyServiceManager.sol +39 -0
  383. package/contracts/product/PricingService.sol +304 -0
  384. package/contracts/product/PricingServiceManager.sol +39 -0
  385. package/contracts/product/Product.sol +413 -0
  386. package/contracts/product/ProductService.sol +99 -0
  387. package/contracts/product/ProductServiceManager.sol +39 -0
  388. package/contracts/registry/ChainNft.sol +53 -23
  389. package/contracts/registry/IRegistry.sol +91 -14
  390. package/contracts/registry/IRegistryService.sol +54 -20
  391. package/contracts/registry/ITransferInterceptor.sol +1 -0
  392. package/contracts/registry/Registry.sol +403 -253
  393. package/contracts/registry/RegistryAdmin.sol +365 -0
  394. package/contracts/registry/RegistryService.sol +120 -309
  395. package/contracts/registry/RegistryServiceManager.sol +27 -37
  396. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  397. package/contracts/registry/ReleaseRegistry.sol +485 -0
  398. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  399. package/contracts/registry/TokenRegistry.sol +315 -0
  400. package/contracts/shared/Component.sol +281 -0
  401. package/contracts/shared/ComponentService.sol +640 -0
  402. package/contracts/shared/ComponentServiceManager.sol +35 -0
  403. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  404. package/contracts/shared/IComponent.sol +71 -0
  405. package/contracts/shared/IComponentService.sol +108 -0
  406. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  407. package/contracts/shared/IKeyValueStore.sol +54 -0
  408. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
  409. package/contracts/shared/INftOwnable.sol +13 -12
  410. package/contracts/shared/IPolicyHolder.sol +45 -0
  411. package/contracts/shared/IRegisterable.sol +4 -6
  412. package/contracts/shared/IRegistryLinked.sol +11 -0
  413. package/contracts/shared/IService.sol +25 -0
  414. package/contracts/shared/InitializableCustom.sol +177 -0
  415. package/contracts/shared/InitializableERC165.sol +27 -0
  416. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  417. package/contracts/shared/KeyValueStore.sol +131 -0
  418. package/contracts/shared/Lifecycle.sol +77 -0
  419. package/contracts/shared/NftIdSet.sol +65 -0
  420. package/contracts/shared/NftOwnable.sol +60 -89
  421. package/contracts/shared/PolicyHolder.sol +99 -0
  422. package/contracts/shared/Registerable.sol +26 -40
  423. package/contracts/shared/RegistryLinked.sol +43 -0
  424. package/contracts/shared/Service.sol +82 -0
  425. package/contracts/shared/TokenHandler.sol +62 -0
  426. package/contracts/shared/TokenTransferLib.sol +60 -0
  427. package/contracts/staking/IStaking.sol +167 -0
  428. package/contracts/staking/IStakingService.sol +160 -0
  429. package/contracts/staking/StakeManagerLib.sol +231 -0
  430. package/contracts/staking/Staking.sol +516 -0
  431. package/contracts/staking/StakingLifecycle.sol +23 -0
  432. package/contracts/staking/StakingManager.sol +50 -0
  433. package/contracts/staking/StakingReader.sol +183 -0
  434. package/contracts/staking/StakingService.sol +407 -0
  435. package/contracts/staking/StakingServiceManager.sol +44 -0
  436. package/contracts/staking/StakingStore.sol +605 -0
  437. package/contracts/staking/TargetManagerLib.sol +207 -0
  438. package/contracts/{types → type}/AddressSet.sol +1 -1
  439. package/contracts/type/Amount.sol +135 -0
  440. package/contracts/{types → type}/Blocknumber.sol +27 -3
  441. package/contracts/type/ClaimId.sol +75 -0
  442. package/contracts/type/DistributorType.sol +55 -0
  443. package/contracts/type/Fee.sol +66 -0
  444. package/contracts/{types → type}/Key32.sol +8 -3
  445. package/contracts/{types → type}/NftId.sol +21 -15
  446. package/contracts/type/NftIdSet.sol +62 -0
  447. package/contracts/type/ObjectType.sol +271 -0
  448. package/contracts/type/PayoutId.sol +82 -0
  449. package/contracts/type/Referral.sol +90 -0
  450. package/contracts/type/RequestId.sol +75 -0
  451. package/contracts/{types → type}/RiskId.sol +1 -1
  452. package/contracts/type/RoleId.sol +174 -0
  453. package/contracts/type/Seconds.sol +93 -0
  454. package/contracts/type/Selector.sol +102 -0
  455. package/contracts/{types → type}/StateId.sol +39 -5
  456. package/contracts/type/String.sol +53 -0
  457. package/contracts/{types → type}/Timestamp.sol +38 -15
  458. package/contracts/type/UFixed.sol +351 -0
  459. package/contracts/{types → type}/Version.sol +8 -2
  460. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  461. package/contracts/upgradeability/ProxyManager.sol +198 -0
  462. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  463. package/contracts/upgradeability/Versionable.sol +59 -0
  464. package/package.json +11 -7
  465. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  466. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  467. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -557
  468. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  469. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -254
  470. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  471. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -177
  472. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  473. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -308
  474. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  475. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -207
  476. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  477. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -716
  478. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  479. package/artifacts/contracts/components/Product.sol/Product.json +0 -614
  480. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  482. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  484. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  486. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  488. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  490. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  492. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  494. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  497. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  499. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  501. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  504. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  506. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  508. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  510. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  512. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  513. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  514. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  516. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  517. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  522. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  523. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  524. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  525. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  526. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  529. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  532. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  534. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  537. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  539. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  541. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  542. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  543. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  545. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  548. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -271
  551. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
  553. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  555. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  557. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  559. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  562. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  564. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  566. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  568. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  570. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  572. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -630
  576. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  579. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -753
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1073
  585. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  586. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  587. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  588. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  589. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  590. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  591. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  592. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  593. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  595. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  596. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  597. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  598. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  599. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -557
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  603. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -716
  605. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -744
  607. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  609. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  611. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -584
  613. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  615. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  617. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  619. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  620. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  621. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  622. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  623. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  625. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -262
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  635. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  637. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  639. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  641. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  643. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  646. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -484
  648. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  650. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  652. package/contracts/components/BaseComponent.sol +0 -79
  653. package/contracts/components/Distribution.sol +0 -155
  654. package/contracts/components/IBaseComponent.sol +0 -19
  655. package/contracts/components/IDistributionComponent.sol +0 -46
  656. package/contracts/components/IPoolComponent.sol +0 -64
  657. package/contracts/components/IProductComponent.sol +0 -37
  658. package/contracts/components/Pool.sol +0 -246
  659. package/contracts/components/Product.sol +0 -299
  660. package/contracts/experiment/errors/Require.sol +0 -38
  661. package/contracts/experiment/errors/Revert.sol +0 -44
  662. package/contracts/experiment/inheritance/A.sol +0 -53
  663. package/contracts/experiment/inheritance/B.sol +0 -28
  664. package/contracts/experiment/inheritance/C.sol +0 -34
  665. package/contracts/experiment/inheritance/IA.sol +0 -13
  666. package/contracts/experiment/inheritance/IB.sol +0 -10
  667. package/contracts/experiment/inheritance/IC.sol +0 -12
  668. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  669. package/contracts/experiment/statemachine/ISM.sol +0 -25
  670. package/contracts/experiment/statemachine/SM.sol +0 -57
  671. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  672. package/contracts/experiment/types/TypeA.sol +0 -47
  673. package/contracts/experiment/types/TypeB.sol +0 -29
  674. package/contracts/instance/IInstanceLinked.sol +0 -8
  675. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  676. package/contracts/instance/base/IInstanceBase.sol +0 -23
  677. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  678. package/contracts/instance/base/IService.sol +0 -15
  679. package/contracts/instance/base/InstanceBase.sol +0 -89
  680. package/contracts/instance/base/KeyValueStore.sol +0 -161
  681. package/contracts/instance/base/Lifecycle.sol +0 -100
  682. package/contracts/instance/base/ModuleBase.sol +0 -57
  683. package/contracts/instance/base/ServiceBase.sol +0 -44
  684. package/contracts/instance/module/access/Access.sol +0 -149
  685. package/contracts/instance/module/access/IAccess.sol +0 -53
  686. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  687. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  688. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  689. package/contracts/instance/module/component/IComponent.sol +0 -28
  690. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  691. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  692. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  693. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  694. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  695. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  696. package/contracts/instance/module/risk/IRisk.sol +0 -26
  697. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  698. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  699. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  700. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  701. package/contracts/instance/service/ComponentOwnerService.sol +0 -312
  702. package/contracts/instance/service/DistributionService.sol +0 -54
  703. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  704. package/contracts/instance/service/IDistributionService.sol +0 -12
  705. package/contracts/instance/service/IPoolService.sol +0 -37
  706. package/contracts/instance/service/IProductService.sol +0 -107
  707. package/contracts/instance/service/PoolService.sol +0 -149
  708. package/contracts/instance/service/ProductService.sol +0 -510
  709. package/contracts/registry/IChainNft.sol +0 -22
  710. package/contracts/shared/ContractDeployerLib.sol +0 -72
  711. package/contracts/shared/ERC165.sol +0 -21
  712. package/contracts/shared/ProxyManager.sol +0 -94
  713. package/contracts/shared/Versionable.sol +0 -147
  714. package/contracts/test/TestDistribution.sol +0 -22
  715. package/contracts/test/TestFee.sol +0 -25
  716. package/contracts/test/TestPool.sol +0 -27
  717. package/contracts/test/TestProduct.sol +0 -74
  718. package/contracts/test/TestRegisterable.sol +0 -18
  719. package/contracts/test/TestRoleId.sol +0 -14
  720. package/contracts/test/TestService.sol +0 -26
  721. package/contracts/test/TestToken.sol +0 -26
  722. package/contracts/test/TestVersion.sol +0 -44
  723. package/contracts/test/TestVersionable.sol +0 -17
  724. package/contracts/types/ChainId.sol +0 -38
  725. package/contracts/types/Fee.sol +0 -56
  726. package/contracts/types/NftIdSet.sol +0 -60
  727. package/contracts/types/ObjectType.sol +0 -131
  728. package/contracts/types/ReferralId.sol +0 -48
  729. package/contracts/types/RoleId.sol +0 -45
  730. package/contracts/types/UFixed.sol +0 -209
@@ -1,510 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {Product} from "../../components/Product.sol";
7
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
8
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
- import {IPolicy, IPolicyModule} from "../module/policy/IPolicy.sol";
11
- import {IPool} from "../module/pool/IPoolModule.sol";
12
- import {IRisk} from "../module/risk/IRisk.sol";
13
- import {IBundle} from "../module/bundle/IBundle.sol";
14
- import {IProductService} from "./IProductService.sol";
15
- import {ITreasury, ITreasuryModule, TokenHandler} from "../../instance/module/treasury/ITreasury.sol";
16
-
17
- import {IVersionable} from "../../shared/IVersionable.sol";
18
- import {Versionable} from "../../shared/Versionable.sol";
19
-
20
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
21
- import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
22
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
23
- import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
24
- import {APPLIED, UNDERWRITTEN, ACTIVE} from "../../types/StateId.sol";
25
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
26
- import {Fee, FeeLib} from "../../types/Fee.sol";
27
- import {ReferralId} from "../../types/ReferralId.sol";
28
- import {RiskId} from "../../types/RiskId.sol";
29
- import {StateId} from "../../types/StateId.sol";
30
- import {Version, VersionLib} from "../../types/Version.sol";
31
-
32
- import {IService} from "../base/IService.sol";
33
- import {ServiceBase} from "../base/ServiceBase.sol";
34
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
35
- import {IProductService} from "./IProductService.sol";
36
-
37
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
38
- contract ProductService is ComponentServiceBase, IProductService {
39
- using NftIdLib for NftId;
40
-
41
- string public constant NAME = "ProductService";
42
-
43
- event LogProductServiceSender(address sender);
44
-
45
- constructor(
46
- address registry,
47
- NftId registryNftId,
48
- address initialOwner
49
- ) ComponentServiceBase(registry, registryNftId, initialOwner)
50
- {
51
- _registerInterface(type(IProductService).interfaceId);
52
- }
53
-
54
-
55
- function getName() public pure override(IService, ServiceBase) returns(string memory name) {
56
- return NAME;
57
- }
58
-
59
- function setFees(
60
- Fee memory productFee,
61
- Fee memory processingFee
62
- )
63
- external
64
- override
65
- {
66
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
67
- NftId productNftId = productInfo.nftId;
68
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
69
- treasuryInfo.productFee = productFee;
70
- treasuryInfo.processingFee = processingFee;
71
- instance.setTreasuryInfo(productNftId, treasuryInfo);
72
- }
73
-
74
- function createRisk(
75
- RiskId riskId,
76
- bytes memory data
77
- ) external override {
78
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
79
- NftId productNftId = productInfo.nftId;
80
- instance.createRisk(
81
- riskId,
82
- productNftId,
83
- data
84
- );
85
- }
86
-
87
- function setRiskInfo(
88
- RiskId riskId,
89
- IRisk.RiskInfo memory info
90
- ) external {
91
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
92
- instance.setRiskInfo(
93
- riskId,
94
- info
95
- );
96
- }
97
-
98
- function updateRiskState(
99
- RiskId riskId,
100
- StateId state
101
- ) external {
102
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
103
- instance.updateRiskState(
104
- riskId,
105
- state
106
- );
107
- }
108
-
109
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
110
- IRegistry.ObjectInfo memory productInfo;
111
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
112
- product = Product(productInfo.objectAddress);
113
- }
114
-
115
- function calculatePremium(
116
- RiskId riskId,
117
- uint256 sumInsuredAmount,
118
- uint256 lifetime,
119
- bytes memory applicationData,
120
- NftId bundleNftId,
121
- ReferralId referralId
122
- )
123
- public
124
- view
125
- override
126
- returns (
127
- uint256 premiumAmount,
128
- uint256 productFeeAmount,
129
- uint256 poolFeeAmount,
130
- uint256 bundleFeeAmount,
131
- uint256 distributionFeeAmount
132
- )
133
- {
134
- Product product = _getAndVerifyInstanceAndProduct();
135
- uint256 netPremiumAmount = product.calculateNetPremium(
136
- sumInsuredAmount,
137
- riskId,
138
- lifetime,
139
- applicationData
140
- );
141
-
142
- (
143
- productFeeAmount,
144
- poolFeeAmount,
145
- bundleFeeAmount,
146
- distributionFeeAmount
147
- ) = _calculateFeeAmounts(
148
- netPremiumAmount,
149
- product,
150
- bundleNftId,
151
- referralId
152
- );
153
-
154
- premiumAmount = netPremiumAmount + productFeeAmount;
155
- premiumAmount += poolFeeAmount + bundleFeeAmount;
156
- premiumAmount += distributionFeeAmount;
157
- }
158
-
159
- function _calculateFeeAmounts(
160
- uint256 netPremiumAmount,
161
- Product product,
162
- NftId bundleNftId,
163
- ReferralId referralId
164
- )
165
- internal
166
- view
167
- returns (
168
- uint256 productFeeAmount,
169
- uint256 poolFeeAmount,
170
- uint256 bundleFeeAmount,
171
- uint256 distributionFeeAmount
172
- )
173
- {
174
- IInstance instance = product.getInstance();
175
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(product.getNftId());
176
- IBundle.BundleInfo memory bundleInfo = instance.getBundleInfo(bundleNftId);
177
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
178
-
179
- (productFeeAmount,) = FeeLib.calculateFee(treasuryInfo.productFee, netPremiumAmount);
180
- (poolFeeAmount,) = FeeLib.calculateFee(treasuryInfo.poolFee, netPremiumAmount);
181
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
182
-
183
- IRegistry.ObjectInfo memory distributionInfo = getRegistry().getObjectInfo(treasuryInfo.distributionNftId);
184
- IDistributionComponent distribution = IDistributionComponent(distributionInfo.objectAddress);
185
- distributionFeeAmount = distribution.calculateFeeAmount(referralId, netPremiumAmount);
186
- }
187
-
188
-
189
- function createApplication(
190
- address applicationOwner,
191
- RiskId riskId,
192
- uint256 sumInsuredAmount,
193
- uint256 lifetime,
194
- bytes memory applicationData,
195
- NftId bundleNftId,
196
- ReferralId referralId
197
- ) external override returns (NftId policyNftId) {
198
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
199
- // TODO add validations (see create bundle in pool service)
200
-
201
- policyNftId = getRegistryService().registerPolicy(
202
- IRegistry.ObjectInfo(
203
- zeroNftId(),
204
- productInfo.nftId,
205
- POLICY(),
206
- false, // intercepting property for policies is defined on product
207
- address(0),
208
- applicationOwner,
209
- ""
210
- )
211
- );
212
-
213
- (uint256 premiumAmount,,,,) = calculatePremium(
214
- riskId,
215
- sumInsuredAmount,
216
- lifetime,
217
- applicationData,
218
- bundleNftId,
219
- referralId
220
- );
221
-
222
- instance.createPolicyInfo(
223
- policyNftId,
224
- productInfo.nftId,
225
- referralId,
226
- riskId,
227
- sumInsuredAmount,
228
- premiumAmount,
229
- lifetime,
230
- bundleNftId
231
- );
232
-
233
- // TODO add logging
234
- }
235
-
236
- function _getAndVerifyUnderwritingSetup(
237
- IInstance instance,
238
- IPolicy.PolicyInfo memory policyInfo
239
- )
240
- internal
241
- view
242
- returns (
243
- ITreasury.TreasuryInfo memory treasuryInfo,
244
- NftId bundleNftId,
245
- IBundle.BundleInfo memory bundleInfo,
246
- uint256 collateralAmount
247
- )
248
- {
249
- // check match between policy and bundle (via pool)
250
- treasuryInfo = instance.getTreasuryInfo(policyInfo.productNftId);
251
- bundleNftId = policyInfo.bundleNftId;
252
- bundleInfo = instance.getBundleInfo(bundleNftId);
253
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
254
-
255
- // calculate required collateral
256
- NftId poolNftId = treasuryInfo.poolNftId;
257
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
258
-
259
- // obtain remaining return values
260
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
261
- }
262
-
263
- function _lockCollateralInBundle(
264
- IInstance instance,
265
- NftId bundleNftId,
266
- IBundle.BundleInfo memory bundleInfo,
267
- NftId policyNftId,
268
- uint256 collateralAmount
269
- )
270
- internal
271
- returns (IBundle.BundleInfo memory)
272
- {
273
- bundleInfo.lockedAmount += collateralAmount;
274
- instance.collateralizePolicy(bundleNftId, policyNftId, collateralAmount);
275
- return bundleInfo;
276
- }
277
-
278
- function _underwriteByPool(
279
- ITreasury.TreasuryInfo memory treasuryInfo,
280
- NftId policyNftId,
281
- IPolicy.PolicyInfo memory policyInfo,
282
- bytes memory bundleFilter,
283
- uint256 collateralAmount
284
- )
285
- internal
286
- {
287
- address poolAddress = getRegistry().getObjectInfo(treasuryInfo.poolNftId).objectAddress;
288
- IPoolComponent pool = IPoolComponent(poolAddress);
289
- pool.underwrite(
290
- policyNftId,
291
- policyInfo.applicationData,
292
- bundleFilter,
293
- collateralAmount);
294
- }
295
-
296
-
297
- function revoke(
298
- NftId policyNftId
299
- )
300
- external
301
- override
302
- {
303
- require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
304
- }
305
-
306
-
307
- function underwrite(
308
- NftId policyNftId,
309
- bool requirePremiumPayment,
310
- Timestamp activateAt
311
- )
312
- external
313
- override
314
- {
315
- // check caller is registered product
316
- (
317
- IRegistry.ObjectInfo memory productInfo,
318
- IInstance instance
319
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
320
-
321
- // check match between policy and calling product
322
- NftId productNftId = productInfo.nftId;
323
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
324
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
325
- require(instance.getState(policyNftId.toKey32(POLICY())) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
326
-
327
- ITreasury.TreasuryInfo memory treasuryInfo;
328
- NftId bundleNftId;
329
- IBundle.BundleInfo memory bundleInfo;
330
- uint256 collateralAmount;
331
-
332
- (
333
- treasuryInfo,
334
- bundleNftId,
335
- bundleInfo,
336
- collateralAmount
337
- ) = _getAndVerifyUnderwritingSetup(
338
- instance,
339
- policyInfo
340
- );
341
-
342
- // lock bundle collateral
343
- bundleInfo = _lockCollateralInBundle(
344
- instance,
345
- bundleNftId,
346
- bundleInfo,
347
- policyNftId,
348
- collateralAmount);
349
-
350
- // set policy state to underwritten
351
- instance.updatePolicyState(policyNftId, UNDERWRITTEN());
352
-
353
- // optional activation of policy
354
- if(activateAt > zeroTimestamp()) {
355
- policyInfo.activatedAt = activateAt;
356
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
357
-
358
- instance.updatePolicyState(policyNftId, ACTIVE());
359
- }
360
-
361
- // optional collection of premium
362
- if(requirePremiumPayment) {
363
- uint256 netPremiumAmount = _processPremiumByTreasury(
364
- instance,
365
- productInfo.nftId,
366
- treasuryInfo,
367
- policyNftId,
368
- policyInfo.premiumAmount);
369
-
370
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
371
- bundleInfo.balanceAmount += netPremiumAmount;
372
- }
373
-
374
- instance.setPolicyInfo(policyNftId, policyInfo);
375
- instance.setBundleInfo(bundleNftId, bundleInfo);
376
-
377
- // involve pool if necessary
378
- {
379
- NftId poolNftId = treasuryInfo.poolNftId;
380
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
381
-
382
- if(poolInfo.isVerifying) {
383
- _underwriteByPool(
384
- treasuryInfo,
385
- policyNftId,
386
- policyInfo,
387
- bundleInfo.filter,
388
- collateralAmount
389
- );
390
- }
391
- }
392
-
393
- // TODO add logging
394
- }
395
-
396
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
397
- UFixed sumInsuredUFixed = UFixedMathLib.toUFixed(sumInsuredAmount);
398
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
399
- return collateralUFixed.toInt();
400
- }
401
-
402
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
403
- // check caller is registered product
404
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
405
-
406
- // perform actual token transfers
407
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
408
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productInfo.nftId);
409
-
410
- uint256 premiumAmount = policyInfo.premiumAmount;
411
- _processPremiumByTreasury(instance, productInfo.nftId, treasuryInfo, policyNftId, premiumAmount);
412
-
413
- // policy level book keeping for premium paid
414
- policyInfo.premiumPaidAmount += premiumAmount;
415
-
416
- // optional activation of policy
417
- if(activateAt > zeroTimestamp()) {
418
- require(
419
- policyInfo.activatedAt.eqz(),
420
- "ERROR:PRS-030:ALREADY_ACTIVATED");
421
-
422
- policyInfo.activatedAt = activateAt;
423
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
424
-
425
- instance.updatePolicyState(policyNftId, ACTIVE());
426
- }
427
-
428
- instance.setPolicyInfo(policyNftId, policyInfo);
429
-
430
- // TODO add logging
431
- }
432
-
433
- function activate(NftId policyNftId, Timestamp activateAt) external override {
434
- // check caller is registered product
435
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
436
-
437
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
438
-
439
- require(
440
- policyInfo.activatedAt.eqz(),
441
- "ERROR:PRS-020:ALREADY_ACTIVATED");
442
-
443
- policyInfo.activatedAt = activateAt;
444
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
445
-
446
- instance.setPolicyInfo(policyNftId, policyInfo);
447
- instance.updatePolicyState(policyNftId, ACTIVE());
448
-
449
- // TODO add logging
450
- }
451
-
452
- function close(
453
- NftId policyNftId
454
- ) external override // solhint-disable-next-line no-empty-blocks
455
- {
456
-
457
- }
458
-
459
- function _getPoolNftId(
460
- IInstance instance,
461
- NftId productNftId
462
- )
463
- internal
464
- view
465
- returns (NftId poolNftid)
466
- {
467
- return instance.getTreasuryInfo(productNftId).poolNftId;
468
- }
469
-
470
-
471
- function _processPremiumByTreasury(
472
- IInstance instance,
473
- NftId productNftId,
474
- ITreasury.TreasuryInfo memory treasuryInfo,
475
- NftId policyNftId,
476
- uint256 premiumAmount
477
- )
478
- internal
479
- returns (uint256 netPremiumAmount)
480
- {
481
- // process token transfer(s)
482
- if(premiumAmount > 0) {
483
- TokenHandler tokenHandler = instance.getTokenHandler(productNftId);
484
- address policyOwner = getRegistry().ownerOf(policyNftId);
485
- address poolWallet = instance.getComponentWallet(treasuryInfo.poolNftId);
486
- netPremiumAmount = premiumAmount;
487
- Fee memory productFee = treasuryInfo.productFee;
488
-
489
- if (FeeLib.feeIsZero(productFee)) {
490
- tokenHandler.transfer(
491
- policyOwner,
492
- poolWallet,
493
- premiumAmount
494
- );
495
- } else {
496
- (uint256 feeAmount, uint256 netAmount) = instance.calculateFeeAmount(
497
- premiumAmount,
498
- productFee
499
- );
500
-
501
- address productWallet = instance.getComponentWallet(productNftId);
502
- tokenHandler.transfer(policyOwner, productWallet, feeAmount);
503
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
504
- netPremiumAmount = netAmount;
505
- }
506
- }
507
-
508
- // TODO add logging
509
- }
510
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
5
-
6
- interface IChainNft is IERC721Enumerable {
7
- function mint(
8
- address to,
9
- address interceptor,
10
- string memory uri
11
- ) external returns (uint256 tokenId);
12
-
13
- function burn(uint256 tokenId) external;
14
-
15
- function setURI(uint256 tokenId, string memory uri) external;
16
-
17
- function exists(uint256 tokenId) external view returns (bool);
18
-
19
- function totalMinted() external view returns (uint256);
20
-
21
- function getRegistryAddress() external view returns (address registry);
22
- }
@@ -1,72 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- library ContractDeployerLib {
5
-
6
- event LogContractDeployed(address contractAddress);
7
-
8
- error ErrorCreationCodeHashMismatch(bytes32 expectedHash, bytes32 actualHash);
9
-
10
- /// @dev deploys a new contract using the provided creation code
11
- function deploy(
12
- bytes memory creationCode,
13
- bytes32 expectedCreationCodeHash
14
- )
15
- public
16
- returns (address contractAdress)
17
- {
18
- // check against expected hash, if provided
19
- if (expectedCreationCodeHash != bytes32(0)) {
20
- bytes32 creationCodeHash = getHash(creationCode);
21
- if (creationCodeHash != expectedCreationCodeHash) {
22
- revert ErrorCreationCodeHashMismatch(expectedCreationCodeHash, creationCodeHash);
23
- }
24
- }
25
-
26
- // solhint-disable no-inline-assembly
27
- assembly {
28
- contractAdress := create(0, add(creationCode, 0x20), mload(creationCode))
29
-
30
- if iszero(extcodesize(contractAdress)) {
31
- revert(0, 0)
32
- }
33
- }
34
- // solhint enable
35
-
36
- emit LogContractDeployed(contractAdress);
37
- }
38
-
39
- /// @dev gets the creation code for the new contract
40
- // for terminology see eg https://www.rareskills.io/post/ethereum-contract-creation-code
41
- function getCreationCode(
42
- bytes memory byteCodeWithInitCode, // what you get with type(<Contract>).creationCode
43
- bytes memory encodedConstructorArguments // what you get with
44
- )
45
- public
46
- pure
47
- returns (bytes memory creationCode)
48
- {
49
- return abi.encodePacked(byteCodeWithInitCode, encodedConstructorArguments);
50
- }
51
-
52
-
53
- function matchesWithHash(
54
- bytes memory creationCode,
55
- bytes32 expectedHash
56
- )
57
- public
58
- pure
59
- returns (bool isMatching)
60
- {
61
- return getHash(creationCode) == expectedHash;
62
- }
63
-
64
-
65
- function getHash(bytes memory creationCode)
66
- public
67
- pure
68
- returns (bytes32 hash)
69
- {
70
- return keccak256(creationCode);
71
- }
72
- }
@@ -1,21 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
-
6
- contract ERC165 is IERC165 {
7
- mapping(bytes4 => bool) private _isSupported;
8
-
9
- constructor() {
10
- // register support for ERC165
11
- _registerInterface(type(IERC165).interfaceId);
12
- }
13
-
14
- function supportsInterface(bytes4 interfaceId) external view override returns (bool) {
15
- return _isSupported[interfaceId];
16
- }
17
-
18
- function _registerInterface(bytes4 interfaceId) internal {
19
- _isSupported[interfaceId] = true;
20
- }
21
- }