@etherisc/gif-next 0.0.2-de220d6-949 → 0.0.2-e026265-044

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 (710) hide show
  1. package/README.md +268 -15
  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/BundleManager.sol/BundleManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +280 -1504
  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 +472 -1774
  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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.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 +591 -34
  158. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  159. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -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 +821 -107
  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/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.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/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +104 -141
  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} +163 -143
  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/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  216. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  217. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  218. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  219. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.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 +49 -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/BundleManager.sol +126 -0
  328. package/contracts/instance/IInstance.sol +78 -44
  329. package/contracts/instance/IInstanceService.sol +92 -0
  330. package/contracts/instance/Instance.sol +238 -52
  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/ObjectManager.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 +452 -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 +93 -29
  388. package/contracts/registry/IRegistryService.sol +69 -0
  389. package/contracts/registry/ITransferInterceptor.sol +7 -0
  390. package/contracts/registry/Registry.sol +478 -281
  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/ReleaseManager.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/NftIdSetManager.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 +168 -0
  429. package/contracts/staking/IStakingService.sol +153 -0
  430. package/contracts/staking/StakeManagerLib.sol +231 -0
  431. package/contracts/staking/Staking.sol +513 -0
  432. package/contracts/staking/StakingLifecycle.sol +23 -0
  433. package/contracts/staking/StakingManager.sol +54 -0
  434. package/contracts/staking/StakingReader.sol +187 -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 +275 -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 +15 -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 -387
  471. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  472. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  473. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.json +0 -27
  475. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.json +0 -83
  477. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  479. package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.json +0 -75
  481. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -137
  483. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  485. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  486. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  487. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  488. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  489. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  490. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  491. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  493. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  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/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  516. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  518. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  519. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  522. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  524. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  525. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  526. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  527. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  529. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  530. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  532. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  535. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  537. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  539. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  540. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  541. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  542. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  543. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  544. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  545. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  546. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  548. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  550. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  552. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -271
  555. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
  557. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  559. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  561. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  563. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  566. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  568. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  570. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  572. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  574. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  576. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  578. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  581. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  584. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  586. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  587. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  588. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  589. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  590. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  591. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  593. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  594. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  595. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  597. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  598. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  599. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  601. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  603. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  605. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  607. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  609. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  610. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  611. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  612. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  613. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  615. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  617. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  619. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  621. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  623. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  624. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  625. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  627. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  629. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  632. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  634. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  636. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  638. package/contracts/components/BaseComponent.sol +0 -88
  639. package/contracts/components/IBaseComponent.sol +0 -19
  640. package/contracts/components/IPoolComponent.sol +0 -57
  641. package/contracts/components/IProductComponent.sol +0 -19
  642. package/contracts/components/Pool.sol +0 -174
  643. package/contracts/components/Product.sol +0 -117
  644. package/contracts/experiment/errors/IncrementRevert.sol +0 -43
  645. package/contracts/experiment/errors/Require.sol +0 -38
  646. package/contracts/experiment/errors/Revert.sol +0 -53
  647. package/contracts/experiment/inheritance/A.sol +0 -53
  648. package/contracts/experiment/inheritance/B.sol +0 -28
  649. package/contracts/experiment/inheritance/C.sol +0 -34
  650. package/contracts/experiment/inheritance/IA.sol +0 -13
  651. package/contracts/experiment/inheritance/IB.sol +0 -10
  652. package/contracts/experiment/inheritance/IC.sol +0 -12
  653. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  654. package/contracts/experiment/statemachine/ISM.sol +0 -25
  655. package/contracts/experiment/statemachine/README.md +0 -112
  656. package/contracts/experiment/statemachine/SM.sol +0 -57
  657. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  658. package/contracts/experiment/types/TypeA.sol +0 -47
  659. package/contracts/experiment/types/TypeB.sol +0 -29
  660. package/contracts/instance/IInstanceLinked.sol +0 -8
  661. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  662. package/contracts/instance/base/IInstanceBase.sol +0 -14
  663. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  664. package/contracts/instance/base/IService.sol +0 -15
  665. package/contracts/instance/base/InstanceBase.sol +0 -80
  666. package/contracts/instance/base/KeyValueStore.sol +0 -156
  667. package/contracts/instance/base/Lifecycle.sol +0 -95
  668. package/contracts/instance/base/ModuleBase.sol +0 -52
  669. package/contracts/instance/base/ServiceBase.sol +0 -37
  670. package/contracts/instance/module/access/Access.sol +0 -149
  671. package/contracts/instance/module/access/IAccess.sol +0 -53
  672. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  673. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  674. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  675. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  676. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  677. package/contracts/instance/module/component/IComponent.sol +0 -53
  678. package/contracts/instance/module/policy/IPolicy.sol +0 -61
  679. package/contracts/instance/module/policy/PolicyModule.sol +0 -77
  680. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  681. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  682. package/contracts/instance/module/risk/IRisk.sol +0 -10
  683. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  684. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  685. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  686. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  687. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  688. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  689. package/contracts/instance/service/IPoolService.sol +0 -30
  690. package/contracts/instance/service/IProductService.sol +0 -58
  691. package/contracts/instance/service/PoolService.sol +0 -123
  692. package/contracts/instance/service/ProductService.sol +0 -354
  693. package/contracts/registry/IChainNft.sol +0 -21
  694. package/contracts/registry/IRegistryLinked.sol +0 -8
  695. package/contracts/shared/IOwnable.sol +0 -6
  696. package/contracts/test/TestFee.sol +0 -25
  697. package/contracts/test/TestPool.sol +0 -22
  698. package/contracts/test/TestProduct.sol +0 -44
  699. package/contracts/test/TestRegisterable.sol +0 -19
  700. package/contracts/test/TestRoleId.sol +0 -14
  701. package/contracts/test/TestService.sol +0 -32
  702. package/contracts/test/TestToken.sol +0 -26
  703. package/contracts/test/TestVersion.sol +0 -44
  704. package/contracts/test/TestVersionable.sol +0 -17
  705. package/contracts/types/ChainId.sol +0 -38
  706. package/contracts/types/Fee.sol +0 -51
  707. package/contracts/types/NftIdSet.sol +0 -60
  708. package/contracts/types/ObjectType.sol +0 -115
  709. package/contracts/types/RoleId.sol +0 -38
  710. package/contracts/types/UFixed.sol +0 -209
@@ -1,354 +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
- instance.setProductFees(productInfo.nftId, policyFee, processingFee);
66
- }
67
-
68
- function createApplication(
69
- address applicationOwner,
70
- uint256 sumInsuredAmount,
71
- uint256 premiumAmount,
72
- uint256 lifetime,
73
- NftId bundleNftId
74
- ) external override returns (NftId policyNftId) {
75
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
76
- NftId productNftId = productInfo.nftId;
77
- // TODO add validations (see create bundle in pool service)
78
-
79
- policyNftId = this.getRegistry().registerObjectForInstance(
80
- productNftId,
81
- POLICY(),
82
- applicationOwner,
83
- ""
84
- );
85
-
86
- instance.createApplication(
87
- productNftId,
88
- policyNftId,
89
- sumInsuredAmount,
90
- premiumAmount,
91
- lifetime,
92
- bundleNftId
93
- );
94
-
95
- // TODO add logging
96
- }
97
-
98
- function _getAndVerifyUnderwritingSetup(
99
- IInstance instance,
100
- IPolicy.PolicyInfo memory policyInfo
101
- )
102
- internal
103
- view
104
- returns (
105
- ITreasury.ProductSetup memory productSetup,
106
- IBundle.BundleInfo memory bundleInfo,
107
- uint256 collateralAmount,
108
- bool poolIsVerifying,
109
- bytes memory bundleFilter
110
- )
111
- {
112
- // check match between policy and bundle (via pool)
113
- productSetup = instance.getProductSetup(policyInfo.productNftId);
114
- bundleInfo = instance.getBundleInfo(policyInfo.bundleNftId);
115
- require(bundleInfo.poolNftId == productSetup.poolNftId, "POLICY_BUNDLE_MISMATCH");
116
-
117
- // calculate required collateral
118
- NftId poolNftId = productSetup.poolNftId;
119
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
120
-
121
- // obtain remaining return values
122
- poolIsVerifying = poolInfo.isVerifying;
123
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
124
- bundleFilter = bundleInfo.filter;
125
- }
126
-
127
- function _lockCollateralInBundle(
128
- IInstance instance,
129
- IBundle.BundleInfo memory bundleInfo,
130
- NftId policyNftId,
131
- uint256 collateralAmount
132
- )
133
- internal
134
- returns (IBundle.BundleInfo memory)
135
- {
136
- bundleInfo.lockedAmount += collateralAmount;
137
- instance.collateralizePolicy(bundleInfo.nftId, policyNftId, collateralAmount);
138
- return bundleInfo;
139
- }
140
-
141
- function _underwriteByPool(
142
- ITreasury.ProductSetup memory productSetup,
143
- IPolicy.PolicyInfo memory policyInfo,
144
- bytes memory bundleFilter,
145
- uint256 collateralAmount
146
- )
147
- internal
148
- {
149
- address poolAddress = _registry.getObjectInfo(productSetup.poolNftId).objectAddress;
150
- IPoolComponent pool = IPoolComponent(poolAddress);
151
- pool.underwrite(
152
- policyInfo.nftId,
153
- policyInfo.applicationData,
154
- bundleFilter,
155
- collateralAmount);
156
- }
157
-
158
-
159
- function underwrite(
160
- NftId policyNftId,
161
- bool requirePremiumPayment,
162
- Timestamp activateAt
163
- )
164
- external
165
- override
166
- {
167
- // check caller is registered product
168
- (
169
- IRegistry.ObjectInfo memory productInfo,
170
- IInstance instance
171
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
172
-
173
- // check match between policy and calling product
174
- NftId productNftId = productInfo.nftId;
175
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
176
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
177
- require(policyInfo.state == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
178
-
179
- (
180
- ITreasury.ProductSetup memory productSetup,
181
- IBundle.BundleInfo memory bundleInfo,
182
- uint256 collateralAmount,
183
- bool poolIsVerifying,
184
- bytes memory bundleFilter
185
- ) = _getAndVerifyUnderwritingSetup(
186
- instance,
187
- policyInfo
188
- );
189
-
190
- // lock bundle collateral
191
- bundleInfo = _lockCollateralInBundle(
192
- instance,
193
- bundleInfo,
194
- policyNftId,
195
- collateralAmount);
196
-
197
- // collect premium
198
- if(requirePremiumPayment) {
199
- uint256 netPremiumAmount = _processPremiumByTreasury(
200
- instance,
201
- productSetup,
202
- policyNftId,
203
- policyInfo.premiumAmount);
204
-
205
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
206
- bundleInfo.balanceAmount += netPremiumAmount;
207
- }
208
-
209
- // set policy state to underwritten
210
- // TODO add require for state change
211
- policyInfo.state = UNDERWRITTEN();
212
- policyInfo.updatedIn = blockNumber();
213
-
214
- // optional activation of policy
215
- if(activateAt > zeroTimestamp()) {
216
- policyInfo.activatedAt = activateAt;
217
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
218
-
219
- // TODO add require for state change
220
- policyInfo.state = ACTIVE();
221
- }
222
-
223
- instance.setPolicyInfo(policyInfo);
224
- instance.setBundleInfo(bundleInfo);
225
-
226
- // integrate pool component
227
- if(poolIsVerifying) {
228
- _underwriteByPool(
229
- productSetup,
230
- policyInfo,
231
- bundleFilter,
232
- collateralAmount
233
- );
234
- }
235
-
236
- // TODO add logging
237
- }
238
-
239
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
240
- UFixed sumInsuredUFixed = UFixedMathLib.toUFixed(sumInsuredAmount);
241
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
242
- return collateralUFixed.toInt();
243
- }
244
-
245
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
246
- // check caller is registered product
247
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
248
-
249
- // perform actual token transfers
250
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
251
- ITreasury.ProductSetup memory product = instance.getProductSetup(productInfo.nftId);
252
-
253
- uint256 premiumAmount = policyInfo.premiumAmount;
254
- _processPremiumByTreasury(instance, product, policyNftId, premiumAmount);
255
-
256
- // policy level book keeping for premium paid
257
- policyInfo.premiumPaidAmount += premiumAmount;
258
- policyInfo.updatedIn = blockNumber();
259
-
260
- // optional activation of policy
261
- if(activateAt > zeroTimestamp()) {
262
- require(
263
- policyInfo.activatedAt.eqz(),
264
- "ERROR:PRS-030:ALREADY_ACTIVATED");
265
-
266
- policyInfo.activatedAt = activateAt;
267
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
268
-
269
- // TODO add require for state change
270
- policyInfo.state = ACTIVE();
271
- }
272
-
273
- instance.setPolicyInfo(policyInfo);
274
-
275
- // TODO add logging
276
- }
277
-
278
- function activate(NftId policyNftId, Timestamp activateAt) external override {
279
- // check caller is registered product
280
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
281
-
282
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
283
-
284
- require(
285
- policyInfo.activatedAt.eqz(),
286
- "ERROR:PRS-020:ALREADY_ACTIVATED");
287
-
288
- policyInfo.activatedAt = activateAt;
289
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
290
-
291
- // TODO add require for state change
292
- policyInfo.state = ACTIVE();
293
-
294
- instance.setPolicyInfo(policyInfo);
295
-
296
- // TODO add logging
297
- }
298
-
299
- function close(
300
- NftId policyNftId
301
- ) external override // solhint-disable-next-line no-empty-blocks
302
- {
303
-
304
- }
305
-
306
- function _getPoolNftId(
307
- IInstance instance,
308
- NftId productNftId
309
- )
310
- internal
311
- view
312
- returns (NftId poolNftid)
313
- {
314
- return instance.getProductSetup(productNftId).poolNftId;
315
- }
316
-
317
- function _processPremiumByTreasury(
318
- IInstance instance,
319
- ITreasury.ProductSetup memory product,
320
- NftId policyNftId,
321
- uint256 premiumAmount
322
- )
323
- internal
324
- returns (uint256 netPremiumAmount)
325
- {
326
- // process token transfer(s)
327
- if(premiumAmount > 0) {
328
- TokenHandler tokenHandler = instance.getTokenHandler(product.productNftId);
329
- address policyOwner = _registry.getOwner(policyNftId);
330
- address poolWallet = instance.getPoolSetup(product.poolNftId).wallet;
331
- netPremiumAmount = premiumAmount;
332
- Fee memory policyFee = product.policyFee;
333
-
334
- if (FeeLib.feeIsZero(policyFee)) {
335
- tokenHandler.transfer(
336
- policyOwner,
337
- poolWallet,
338
- premiumAmount
339
- );
340
- } else {
341
- (uint256 feeAmount, uint256 netAmount) = instance.calculateFeeAmount(
342
- premiumAmount,
343
- policyFee
344
- );
345
-
346
- tokenHandler.transfer(policyOwner, product.wallet, feeAmount);
347
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
348
- netPremiumAmount = netAmount;
349
- }
350
- }
351
-
352
- // TODO add logging
353
- }
354
- }
@@ -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,22 +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
- )
19
- Pool(registry, instanceNftid, token, isVerifying, collateralizationLevel)
20
- // solhint-disable-next-line no-empty-blocks
21
- {}
22
- }
@@ -1,44 +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(address registry, NftId instanceNftid, address token, address pool)
14
- Product(registry, instanceNftid, token, pool)
15
- // solhint-disable-next-line no-empty-blocks
16
- {}
17
-
18
- function applyForPolicy(
19
- uint256 sumInsuredAmount,
20
- uint256 premiumAmount,
21
- uint256 lifetime,
22
- NftId bundleNftId
23
- )
24
- external
25
- returns(NftId nftId)
26
- {
27
- nftId = _createApplication(
28
- msg.sender, // policy holder
29
- sumInsuredAmount,
30
- premiumAmount,
31
- lifetime,
32
- bundleNftId
33
- );
34
- }
35
-
36
- function underwrite(NftId nftId, bool requirePremiumPayment, Timestamp activateAt) external {
37
- emit LogTestProductSender(msg.sender);
38
- _underwrite(nftId, requirePremiumPayment, activateAt);
39
- }
40
-
41
- function collectPremium(NftId nftId, Timestamp activateAt) external {
42
- _collectPremium(nftId, activateAt);
43
- }
44
- }
@@ -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
- }
@@ -1,38 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /// @dev bytes5 (uint40) allows for chain ids up to 13 digits
5
- type ChainId is bytes5;
6
-
7
- // type bindings
8
- using {eqChainId as ==, neChainId as !=, ChainIdLib.toInt} for ChainId global;
9
-
10
- // general pure free functions
11
- /// @dev Converts the uint256 to a ChainId.
12
- function toChainId(uint256 chainId) pure returns (ChainId) {
13
- return ChainId.wrap(bytes5(uint40(chainId)));
14
- }
15
-
16
- /// @dev Return the ChainId for the chain the contract is deployed to
17
- function thisChainId() view returns (ChainId) {
18
- return toChainId(block.chainid);
19
- }
20
-
21
- // pure free functions for operators
22
- /// @dev Returns true if the values are equal (==).
23
- function eqChainId(ChainId a, ChainId b) pure returns (bool isSame) {
24
- return ChainId.unwrap(a) == ChainId.unwrap(b);
25
- }
26
-
27
- /// @dev Returns true if the values are not equal (!=).
28
- function neChainId(ChainId a, ChainId b) pure returns (bool isDifferent) {
29
- return ChainId.unwrap(a) != ChainId.unwrap(b);
30
- }
31
-
32
- // library functions that operate on user defined type
33
- library ChainIdLib {
34
- /// @dev Converts the ChainId to a uint256.
35
- function toInt(ChainId chainId) internal pure returns (uint256) {
36
- return uint256(uint40(ChainId.unwrap(chainId)));
37
- }
38
- }