@etherisc/gif-next 0.0.2-dc7e4cb-141 → 0.0.2-dd0e295-160

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 (662) hide show
  1. package/README.md +250 -23
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +295 -1647
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +440 -1748
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  43. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  52. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  53. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  54. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/module/pool/IPoolModule.sol/IPool.json → oracle/IOracle.sol/IOracle.json} +2 -2
  56. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  58. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  60. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  62. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  64. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  66. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  68. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  70. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  72. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  74. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  76. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  77. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  78. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  80. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  82. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  84. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  86. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  88. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  90. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  92. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  94. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  96. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  98. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  99. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  100. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  102. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  104. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  106. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  110. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  111. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  112. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  114. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  122. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  124. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  126. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  127. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  128. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  130. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  132. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  134. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1218 -0
  136. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  138. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  140. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  141. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  142. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  144. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  146. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  154. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  155. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  162. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  163. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  164. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  168. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  170. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  172. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  174. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  176. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  177. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +468 -0
  178. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/ILifecycle.sol/ILifecycle.json} +10 -77
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  184. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  186. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  187. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  188. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +168 -135
  190. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  192. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  193. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  194. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  196. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  198. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  200. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  202. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  203. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  204. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  205. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  206. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  207. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  213. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  216. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  217. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  218. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  220. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  221. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  222. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  223. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  224. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  226. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  228. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  230. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  232. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  234. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  236. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  238. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  239. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  240. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  242. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  244. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  246. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  248. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  250. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  252. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  254. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  256. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  260. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  262. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  264. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  266. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  268. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  270. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  276. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  278. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  280. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  282. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  284. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  288. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  290. package/contracts/distribution/Distribution.sol +261 -0
  291. package/contracts/distribution/DistributionService.sol +297 -0
  292. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  293. package/contracts/distribution/IDistributionComponent.sol +66 -0
  294. package/contracts/distribution/IDistributionService.sol +81 -0
  295. package/contracts/instance/BundleManager.sol +126 -0
  296. package/contracts/instance/IInstance.sol +79 -45
  297. package/contracts/instance/IInstanceService.sol +97 -0
  298. package/contracts/instance/Instance.sol +250 -53
  299. package/contracts/instance/InstanceAdmin.sol +331 -0
  300. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  301. package/contracts/instance/InstanceReader.sol +392 -0
  302. package/contracts/instance/InstanceService.sol +439 -0
  303. package/contracts/instance/InstanceServiceManager.sol +44 -0
  304. package/contracts/instance/InstanceStore.sol +269 -0
  305. package/contracts/instance/base/BalanceStore.sol +123 -0
  306. package/contracts/instance/base/Cloneable.sol +28 -0
  307. package/contracts/instance/base/ObjectCounter.sol +21 -0
  308. package/contracts/instance/base/ObjectManager.sol +80 -0
  309. package/contracts/instance/module/IAccess.sol +46 -0
  310. package/contracts/instance/module/IBundle.sol +20 -0
  311. package/contracts/instance/module/IComponents.sol +52 -0
  312. package/contracts/instance/module/IDistribution.sol +42 -0
  313. package/contracts/instance/module/IPolicy.sol +84 -0
  314. package/contracts/instance/module/IRisk.sol +11 -0
  315. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  316. package/contracts/oracle/IOracle.sol +20 -0
  317. package/contracts/oracle/IOracleComponent.sol +32 -0
  318. package/contracts/oracle/IOracleService.sol +65 -0
  319. package/contracts/oracle/Oracle.sol +145 -0
  320. package/contracts/oracle/OracleService.sol +278 -0
  321. package/contracts/oracle/OracleServiceManager.sol +42 -0
  322. package/contracts/pool/BundleService.sol +296 -0
  323. package/contracts/pool/BundleServiceManager.sol +42 -0
  324. package/contracts/pool/IBundleService.sol +106 -0
  325. package/contracts/pool/IPoolComponent.sol +112 -0
  326. package/contracts/pool/IPoolService.sol +150 -0
  327. package/contracts/pool/Pool.sol +299 -0
  328. package/contracts/pool/PoolService.sol +452 -0
  329. package/contracts/pool/PoolServiceManager.sol +42 -0
  330. package/contracts/product/ApplicationService.sol +254 -0
  331. package/contracts/product/ApplicationServiceManager.sol +38 -0
  332. package/contracts/product/ClaimService.sol +442 -0
  333. package/contracts/product/ClaimServiceManager.sol +38 -0
  334. package/contracts/product/IApplicationService.sol +62 -0
  335. package/contracts/product/IClaimService.sol +99 -0
  336. package/contracts/product/IPolicyService.sol +78 -0
  337. package/contracts/product/IPricingService.sol +39 -0
  338. package/contracts/product/IProductComponent.sol +42 -0
  339. package/contracts/product/IProductService.sol +33 -0
  340. package/contracts/product/PolicyService.sol +475 -0
  341. package/contracts/product/PolicyServiceManager.sol +42 -0
  342. package/contracts/product/PricingService.sol +300 -0
  343. package/contracts/product/PricingServiceManager.sol +42 -0
  344. package/contracts/product/Product.sol +377 -0
  345. package/contracts/product/ProductService.sol +124 -0
  346. package/contracts/product/ProductServiceManager.sol +42 -0
  347. package/contracts/registry/ChainNft.sol +95 -37
  348. package/contracts/registry/IRegistry.sol +95 -28
  349. package/contracts/registry/IRegistryService.sol +69 -0
  350. package/contracts/registry/IServiceAuthorization.sol +35 -0
  351. package/contracts/registry/ITransferInterceptor.sol +7 -0
  352. package/contracts/registry/Registry.sol +482 -281
  353. package/contracts/registry/RegistryAdmin.sol +333 -0
  354. package/contracts/registry/RegistryService.sol +266 -0
  355. package/contracts/registry/RegistryServiceManager.sol +53 -0
  356. package/contracts/registry/ReleaseManager.sol +527 -0
  357. package/contracts/registry/ServiceAuthorization.sol +86 -0
  358. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  359. package/contracts/registry/TokenRegistry.sol +315 -0
  360. package/contracts/shared/AccessAdmin.sol +759 -0
  361. package/contracts/shared/AccessManagerCustom.sol +741 -0
  362. package/contracts/shared/AccessManagerExtended.sol +481 -0
  363. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  364. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  365. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  366. package/contracts/shared/Component.sol +281 -0
  367. package/contracts/shared/ComponentService.sol +617 -0
  368. package/contracts/shared/ComponentServiceManager.sol +35 -0
  369. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  370. package/contracts/shared/ERC165.sol +15 -9
  371. package/contracts/shared/IAccessAdmin.sol +168 -0
  372. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  373. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  374. package/contracts/shared/IComponent.sol +70 -0
  375. package/contracts/shared/IComponentService.sol +102 -0
  376. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  377. package/contracts/shared/IKeyValueStore.sol +53 -0
  378. package/contracts/shared/ILifecycle.sol +30 -0
  379. package/contracts/shared/INftOwnable.sol +23 -0
  380. package/contracts/shared/IPolicyHolder.sol +45 -0
  381. package/contracts/shared/IRegisterable.sol +10 -19
  382. package/contracts/shared/IRegistryLinked.sol +11 -0
  383. package/contracts/shared/IService.sol +25 -0
  384. package/contracts/shared/IVersionable.sol +38 -37
  385. package/contracts/shared/InitializableCustom.sol +177 -0
  386. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  387. package/contracts/shared/KeyValueStore.sol +127 -0
  388. package/contracts/shared/Lifecycle.sol +130 -0
  389. package/contracts/shared/NftIdSetManager.sol +65 -0
  390. package/contracts/shared/NftOwnable.sol +107 -0
  391. package/contracts/shared/PolicyHolder.sol +102 -0
  392. package/contracts/shared/ProxyManager.sol +199 -0
  393. package/contracts/shared/Registerable.sol +54 -65
  394. package/contracts/shared/RegistryLinked.sol +43 -0
  395. package/contracts/shared/Service.sol +83 -0
  396. package/contracts/shared/TokenHandler.sol +58 -0
  397. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  398. package/contracts/shared/Versionable.sol +38 -68
  399. package/contracts/staking/IStaking.sol +168 -0
  400. package/contracts/staking/IStakingService.sol +153 -0
  401. package/contracts/staking/StakeManagerLib.sol +231 -0
  402. package/contracts/staking/Staking.sol +513 -0
  403. package/contracts/staking/StakingManager.sol +54 -0
  404. package/contracts/staking/StakingReader.sol +187 -0
  405. package/contracts/staking/StakingService.sol +411 -0
  406. package/contracts/staking/StakingServiceManager.sol +44 -0
  407. package/contracts/staking/StakingStore.sol +613 -0
  408. package/contracts/staking/TargetManagerLib.sol +207 -0
  409. package/contracts/{types → type}/AddressSet.sol +1 -1
  410. package/contracts/type/Amount.sol +128 -0
  411. package/contracts/{types → type}/Blocknumber.sol +21 -3
  412. package/contracts/type/ClaimId.sol +75 -0
  413. package/contracts/type/DistributorType.sol +55 -0
  414. package/contracts/type/Fee.sol +66 -0
  415. package/contracts/type/Key32.sol +50 -0
  416. package/contracts/type/NftId.sol +78 -0
  417. package/contracts/type/NftIdSet.sol +62 -0
  418. package/contracts/type/ObjectType.sol +241 -0
  419. package/contracts/type/PayoutId.sol +82 -0
  420. package/contracts/type/Referral.sol +89 -0
  421. package/contracts/type/RequestId.sol +75 -0
  422. package/contracts/type/RiskId.sol +43 -0
  423. package/contracts/type/RoleId.sol +201 -0
  424. package/contracts/type/Seconds.sol +81 -0
  425. package/contracts/type/Selector.sol +102 -0
  426. package/contracts/{types → type}/StateId.sol +46 -6
  427. package/contracts/type/String.sol +53 -0
  428. package/contracts/{types → type}/Timestamp.sol +27 -14
  429. package/contracts/{types → type}/UFixed.sol +129 -12
  430. package/contracts/{types → type}/Version.sol +15 -2
  431. package/package.json +8 -7
  432. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  434. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  435. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  436. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  437. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  438. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  439. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  440. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  441. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  442. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  443. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  445. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  447. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  449. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  451. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  453. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  455. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  457. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  459. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  461. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  463. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  465. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  467. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  469. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  471. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  473. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  474. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  475. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  477. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  478. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  479. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
  480. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
  481. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  482. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  484. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  486. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  487. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  488. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -276
  489. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  491. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -276
  492. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  494. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  496. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  497. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  498. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  500. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  501. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  502. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  503. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  504. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  505. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  506. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  507. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  508. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  509. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  512. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  514. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  515. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  517. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  519. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  521. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  522. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  524. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  526. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  528. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  530. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  532. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -491
  534. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  536. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  539. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/IService.sol/IService.json +0 -300
  542. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  544. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  546. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.json +0 -300
  548. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  549. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  550. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  551. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  552. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  553. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  554. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  555. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  556. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  557. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  558. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  559. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  560. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  561. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  562. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -82
  563. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  565. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  567. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  568. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  569. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  571. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  572. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  573. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  574. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  576. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  579. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  581. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  582. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  583. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  585. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  588. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  590. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  591. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  593. package/contracts/components/BaseComponent.sol +0 -89
  594. package/contracts/components/IBaseComponent.sol +0 -19
  595. package/contracts/components/IPoolComponent.sol +0 -57
  596. package/contracts/components/IProductComponent.sol +0 -19
  597. package/contracts/components/Pool.sol +0 -174
  598. package/contracts/components/Product.sol +0 -117
  599. package/contracts/experiment/errors/Require.sol +0 -38
  600. package/contracts/experiment/errors/Revert.sol +0 -44
  601. package/contracts/experiment/inheritance/A.sol +0 -53
  602. package/contracts/experiment/inheritance/B.sol +0 -28
  603. package/contracts/experiment/inheritance/C.sol +0 -34
  604. package/contracts/experiment/inheritance/IA.sol +0 -13
  605. package/contracts/experiment/inheritance/IB.sol +0 -10
  606. package/contracts/experiment/inheritance/IC.sol +0 -12
  607. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  608. package/contracts/experiment/statemachine/ISM.sol +0 -25
  609. package/contracts/experiment/statemachine/README.md +0 -112
  610. package/contracts/experiment/statemachine/SM.sol +0 -57
  611. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  612. package/contracts/experiment/types/TypeA.sol +0 -47
  613. package/contracts/experiment/types/TypeB.sol +0 -29
  614. package/contracts/instance/IInstanceLinked.sol +0 -8
  615. package/contracts/instance/IServiceLinked.sol +0 -12
  616. package/contracts/instance/InstanceBase.sol +0 -71
  617. package/contracts/instance/module/access/Access.sol +0 -149
  618. package/contracts/instance/module/access/IAccess.sol +0 -53
  619. package/contracts/instance/module/bundle/BundleModule.sol +0 -228
  620. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  621. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  622. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  623. package/contracts/instance/module/component/ComponentModule.sol +0 -103
  624. package/contracts/instance/module/component/IComponent.sol +0 -53
  625. package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
  626. package/contracts/instance/module/lifecycle/LifecycleModule.sol +0 -89
  627. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  628. package/contracts/instance/module/policy/PolicyModule.sol +0 -84
  629. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  630. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  631. package/contracts/instance/module/risk/IRisk.sol +0 -10
  632. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  633. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  634. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  635. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  636. package/contracts/instance/service/ComponentOwnerService.sol +0 -171
  637. package/contracts/instance/service/ComponentServiceBase.sol +0 -41
  638. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  639. package/contracts/instance/service/IPoolService.sol +0 -30
  640. package/contracts/instance/service/IProductService.sol +0 -58
  641. package/contracts/instance/service/IService.sol +0 -15
  642. package/contracts/instance/service/PoolService.sol +0 -123
  643. package/contracts/instance/service/ProductService.sol +0 -355
  644. package/contracts/instance/service/ServiceBase.sol +0 -39
  645. package/contracts/registry/IChainNft.sol +0 -21
  646. package/contracts/registry/IRegistryLinked.sol +0 -8
  647. package/contracts/shared/IOwnable.sol +0 -6
  648. package/contracts/test/TestFee.sol +0 -25
  649. package/contracts/test/TestPool.sol +0 -22
  650. package/contracts/test/TestProduct.sol +0 -44
  651. package/contracts/test/TestRegisterable.sol +0 -19
  652. package/contracts/test/TestRoleId.sol +0 -14
  653. package/contracts/test/TestService.sol +0 -32
  654. package/contracts/test/TestToken.sol +0 -26
  655. package/contracts/test/TestVersion.sol +0 -44
  656. package/contracts/test/TestVersionable.sol +0 -17
  657. package/contracts/types/ChainId.sol +0 -38
  658. package/contracts/types/Fee.sol +0 -51
  659. package/contracts/types/NftId.sol +0 -57
  660. package/contracts/types/NftIdSet.sol +0 -60
  661. package/contracts/types/ObjectType.sol +0 -115
  662. package/contracts/types/RoleId.sol +0 -36
@@ -1,53 +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 {IInstance} from "../../IInstance.sol";
6
- import {NftId} from "../../../types/NftId.sol";
7
- import {StateId} from "../../../types/StateId.sol";
8
- import {Timestamp} from "../../../types/Timestamp.sol";
9
- import {Blocknumber} from "../../../types/Blocknumber.sol";
10
-
11
- import {IProductService} from "../../service/IProductService.sol";
12
- import {IPoolService} from "../../service/IPoolService.sol";
13
-
14
- interface IBundle {
15
-
16
- struct BundleInfo {
17
- NftId nftId;
18
- NftId poolNftId;
19
- StateId state; // active, paused, closed (expriy only implicit)
20
- bytes filter; // required conditions for applications to be considered for collateralization by this bundle
21
- uint256 capitalAmount; // net investment capital amount (<= balance)
22
- uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
23
- uint256 balanceAmount; // total amount of funds: net investment capital + net premiums - payouts
24
- Timestamp createdAt;
25
- Timestamp expiredAt; // no new policies
26
- Timestamp closedAt;
27
- Blocknumber updatedIn;
28
- }
29
- }
30
-
31
- interface IBundleModule is IBundle {
32
-
33
- function createBundleInfo(
34
- NftId bundleNftId,
35
- NftId poolNftId,
36
- uint256 amount,
37
- uint256 lifetime,
38
- bytes calldata filter
39
- ) external;
40
-
41
- function setBundleInfo(BundleInfo memory bundleInfo) external;
42
- function collateralizePolicy(NftId bundleNftId, NftId policyNftId, uint256 amount) external;
43
- function releasePolicy(NftId bundleNftId, NftId policyNftId) external returns(uint256 collateralAmount);
44
-
45
- function getBundleInfo(NftId bundleNftId) external view returns(BundleInfo memory bundleInfo);
46
-
47
- // repeat registry linked signature
48
- function getRegistry() external view returns (IRegistry registry);
49
-
50
- // repeat service linked signatures to avoid linearization issues
51
- function getProductService() external returns(IProductService);
52
- function getPoolService() external returns(IPoolService);
53
- }
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ICompensationModule} from "./ICompensation.sol";
5
-
6
- contract CompensationModule is ICompensationModule {
7
-
8
- }
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface ICompensation {
5
-
6
- }
7
-
8
- interface ICompensationModule is ICompensation {
9
-
10
- }
@@ -1,103 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IRegistry} from "../../../registry/IRegistry.sol";
7
- import {IInstance} from "../../IInstance.sol";
8
-
9
- import {LifecycleModule} from "../lifecycle/LifecycleModule.sol";
10
- import {IComponent, IComponentModule} from "./IComponent.sol";
11
- import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
12
- import {ObjectType, PRODUCT, ORACLE, POOL} from "../../../types/ObjectType.sol";
13
- import {StateId, ACTIVE, PAUSED} from "../../../types/StateId.sol";
14
- import {NftId, NftIdLib, zeroNftId} from "../../../types/NftId.sol";
15
- import {Fee} from "../../../types/Fee.sol";
16
-
17
- abstract contract ComponentModule is
18
- IComponentModule
19
- {
20
- using NftIdLib for NftId;
21
-
22
- mapping(NftId nftId => ComponentInfo info) private _componentInfo;
23
- NftId[] private _nftIds;
24
-
25
- mapping(ObjectType cType => bytes32 role) private _componentOwnerRole;
26
-
27
- // TODO maybe move this to Instance contract as internal variable?
28
- LifecycleModule private _lifecycleModule;
29
-
30
- modifier onlyComponentOwnerService() {
31
- require(
32
- msg.sender == address(this.getComponentOwnerService()),
33
- "ERROR:CMP-001:NOT_OWNER_SERVICE"
34
- );
35
- _;
36
- }
37
-
38
- constructor() {
39
- address componentAddress = address(this);
40
- _lifecycleModule = LifecycleModule(componentAddress);
41
- }
42
-
43
- function registerComponent(
44
- NftId nftId,
45
- ObjectType objectType,
46
- IERC20Metadata token
47
- ) external override onlyComponentOwnerService {
48
-
49
- // create component info
50
- _componentInfo[nftId] = ComponentInfo(
51
- nftId,
52
- _lifecycleModule.getInitialState(objectType),
53
- token
54
- );
55
-
56
- _nftIds.push(nftId);
57
-
58
- // TODO add logging
59
- }
60
-
61
- function setComponentInfo(
62
- ComponentInfo memory info
63
- ) external onlyComponentOwnerService returns (NftId nftId) {
64
- nftId = info.nftId;
65
- require(
66
- nftId.gtz() && _componentInfo[nftId].nftId.eq(nftId),
67
- "ERROR:CMP-006:COMPONENT_UNKNOWN"
68
- );
69
-
70
- // TODO decide if state changes should have explicit functions and not
71
- // just a generic setXYZInfo and implicit state transitions
72
- // when in doubt go for the explicit approach ...
73
- ObjectType objectType = this.getRegistry().getObjectInfo(nftId).objectType;
74
- _lifecycleModule.checkAndLogTransition(
75
- nftId,
76
- objectType,
77
- _componentInfo[nftId].state,
78
- info.state
79
- );
80
- _componentInfo[nftId] = info;
81
- }
82
-
83
- function getComponentCount()
84
- external
85
- view
86
- override
87
- returns (uint256 numberOfCompnents)
88
- {
89
- return _nftIds.length;
90
- }
91
-
92
- function getComponentId(
93
- uint256 idx
94
- ) external view override returns (NftId componentNftId) {
95
- return _nftIds[idx];
96
- }
97
-
98
- function getComponentInfo(
99
- NftId nftId
100
- ) external view override returns (ComponentInfo memory) {
101
- return _componentInfo[nftId];
102
- }
103
- }
@@ -1,53 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
-
7
- import {IRegistry} from "../../../registry/IRegistry.sol";
8
- import {IInstance} from "../../IInstance.sol";
9
- import {StateId} from "../../../types/StateId.sol";
10
- import {NftId} from "../../../types/NftId.sol";
11
- import {ObjectType} from "../../../types/ObjectType.sol";
12
- import {RoleId} from "../../../types/RoleId.sol";
13
- import {Fee} from "../../../types/Fee.sol";
14
- import {UFixed} from "../../../types/UFixed.sol";
15
-
16
- import {IComponentOwnerService} from "../../service/IComponentOwnerService.sol";
17
- // import {IComponentBase} from "../../../components/IComponentBase.sol";
18
-
19
- interface IComponent {
20
- // component dynamic info (static info kept in registry)
21
- struct ComponentInfo {
22
- NftId nftId;
23
- StateId state;
24
- IERC20Metadata token;
25
- }
26
- }
27
-
28
- interface IComponentModule is IComponent {
29
- function getRegistry() external view returns (IRegistry registry);
30
-
31
- function registerComponent(
32
- NftId nftId,
33
- ObjectType objectType,
34
- IERC20Metadata token
35
- ) external;
36
-
37
- function setComponentInfo(
38
- ComponentInfo memory info
39
- ) external returns (NftId componentNftId);
40
-
41
- function getComponentInfo(
42
- NftId nftId
43
- ) external view returns (ComponentInfo memory info);
44
-
45
- function getComponentCount() external view returns (uint256 numberOfCompnents);
46
-
47
- function getComponentId(uint256 idx) external view returns (NftId nftId);
48
-
49
- // repeat service linked signaturea to avoid linearization issues
50
- function getComponentOwnerService() external view returns(IComponentOwnerService);
51
-
52
- function hasRole(RoleId role, address member) external view returns (bool);
53
- }
@@ -1,47 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ObjectType} from "../../../types/ObjectType.sol";
5
- import {StateId, toStateId, zeroStateId} from "../../../types/StateId.sol";
6
- import {NftId} from "../../../types/NftId.sol";
7
-
8
- interface ILifecycle {
9
- event LogComponentStateChanged(
10
- NftId nftId,
11
- ObjectType objectType,
12
- StateId fromStateId,
13
- StateId toStateId
14
- );
15
- event LogBundleStateChanged(
16
- NftId nftId,
17
- StateId fromStateId,
18
- StateId toStateId
19
- );
20
- event LogPolicyStateChanged(
21
- NftId nftId,
22
- StateId fromStateId,
23
- StateId toStateId
24
- );
25
- // event LogClaimStateChanged(NftId nftId, ClaimId claimId, StateId fromStateId, StateId toStateId);
26
- // event LogPayoutStateChanged(NftId nftId, ClaimId claimId, PayoutId payoutId, StateId fromStateId, StateId toStateId);
27
-
28
- error ErrorNoLifecycle(NftId nftId, ObjectType objectType);
29
- error ErrorInvalidStateTransition(
30
- NftId nftId,
31
- ObjectType objectType,
32
- StateId fromStateId,
33
- StateId toStateId
34
- );
35
- }
36
-
37
- interface ILifecycleModule is ILifecycle {
38
- function getInitialState(
39
- ObjectType objectType
40
- ) external view returns (StateId);
41
-
42
- function isValidTransition(
43
- ObjectType objectType,
44
- StateId fromId,
45
- StateId toId
46
- ) external view returns (bool);
47
- }
@@ -1,89 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../../types/NftId.sol";
5
- import {ObjectType, PRODUCT, ORACLE, POOL, BUNDLE, POLICY} from "../../../types/ObjectType.sol";
6
- import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, UNDERWRITTEN, REVOKED, DECLINED} from "../../../types/StateId.sol";
7
- import {ILifecycleModule} from "./ILifecycle.sol";
8
-
9
- contract LifecycleModule is ILifecycleModule {
10
- mapping(ObjectType objectType => StateId initialState)
11
- private _initialState;
12
-
13
- mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
14
- private _isValidTransition;
15
-
16
- constructor() {
17
- _setupComponentLifecycle(PRODUCT());
18
- _setupComponentLifecycle(ORACLE());
19
- _setupComponentLifecycle(POOL());
20
-
21
- _setupBundleLifecycle();
22
- _setupPolicyLifecycle();
23
- }
24
-
25
- function checkAndLogTransition(
26
- NftId nftId,
27
- ObjectType objectType,
28
- StateId fromId,
29
- StateId toId
30
- ) public returns (StateId) // add only currentcontract? would that work?
31
- {
32
- if (!_isValidTransition[objectType][fromId][toId]) {
33
- revert ErrorInvalidStateTransition(nftId, objectType, fromId, toId);
34
- }
35
-
36
- if (objectType == POLICY()) {
37
- emit LogPolicyStateChanged(nftId, fromId, toId);
38
- } else if (objectType == BUNDLE()) {
39
- emit LogBundleStateChanged(nftId, fromId, toId);
40
- } else if (
41
- objectType == PRODUCT() ||
42
- objectType == ORACLE() ||
43
- objectType == POOL()
44
- ) {
45
- emit LogComponentStateChanged(nftId, objectType, fromId, toId);
46
- } else {
47
- revert ErrorNoLifecycle(nftId, objectType);
48
- }
49
-
50
- return toId;
51
- }
52
-
53
- function getInitialState(
54
- ObjectType objectType
55
- ) public view returns (StateId) {
56
- return _initialState[objectType];
57
- }
58
-
59
- function isValidTransition(
60
- ObjectType objectType,
61
- StateId fromId,
62
- StateId toId
63
- ) public view returns (bool) {
64
- return _isValidTransition[objectType][fromId][toId];
65
- }
66
-
67
- function _setupComponentLifecycle(ObjectType objectType) internal {
68
- _initialState[objectType] = ACTIVE();
69
- _isValidTransition[objectType][ACTIVE()][PAUSED()] = true;
70
- _isValidTransition[objectType][PAUSED()][ACTIVE()] = true;
71
- _isValidTransition[objectType][PAUSED()][ARCHIVED()] = true;
72
- }
73
-
74
- function _setupBundleLifecycle() internal {
75
- _initialState[BUNDLE()] = ACTIVE();
76
- _isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
77
- _isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
78
- _isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
79
- }
80
-
81
- function _setupPolicyLifecycle() internal {
82
- _initialState[POLICY()] = APPLIED();
83
- _isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
84
- _isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
85
- _isValidTransition[POLICY()][APPLIED()][UNDERWRITTEN()] = true;
86
- _isValidTransition[POLICY()][UNDERWRITTEN()][ACTIVE()] = true;
87
- _isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
88
- }
89
- }
@@ -1,60 +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 {IInstance} from "../../IInstance.sol";
6
- import {IProductService} from "../../service/IProductService.sol";
7
- import {NftId} from "../../../types/NftId.sol";
8
- import {StateId} from "../../../types/StateId.sol";
9
- import {Timestamp} from "../../../types/Timestamp.sol";
10
- import {Blocknumber} from "../../../types/Blocknumber.sol";
11
-
12
- // TODO check if there is value to introuce IContract and let IPolicy derive from IContract
13
- interface IPolicy {
14
- struct PolicyInfo {
15
- NftId nftId;
16
- NftId productNftId;
17
- NftId bundleNftId;
18
- address beneficiary;
19
- StateId state; // applied, withdrawn, rejected, active, closed
20
- uint256 sumInsuredAmount;
21
- uint256 premiumAmount;
22
- uint256 premiumPaidAmount;
23
- uint256 lifetime;
24
- bytes data;
25
- Timestamp createdAt;
26
- Timestamp activatedAt; // time of underwriting
27
- Timestamp expiredAt; // no new claims (activatedAt + lifetime)
28
- Timestamp closedAt; // no locked capital
29
- Blocknumber updatedIn; // write log entries in a way to support backtracking of all state changes
30
- }
31
- }
32
-
33
- interface IPolicyModule is IPolicy {
34
- function createApplication(
35
- NftId productNftId,
36
- NftId policyNftId,
37
- uint256 sumInsuredAmount,
38
- uint256 premiumAmount,
39
- uint256 lifetime,
40
- NftId bundleNftId
41
- ) external;
42
-
43
- function setPolicyInfo(PolicyInfo memory policyInfo) external;
44
-
45
- // function underwrite(NftId nftId) external;
46
-
47
- // function processPremium(NftId nftId, uint256 amount) external;
48
-
49
- // function activate(NftId nftId, Timestamp activateAt) external;
50
-
51
- function getPolicyInfo(
52
- NftId nftId
53
- ) external view returns (PolicyInfo memory info);
54
-
55
- // repeat registry linked signature
56
- function getRegistry() external view returns (IRegistry registry);
57
-
58
- // repeat service linked signature to avoid linearization issues
59
- function getProductService() external returns(IProductService);
60
- }
@@ -1,84 +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
- import {LifecycleModule} from "../../module/lifecycle/LifecycleModule.sol";
7
- import {IProductService} from "../../service/IProductService.sol";
8
- import {IPolicy, IPolicyModule} from "./IPolicy.sol";
9
- import {ObjectType, POLICY} from "../../../types/ObjectType.sol";
10
- import {APPLIED, ACTIVE, UNDERWRITTEN} from "../../../types/StateId.sol";
11
- import {NftId, NftIdLib} from "../../../types/NftId.sol";
12
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
13
- import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
14
-
15
- import {LifecycleModule} from "../../module/lifecycle/LifecycleModule.sol";
16
-
17
- abstract contract PolicyModule is IPolicyModule {
18
- using NftIdLib for NftId;
19
-
20
- mapping(NftId nftId => PolicyInfo info) private _policyInfo;
21
-
22
- LifecycleModule private _lifecycleModule;
23
-
24
- // TODO find a better place to avoid dupliation
25
- modifier onlyProductService2() {
26
- require(
27
- msg.sender == address(this.getProductService()),
28
- "ERROR:POL-001:NOT_PRODUCT_SERVICE"
29
- );
30
- _;
31
- }
32
-
33
- constructor() {
34
- _lifecycleModule = LifecycleModule(address(this));
35
- }
36
-
37
- function createApplication(
38
- NftId productNftId,
39
- NftId policyNftId,
40
- uint256 sumInsuredAmount,
41
- uint256 premiumAmount,
42
- uint256 lifetime,
43
- NftId bundleNftId
44
- )
45
- external
46
- onlyProductService2
47
- override
48
- {
49
- _policyInfo[policyNftId] = PolicyInfo(
50
- policyNftId,
51
- productNftId,
52
- bundleNftId,
53
- address(0), // beneficiary = policy nft holder
54
- _lifecycleModule.getInitialState(POLICY()),
55
- sumInsuredAmount,
56
- premiumAmount,
57
- 0, // premium paid amount
58
- lifetime,
59
- "", // data
60
- blockTimestamp(), // createdAt
61
- zeroTimestamp(), // activatedAt
62
- zeroTimestamp(), // expiredAt
63
- zeroTimestamp(), // closedAt
64
- blockNumber() // updatedIn
65
- );
66
-
67
- // TODO add logging
68
- }
69
-
70
- function setPolicyInfo(PolicyInfo memory policyInfo)
71
- external
72
- override
73
- onlyProductService2
74
- {
75
- _policyInfo[policyInfo.nftId] = policyInfo;
76
- }
77
-
78
- function getPolicyInfo(
79
- NftId nftId
80
- ) external view returns (PolicyInfo memory info) {
81
- return _policyInfo[nftId];
82
- }
83
-
84
- }
@@ -1,41 +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 {NftId} from "../../../types/NftId.sol";
6
- import {UFixed} from "../../../types/UFixed.sol";
7
- import {IProductService} from "../../service/IProductService.sol";
8
- import {IPoolService} from "../../service/IPoolService.sol";
9
-
10
- interface IPool {
11
- struct PoolInfo {
12
- NftId nftId;
13
- bool isVerifying;
14
- UFixed collateralizationLevel;
15
- }
16
- }
17
-
18
- interface IPoolModule is IPool {
19
-
20
- function registerPool(
21
- NftId poolNftId,
22
- bool isVerifying,
23
- UFixed collateralizationLevel
24
- ) external;
25
-
26
- function addBundleToPool(
27
- NftId bundleNftId,
28
- NftId poolNftId,
29
- uint256 amount
30
- ) external;
31
-
32
- function getPoolInfo(
33
- NftId nftId
34
- ) external view returns (PoolInfo memory info);
35
-
36
- function getBundleCount(NftId poolNftId) external view returns (uint256 bundleCount);
37
- function getBundleNftId(NftId poolNftId, uint256 index) external view returns (NftId bundleNftId);
38
-
39
- // repeat service linked signatures to avoid linearization issues
40
- function getPoolService() external returns(IPoolService);
41
- }
@@ -1,87 +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 {IProductService} from "../../service/IProductService.sol";
6
- import {IPoolService} from "../../service/IPoolService.sol";
7
- import {IPolicy, IPolicyModule} from "../../module/policy/IPolicy.sol";
8
- import {ITreasuryModule} from "../../module/treasury/ITreasury.sol";
9
-
10
- import {NftId} from "../../../types/NftId.sol";
11
- import {LibNftIdSet} from "../../../types/NftIdSet.sol";
12
- import {StateId, APPLIED} from "../../../types/StateId.sol";
13
- import {UFixed} from "../../../types/UFixed.sol";
14
-
15
- import {IPoolModule} from "./IPoolModule.sol";
16
-
17
- abstract contract PoolModule is
18
- IPoolModule
19
- {
20
- using LibNftIdSet for LibNftIdSet.Set;
21
-
22
- mapping(NftId poolNftId => PoolInfo info) private _poolInfo;
23
- mapping(NftId poolNftId => LibNftIdSet.Set bundles) private _bundlesForPool;
24
-
25
- modifier poolServiceCallingPool() {
26
- require(
27
- msg.sender == address(this.getPoolService()),
28
- "ERROR:PL-001:NOT_POOL_SERVICE"
29
- );
30
- _;
31
- }
32
-
33
- function registerPool(
34
- NftId nftId,
35
- bool isVerifying,
36
- UFixed collateralizationRate
37
- )
38
- public
39
- override
40
- {
41
- require(
42
- _poolInfo[nftId].nftId.eqz(),
43
- "ERROR:PL-010:ALREADY_CREATED");
44
-
45
- _poolInfo[nftId] = PoolInfo(
46
- nftId,
47
- isVerifying,
48
- collateralizationRate
49
- );
50
-
51
- // TODO add logging
52
- }
53
-
54
- function addBundleToPool(
55
- NftId bundleNftId,
56
- NftId poolNftId,
57
- uint256 // amount
58
- )
59
- external
60
- override
61
- {
62
- LibNftIdSet.Set storage bundleSet = _bundlesForPool[poolNftId];
63
- require(
64
- !bundleSet.contains(bundleNftId),
65
- "ERROR:PL-020:BUNDLE_ALREADY_ADDED");
66
-
67
- bundleSet.add(bundleNftId);
68
- }
69
-
70
-
71
- function getPoolInfo(
72
- NftId nftId
73
- ) external view override returns (PoolInfo memory info) {
74
- info = _poolInfo[nftId];
75
- }
76
-
77
-
78
- function getBundleCount(NftId poolNftId) external view override returns (uint256 bundleCount) {
79
- return _bundlesForPool[poolNftId].getLength();
80
- }
81
-
82
-
83
- function getBundleNftId(NftId poolNftId, uint256 index) external view override returns (NftId bundleNftId) {
84
- return _bundlesForPool[poolNftId].getElementAt(index);
85
- }
86
-
87
- }
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IRisk {
5
-
6
- }
7
-
8
- interface IRiskModule is IRisk {
9
-
10
- }
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRiskModule} from "./IRisk.sol";
5
-
6
- contract RiskModule is IRiskModule {
7
-
8
- }