@etherisc/gif-next 0.0.2-bb7b80e-316 → 0.0.2-bbb7ced-843

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 (632) hide show
  1. package/README.md +10 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -143
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +292 -1428
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +393 -194
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +392 -2436
  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 +630 -351
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +578 -321
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +389 -91
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +273 -290
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +211 -235
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +251 -302
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -220
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +438 -229
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +134 -142
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +279 -17
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +366 -219
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +92 -0
  120. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  121. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  122. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  123. package/artifacts/contracts/registry/Registry.sol/Registry.json +512 -36
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1834 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +538 -281
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -82
  130. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +990 -233
  132. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +144 -0
  134. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  135. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
  136. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1492 -0
  138. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  140. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  149. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +410 -367
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +199 -192
  156. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  157. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  158. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1126 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  164. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +271 -133
  166. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  168. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  169. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +240 -221
  170. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +51 -31
  172. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  174. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  176. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  177. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  178. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  180. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  181. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  182. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IService.sol/IService.json +84 -159
  184. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  186. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  187. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  188. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  189. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  190. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  191. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  192. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  194. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  195. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  200. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  202. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  204. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  205. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  206. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Service.sol/Service.json +189 -150
  208. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  209. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  210. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  212. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  214. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  216. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  218. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  220. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  221. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  222. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  224. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  226. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  228. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  230. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  232. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  233. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  234. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  236. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  238. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  240. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  242. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  244. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  246. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  248. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  250. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  252. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  254. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  256. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  258. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  260. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  262. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  264. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  266. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  270. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  272. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  274. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  276. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  277. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  278. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  280. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  282. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  284. package/contracts/distribution/Distribution.sol +261 -0
  285. package/contracts/distribution/DistributionService.sol +297 -0
  286. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  287. package/contracts/distribution/IDistributionComponent.sol +66 -0
  288. package/contracts/distribution/IDistributionService.sol +81 -0
  289. package/contracts/instance/BundleManager.sol +22 -25
  290. package/contracts/instance/IInstance.sol +75 -48
  291. package/contracts/instance/IInstanceService.sol +77 -20
  292. package/contracts/instance/Instance.sol +186 -185
  293. package/contracts/instance/InstanceAdmin.sol +331 -0
  294. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  295. package/contracts/instance/InstanceReader.sol +160 -83
  296. package/contracts/instance/InstanceService.sol +330 -236
  297. package/contracts/instance/InstanceServiceManager.sol +12 -22
  298. package/contracts/instance/InstanceStore.sol +269 -0
  299. package/contracts/instance/base/BalanceStore.sol +123 -0
  300. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  301. package/contracts/instance/base/ObjectCounter.sol +21 -0
  302. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -37
  303. package/contracts/instance/module/IAccess.sol +19 -21
  304. package/contracts/instance/module/IBundle.sol +8 -8
  305. package/contracts/instance/module/IComponents.sol +52 -0
  306. package/contracts/instance/module/IDistribution.sol +7 -4
  307. package/contracts/instance/module/IPolicy.sol +56 -17
  308. package/contracts/instance/module/IRisk.sol +1 -1
  309. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  310. package/contracts/oracle/IOracle.sol +20 -0
  311. package/contracts/oracle/IOracleComponent.sol +32 -0
  312. package/contracts/oracle/IOracleService.sol +65 -0
  313. package/contracts/oracle/Oracle.sol +145 -0
  314. package/contracts/oracle/OracleService.sol +278 -0
  315. package/contracts/oracle/OracleServiceManager.sol +42 -0
  316. package/contracts/pool/BundleService.sol +296 -0
  317. package/contracts/pool/BundleServiceManager.sol +42 -0
  318. package/contracts/pool/IBundleService.sol +106 -0
  319. package/contracts/pool/IPoolComponent.sol +112 -0
  320. package/contracts/pool/IPoolService.sol +150 -0
  321. package/contracts/pool/Pool.sol +299 -0
  322. package/contracts/pool/PoolService.sol +452 -0
  323. package/contracts/pool/PoolServiceManager.sol +42 -0
  324. package/contracts/product/ApplicationService.sol +254 -0
  325. package/contracts/product/ApplicationServiceManager.sol +38 -0
  326. package/contracts/product/ClaimService.sol +442 -0
  327. package/contracts/product/ClaimServiceManager.sol +38 -0
  328. package/contracts/product/IApplicationService.sol +62 -0
  329. package/contracts/product/IClaimService.sol +99 -0
  330. package/contracts/product/IPolicyService.sol +78 -0
  331. package/contracts/product/IPricingService.sol +39 -0
  332. package/contracts/product/IProductComponent.sol +42 -0
  333. package/contracts/product/IProductService.sol +33 -0
  334. package/contracts/product/PolicyService.sol +475 -0
  335. package/contracts/product/PolicyServiceManager.sol +42 -0
  336. package/contracts/product/PricingService.sol +300 -0
  337. package/contracts/product/PricingServiceManager.sol +42 -0
  338. package/contracts/product/Product.sol +377 -0
  339. package/contracts/product/ProductService.sol +124 -0
  340. package/contracts/product/ProductServiceManager.sol +42 -0
  341. package/contracts/registry/ChainNft.sol +16 -1
  342. package/contracts/registry/IRegistry.sol +56 -23
  343. package/contracts/registry/IRegistryService.sol +45 -34
  344. package/contracts/registry/IServiceAuthorization.sol +28 -0
  345. package/contracts/registry/ITransferInterceptor.sol +1 -0
  346. package/contracts/registry/Registry.sol +300 -120
  347. package/contracts/registry/RegistryAdmin.sol +331 -0
  348. package/contracts/registry/RegistryService.sol +117 -171
  349. package/contracts/registry/RegistryServiceManager.sol +22 -31
  350. package/contracts/registry/ReleaseManager.sol +561 -206
  351. package/contracts/registry/ServiceAuthorizationV3.sol +246 -0
  352. package/contracts/registry/TokenRegistry.sol +263 -58
  353. package/contracts/shared/AccessAdmin.sol +696 -0
  354. package/contracts/shared/AccessManagerCustom.sol +741 -0
  355. package/contracts/shared/AccessManagerExtended.sol +481 -0
  356. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  357. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  358. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  359. package/contracts/shared/Component.sol +281 -0
  360. package/contracts/shared/ComponentService.sol +617 -0
  361. package/contracts/shared/ComponentServiceManager.sol +35 -0
  362. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  363. package/contracts/shared/ERC165.sol +15 -13
  364. package/contracts/shared/IAccessAdmin.sol +146 -0
  365. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  366. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  367. package/contracts/shared/IComponent.sol +70 -0
  368. package/contracts/shared/IComponentService.sol +102 -0
  369. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  370. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  371. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  372. package/contracts/shared/INftOwnable.sol +13 -12
  373. package/contracts/shared/IPolicyHolder.sol +45 -0
  374. package/contracts/shared/IRegisterable.sol +4 -6
  375. package/contracts/shared/IRegistryLinked.sol +11 -0
  376. package/contracts/shared/IService.sol +14 -5
  377. package/contracts/shared/IVersionable.sol +5 -48
  378. package/contracts/shared/InitializableCustom.sol +177 -0
  379. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  380. package/contracts/shared/KeyValueStore.sol +127 -0
  381. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  382. package/contracts/shared/NftIdSetManager.sol +65 -0
  383. package/contracts/shared/NftOwnable.sol +59 -86
  384. package/contracts/shared/PolicyHolder.sol +102 -0
  385. package/contracts/shared/ProxyManager.sol +131 -26
  386. package/contracts/shared/Registerable.sol +26 -41
  387. package/contracts/shared/RegistryLinked.sol +43 -0
  388. package/contracts/shared/Service.sol +57 -32
  389. package/contracts/shared/TokenHandler.sol +37 -6
  390. package/contracts/shared/Versionable.sol +4 -92
  391. package/contracts/staking/IStaking.sol +168 -0
  392. package/contracts/staking/IStakingService.sol +153 -0
  393. package/contracts/staking/StakeManagerLib.sol +231 -0
  394. package/contracts/staking/Staking.sol +513 -0
  395. package/contracts/staking/StakingManager.sol +54 -0
  396. package/contracts/staking/StakingReader.sol +187 -0
  397. package/contracts/staking/StakingService.sol +411 -0
  398. package/contracts/staking/StakingServiceManager.sol +44 -0
  399. package/contracts/staking/StakingStore.sol +613 -0
  400. package/contracts/staking/TargetManagerLib.sol +207 -0
  401. package/contracts/{types → type}/AddressSet.sol +1 -1
  402. package/contracts/type/Amount.sol +128 -0
  403. package/contracts/{types → type}/Blocknumber.sol +21 -3
  404. package/contracts/type/ClaimId.sol +75 -0
  405. package/contracts/{types → type}/DistributorType.sol +2 -2
  406. package/contracts/{types → type}/Fee.sol +33 -23
  407. package/contracts/{types → type}/NftId.sol +21 -15
  408. package/contracts/{types → type}/NftIdSet.sol +2 -2
  409. package/contracts/type/ObjectType.sol +241 -0
  410. package/contracts/type/PayoutId.sol +82 -0
  411. package/contracts/{types → type}/Referral.sol +5 -1
  412. package/contracts/type/RequestId.sol +75 -0
  413. package/contracts/{types → type}/RiskId.sol +1 -1
  414. package/contracts/type/RoleId.sol +201 -0
  415. package/contracts/type/Seconds.sol +81 -0
  416. package/contracts/type/Selector.sol +102 -0
  417. package/contracts/{types → type}/StateId.sol +34 -4
  418. package/contracts/type/String.sol +53 -0
  419. package/contracts/{types → type}/Timestamp.sol +23 -14
  420. package/contracts/{types → type}/UFixed.sol +1 -0
  421. package/contracts/{types → type}/Version.sol +2 -1
  422. package/package.json +5 -5
  423. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  424. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  425. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  426. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  427. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  428. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  429. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  430. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  432. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  433. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  436. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  438. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  440. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  442. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  444. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  446. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  448. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  450. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  452. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  454. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  457. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  459. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  461. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  463. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  465. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  467. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  469. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  471. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  472. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  473. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  474. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  475. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  476. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  477. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  478. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  479. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  480. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  481. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  483. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  484. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  485. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  486. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  487. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
  488. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  493. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1031
  497. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  499. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -693
  501. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  503. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  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 -1156
  511. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  513. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
  515. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  517. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  519. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  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/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  527. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  529. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  531. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  533. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  535. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  537. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  539. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  540. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  541. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  542. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  543. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  544. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  546. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  548. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  551. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  552. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  554. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  555. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  557. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  559. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  561. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  564. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  567. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  571. package/contracts/components/BaseComponent.sol +0 -168
  572. package/contracts/components/Distribution.sol +0 -154
  573. package/contracts/components/IBaseComponent.sol +0 -35
  574. package/contracts/components/IDistributionComponent.sol +0 -44
  575. package/contracts/components/IPoolComponent.sol +0 -66
  576. package/contracts/components/IProductComponent.sol +0 -35
  577. package/contracts/components/Pool.sol +0 -258
  578. package/contracts/components/Product.sol +0 -295
  579. package/contracts/experiment/cloning/Cloner.sol +0 -47
  580. package/contracts/experiment/errors/Require.sol +0 -38
  581. package/contracts/experiment/errors/Revert.sol +0 -44
  582. package/contracts/experiment/inheritance/A.sol +0 -53
  583. package/contracts/experiment/inheritance/B.sol +0 -28
  584. package/contracts/experiment/inheritance/C.sol +0 -34
  585. package/contracts/experiment/inheritance/IA.sol +0 -13
  586. package/contracts/experiment/inheritance/IB.sol +0 -10
  587. package/contracts/experiment/inheritance/IC.sol +0 -12
  588. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  589. package/contracts/experiment/statemachine/ISM.sol +0 -25
  590. package/contracts/experiment/statemachine/SM.sol +0 -57
  591. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  592. package/contracts/experiment/types/TypeA.sol +0 -47
  593. package/contracts/experiment/types/TypeB.sol +0 -29
  594. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  595. package/contracts/instance/IInstanceBase.sol +0 -25
  596. package/contracts/instance/InstanceAccessManager.sol +0 -303
  597. package/contracts/instance/InstanceBase.sol +0 -39
  598. package/contracts/instance/base/ComponentServiceBase.sol +0 -76
  599. package/contracts/instance/base/IInstanceBase.sol +0 -21
  600. package/contracts/instance/base/KeyValueStore.sol +0 -172
  601. package/contracts/instance/module/ISetup.sol +0 -46
  602. package/contracts/instance/module/ITreasury.sol +0 -23
  603. package/contracts/instance/service/BundleService.sol +0 -294
  604. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  605. package/contracts/instance/service/DistributionService.sol +0 -120
  606. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  607. package/contracts/instance/service/IBundleService.sol +0 -44
  608. package/contracts/instance/service/IDistributionService.sol +0 -12
  609. package/contracts/instance/service/IPolicyService.sol +0 -94
  610. package/contracts/instance/service/IPoolService.sol +0 -20
  611. package/contracts/instance/service/IProductService.sol +0 -40
  612. package/contracts/instance/service/PolicyService.sol +0 -539
  613. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  614. package/contracts/instance/service/PoolService.sol +0 -145
  615. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  616. package/contracts/instance/service/ProductService.sol +0 -213
  617. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  618. package/contracts/registry/RegistryAccessManager.sol +0 -210
  619. package/contracts/shared/ContractDeployerLib.sol +0 -72
  620. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  621. package/contracts/test/TestFee.sol +0 -25
  622. package/contracts/test/TestRegisterable.sol +0 -18
  623. package/contracts/test/TestRoleId.sol +0 -14
  624. package/contracts/test/TestService.sol +0 -25
  625. package/contracts/test/TestToken.sol +0 -26
  626. package/contracts/test/TestVersion.sol +0 -44
  627. package/contracts/test/TestVersionable.sol +0 -17
  628. package/contracts/types/ChainId.sol +0 -38
  629. package/contracts/types/NumberId.sol +0 -52
  630. package/contracts/types/ObjectType.sol +0 -152
  631. package/contracts/types/RoleId.sol +0 -90
  632. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,294 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Pool} from "../../components/Pool.sol";
5
- import {IRegistry} from "../../registry/IRegistry.sol";
6
- import {IInstance} from "../../instance/IInstance.sol";
7
- import {IBundle} from "../../instance/module/IBundle.sol";
8
- import {TokenHandler} from "../../instance/module/ITreasury.sol";
9
- import {ISetup} from "../module/ISetup.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
-
12
- import {IVersionable} from "../../shared/IVersionable.sol";
13
- import {Versionable} from "../../shared/Versionable.sol";
14
- import {INftOwnable} from "../../shared/INftOwnable.sol";
15
-
16
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
17
- import {ObjectType, POOL, BUNDLE} from "../../types/ObjectType.sol";
18
- import {POOL_OWNER_ROLE, RoleId} from "../../types/RoleId.sol";
19
- import {Fee, FeeLib} from "../../types/Fee.sol";
20
- import {Version, VersionLib} from "../../types/Version.sol";
21
- import {KEEP_STATE, StateId} from "../../types/StateId.sol";
22
- import {TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
23
-
24
- import {IService} from "../../shared/IService.sol";
25
- import {Service} from "../../shared/Service.sol";
26
- import {BundleManager} from "../BundleManager.sol";
27
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
28
- import {IBundleService} from "./IBundleService.sol";
29
- import {IRegistryService} from "../../registry/IRegistryService.sol";
30
- import {InstanceService} from "../InstanceService.sol";
31
- import {InstanceReader} from "../InstanceReader.sol";
32
- import {IBaseComponent} from "../../components/IBaseComponent.sol";
33
-
34
- string constant BUNDLE_SERVICE_NAME = "BundleService";
35
-
36
- contract BundleService is
37
- ComponentServiceBase,
38
- IBundleService
39
- {
40
- using NftIdLib for NftId;
41
-
42
- string public constant NAME = "BundleService";
43
-
44
- address internal _registryAddress;
45
-
46
- function _initialize(
47
- address owner,
48
- bytes memory data
49
- )
50
- internal
51
- initializer
52
- virtual override
53
- {
54
- address registryAddress;
55
- address initialOwner;
56
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
57
- // TODO while PoolService is not deployed in PoolServiceManager constructor
58
- // owner is PoolServiceManager deployer
59
- _initializeService(registryAddress, owner);
60
-
61
- _registerInterface(type(IBundleService).interfaceId);
62
- }
63
-
64
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
65
- return BUNDLE();
66
- }
67
-
68
- function createBundle(
69
- address owner,
70
- Fee memory fee,
71
- uint256 stakingAmount,
72
- uint256 lifetime,
73
- bytes calldata filter
74
- )
75
- external
76
- override
77
- returns(NftId bundleNftId)
78
- {
79
- (IRegistry.ObjectInfo memory info, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
80
- InstanceReader instanceReader = instance.getInstanceReader();
81
- NftId poolNftId = info.nftId;
82
-
83
- IBundle.BundleInfo memory bundleInfo = IBundle.BundleInfo(
84
- poolNftId,
85
- fee,
86
- filter,
87
- stakingAmount,
88
- 0,
89
- stakingAmount,
90
- lifetime,
91
- zeroTimestamp(),
92
- zeroTimestamp()
93
- );
94
-
95
- // register bundle with registry
96
- bundleNftId = getRegistryService().registerBundle(
97
- IRegistry.ObjectInfo(
98
- zeroNftId(),
99
- poolNftId,
100
- BUNDLE(),
101
- false, // intercepting property for bundles is defined on pool
102
- address(0),
103
- owner,
104
- abi.encode(bundleInfo)
105
- )
106
- );
107
-
108
- // create bundle info in instance
109
- instance.createBundle(bundleNftId, bundleInfo);
110
-
111
- BundleManager bundleManager = instance.getBundleManager();
112
- bundleManager.add(bundleNftId);
113
-
114
- _processStakingByTreasury(
115
- instanceReader,
116
- poolNftId,
117
- bundleNftId,
118
- stakingAmount);
119
-
120
- // TODO add logging
121
- }
122
-
123
- function setBundleFee(
124
- NftId bundleNftId,
125
- Fee memory fee
126
- )
127
- external
128
- override
129
- {
130
- (IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
131
- InstanceReader instanceReader = instance.getInstanceReader();
132
- NftId poolNftId = info.nftId;
133
-
134
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
135
- require(bundleInfo.poolNftId.gtz(), "ERROR:PLS-010:BUNDLE_UNKNOWN");
136
- require(poolNftId == bundleInfo.poolNftId, "ERROR:PLS-011:BUNDLE_POOL_MISMATCH");
137
-
138
- bundleInfo.fee = fee;
139
-
140
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
141
- }
142
-
143
- function updateBundle(NftId instanceNftId, NftId bundleNftId, IBundle.BundleInfo memory bundleInfo, StateId state)
144
- external
145
- onlyService
146
- {
147
- IRegistry.ObjectInfo memory instanceInfo = getRegistry().getObjectInfo(instanceNftId);
148
- IInstance instance = IInstance(instanceInfo.objectAddress);
149
- instance.updateBundle(bundleNftId, bundleInfo, state);
150
- }
151
-
152
- function lockBundle(NftId bundleNftId)
153
- external
154
- {
155
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
156
- BundleManager bundleManager = instance.getBundleManager();
157
- bundleManager.lock(bundleNftId);
158
- }
159
-
160
- function unlockBundle(NftId bundleNftId)
161
- external
162
- {
163
- (, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
164
- BundleManager bundleManager = instance.getBundleManager();
165
- bundleManager.unlock(bundleNftId);
166
- }
167
-
168
- function underwritePolicy(IInstance instance,
169
- NftId policyNftId,
170
- NftId bundleNftId,
171
- uint256 collateralAmount,
172
- uint256 netPremiumAmount
173
- )
174
- external
175
- onlyService
176
- {
177
- InstanceReader instanceReader = instance.getInstanceReader();
178
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
179
-
180
- // lock collateral
181
- bundleInfo.lockedAmount += collateralAmount;
182
- bundleInfo.balanceAmount += netPremiumAmount;
183
-
184
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
185
-
186
- linkPolicy(instance, policyNftId);
187
- }
188
-
189
- function increaseBalance(IInstance instance,
190
- NftId bundleNftId,
191
- uint256 amount
192
- )
193
- external
194
- onlyService
195
- {
196
- InstanceReader instanceReader = instance.getInstanceReader();
197
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
198
-
199
- bundleInfo.balanceAmount += amount;
200
-
201
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
202
- }
203
-
204
- function closePolicy(IInstance instance,
205
- NftId policyNftId,
206
- NftId bundleNftId,
207
- uint256 collateralAmount
208
- )
209
- external
210
- onlyService
211
- {
212
- InstanceReader instanceReader = instance.getInstanceReader();
213
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
214
-
215
- // lock collateral
216
- bundleInfo.lockedAmount -= collateralAmount;
217
-
218
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
219
-
220
- unlinkPolicy(instance, policyNftId);
221
- }
222
-
223
- /// @dev links policy to bundle
224
- function linkPolicy(IInstance instance, NftId policyNftId)
225
- internal
226
- onlyService
227
- {
228
- InstanceReader instanceReader = instance.getInstanceReader();
229
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
230
-
231
- // ensure policy has not yet been activated
232
- if (policyInfo.activatedAt.gtz()) {
233
- revert BundleManager.ErrorBundleManagerErrorPolicyAlreadyActivated(policyNftId);
234
- }
235
-
236
- BundleManager bundleManager = instance.getBundleManager();
237
- bundleManager.linkPolicy(policyNftId);
238
- }
239
-
240
- /// @dev unlinks policy from bundle
241
- function unlinkPolicy(IInstance instance, NftId policyNftId)
242
- internal
243
- onlyService
244
- {
245
- InstanceReader instanceReader = instance.getInstanceReader();
246
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
247
-
248
- // ensure policy has no open claims
249
- if (policyInfo.openClaimsCount > 0) {
250
- revert BundleManager.ErrorBundleManagerPolicyWithOpenClaims(
251
- policyNftId,
252
- policyInfo.openClaimsCount);
253
- }
254
-
255
- // ensure policy is closeable
256
- if ( TimestampLib.blockTimestamp() < policyInfo.expiredAt
257
- && policyInfo.payoutAmount < policyInfo.sumInsuredAmount)
258
- {
259
- revert BundleManager.ErrorBundleManagerPolicyNotCloseable(policyNftId);
260
- }
261
-
262
- BundleManager bundleManager = instance.getBundleManager();
263
- bundleManager.unlinkPolicy(policyNftId);
264
- }
265
-
266
- function _processStakingByTreasury(
267
- InstanceReader instanceReader,
268
- NftId poolNftId,
269
- NftId bundleNftId,
270
- uint256 stakingAmount
271
- )
272
- internal
273
- {
274
- // process token transfer(s)
275
- if(stakingAmount > 0) {
276
- ISetup.PoolSetupInfo memory poolInfo = instanceReader.getPoolSetupInfo(poolNftId);
277
- TokenHandler tokenHandler = poolInfo.tokenHandler;
278
- address bundleOwner = getRegistry().ownerOf(bundleNftId);
279
- Fee memory stakingFee = poolInfo.stakingFee;
280
-
281
- tokenHandler.transfer(
282
- bundleOwner,
283
- poolInfo.wallet,
284
- stakingAmount
285
- );
286
-
287
-
288
- if (! FeeLib.feeIsZero(stakingFee)) {
289
- (uint256 stakingFeeAmount, uint256 netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount);
290
- // TODO: track staking fees in pool's state (issue #177)
291
- }
292
- }
293
- }
294
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {BundleService} from "./BundleService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {ObjectType, REGISTRY} from "../../types/ObjectType.sol";
10
-
11
- contract BundleServiceManager is ProxyManager {
12
-
13
- BundleService private _bundleService;
14
-
15
- /// @dev initializes proxy manager with pool service implementation
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager()
20
- {
21
- BundleService bundleSrv = new BundleService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(bundleSrv),
25
- data);
26
-
27
- _bundleService = BundleService(address(versionable));
28
-
29
- // TODO `this` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _bundleService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_poolService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_poolService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getBundleService()
44
- external
45
- view
46
- returns (BundleService)
47
- {
48
- return _bundleService;
49
- }
50
-
51
- }
@@ -1,120 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IInstance} from "../../instance/IInstance.sol";
6
- import {InstanceAccessManager} from "../InstanceAccessManager.sol";
7
- import {InstanceReader} from "../../instance/InstanceReader.sol";
8
- import {ISetup} from "../../instance/module/ISetup.sol";
9
-
10
- import {NftId, NftIdLib} from "../../types/NftId.sol";
11
- import {Fee} from "../../types/Fee.sol";
12
- import {DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
13
- import {KEEP_STATE} from "../../types/StateId.sol";
14
- import {ObjectType, DISTRIBUTION} from "../../types/ObjectType.sol";
15
- import {Version, VersionLib} from "../../types/Version.sol";
16
-
17
- import {IVersionable} from "../../shared/IVersionable.sol";
18
- import {Versionable} from "../../shared/Versionable.sol";
19
-
20
- import {IService} from "../../shared/IService.sol";
21
- import {Service} from "../../shared/Service.sol";
22
- import {ComponentServiceBase} from "../base/ComponentServiceBase.sol";
23
- import {InstanceService} from "../InstanceService.sol";
24
- import {IDistributionService} from "./IDistributionService.sol";
25
- import {IBaseComponent} from "../../components/IBaseComponent.sol";
26
-
27
-
28
- contract DistributionService is
29
- ComponentServiceBase,
30
- IDistributionService
31
- {
32
- using NftIdLib for NftId;
33
-
34
- address internal _registryAddress;
35
-
36
- function _initialize(
37
- address owner,
38
- bytes memory data
39
- )
40
- internal
41
- initializer
42
- virtual override
43
- {
44
- address initialOwner;
45
- address registryAddress;
46
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
47
- // TODO while DistributionService is not deployed in DistributionServiceManager constructor
48
- // owner is DistributionServiceManager deployer
49
- _initializeService(registryAddress, owner);
50
-
51
- _registerInterface(type(IDistributionService).interfaceId);
52
- }
53
-
54
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
55
- return DISTRIBUTION();
56
- }
57
-
58
- function register(address distributionAddress)
59
- external
60
- returns(NftId distributionNftId)
61
- {
62
- address distributionOwner = msg.sender;
63
- IBaseComponent distribution = IBaseComponent(distributionAddress);
64
-
65
- IRegistry.ObjectInfo memory info;
66
- bytes memory data;
67
- (info, data) = getRegistryService().registerDistribution(distribution, distributionOwner);
68
-
69
- NftId instanceNftId = info.parentNftId;
70
- IInstance instance = _getInstance(instanceNftId);
71
- InstanceService instanceService = getInstanceService();
72
-
73
- bool hasRole = instanceService.hasRole(
74
- distributionOwner,
75
- DISTRIBUTION_OWNER_ROLE(),
76
- address(instance));
77
-
78
- if(!hasRole) {
79
- revert ExpectedRoleMissing(DISTRIBUTION_OWNER_ROLE(), distributionOwner);
80
- }
81
-
82
- distributionNftId = info.nftId;
83
- string memory distributionName;
84
- ISetup.DistributionSetupInfo memory initialSetup;
85
- (distributionName, initialSetup) = _decodeAndVerifyDistributionData(data);
86
- instance.createDistributionSetup(distributionNftId, initialSetup);
87
-
88
- instanceService.createTarget(instanceNftId, distributionAddress, distributionName);
89
-
90
- distribution.linkToRegisteredNftId();
91
- }
92
-
93
- function _decodeAndVerifyDistributionData(bytes memory data)
94
- internal
95
- returns(string memory name, ISetup.DistributionSetupInfo memory setup)
96
- {
97
- (name, setup) = abi.decode(
98
- data,
99
- (string, ISetup.DistributionSetupInfo)
100
- );
101
-
102
- // TODO add checks if applicable
103
- }
104
-
105
- function setFees(
106
- Fee memory distributionFee
107
- )
108
- external
109
- override
110
- {
111
- (IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
112
- InstanceReader instanceReader = instance.getInstanceReader();
113
- NftId distributionNftId = info.nftId;
114
-
115
- ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
116
- distSetupInfo.distributionFee = distributionFee;
117
-
118
- instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
119
- }
120
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {DistributionService} from "./DistributionService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {REGISTRY} from "../../types/ObjectType.sol";
10
-
11
- contract DistributionServiceManager is ProxyManager {
12
-
13
- DistributionService private _distributionService;
14
-
15
- /// @dev initializes proxy manager with distribution service implementation and deploys instance
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager()
20
- {
21
- DistributionService distSrv = new DistributionService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(distSrv),
25
- data);
26
-
27
- _distributionService = DistributionService(address(versionable));
28
-
29
- // TODO `thi` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_distributionService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_distributionService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getDistributionService()
44
- external
45
- view
46
- returns (DistributionService distributionService)
47
- {
48
- return _distributionService;
49
- }
50
-
51
- }
@@ -1,44 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {StateId} from "../../types/StateId.sol";
7
- import {IService} from "../../shared/IService.sol";
8
- import {IBundle} from "../module/IBundle.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
-
11
- interface IBundleService is IService {
12
- error ErrorIBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, uint256 amount);
13
-
14
- function createBundle(
15
- address owner,
16
- Fee memory fee,
17
- uint256 amount,
18
- uint256 lifetime,
19
- bytes calldata filter
20
- ) external returns(NftId bundleNftId);
21
-
22
- function setBundleFee(
23
- NftId bundleNftId,
24
- Fee memory fee
25
- ) external;
26
-
27
- function updateBundle(NftId instanceNftId, NftId bundleNftId, IBundle.BundleInfo memory bundleInfo, StateId state) external;
28
-
29
- function underwritePolicy(IInstance instanceNftId, NftId policyNftId, NftId bundleNftId, uint256 collateralAmount, uint256 netPremium) external;
30
-
31
- function increaseBalance(IInstance instance, NftId bundleNftId, uint256 amount) external;
32
-
33
- function closePolicy(IInstance instance, NftId policyNftId, NftId bundleNftId, uint256 collateralAmount) external;
34
-
35
- // function fundBundle(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
36
-
37
- // function defundBundle(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
38
-
39
- function lockBundle(NftId bundleNftId) external;
40
-
41
- function unlockBundle(NftId bundleNftId) external;
42
-
43
- // function closeBundle(NftId bundleNftId) external;
44
- }
@@ -1,12 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {IService} from "../../shared/IService.sol";
7
-
8
- interface IDistributionService is IService {
9
- function setFees(
10
- Fee memory distributionFee
11
- ) external;
12
- }
@@ -1,94 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "../../shared/IService.sol";
6
-
7
- import {NftId} from "../../types/NftId.sol";
8
- import {ReferralId} from "../../types/Referral.sol";
9
- import {RiskId} from "../../types/RiskId.sol";
10
- import {StateId} from "../../types/StateId.sol";
11
- import {Timestamp} from "../../types/Timestamp.sol";
12
- import {UFixed} from "../../types/UFixed.sol";
13
- import {Fee} from "../../types/Fee.sol";
14
-
15
- interface IPolicyService is IService {
16
-
17
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
18
- error ErrorIPolicyServicePremiumAlreadyPaid(NftId policyNftId, uint256 premiumPaidAmount);
19
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
20
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
21
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
22
- error ErrorIPolicyServicePremiumNotFullyPaid(NftId policyNftId, uint256 premiumAmount, uint256 premiumPaidAmount);
23
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
24
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
25
-
26
- function calculatePremium(
27
- RiskId riskId,
28
- uint256 sumInsuredAmount,
29
- uint256 lifetime,
30
- bytes memory applicationData,
31
- NftId bundleNftId,
32
- ReferralId referralId
33
- )
34
- external
35
- view
36
- returns (
37
- uint256 premiumAmount,
38
- uint256 productFeeAmount,
39
- uint256 poolFeeAmount,
40
- uint256 bundleFeeAmount,
41
- uint256 distributionFeeAmount
42
- );
43
-
44
-
45
- function createApplication(
46
- address applicationOwner,
47
- RiskId riskId,
48
- uint256 sumInsuredAmount,
49
- uint256 lifetime,
50
- bytes memory applicationData,
51
- NftId bundleNftId,
52
- ReferralId referralId
53
- ) external returns (NftId nftId);
54
-
55
- /**
56
- * @dev revokes the application represented by {policyNftId}.
57
- * an application can only be revoked in applied state.
58
- * only the application holder may revoke an application.
59
- */
60
- function revoke(NftId policyNftId) external;
61
-
62
- /**
63
- * @dev underwrites the policy represented by {policyNftId}.
64
- * optionally collects premiums and activates the policy.
65
- * - premium payment is only attempted if requirePremiumPayment is set to true
66
- * - activation is only done if activateAt is a non-zero timestamp
67
- */
68
- function underwrite(
69
- NftId policyNftId,
70
- bool requirePremiumPayment,
71
- Timestamp activateAt
72
- ) external;
73
-
74
- // function decline(uint256 nftId) external;
75
- // function expire(uint256 nftId) external;
76
-
77
- function collectPremium(NftId policyNftId, Timestamp activateAt) external;
78
-
79
- function activate(NftId policyNftId, Timestamp activateAt) external;
80
-
81
-
82
- function close(NftId nftId) external;
83
-
84
- // function createClaim(uint256 nftId, uint256 claimAmount) external;
85
- // function confirmClaim(uint256 nftId, uint256 claimId, uint256 claimAmount) external;
86
- // function declineClaim(uint256 nftId, uint256 claimId) external;
87
- // function closeClaim(uint256 nftId, uint256 claimId) external; // TODO payoutClaim() -> implicit close when payed out in full
88
-
89
- function calculateRequiredCollateral(
90
- UFixed collateralizationLevel,
91
- uint256 sumInsuredAmount
92
- ) external pure returns(uint256 collateralAmount);
93
-
94
- }
@@ -1,20 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {StateId} from "../../types/StateId.sol";
7
- import {IService} from "../../shared/IService.sol";
8
- import {IBundle} from "../module/IBundle.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
-
11
- interface IPoolService is IService {
12
-
13
- function register(address poolAddress) external returns(NftId);
14
-
15
- function setFees(
16
- Fee memory poolFee,
17
- Fee memory stakingFee,
18
- Fee memory performanceFee
19
- ) external;
20
- }