@etherisc/gif-next 0.0.2-c336201-668 → 0.0.2-c37bcc5-708

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 (648) hide show
  1. package/README.md +250 -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 +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -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 +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -1509
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +417 -1641
  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 +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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/base/Cloneable.sol/Cloneable.json +190 -0
  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 +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  43. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  44. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  46. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  48. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  52. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  53. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  54. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
  56. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  58. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  60. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  62. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  64. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  66. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  68. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  70. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
  72. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  74. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  76. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  77. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  78. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  79. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  80. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  82. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  84. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  86. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  88. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  90. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +252 -230
  92. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  93. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  94. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  96. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  98. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  99. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  100. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  101. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +197 -174
  102. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  104. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  106. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  110. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  111. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  112. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  114. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  116. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  118. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  120. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  122. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  123. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  124. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  125. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  126. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  137. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -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 +1715 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  148. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  149. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  150. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  152. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  154. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  160. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  162. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  164. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  166. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  168. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -138
  170. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  172. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  173. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  174. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  176. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  178. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  179. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  180. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +158 -151
  182. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  184. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  185. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  186. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  188. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  190. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  192. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  194. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  195. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  196. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  197. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  198. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  200. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  202. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  204. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  205. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  208. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  210. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  214. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  215. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  216. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  218. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  219. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  233. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  245. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  264. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  266. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  268. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  270. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  272. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  274. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  276. package/contracts/distribution/Distribution.sol +261 -0
  277. package/contracts/distribution/DistributionService.sol +298 -0
  278. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  279. package/contracts/distribution/IDistributionComponent.sol +66 -0
  280. package/contracts/distribution/IDistributionService.sol +81 -0
  281. package/contracts/instance/BundleManager.sol +126 -0
  282. package/contracts/instance/IInstance.sol +74 -44
  283. package/contracts/instance/IInstanceService.sol +81 -0
  284. package/contracts/instance/Instance.sol +220 -52
  285. package/contracts/instance/InstanceAdmin.sol +331 -0
  286. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  287. package/contracts/instance/InstanceReader.sol +390 -0
  288. package/contracts/instance/InstanceService.sol +362 -0
  289. package/contracts/instance/InstanceServiceManager.sol +44 -0
  290. package/contracts/instance/InstanceStore.sol +281 -0
  291. package/contracts/instance/base/BalanceStore.sol +118 -0
  292. package/contracts/instance/base/Cloneable.sol +51 -0
  293. package/contracts/instance/base/ObjectCounter.sol +21 -0
  294. package/contracts/instance/base/ObjectManager.sol +82 -0
  295. package/contracts/instance/module/IAccess.sol +46 -0
  296. package/contracts/instance/module/IBundle.sol +20 -0
  297. package/contracts/instance/module/IComponents.sol +52 -0
  298. package/contracts/instance/module/IDistribution.sol +42 -0
  299. package/contracts/instance/module/IPolicy.sol +84 -0
  300. package/contracts/instance/module/IRisk.sol +11 -0
  301. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  302. package/contracts/oracle/IOracle.sol +20 -0
  303. package/contracts/oracle/IOracleComponent.sol +32 -0
  304. package/contracts/oracle/IOracleService.sol +65 -0
  305. package/contracts/oracle/Oracle.sol +145 -0
  306. package/contracts/oracle/OracleService.sol +277 -0
  307. package/contracts/oracle/OracleServiceManager.sol +42 -0
  308. package/contracts/pool/BundleService.sol +296 -0
  309. package/contracts/pool/BundleServiceManager.sol +42 -0
  310. package/contracts/pool/IBundleService.sol +106 -0
  311. package/contracts/pool/IPoolComponent.sol +112 -0
  312. package/contracts/pool/IPoolService.sol +150 -0
  313. package/contracts/pool/Pool.sol +299 -0
  314. package/contracts/pool/PoolService.sol +453 -0
  315. package/contracts/pool/PoolServiceManager.sol +42 -0
  316. package/contracts/product/ApplicationService.sol +254 -0
  317. package/contracts/product/ApplicationServiceManager.sol +38 -0
  318. package/contracts/product/ClaimService.sol +442 -0
  319. package/contracts/product/ClaimServiceManager.sol +38 -0
  320. package/contracts/product/IApplicationService.sol +62 -0
  321. package/contracts/product/IClaimService.sol +99 -0
  322. package/contracts/product/IPolicyService.sol +78 -0
  323. package/contracts/product/IPricingService.sol +39 -0
  324. package/contracts/product/IProductComponent.sol +42 -0
  325. package/contracts/product/IProductService.sol +33 -0
  326. package/contracts/product/PolicyService.sol +475 -0
  327. package/contracts/product/PolicyServiceManager.sol +42 -0
  328. package/contracts/product/PricingService.sol +301 -0
  329. package/contracts/product/PricingServiceManager.sol +42 -0
  330. package/contracts/product/Product.sol +377 -0
  331. package/contracts/product/ProductService.sol +124 -0
  332. package/contracts/product/ProductServiceManager.sol +42 -0
  333. package/contracts/registry/ChainNft.sol +95 -37
  334. package/contracts/registry/IRegistry.sol +95 -28
  335. package/contracts/registry/IRegistryService.sol +69 -0
  336. package/contracts/registry/ITransferInterceptor.sol +7 -0
  337. package/contracts/registry/Registry.sol +476 -281
  338. package/contracts/registry/RegistryAdmin.sol +237 -0
  339. package/contracts/registry/RegistryService.sol +266 -0
  340. package/contracts/registry/RegistryServiceManager.sol +58 -0
  341. package/contracts/registry/ReleaseManager.sol +600 -0
  342. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  343. package/contracts/registry/TokenRegistry.sol +315 -0
  344. package/contracts/shared/AccessManagerCustom.sol +736 -0
  345. package/contracts/shared/AccessManagerExtended.sol +470 -0
  346. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  347. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  348. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  349. package/contracts/shared/Component.sol +281 -0
  350. package/contracts/shared/ComponentService.sol +618 -0
  351. package/contracts/shared/ComponentServiceManager.sol +35 -0
  352. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  353. package/contracts/shared/ERC165.sol +15 -9
  354. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  355. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  356. package/contracts/shared/IComponent.sol +70 -0
  357. package/contracts/shared/IComponentService.sol +102 -0
  358. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  359. package/contracts/shared/IKeyValueStore.sol +53 -0
  360. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  361. package/contracts/shared/INftOwnable.sol +23 -0
  362. package/contracts/shared/IPolicyHolder.sol +45 -0
  363. package/contracts/shared/IRegisterable.sol +10 -19
  364. package/contracts/shared/IRegistryLinked.sol +11 -0
  365. package/contracts/shared/IService.sol +18 -0
  366. package/contracts/shared/IVersionable.sol +38 -37
  367. package/contracts/shared/InitializableCustom.sol +177 -0
  368. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  369. package/contracts/shared/KeyValueStore.sol +127 -0
  370. package/contracts/shared/Lifecycle.sol +130 -0
  371. package/contracts/shared/NftIdSetManager.sol +65 -0
  372. package/contracts/shared/NftOwnable.sol +107 -0
  373. package/contracts/shared/PolicyHolder.sol +102 -0
  374. package/contracts/shared/ProxyManager.sol +199 -0
  375. package/contracts/shared/Registerable.sol +54 -65
  376. package/contracts/shared/RegistryLinked.sol +43 -0
  377. package/contracts/shared/Service.sol +77 -0
  378. package/contracts/shared/TokenHandler.sol +58 -0
  379. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  380. package/contracts/shared/Versionable.sol +38 -68
  381. package/contracts/staking/IStaking.sol +168 -0
  382. package/contracts/staking/IStakingService.sol +149 -0
  383. package/contracts/staking/StakeManagerLib.sol +179 -0
  384. package/contracts/staking/Staking.sol +551 -0
  385. package/contracts/staking/StakingManager.sol +54 -0
  386. package/contracts/staking/StakingReader.sol +187 -0
  387. package/contracts/staking/StakingService.sol +406 -0
  388. package/contracts/staking/StakingServiceManager.sol +45 -0
  389. package/contracts/staking/StakingStore.sol +572 -0
  390. package/contracts/staking/TargetManagerLib.sol +207 -0
  391. package/contracts/{types → type}/AddressSet.sol +1 -1
  392. package/contracts/type/Amount.sol +128 -0
  393. package/contracts/{types → type}/Blocknumber.sol +21 -3
  394. package/contracts/type/ClaimId.sol +75 -0
  395. package/contracts/type/DistributorType.sol +55 -0
  396. package/contracts/type/Fee.sol +66 -0
  397. package/contracts/{types → type}/Key32.sol +8 -3
  398. package/contracts/{types → type}/NftId.sol +21 -15
  399. package/contracts/type/NftIdSet.sol +62 -0
  400. package/contracts/{types → type}/ObjectType.sol +73 -20
  401. package/contracts/type/PayoutId.sol +82 -0
  402. package/contracts/type/Referral.sol +89 -0
  403. package/contracts/type/RequestId.sol +75 -0
  404. package/contracts/type/RiskId.sol +43 -0
  405. package/contracts/type/RoleId.sol +146 -0
  406. package/contracts/type/Seconds.sol +81 -0
  407. package/contracts/{types → type}/StateId.sol +39 -5
  408. package/contracts/{types → type}/Timestamp.sol +27 -14
  409. package/contracts/{types → type}/UFixed.sol +129 -12
  410. package/contracts/{types → type}/Version.sol +15 -2
  411. package/package.json +9 -7
  412. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  413. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  414. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  415. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  416. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  417. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  418. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  419. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  420. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  421. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  422. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  423. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  425. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  427. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  429. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  431. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  433. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  435. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  437. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  439. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  441. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  443. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  445. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  447. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  449. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  451. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  453. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  455. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  457. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  458. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  459. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  460. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  461. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  462. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  463. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  464. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  467. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  470. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  472. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  475. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  477. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  479. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  480. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  482. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  484. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  485. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  486. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  487. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  488. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  489. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  491. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  492. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  493. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  495. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  497. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  499. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  500. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  501. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  502. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  503. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  504. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  505. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  506. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  507. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  508. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  509. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  511. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  513. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  515. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  517. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  519. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  521. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  523. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  526. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  529. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  531. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  532. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  533. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  534. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  535. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  537. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  539. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  540. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  541. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  542. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  543. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  544. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  545. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  546. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  547. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  548. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  549. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  550. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  551. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  552. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  553. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  554. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  555. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  556. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  558. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  561. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  562. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  563. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  565. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  566. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  567. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  569. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  571. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  574. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  577. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  579. package/contracts/components/BaseComponent.sol +0 -88
  580. package/contracts/components/IBaseComponent.sol +0 -19
  581. package/contracts/components/IPoolComponent.sol +0 -57
  582. package/contracts/components/IProductComponent.sol +0 -19
  583. package/contracts/components/Pool.sol +0 -174
  584. package/contracts/components/Product.sol +0 -117
  585. package/contracts/experiment/errors/Require.sol +0 -38
  586. package/contracts/experiment/errors/Revert.sol +0 -44
  587. package/contracts/experiment/inheritance/A.sol +0 -53
  588. package/contracts/experiment/inheritance/B.sol +0 -28
  589. package/contracts/experiment/inheritance/C.sol +0 -34
  590. package/contracts/experiment/inheritance/IA.sol +0 -13
  591. package/contracts/experiment/inheritance/IB.sol +0 -10
  592. package/contracts/experiment/inheritance/IC.sol +0 -12
  593. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  594. package/contracts/experiment/statemachine/ISM.sol +0 -25
  595. package/contracts/experiment/statemachine/README.md +0 -112
  596. package/contracts/experiment/statemachine/SM.sol +0 -57
  597. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  598. package/contracts/experiment/types/TypeA.sol +0 -47
  599. package/contracts/experiment/types/TypeB.sol +0 -29
  600. package/contracts/instance/IInstanceLinked.sol +0 -8
  601. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  602. package/contracts/instance/base/IInstanceBase.sol +0 -14
  603. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  604. package/contracts/instance/base/IService.sol +0 -15
  605. package/contracts/instance/base/InstanceBase.sol +0 -80
  606. package/contracts/instance/base/KeyValueStore.sol +0 -156
  607. package/contracts/instance/base/Lifecycle.sol +0 -95
  608. package/contracts/instance/base/ModuleBase.sol +0 -52
  609. package/contracts/instance/base/ServiceBase.sol +0 -37
  610. package/contracts/instance/module/access/Access.sol +0 -149
  611. package/contracts/instance/module/access/IAccess.sol +0 -53
  612. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  613. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  614. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  615. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  616. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  617. package/contracts/instance/module/component/IComponent.sol +0 -53
  618. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  619. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  620. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  621. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  622. package/contracts/instance/module/risk/IRisk.sol +0 -10
  623. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  624. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  625. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  626. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  627. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  628. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  629. package/contracts/instance/service/IPoolService.sol +0 -30
  630. package/contracts/instance/service/IProductService.sol +0 -58
  631. package/contracts/instance/service/PoolService.sol +0 -123
  632. package/contracts/instance/service/ProductService.sol +0 -354
  633. package/contracts/registry/IChainNft.sol +0 -21
  634. package/contracts/registry/IRegistryLinked.sol +0 -8
  635. package/contracts/shared/IOwnable.sol +0 -6
  636. package/contracts/test/TestFee.sol +0 -25
  637. package/contracts/test/TestPool.sol +0 -22
  638. package/contracts/test/TestProduct.sol +0 -44
  639. package/contracts/test/TestRegisterable.sol +0 -19
  640. package/contracts/test/TestRoleId.sol +0 -14
  641. package/contracts/test/TestService.sol +0 -32
  642. package/contracts/test/TestToken.sol +0 -26
  643. package/contracts/test/TestVersion.sol +0 -44
  644. package/contracts/test/TestVersionable.sol +0 -17
  645. package/contracts/types/ChainId.sol +0 -38
  646. package/contracts/types/Fee.sol +0 -51
  647. package/contracts/types/NftIdSet.sol +0 -60
  648. package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,362 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
+ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
+
7
+ import {BundleManager} from "./BundleManager.sol";
8
+ import {ChainNft} from "../registry/ChainNft.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {SecondsLib} from "../type/Seconds.sol";
12
+ import {UFixedLib} from "../type/UFixed.sol";
13
+ import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
14
+ import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
15
+
16
+ import {Service} from "../shared/Service.sol";
17
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
18
+ import {IService} from "../shared/IService.sol";
19
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
20
+
21
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
22
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
23
+ import {IProductComponent} from "../product/IProductComponent.sol";
24
+
25
+ import {IRegistry} from "../registry/IRegistry.sol";
26
+ import {IRegistryService} from "../registry/IRegistryService.sol";
27
+ import {IStakingService} from "../staking/IStakingService.sol";
28
+ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
29
+
30
+ import {Instance} from "./Instance.sol";
31
+ import {IInstance} from "./IInstance.sol";
32
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
33
+ import {IInstanceService} from "./IInstanceService.sol";
34
+ import {InstanceReader} from "./InstanceReader.sol";
35
+ import {InstanceStore} from "./InstanceStore.sol";
36
+ import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
37
+
38
+ contract InstanceService is
39
+ Service,
40
+ IInstanceService
41
+ {
42
+
43
+ // TODO update to real hash when instance is stable
44
+ bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
45
+
46
+ IRegistryService internal _registryService;
47
+ IStakingService internal _stakingService;
48
+
49
+ address internal _masterAccessManager;
50
+ address internal _masterInstanceAdmin;
51
+ address internal _masterInstance;
52
+ address internal _masterInstanceReader;
53
+ address internal _masterInstanceBundleManager;
54
+ address internal _masterInstanceStore;
55
+
56
+ modifier onlyInstanceOwner(NftId instanceNftId) {
57
+ if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
58
+ revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
59
+ }
60
+ _;
61
+ }
62
+
63
+ // TODO check component - service - instance version match
64
+ modifier onlyComponent() {
65
+ if (! getRegistry().isRegisteredComponent(msg.sender)) {
66
+ revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
67
+ }
68
+ _;
69
+ }
70
+
71
+ function createInstanceClone()
72
+ external
73
+ returns (
74
+ Instance clonedInstance,
75
+ NftId clonedInstanceNftId
76
+ )
77
+ {
78
+ address instanceOwner = msg.sender;
79
+ AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
80
+ Clones.clone(_masterAccessManager));
81
+
82
+ // initially grants ADMIN_ROLE to this (being the instance service).
83
+ // This will allow the instance service to bootstrap the authorizations of the instance.
84
+ // Instance service will renounce ADMIN_ROLE when bootstraping is finished
85
+ clonedAccessManager.initialize(address(this));
86
+
87
+ clonedInstance = Instance(Clones.clone(_masterInstance));
88
+ clonedInstance.initialize(
89
+ address(clonedAccessManager),
90
+ address(getRegistry()),
91
+ instanceOwner);
92
+ // initialize and set before instance reader
93
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
94
+ clonedInstanceStore.initialize(address(clonedInstance));
95
+ clonedInstance.setInstanceStore(clonedInstanceStore);
96
+
97
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
98
+ clonedInstanceReader.initialize(address(clonedInstance));
99
+ clonedInstance.setInstanceReader(clonedInstanceReader);
100
+
101
+ BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
102
+ clonedBundleManager.initialize(address(clonedInstance));
103
+ clonedInstance.setBundleManager(clonedBundleManager);
104
+
105
+ InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
106
+ clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
107
+ clonedInstanceAdmin.initialize(address(clonedInstance));
108
+ clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
109
+
110
+ // TODO amend setters with instance specific , policy manager ...
111
+
112
+ // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
113
+ InstanceAuthorizationsLib.grantInitialAuthorizations(
114
+ clonedAccessManager,
115
+ clonedInstanceAdmin,
116
+ clonedInstance,
117
+ clonedBundleManager,
118
+ clonedInstanceStore,
119
+ instanceOwner,
120
+ getRegistry(),
121
+ getVersion().toMajorPart());
122
+
123
+ clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
124
+
125
+ // register new instance with registry
126
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
127
+ clonedInstanceNftId = info.nftId;
128
+
129
+ // create corresponding staking target
130
+ _stakingService.createInstanceTarget(
131
+ clonedInstanceNftId,
132
+ TargetManagerLib.getDefaultLockingPeriod(),
133
+ TargetManagerLib.getDefaultRewardRate());
134
+
135
+ emit LogInstanceCloned(
136
+ address(clonedAccessManager),
137
+ address(clonedInstanceAdmin),
138
+ address(clonedInstance),
139
+ address(clonedInstanceStore),
140
+ address(clonedBundleManager),
141
+ address(clonedInstanceReader),
142
+ clonedInstanceNftId);
143
+ }
144
+
145
+ function setComponentLocked(bool locked)
146
+ external
147
+ virtual
148
+ onlyComponent()
149
+ {
150
+ // checks
151
+ address componentAddress = msg.sender;
152
+
153
+ if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
154
+ revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
155
+ }
156
+
157
+ IRegistry registry = getRegistry();
158
+ NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
159
+
160
+ IInstance instance = IInstance(
161
+ registry.getObjectInfo(
162
+ instanceNftId).objectAddress);
163
+
164
+ // no revert in case already locked
165
+ instance.getInstanceAdmin().setTargetLockedByService(
166
+ componentAddress,
167
+ locked);
168
+ }
169
+
170
+
171
+ function getMasterInstanceReader() external view returns (address) {
172
+ return _masterInstanceReader;
173
+ }
174
+
175
+ // From IService
176
+ function getDomain() public pure override returns(ObjectType) {
177
+ return INSTANCE();
178
+ }
179
+
180
+ function setAndRegisterMasterInstance(address instanceAddress)
181
+ external
182
+ onlyOwner
183
+ returns(NftId masterInstanceNftId)
184
+ {
185
+ if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
186
+ if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
187
+ if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
188
+ if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
189
+
190
+ if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
191
+
192
+ IInstance instance = IInstance(instanceAddress);
193
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
194
+ address instanceAdminAddress = address(instanceAdmin);
195
+ InstanceReader instanceReader = instance.getInstanceReader();
196
+ address instanceReaderAddress = address(instanceReader);
197
+ BundleManager bundleManager = instance.getBundleManager();
198
+ address bundleManagerAddress = address(bundleManager);
199
+ InstanceStore instanceStore = instance.getInstanceStore();
200
+ address instanceStoreAddress = address(instanceStore);
201
+
202
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
203
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
204
+ if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
205
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
206
+
207
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
208
+ if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
209
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
210
+ if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
211
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
212
+
213
+ _masterAccessManager = instance.authority();
214
+ _masterInstanceAdmin = instanceAdminAddress;
215
+ _masterInstance = instanceAddress;
216
+ _masterInstanceReader = instanceReaderAddress;
217
+ _masterInstanceBundleManager = bundleManagerAddress;
218
+ _masterInstanceStore = instanceStoreAddress;
219
+
220
+ IInstance masterInstance = IInstance(_masterInstance);
221
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
222
+ masterInstanceNftId = info.nftId;
223
+ }
224
+
225
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
226
+ if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
227
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
228
+ if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
229
+
230
+ InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
231
+ if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
232
+
233
+ _masterInstanceReader = instanceReaderAddress;
234
+ }
235
+
236
+ function upgradeInstanceReader(NftId instanceNftId)
237
+ external
238
+ onlyInstanceOwner(instanceNftId)
239
+ {
240
+ IRegistry registry = getRegistry();
241
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
242
+ Instance instance = Instance(instanceInfo.objectAddress);
243
+
244
+ InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
245
+ upgradedInstanceReaderClone.initialize(address(instance));
246
+ instance.setInstanceReader(upgradedInstanceReaderClone);
247
+ }
248
+
249
+
250
+ function createGifTarget(
251
+ NftId instanceNftId,
252
+ address targetAddress,
253
+ string memory targetName,
254
+ bytes4[][] memory selectors,
255
+ RoleId[] memory roles
256
+ )
257
+ external
258
+ virtual
259
+ restricted()
260
+ {
261
+ _createGifTarget(
262
+ instanceNftId,
263
+ targetAddress,
264
+ targetName,
265
+ roles,
266
+ selectors
267
+ );
268
+ }
269
+
270
+
271
+ function createComponentTarget(
272
+ NftId instanceNftId,
273
+ address targetAddress,
274
+ string memory targetName,
275
+ bytes4[][] memory selectors,
276
+ RoleId[] memory roles
277
+ )
278
+ external
279
+ virtual
280
+ restricted()
281
+ {
282
+ _createGifTarget(
283
+ instanceNftId,
284
+ targetAddress,
285
+ targetName,
286
+ roles,
287
+ selectors
288
+ );
289
+ }
290
+
291
+
292
+ /// all gif targets MUST be children of instanceNftId
293
+ function _createGifTarget(
294
+ NftId instanceNftId,
295
+ address targetAddress,
296
+ string memory targetName,
297
+ RoleId[] memory roles,
298
+ bytes4[][] memory selectors
299
+ )
300
+ internal
301
+ virtual
302
+ {
303
+ // TODO instanceAdmin will check target instance match anyway
304
+ (
305
+ IInstance instance, // or instanceInfo
306
+ // or targetInfo
307
+ ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
308
+
309
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
310
+ instanceAdmin.createGifTarget(targetAddress, targetName);
311
+ // set proposed target config
312
+ // TODO restriction: gif targets are set only once and only here?
313
+ // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
314
+ for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
315
+ instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
316
+ }
317
+ }
318
+
319
+ /// @dev top level initializer
320
+ function _initialize(
321
+ address owner,
322
+ bytes memory data
323
+ )
324
+ internal
325
+ initializer
326
+ virtual override
327
+ {
328
+ (
329
+ address registryAddress,,
330
+ //address managerAddress
331
+ address authority
332
+ ) = abi.decode(data, (address, address, address));
333
+
334
+ initializeService(registryAddress, authority, owner);
335
+
336
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
337
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
338
+
339
+ registerInterface(type(IInstanceService).interfaceId);
340
+ }
341
+
342
+
343
+ function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
344
+ internal
345
+ view
346
+ returns (IInstance instance, NftId componentNftId)
347
+ {
348
+ IRegistry registry = getRegistry();
349
+ IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
350
+ if(instanceInfo.objectType != INSTANCE()) {
351
+ revert ErrorInstanceServiceNotInstance(instanceNftId);
352
+ }
353
+
354
+ IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
355
+ if(componentInfo.parentNftId != instanceNftId) {
356
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
357
+ }
358
+
359
+ instance = Instance(instanceInfo.objectAddress);
360
+ componentNftId = componentInfo.nftId;
361
+ }
362
+ }
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Instance} from "./Instance.sol";
5
+ import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {ProxyManager} from "../shared/ProxyManager.sol";
7
+ import {InstanceService} from "./InstanceService.sol";
8
+ import {Registry} from "../registry/Registry.sol";
9
+ import {RegistryService} from "../registry/RegistryService.sol";
10
+ import {REGISTRY} from "../type/ObjectType.sol";
11
+
12
+ contract InstanceServiceManager is ProxyManager {
13
+
14
+ InstanceService private _instanceService;
15
+
16
+ /// @dev initializes proxy manager with instance service implementation
17
+ constructor(
18
+ address authority,
19
+ address registryAddress,
20
+ bytes32 salt
21
+ )
22
+ ProxyManager(registryAddress)
23
+ {
24
+ InstanceService instSrv = new InstanceService{salt: salt}();
25
+ // bytes memory initCode = type(InstanceService).creationCode;
26
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
27
+ IVersionable versionable = deployDetermenistic(
28
+ address(instSrv),
29
+ data,
30
+ salt);
31
+
32
+ _instanceService = InstanceService(address(versionable));
33
+ }
34
+
35
+ //--- view functions ----------------------------------------------------//
36
+ function getInstanceService()
37
+ external
38
+ view
39
+ returns (InstanceService instanceService)
40
+ {
41
+ return _instanceService;
42
+ }
43
+
44
+ }
@@ -0,0 +1,281 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
+ import {RequestId} from "../type/RequestId.sol";
12
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
13
+ import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
14
+ import {StateId, ACTIVE} from "../type/StateId.sol";
15
+ import {TimestampLib} from "../type/Timestamp.sol";
16
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
17
+ import {ReferralId} from "../type/Referral.sol";
18
+ import {DistributorType} from "../type/DistributorType.sol";
19
+ import {PayoutId} from "../type/PayoutId.sol";
20
+
21
+ import {BalanceStore} from "./base/BalanceStore.sol";
22
+ import {IInstance} from "./IInstance.sol";
23
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
24
+ import {IKeyValueStore} from "../shared/KeyValueStore.sol";
25
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
26
+
27
+ import {IBundle} from "./module/IBundle.sol";
28
+ import {IComponents} from "./module/IComponents.sol";
29
+ import {IDistribution} from "./module/IDistribution.sol";
30
+ import {IPolicy} from "./module/IPolicy.sol";
31
+ import {IOracle} from "../oracle/IOracle.sol";
32
+ import {IRisk} from "./module/IRisk.sol";
33
+
34
+
35
+ contract InstanceStore is
36
+ AccessManagedUpgradeable,
37
+ BalanceStore,
38
+ KeyValueStore,
39
+ ObjectCounter
40
+ {
41
+ function initialize(address instance)
42
+ public
43
+ initializer()
44
+ {
45
+ address authority = IInstance(instance).authority();
46
+ __AccessManaged_init(authority);
47
+
48
+ initializeLifecycle();
49
+ }
50
+
51
+ //--- Component ---------------------------------------------------------//
52
+
53
+ function createComponent(
54
+ NftId componentNftId,
55
+ IComponents.ComponentInfo memory componentInfo
56
+ )
57
+ external
58
+ restricted()
59
+ {
60
+ _registerBalanceTarget(componentNftId);
61
+ _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
62
+ }
63
+
64
+ function updateComponent(
65
+ NftId componentNftId,
66
+ IComponents.ComponentInfo memory componentInfo,
67
+ StateId newState
68
+ )
69
+ external
70
+ restricted()
71
+ {
72
+ _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
73
+ }
74
+
75
+ //--- Product -----------------------------------------------------------//
76
+
77
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
78
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
79
+ }
80
+
81
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
82
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
83
+ }
84
+
85
+ function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
86
+ _updateState(_toNftKey32(productNftId, PRODUCT()), newState);
87
+ }
88
+
89
+ //--- Pool --------------------------------------------------------------//
90
+
91
+ function createPool(
92
+ NftId poolNftId,
93
+ IComponents.PoolInfo memory info
94
+ )
95
+ external
96
+ restricted()
97
+ {
98
+ _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
99
+ }
100
+
101
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
102
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
103
+ }
104
+
105
+ function updatePoolState(NftId poolNftId, StateId newState) external restricted() {
106
+ _updateState(_toNftKey32(poolNftId, POOL()), newState);
107
+ }
108
+
109
+ //--- DistributorType ---------------------------------------------------//
110
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
111
+ _create(distributorType.toKey32(), abi.encode(info));
112
+ }
113
+
114
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
115
+ _update(distributorType.toKey32(), abi.encode(info), newState);
116
+ }
117
+
118
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
119
+ _updateState(distributorType.toKey32(), newState);
120
+ }
121
+
122
+ //--- Distributor -------------------------------------------------------//
123
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
124
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
125
+ }
126
+
127
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
128
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
129
+ }
130
+
131
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
132
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
133
+ }
134
+
135
+ //--- Referral ----------------------------------------------------------//
136
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
137
+ _create(referralId.toKey32(), abi.encode(referralInfo));
138
+ }
139
+
140
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
141
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
142
+ }
143
+
144
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
145
+ _updateState(referralId.toKey32(), newState);
146
+ }
147
+
148
+ //--- Bundle ------------------------------------------------------------//
149
+ function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
150
+ _registerBalanceTarget(bundleNftId);
151
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
152
+ }
153
+
154
+ function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
155
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
156
+ }
157
+
158
+ function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
159
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
160
+ }
161
+
162
+ //--- Risk --------------------------------------------------------------//
163
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
164
+ _create(riskId.toKey32(), abi.encode(risk));
165
+ }
166
+
167
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
168
+ _update(riskId.toKey32(), abi.encode(risk), newState);
169
+ }
170
+
171
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
172
+ _updateState(riskId.toKey32(), newState);
173
+ }
174
+
175
+ //--- Application (Policy) ----------------------------------------------//
176
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
177
+ _registerBalanceTarget(applicationNftId);
178
+ _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
179
+ }
180
+
181
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
182
+ _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
183
+ }
184
+
185
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
186
+ _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
187
+ }
188
+
189
+ //--- Policy ------------------------------------------------------------//
190
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
191
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
192
+ }
193
+
194
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
195
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
196
+ }
197
+
198
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
199
+ _updateState(_toNftKey32(policyNftId, POLICY()), newState);
200
+ }
201
+
202
+ //--- Claim -------------------------------------------------------------//
203
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
204
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
205
+ }
206
+
207
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
208
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
209
+ }
210
+
211
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
212
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
213
+ }
214
+
215
+ //--- Payout ------------------------------------------------------------//
216
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
217
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
218
+ }
219
+
220
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
221
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
222
+ }
223
+
224
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
225
+ _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
226
+ }
227
+
228
+ //--- Request -----------------------------------------------------------//
229
+
230
+ function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
231
+ requestId = _createNextRequestId();
232
+ _create(requestId.toKey32(), abi.encode(request));
233
+ }
234
+
235
+ function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
236
+ _update(requestId.toKey32(), abi.encode(request), newState);
237
+ }
238
+
239
+ function updateRequestState(RequestId requestId, StateId newState) external restricted() {
240
+ _updateState(requestId.toKey32(), newState);
241
+ }
242
+
243
+ //--- balance and fee management functions ------------------------------//
244
+
245
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
246
+ return _increaseBalance(targetNftId, amount);
247
+ }
248
+
249
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
250
+ return _decreaseBalance(targetNftId, amount);
251
+ }
252
+
253
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
254
+ return _increaseFees(targetNftId, amount);
255
+ }
256
+
257
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
258
+ return _decreaseFees(targetNftId, amount);
259
+ }
260
+
261
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
262
+ return _increaseLocked(targetNftId, amount);
263
+ }
264
+
265
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
266
+ return _decreaseLocked(targetNftId, amount);
267
+ }
268
+
269
+ //--- internal view/pure functions --------------------------------------//
270
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
271
+ return nftId.toKey32(objectType);
272
+ }
273
+
274
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
275
+ return claimId.toKey32(policyNftId);
276
+ }
277
+
278
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
279
+ return payoutId.toKey32(policyNftId);
280
+ }
281
+ }