@etherisc/gif-next 0.0.2-d408403-475 → 0.0.2-d442a8c-073

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 (641) hide show
  1. package/README.md +239 -39
  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 +304 -1639
  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 +469 -1882
  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 +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1565 -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 +3458 -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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +376 -316
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → product/IProductService.sol/IProductService.json} +188 -177
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  112. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  133. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  134. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  136. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  138. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  140. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  142. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  144. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  146. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  148. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  150. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  152. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  154. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  158. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +66 -52
  160. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  164. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  166. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IService.sol/IService.json} +162 -154
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  170. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  171. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  174. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  176. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  178. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  180. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  182. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  184. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  191. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  194. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  200. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  201. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  202. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  204. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  205. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  218. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  219. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  220. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  221. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  222. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  224. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  226. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  228. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  230. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  232. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  234. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  236. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  238. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  240. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  242. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  244. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  248. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  250. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  256. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  258. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  260. package/contracts/distribution/Distribution.sol +261 -0
  261. package/contracts/distribution/DistributionService.sol +298 -0
  262. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  263. package/contracts/distribution/IDistributionComponent.sol +66 -0
  264. package/contracts/distribution/IDistributionService.sol +81 -0
  265. package/contracts/instance/BundleManager.sol +126 -0
  266. package/contracts/instance/IInstance.sol +72 -46
  267. package/contracts/instance/IInstanceService.sol +81 -0
  268. package/contracts/instance/Instance.sol +220 -59
  269. package/contracts/instance/InstanceAdmin.sol +331 -0
  270. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  271. package/contracts/instance/InstanceReader.sol +365 -0
  272. package/contracts/instance/InstanceService.sol +362 -0
  273. package/contracts/instance/InstanceServiceManager.sol +44 -0
  274. package/contracts/instance/InstanceStore.sol +260 -0
  275. package/contracts/instance/base/BalanceStore.sol +118 -0
  276. package/contracts/instance/base/Cloneable.sol +51 -0
  277. package/contracts/instance/base/ObjectManager.sol +82 -0
  278. package/contracts/instance/module/IAccess.sol +46 -0
  279. package/contracts/instance/module/IBundle.sol +20 -0
  280. package/contracts/instance/module/IComponents.sol +52 -0
  281. package/contracts/instance/module/IDistribution.sol +42 -0
  282. package/contracts/instance/module/IPolicy.sol +84 -0
  283. package/contracts/instance/module/IRisk.sol +11 -0
  284. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  285. package/contracts/pool/BundleService.sol +296 -0
  286. package/contracts/pool/BundleServiceManager.sol +42 -0
  287. package/contracts/pool/IBundleService.sol +106 -0
  288. package/contracts/pool/IPoolComponent.sol +112 -0
  289. package/contracts/pool/IPoolService.sol +150 -0
  290. package/contracts/pool/Pool.sol +299 -0
  291. package/contracts/pool/PoolService.sol +453 -0
  292. package/contracts/pool/PoolServiceManager.sol +42 -0
  293. package/contracts/product/ApplicationService.sol +254 -0
  294. package/contracts/product/ApplicationServiceManager.sol +38 -0
  295. package/contracts/product/ClaimService.sol +442 -0
  296. package/contracts/product/ClaimServiceManager.sol +38 -0
  297. package/contracts/product/IApplicationService.sol +62 -0
  298. package/contracts/product/IClaimService.sol +93 -0
  299. package/contracts/product/IPolicyService.sol +78 -0
  300. package/contracts/product/IPricingService.sol +39 -0
  301. package/contracts/product/IProductComponent.sol +42 -0
  302. package/contracts/product/IProductService.sol +33 -0
  303. package/contracts/product/PolicyService.sol +475 -0
  304. package/contracts/product/PolicyServiceManager.sol +42 -0
  305. package/contracts/product/PricingService.sol +301 -0
  306. package/contracts/product/PricingServiceManager.sol +42 -0
  307. package/contracts/product/Product.sol +377 -0
  308. package/contracts/product/ProductService.sol +124 -0
  309. package/contracts/product/ProductServiceManager.sol +42 -0
  310. package/contracts/registry/ChainNft.sol +95 -37
  311. package/contracts/registry/IRegistry.sol +95 -28
  312. package/contracts/registry/IRegistryService.sol +69 -0
  313. package/contracts/registry/ITransferInterceptor.sol +7 -0
  314. package/contracts/registry/Registry.sol +476 -282
  315. package/contracts/registry/RegistryAdmin.sol +237 -0
  316. package/contracts/registry/RegistryService.sol +266 -0
  317. package/contracts/registry/RegistryServiceManager.sol +58 -0
  318. package/contracts/registry/ReleaseManager.sol +599 -0
  319. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  320. package/contracts/registry/TokenRegistry.sol +315 -0
  321. package/contracts/shared/AccessManagerCustom.sol +736 -0
  322. package/contracts/shared/AccessManagerExtended.sol +470 -0
  323. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  324. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  325. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  326. package/contracts/shared/Component.sol +278 -0
  327. package/contracts/shared/ComponentService.sol +596 -0
  328. package/contracts/shared/ComponentServiceManager.sol +35 -0
  329. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  330. package/contracts/shared/ERC165.sol +15 -9
  331. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  332. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  333. package/contracts/shared/IComponent.sol +70 -0
  334. package/contracts/shared/IComponentService.sol +91 -0
  335. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  336. package/contracts/shared/IKeyValueStore.sol +53 -0
  337. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  338. package/contracts/shared/INftOwnable.sol +23 -0
  339. package/contracts/shared/IPolicyHolder.sol +45 -0
  340. package/contracts/shared/IRegisterable.sol +10 -19
  341. package/contracts/shared/IRegistryLinked.sol +11 -0
  342. package/contracts/shared/IService.sol +18 -0
  343. package/contracts/shared/IVersionable.sol +38 -37
  344. package/contracts/shared/InitializableCustom.sol +177 -0
  345. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  346. package/contracts/shared/KeyValueStore.sol +127 -0
  347. package/contracts/{instance/base → shared}/Lifecycle.sol +29 -8
  348. package/contracts/shared/NftIdSetManager.sol +65 -0
  349. package/contracts/shared/NftOwnable.sol +107 -0
  350. package/contracts/shared/PolicyHolder.sol +102 -0
  351. package/contracts/shared/ProxyManager.sol +199 -0
  352. package/contracts/shared/Registerable.sol +54 -65
  353. package/contracts/shared/RegistryLinked.sol +43 -0
  354. package/contracts/shared/Service.sol +77 -0
  355. package/contracts/shared/TokenHandler.sol +58 -0
  356. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  357. package/contracts/shared/Versionable.sol +38 -68
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +149 -0
  360. package/contracts/staking/StakeManagerLib.sol +179 -0
  361. package/contracts/staking/Staking.sol +551 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +406 -0
  365. package/contracts/staking/StakingServiceManager.sol +45 -0
  366. package/contracts/staking/StakingStore.sol +572 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/{types → type}/AddressSet.sol +1 -1
  369. package/contracts/type/Amount.sol +128 -0
  370. package/contracts/{types → type}/Blocknumber.sol +21 -3
  371. package/contracts/type/ClaimId.sol +75 -0
  372. package/contracts/type/DistributorType.sol +55 -0
  373. package/contracts/type/Fee.sol +66 -0
  374. package/contracts/{types → type}/Key32.sol +8 -3
  375. package/contracts/{types → type}/NftId.sol +21 -15
  376. package/contracts/type/NftIdSet.sol +62 -0
  377. package/contracts/{types → type}/ObjectType.sol +53 -15
  378. package/contracts/type/PayoutId.sol +82 -0
  379. package/contracts/type/Referral.sol +89 -0
  380. package/contracts/{types → type}/RiskId.sol +1 -1
  381. package/contracts/type/RoleId.sol +143 -0
  382. package/contracts/type/Seconds.sol +81 -0
  383. package/contracts/{types → type}/StateId.sol +29 -7
  384. package/contracts/{types → type}/Timestamp.sol +22 -13
  385. package/contracts/{types → type}/UFixed.sol +129 -12
  386. package/contracts/{types → type}/Version.sol +15 -2
  387. package/package.json +6 -5
  388. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  389. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  390. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  391. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -405
  392. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  393. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
  394. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  395. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -340
  396. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  397. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -487
  398. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  399. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -370
  400. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  401. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -578
  402. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  403. package/artifacts/contracts/components/Product.sol/Product.json +0 -444
  404. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  405. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  406. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  408. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  410. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  412. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  414. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  416. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  418. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  420. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  422. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  424. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  426. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  428. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  430. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  432. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  434. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  436. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  438. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  439. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  440. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  441. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  442. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  443. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  444. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  445. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  446. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  447. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  448. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  449. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  450. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  451. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  452. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  453. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  454. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  455. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  456. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  457. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  458. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  459. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  460. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  461. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  462. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  463. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  464. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  466. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  467. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  468. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  469. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  470. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  471. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  474. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  475. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  477. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  478. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  479. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  480. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  481. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  482. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  483. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  484. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  486. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  487. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  488. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  489. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  491. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  492. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  493. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  494. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  495. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  497. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  499. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  500. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  501. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -531
  503. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -420
  505. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
  507. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -440
  510. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  511. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -543
  513. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -858
  515. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  516. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  517. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  518. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  519. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  521. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  523. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  525. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  527. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  529. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  531. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  533. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  535. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  537. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  538. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  539. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  540. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  541. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  542. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  544. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  547. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  548. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  549. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  551. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  552. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  553. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  556. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  559. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  562. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  565. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  567. package/contracts/components/BaseComponent.sol +0 -94
  568. package/contracts/components/Distribution.sol +0 -132
  569. package/contracts/components/IBaseComponent.sol +0 -19
  570. package/contracts/components/IDistributionComponent.sol +0 -48
  571. package/contracts/components/IPoolComponent.sol +0 -71
  572. package/contracts/components/IProductComponent.sol +0 -38
  573. package/contracts/components/Pool.sol +0 -235
  574. package/contracts/components/Product.sol +0 -227
  575. package/contracts/experiment/errors/Require.sol +0 -38
  576. package/contracts/experiment/errors/Revert.sol +0 -44
  577. package/contracts/experiment/inheritance/A.sol +0 -53
  578. package/contracts/experiment/inheritance/B.sol +0 -28
  579. package/contracts/experiment/inheritance/C.sol +0 -34
  580. package/contracts/experiment/inheritance/IA.sol +0 -13
  581. package/contracts/experiment/inheritance/IB.sol +0 -10
  582. package/contracts/experiment/inheritance/IC.sol +0 -12
  583. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  584. package/contracts/experiment/statemachine/ISM.sol +0 -25
  585. package/contracts/experiment/statemachine/README.md +0 -112
  586. package/contracts/experiment/statemachine/SM.sol +0 -57
  587. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  588. package/contracts/experiment/types/TypeA.sol +0 -47
  589. package/contracts/experiment/types/TypeB.sol +0 -29
  590. package/contracts/instance/IInstanceLinked.sol +0 -8
  591. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  592. package/contracts/instance/base/IInstanceBase.sol +0 -22
  593. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  594. package/contracts/instance/base/IService.sol +0 -15
  595. package/contracts/instance/base/InstanceBase.sol +0 -91
  596. package/contracts/instance/base/KeyValueStore.sol +0 -161
  597. package/contracts/instance/base/ModuleBase.sol +0 -57
  598. package/contracts/instance/base/ServiceBase.sol +0 -37
  599. package/contracts/instance/module/access/Access.sol +0 -149
  600. package/contracts/instance/module/access/IAccess.sol +0 -53
  601. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  602. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  603. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  604. package/contracts/instance/module/component/IComponent.sol +0 -28
  605. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  606. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  607. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  608. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  609. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  610. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  611. package/contracts/instance/module/risk/IRisk.sol +0 -26
  612. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  613. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  614. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  615. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  616. package/contracts/instance/service/ComponentOwnerService.sol +0 -157
  617. package/contracts/instance/service/DistributionService.sol +0 -59
  618. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  619. package/contracts/instance/service/IDistributionService.sol +0 -12
  620. package/contracts/instance/service/IPoolService.sol +0 -37
  621. package/contracts/instance/service/IProductService.sol +0 -107
  622. package/contracts/instance/service/PoolService.sol +0 -149
  623. package/contracts/instance/service/ProductService.sol +0 -509
  624. package/contracts/registry/IChainNft.sol +0 -21
  625. package/contracts/registry/IRegistryLinked.sol +0 -8
  626. package/contracts/shared/IOwnable.sol +0 -6
  627. package/contracts/test/TestDistribution.sol +0 -21
  628. package/contracts/test/TestFee.sol +0 -25
  629. package/contracts/test/TestPool.sol +0 -25
  630. package/contracts/test/TestProduct.sol +0 -72
  631. package/contracts/test/TestRegisterable.sol +0 -19
  632. package/contracts/test/TestRoleId.sol +0 -14
  633. package/contracts/test/TestService.sol +0 -32
  634. package/contracts/test/TestToken.sol +0 -26
  635. package/contracts/test/TestVersion.sol +0 -44
  636. package/contracts/test/TestVersionable.sol +0 -17
  637. package/contracts/types/ChainId.sol +0 -38
  638. package/contracts/types/Fee.sol +0 -56
  639. package/contracts/types/NftIdSet.sol +0 -60
  640. package/contracts/types/ReferralId.sol +0 -48
  641. 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,260 @@
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, FEE, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
12
+ import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
13
+ import {StateId, ACTIVE} from "../type/StateId.sol";
14
+ import {TimestampLib} from "../type/Timestamp.sol";
15
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
16
+ import {ReferralId} from "../type/Referral.sol";
17
+ import {DistributorType} from "../type/DistributorType.sol";
18
+ import {PayoutId} from "../type/PayoutId.sol";
19
+
20
+ import {BalanceStore} from "./base/BalanceStore.sol";
21
+ import {IInstance} from "./IInstance.sol";
22
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
23
+ import {IKeyValueStore} from "../shared/KeyValueStore.sol";
24
+
25
+ import {IBundle} from "./module/IBundle.sol";
26
+ import {IComponents} from "./module/IComponents.sol";
27
+ import {IDistribution} from "./module/IDistribution.sol";
28
+ import {IPolicy} from "./module/IPolicy.sol";
29
+ import {IRisk} from "./module/IRisk.sol";
30
+
31
+
32
+ contract InstanceStore is
33
+ AccessManagedUpgradeable,
34
+ KeyValueStore,
35
+ BalanceStore
36
+ {
37
+ function initialize(address instance)
38
+ public
39
+ initializer()
40
+ {
41
+ address authority = IInstance(instance).authority();
42
+ __AccessManaged_init(authority);
43
+ initializeLifecycle();
44
+ }
45
+
46
+ //--- Component ---------------------------------------------------------//
47
+ function createComponent(
48
+ NftId componentNftId,
49
+ IComponents.ComponentInfo memory componentInfo
50
+ )
51
+ external
52
+ restricted()
53
+ {
54
+ _registerBalanceTarget(componentNftId);
55
+ _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
56
+ }
57
+
58
+ function updateComponent(
59
+ NftId componentNftId,
60
+ IComponents.ComponentInfo memory componentInfo,
61
+ StateId newState
62
+ )
63
+ external
64
+ restricted()
65
+ {
66
+ _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
67
+ }
68
+
69
+ //--- ProductSetup ------------------------------------------------------//
70
+
71
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
72
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
73
+ }
74
+
75
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
76
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
77
+ }
78
+
79
+ function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
80
+ _updateState(_toNftKey32(productNftId, PRODUCT()), newState);
81
+ }
82
+
83
+ //--- PoolSetup ------------------------------------------------------//
84
+
85
+ function createPool(
86
+ NftId poolNftId,
87
+ IComponents.PoolInfo memory info
88
+ )
89
+ external
90
+ restricted()
91
+ {
92
+ _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
93
+ }
94
+
95
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
96
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
97
+ }
98
+
99
+ function updatePoolState(NftId poolNftId, StateId newState) external restricted() {
100
+ _updateState(_toNftKey32(poolNftId, POOL()), newState);
101
+ }
102
+
103
+ //--- DistributorType -------------------------------------------------------//
104
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
105
+ _create(distributorType.toKey32(), abi.encode(info));
106
+ }
107
+
108
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
109
+ _update(distributorType.toKey32(), abi.encode(info), newState);
110
+ }
111
+
112
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
113
+ _updateState(distributorType.toKey32(), newState);
114
+ }
115
+
116
+ //--- Distributor -------------------------------------------------------//
117
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
118
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
119
+ }
120
+
121
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
122
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
123
+ }
124
+
125
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
126
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
127
+ }
128
+
129
+ //--- Referral ----------------------------------------------------------//
130
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
131
+ _create(referralId.toKey32(), abi.encode(referralInfo));
132
+ }
133
+
134
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
135
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
136
+ }
137
+
138
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
139
+ _updateState(referralId.toKey32(), newState);
140
+ }
141
+
142
+ //--- Bundle ------------------------------------------------------------//
143
+ function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
144
+ _registerBalanceTarget(bundleNftId);
145
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
146
+ }
147
+
148
+ function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
149
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
150
+ }
151
+
152
+ function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
153
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
154
+ }
155
+
156
+ //--- Risk --------------------------------------------------------------//
157
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
158
+ _create(riskId.toKey32(), abi.encode(risk));
159
+ }
160
+
161
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
162
+ _update(riskId.toKey32(), abi.encode(risk), newState);
163
+ }
164
+
165
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
166
+ _updateState(riskId.toKey32(), newState);
167
+ }
168
+
169
+ //--- Application (Policy) ----------------------------------------------//
170
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
171
+ _registerBalanceTarget(applicationNftId);
172
+ _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
173
+ }
174
+
175
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
176
+ _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
177
+ }
178
+
179
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
180
+ _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
181
+ }
182
+
183
+ //--- Policy ------------------------------------------------------------//
184
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
185
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
186
+ }
187
+
188
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
189
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
190
+ }
191
+
192
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
193
+ _updateState(_toNftKey32(policyNftId, POLICY()), newState);
194
+ }
195
+
196
+ //--- Claim -------------------------------------------------------------//
197
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
198
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
199
+ }
200
+
201
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
202
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
203
+ }
204
+
205
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
206
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
207
+ }
208
+
209
+ //--- Payout ------------------------------------------------------------//
210
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
211
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
212
+ }
213
+
214
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
215
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
216
+ }
217
+
218
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
219
+ _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
220
+ }
221
+
222
+ //--- balance and fee management functions ------------------------------//
223
+
224
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
225
+ return _increaseBalance(targetNftId, amount);
226
+ }
227
+
228
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
229
+ return _decreaseBalance(targetNftId, amount);
230
+ }
231
+
232
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
233
+ return _increaseFees(targetNftId, amount);
234
+ }
235
+
236
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
237
+ return _decreaseFees(targetNftId, amount);
238
+ }
239
+
240
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
241
+ return _increaseLocked(targetNftId, amount);
242
+ }
243
+
244
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
245
+ return _decreaseLocked(targetNftId, amount);
246
+ }
247
+
248
+ //--- internal view/pure functions --------------------------------------//
249
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
250
+ return nftId.toKey32(objectType);
251
+ }
252
+
253
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
254
+ return claimId.toKey32(policyNftId);
255
+ }
256
+
257
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
258
+ return payoutId.toKey32(policyNftId);
259
+ }
260
+ }