@etherisc/gif-next 0.0.2-e875d61-189 → 0.0.2-e8ea17d-715

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 (703) hide show
  1. package/README.md +279 -40
  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 +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +900 -0
  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 +240 -1457
  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 +386 -1697
  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 +1735 -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 +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/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/IDistribution.sol/IDistribution.json +10 -0
  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 +772 -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 +1063 -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 +1477 -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 +1134 -0
  102. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  104. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  106. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
  108. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  110. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  112. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  114. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  116. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  117. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  118. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  120. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  121. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -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 +1315 -0
  126. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  128. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  130. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  132. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  134. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  136. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  137. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  138. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  140. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  142. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  144. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -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 +1257 -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 +199 -12
  156. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +655 -50
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
  160. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  161. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  162. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/Registry.sol/Registry.json +885 -99
  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 +4 -0
  167. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  168. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  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 +896 -0
  180. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  181. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  182. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  184. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  186. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  191. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +474 -0
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  198. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  199. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  200. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  205. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  206. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +154 -152
  208. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  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/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +102 -165
  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/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  220. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  221. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  222. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  223. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  224. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  229. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  230. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  231. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  234. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  235. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  236. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  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/contracts/authorization/AccessAdmin.sol +591 -0
  311. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  312. package/contracts/authorization/Authorization.sol +218 -0
  313. package/contracts/authorization/IAccess.sol +48 -0
  314. package/contracts/authorization/IAccessAdmin.sol +136 -0
  315. package/contracts/authorization/IAuthorization.sol +54 -0
  316. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  317. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  318. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  319. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  320. package/contracts/distribution/BasicDistribution.sol +149 -0
  321. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  322. package/contracts/distribution/Distribution.sol +283 -0
  323. package/contracts/distribution/DistributionService.sol +302 -0
  324. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  325. package/contracts/distribution/IDistributionComponent.sol +48 -0
  326. package/contracts/distribution/IDistributionService.sol +85 -0
  327. package/contracts/instance/BundleSet.sol +126 -0
  328. package/contracts/instance/IInstance.sol +79 -43
  329. package/contracts/instance/IInstanceService.sol +92 -0
  330. package/contracts/instance/Instance.sol +239 -56
  331. package/contracts/instance/InstanceAdmin.sol +266 -0
  332. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  333. package/contracts/instance/InstanceReader.sol +405 -0
  334. package/contracts/instance/InstanceService.sol +443 -0
  335. package/contracts/instance/InstanceServiceManager.sol +44 -0
  336. package/contracts/instance/InstanceStore.sol +276 -0
  337. package/contracts/instance/base/BalanceStore.sol +123 -0
  338. package/contracts/instance/base/Cloneable.sol +28 -0
  339. package/contracts/instance/base/ObjectCounter.sol +21 -0
  340. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  341. package/contracts/instance/base/ObjectSet.sol +79 -0
  342. package/contracts/instance/module/IAccess.sol +46 -0
  343. package/contracts/instance/module/IBundle.sol +20 -0
  344. package/contracts/instance/module/IComponents.sol +52 -0
  345. package/contracts/instance/module/IDistribution.sol +42 -0
  346. package/contracts/instance/module/IPolicy.sol +84 -0
  347. package/contracts/instance/module/IRisk.sol +11 -0
  348. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  349. package/contracts/oracle/BasicOracle.sol +48 -0
  350. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  351. package/contracts/oracle/IOracle.sol +36 -0
  352. package/contracts/oracle/IOracleComponent.sol +32 -0
  353. package/contracts/oracle/IOracleService.sol +65 -0
  354. package/contracts/oracle/Oracle.sol +157 -0
  355. package/contracts/oracle/OracleService.sol +278 -0
  356. package/contracts/oracle/OracleServiceManager.sol +42 -0
  357. package/contracts/pool/BasicPool.sol +164 -0
  358. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  359. package/contracts/pool/BundleService.sol +296 -0
  360. package/contracts/pool/BundleServiceManager.sol +42 -0
  361. package/contracts/pool/IBundleService.sol +106 -0
  362. package/contracts/pool/IPoolComponent.sol +52 -0
  363. package/contracts/pool/IPoolService.sol +150 -0
  364. package/contracts/pool/Pool.sol +311 -0
  365. package/contracts/pool/PoolService.sol +451 -0
  366. package/contracts/pool/PoolServiceManager.sol +42 -0
  367. package/contracts/product/ApplicationService.sol +254 -0
  368. package/contracts/product/ApplicationServiceManager.sol +38 -0
  369. package/contracts/product/BasicProduct.sol +82 -0
  370. package/contracts/product/BasicProductAuthorization.sol +40 -0
  371. package/contracts/product/ClaimService.sol +442 -0
  372. package/contracts/product/ClaimServiceManager.sol +38 -0
  373. package/contracts/product/IApplicationService.sol +62 -0
  374. package/contracts/product/IClaimService.sol +99 -0
  375. package/contracts/product/IPolicyService.sol +78 -0
  376. package/contracts/product/IPricingService.sol +39 -0
  377. package/contracts/product/IProductComponent.sol +39 -0
  378. package/contracts/product/IProductService.sol +33 -0
  379. package/contracts/product/PolicyService.sol +475 -0
  380. package/contracts/product/PolicyServiceManager.sol +42 -0
  381. package/contracts/product/PricingService.sol +300 -0
  382. package/contracts/product/PricingServiceManager.sol +42 -0
  383. package/contracts/product/Product.sol +392 -0
  384. package/contracts/product/ProductService.sol +124 -0
  385. package/contracts/product/ProductServiceManager.sol +42 -0
  386. package/contracts/registry/ChainNft.sol +95 -37
  387. package/contracts/registry/IRegistry.sol +106 -29
  388. package/contracts/registry/IRegistryService.sol +69 -0
  389. package/contracts/registry/ITransferInterceptor.sol +7 -0
  390. package/contracts/registry/Registry.sol +475 -280
  391. package/contracts/registry/RegistryAdmin.sol +365 -0
  392. package/contracts/registry/RegistryService.sol +266 -0
  393. package/contracts/registry/RegistryServiceManager.sol +53 -0
  394. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  395. package/contracts/registry/ReleaseRegistry.sol +487 -0
  396. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  397. package/contracts/registry/TokenRegistry.sol +315 -0
  398. package/contracts/shared/Component.sol +281 -0
  399. package/contracts/shared/ComponentService.sol +581 -0
  400. package/contracts/shared/ComponentServiceManager.sol +35 -0
  401. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  402. package/contracts/shared/ERC165.sol +15 -9
  403. package/contracts/shared/IComponent.sol +70 -0
  404. package/contracts/shared/IComponentService.sol +102 -0
  405. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  406. package/contracts/shared/IKeyValueStore.sol +54 -0
  407. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
  408. package/contracts/shared/INftOwnable.sol +23 -0
  409. package/contracts/shared/IPolicyHolder.sol +45 -0
  410. package/contracts/shared/IRegisterable.sol +10 -19
  411. package/contracts/shared/IRegistryLinked.sol +11 -0
  412. package/contracts/shared/IService.sol +25 -0
  413. package/contracts/shared/IVersionable.sol +38 -37
  414. package/contracts/shared/InitializableCustom.sol +177 -0
  415. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  416. package/contracts/shared/KeyValueStore.sol +131 -0
  417. package/contracts/shared/Lifecycle.sol +77 -0
  418. package/contracts/shared/NftIdSet.sol +65 -0
  419. package/contracts/shared/NftOwnable.sol +107 -0
  420. package/contracts/shared/PolicyHolder.sol +102 -0
  421. package/contracts/shared/ProxyManager.sol +199 -0
  422. package/contracts/shared/Registerable.sol +54 -65
  423. package/contracts/shared/RegistryLinked.sol +43 -0
  424. package/contracts/shared/Service.sol +83 -0
  425. package/contracts/shared/TokenHandler.sol +58 -0
  426. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  427. package/contracts/shared/Versionable.sol +38 -68
  428. package/contracts/staking/IStaking.sol +167 -0
  429. package/contracts/staking/IStakingService.sol +160 -0
  430. package/contracts/staking/StakeManagerLib.sol +231 -0
  431. package/contracts/staking/Staking.sol +511 -0
  432. package/contracts/staking/StakingLifecycle.sol +23 -0
  433. package/contracts/staking/StakingManager.sol +53 -0
  434. package/contracts/staking/StakingReader.sol +186 -0
  435. package/contracts/staking/StakingService.sol +411 -0
  436. package/contracts/staking/StakingServiceManager.sol +44 -0
  437. package/contracts/staking/StakingStore.sol +615 -0
  438. package/contracts/staking/TargetManagerLib.sol +207 -0
  439. package/contracts/{types → type}/AddressSet.sol +1 -1
  440. package/contracts/type/Amount.sol +128 -0
  441. package/contracts/{types → type}/Blocknumber.sol +21 -3
  442. package/contracts/type/ClaimId.sol +75 -0
  443. package/contracts/type/DistributorType.sol +55 -0
  444. package/contracts/type/Fee.sol +66 -0
  445. package/contracts/{types → type}/Key32.sol +8 -3
  446. package/contracts/{types → type}/NftId.sol +21 -15
  447. package/contracts/type/NftIdSet.sol +62 -0
  448. package/contracts/type/ObjectType.sol +271 -0
  449. package/contracts/type/PayoutId.sol +82 -0
  450. package/contracts/type/Referral.sol +89 -0
  451. package/contracts/type/RequestId.sol +75 -0
  452. package/contracts/type/RiskId.sol +43 -0
  453. package/contracts/type/RoleId.sol +174 -0
  454. package/contracts/type/Seconds.sol +81 -0
  455. package/contracts/type/Selector.sol +102 -0
  456. package/contracts/{types → type}/StateId.sol +39 -5
  457. package/contracts/type/String.sol +53 -0
  458. package/contracts/{types → type}/Timestamp.sol +27 -14
  459. package/contracts/type/UFixed.sol +332 -0
  460. package/contracts/{types → type}/Version.sol +17 -2
  461. package/package.json +11 -7
  462. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  463. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  464. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  465. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  466. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  467. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  468. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  469. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  470. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -455
  471. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  472. package/artifacts/contracts/components/Product.sol/Product.json +0 -348
  473. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  475. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  477. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  479. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  481. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  483. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  485. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  487. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  489. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  491. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  493. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  495. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  498. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  499. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  500. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  502. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  504. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  506. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  507. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  508. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  510. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -81
  512. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  513. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  514. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  516. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  519. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  521. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  522. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  524. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  526. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  529. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  531. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  534. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  536. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  537. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  538. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  539. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  540. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  541. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  542. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  544. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  546. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -273
  549. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -273
  551. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  553. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  555. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  557. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  560. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  562. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  564. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  566. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  568. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  570. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  572. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  575. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  578. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  580. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  581. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  582. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  583. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  584. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  585. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  586. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  587. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  588. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  589. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  590. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -436
  591. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  593. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  595. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  597. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  598. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  599. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  601. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  603. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  604. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  605. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  606. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  607. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  609. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  611. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  613. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  614. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  615. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  617. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  618. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  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/RoleId.sol/RoleIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  623. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  626. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  628. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  630. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  632. package/contracts/components/BaseComponent.sol +0 -94
  633. package/contracts/components/IBaseComponent.sol +0 -19
  634. package/contracts/components/IPoolComponent.sol +0 -57
  635. package/contracts/components/IProductComponent.sol +0 -19
  636. package/contracts/components/Pool.sol +0 -191
  637. package/contracts/components/Product.sol +0 -134
  638. package/contracts/experiment/errors/Require.sol +0 -38
  639. package/contracts/experiment/errors/Revert.sol +0 -44
  640. package/contracts/experiment/inheritance/A.sol +0 -53
  641. package/contracts/experiment/inheritance/B.sol +0 -28
  642. package/contracts/experiment/inheritance/C.sol +0 -34
  643. package/contracts/experiment/inheritance/IA.sol +0 -13
  644. package/contracts/experiment/inheritance/IB.sol +0 -10
  645. package/contracts/experiment/inheritance/IC.sol +0 -12
  646. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  647. package/contracts/experiment/statemachine/ISM.sol +0 -25
  648. package/contracts/experiment/statemachine/README.md +0 -112
  649. package/contracts/experiment/statemachine/SM.sol +0 -57
  650. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  651. package/contracts/experiment/types/TypeA.sol +0 -47
  652. package/contracts/experiment/types/TypeB.sol +0 -29
  653. package/contracts/instance/IInstanceLinked.sol +0 -8
  654. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  655. package/contracts/instance/base/IInstanceBase.sol +0 -19
  656. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  657. package/contracts/instance/base/IService.sol +0 -15
  658. package/contracts/instance/base/InstanceBase.sol +0 -84
  659. package/contracts/instance/base/KeyValueStore.sol +0 -161
  660. package/contracts/instance/base/Lifecycle.sol +0 -92
  661. package/contracts/instance/base/ModuleBase.sol +0 -46
  662. package/contracts/instance/base/ServiceBase.sol +0 -37
  663. package/contracts/instance/module/access/Access.sol +0 -149
  664. package/contracts/instance/module/access/IAccess.sol +0 -53
  665. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  666. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  667. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  668. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  669. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  670. package/contracts/instance/module/component/IComponent.sol +0 -29
  671. package/contracts/instance/module/policy/IPolicy.sol +0 -59
  672. package/contracts/instance/module/policy/PolicyModule.sol +0 -89
  673. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  674. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  675. package/contracts/instance/module/risk/IRisk.sol +0 -10
  676. package/contracts/instance/module/risk/RiskModule.sol +0 -17
  677. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  678. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  679. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  680. package/contracts/instance/service/ComponentOwnerService.sol +0 -155
  681. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  682. package/contracts/instance/service/IPoolService.sol +0 -30
  683. package/contracts/instance/service/IProductService.sol +0 -58
  684. package/contracts/instance/service/PoolService.sol +0 -129
  685. package/contracts/instance/service/ProductService.sol +0 -366
  686. package/contracts/registry/IChainNft.sol +0 -21
  687. package/contracts/registry/IRegistryLinked.sol +0 -8
  688. package/contracts/shared/IOwnable.sol +0 -6
  689. package/contracts/test/TestFee.sol +0 -25
  690. package/contracts/test/TestPool.sol +0 -24
  691. package/contracts/test/TestProduct.sol +0 -51
  692. package/contracts/test/TestRegisterable.sol +0 -19
  693. package/contracts/test/TestRoleId.sol +0 -14
  694. package/contracts/test/TestService.sol +0 -32
  695. package/contracts/test/TestToken.sol +0 -26
  696. package/contracts/test/TestVersion.sol +0 -44
  697. package/contracts/test/TestVersionable.sol +0 -17
  698. package/contracts/types/ChainId.sol +0 -38
  699. package/contracts/types/Fee.sol +0 -51
  700. package/contracts/types/NftIdSet.sol +0 -60
  701. package/contracts/types/ObjectType.sol +0 -123
  702. package/contracts/types/RoleId.sol +0 -38
  703. package/contracts/types/UFixed.sol +0 -209
@@ -1,366 +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 {IPoolComponent} from "../../components/IPoolComponent.sol";
6
- import {IInstance} from "../../instance/IInstance.sol";
7
- import {IPolicy, IPolicyModule} from "../module/policy/IPolicy.sol";
8
- import {IPool} from "../module/pool/IPoolModule.sol";
9
- import {IBundle} from "../module/bundle/IBundle.sol";
10
- import {IProductService} from "./IProductService.sol";
11
- import {ITreasury, ITreasuryModule, TokenHandler} from "../../instance/module/treasury/ITreasury.sol";
12
-
13
- import {IVersionable} from "../../shared/IVersionable.sol";
14
- import {Versionable} from "../../shared/Versionable.sol";
15
-
16
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
17
- import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
18
- import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
19
- import {APPLIED, UNDERWRITTEN, ACTIVE} from "../../types/StateId.sol";
20
- import {NftId, NftIdLib} from "../../types/NftId.sol";
21
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
22
- import {Fee, FeeLib} from "../../types/Fee.sol";
23
- import {Version, VersionLib} from "../../types/Version.sol";
24
-
25
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
26
- import {IProductService} from "./IProductService.sol";
27
-
28
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
29
- contract ProductService is ComponentServiceBase, IProductService {
30
- using NftIdLib for NftId;
31
-
32
- string public constant NAME = "ProductService";
33
-
34
- event LogProductServiceSender(address sender);
35
-
36
- constructor(
37
- address registry,
38
- NftId registryNftId
39
- ) ComponentServiceBase(registry, registryNftId) // solhint-disable-next-line no-empty-blocks
40
- {
41
- _registerInterface(type(IProductService).interfaceId);
42
- }
43
-
44
- function getVersion()
45
- public
46
- pure
47
- virtual override (IVersionable, Versionable)
48
- returns(Version)
49
- {
50
- return VersionLib.toVersion(3,0,0);
51
- }
52
-
53
- function getName() external pure override returns(string memory name) {
54
- return NAME;
55
- }
56
-
57
- function setFees(
58
- Fee memory policyFee,
59
- Fee memory processingFee
60
- )
61
- external
62
- override
63
- {
64
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
65
- NftId productNftId = productInfo.nftId;
66
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
67
- treasuryInfo.policyFee = policyFee;
68
- treasuryInfo.processingFee = processingFee;
69
- instance.setTreasuryInfo(productNftId, treasuryInfo);
70
- }
71
-
72
- function createApplication(
73
- address applicationOwner,
74
- uint256 sumInsuredAmount,
75
- uint256 premiumAmount,
76
- uint256 lifetime,
77
- NftId bundleNftId
78
- ) external override returns (NftId policyNftId) {
79
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
80
- NftId productNftId = productInfo.nftId;
81
- // TODO add validations (see create bundle in pool service)
82
-
83
- policyNftId = this.getRegistry().registerObjectForInstance(
84
- productNftId,
85
- POLICY(),
86
- applicationOwner,
87
- ""
88
- );
89
-
90
- instance.createPolicyInfo(
91
- policyNftId,
92
- productNftId,
93
- sumInsuredAmount,
94
- premiumAmount,
95
- lifetime,
96
- bundleNftId
97
- );
98
-
99
- // TODO add logging
100
- }
101
-
102
- function _getAndVerifyUnderwritingSetup(
103
- IInstance instance,
104
- IPolicy.PolicyInfo memory policyInfo
105
- )
106
- internal
107
- view
108
- returns (
109
- ITreasury.TreasuryInfo memory treasuryInfo,
110
- NftId bundleNftId,
111
- IBundle.BundleInfo memory bundleInfo,
112
- uint256 collateralAmount
113
- )
114
- {
115
- // check match between policy and bundle (via pool)
116
- treasuryInfo = instance.getTreasuryInfo(policyInfo.productNftId);
117
- bundleNftId = policyInfo.bundleNftId;
118
- bundleInfo = instance.getBundleInfo(bundleNftId);
119
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
120
-
121
- // calculate required collateral
122
- NftId poolNftId = treasuryInfo.poolNftId;
123
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
124
-
125
- // obtain remaining return values
126
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
127
- }
128
-
129
- function _lockCollateralInBundle(
130
- IInstance instance,
131
- NftId bundleNftId,
132
- IBundle.BundleInfo memory bundleInfo,
133
- NftId policyNftId,
134
- uint256 collateralAmount
135
- )
136
- internal
137
- returns (IBundle.BundleInfo memory)
138
- {
139
- bundleInfo.lockedAmount += collateralAmount;
140
- instance.collateralizePolicy(bundleNftId, policyNftId, collateralAmount);
141
- return bundleInfo;
142
- }
143
-
144
- function _underwriteByPool(
145
- ITreasury.TreasuryInfo memory treasuryInfo,
146
- NftId policyNftId,
147
- IPolicy.PolicyInfo memory policyInfo,
148
- bytes memory bundleFilter,
149
- uint256 collateralAmount
150
- )
151
- internal
152
- {
153
- address poolAddress = _registry.getObjectInfo(treasuryInfo.poolNftId).objectAddress;
154
- IPoolComponent pool = IPoolComponent(poolAddress);
155
- pool.underwrite(
156
- policyNftId,
157
- policyInfo.applicationData,
158
- bundleFilter,
159
- collateralAmount);
160
- }
161
-
162
-
163
- function underwrite(
164
- NftId policyNftId,
165
- bool requirePremiumPayment,
166
- Timestamp activateAt
167
- )
168
- external
169
- override
170
- {
171
- // check caller is registered product
172
- (
173
- IRegistry.ObjectInfo memory productInfo,
174
- IInstance instance
175
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
176
-
177
- // check match between policy and calling product
178
- NftId productNftId = productInfo.nftId;
179
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
180
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
181
- require(instance.getPolicyState(policyNftId) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
182
-
183
- ITreasury.TreasuryInfo memory treasuryInfo;
184
- NftId bundleNftId;
185
- IBundle.BundleInfo memory bundleInfo;
186
- uint256 collateralAmount;
187
-
188
- (
189
- treasuryInfo,
190
- bundleNftId,
191
- bundleInfo,
192
- collateralAmount
193
- ) = _getAndVerifyUnderwritingSetup(
194
- instance,
195
- policyInfo
196
- );
197
-
198
- // lock bundle collateral
199
- bundleInfo = _lockCollateralInBundle(
200
- instance,
201
- bundleNftId,
202
- bundleInfo,
203
- policyNftId,
204
- collateralAmount);
205
-
206
- // set policy state to underwritten
207
- instance.updatePolicyState(policyNftId, UNDERWRITTEN());
208
-
209
- // optional activation of policy
210
- if(activateAt > zeroTimestamp()) {
211
- policyInfo.activatedAt = activateAt;
212
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
213
-
214
- instance.updatePolicyState(policyNftId, ACTIVE());
215
- }
216
-
217
- // optional collection of premium
218
- if(requirePremiumPayment) {
219
- uint256 netPremiumAmount = _processPremiumByTreasury(
220
- instance,
221
- productInfo.nftId,
222
- treasuryInfo,
223
- policyNftId,
224
- policyInfo.premiumAmount);
225
-
226
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
227
- bundleInfo.balanceAmount += netPremiumAmount;
228
- }
229
-
230
- instance.setPolicyInfo(policyNftId, policyInfo);
231
- instance.setBundleInfo(bundleNftId, bundleInfo);
232
-
233
- // involve pool if necessary
234
- {
235
- NftId poolNftId = treasuryInfo.poolNftId;
236
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
237
-
238
- if(poolInfo.isVerifying) {
239
- _underwriteByPool(
240
- treasuryInfo,
241
- policyNftId,
242
- policyInfo,
243
- bundleInfo.filter,
244
- collateralAmount
245
- );
246
- }
247
- }
248
-
249
- // TODO add logging
250
- }
251
-
252
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
253
- UFixed sumInsuredUFixed = UFixedMathLib.toUFixed(sumInsuredAmount);
254
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
255
- return collateralUFixed.toInt();
256
- }
257
-
258
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
259
- // check caller is registered product
260
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
261
-
262
- // perform actual token transfers
263
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
264
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productInfo.nftId);
265
-
266
- uint256 premiumAmount = policyInfo.premiumAmount;
267
- _processPremiumByTreasury(instance, productInfo.nftId, treasuryInfo, policyNftId, premiumAmount);
268
-
269
- // policy level book keeping for premium paid
270
- policyInfo.premiumPaidAmount += premiumAmount;
271
-
272
- // optional activation of policy
273
- if(activateAt > zeroTimestamp()) {
274
- require(
275
- policyInfo.activatedAt.eqz(),
276
- "ERROR:PRS-030:ALREADY_ACTIVATED");
277
-
278
- policyInfo.activatedAt = activateAt;
279
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
280
-
281
- instance.updatePolicyState(policyNftId, ACTIVE());
282
- }
283
-
284
- instance.setPolicyInfo(policyNftId, policyInfo);
285
-
286
- // TODO add logging
287
- }
288
-
289
- function activate(NftId policyNftId, Timestamp activateAt) external override {
290
- // check caller is registered product
291
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
292
-
293
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
294
-
295
- require(
296
- policyInfo.activatedAt.eqz(),
297
- "ERROR:PRS-020:ALREADY_ACTIVATED");
298
-
299
- policyInfo.activatedAt = activateAt;
300
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
301
-
302
- instance.setPolicyInfo(policyNftId, policyInfo);
303
- instance.updatePolicyState(policyNftId, ACTIVE());
304
-
305
- // TODO add logging
306
- }
307
-
308
- function close(
309
- NftId policyNftId
310
- ) external override // solhint-disable-next-line no-empty-blocks
311
- {
312
-
313
- }
314
-
315
- function _getPoolNftId(
316
- IInstance instance,
317
- NftId productNftId
318
- )
319
- internal
320
- view
321
- returns (NftId poolNftid)
322
- {
323
- return instance.getTreasuryInfo(productNftId).poolNftId;
324
- }
325
-
326
-
327
- function _processPremiumByTreasury(
328
- IInstance instance,
329
- NftId productNftId,
330
- ITreasury.TreasuryInfo memory treasuryInfo,
331
- NftId policyNftId,
332
- uint256 premiumAmount
333
- )
334
- internal
335
- returns (uint256 netPremiumAmount)
336
- {
337
- // process token transfer(s)
338
- if(premiumAmount > 0) {
339
- TokenHandler tokenHandler = instance.getTokenHandler(productNftId);
340
- address policyOwner = _registry.getOwner(policyNftId);
341
- address poolWallet = instance.getComponentWallet(treasuryInfo.poolNftId);
342
- netPremiumAmount = premiumAmount;
343
- Fee memory policyFee = treasuryInfo.policyFee;
344
-
345
- if (FeeLib.feeIsZero(policyFee)) {
346
- tokenHandler.transfer(
347
- policyOwner,
348
- poolWallet,
349
- premiumAmount
350
- );
351
- } else {
352
- (uint256 feeAmount, uint256 netAmount) = instance.calculateFeeAmount(
353
- premiumAmount,
354
- policyFee
355
- );
356
-
357
- address productWallet = instance.getComponentWallet(productNftId);
358
- tokenHandler.transfer(policyOwner, productWallet, feeAmount);
359
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
360
- netPremiumAmount = netAmount;
361
- }
362
- }
363
-
364
- // TODO add logging
365
- }
366
- }
@@ -1,21 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
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
- string memory uri
10
- ) external returns (uint256 tokenId);
11
-
12
- function burn(uint256 tokenId) external;
13
-
14
- function setURI(uint256 tokenId, string memory uri) external;
15
-
16
- function exists(uint256 tokenId) external view returns (bool);
17
-
18
- function totalMinted() external view returns (uint256);
19
-
20
- function getRegistryAddress() external view returns (address registry);
21
- }
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../registry/IRegistry.sol";
5
-
6
- interface IRegistryLinked {
7
- function getRegistry() external view returns (IRegistry registry);
8
- }
@@ -1,6 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IOwnable {
5
- function getOwner() external view returns (address owner);
6
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {UFixed, UFixedMathLib} from "../types/UFixed.sol";
5
- import {Fee, FeeLib} from "../types/Fee.sol";
6
-
7
- contract TestFee {
8
-
9
- function createFee(
10
- uint256 fractionalValue,
11
- int8 exponent,
12
- uint256 fixedValue
13
- )
14
- external
15
- pure
16
- returns(Fee memory fee)
17
- {
18
- return FeeLib.toFee(UFixedMathLib.toUFixed(fractionalValue, exponent), fixedValue);
19
- }
20
-
21
- function getZeroFee() external pure returns(Fee memory fee) {
22
- return FeeLib.zeroFee();
23
- }
24
-
25
- }
@@ -1,24 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {UFixed} from "../../contracts/types/UFixed.sol";
6
- import {Fee} from "../../contracts/types/Fee.sol";
7
- import {Pool} from "../../contracts/components/Pool.sol";
8
-
9
-
10
- contract TestPool is Pool {
11
-
12
- constructor(
13
- address registry,
14
- NftId instanceNftid,
15
- address token,
16
- bool isVerifying,
17
- UFixed collateralizationLevel,
18
- Fee memory stakingFee,
19
- Fee memory performanceFee
20
- )
21
- Pool(registry, instanceNftid, token, isVerifying, collateralizationLevel, stakingFee, performanceFee)
22
- // solhint-disable-next-line no-empty-blocks
23
- {}
24
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Product} from "../../contracts/components/Product.sol";
5
- import {NftId, toNftId} from "../../contracts/types/NftId.sol";
6
- import {Timestamp, blockTimestamp} from "../../contracts/types/Timestamp.sol";
7
- import {Fee} from "../../contracts/types/Fee.sol";
8
-
9
- contract TestProduct is Product {
10
-
11
- event LogTestProductSender(address sender);
12
-
13
- constructor(
14
- address registry,
15
- NftId instanceNftid,
16
- address token,
17
- address pool,
18
- Fee memory policyFee,
19
- Fee memory processingFee
20
- )
21
- Product(registry, instanceNftid, token, pool, policyFee, processingFee)
22
- // solhint-disable-next-line no-empty-blocks
23
- {}
24
-
25
- function applyForPolicy(
26
- uint256 sumInsuredAmount,
27
- uint256 premiumAmount,
28
- uint256 lifetime,
29
- NftId bundleNftId
30
- )
31
- external
32
- returns(NftId nftId)
33
- {
34
- nftId = _createApplication(
35
- msg.sender, // policy holder
36
- sumInsuredAmount,
37
- premiumAmount,
38
- lifetime,
39
- bundleNftId
40
- );
41
- }
42
-
43
- function underwrite(NftId nftId, bool requirePremiumPayment, Timestamp activateAt) external {
44
- emit LogTestProductSender(msg.sender);
45
- _underwrite(nftId, requirePremiumPayment, activateAt);
46
- }
47
-
48
- function collectPremium(NftId nftId, Timestamp activateAt) external {
49
- _collectPremium(nftId, activateAt);
50
- }
51
- }
@@ -1,19 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {ObjectType, TOKEN} from "../../contracts/types/ObjectType.sol";
6
- import {IRegistry} from "../../contracts/registry/IRegistry.sol";
7
- import {Registerable} from "../../contracts/shared/Registerable.sol";
8
-
9
- contract TestRegisterable is Registerable {
10
-
11
- constructor(address registry, NftId registryNftId)
12
- Registerable(registry, registryNftId)
13
- // solhint-disable-next-line no-empty-blocks
14
- {}
15
-
16
- function getType() external pure override returns (ObjectType) {
17
- return TOKEN();
18
- }
19
- }
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {RoleId, RoleIdLib, PRODUCT_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE_NAME, POOL_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
5
-
6
- contract TestRoleId {
7
- function getRole(string memory roleName) external pure returns (RoleId) { return RoleIdLib.toRoleId(roleName); }
8
-
9
- function getProductOwnerRoleName() external pure returns (string memory) { return PRODUCT_OWNER_ROLE_NAME(); }
10
- function getProductOwnerRole() external pure returns (RoleId) { return PRODUCT_OWNER_ROLE(); }
11
-
12
- function getPoolOwnerRoleName() external pure returns (string memory) { return POOL_OWNER_ROLE_NAME(); }
13
- function getPoolOwnerRole() external pure returns (RoleId) { return POOL_OWNER_ROLE(); }
14
- }
@@ -1,32 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {Version, VersionLib} from "../../contracts/types/Version.sol";
6
- import {ServiceBase} from "../../contracts/instance/base/ServiceBase.sol";
7
-
8
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
9
- import {Versionable} from "../../contracts/shared/Versionable.sol";
10
-
11
- contract TestService is ServiceBase {
12
-
13
- string public constant NAME = "TestService";
14
-
15
- constructor(address registry, NftId registryNftId)
16
- ServiceBase(registry, registryNftId)
17
- // solhint-disable-next-line no-empty-blocks
18
- {}
19
-
20
- function getVersion()
21
- public
22
- pure
23
- virtual override (IVersionable, Versionable)
24
- returns(Version)
25
- {
26
- return VersionLib.toVersion(3,0,0);
27
- }
28
-
29
- function getName() external pure override returns(string memory name) {
30
- return NAME;
31
- }
32
- }
@@ -1,26 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
-
6
- contract TestUsdc is ERC20 {
7
-
8
- // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - Test";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
12
- uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
- // decimals == 18 (openzeppelin erc20 default)
14
- constructor()
15
- ERC20(NAME, SYMBOL)
16
- {
17
- _mint(
18
- _msgSender(),
19
- INITIAL_SUPPLY
20
- );
21
- }
22
-
23
- function decimals() public pure override returns(uint8) {
24
- return DECIMALS;
25
- }
26
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Version, VersionPart, VersionLib} from "../types/Version.sol";
5
-
6
- contract TestVersion {
7
-
8
- function createVersion(uint major, uint minor, uint patch) external pure returns(Version) {
9
- return VersionLib.toVersion(major, minor, patch);
10
- }
11
-
12
- function createVersionPart(uint versionPart) external pure returns(VersionPart) {
13
- return VersionLib.toVersionPart(uint8(versionPart));
14
- }
15
-
16
- function getVersionParts(Version version)
17
- external
18
- pure
19
- returns(
20
- VersionPart major,
21
- VersionPart minor,
22
- VersionPart patch
23
- )
24
- {
25
- return version.toVersionParts();
26
- }
27
-
28
- function getMajorPart(Version version) external pure returns(VersionPart major) {
29
- return version.toMajorPart();
30
- }
31
-
32
- function getZeroVersion() external pure returns(Version) {
33
- return VersionLib.zeroVersion();
34
- }
35
-
36
- function isSameVersion(Version a, Version b) external pure returns(bool) {
37
- return a == b;
38
- }
39
-
40
- function isLargerVersion(Version a, Version b) external pure returns(bool) {
41
- return a > b;
42
- }
43
-
44
- }
@@ -1,17 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Version, VersionLib} from "../../contracts/types/Version.sol";
5
- import {Versionable} from "../../contracts/shared/Versionable.sol";
6
-
7
- contract TestVersionable is Versionable {
8
-
9
- function getVersion()
10
- public
11
- pure
12
- virtual override
13
- returns(Version)
14
- {
15
- return VersionLib.toVersion(3,0,0);
16
- }
17
- }