@etherisc/gif-next 0.0.2-ce87da3-250 → 0.0.2-ce8fb44-591

Sign up to get free protection for your applications and to get access to all the features.
Files changed (606) hide show
  1. package/README.md +26 -86
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +257 -412
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +286 -286
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +287 -83
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +61 -122
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +292 -2124
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +315 -67
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2881
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1621 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +663 -314
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +376 -262
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +283 -213
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +398 -326
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +397 -450
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +129 -90
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +271 -134
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +401 -241
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/{components → product}/Product.sol/Product.json +378 -367
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +144 -19
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -77
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +381 -34
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +373 -98
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  169. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +703 -91
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +101 -114
  182. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  184. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  185. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  186. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  188. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  189. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  190. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  192. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  194. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  196. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  198. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  200. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  202. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  204. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  211. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  213. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  214. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  219. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  221. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  223. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  224. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  225. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  226. package/artifacts/contracts/shared/Service.sol/Service.json +104 -22
  227. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  228. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  229. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  230. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  231. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  232. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  234. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  236. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  238. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  240. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  242. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  244. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  246. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  248. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  250. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  252. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  254. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  256. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  258. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  260. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  262. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  264. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  266. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  268. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  270. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  272. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  274. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  276. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  278. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  280. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  282. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  284. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  290. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  292. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  294. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  296. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  297. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  298. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  300. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  301. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  302. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  303. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  304. package/contracts/authorization/AccessAdmin.sol +588 -0
  305. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  306. package/contracts/authorization/Authorization.sol +218 -0
  307. package/contracts/authorization/IAccess.sol +48 -0
  308. package/contracts/authorization/IAccessAdmin.sol +136 -0
  309. package/contracts/authorization/IAuthorization.sol +54 -0
  310. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  311. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  312. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  313. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  314. package/contracts/distribution/BasicDistribution.sol +149 -0
  315. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  316. package/contracts/{components → distribution}/Distribution.sol +163 -167
  317. package/contracts/distribution/DistributionService.sol +302 -0
  318. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  319. package/contracts/distribution/IDistributionComponent.sol +48 -0
  320. package/contracts/{instance/service → distribution}/IDistributionService.sol +29 -25
  321. package/contracts/instance/BundleManager.sol +15 -14
  322. package/contracts/instance/IInstance.sol +58 -64
  323. package/contracts/instance/IInstanceService.sol +54 -21
  324. package/contracts/instance/Instance.sol +174 -211
  325. package/contracts/instance/InstanceAdmin.sol +266 -0
  326. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  327. package/contracts/instance/InstanceReader.sol +173 -61
  328. package/contracts/instance/InstanceService.sol +304 -337
  329. package/contracts/instance/InstanceServiceManager.sol +11 -21
  330. package/contracts/instance/InstanceStore.sol +276 -0
  331. package/contracts/instance/base/BalanceStore.sol +123 -0
  332. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  333. package/contracts/instance/base/ObjectCounter.sol +21 -0
  334. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  335. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -18
  336. package/contracts/instance/module/IAccess.sol +19 -20
  337. package/contracts/instance/module/IBundle.sol +8 -8
  338. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -20
  339. package/contracts/instance/module/IDistribution.sol +7 -5
  340. package/contracts/instance/module/IPolicy.sol +53 -16
  341. package/contracts/instance/module/IRisk.sol +1 -1
  342. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  343. package/contracts/oracle/BasicOracle.sol +48 -0
  344. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  345. package/contracts/oracle/IOracle.sol +36 -0
  346. package/contracts/oracle/IOracleComponent.sol +32 -0
  347. package/contracts/oracle/IOracleService.sol +65 -0
  348. package/contracts/oracle/Oracle.sol +157 -0
  349. package/contracts/oracle/OracleService.sol +278 -0
  350. package/contracts/oracle/OracleServiceManager.sol +42 -0
  351. package/contracts/pool/BasicPool.sol +164 -0
  352. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  353. package/contracts/pool/BundleService.sol +296 -0
  354. package/contracts/pool/BundleServiceManager.sol +42 -0
  355. package/contracts/pool/IBundleService.sol +106 -0
  356. package/contracts/pool/IPoolComponent.sol +52 -0
  357. package/contracts/pool/IPoolService.sol +150 -0
  358. package/contracts/pool/Pool.sol +311 -0
  359. package/contracts/pool/PoolService.sol +452 -0
  360. package/contracts/pool/PoolServiceManager.sol +42 -0
  361. package/contracts/product/ApplicationService.sol +254 -0
  362. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  363. package/contracts/product/BasicProduct.sol +82 -0
  364. package/contracts/product/BasicProductAuthorization.sol +40 -0
  365. package/contracts/product/ClaimService.sol +442 -0
  366. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  367. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  368. package/contracts/product/IClaimService.sol +99 -0
  369. package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
  370. package/contracts/product/IPricingService.sol +39 -0
  371. package/contracts/product/IProductComponent.sol +39 -0
  372. package/contracts/product/IProductService.sol +33 -0
  373. package/contracts/product/PolicyService.sol +475 -0
  374. package/contracts/product/PolicyServiceManager.sol +42 -0
  375. package/contracts/product/PricingService.sol +300 -0
  376. package/contracts/product/PricingServiceManager.sol +42 -0
  377. package/contracts/product/Product.sol +392 -0
  378. package/contracts/product/ProductService.sol +124 -0
  379. package/contracts/product/ProductServiceManager.sol +42 -0
  380. package/contracts/registry/ChainNft.sol +16 -1
  381. package/contracts/registry/IRegistry.sol +43 -21
  382. package/contracts/registry/IRegistryService.sol +39 -37
  383. package/contracts/registry/ITransferInterceptor.sol +1 -0
  384. package/contracts/registry/Registry.sol +211 -97
  385. package/contracts/registry/RegistryAdmin.sol +365 -0
  386. package/contracts/registry/RegistryService.sol +73 -90
  387. package/contracts/registry/RegistryServiceManager.sol +21 -30
  388. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  389. package/contracts/registry/ReleaseManager.sol +356 -191
  390. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  391. package/contracts/registry/TokenRegistry.sol +261 -62
  392. package/contracts/shared/Component.sol +281 -0
  393. package/contracts/shared/ComponentService.sol +581 -0
  394. package/contracts/shared/ComponentServiceManager.sol +35 -0
  395. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  396. package/contracts/shared/ERC165.sol +1 -1
  397. package/contracts/shared/IComponent.sol +70 -0
  398. package/contracts/shared/IComponentService.sol +102 -0
  399. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  400. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  401. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  402. package/contracts/shared/INftOwnable.sol +2 -2
  403. package/contracts/shared/IPolicyHolder.sol +29 -10
  404. package/contracts/shared/IRegistryLinked.sol +0 -1
  405. package/contracts/shared/IService.sol +14 -7
  406. package/contracts/shared/IVersionable.sol +1 -1
  407. package/contracts/shared/InitializableCustom.sol +177 -0
  408. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  409. package/contracts/shared/KeyValueStore.sol +131 -0
  410. package/contracts/shared/Lifecycle.sol +77 -0
  411. package/contracts/shared/NftIdSetManager.sol +65 -0
  412. package/contracts/shared/NftOwnable.sol +3 -16
  413. package/contracts/shared/PolicyHolder.sol +40 -19
  414. package/contracts/shared/ProxyManager.sol +34 -4
  415. package/contracts/shared/Registerable.sol +15 -14
  416. package/contracts/shared/RegistryLinked.sol +0 -5
  417. package/contracts/shared/Service.sol +47 -22
  418. package/contracts/shared/TokenHandler.sol +37 -6
  419. package/contracts/shared/Versionable.sol +1 -1
  420. package/contracts/staking/IStaking.sol +168 -0
  421. package/contracts/staking/IStakingService.sol +153 -0
  422. package/contracts/staking/StakeManagerLib.sol +231 -0
  423. package/contracts/staking/Staking.sol +513 -0
  424. package/contracts/staking/StakingLifecycle.sol +23 -0
  425. package/contracts/staking/StakingManager.sol +54 -0
  426. package/contracts/staking/StakingReader.sol +187 -0
  427. package/contracts/staking/StakingService.sol +411 -0
  428. package/contracts/staking/StakingServiceManager.sol +44 -0
  429. package/contracts/staking/StakingStore.sol +615 -0
  430. package/contracts/staking/TargetManagerLib.sol +207 -0
  431. package/contracts/{types → type}/AddressSet.sol +1 -1
  432. package/contracts/type/Amount.sol +128 -0
  433. package/contracts/{types → type}/Blocknumber.sol +21 -3
  434. package/contracts/{types → type}/ClaimId.sol +25 -2
  435. package/contracts/{types → type}/Fee.sol +33 -23
  436. package/contracts/{types → type}/NftId.sol +21 -15
  437. package/contracts/{types → type}/NftIdSet.sol +2 -2
  438. package/contracts/type/ObjectType.sol +275 -0
  439. package/contracts/{types → type}/PayoutId.sol +33 -5
  440. package/contracts/{types → type}/Referral.sol +5 -1
  441. package/contracts/type/RequestId.sol +75 -0
  442. package/contracts/{types → type}/RiskId.sol +1 -1
  443. package/contracts/type/RoleId.sol +174 -0
  444. package/contracts/type/Seconds.sol +81 -0
  445. package/contracts/type/Selector.sol +102 -0
  446. package/contracts/{types → type}/StateId.sol +34 -4
  447. package/contracts/type/String.sol +53 -0
  448. package/contracts/{types → type}/Timestamp.sol +23 -14
  449. package/contracts/{types → type}/UFixed.sol +7 -0
  450. package/contracts/{types → type}/Version.sol +2 -1
  451. package/package.json +6 -3
  452. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  453. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  454. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  456. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  457. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  459. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  460. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  461. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  462. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  463. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  465. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  470. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  472. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -869
  476. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  478. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1096
  480. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  482. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  484. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  486. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1254
  488. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -753
  490. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  494. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -347
  498. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1120
  501. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  505. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  507. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  509. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  511. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  512. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  514. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  515. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  516. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  521. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  529. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  530. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  531. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  532. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  534. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  536. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  538. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  541. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  544. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  549. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  551. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  553. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  556. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  559. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  562. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  564. package/contracts/components/Component.sol +0 -241
  565. package/contracts/components/IComponent.sol +0 -54
  566. package/contracts/components/IDistributionComponent.sol +0 -92
  567. package/contracts/components/IPoolComponent.sol +0 -87
  568. package/contracts/components/IProductComponent.sol +0 -39
  569. package/contracts/components/Pool.sol +0 -254
  570. package/contracts/components/Product.sol +0 -285
  571. package/contracts/instance/InstanceAccessManager.sol +0 -297
  572. package/contracts/instance/base/ComponentService.sol +0 -134
  573. package/contracts/instance/base/KeyValueStore.sol +0 -172
  574. package/contracts/instance/base/Lifecycle.sol +0 -100
  575. package/contracts/instance/module/ITreasury.sol +0 -23
  576. package/contracts/instance/service/ApplicationService.sol +0 -268
  577. package/contracts/instance/service/BundleService.sol +0 -298
  578. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  579. package/contracts/instance/service/ClaimService.sol +0 -151
  580. package/contracts/instance/service/DistributionService.sol +0 -366
  581. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  582. package/contracts/instance/service/IBundleService.sol +0 -54
  583. package/contracts/instance/service/IClaimService.sol +0 -61
  584. package/contracts/instance/service/IPoolService.sol +0 -20
  585. package/contracts/instance/service/IProductService.sol +0 -40
  586. package/contracts/instance/service/PolicyService.sol +0 -476
  587. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  588. package/contracts/instance/service/PoolService.sol +0 -109
  589. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  590. package/contracts/instance/service/ProductService.sol +0 -233
  591. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  592. package/contracts/registry/RegistryAccessManager.sol +0 -216
  593. package/contracts/shared/ContractDeployerLib.sol +0 -72
  594. package/contracts/test/TestFee.sol +0 -25
  595. package/contracts/test/TestRegisterable.sol +0 -18
  596. package/contracts/test/TestRoleId.sol +0 -14
  597. package/contracts/test/TestService.sol +0 -25
  598. package/contracts/test/TestVersion.sol +0 -44
  599. package/contracts/test/TestVersionable.sol +0 -17
  600. package/contracts/test/Usdc.sol +0 -26
  601. package/contracts/types/ChainId.sol +0 -38
  602. package/contracts/types/NumberId.sol +0 -52
  603. package/contracts/types/ObjectType.sol +0 -156
  604. package/contracts/types/RoleId.sol +0 -90
  605. /package/contracts/{types → type}/DistributorType.sol +0 -0
  606. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,241 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
5
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
6
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
7
-
8
- import {IComponent} from "./IComponent.sol";
9
- import {IProductService} from "../instance/service/IProductService.sol";
10
- import {IInstanceService} from "../instance/IInstanceService.sol";
11
- import {IInstance} from "../instance/IInstance.sol";
12
- import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
13
- import {InstanceReader} from "../instance/InstanceReader.sol";
14
- import {IRegistry} from "../registry/IRegistry.sol";
15
- import {NftId} from "../types/NftId.sol";
16
- import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
17
- import {VersionPart} from "../types/Version.sol";
18
- import {Registerable} from "../shared/Registerable.sol";
19
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
20
- import {IAccess} from "../instance/module/IAccess.sol";
21
- import {VersionPart} from "../types/Version.sol";
22
-
23
- // TODO discuss to inherit from oz accessmanaged
24
- // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
25
- // same pattern as for Service which is also upgradeable
26
- abstract contract Component is
27
- Registerable,
28
- IComponent,
29
- AccessManagedUpgradeable
30
- {
31
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
32
- bytes32 public constant CONTRACT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
33
-
34
- struct ComponentStorage {
35
- IInstance _instance; // instance for this component
36
- InstanceReader _instanceReader; // instance reader for this component
37
- string _name; // unique (per instance) component name
38
- IERC20Metadata _token; // token for this component
39
- address _wallet; // wallet for this component (default = component contract itself)
40
- bool _isNftInterceptor; // declares if component is involved in nft transfers
41
- IInstanceService _instanceService; // instance service for this component
42
-
43
- NftId _productNftId; // only relevant for components that are linked to a aproduct
44
- IProductService _productService; // product service for component, might not be relevant for some component types (eg oracles)
45
- }
46
-
47
-
48
- modifier onlyChainNft() {
49
- if(msg.sender != getRegistry().getChainNftAddress()) {
50
- revert ErrorComponentNotChainNft(msg.sender);
51
- }
52
- _;
53
- }
54
-
55
-
56
- modifier onlyProductService() {
57
- if(msg.sender != address(_getComponentStorage()._productService)) {
58
- revert ErrorComponentNotProductService(msg.sender);
59
- }
60
- _;
61
- }
62
-
63
- function _getComponentStorage() private pure returns (ComponentStorage storage $) {
64
- assembly {
65
- $.slot := CONTRACT_LOCATION_V1
66
- }
67
- }
68
-
69
- function initializeComponent(
70
- address registry,
71
- NftId instanceNftId,
72
- string memory name,
73
- address token,
74
- ObjectType componentType,
75
- bool isInterceptor,
76
- address initialOwner,
77
- bytes memory data
78
- )
79
- public
80
- virtual
81
- onlyInitializing()
82
- {
83
- ComponentStorage storage $ = _getComponentStorage();
84
- initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
85
-
86
- // set unique name of component
87
- $._name = name;
88
- $._isNftInterceptor = isInterceptor;
89
-
90
- // set and check linked instance
91
- IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
92
- $._instance = IInstance(instanceInfo.objectAddress);
93
- if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
94
- revert ErrorComponentNotInstance(instanceNftId, instanceInfo.objectAddress);
95
- }
96
-
97
- // initialize AccessManagedUpgradeable
98
- __AccessManaged_init($._instance.authority());
99
-
100
- // set linked services
101
- VersionPart gifVersion = $._instance.getMajorVersion();
102
- $._instanceService = IInstanceService(getRegistry().getServiceAddress(INSTANCE(), gifVersion));
103
- $._instanceReader = $._instance.getInstanceReader();
104
- $._productService = IProductService(getRegistry().getServiceAddress(PRODUCT(), gifVersion));
105
-
106
- // set wallet and token
107
- $._wallet = address(this);
108
- $._token = IERC20Metadata(token);
109
-
110
- registerInterface(type(IComponent).interfaceId);
111
- }
112
-
113
- /// @dev callback function for nft transfers. may only be called by chain nft contract.
114
- /// default implementation is empty. overriding functions MUST add onlyChainNft modifier
115
- function nftTransferFrom(address from, address to, uint256 tokenId)
116
- external
117
- virtual override
118
- onlyChainNft()
119
- { }
120
-
121
- function lock() external onlyOwner override {
122
- _getComponentStorage()._instanceService.setTargetLocked(getName(), true);
123
- }
124
-
125
- function unlock() external onlyOwner override {
126
- _getComponentStorage()._instanceService.setTargetLocked(getName(), false);
127
- }
128
-
129
- // only product service may set product nft id during registration of product setup
130
- function setProductNftId(NftId productNftId)
131
- external
132
- override
133
- onlyProductService()
134
- {
135
- ComponentStorage storage $ = _getComponentStorage();
136
-
137
- if($._productNftId.gtz()) {
138
- revert ErrorComponentProductNftAlreadySet();
139
- }
140
-
141
- $._productNftId = productNftId;
142
- }
143
-
144
- /// @dev Sets the wallet address for the component.
145
- /// if the current wallet has tokens, these will be transferred.
146
- /// if the new wallet address is externally owned, an approval from the
147
- /// owner of the external wallet for the component to move all tokens must exist.
148
- function setWallet(address newWallet)
149
- external
150
- override
151
- onlyOwner
152
- {
153
- ComponentStorage storage $ = _getComponentStorage();
154
-
155
- address currentWallet = $._wallet;
156
- uint256 currentBalance = $._token.balanceOf(currentWallet);
157
-
158
- // checks
159
- if (newWallet == address(0)) {
160
- revert ErrorComponentWalletAddressZero();
161
- }
162
- if (newWallet == currentWallet) {
163
- revert ErrorComponentWalletAddressIsSameAsCurrent(newWallet);
164
- }
165
-
166
- if (currentBalance > 0) {
167
- if (currentWallet == address(this)) {
168
- // move tokens from component smart contract to external wallet
169
- } else {
170
- // move tokens from external wallet to component smart contract or another external wallet
171
- uint256 allowance = $._token.allowance(currentWallet, address(this));
172
- if (allowance < currentBalance) {
173
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
174
- }
175
- }
176
- }
177
-
178
- // effects
179
- $._wallet = newWallet;
180
- emit LogComponentWalletAddressChanged(newWallet);
181
-
182
- // interactions
183
- if (currentBalance > 0) {
184
- // transfer tokens from current wallet to new wallet
185
- if (currentWallet == address(this)) {
186
- // transferFrom requires self allowance too
187
- $._token.approve(address(this), currentBalance);
188
- }
189
-
190
- SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
191
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
192
- }
193
- }
194
-
195
- function getWallet()
196
- public
197
- view
198
- override
199
- returns (address walletAddress)
200
- {
201
- return _getComponentStorage()._wallet;
202
- }
203
-
204
- function getToken() public view override returns (IERC20Metadata token) {
205
- return _getComponentStorage()._token;
206
- }
207
-
208
- function isNftInterceptor() public view override returns(bool isInterceptor) {
209
- return _getComponentStorage()._isNftInterceptor;
210
- }
211
-
212
- function getInstance() public view override returns (IInstance instance) {
213
- return _getComponentStorage()._instance;
214
- }
215
-
216
- function getInstanceReader() public view returns (InstanceReader reader) {
217
- return _getComponentStorage()._instanceReader;
218
- }
219
-
220
- function getServiceAddress(ObjectType domain) public view returns (address service) {
221
- VersionPart majorVersion = getInstance().getMajorVersion();
222
- return getRegistry().getServiceAddress(domain, majorVersion);
223
- }
224
-
225
- function getName() public view override returns(string memory name) {
226
- return _getComponentStorage()._name;
227
- }
228
-
229
- function getProductNftId() public view override returns (NftId productNftId) {
230
- return _getComponentStorage()._productNftId;
231
- }
232
-
233
- function getInstanceService() public view returns (IInstanceService) {
234
- return _getComponentStorage()._instanceService;
235
- }
236
-
237
- function getProductService() public view returns (IProductService) {
238
- return _getComponentStorage()._productService;
239
- }
240
-
241
- }
@@ -1,54 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {IInstance} from "../instance/IInstance.sol";
7
- import {IInstanceService} from "../instance/IInstanceService.sol";
8
- import {IProductService} from "../instance/service/IProductService.sol";
9
- import {IRegisterable} from "../shared/IRegisterable.sol";
10
- import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
11
- import {NftId} from "../types/NftId.sol";
12
- import {ObjectType} from "../types/ObjectType.sol";
13
-
14
- interface IComponent is
15
- IRegisterable,
16
- ITransferInterceptor
17
- {
18
-
19
- error ErrorComponentNotChainNft(address caller);
20
- error ErrorComponentNotProductService(address caller);
21
- error ErrorComponentNotInstance(NftId instanceNftId, address instance);
22
- error ErrorComponentProductNftAlreadySet();
23
- error ErrorComponentWalletAddressZero();
24
- error ErrorComponentWalletAddressIsSameAsCurrent(address newWallet);
25
- error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
26
- error ErrorComponentUnauthorized(address caller, uint64 requiredRoleIdNum);
27
-
28
- event LogComponentWalletAddressChanged(address newWallet);
29
- event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
30
-
31
- function getName() external view returns (string memory name);
32
-
33
- function lock() external;
34
- function unlock() external;
35
-
36
- function getToken() external view returns (IERC20Metadata token);
37
-
38
- function setWallet(address walletAddress) external;
39
- function getWallet() external view returns (address walletAddress);
40
-
41
- function isNftInterceptor() external view returns(bool isInterceptor);
42
-
43
- function getInstance() external view returns (IInstance instance);
44
-
45
- /// @dev returns the service address for the specified domain
46
- /// gets address via lookup from registry using the major version form the linked instance
47
- function getServiceAddress(ObjectType domain) external view returns (address service);
48
-
49
- function setProductNftId(NftId productNftId) external;
50
- function getProductNftId() external view returns (NftId productNftId);
51
-
52
- function getInstanceService() external view returns (IInstanceService);
53
- function getProductService() external view returns (IProductService);
54
- }
@@ -1,92 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {ReferralId, ReferralStatus} from "../types/Referral.sol";
8
- import {NftId} from "../types/NftId.sol";
9
- import {DistributorType} from "../types/DistributorType.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
- import {Timestamp} from "../types/Timestamp.sol";
12
-
13
- interface IDistributionComponent is IComponent {
14
-
15
- event LogDistributorUpdated(address to, address caller);
16
-
17
- function getSetupInfo() external view returns (ISetup.DistributionSetupInfo memory setupInfo);
18
-
19
- function setFees(
20
- Fee memory distributionFee
21
- ) external;
22
-
23
- function createDistributorType(
24
- string memory name,
25
- UFixed minDiscountPercentage,
26
- UFixed maxDiscountPercentage,
27
- UFixed commissionPercentage,
28
- uint32 maxReferralCount,
29
- uint32 maxReferralLifetime,
30
- bool allowSelfReferrals,
31
- bool allowRenewals,
32
- bytes memory data
33
- ) external returns (DistributorType distributorType);
34
-
35
- function createDistributor(
36
- address distributor,
37
- DistributorType distributorType,
38
- bytes memory data
39
- ) external returns(NftId distributorNftId);
40
-
41
- function updateDistributorType(
42
- NftId distributorNftId,
43
- DistributorType distributorType,
44
- bytes memory data
45
- ) external;
46
-
47
- /**
48
- * @dev lets distributors create referral codes.
49
- * referral codes need to be unique
50
- * distributor is identified via msg.sender.
51
- */
52
- function createReferral(
53
- NftId distributorNftId,
54
- string memory code,
55
- UFixed discountPercentage,
56
- uint32 maxReferrals,
57
- Timestamp expiryAt,
58
- bytes memory data
59
- ) external returns (ReferralId referralId);
60
-
61
- function calculateRenewalFeeAmount(
62
- ReferralId referralId,
63
- uint256 netPremiumAmount
64
- ) external view returns (uint256 feeAmount);
65
-
66
- /// @dev callback from product service when selling a policy for a specific referralId
67
- /// the used referral id and the collected fee are provided as parameters
68
- /// the component implementation can then process this information accordingly
69
- function processSale(
70
- ReferralId referralId,
71
- uint256 feeAmount
72
- ) external;
73
-
74
- /// @dev callback from product service when a policy is renews for a specific referralId
75
- function processRenewal(
76
- ReferralId referralId,
77
- uint256 feeAmount
78
- ) external;
79
-
80
- function getDiscountPercentage(
81
- string memory referralCode
82
- ) external view returns (UFixed discountPercentage, ReferralStatus status);
83
-
84
- function getDistributionFee() external view returns (Fee memory distibutionFee);
85
-
86
- function getReferralId(
87
- string memory referralCode
88
- ) external returns (ReferralId referralId);
89
-
90
- /// @dev returns true iff the component needs to be called when selling/renewing policis
91
- function isVerifying() external view returns (bool verifying);
92
- }
@@ -1,87 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {UFixed} from "../types/UFixed.sol";
9
-
10
- /// @dev pool components hold and manage the collateral to cover active policies
11
- /// pools come in different flavors
12
- interface IPoolComponent is IComponent {
13
-
14
- event LogUnderwrittenByPool(NftId policyNftId, uint256 collateralizationAmount, address pool);
15
-
16
- error ErrorPoolNotPoolService(address service);
17
-
18
- function getSetupInfo() external view returns (ISetup.PoolSetupInfo memory setupInfo);
19
-
20
- function setFees(
21
- Fee memory poolFee,
22
- Fee memory stakingFee,
23
- Fee memory performanceFee
24
- ) external;
25
-
26
- /// @dev sets an additional bundle fee, this fee is added on top of the poolFee and deducted from the premium amounts.
27
- /// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
28
- function setBundleFee(
29
- NftId bundleNftId,
30
- Fee memory fee
31
- ) external;
32
-
33
- /// @dev this is a callback function that is called by the product service when underwriting a policy.
34
- /// the pool has the option to check the details and object to underwriting by reverting.
35
- /// the function is only called for "active" pools that ask to be involved/notified
36
- /// by product related state changes.
37
- function verifyApplication(
38
- NftId applicationNftId,
39
- bytes memory policyData,
40
- bytes memory bundleFilter,
41
- uint256 collateralizationAmount
42
- ) external;
43
-
44
- function lockBundle(NftId bundleNftId) external;
45
-
46
- function unlockBundle(NftId bundleNftId) external;
47
-
48
- /// @dev defines the multiplier to calculate the required collateral to cover a given sum insured amount
49
- /// default implementation returns 100%
50
- function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
51
-
52
- /// @dev defines the amount of collateral held in the pool.
53
- /// if the value is < 100% the pool is required to hold a policy that covers the locally missing collateral
54
- /// default implementation returns 100%
55
- function getRetentionLevel() external view returns (UFixed retentionLevel);
56
-
57
- /// @dev declares if pool intercept transfers of bundle nft ids
58
- /// - yes: pool may block transfer of bundle ownership or simply updates some bookkeeping related to bundle ownership. callback function is nftTransferFrom
59
- /// - no: pool is not involved in transfer of bundle ownership
60
- /// default implementation returns false (no)
61
- function isInterceptingBundleTransfers() external view returns (bool);
62
-
63
- /// @dev declares if pool relies on external management of collateral (yes/no):
64
- /// - yes: underwriting of new policies does not require an actual token balance, instead it is assumed that the pool owner will manage funds externally and inject enough tokens to allow process confirmed payouts
65
- /// - no: the pool smart contract ensures that the necessary capacity of the pool prior to underwriting.
66
- /// default implementation returns false (no)
67
- function isExternallyManaged() external view returns (bool);
68
-
69
- /// @dev declares if pool component is actively involved in underwriting (yes/no):
70
- /// - yes: verifying pools components actively confirm underwriting applications, ie the pool component logic explicitly needs to confirm the locking of collateral to cover the sum insured of the policy
71
- /// - no: underwriting a policy does not require any interaction with the pool component if the covering bundle can provide the necessary captial
72
- /// default implementation returnsfalse (no)
73
- function isVerifyingApplications() external view returns (bool);
74
-
75
- /// @dev returns true iff the policy application data in policyData matches
76
- /// with the bundle filter criteria encoded in bundleFilter
77
- /// this is a callback function that is only called if a pool declares itself as a verifying pool
78
- /// default implementation returns true
79
- function policyMatchesBundle(
80
- bytes memory policyData,
81
- bytes memory bundleFilter
82
- )
83
- external
84
- view
85
- returns (bool isMatching);
86
-
87
- }
@@ -1,39 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
6
- import {ISetup} from "../instance/module/ISetup.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ReferralId} from "../types/Referral.sol";
9
- import {RiskId} from "../types/RiskId.sol";
10
-
11
- interface IProductComponent is IComponent {
12
-
13
- function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
14
-
15
- function setFees(
16
- Fee memory productFee,
17
- Fee memory processingFee
18
- ) external;
19
-
20
- function calculatePremium(
21
- uint256 sumInsuredAmount,
22
- RiskId riskId,
23
- uint256 lifetime,
24
- bytes memory applicationData,
25
- NftId bundleNftId,
26
- ReferralId referralId
27
- ) external view returns (uint256 premiumAmount);
28
-
29
- function calculateNetPremium(
30
- uint256 sumInsuredAmount,
31
- RiskId riskId,
32
- uint256 lifetime,
33
- bytes memory applicationData
34
- ) external view returns (uint256 netPremiumAmount);
35
-
36
-
37
- function getPoolNftId() external view returns (NftId poolNftId);
38
- function getDistributionNftId() external view returns (NftId distributionNftId);
39
- }