@etherisc/gif-next 0.0.2-fca9315-260 → 0.0.2-fd2113c-488

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 (617) 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/{components/Pool.sol/Pool.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +373 -368
  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 +558 -362
  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 +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/{components/IPoolComponent.sol/IPoolComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +294 -304
  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 -285
  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 -230
  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 -297
  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 -215
  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} +358 -312
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +126 -167
  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/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +865 -216
  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 +203 -21
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +360 -218
  118. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -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 +440 -36
  124. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  125. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  126. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -254
  128. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +352 -95
  130. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  131. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +769 -98
  132. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  138. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  140. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  142. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  151. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +330 -283
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +178 -242
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  160. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  166. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +213 -230
  168. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  171. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +210 -161
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  174. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  176. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  180. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  183. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.json +84 -154
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  188. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  196. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  202. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  208. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Service.sol/Service.json +188 -157
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  212. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  214. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  274. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  282. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  286. package/contracts/distribution/Distribution.sol +261 -0
  287. package/contracts/distribution/DistributionService.sol +297 -0
  288. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  289. package/contracts/distribution/IDistributionComponent.sol +66 -0
  290. package/contracts/distribution/IDistributionService.sol +81 -0
  291. package/contracts/instance/BundleManager.sol +15 -14
  292. package/contracts/instance/IInstance.sol +61 -46
  293. package/contracts/instance/IInstanceService.sol +76 -20
  294. package/contracts/instance/Instance.sol +176 -182
  295. package/contracts/instance/InstanceAdmin.sol +331 -0
  296. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  297. package/contracts/instance/InstanceReader.sol +159 -60
  298. package/contracts/instance/InstanceService.sol +313 -306
  299. package/contracts/instance/InstanceServiceManager.sol +12 -22
  300. package/contracts/instance/InstanceStore.sol +269 -0
  301. package/contracts/instance/base/BalanceStore.sol +123 -0
  302. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  303. package/contracts/instance/base/ObjectCounter.sol +21 -0
  304. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -16
  305. package/contracts/instance/module/IAccess.sol +19 -21
  306. package/contracts/instance/module/IBundle.sol +8 -8
  307. package/contracts/instance/module/IComponents.sol +52 -0
  308. package/contracts/instance/module/IDistribution.sol +7 -4
  309. package/contracts/instance/module/IPolicy.sol +56 -17
  310. package/contracts/instance/module/IRisk.sol +1 -1
  311. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  312. package/contracts/oracle/IOracle.sol +20 -0
  313. package/contracts/oracle/IOracleComponent.sol +32 -0
  314. package/contracts/oracle/IOracleService.sol +65 -0
  315. package/contracts/oracle/Oracle.sol +145 -0
  316. package/contracts/oracle/OracleService.sol +278 -0
  317. package/contracts/oracle/OracleServiceManager.sol +42 -0
  318. package/contracts/pool/BundleService.sol +296 -0
  319. package/contracts/pool/BundleServiceManager.sol +42 -0
  320. package/contracts/pool/IBundleService.sol +106 -0
  321. package/contracts/pool/IPoolComponent.sol +112 -0
  322. package/contracts/pool/IPoolService.sol +150 -0
  323. package/contracts/pool/Pool.sol +299 -0
  324. package/contracts/pool/PoolService.sol +452 -0
  325. package/contracts/pool/PoolServiceManager.sol +42 -0
  326. package/contracts/product/ApplicationService.sol +254 -0
  327. package/contracts/product/ApplicationServiceManager.sol +38 -0
  328. package/contracts/product/ClaimService.sol +442 -0
  329. package/contracts/product/ClaimServiceManager.sol +38 -0
  330. package/contracts/product/IApplicationService.sol +62 -0
  331. package/contracts/product/IClaimService.sol +99 -0
  332. package/contracts/product/IPolicyService.sol +78 -0
  333. package/contracts/product/IPricingService.sol +39 -0
  334. package/contracts/product/IProductComponent.sol +42 -0
  335. package/contracts/product/IProductService.sol +33 -0
  336. package/contracts/product/PolicyService.sol +475 -0
  337. package/contracts/product/PolicyServiceManager.sol +42 -0
  338. package/contracts/product/PricingService.sol +300 -0
  339. package/contracts/product/PricingServiceManager.sol +42 -0
  340. package/contracts/product/Product.sol +377 -0
  341. package/contracts/product/ProductService.sol +124 -0
  342. package/contracts/product/ProductServiceManager.sol +42 -0
  343. package/contracts/registry/ChainNft.sol +16 -1
  344. package/contracts/registry/IRegistry.sol +47 -21
  345. package/contracts/registry/IRegistryService.sol +42 -38
  346. package/contracts/registry/IServiceAuthorization.sol +35 -0
  347. package/contracts/registry/ITransferInterceptor.sol +1 -0
  348. package/contracts/registry/Registry.sol +227 -97
  349. package/contracts/registry/RegistryAdmin.sol +333 -0
  350. package/contracts/registry/RegistryService.sol +108 -104
  351. package/contracts/registry/RegistryServiceManager.sol +22 -31
  352. package/contracts/registry/ReleaseManager.sol +398 -203
  353. package/contracts/registry/ServiceAuthorization.sol +86 -0
  354. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  355. package/contracts/registry/TokenRegistry.sol +263 -60
  356. package/contracts/shared/AccessAdmin.sol +759 -0
  357. package/contracts/shared/AccessManagerCustom.sol +741 -0
  358. package/contracts/shared/AccessManagerExtended.sol +481 -0
  359. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  360. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  361. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  362. package/contracts/shared/Component.sol +281 -0
  363. package/contracts/shared/ComponentService.sol +617 -0
  364. package/contracts/shared/ComponentServiceManager.sol +35 -0
  365. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  366. package/contracts/shared/ERC165.sol +15 -13
  367. package/contracts/shared/IAccessAdmin.sol +168 -0
  368. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  369. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  370. package/contracts/shared/IComponent.sol +70 -0
  371. package/contracts/shared/IComponentService.sol +102 -0
  372. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  373. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  374. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  375. package/contracts/shared/INftOwnable.sol +13 -12
  376. package/contracts/shared/IPolicyHolder.sol +45 -0
  377. package/contracts/shared/IRegisterable.sol +3 -3
  378. package/contracts/shared/IRegistryLinked.sol +11 -0
  379. package/contracts/shared/IService.sol +14 -5
  380. package/contracts/shared/IVersionable.sol +5 -48
  381. package/contracts/shared/InitializableCustom.sol +177 -0
  382. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  383. package/contracts/shared/KeyValueStore.sol +127 -0
  384. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  385. package/contracts/shared/NftIdSetManager.sol +65 -0
  386. package/contracts/shared/NftOwnable.sol +59 -91
  387. package/contracts/shared/PolicyHolder.sol +102 -0
  388. package/contracts/shared/ProxyManager.sol +131 -26
  389. package/contracts/shared/Registerable.sol +19 -30
  390. package/contracts/shared/RegistryLinked.sol +43 -0
  391. package/contracts/shared/Service.sol +54 -31
  392. package/contracts/shared/TokenHandler.sol +37 -6
  393. package/contracts/shared/Versionable.sol +4 -92
  394. package/contracts/staking/IStaking.sol +168 -0
  395. package/contracts/staking/IStakingService.sol +153 -0
  396. package/contracts/staking/StakeManagerLib.sol +231 -0
  397. package/contracts/staking/Staking.sol +513 -0
  398. package/contracts/staking/StakingManager.sol +54 -0
  399. package/contracts/staking/StakingReader.sol +187 -0
  400. package/contracts/staking/StakingService.sol +411 -0
  401. package/contracts/staking/StakingServiceManager.sol +44 -0
  402. package/contracts/staking/StakingStore.sol +613 -0
  403. package/contracts/staking/TargetManagerLib.sol +207 -0
  404. package/contracts/{types → type}/AddressSet.sol +1 -1
  405. package/contracts/type/Amount.sol +128 -0
  406. package/contracts/{types → type}/Blocknumber.sol +21 -3
  407. package/contracts/type/ClaimId.sol +75 -0
  408. package/contracts/{types → type}/DistributorType.sol +2 -2
  409. package/contracts/{types → type}/Fee.sol +33 -23
  410. package/contracts/{types → type}/NftId.sol +21 -15
  411. package/contracts/{types → type}/NftIdSet.sol +2 -2
  412. package/contracts/type/ObjectType.sol +241 -0
  413. package/contracts/type/PayoutId.sol +82 -0
  414. package/contracts/{types → type}/Referral.sol +5 -1
  415. package/contracts/type/RequestId.sol +75 -0
  416. package/contracts/{types → type}/RiskId.sol +1 -1
  417. package/contracts/type/RoleId.sol +201 -0
  418. package/contracts/type/Seconds.sol +81 -0
  419. package/contracts/type/Selector.sol +102 -0
  420. package/contracts/{types → type}/StateId.sol +34 -4
  421. package/contracts/type/String.sol +53 -0
  422. package/contracts/{types → type}/Timestamp.sol +23 -14
  423. package/contracts/{types → type}/UFixed.sol +1 -0
  424. package/contracts/{types → type}/Version.sol +2 -1
  425. package/package.json +5 -5
  426. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  427. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  428. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  429. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  430. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  431. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  432. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  433. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  434. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  437. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  439. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  441. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  443. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  445. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  447. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  449. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  451. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  453. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  455. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  458. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  460. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  462. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  464. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  466. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  468. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  470. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  472. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  474. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  475. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  477. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  478. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  479. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  481. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  482. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  483. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  484. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  485. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  486. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  487. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  490. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  492. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  494. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  496. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  503. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  505. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  507. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  509. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  511. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  513. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  514. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  515. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  516. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  517. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  519. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  521. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  523. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  525. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  527. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  529. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  531. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  532. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  533. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  534. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  536. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  538. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  541. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  544. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  549. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  551. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  554. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  557. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  561. package/contracts/components/Component.sol +0 -216
  562. package/contracts/components/Distribution.sol +0 -150
  563. package/contracts/components/IComponent.sol +0 -43
  564. package/contracts/components/IDistributionComponent.sol +0 -47
  565. package/contracts/components/IPoolComponent.sol +0 -60
  566. package/contracts/components/IProductComponent.sol +0 -39
  567. package/contracts/components/Pool.sol +0 -227
  568. package/contracts/components/Product.sol +0 -265
  569. package/contracts/experiment/cloning/Cloner.sol +0 -47
  570. package/contracts/experiment/errors/Require.sol +0 -38
  571. package/contracts/experiment/errors/Revert.sol +0 -44
  572. package/contracts/experiment/inheritance/A.sol +0 -53
  573. package/contracts/experiment/inheritance/B.sol +0 -28
  574. package/contracts/experiment/inheritance/C.sol +0 -34
  575. package/contracts/experiment/inheritance/IA.sol +0 -13
  576. package/contracts/experiment/inheritance/IB.sol +0 -10
  577. package/contracts/experiment/inheritance/IC.sol +0 -12
  578. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  579. package/contracts/experiment/statemachine/ISM.sol +0 -25
  580. package/contracts/experiment/statemachine/SM.sol +0 -57
  581. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  582. package/contracts/experiment/types/TypeA.sol +0 -47
  583. package/contracts/experiment/types/TypeB.sol +0 -29
  584. package/contracts/instance/InstanceAccessManager.sol +0 -298
  585. package/contracts/instance/base/ComponentService.sol +0 -134
  586. package/contracts/instance/base/KeyValueStore.sol +0 -172
  587. package/contracts/instance/module/ISetup.sol +0 -46
  588. package/contracts/instance/module/ITreasury.sol +0 -23
  589. package/contracts/instance/service/BundleService.sol +0 -293
  590. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  591. package/contracts/instance/service/DistributionService.sol +0 -106
  592. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  593. package/contracts/instance/service/IBundleService.sol +0 -44
  594. package/contracts/instance/service/IDistributionService.sol +0 -12
  595. package/contracts/instance/service/IPolicyService.sol +0 -94
  596. package/contracts/instance/service/IPoolService.sol +0 -20
  597. package/contracts/instance/service/IProductService.sol +0 -40
  598. package/contracts/instance/service/PolicyService.sol +0 -538
  599. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  600. package/contracts/instance/service/PoolService.sol +0 -110
  601. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  602. package/contracts/instance/service/ProductService.sol +0 -234
  603. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  604. package/contracts/registry/RegistryAccessManager.sol +0 -216
  605. package/contracts/shared/ContractDeployerLib.sol +0 -72
  606. package/contracts/test/TestFee.sol +0 -25
  607. package/contracts/test/TestRegisterable.sol +0 -18
  608. package/contracts/test/TestRoleId.sol +0 -14
  609. package/contracts/test/TestService.sol +0 -25
  610. package/contracts/test/TestVersion.sol +0 -44
  611. package/contracts/test/TestVersionable.sol +0 -17
  612. package/contracts/test/Usdc.sol +0 -26
  613. package/contracts/types/ChainId.sol +0 -38
  614. package/contracts/types/NumberId.sol +0 -52
  615. package/contracts/types/ObjectType.sol +0 -152
  616. package/contracts/types/RoleId.sol +0 -90
  617. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {Fee} from "../type/Fee.sol";
7
+ import {IPolicy} from "../instance/module/IPolicy.sol";
8
+ import {IService} from "../shared/IService.sol";
9
+ import {UFixed} from "../type/UFixed.sol";
10
+ import {DistributorType} from "../type/DistributorType.sol";
11
+ import {ReferralId} from "../type/Referral.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
+
14
+
15
+ interface IDistributionService is IService {
16
+ error ErrorDistributionServiceCallerNotRegistered(address caller);
17
+ error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
18
+ error ErrorIDistributionServiceCallerNotDistributor(address caller);
19
+ error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
20
+ error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
21
+ error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
22
+ error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
23
+ error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
24
+ error ErrorIDistributionServiceInvalidReferral(string code);
25
+ error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
26
+ error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
27
+ error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
28
+ error ErrorIDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
29
+ error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
30
+ error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
31
+
32
+ function createDistributorType(
33
+ string memory name,
34
+ UFixed minDiscountPercentage,
35
+ UFixed maxDiscountPercentage,
36
+ UFixed commissionPercentage,
37
+ uint32 maxReferralCount,
38
+ uint32 maxReferralLifetime,
39
+ bool allowSelfReferrals,
40
+ bool allowRenewals,
41
+ bytes memory data
42
+ )
43
+ external
44
+ returns (DistributorType distributorType);
45
+
46
+ function createDistributor(
47
+ address distributor,
48
+ DistributorType distributorType,
49
+ bytes memory data
50
+ ) external returns (NftId distributorNftId);
51
+
52
+ // TODO re-enable and reorganize (service contract too large)
53
+ // function updateDistributorType(
54
+ // NftId distributorNftId,
55
+ // DistributorType distributorType,
56
+ // bytes memory data
57
+ // ) external;
58
+
59
+ function createReferral(
60
+ NftId distributorNftId,
61
+ string memory code,
62
+ UFixed discountPercentage,
63
+ uint32 maxReferrals,
64
+ Timestamp expiryAt,
65
+ bytes memory data
66
+ )
67
+ external
68
+ returns (ReferralId referralId);
69
+
70
+ /// @dev callback from product service when selling a policy for a specific referralId
71
+ function processSale(
72
+ NftId distributionNftId,
73
+ ReferralId referralId,
74
+ IPolicy.Premium memory premium
75
+ ) external;
76
+
77
+ function referralIsValid(
78
+ NftId distributorNftId,
79
+ ReferralId referralId
80
+ ) external view returns (bool isValid);
81
+ }
@@ -2,15 +2,15 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IInstance} from "./IInstance.sol";
5
- import {INSTANCE} from "../types/ObjectType.sol";
5
+ import {INSTANCE} from "../type/ObjectType.sol";
6
6
  import {InstanceReader} from "./InstanceReader.sol";
7
7
  import {IPolicy} from "../instance/module/IPolicy.sol";
8
8
  import {IRegistry} from "../registry/IRegistry.sol";
9
- import {LibNftIdSet} from "../types/NftIdSet.sol";
10
- import {NftId} from "../types/NftId.sol";
11
- import {TimestampLib} from "../types/Timestamp.sol";
9
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {TimestampLib} from "../type/Timestamp.sol";
12
12
 
13
- import {ObjectManager} from "./ObjectManager.sol";
13
+ import {ObjectManager} from "./base/ObjectManager.sol";
14
14
 
15
15
  contract BundleManager is
16
16
  ObjectManager
@@ -22,9 +22,10 @@ contract BundleManager is
22
22
  event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
23
23
  event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
24
  event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
25
+ event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
25
26
 
26
- error ErrorBundleManagerErrorPolicyAlreadyActivated(NftId policyNftId);
27
- error ErrorBundleManagerErrorBundleLocked(NftId bundleNftId, NftId policyNftId);
27
+ error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
28
+ error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
28
29
  error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
29
30
  error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
30
31
  error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
@@ -32,9 +33,8 @@ contract BundleManager is
32
33
 
33
34
  mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
34
35
 
35
- /// @dev links a policy with its bundle
36
- // to link a policy it MUST NOT yet have been activated
37
- // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
36
+ /// @dev links a policy to its bundle
37
+ // to link a policy it MUST NOT yet have been linked
38
38
  function linkPolicy(NftId policyNftId) external restricted() {
39
39
  NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
40
40
  // decision will likely depend on the decision what to check here and what in the service
@@ -42,7 +42,7 @@ contract BundleManager is
42
42
 
43
43
  // ensure bundle is unlocked (in active set) and registered with this instance
44
44
  if (!_isActive(poolNftId, bundleNftId)) {
45
- revert ErrorBundleManagerErrorBundleLocked(bundleNftId, policyNftId);
45
+ revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
46
46
  }
47
47
 
48
48
  LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
@@ -71,7 +71,7 @@ contract BundleManager is
71
71
  }
72
72
 
73
73
 
74
- /// @dev add a new bundle to a riskpool registerd with this instance
74
+ /// @dev add a new bundle to a pool registerd with this instance
75
75
  // the corresponding pool is fetched via instance reader
76
76
  function add(NftId bundleNftId) external restricted() {
77
77
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
@@ -85,14 +85,15 @@ contract BundleManager is
85
85
  emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
86
86
  }
87
87
 
88
- /// @dev unlocked (active) bundles are available to underwrite new policies
88
+
89
+ /// @dev unlocked (active) bundles are available to collateralize new policies
89
90
  function unlock(NftId bundleNftId) external restricted() {
90
91
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
91
92
  _activate(poolNftId, bundleNftId);
92
93
  emit LogBundleManagerBundleUnlocked(poolNftId, bundleNftId);
93
94
  }
94
95
 
95
- /// @dev locked (deactivated) bundles may not underwrite any new policies
96
+ /// @dev locked (deactivated) bundles may not collateralize any new policies
96
97
  function lock(NftId bundleNftId) external restricted() {
97
98
  NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
98
99
  _deactivate(poolNftId, bundleNftId);
@@ -3,70 +3,85 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
- import {NftId} from "../types/NftId.sol";
7
- import {StateId} from "../types/StateId.sol";
8
- import {RiskId} from "../types/RiskId.sol";
9
-
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {PayoutId} from "../type/PayoutId.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {StateId} from "../type/StateId.sol";
12
+ import {ReferralId} from "../type/Referral.sol";
13
+ import {RiskId} from "../type/RiskId.sol";
14
+ import {VersionPart} from "../type/Version.sol";
15
+ import {Key32} from "../type/Key32.sol";
16
+ import {RoleId} from "../type/RoleId.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+
20
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
10
21
  import {IRegisterable} from "../shared/IRegisterable.sol";
11
22
 
12
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
23
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
24
+
25
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
13
26
  import {BundleManager} from "./BundleManager.sol";
14
27
  import {InstanceReader} from "./InstanceReader.sol";
28
+ import {InstanceStore} from "./InstanceStore.sol";
29
+
30
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
15
31
 
16
- import {IBundle} from "./module/IBundle.sol";
17
- import {IBundleService} from "./service/IBundleService.sol";
18
- import {IDistributionService} from "./service/IDistributionService.sol";
19
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
20
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
21
- import {IPolicy} from "./module/IPolicy.sol";
22
- import {IPolicyService} from "./service/IPolicyService.sol";
23
- import {IPoolService} from "./service/IPoolService.sol";
24
- import {IProductService} from "./service/IProductService.sol";
25
- import {IPolicyService} from "./service/IPolicyService.sol";
26
- import {IBundleService} from "./service/IBundleService.sol";
27
- import {IRisk} from "./module/IRisk.sol";
28
- import {ISetup} from "./module/ISetup.sol";
29
- import {NftId} from "../types/NftId.sol";
30
- import {RiskId} from "../types/RiskId.sol";
31
- import {StateId} from "../types/StateId.sol";
32
- import {VersionPart} from "../types/Version.sol";
32
+ import {IAccess} from "./module/IAccess.sol";
33
33
 
34
+ import {IBundleService} from "../pool/IBundleService.sol";
35
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
36
+ import {IPolicyService} from "../product/IPolicyService.sol";
37
+ import {IPoolService} from "../pool/IPoolService.sol";
38
+ import {IProductService} from "../product/IProductService.sol";
39
+ import {IPolicyService} from "../product/IPolicyService.sol";
40
+ import {IBundleService} from "../pool/IBundleService.sol";
34
41
 
35
42
 
43
+ interface IInstance is
44
+ IRegisterable,
45
+ ITransferInterceptor,
46
+ IAccessManaged
47
+ {
48
+ error ErrorInstanceInstanceAdminZero();
49
+ error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
50
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
36
51
 
37
- interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
52
+ error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
53
+ error ErrorInstanceBundleManagerInstanceMismatch(address instance);
54
+ error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
38
55
 
39
- function getDistributionService() external view returns (IDistributionService);
40
- function getProductService() external view returns (IProductService);
41
- function getPoolService() external view returns (IPoolService);
42
- function getPolicyService() external view returns (IPolicyService);
43
- function getBundleService() external view returns (IBundleService);
56
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
44
57
 
45
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
46
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
47
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
58
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
59
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
48
60
 
49
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external;
50
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external;
51
- function updatePoolSetupState(NftId poolNftId, StateId newState) external;
61
+ struct InstanceInfo {
62
+ uint64 requestsCount;
63
+ }
52
64
 
53
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
54
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external;
55
- function updateBundleState(NftId bundleNftId, StateId newState) external;
65
+ function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
66
+ function grantRole(RoleId roleId, address account) external;
67
+ function revokeRole(RoleId roleId, address account) external;
56
68
 
57
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external;
58
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
59
- function updateProductSetupState(NftId productNftId, StateId newState) external;
69
+ function createTarget(address target, string memory name) external;
70
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
71
+ function setTargetLocked(address target, bool locked) external;
60
72
 
61
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
62
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
63
- function updateRiskState(RiskId riskId, StateId newState) external;
73
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
74
+ function setStakingRewardRate(UFixed rewardRate) external;
75
+ function refillStakingRewardReserves(Amount dipAmount) external;
64
76
 
65
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external;
66
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
67
- function updatePolicyState(NftId policyNftId, StateId newState) external;
77
+ /// @dev defunds the staking reward reserves for the specified target
78
+ /// permissioned: only the target owner may call this function
79
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
68
80
 
69
81
  function getMajorVersion() external pure returns (VersionPart majorVersion);
70
82
  function getInstanceReader() external view returns (InstanceReader);
71
83
  function getBundleManager() external view returns (BundleManager);
84
+ function getInstanceAdmin() external view returns (InstanceAdmin);
85
+ function getInstanceStore() external view returns (InstanceStore);
86
+ function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
72
87
  }
@@ -1,41 +1,97 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {ObjectType} from "../types/ObjectType.sol";
6
- import {RoleId} from "../types/RoleId.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleManager} from "./BundleManager.sol";
6
+ import {Instance} from "./Instance.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {UFixed} from "../type/UFixed.sol";
13
+ import {VersionPart} from "../type/Version.sol";
9
14
 
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
- import {IComponent} from "../components/IComponent.sol";
15
+ interface IInstanceService is IService {
12
16
 
13
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
14
- import {Instance} from "./Instance.sol";
15
- import {InstanceReader} from "./InstanceReader.sol";
16
- import {BundleManager} from "./BundleManager.sol";
17
+ // onlyInstance
18
+ error ErrorInstanceServiceNotRegistered(address instance);
19
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
20
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
17
21
 
18
- interface IInstanceService is IService {
22
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
23
+
24
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
25
+ error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
26
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleManagerAlreadySet();
28
+ error ErrorInstanceServiceInstanceAddressZero();
29
+
30
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
31
+ error ErrorInstanceServiceInstanceReaderAddressZero();
32
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
33
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
34
+
35
+ error ErrorInstanceServiceInstanceAdminZero();
36
+ error ErrorInstanceServiceInstanceReaderZero();
37
+ error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceInstanceStoreZero();
39
+
40
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
41
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
43
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
44
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
19
45
 
20
46
  error ErrorInstanceServiceRequestUnauhorized(address caller);
21
- error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
47
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
22
48
  error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
49
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
23
50
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
24
51
 
25
- event LogInstanceCloned(address clonedAccessManagerAddress, address clonedInstanceAddress, address clonedInstanceReaderAddress, NftId clonedInstanceNftId);
52
+ event LogInstanceCloned(
53
+ address clonedOzAccessManager,
54
+ address clonedInstanceAccessManager,
55
+ address clonedInstance,
56
+ address clonedInstanceStore,
57
+ address clonedBundleManager,
58
+ address clonedInstanceReader,
59
+ NftId clonedInstanceNftId
60
+ );
26
61
 
27
62
  function createInstanceClone()
28
63
  external
29
64
  returns (
30
- InstanceAccessManager clonedAccessManager,
65
+ // TODO check if Instance can be changed to IInstance
31
66
  Instance clonedInstance,
32
- NftId instanceNftId,
33
- InstanceReader clonedInstanceReader,
34
- BundleManager clonedBundleManager
67
+ NftId instanceNftId
35
68
  );
36
69
 
37
- function hasRole(address account, RoleId role, address instanceAddress) external returns (bool);
38
- function setTargetLocked(string memory targetName, bool locked) external;
39
70
 
40
- }
71
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
72
+ function setStakingRewardRate(UFixed rewardRate) external;
73
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
74
+
75
+ /// @dev defunds the staking reward reserves for the specified target
76
+ /// permissioned: only the target owner may call this function
77
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
78
+
79
+
80
+ function createComponentTarget(
81
+ NftId instanceNftId,
82
+ address targetAddress,
83
+ string memory targetName,
84
+ bytes4[][] memory selectors,
85
+ RoleId[] memory roles
86
+ ) external;
87
+
88
+ function createGifTarget(
89
+ NftId instanceNftId,
90
+ address targetAddress,
91
+ string memory targetName,
92
+ bytes4[][] memory selectors,
93
+ RoleId[] memory roles
94
+ ) external;
41
95
 
96
+ function setComponentLocked(bool locked) external;
97
+ }