@etherisc/gif-next 0.0.2-790d44b-698 → 0.0.2-79d46a9-598

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 (688) hide show
  1. package/README.md +219 -39
  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 +258 -1641
  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 +399 -1887
  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/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  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/base/ModuleBase.sol/ModuleBase.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/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +360 -328
  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/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +279 -248
  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} +187 -192
  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 +769 -263
  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/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  178. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  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/base → shared}/IService.sol/IService.json +159 -154
  190. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  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/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +260 -193
  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/{Proxy.sol/ProxyWithProxyAdminGetter.json → UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json} +4 -4
  218. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  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/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  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/{types → type}/Version.sol/VersionLib.json +3 -3
  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 +80 -46
  297. package/contracts/instance/IInstanceService.sol +97 -0
  298. package/contracts/instance/Instance.sol +248 -59
  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 +473 -349
  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/{instance/base → shared}/ILifecycle.sol +4 -4
  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 +17 -58
  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/{instance/base → shared}/Lifecycle.sol +38 -8
  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 +15 -97
  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/{types → type}/Key32.sol +8 -3
  416. package/contracts/{types → type}/NftId.sol +21 -15
  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/{types → type}/RiskId.sol +1 -1
  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 +39 -5
  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 +7 -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/Distribution.sol/Distribution.dbg.json +0 -4
  435. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  436. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  437. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
  438. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  439. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  440. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  441. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  442. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  443. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  444. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  445. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  446. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  447. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  448. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  450. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  452. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  454. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  456. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  458. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  460. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  462. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  464. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  466. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  468. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  470. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  472. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  474. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  476. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  478. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  480. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  482. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  483. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  484. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  485. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -364
  486. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  487. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  488. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  494. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  495. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  496. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  497. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  498. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -364
  499. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  500. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  501. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  502. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  503. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  504. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  505. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  506. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  507. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  508. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  509. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  511. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  513. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  515. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  516. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  517. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  519. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  521. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  522. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  524. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  525. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  526. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  528. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  530. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  533. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  535. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  537. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  539. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  541. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  542. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  543. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -595
  545. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -484
  547. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -366
  550. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -607
  554. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -922
  556. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  557. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  558. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  559. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  560. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  561. package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.dbg.json +0 -4
  562. package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.json +0 -248
  563. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  566. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  568. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  570. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  572. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  574. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  576. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -443
  578. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  580. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  582. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  584. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  585. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  586. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  587. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  589. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  590. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  592. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  594. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  596. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  597. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  598. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  600. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  602. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  605. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  608. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  612. package/contracts/components/BaseComponent.sol +0 -94
  613. package/contracts/components/Distribution.sol +0 -132
  614. package/contracts/components/IBaseComponent.sol +0 -19
  615. package/contracts/components/IDistributionComponent.sol +0 -47
  616. package/contracts/components/IPoolComponent.sol +0 -71
  617. package/contracts/components/IProductComponent.sol +0 -38
  618. package/contracts/components/Pool.sol +0 -235
  619. package/contracts/components/Product.sol +0 -227
  620. package/contracts/experiment/errors/Require.sol +0 -38
  621. package/contracts/experiment/errors/Revert.sol +0 -44
  622. package/contracts/experiment/inheritance/A.sol +0 -53
  623. package/contracts/experiment/inheritance/B.sol +0 -28
  624. package/contracts/experiment/inheritance/C.sol +0 -34
  625. package/contracts/experiment/inheritance/IA.sol +0 -13
  626. package/contracts/experiment/inheritance/IB.sol +0 -10
  627. package/contracts/experiment/inheritance/IC.sol +0 -12
  628. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  629. package/contracts/experiment/statemachine/ISM.sol +0 -25
  630. package/contracts/experiment/statemachine/README.md +0 -112
  631. package/contracts/experiment/statemachine/SM.sol +0 -57
  632. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  633. package/contracts/experiment/types/TypeA.sol +0 -47
  634. package/contracts/experiment/types/TypeB.sol +0 -29
  635. package/contracts/instance/IInstanceLinked.sol +0 -8
  636. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  637. package/contracts/instance/base/IInstanceBase.sol +0 -22
  638. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  639. package/contracts/instance/base/IService.sol +0 -15
  640. package/contracts/instance/base/InstanceBase.sol +0 -91
  641. package/contracts/instance/base/KeyValueStore.sol +0 -161
  642. package/contracts/instance/base/ModuleBase.sol +0 -57
  643. package/contracts/instance/base/ServiceBase.sol +0 -37
  644. package/contracts/instance/module/access/Access.sol +0 -149
  645. package/contracts/instance/module/access/IAccess.sol +0 -53
  646. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  647. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  648. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  649. package/contracts/instance/module/component/IComponent.sol +0 -28
  650. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  651. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  652. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  653. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  654. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  655. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  656. package/contracts/instance/module/risk/IRisk.sol +0 -26
  657. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  658. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  659. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  660. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  661. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  662. package/contracts/instance/service/DistributionService.sol +0 -59
  663. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  664. package/contracts/instance/service/IDistributionService.sol +0 -12
  665. package/contracts/instance/service/IPoolService.sol +0 -37
  666. package/contracts/instance/service/IProductService.sol +0 -107
  667. package/contracts/instance/service/PoolService.sol +0 -149
  668. package/contracts/instance/service/ProductService.sol +0 -509
  669. package/contracts/registry/IChainNft.sol +0 -21
  670. package/contracts/registry/IRegistryLinked.sol +0 -8
  671. package/contracts/shared/IOwnable.sol +0 -6
  672. package/contracts/shared/Proxy.sol +0 -94
  673. package/contracts/test/TestDistribution.sol +0 -21
  674. package/contracts/test/TestFee.sol +0 -25
  675. package/contracts/test/TestPool.sol +0 -25
  676. package/contracts/test/TestProduct.sol +0 -72
  677. package/contracts/test/TestRegisterable.sol +0 -19
  678. package/contracts/test/TestRoleId.sol +0 -14
  679. package/contracts/test/TestService.sol +0 -32
  680. package/contracts/test/TestToken.sol +0 -26
  681. package/contracts/test/TestVersion.sol +0 -44
  682. package/contracts/test/TestVersionable.sol +0 -17
  683. package/contracts/types/ChainId.sol +0 -38
  684. package/contracts/types/Fee.sol +0 -56
  685. package/contracts/types/NftIdSet.sol +0 -60
  686. package/contracts/types/ObjectType.sol +0 -131
  687. package/contracts/types/ReferralId.sol +0 -48
  688. package/contracts/types/RoleId.sol +0 -38
@@ -1,509 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IProductComponent} from "../../components/IProductComponent.sol";
6
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
7
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
8
- import {IInstance} from "../../instance/IInstance.sol";
9
- import {IPolicy, IPolicyModule} from "../module/policy/IPolicy.sol";
10
- import {IPool} from "../module/pool/IPoolModule.sol";
11
- import {IRisk} from "../module/risk/IRisk.sol";
12
- import {IBundle} from "../module/bundle/IBundle.sol";
13
- import {IProductService} from "./IProductService.sol";
14
- import {ITreasury, ITreasuryModule, TokenHandler} from "../../instance/module/treasury/ITreasury.sol";
15
-
16
- import {IVersionable} from "../../shared/IVersionable.sol";
17
- import {Versionable} from "../../shared/Versionable.sol";
18
-
19
- import {Timestamp, zeroTimestamp} from "../../types/Timestamp.sol";
20
- import {UFixed, UFixedMathLib} from "../../types/UFixed.sol";
21
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
22
- import {ObjectType, INSTANCE, PRODUCT, POLICY} from "../../types/ObjectType.sol";
23
- import {APPLIED, UNDERWRITTEN, ACTIVE} from "../../types/StateId.sol";
24
- import {NftId, NftIdLib} from "../../types/NftId.sol";
25
- import {Fee, FeeLib} from "../../types/Fee.sol";
26
- import {ReferralId} from "../../types/ReferralId.sol";
27
- import {RiskId} from "../../types/RiskId.sol";
28
- import {StateId} from "../../types/StateId.sol";
29
- import {Version, VersionLib} from "../../types/Version.sol";
30
-
31
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
32
- import {IProductService} from "./IProductService.sol";
33
-
34
- // TODO or name this ProtectionService to have Product be something more generic (loan, savings account, ...)
35
- contract ProductService is ComponentServiceBase, IProductService {
36
- using NftIdLib for NftId;
37
-
38
- string public constant NAME = "ProductService";
39
-
40
- event LogProductServiceSender(address sender);
41
-
42
- constructor(
43
- address registry,
44
- NftId registryNftId
45
- ) ComponentServiceBase(registry, registryNftId) // solhint-disable-next-line no-empty-blocks
46
- {
47
- _registerInterface(type(IProductService).interfaceId);
48
- }
49
-
50
- function getVersion()
51
- public
52
- pure
53
- virtual override (IVersionable, Versionable)
54
- returns(Version)
55
- {
56
- return VersionLib.toVersion(3,0,0);
57
- }
58
-
59
- function getName() external pure override returns(string memory name) {
60
- return NAME;
61
- }
62
-
63
- function setFees(
64
- Fee memory productFee,
65
- Fee memory processingFee
66
- )
67
- external
68
- override
69
- {
70
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
71
- NftId productNftId = productInfo.nftId;
72
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productNftId);
73
- treasuryInfo.productFee = productFee;
74
- treasuryInfo.processingFee = processingFee;
75
- instance.setTreasuryInfo(productNftId, treasuryInfo);
76
- }
77
-
78
- function createRisk(
79
- RiskId riskId,
80
- bytes memory data
81
- ) external override {
82
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
83
- NftId productNftId = productInfo.nftId;
84
- instance.createRisk(
85
- riskId,
86
- productNftId,
87
- data
88
- );
89
- }
90
-
91
- function setRiskInfo(
92
- RiskId riskId,
93
- IRisk.RiskInfo memory info
94
- ) external {
95
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
96
- instance.setRiskInfo(
97
- riskId,
98
- info
99
- );
100
- }
101
-
102
- function updateRiskState(
103
- RiskId riskId,
104
- StateId state
105
- ) external {
106
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
107
- instance.updateRiskState(
108
- riskId,
109
- state
110
- );
111
- }
112
-
113
- function _getAndVerifyInstanceAndProduct() internal view returns (IProductComponent product) {
114
- IRegistry.ObjectInfo memory productInfo;
115
- (productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
116
- product = IProductComponent(productInfo.objectAddress);
117
- }
118
-
119
- function calculatePremium(
120
- RiskId riskId,
121
- uint256 sumInsuredAmount,
122
- uint256 lifetime,
123
- bytes memory applicationData,
124
- NftId bundleNftId,
125
- ReferralId referralId
126
- )
127
- public
128
- view
129
- override
130
- returns (
131
- uint256 premiumAmount,
132
- uint256 productFeeAmount,
133
- uint256 poolFeeAmount,
134
- uint256 bundleFeeAmount,
135
- uint256 distributionFeeAmount
136
- )
137
- {
138
- IProductComponent product = _getAndVerifyInstanceAndProduct();
139
- uint256 netPremiumAmount = product.calculateNetPremium(
140
- sumInsuredAmount,
141
- riskId,
142
- lifetime,
143
- applicationData
144
- );
145
-
146
- (
147
- productFeeAmount,
148
- poolFeeAmount,
149
- bundleFeeAmount,
150
- distributionFeeAmount
151
- ) = _calculateFeeAmounts(
152
- netPremiumAmount,
153
- product,
154
- bundleNftId,
155
- referralId
156
- );
157
-
158
- premiumAmount = netPremiumAmount + productFeeAmount;
159
- premiumAmount += poolFeeAmount + bundleFeeAmount;
160
- premiumAmount += distributionFeeAmount;
161
- }
162
-
163
- function _calculateFeeAmounts(
164
- uint256 netPremiumAmount,
165
- IProductComponent product,
166
- NftId bundleNftId,
167
- ReferralId referralId
168
- )
169
- internal
170
- view
171
- returns (
172
- uint256 productFeeAmount,
173
- uint256 poolFeeAmount,
174
- uint256 bundleFeeAmount,
175
- uint256 distributionFeeAmount
176
- )
177
- {
178
- IInstance instance = product.getInstance();
179
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(product.getNftId());
180
- IBundle.BundleInfo memory bundleInfo = instance.getBundleInfo(bundleNftId);
181
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
182
-
183
- (productFeeAmount,) = FeeLib.calculateFee(treasuryInfo.productFee, netPremiumAmount);
184
- (poolFeeAmount,) = FeeLib.calculateFee(treasuryInfo.poolFee, netPremiumAmount);
185
- (bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
186
-
187
- IRegistry.ObjectInfo memory distributionInfo = _registry.getObjectInfo(treasuryInfo.distributionNftId);
188
- IDistributionComponent distribution = IDistributionComponent(distributionInfo.objectAddress);
189
- distributionFeeAmount = distribution.calculateFeeAmount(referralId, netPremiumAmount);
190
- }
191
-
192
-
193
- function createApplication(
194
- address applicationOwner,
195
- RiskId riskId,
196
- uint256 sumInsuredAmount,
197
- uint256 lifetime,
198
- bytes memory applicationData,
199
- NftId bundleNftId,
200
- ReferralId referralId
201
- ) external override returns (NftId policyNftId) {
202
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
203
- // TODO add validations (see create bundle in pool service)
204
-
205
- policyNftId = this.getRegistry().registerObjectForInstance(
206
- productInfo.nftId,
207
- POLICY(),
208
- applicationOwner,
209
- ""
210
- );
211
-
212
- (uint256 premiumAmount,,,,) = calculatePremium(
213
- riskId,
214
- sumInsuredAmount,
215
- lifetime,
216
- applicationData,
217
- bundleNftId,
218
- referralId
219
- );
220
-
221
- instance.createPolicyInfo(
222
- policyNftId,
223
- productInfo.nftId,
224
- referralId,
225
- riskId,
226
- sumInsuredAmount,
227
- premiumAmount,
228
- lifetime,
229
- bundleNftId
230
- );
231
-
232
- // TODO add logging
233
- }
234
-
235
- function _getAndVerifyUnderwritingSetup(
236
- IInstance instance,
237
- IPolicy.PolicyInfo memory policyInfo
238
- )
239
- internal
240
- view
241
- returns (
242
- ITreasury.TreasuryInfo memory treasuryInfo,
243
- NftId bundleNftId,
244
- IBundle.BundleInfo memory bundleInfo,
245
- uint256 collateralAmount
246
- )
247
- {
248
- // check match between policy and bundle (via pool)
249
- treasuryInfo = instance.getTreasuryInfo(policyInfo.productNftId);
250
- bundleNftId = policyInfo.bundleNftId;
251
- bundleInfo = instance.getBundleInfo(bundleNftId);
252
- require(bundleInfo.poolNftId == treasuryInfo.poolNftId, "POLICY_BUNDLE_MISMATCH");
253
-
254
- // calculate required collateral
255
- NftId poolNftId = treasuryInfo.poolNftId;
256
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
257
-
258
- // obtain remaining return values
259
- collateralAmount = calculateRequiredCollateral(poolInfo.collateralizationLevel, policyInfo.sumInsuredAmount);
260
- }
261
-
262
- function _lockCollateralInBundle(
263
- IInstance instance,
264
- NftId bundleNftId,
265
- IBundle.BundleInfo memory bundleInfo,
266
- NftId policyNftId,
267
- uint256 collateralAmount
268
- )
269
- internal
270
- returns (IBundle.BundleInfo memory)
271
- {
272
- bundleInfo.lockedAmount += collateralAmount;
273
- instance.collateralizePolicy(bundleNftId, policyNftId, collateralAmount);
274
- return bundleInfo;
275
- }
276
-
277
- function _underwriteByPool(
278
- ITreasury.TreasuryInfo memory treasuryInfo,
279
- NftId policyNftId,
280
- IPolicy.PolicyInfo memory policyInfo,
281
- bytes memory bundleFilter,
282
- uint256 collateralAmount
283
- )
284
- internal
285
- {
286
- address poolAddress = _registry.getObjectInfo(treasuryInfo.poolNftId).objectAddress;
287
- IPoolComponent pool = IPoolComponent(poolAddress);
288
- pool.underwrite(
289
- policyNftId,
290
- policyInfo.applicationData,
291
- bundleFilter,
292
- collateralAmount);
293
- }
294
-
295
-
296
- function revoke(
297
- NftId policyNftId
298
- )
299
- external
300
- override
301
- {
302
- require(false, "ERROR:PRS-234:NOT_YET_IMPLEMENTED");
303
- }
304
-
305
-
306
- function underwrite(
307
- NftId policyNftId,
308
- bool requirePremiumPayment,
309
- Timestamp activateAt
310
- )
311
- external
312
- override
313
- {
314
- // check caller is registered product
315
- (
316
- IRegistry.ObjectInfo memory productInfo,
317
- IInstance instance
318
- ) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
319
-
320
- // check match between policy and calling product
321
- NftId productNftId = productInfo.nftId;
322
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
323
- require(policyInfo.productNftId == productNftId, "POLICY_PRODUCT_MISMATCH");
324
- require(instance.getState(policyNftId.toKey32(POLICY())) == APPLIED(), "ERROR:PRS-021:STATE_NOT_APPLIED");
325
-
326
- ITreasury.TreasuryInfo memory treasuryInfo;
327
- NftId bundleNftId;
328
- IBundle.BundleInfo memory bundleInfo;
329
- uint256 collateralAmount;
330
-
331
- (
332
- treasuryInfo,
333
- bundleNftId,
334
- bundleInfo,
335
- collateralAmount
336
- ) = _getAndVerifyUnderwritingSetup(
337
- instance,
338
- policyInfo
339
- );
340
-
341
- // lock bundle collateral
342
- bundleInfo = _lockCollateralInBundle(
343
- instance,
344
- bundleNftId,
345
- bundleInfo,
346
- policyNftId,
347
- collateralAmount);
348
-
349
- // set policy state to underwritten
350
- instance.updatePolicyState(policyNftId, UNDERWRITTEN());
351
-
352
- // optional activation of policy
353
- if(activateAt > zeroTimestamp()) {
354
- policyInfo.activatedAt = activateAt;
355
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
356
-
357
- instance.updatePolicyState(policyNftId, ACTIVE());
358
- }
359
-
360
- // optional collection of premium
361
- if(requirePremiumPayment) {
362
- uint256 netPremiumAmount = _processPremiumByTreasury(
363
- instance,
364
- productInfo.nftId,
365
- treasuryInfo,
366
- policyNftId,
367
- policyInfo.premiumAmount);
368
-
369
- policyInfo.premiumPaidAmount += policyInfo.premiumAmount;
370
- bundleInfo.balanceAmount += netPremiumAmount;
371
- }
372
-
373
- instance.setPolicyInfo(policyNftId, policyInfo);
374
- instance.setBundleInfo(bundleNftId, bundleInfo);
375
-
376
- // involve pool if necessary
377
- {
378
- NftId poolNftId = treasuryInfo.poolNftId;
379
- IPool.PoolInfo memory poolInfo = instance.getPoolInfo(poolNftId);
380
-
381
- if(poolInfo.isVerifying) {
382
- _underwriteByPool(
383
- treasuryInfo,
384
- policyNftId,
385
- policyInfo,
386
- bundleInfo.filter,
387
- collateralAmount
388
- );
389
- }
390
- }
391
-
392
- // TODO add logging
393
- }
394
-
395
- function calculateRequiredCollateral(UFixed collateralizationLevel, uint256 sumInsuredAmount) public pure override returns(uint256 collateralAmount) {
396
- UFixed sumInsuredUFixed = UFixedMathLib.toUFixed(sumInsuredAmount);
397
- UFixed collateralUFixed = collateralizationLevel * sumInsuredUFixed;
398
- return collateralUFixed.toInt();
399
- }
400
-
401
- function collectPremium(NftId policyNftId, Timestamp activateAt) external override {
402
- // check caller is registered product
403
- (IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
404
-
405
- // perform actual token transfers
406
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
407
- ITreasury.TreasuryInfo memory treasuryInfo = instance.getTreasuryInfo(productInfo.nftId);
408
-
409
- uint256 premiumAmount = policyInfo.premiumAmount;
410
- _processPremiumByTreasury(instance, productInfo.nftId, treasuryInfo, policyNftId, premiumAmount);
411
-
412
- // policy level book keeping for premium paid
413
- policyInfo.premiumPaidAmount += premiumAmount;
414
-
415
- // optional activation of policy
416
- if(activateAt > zeroTimestamp()) {
417
- require(
418
- policyInfo.activatedAt.eqz(),
419
- "ERROR:PRS-030:ALREADY_ACTIVATED");
420
-
421
- policyInfo.activatedAt = activateAt;
422
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
423
-
424
- instance.updatePolicyState(policyNftId, ACTIVE());
425
- }
426
-
427
- instance.setPolicyInfo(policyNftId, policyInfo);
428
-
429
- // TODO add logging
430
- }
431
-
432
- function activate(NftId policyNftId, Timestamp activateAt) external override {
433
- // check caller is registered product
434
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
435
-
436
- IPolicy.PolicyInfo memory policyInfo = instance.getPolicyInfo(policyNftId);
437
-
438
- require(
439
- policyInfo.activatedAt.eqz(),
440
- "ERROR:PRS-020:ALREADY_ACTIVATED");
441
-
442
- policyInfo.activatedAt = activateAt;
443
- policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
444
-
445
- instance.setPolicyInfo(policyNftId, policyInfo);
446
- instance.updatePolicyState(policyNftId, ACTIVE());
447
-
448
- // TODO add logging
449
- }
450
-
451
- function close(
452
- NftId policyNftId
453
- ) external override // solhint-disable-next-line no-empty-blocks
454
- {
455
-
456
- }
457
-
458
- function _getPoolNftId(
459
- IInstance instance,
460
- NftId productNftId
461
- )
462
- internal
463
- view
464
- returns (NftId poolNftid)
465
- {
466
- return instance.getTreasuryInfo(productNftId).poolNftId;
467
- }
468
-
469
-
470
- function _processPremiumByTreasury(
471
- IInstance instance,
472
- NftId productNftId,
473
- ITreasury.TreasuryInfo memory treasuryInfo,
474
- NftId policyNftId,
475
- uint256 premiumAmount
476
- )
477
- internal
478
- returns (uint256 netPremiumAmount)
479
- {
480
- // process token transfer(s)
481
- if(premiumAmount > 0) {
482
- TokenHandler tokenHandler = instance.getTokenHandler(productNftId);
483
- address policyOwner = _registry.getOwner(policyNftId);
484
- address poolWallet = instance.getComponentWallet(treasuryInfo.poolNftId);
485
- netPremiumAmount = premiumAmount;
486
- Fee memory productFee = treasuryInfo.productFee;
487
-
488
- if (FeeLib.feeIsZero(productFee)) {
489
- tokenHandler.transfer(
490
- policyOwner,
491
- poolWallet,
492
- premiumAmount
493
- );
494
- } else {
495
- (uint256 feeAmount, uint256 netAmount) = instance.calculateFeeAmount(
496
- premiumAmount,
497
- productFee
498
- );
499
-
500
- address productWallet = instance.getComponentWallet(productNftId);
501
- tokenHandler.transfer(policyOwner, productWallet, feeAmount);
502
- tokenHandler.transfer(policyOwner, poolWallet, netAmount);
503
- netPremiumAmount = netAmount;
504
- }
505
- }
506
-
507
- // TODO add logging
508
- }
509
- }
@@ -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,94 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Ownable} from "@openzeppelin5/contracts/access/Ownable.sol";
5
- import {ProxyAdmin} from "@openzeppelin5/contracts/proxy/transparent/ProxyAdmin.sol";
6
- import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@openzeppelin5/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
7
-
8
- import {IVersionable} from "./IVersionable.sol";
9
-
10
- contract ProxyWithProxyAdminGetter is TransparentUpgradeableProxy {
11
-
12
- constructor(address implementation, address initialProxyAdminOwner, bytes memory data)
13
- TransparentUpgradeableProxy(implementation, initialProxyAdminOwner, data)
14
- {}
15
-
16
- function getProxyAdmin() external returns (ProxyAdmin) { return ProxyAdmin(_proxyAdmin()); }
17
- }
18
-
19
- // renamed because of name collision with OZ Proxy -> local proxy type was missing in typechain-types
20
- contract ProxyDeployer is Ownable {
21
-
22
- event ProxyDeployed(address indexed proxy);
23
-
24
- // TODO use contract functions selectors ???
25
- string public constant INITIALIZE_SIGNATURE = "initialize(address,address,bytes)";
26
- string public constant UPGRADE_SIGNATURE = "upgrade(address,address,bytes)";
27
-
28
- ProxyWithProxyAdminGetter private _proxy;
29
- bool private _isDeployed;
30
-
31
- /// @dev only used to capture proxy owner
32
- constructor()
33
- Ownable(msg.sender)
34
- {
35
- }
36
-
37
- function getDeployData(address implementation, address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
38
- return abi.encodeWithSignature(INITIALIZE_SIGNATURE, implementation, proxyOwner, deployData);
39
- }
40
-
41
- function getUpgradeData(address implementation, address proxyOwner, bytes memory upgradeData) public pure returns (bytes memory data) {
42
- return abi.encodeWithSignature(UPGRADE_SIGNATURE, implementation, proxyOwner, upgradeData);
43
- }
44
-
45
- /// @dev deploy initial contract
46
- function deploy(address initialImplementation, bytes memory deployData)
47
- external
48
- onlyOwner()
49
- returns (IVersionable versionable)
50
- {
51
- require(!_isDeployed, "ERROR:PRX-010:ALREADY_DEPLOYED");
52
-
53
- address currentProxyOwner = owner();
54
- address initialProxyAdminOwner = address(this);
55
- bytes memory data = getDeployData(initialImplementation, currentProxyOwner, deployData);
56
-
57
- _proxy = new ProxyWithProxyAdminGetter(
58
- initialImplementation,
59
- initialProxyAdminOwner,
60
- data
61
- );
62
-
63
- _isDeployed = true;
64
- versionable = IVersionable(address(_proxy));
65
-
66
- emit ProxyDeployed(address(_proxy));
67
- }
68
-
69
- /// @dev upgrade existing contract
70
- function upgrade(address newImplementation, bytes memory upgradeData)
71
- external
72
- onlyOwner
73
- returns (IVersionable versionable)
74
- {
75
- require(_isDeployed, "ERROR:PRX-020:NOT_YET_DEPLOYED");
76
-
77
- address currentProxyOwner = owner();
78
- // ProxyAdmin proxyAdmin = _proxy.getProxyAdmin();
79
- ProxyAdmin proxyAdmin = getProxyAdmin();
80
- ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
81
- bytes memory data = getUpgradeData(newImplementation, currentProxyOwner, upgradeData);
82
-
83
- proxyAdmin.upgradeAndCall(
84
- proxy,
85
- newImplementation,
86
- data);
87
-
88
- versionable = IVersionable(address(_proxy));
89
- }
90
-
91
- function getProxyAdmin() public returns (ProxyAdmin) {
92
- return _proxy.getProxyAdmin();
93
- }
94
- }
@@ -1,21 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../../contracts/types/Fee.sol";
5
- import {NftId} from "../../contracts/types/NftId.sol";
6
- import {Distribution} from "../../contracts/components/Distribution.sol";
7
-
8
-
9
- contract TestDistribution is Distribution {
10
-
11
- constructor(
12
- address registry,
13
- NftId instanceNftid,
14
- address token,
15
- bool isVerifying,
16
- Fee memory distributionFee
17
- )
18
- Distribution(registry, instanceNftid, token, isVerifying, distributionFee)
19
- // solhint-disable-next-line no-empty-blocks
20
- {}
21
- }
@@ -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
- }