@etherisc/gif-next 0.0.2-f7c17b4-970 → 0.0.2-f7d1200-068

Sign up to get free protection for your applications and to get access to all the features.
Files changed (634) hide show
  1. package/README.md +54 -88
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/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 +1518 -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 +264 -378
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +314 -248
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +290 -2132
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +328 -69
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +402 -2896
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +673 -371
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -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 +3469 -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/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +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 +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +337 -284
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -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/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -339
  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 +1521 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +938 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +297 -380
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1213 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -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 +1280 -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 +1339 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +137 -87
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +788 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +816 -0
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +203 -226
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +418 -173
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +90 -63
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1335 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -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 +381 -310
  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 +191 -18
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -138
  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 +453 -34
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -86
  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/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  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 +199 -115
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -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} +100 -102
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +236 -52
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +106 -18
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +113 -20
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/{components → distribution}/Distribution.sol +179 -192
  319. package/contracts/distribution/DistributionService.sol +336 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/distribution/IDistributionService.sol +97 -0
  323. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +32 -31
  324. package/contracts/instance/IInstance.sol +60 -66
  325. package/contracts/instance/IInstanceService.sol +57 -24
  326. package/contracts/instance/Instance.sol +176 -213
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +180 -65
  330. package/contracts/instance/InstanceService.sol +310 -357
  331. package/contracts/instance/InstanceServiceManager.sol +12 -26
  332. package/contracts/instance/InstanceStore.sol +277 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +104 -0
  337. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  338. package/contracts/instance/module/IAccess.sol +19 -20
  339. package/contracts/instance/module/IBundle.sol +8 -9
  340. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +21 -23
  341. package/contracts/instance/module/IDistribution.sol +6 -4
  342. package/contracts/instance/module/IPolicy.sol +52 -16
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +450 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +135 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +149 -0
  360. package/contracts/pool/Pool.sol +328 -0
  361. package/contracts/pool/PoolService.sol +559 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +230 -0
  364. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  365. package/contracts/product/BasicProduct.sol +52 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +424 -0
  368. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  369. package/contracts/{instance/service → product}/IApplicationService.sol +15 -36
  370. package/contracts/product/IClaimService.sol +100 -0
  371. package/contracts/product/IPolicyService.sol +85 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +40 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +556 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +411 -0
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +16 -1
  383. package/contracts/registry/IRegistry.sol +61 -26
  384. package/contracts/registry/IRegistryService.sol +44 -42
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +251 -139
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +70 -101
  389. package/contracts/registry/RegistryServiceManager.sol +23 -32
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +485 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +261 -62
  394. package/contracts/shared/Component.sol +281 -0
  395. package/contracts/shared/ComponentService.sol +650 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/{components → shared}/IComponent.sol +30 -27
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +2 -2
  404. package/contracts/shared/IPolicyHolder.sol +29 -10
  405. package/contracts/shared/IRegistryLinked.sol +0 -1
  406. package/contracts/shared/IService.sol +15 -6
  407. package/contracts/shared/InitializableCustom.sol +177 -0
  408. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  409. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  410. package/contracts/shared/KeyValueStore.sol +131 -0
  411. package/contracts/shared/Lifecycle.sol +77 -0
  412. package/contracts/shared/NftIdSet.sol +65 -0
  413. package/contracts/shared/NftOwnable.sol +5 -18
  414. package/contracts/shared/PolicyHolder.sol +41 -23
  415. package/contracts/shared/Registerable.sol +13 -12
  416. package/contracts/shared/RegistryLinked.sol +0 -5
  417. package/contracts/shared/Service.sol +47 -23
  418. package/contracts/shared/TokenHandler.sol +41 -6
  419. package/contracts/staking/IStaking.sol +167 -0
  420. package/contracts/staking/IStakingService.sol +160 -0
  421. package/contracts/staking/StakeManagerLib.sol +231 -0
  422. package/contracts/staking/Staking.sol +516 -0
  423. package/contracts/staking/StakingLifecycle.sol +23 -0
  424. package/contracts/staking/StakingManager.sol +50 -0
  425. package/contracts/staking/StakingReader.sol +183 -0
  426. package/contracts/staking/StakingService.sol +407 -0
  427. package/contracts/staking/StakingServiceManager.sol +44 -0
  428. package/contracts/staking/StakingStore.sol +605 -0
  429. package/contracts/staking/TargetManagerLib.sol +207 -0
  430. package/contracts/{types → type}/AddressSet.sol +1 -1
  431. package/contracts/type/Amount.sol +135 -0
  432. package/contracts/{types → type}/Blocknumber.sol +27 -3
  433. package/contracts/{types → type}/ClaimId.sol +25 -2
  434. package/contracts/{types → type}/Fee.sol +33 -23
  435. package/contracts/{types → type}/NftId.sol +21 -15
  436. package/contracts/{types → type}/NftIdSet.sol +2 -2
  437. package/contracts/type/ObjectType.sol +271 -0
  438. package/contracts/{types → type}/PayoutId.sol +33 -5
  439. package/contracts/{types → type}/Referral.sol +6 -1
  440. package/contracts/type/RequestId.sol +75 -0
  441. package/contracts/{types → type}/RiskId.sol +1 -1
  442. package/contracts/type/RoleId.sol +174 -0
  443. package/contracts/{types → type}/Seconds.sol +40 -1
  444. package/contracts/type/Selector.sol +102 -0
  445. package/contracts/{types → type}/StateId.sol +34 -4
  446. package/contracts/type/String.sol +53 -0
  447. package/contracts/{types → type}/Timestamp.sol +22 -2
  448. package/contracts/{types → type}/UFixed.sol +35 -9
  449. package/contracts/{types → type}/Version.sol +5 -2
  450. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  451. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  452. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  453. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  454. package/package.json +8 -5
  455. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  456. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  457. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  459. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  460. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  462. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  463. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  465. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  468. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  469. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  470. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  475. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  477. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  481. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  483. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  485. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  487. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  489. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  491. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  493. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  495. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  499. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  501. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  504. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  507. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  509. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  511. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  513. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  515. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  517. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  518. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  519. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  520. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  521. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  522. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  523. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  525. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  527. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  528. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  529. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  530. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  531. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  533. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  535. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  537. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  539. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  540. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  541. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  543. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  544. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  545. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  546. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  547. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  548. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  549. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  551. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  553. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  555. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  557. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  559. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  561. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  563. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  564. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  565. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  567. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  569. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  571. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  573. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  575. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  577. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  579. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  582. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  584. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  586. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  588. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  590. package/contracts/components/Component.sol +0 -221
  591. package/contracts/components/IDistributionComponent.sol +0 -100
  592. package/contracts/components/IPoolComponent.sol +0 -151
  593. package/contracts/components/IProductComponent.sol +0 -40
  594. package/contracts/components/Pool.sol +0 -378
  595. package/contracts/components/Product.sol +0 -293
  596. package/contracts/instance/InstanceAccessManager.sol +0 -297
  597. package/contracts/instance/base/ComponentService.sol +0 -134
  598. package/contracts/instance/base/KeyValueStore.sol +0 -172
  599. package/contracts/instance/base/Lifecycle.sol +0 -100
  600. package/contracts/instance/module/ITreasury.sol +0 -23
  601. package/contracts/instance/service/ApplicationService.sol +0 -269
  602. package/contracts/instance/service/BundleService.sol +0 -299
  603. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  604. package/contracts/instance/service/ClaimService.sol +0 -151
  605. package/contracts/instance/service/DistributionService.sol +0 -277
  606. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  607. package/contracts/instance/service/IBundleService.sol +0 -55
  608. package/contracts/instance/service/IClaimService.sol +0 -61
  609. package/contracts/instance/service/IDistributionService.sol +0 -65
  610. package/contracts/instance/service/IPolicyService.sol +0 -90
  611. package/contracts/instance/service/IPoolService.sol +0 -20
  612. package/contracts/instance/service/IProductService.sol +0 -40
  613. package/contracts/instance/service/PolicyService.sol +0 -476
  614. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  615. package/contracts/instance/service/PoolService.sol +0 -109
  616. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  617. package/contracts/instance/service/ProductService.sol +0 -233
  618. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  619. package/contracts/registry/RegistryAccessManager.sol +0 -216
  620. package/contracts/registry/ReleaseManager.sol +0 -322
  621. package/contracts/shared/ContractDeployerLib.sol +0 -72
  622. package/contracts/test/TestFee.sol +0 -25
  623. package/contracts/test/TestRegisterable.sol +0 -18
  624. package/contracts/test/TestRoleId.sol +0 -14
  625. package/contracts/test/TestService.sol +0 -25
  626. package/contracts/test/TestToken.sol +0 -26
  627. package/contracts/test/TestVersion.sol +0 -44
  628. package/contracts/test/TestVersionable.sol +0 -17
  629. package/contracts/types/ChainId.sol +0 -38
  630. package/contracts/types/NumberId.sol +0 -52
  631. package/contracts/types/ObjectType.sol +0 -156
  632. package/contracts/types/RoleId.sol +0 -95
  633. /package/contracts/{types → type}/DistributorType.sol +0 -0
  634. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,49 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "VersionPartLib",
4
- "sourceName": "contracts/types/Version.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "VersionPart",
10
- "name": "a",
11
- "type": "uint8"
12
- }
13
- ],
14
- "name": "toInt",
15
- "outputs": [
16
- {
17
- "internalType": "uint256",
18
- "name": "",
19
- "type": "uint256"
20
- }
21
- ],
22
- "stateMutability": "pure",
23
- "type": "function"
24
- },
25
- {
26
- "inputs": [
27
- {
28
- "internalType": "uint256",
29
- "name": "a",
30
- "type": "uint256"
31
- }
32
- ],
33
- "name": "toVersionPart",
34
- "outputs": [
35
- {
36
- "internalType": "VersionPart",
37
- "name": "",
38
- "type": "uint8"
39
- }
40
- ],
41
- "stateMutability": "pure",
42
- "type": "function"
43
- }
44
- ],
45
- "bytecode": "0x60fb610039600b82828239805160001a60731461002c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea264697066735822122074bb6f75f2cab9692d05e41844bf40283045a9440c662c37a97b2502d38207ed64736f6c63430008140033",
46
- "deployedBytecode": "0x7300000000000000000000000000000000000000003014608060405260043610603d5760003560e01c80638e4ad86c146042578063ac43d834146067575b600080fd5b6050604d3660046085565b90565b60405160ff90911681526020015b60405180910390f35b60786072366004609d565b60ff1690565b604051908152602001605e565b600060208284031215609657600080fd5b5035919050565b60006020828403121560ae57600080fd5b813560ff8116811460be57600080fd5b939250505056fea264697066735822122074bb6f75f2cab9692d05e41844bf40283045a9440c662c37a97b2502d38207ed64736f6c63430008140033",
47
- "linkReferences": {},
48
- "deployedLinkReferences": {}
49
- }
@@ -1,221 +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 COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
33
-
34
- struct ComponentStorage {
35
- string _name; // unique (per instance) component name
36
- IERC20Metadata _token; // token for this component
37
- IInstance _instance; // instance for this component
38
- address _wallet; // wallet for this component (default = component contract itself)
39
- InstanceReader _instanceReader; // instance reader for this component
40
- bool _isNftInterceptor; // declares if component is involved in nft transfers
41
- NftId _productNftId; // only relevant for components that are linked to a aproduct
42
- }
43
-
44
- function _getComponentStorage() private pure returns (ComponentStorage storage $) {
45
- assembly {
46
- $.slot := COMPONENT_LOCATION_V1
47
- }
48
- }
49
-
50
- function initializeComponent(
51
- address registry,
52
- NftId instanceNftId,
53
- string memory name,
54
- address token,
55
- ObjectType componentType,
56
- bool isInterceptor,
57
- address initialOwner,
58
- bytes memory registryData // writeonly data that will saved in the object info record of the registry
59
- )
60
- public
61
- virtual
62
- onlyInitializing()
63
- {
64
- initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, registryData);
65
-
66
- // set and check linked instance
67
- ComponentStorage storage $ = _getComponentStorage();
68
- $._instance = IInstance(
69
- getRegistry().getObjectInfo(instanceNftId).objectAddress);
70
-
71
- if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
72
- revert ErrorComponentNotInstance(instanceNftId);
73
- }
74
-
75
- // initialize AccessManagedUpgradeable
76
- __AccessManaged_init($._instance.authority());
77
-
78
- // set component state
79
- $._name = name;
80
- $._isNftInterceptor = isInterceptor;
81
- $._instanceReader = $._instance.getInstanceReader();
82
- $._wallet = address(this);
83
- $._token = IERC20Metadata(token);
84
-
85
- registerInterface(type(IComponent).interfaceId);
86
- }
87
-
88
- function lock() external onlyOwner override {
89
- IInstanceService(_getServiceAddress(INSTANCE())).setTargetLocked(getName(), true);
90
- }
91
-
92
- function unlock() external onlyOwner override {
93
- IInstanceService(_getServiceAddress(INSTANCE())).setTargetLocked(getName(), false);
94
- }
95
-
96
- function setWallet(address newWallet)
97
- external
98
- override
99
- onlyOwner
100
- {
101
- ComponentStorage storage $ = _getComponentStorage();
102
-
103
- address currentWallet = $._wallet;
104
- uint256 currentBalance = $._token.balanceOf(currentWallet);
105
-
106
- // checks
107
- if (newWallet == address(0)) {
108
- revert ErrorComponentWalletAddressZero();
109
- }
110
-
111
- if (newWallet == currentWallet) {
112
- revert ErrorComponentWalletAddressIsSameAsCurrent();
113
- }
114
-
115
- if (currentBalance > 0) {
116
- if (currentWallet == address(this)) {
117
- // move tokens from component smart contract to external wallet
118
- } else {
119
- // move tokens from external wallet to component smart contract or another external wallet
120
- uint256 allowance = $._token.allowance(currentWallet, address(this));
121
- if (allowance < currentBalance) {
122
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
123
- }
124
- }
125
- }
126
-
127
- // effects
128
- $._wallet = newWallet;
129
- emit LogComponentWalletAddressChanged(currentWallet, newWallet);
130
-
131
- // interactions
132
- if (currentBalance > 0) {
133
- // transfer tokens from current wallet to new wallet
134
- if (currentWallet == address(this)) {
135
- // transferFrom requires self allowance too
136
- $._token.approve(address(this), currentBalance);
137
- }
138
-
139
- SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
140
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
141
- }
142
- }
143
-
144
- function setProductNftId(NftId productNftId)
145
- external
146
- override
147
- {
148
- ComponentStorage storage $ = _getComponentStorage();
149
-
150
- // verify caller is product service
151
- if(msg.sender != _getServiceAddress(PRODUCT())) {
152
- revert ErrorComponentNotProductService(msg.sender);
153
- }
154
-
155
- // verify component is not yet linked to a product
156
- if($._productNftId.gtz()) {
157
- revert ErrorComponentProductNftAlreadySet();
158
- }
159
-
160
- $._productNftId = productNftId;
161
- }
162
-
163
- /// @dev callback function for nft transfers
164
- /// may only be called by chain nft contract.
165
- /// do not override this function to implement business logic for handling transfers
166
- /// override internal function _nftTransferFrom instead
167
- function nftTransferFrom(address from, address to, uint256 tokenId)
168
- external
169
- virtual override
170
- {
171
- if(msg.sender != getRegistry().getChainNftAddress()) {
172
- revert ErrorComponentNotChainNft(msg.sender);
173
- }
174
-
175
- _nftTransferFrom(from, to, tokenId);
176
- }
177
-
178
- function getWallet() public view override returns (address walletAddress)
179
- {
180
- return _getComponentStorage()._wallet;
181
- }
182
-
183
- function getToken() public view override returns (IERC20Metadata token) {
184
- return _getComponentStorage()._token;
185
- }
186
-
187
- function isNftInterceptor() public view override returns(bool isInterceptor) {
188
- return _getComponentStorage()._isNftInterceptor;
189
- }
190
-
191
- function getInstance() public view override returns (IInstance instance) {
192
- return _getComponentStorage()._instance;
193
- }
194
-
195
- function getName() public view override returns(string memory name) {
196
- return _getComponentStorage()._name;
197
- }
198
-
199
- function getProductNftId() public view override returns (NftId productNftId) {
200
- return _getComponentStorage()._productNftId;
201
- }
202
-
203
- /// @dev internal function for nft transfers.
204
- /// handling logic that deals with nft transfers need to overwrite this function
205
- function _nftTransferFrom(address from, address to, uint256 tokenId)
206
- internal
207
- virtual
208
- { }
209
-
210
- /// @dev returns reader for linked instance
211
- function _getInstanceReader() internal view returns (InstanceReader reader) {
212
- return _getComponentStorage()._instanceReader;
213
- }
214
-
215
- /// @dev returns the service address for the specified domain
216
- /// gets address via lookup from registry using the major version form the linked instance
217
- function _getServiceAddress(ObjectType domain) internal view returns (address service) {
218
- VersionPart majorVersion = _getComponentStorage()._instance.getMajorVersion();
219
- return getRegistry().getServiceAddress(domain, majorVersion);
220
- }
221
- }
@@ -1,100 +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 calculateFeeAmount(
62
- ReferralId referralId,
63
- uint256 netPremiumAmount
64
- ) external view returns (uint256 feeAmount);
65
-
66
- function calculateRenewalFeeAmount(
67
- ReferralId referralId,
68
- uint256 netPremiumAmount
69
- ) external view returns (uint256 feeAmount);
70
-
71
- /// @dev callback from product service when selling a policy for a specific referralId
72
- /// the used referral id and the collected fee are provided as parameters
73
- /// the component implementation can then process this information accordingly
74
- function processSale(
75
- ReferralId referralId,
76
- uint256 feeAmount
77
- ) external;
78
-
79
- /// @dev callback from product service when a policy is renews for a specific referralId
80
- function processRenewal(
81
- ReferralId referralId,
82
- uint256 feeAmount
83
- ) external;
84
-
85
- function getDiscountPercentage(
86
- string memory referralCode
87
- ) external view returns (UFixed discountPercentage, ReferralStatus status);
88
-
89
- function getDistributionFee() external view returns (Fee memory distibutionFee);
90
-
91
- function getReferralId(
92
- string memory referralCode
93
- ) external returns (ReferralId referralId);
94
-
95
- /// @dev returns true iff the referral id is valid
96
- function referralIsValid(ReferralId referralId) external view returns (bool isValid);
97
-
98
- /// @dev returns true iff the component needs to be called when selling/renewing policis
99
- function isVerifying() external view returns (bool verifying);
100
- }
@@ -1,151 +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 {RoleId} from "../types/RoleId.sol";
9
- import {Seconds} from "../types/Seconds.sol";
10
- import {UFixed} from "../types/UFixed.sol";
11
-
12
- /// @dev pool components hold and manage the collateral to cover active policies
13
- /// pools come in different flavors
14
- interface IPoolComponent is IComponent {
15
-
16
- error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
17
- error ErrorPoolNotPoolService(address caller);
18
-
19
- error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
20
- error ErrorPoolBundleOwnerRoleAlreadySet();
21
-
22
- event LogPoolVerifiedByPool(address pool, NftId applicationNftId, uint256 collateralizationAmount);
23
- event LogPoolBundleMaxCapitalAmountUpdated(uint256 previousMaxCapitalAmount, uint256 currentMaxCapitalAmount);
24
- event LogPoolBundleOwnerRoleSet(RoleId bundleOwnerRole);
25
-
26
- /// @dev increases the staked tokens by the specified amount
27
- /// only the bundle owner may stake tokens
28
- /// bundle MUST be in active or locked state
29
- function stake(NftId bundleNftId, uint256 amount) external;
30
-
31
- /// @dev decreases the staked tokens by the specified amount
32
- /// only the bundle owner may unstake tokens from the bundle
33
- /// bundle MUST be in active, locked or closed state
34
- function unstake(NftId bundleNftId, uint256 amount) external;
35
-
36
- /// @dev extends the bundle lifetime of the bundle by the specified time
37
- /// only the bundle owner may extend the bundle's lifetime
38
- /// bundle MUST be in active or locked state
39
- function extend(NftId bundleNftId, Seconds lifetimeExtension) external;
40
-
41
- /// @dev locks the specified bundle
42
- /// a bundle to be locked MUST be in active state
43
- /// locked bundles may not be used to underwrite any new policy
44
- function lockBundle(NftId bundleNftId) external;
45
-
46
- /// @dev unlocks the specified bundle
47
- /// a bundle to be unlocked MUST be in locked state
48
- function unlockBundle(NftId bundleNftId) external;
49
-
50
- /// @dev close the specified bundle
51
- /// a bundle to be closed MUST be in active or locked state
52
- /// to close a bundle all all linked policies MUST be in closed state as well
53
- /// closing a bundle finalizes the bundle bookkeeping including overall profit calculation
54
- /// once a bundle is closed this action cannot be reversed
55
- function close(NftId bundleNftId) external;
56
-
57
- /// @dev sets the fee for the specified bundle
58
- /// the fee is added on top of the poolFee and deducted from the premium amounts
59
- /// via these fees individual bundler owner may earn income per policy in the context of peer to peer pools
60
- function setBundleFee(
61
- NftId bundleNftId,
62
- Fee memory fee
63
- ) external;
64
-
65
- /// @dev sets the maximum overall capital amound held by this pool
66
- /// function may only be called by pool owner
67
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
68
-
69
- /// @dev sets the required role to create/own bundles
70
- /// may only be called once after setting up a pool
71
- /// may only be called by pool owner
72
- function setBundleOwnerRole(RoleId bundleOwnerRole) external;
73
-
74
- /// @dev update pool fees to the specified values
75
- /// pool fees: are deducted from the premium amount and goes to the pool owner
76
- /// staking fees: are deducted from the staked tokens by a bundle owner and goes to the pool owner
77
- /// performance fees: when a bundle is closed a bundle specific profit is calculated
78
- /// the performance fee is deducted from this profit and goes to the pool owner
79
- function setFees(
80
- Fee memory poolFee,
81
- Fee memory stakingFee,
82
- Fee memory performanceFee
83
- ) external;
84
-
85
- /// @dev this is a callback function that is called by the product service when underwriting a policy.
86
- /// the pool has the option to check the details and object to underwriting by reverting.
87
- /// the function is only called for "active" pools that ask to be involved/notified
88
- /// by product related state changes.
89
- function verifyApplication(
90
- NftId applicationNftId,
91
- bytes memory applicationData,
92
- NftId bundleNftId,
93
- bytes memory bundleFilter,
94
- uint256 collateralizationAmount
95
- ) external;
96
-
97
- /// @dev defines the multiplier to calculate the required collateral to cover a given sum insured amount
98
- /// default implementation returns 100%
99
- function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
100
-
101
- /// @dev defines the amount of collateral held in the pool.
102
- /// if the value is < 100% the pool is required to hold a policy that covers the locally missing collateral
103
- /// default implementation returns 100%
104
- function getRetentionLevel() external view returns (UFixed retentionLevel);
105
-
106
- /// @dev declares if pool relies on external management of collateral (yes/no):
107
- /// - 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
108
- /// - no: the pool smart contract ensures that the necessary capacity of the pool prior to underwriting.
109
- /// default implementation returns false (no)
110
- function isExternallyManaged() external view returns (bool);
111
-
112
- /// @dev declares if pool component is actively involved in underwriting (yes/no):
113
- /// - 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
114
- /// - no: underwriting a policy does not require any interaction with the pool component if the covering bundle can provide the necessary captial
115
- /// default implementation returnsfalse (no)
116
- function isVerifyingApplications() external view returns (bool);
117
-
118
- /// @dev returns the maximum overall capital amound held by this pool
119
- function getMaxCapitalAmount() external view returns (uint256 maxCapitalAmount);
120
-
121
- /// @dev declares if pool intercept transfers of bundle nft ids
122
- /// - yes: pool may block transfer of bundle ownership or simply updates some bookkeeping related to bundle ownership. callback function is nftTransferFrom
123
- /// - no: pool is not involved in transfer of bundle ownership
124
- /// default implementation returns false (no)
125
- function isInterceptingBundleTransfers() external view returns (bool);
126
-
127
- /// @dev returns the required role for bundle owners
128
- /// default emplementation returns PUBLIC_ROLE
129
- /// the PUBLIC_ROLE role implies that no specific roole is required for bundle owners
130
- function getBundleOwnerRole() external view returns (RoleId bundleOwnerRole);
131
-
132
- /// @dev returns true iff the application matches with the bundle
133
- /// this is a callback function that is only called if a pool declares itself as a verifying pool
134
- /// default implementation returns true
135
- function applicationMatchesBundle(
136
- NftId applicationNftId,
137
- bytes memory applicationData,
138
- NftId bundleNftId,
139
- bytes memory bundleFilter,
140
- uint256 collateralizationAmount
141
- )
142
- external
143
- view
144
- returns (bool isMatching);
145
-
146
- /// @dev returns setup infos for this pool
147
- /// when registered with an instance the setup info is obtained from the data stored in the instance
148
- /// when not registered the function returns the initial setup info
149
- function getSetupInfo() external view returns (ISetup.PoolSetupInfo memory setupInfo);
150
-
151
- }
@@ -1,40 +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
- import {Seconds} from "../types/Seconds.sol";
11
-
12
- interface IProductComponent is IComponent {
13
-
14
- function getSetupInfo() external view returns (ISetup.ProductSetupInfo memory setupInfo);
15
-
16
- function setFees(
17
- Fee memory productFee,
18
- Fee memory processingFee
19
- ) external;
20
-
21
- function calculatePremium(
22
- uint256 sumInsuredAmount,
23
- RiskId riskId,
24
- Seconds lifetime,
25
- bytes memory applicationData,
26
- NftId bundleNftId,
27
- ReferralId referralId
28
- ) external view returns (uint256 premiumAmount);
29
-
30
- function calculateNetPremium(
31
- uint256 sumInsuredAmount,
32
- RiskId riskId,
33
- Seconds lifetime,
34
- bytes memory applicationData
35
- ) external view returns (uint256 netPremiumAmount);
36
-
37
-
38
- function getPoolNftId() external view returns (NftId poolNftId);
39
- function getDistributionNftId() external view returns (NftId distributionNftId);
40
- }