@etherisc/gif-next 0.0.2-a63347a-883 → 0.0.2-a6ce659-551

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/README.md +28 -16
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +485 -258
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +61 -116
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +239 -1554
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +373 -190
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -2524
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +661 -341
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +544 -363
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +389 -104
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  46. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  54. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  55. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → oracle/IOracleComponent.sol/IOracleComponent.json} +209 -299
  56. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  58. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  60. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  62. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  64. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  66. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  68. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  69. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +273 -285
  70. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  71. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +638 -197
  72. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  74. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  75. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  76. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  78. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  80. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  82. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  84. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  86. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  88. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  89. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +211 -230
  90. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  92. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +251 -297
  94. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  95. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -215
  96. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  97. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +358 -312
  98. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  99. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +126 -167
  100. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  102. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  104. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  106. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  108. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  109. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  110. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  112. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  114. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  115. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  116. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +203 -21
  118. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +360 -218
  120. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  123. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  124. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/Registry.sol/Registry.json +440 -36
  126. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -254
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -95
  132. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  134. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  135. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +764 -100
  136. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  138. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  140. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  142. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  144. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  146. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  150. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  154. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  155. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +346 -364
  156. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  158. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  160. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +178 -242
  162. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  163. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  164. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  166. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  168. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  170. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  171. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +213 -230
  172. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  174. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  175. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +210 -161
  176. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  177. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  178. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  184. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  186. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  187. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  188. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IService.sol/IService.json +84 -154
  190. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  192. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  193. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  194. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  196. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +547 -0
  198. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  200. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  202. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
  204. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  205. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  206. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  207. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Service.sol/Service.json +188 -157
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  216. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  217. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  218. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  220. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  221. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  222. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  223. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  224. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  226. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  228. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  230. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  232. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  234. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  236. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  238. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  240. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  242. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  244. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  246. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  248. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  250. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  252. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  254. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  258. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  260. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  262. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  264. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  266. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  268. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  270. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  272. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  276. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  278. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  280. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  282. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  284. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  286. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  287. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  288. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  290. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  292. package/contracts/distribution/Distribution.sol +261 -0
  293. package/contracts/distribution/DistributionService.sol +297 -0
  294. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  295. package/contracts/distribution/IDistributionComponent.sol +66 -0
  296. package/contracts/distribution/IDistributionService.sol +81 -0
  297. package/contracts/instance/BundleManager.sol +15 -14
  298. package/contracts/instance/IInstance.sol +61 -46
  299. package/contracts/instance/IInstanceService.sol +76 -20
  300. package/contracts/instance/Instance.sol +176 -182
  301. package/contracts/instance/InstanceAdmin.sol +331 -0
  302. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  303. package/contracts/instance/InstanceReader.sol +159 -60
  304. package/contracts/instance/InstanceService.sol +313 -309
  305. package/contracts/instance/InstanceServiceManager.sol +12 -22
  306. package/contracts/instance/InstanceStore.sol +272 -0
  307. package/contracts/instance/base/BalanceStore.sol +123 -0
  308. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  309. package/contracts/instance/base/ObjectCounter.sol +21 -0
  310. package/contracts/instance/base/ObjectLifecycle.sol +99 -0
  311. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -16
  312. package/contracts/instance/module/IAccess.sol +19 -21
  313. package/contracts/instance/module/IBundle.sol +8 -8
  314. package/contracts/instance/module/IComponents.sol +52 -0
  315. package/contracts/instance/module/IDistribution.sol +7 -4
  316. package/contracts/instance/module/IPolicy.sol +56 -17
  317. package/contracts/instance/module/IRisk.sol +1 -1
  318. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  319. package/contracts/oracle/IOracle.sol +20 -0
  320. package/contracts/oracle/IOracleComponent.sol +32 -0
  321. package/contracts/oracle/IOracleService.sol +65 -0
  322. package/contracts/oracle/Oracle.sol +145 -0
  323. package/contracts/oracle/OracleService.sol +278 -0
  324. package/contracts/oracle/OracleServiceManager.sol +42 -0
  325. package/contracts/pool/BundleService.sol +296 -0
  326. package/contracts/pool/BundleServiceManager.sol +42 -0
  327. package/contracts/pool/IBundleService.sol +106 -0
  328. package/contracts/pool/IPoolComponent.sol +112 -0
  329. package/contracts/pool/IPoolService.sol +150 -0
  330. package/contracts/pool/Pool.sol +299 -0
  331. package/contracts/pool/PoolService.sol +452 -0
  332. package/contracts/pool/PoolServiceManager.sol +42 -0
  333. package/contracts/product/ApplicationService.sol +254 -0
  334. package/contracts/product/ApplicationServiceManager.sol +38 -0
  335. package/contracts/product/ClaimService.sol +442 -0
  336. package/contracts/product/ClaimServiceManager.sol +38 -0
  337. package/contracts/product/IApplicationService.sol +62 -0
  338. package/contracts/product/IClaimService.sol +99 -0
  339. package/contracts/product/IPolicyService.sol +78 -0
  340. package/contracts/product/IPricingService.sol +39 -0
  341. package/contracts/product/IProductComponent.sol +42 -0
  342. package/contracts/product/IProductService.sol +33 -0
  343. package/contracts/product/PolicyService.sol +475 -0
  344. package/contracts/product/PolicyServiceManager.sol +42 -0
  345. package/contracts/product/PricingService.sol +300 -0
  346. package/contracts/product/PricingServiceManager.sol +42 -0
  347. package/contracts/product/Product.sol +377 -0
  348. package/contracts/product/ProductService.sol +124 -0
  349. package/contracts/product/ProductServiceManager.sol +42 -0
  350. package/contracts/registry/ChainNft.sol +16 -1
  351. package/contracts/registry/IRegistry.sol +47 -21
  352. package/contracts/registry/IRegistryService.sol +42 -38
  353. package/contracts/registry/IServiceAuthorization.sol +38 -0
  354. package/contracts/registry/ITransferInterceptor.sol +1 -0
  355. package/contracts/registry/Registry.sol +227 -97
  356. package/contracts/registry/RegistryAdmin.sol +333 -0
  357. package/contracts/registry/RegistryService.sol +108 -104
  358. package/contracts/registry/RegistryServiceManager.sol +22 -31
  359. package/contracts/registry/ReleaseLifecycle.sol +28 -0
  360. package/contracts/registry/ReleaseManager.sol +387 -196
  361. package/contracts/registry/ServiceAuthorization.sol +90 -0
  362. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  363. package/contracts/registry/TokenRegistry.sol +263 -60
  364. package/contracts/shared/AccessAdmin.sol +759 -0
  365. package/contracts/shared/AccessManagerCustom.sol +741 -0
  366. package/contracts/shared/AccessManagerExtended.sol +481 -0
  367. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  368. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  369. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  370. package/contracts/shared/Component.sol +281 -0
  371. package/contracts/shared/ComponentService.sol +620 -0
  372. package/contracts/shared/ComponentServiceManager.sol +35 -0
  373. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  374. package/contracts/shared/ERC165.sol +15 -13
  375. package/contracts/shared/IAccessAdmin.sol +168 -0
  376. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  377. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  378. package/contracts/shared/IComponent.sol +70 -0
  379. package/contracts/shared/IComponentService.sol +102 -0
  380. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  381. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  382. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  383. package/contracts/shared/INftOwnable.sol +13 -12
  384. package/contracts/shared/IPolicyHolder.sol +45 -0
  385. package/contracts/shared/IRegisterable.sol +3 -3
  386. package/contracts/shared/IRegistryLinked.sol +11 -0
  387. package/contracts/shared/IService.sol +14 -5
  388. package/contracts/shared/IVersionable.sol +5 -48
  389. package/contracts/shared/InitializableCustom.sol +177 -0
  390. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  391. package/contracts/shared/KeyValueStore.sol +131 -0
  392. package/contracts/shared/Lifecycle.sol +67 -0
  393. package/contracts/shared/NftIdSetManager.sol +65 -0
  394. package/contracts/shared/NftOwnable.sol +59 -91
  395. package/contracts/shared/PolicyHolder.sol +102 -0
  396. package/contracts/shared/ProxyManager.sol +131 -26
  397. package/contracts/shared/Registerable.sol +19 -30
  398. package/contracts/shared/RegistryLinked.sol +43 -0
  399. package/contracts/shared/Service.sol +54 -31
  400. package/contracts/shared/TokenHandler.sol +37 -6
  401. package/contracts/shared/Versionable.sol +4 -92
  402. package/contracts/staking/IStaking.sol +168 -0
  403. package/contracts/staking/IStakingService.sol +153 -0
  404. package/contracts/staking/StakeManagerLib.sol +231 -0
  405. package/contracts/staking/Staking.sol +513 -0
  406. package/contracts/staking/StakingLifecycle.sol +24 -0
  407. package/contracts/staking/StakingManager.sol +54 -0
  408. package/contracts/staking/StakingReader.sol +187 -0
  409. package/contracts/staking/StakingService.sol +411 -0
  410. package/contracts/staking/StakingServiceManager.sol +44 -0
  411. package/contracts/staking/StakingStore.sol +615 -0
  412. package/contracts/staking/TargetManagerLib.sol +207 -0
  413. package/contracts/{types → type}/AddressSet.sol +1 -1
  414. package/contracts/type/Amount.sol +128 -0
  415. package/contracts/{types → type}/Blocknumber.sol +21 -3
  416. package/contracts/type/ClaimId.sol +75 -0
  417. package/contracts/{types → type}/DistributorType.sol +2 -2
  418. package/contracts/{types → type}/Fee.sol +33 -23
  419. package/contracts/{types → type}/NftId.sol +21 -15
  420. package/contracts/{types → type}/NftIdSet.sol +2 -2
  421. package/contracts/type/ObjectType.sol +241 -0
  422. package/contracts/type/PayoutId.sol +82 -0
  423. package/contracts/{types → type}/Referral.sol +5 -1
  424. package/contracts/type/RequestId.sol +75 -0
  425. package/contracts/{types → type}/RiskId.sol +1 -1
  426. package/contracts/type/RoleId.sol +201 -0
  427. package/contracts/type/Seconds.sol +81 -0
  428. package/contracts/type/Selector.sol +102 -0
  429. package/contracts/{types → type}/StateId.sol +34 -4
  430. package/contracts/type/String.sol +53 -0
  431. package/contracts/{types → type}/Timestamp.sol +23 -14
  432. package/contracts/{types → type}/UFixed.sol +1 -0
  433. package/contracts/{types → type}/Version.sol +2 -1
  434. package/package.json +8 -5
  435. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  436. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  437. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  438. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  439. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  440. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  441. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  442. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  443. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  446. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  448. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  450. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  452. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  454. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  456. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  458. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  460. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  462. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  464. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  467. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  469. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  471. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  474. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  476. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  478. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  480. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  482. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  483. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  485. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  487. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  494. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  498. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  500. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  502. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  504. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  511. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  513. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  515. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  517. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  519. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  521. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  522. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  523. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  524. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  525. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  527. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  529. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  531. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  533. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  535. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  537. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  539. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  540. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  541. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  542. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  544. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  546. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  549. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  550. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  552. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  553. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  555. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  557. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  559. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  562. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  565. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  569. package/contracts/components/Component.sol +0 -216
  570. package/contracts/components/Distribution.sol +0 -153
  571. package/contracts/components/IComponent.sol +0 -43
  572. package/contracts/components/IDistributionComponent.sol +0 -47
  573. package/contracts/components/IPoolComponent.sol +0 -51
  574. package/contracts/components/IProductComponent.sol +0 -39
  575. package/contracts/components/Pool.sol +0 -208
  576. package/contracts/components/Product.sol +0 -266
  577. package/contracts/experiment/cloning/Cloner.sol +0 -47
  578. package/contracts/experiment/errors/Require.sol +0 -38
  579. package/contracts/experiment/errors/Revert.sol +0 -44
  580. package/contracts/experiment/inheritance/A.sol +0 -53
  581. package/contracts/experiment/inheritance/B.sol +0 -28
  582. package/contracts/experiment/inheritance/C.sol +0 -34
  583. package/contracts/experiment/inheritance/IA.sol +0 -13
  584. package/contracts/experiment/inheritance/IB.sol +0 -10
  585. package/contracts/experiment/inheritance/IC.sol +0 -12
  586. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  587. package/contracts/experiment/statemachine/ISM.sol +0 -25
  588. package/contracts/experiment/statemachine/SM.sol +0 -57
  589. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  590. package/contracts/experiment/types/TypeA.sol +0 -47
  591. package/contracts/experiment/types/TypeB.sol +0 -29
  592. package/contracts/instance/InstanceAccessManager.sol +0 -298
  593. package/contracts/instance/base/ComponentService.sol +0 -134
  594. package/contracts/instance/base/KeyValueStore.sol +0 -172
  595. package/contracts/instance/base/Lifecycle.sol +0 -100
  596. package/contracts/instance/module/ISetup.sol +0 -46
  597. package/contracts/instance/module/ITreasury.sol +0 -23
  598. package/contracts/instance/service/BundleService.sol +0 -293
  599. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  600. package/contracts/instance/service/DistributionService.sol +0 -106
  601. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  602. package/contracts/instance/service/IBundleService.sol +0 -44
  603. package/contracts/instance/service/IDistributionService.sol +0 -12
  604. package/contracts/instance/service/IPolicyService.sol +0 -94
  605. package/contracts/instance/service/IPoolService.sol +0 -20
  606. package/contracts/instance/service/IProductService.sol +0 -40
  607. package/contracts/instance/service/PolicyService.sol +0 -538
  608. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  609. package/contracts/instance/service/PoolService.sol +0 -110
  610. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  611. package/contracts/instance/service/ProductService.sol +0 -233
  612. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  613. package/contracts/registry/RegistryAccessManager.sol +0 -216
  614. package/contracts/shared/ContractDeployerLib.sol +0 -72
  615. package/contracts/test/TestFee.sol +0 -25
  616. package/contracts/test/TestRegisterable.sol +0 -18
  617. package/contracts/test/TestRoleId.sol +0 -14
  618. package/contracts/test/TestService.sol +0 -25
  619. package/contracts/test/TestVersion.sol +0 -44
  620. package/contracts/test/TestVersionable.sol +0 -17
  621. package/contracts/test/Usdc.sol +0 -26
  622. package/contracts/types/ChainId.sol +0 -38
  623. package/contracts/types/NumberId.sol +0 -52
  624. package/contracts/types/ObjectType.sol +0 -152
  625. package/contracts/types/RoleId.sol +0 -90
  626. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,216 +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 {IRegistry} from "../registry/IRegistry.sol";
14
- import {NftId} from "../types/NftId.sol";
15
- import {ObjectType, INSTANCE, PRODUCT} from "../types/ObjectType.sol";
16
- import {VersionPart} from "../types/Version.sol";
17
- import {Registerable} from "../shared/Registerable.sol";
18
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
19
- import {IAccess} from "../instance/module/IAccess.sol";
20
-
21
- // TODO discuss to inherit from oz accessmanaged
22
- // TODO make contract upgradeable
23
- // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
24
- // same pattern as for Service which is also upgradeable
25
- abstract contract Component is
26
- Registerable,
27
- IComponent,
28
- AccessManagedUpgradeable
29
- {
30
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
31
- bytes32 public constant CONTRACT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
32
-
33
- struct ComponentStorage {
34
- IInstance _instance; // instance for this component
35
- string _name; // unique (per instance) component name
36
- IERC20Metadata _token; // token for this component
37
- address _wallet; // wallet for this component (default = component contract itself)
38
- IInstanceService _instanceService; // instance service for this component
39
-
40
- NftId _productNftId; // only relevant for components that are linked to a aproduct
41
- IProductService _productService; // product service for component, might not be relevant for some component types (eg oracles)
42
- }
43
-
44
-
45
- modifier onlyProductService() {
46
- if(msg.sender != address(_getComponentStorage()._productService)) {
47
- revert ErrorComponentNotProductService(msg.sender);
48
- }
49
- _;
50
- }
51
-
52
- constructor(
53
- address registry,
54
- NftId instanceNftId,
55
- string memory name,
56
- address token,
57
- ObjectType componentType,
58
- bool isInterceptor,
59
- address initialOwner,
60
- bytes memory data
61
- ) {
62
- _initializeComponent(registry, instanceNftId, name, token, componentType, isInterceptor, initialOwner, data);
63
- }
64
-
65
- function _getComponentStorage() private pure returns (ComponentStorage storage $) {
66
- assembly {
67
- $.slot := CONTRACT_LOCATION_V1
68
- }
69
- }
70
-
71
- function _initializeComponent(
72
- address registry,
73
- NftId instanceNftId,
74
- string memory name,
75
- address token,
76
- ObjectType componentType,
77
- bool isInterceptor,
78
- address initialOwner,
79
- bytes memory data
80
- )
81
- internal
82
- initializer
83
- virtual
84
- {
85
- ComponentStorage storage $ = _getComponentStorage();
86
- _initializeRegisterable(registry, instanceNftId, componentType, isInterceptor, initialOwner, data);
87
-
88
- // set unique name of component
89
- $._name = name;
90
-
91
- // set and check linked instance
92
- IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
93
- $._instance = IInstance(instanceInfo.objectAddress);
94
- if(!$._instance.supportsInterface(type(IInstance).interfaceId)) {
95
- revert ErrorComponentNotInstance(instanceNftId, instanceInfo.objectAddress);
96
- }
97
-
98
- // initialize AccessManagedUpgradeable
99
- __AccessManaged_init($._instance.authority());
100
-
101
- // set linked services
102
- VersionPart gifVersion = $._instance.getMajorVersion();
103
- $._instanceService = IInstanceService(getRegistry().getServiceAddress(INSTANCE(), gifVersion));
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
- function lock() external onlyOwner override {
114
- _getComponentStorage()._instanceService.setTargetLocked(getName(), true);
115
- }
116
-
117
- function unlock() external onlyOwner override {
118
- _getComponentStorage()._instanceService.setTargetLocked(getName(), false);
119
- }
120
-
121
- // only product service may set product nft id during registration of product setup
122
- function setProductNftId(NftId productNftId)
123
- external
124
- override
125
- onlyProductService()
126
- {
127
- ComponentStorage storage $ = _getComponentStorage();
128
-
129
- if($._productNftId.gtz()) {
130
- revert ErrorComponentProductNftAlreadySet();
131
- }
132
-
133
- $._productNftId = productNftId;
134
- }
135
-
136
- /// @dev Sets the wallet address for the component.
137
- /// if the current wallet has tokens, these will be transferred.
138
- /// if the new wallet address is externally owned, an approval from the
139
- /// owner of the external wallet for the component to move all tokens must exist.
140
- function setWallet(address newWallet) external override onlyOwner {
141
- ComponentStorage storage $ = _getComponentStorage();
142
-
143
- address currentWallet = $._wallet;
144
- uint256 currentBalance = $._token.balanceOf(currentWallet);
145
-
146
- // checks
147
- if (newWallet == address(0)) {
148
- revert ErrorComponentWalletAddressZero();
149
- }
150
- if (newWallet == currentWallet) {
151
- revert ErrorComponentWalletAddressIsSameAsCurrent(newWallet);
152
- }
153
-
154
- if (currentBalance > 0) {
155
- if (currentWallet == address(this)) {
156
- // move tokens from component smart contract to external wallet
157
- } else {
158
- // move tokens from external wallet to component smart contract or another external wallet
159
- uint256 allowance = $._token.allowance(currentWallet, address(this));
160
- if (allowance < currentBalance) {
161
- revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
162
- }
163
- }
164
- }
165
-
166
- // effects
167
- $._wallet = newWallet;
168
- emit LogComponentWalletAddressChanged(newWallet);
169
-
170
- // interactions
171
- if (currentBalance > 0) {
172
- // transfer tokens from current wallet to new wallet
173
- if (currentWallet == address(this)) {
174
- // transferFrom requires self allowance too
175
- $._token.approve(address(this), currentBalance);
176
- }
177
-
178
- SafeERC20.safeTransferFrom($._token, currentWallet, newWallet, currentBalance);
179
- emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
180
- }
181
- }
182
-
183
- function getWallet()
184
- public
185
- view
186
- override
187
- returns (address walletAddress)
188
- {
189
- return _getComponentStorage()._wallet;
190
- }
191
-
192
- function getToken() public view override returns (IERC20Metadata token) {
193
- return _getComponentStorage()._token;
194
- }
195
-
196
- function getInstance() public view override returns (IInstance instance) {
197
- return _getComponentStorage()._instance;
198
- }
199
-
200
- function getName() public view override returns(string memory name) {
201
- return _getComponentStorage()._name;
202
- }
203
-
204
- function getProductNftId() public view override returns (NftId productNftId) {
205
- return _getComponentStorage()._productNftId;
206
- }
207
-
208
- function getInstanceService() public view returns (IInstanceService) {
209
- return _getComponentStorage()._instanceService;
210
- }
211
-
212
- function getProductService() public view returns (IProductService) {
213
- return _getComponentStorage()._productService;
214
- }
215
-
216
- }
@@ -1,153 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {DISTRIBUTION} from "../types/ObjectType.sol";
5
- import {IDistributionService} from "../instance/service/IDistributionService.sol";
6
- import {IProductService} from "../instance/service/IProductService.sol";
7
- import {NftId, zeroNftId, NftIdLib} from "../types/NftId.sol";
8
- import {ReferralId} from "../types/Referral.sol";
9
- import {Fee, FeeLib} from "../types/Fee.sol";
10
- import {Component} from "./Component.sol";
11
- import {IDistributionComponent} from "./IDistributionComponent.sol";
12
- import {IRegistry} from "../registry/IRegistry.sol";
13
- import {IRegisterable} from "../shared/IRegisterable.sol";
14
- import {ISetup} from "../instance/module/ISetup.sol";
15
- import {Registerable} from "../shared/Registerable.sol";
16
- import {TokenHandler} from "../shared/TokenHandler.sol";
17
- import {InstanceReader} from "../instance/InstanceReader.sol";
18
-
19
- abstract contract Distribution is
20
- Component,
21
- IDistributionComponent
22
- {
23
- using NftIdLib for NftId;
24
-
25
- bool internal _isVerifying;
26
- Fee internal _initialDistributionFee;
27
-
28
- TokenHandler internal _tokenHandler;
29
-
30
- IDistributionService private _distributionService;
31
-
32
- constructor(
33
- address registry,
34
- NftId instanceNftId,
35
- // TODO refactor into tokenNftId
36
- string memory name,
37
- address token,
38
- bool verifying,
39
- Fee memory distributionFee,
40
- address initialOwner,
41
- bytes memory data
42
- ) Component (
43
- registry,
44
- instanceNftId,
45
- name, token,
46
- DISTRIBUTION(),
47
- true,
48
- initialOwner,
49
- data
50
- ) {
51
- _isVerifying = verifying;
52
- _initialDistributionFee = distributionFee;
53
-
54
- _tokenHandler = new TokenHandler(token);
55
- _distributionService = getInstance().getDistributionService();
56
-
57
- _registerInterface(type(IDistributionComponent).interfaceId);
58
- }
59
-
60
- function setFees(
61
- Fee memory distributionFee
62
- )
63
- external
64
- override
65
- onlyOwner
66
- restricted()
67
- {
68
- _distributionService.setFees(distributionFee);
69
- }
70
-
71
- function calculateFeeAmount(
72
- ReferralId referralId,
73
- uint256 netPremiumAmount
74
- )
75
- external
76
- view
77
- virtual override
78
- returns (uint256 feeAmount)
79
- {
80
- ISetup.DistributionSetupInfo memory setupInfo = getSetupInfo();
81
- Fee memory fee = setupInfo.distributionFee;
82
- (feeAmount,) = FeeLib.calculateFee(fee, netPremiumAmount);
83
- }
84
-
85
-
86
- function calculateRenewalFeeAmount(
87
- ReferralId referralId,
88
- uint256 netPremiumAmount
89
- )
90
- external
91
- view
92
- virtual override
93
- returns (uint256 feeAmount)
94
- {
95
- // default is no fees
96
- return 0 * netPremiumAmount;
97
- }
98
-
99
- function processSale(
100
- ReferralId referralId,
101
- uint256 feeAmount
102
- )
103
- external
104
- onlyOwner
105
- restricted()
106
- virtual override
107
- {
108
- // default is no action
109
- }
110
-
111
- function processRenewal(
112
- ReferralId referralId,
113
- uint256 feeAmount
114
- )
115
- external
116
- onlyOwner
117
- restricted()
118
- virtual override
119
- {
120
- // default is no action
121
- }
122
-
123
- function referralIsValid(ReferralId referralId) external view returns (bool isValid) {
124
- // default is invalid
125
- return false;
126
- }
127
-
128
- function getSetupInfo() public view returns (ISetup.DistributionSetupInfo memory setupInfo) {
129
- InstanceReader reader = getInstance().getInstanceReader();
130
- setupInfo = reader.getDistributionSetupInfo(getNftId());
131
-
132
- // fallback to initial setup info (wallet is always != address(0))
133
- if(setupInfo.wallet == address(0)) {
134
- setupInfo = _getInitialSetupInfo();
135
- }
136
- }
137
-
138
- function _getInitialSetupInfo() internal view returns (ISetup.DistributionSetupInfo memory setupInfo) {
139
- return ISetup.DistributionSetupInfo(
140
- zeroNftId(),
141
- _tokenHandler,
142
- _initialDistributionFee,
143
- _isVerifying,
144
- address(this)
145
- );
146
- }
147
-
148
-
149
- /// @dev returns true iff the component needs to be called when selling/renewing policis
150
- function isVerifying() external view returns (bool verifying) {
151
- return _isVerifying;
152
- }
153
- }
@@ -1,43 +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 {IRegisterable} from "../shared/IRegisterable.sol";
7
- import {IInstance} from "../instance/IInstance.sol";
8
- import {IInstanceService} from "../instance/IInstanceService.sol";
9
- import {IProductService} from "../instance/service/IProductService.sol";
10
- import {NftId} from "../types/NftId.sol";
11
-
12
- interface IComponent is IRegisterable {
13
-
14
- error ErrorComponentNotInstance(NftId instanceNftId, address instance);
15
- error ErrorComponentProductNftAlreadySet();
16
- error ErrorComponentWalletAddressZero();
17
- error ErrorComponentWalletAddressIsSameAsCurrent(address newWallet);
18
- error ErrorComponentWalletAllowanceTooSmall(address oldWallet, address newWallet, uint256 allowance, uint256 balance);
19
- error ErrorComponentUnauthorized(address caller, uint64 requiredRoleIdNum);
20
- error ErrorComponentNotProductService(address caller);
21
-
22
- event LogComponentWalletAddressChanged(address newWallet);
23
- event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
24
-
25
- function getName() external view returns (string memory name);
26
-
27
- // TODO remove and replace with accessmanaged target locking mechanism
28
- function lock() external;
29
- function unlock() external;
30
-
31
- function getToken() external view returns (IERC20Metadata token);
32
-
33
- function setWallet(address walletAddress) external;
34
- function getWallet() external view returns (address walletAddress);
35
-
36
- function getInstance() external view returns (IInstance instance);
37
-
38
- function setProductNftId(NftId productNftId) external;
39
- function getProductNftId() external view returns (NftId productNftId);
40
-
41
- function getInstanceService() external view returns (IInstanceService);
42
- function getProductService() external view returns (IProductService);
43
- }
@@ -1,47 +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} from "../types/Referral.sol";
8
- import {NftId} from "../types/NftId.sol";
9
-
10
- interface IDistributionComponent is IComponent {
11
-
12
- function getSetupInfo() external view returns (ISetup.DistributionSetupInfo memory setupInfo);
13
-
14
- function setFees(
15
- Fee memory distributionFee
16
- ) external;
17
-
18
- function calculateFeeAmount(
19
- ReferralId referralId,
20
- uint256 netPremiumAmount
21
- ) external view returns (uint256 feeAmount);
22
-
23
- function calculateRenewalFeeAmount(
24
- ReferralId referralId,
25
- uint256 netPremiumAmount
26
- ) external view returns (uint256 feeAmount);
27
-
28
- /// @dev callback from product service when selling a policy for a specific referralId
29
- /// the used referral id and the collected fee are provided as parameters
30
- /// the component implementation can then process this information accordingly
31
- function processSale(
32
- ReferralId referralId,
33
- uint256 feeAmount
34
- ) external;
35
-
36
- /// @dev callback from product service when a policy is renews for a specific referralId
37
- function processRenewal(
38
- ReferralId referralId,
39
- uint256 feeAmount
40
- ) external;
41
-
42
- /// @dev returns true iff the referral id is valid
43
- function referralIsValid(ReferralId referralId) external view returns (bool isValid);
44
-
45
- /// @dev returns true iff the component needs to be called when selling/renewing policis
46
- function isVerifying() external view returns (bool verifying);
47
- }
@@ -1,51 +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
- interface IPoolComponent is IComponent {
11
-
12
- event LogUnderwrittenByPool(NftId policyNftId, uint256 collateralizationAmount, address pool);
13
-
14
- function getSetupInfo() external view returns (ISetup.PoolSetupInfo memory setupInfo);
15
-
16
- function setFees(
17
- Fee memory poolFee,
18
- Fee memory stakingFee,
19
- Fee memory performanceFee
20
- ) external;
21
-
22
- /**
23
- * @dev this is a callback function that is called by the product service when underwriting a policy.
24
- * the pool has the option to check the details and object to underwriting by reverting.
25
- * the function is only called for "active" pools that ask to be involved/notified
26
- * by product related state changes.
27
- */
28
- function underwrite(
29
- NftId policyNftId,
30
- bytes memory policyData,
31
- bytes memory bundleFilter,
32
- uint256 collateralizationAmount
33
- ) external;
34
-
35
- /**
36
- * @dev returns true iff the policy application data in policyData matches
37
- * with the bundle filter criteria encoded in bundleFilter.
38
- */
39
- function policyMatchesBundle(
40
- bytes memory policyData,
41
- bytes memory bundleFilter
42
- )
43
- external
44
- view
45
- returns (bool isMatching);
46
-
47
- function isConfirmingApplication() external view returns (bool isConfirmingApplication);
48
-
49
- function getCollateralizationLevel() external view returns (UFixed collateralizationLevel);
50
-
51
- }
@@ -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
- }