@etherisc/gif-next 0.0.2-a8ee67b-545 → 0.0.2-a996a07-088

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 (663) 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 +1445 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +866 -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 +709 -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 +496 -1664
  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 +316 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1765 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1101 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -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 +137 -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 +187 -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 +1077 -0
  64. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +758 -0
  66. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  67. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1193 -0
  68. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +790 -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 +1528 -0
  80. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  82. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +938 -0
  84. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +774 -0
  86. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1366 -0
  88. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +854 -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 +1266 -0
  104. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +814 -0
  106. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  107. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1071 -0
  108. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +822 -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 +767 -0
  114. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +738 -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 +1064 -186
  126. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  127. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1627 -0
  128. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1519 -0
  130. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +761 -0
  132. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  133. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1348 -0
  134. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  135. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +249 -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/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1492 -0
  140. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  142. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  144. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  146. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  148. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  150. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  151. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  152. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  153. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1578 -0
  154. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +836 -0
  156. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  158. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  159. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  160. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1126 -0
  162. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  164. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  166. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  168. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -138
  174. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  176. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  177. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  180. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  182. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  183. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  185. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +158 -151
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  188. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  189. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  191. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  193. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +635 -0
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  195. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +258 -0
  196. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  199. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  201. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  202. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  204. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  206. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  208. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  209. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  210. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  211. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  212. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  214. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  217. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  222. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  223. package/artifacts/contracts/staking/Staking.sol/Staking.json +2061 -0
  224. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +785 -0
  226. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  228. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1388 -0
  230. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +758 -0
  232. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  234. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +619 -0
  236. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  238. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  240. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  242. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +195 -0
  244. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +120 -0
  246. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  248. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  250. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  252. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  253. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  254. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +148 -0
  256. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +225 -0
  258. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +158 -0
  260. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +220 -0
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +102 -0
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +191 -0
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  268. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  272. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  274. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  276. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  278. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  280. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  281. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  282. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  286. package/contracts/distribution/Distribution.sol +261 -0
  287. package/contracts/distribution/DistributionService.sol +298 -0
  288. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  289. package/contracts/distribution/IDistributionComponent.sol +66 -0
  290. package/contracts/distribution/IDistributionService.sol +81 -0
  291. package/contracts/instance/BundleManager.sol +126 -0
  292. package/contracts/instance/IInstance.sol +74 -44
  293. package/contracts/instance/IInstanceService.sol +81 -0
  294. package/contracts/instance/Instance.sol +220 -52
  295. package/contracts/instance/InstanceAdmin.sol +331 -0
  296. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  297. package/contracts/instance/InstanceReader.sol +392 -0
  298. package/contracts/instance/InstanceService.sol +362 -0
  299. package/contracts/instance/InstanceServiceManager.sol +44 -0
  300. package/contracts/instance/InstanceStore.sol +269 -0
  301. package/contracts/instance/base/BalanceStore.sol +123 -0
  302. package/contracts/instance/base/Cloneable.sol +28 -0
  303. package/contracts/instance/base/ObjectCounter.sol +21 -0
  304. package/contracts/instance/base/ObjectManager.sol +80 -0
  305. package/contracts/instance/module/IAccess.sol +46 -0
  306. package/contracts/instance/module/IBundle.sol +20 -0
  307. package/contracts/instance/module/IComponents.sol +52 -0
  308. package/contracts/instance/module/IDistribution.sol +42 -0
  309. package/contracts/instance/module/IPolicy.sol +84 -0
  310. package/contracts/instance/module/IRisk.sol +11 -0
  311. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  312. package/contracts/oracle/IOracle.sol +20 -0
  313. package/contracts/oracle/IOracleComponent.sol +32 -0
  314. package/contracts/oracle/IOracleService.sol +65 -0
  315. package/contracts/oracle/Oracle.sol +145 -0
  316. package/contracts/oracle/OracleService.sol +277 -0
  317. package/contracts/oracle/OracleServiceManager.sol +42 -0
  318. package/contracts/pool/BundleService.sol +296 -0
  319. package/contracts/pool/BundleServiceManager.sol +42 -0
  320. package/contracts/pool/IBundleService.sol +106 -0
  321. package/contracts/pool/IPoolComponent.sol +112 -0
  322. package/contracts/pool/IPoolService.sol +150 -0
  323. package/contracts/pool/Pool.sol +299 -0
  324. package/contracts/pool/PoolService.sol +453 -0
  325. package/contracts/pool/PoolServiceManager.sol +42 -0
  326. package/contracts/product/ApplicationService.sol +254 -0
  327. package/contracts/product/ApplicationServiceManager.sol +38 -0
  328. package/contracts/product/ClaimService.sol +442 -0
  329. package/contracts/product/ClaimServiceManager.sol +38 -0
  330. package/contracts/product/IApplicationService.sol +62 -0
  331. package/contracts/product/IClaimService.sol +99 -0
  332. package/contracts/product/IPolicyService.sol +78 -0
  333. package/contracts/product/IPricingService.sol +39 -0
  334. package/contracts/product/IProductComponent.sol +42 -0
  335. package/contracts/product/IProductService.sol +33 -0
  336. package/contracts/product/PolicyService.sol +475 -0
  337. package/contracts/product/PolicyServiceManager.sol +42 -0
  338. package/contracts/product/PricingService.sol +301 -0
  339. package/contracts/product/PricingServiceManager.sol +42 -0
  340. package/contracts/product/Product.sol +377 -0
  341. package/contracts/product/ProductService.sol +124 -0
  342. package/contracts/product/ProductServiceManager.sol +42 -0
  343. package/contracts/registry/ChainNft.sol +95 -37
  344. package/contracts/registry/IRegistry.sol +95 -28
  345. package/contracts/registry/IRegistryService.sol +69 -0
  346. package/contracts/registry/ITransferInterceptor.sol +7 -0
  347. package/contracts/registry/Registry.sol +476 -281
  348. package/contracts/registry/RegistryAdmin.sol +126 -0
  349. package/contracts/registry/RegistryService.sol +266 -0
  350. package/contracts/registry/RegistryServiceManager.sol +58 -0
  351. package/contracts/registry/ReleaseManager.sol +590 -0
  352. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  353. package/contracts/registry/TokenRegistry.sol +315 -0
  354. package/contracts/shared/AccessAdmin.sol +696 -0
  355. package/contracts/shared/AccessManagerCustom.sol +741 -0
  356. package/contracts/shared/AccessManagerExtended.sol +481 -0
  357. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  358. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  359. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  360. package/contracts/shared/Component.sol +281 -0
  361. package/contracts/shared/ComponentService.sol +618 -0
  362. package/contracts/shared/ComponentServiceManager.sol +35 -0
  363. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  364. package/contracts/shared/ERC165.sol +15 -9
  365. package/contracts/shared/IAccessAdmin.sol +146 -0
  366. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  367. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  368. package/contracts/shared/IComponent.sol +70 -0
  369. package/contracts/shared/IComponentService.sol +102 -0
  370. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  371. package/contracts/shared/IKeyValueStore.sol +53 -0
  372. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  373. package/contracts/shared/INftOwnable.sol +23 -0
  374. package/contracts/shared/IPolicyHolder.sol +45 -0
  375. package/contracts/shared/IRegisterable.sol +10 -19
  376. package/contracts/shared/IRegistryLinked.sol +11 -0
  377. package/contracts/shared/IService.sol +18 -0
  378. package/contracts/shared/IVersionable.sol +38 -37
  379. package/contracts/shared/InitializableCustom.sol +177 -0
  380. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  381. package/contracts/shared/KeyValueStore.sol +127 -0
  382. package/contracts/shared/Lifecycle.sol +130 -0
  383. package/contracts/shared/NftIdSetManager.sol +65 -0
  384. package/contracts/shared/NftOwnable.sol +107 -0
  385. package/contracts/shared/PolicyHolder.sol +102 -0
  386. package/contracts/shared/ProxyManager.sol +199 -0
  387. package/contracts/shared/Registerable.sol +54 -65
  388. package/contracts/shared/RegistryLinked.sol +43 -0
  389. package/contracts/shared/Service.sol +77 -0
  390. package/contracts/shared/TokenHandler.sol +58 -0
  391. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  392. package/contracts/shared/Versionable.sol +38 -68
  393. package/contracts/staking/IStaking.sol +168 -0
  394. package/contracts/staking/IStakingService.sol +149 -0
  395. package/contracts/staking/StakeManagerLib.sol +179 -0
  396. package/contracts/staking/Staking.sol +550 -0
  397. package/contracts/staking/StakingManager.sol +54 -0
  398. package/contracts/staking/StakingReader.sol +187 -0
  399. package/contracts/staking/StakingService.sol +406 -0
  400. package/contracts/staking/StakingServiceManager.sol +45 -0
  401. package/contracts/staking/StakingStore.sol +572 -0
  402. package/contracts/staking/TargetManagerLib.sol +207 -0
  403. package/contracts/{types → type}/AddressSet.sol +1 -1
  404. package/contracts/type/Amount.sol +128 -0
  405. package/contracts/{types → type}/Blocknumber.sol +21 -3
  406. package/contracts/type/ClaimId.sol +75 -0
  407. package/contracts/type/DistributorType.sol +55 -0
  408. package/contracts/type/Fee.sol +66 -0
  409. package/contracts/{types → type}/Key32.sol +8 -3
  410. package/contracts/{types → type}/NftId.sol +21 -15
  411. package/contracts/type/NftIdSet.sol +62 -0
  412. package/contracts/type/ObjectType.sol +170 -0
  413. package/contracts/type/PayoutId.sol +82 -0
  414. package/contracts/type/Referral.sol +89 -0
  415. package/contracts/type/RequestId.sol +75 -0
  416. package/contracts/type/RiskId.sol +43 -0
  417. package/contracts/type/RoleId.sol +156 -0
  418. package/contracts/type/Seconds.sol +81 -0
  419. package/contracts/type/Selector.sol +102 -0
  420. package/contracts/{types → type}/StateId.sol +39 -5
  421. package/contracts/type/String.sol +53 -0
  422. package/contracts/{types → type}/Timestamp.sol +27 -14
  423. package/contracts/{types → type}/UFixed.sol +129 -12
  424. package/contracts/{types → type}/Version.sol +15 -2
  425. package/package.json +8 -7
  426. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  427. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  428. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  429. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  430. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  431. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  432. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  433. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  434. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  435. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  436. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  437. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  439. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  441. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  443. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  445. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  447. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  449. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  451. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  453. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  455. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  457. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  459. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  460. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  461. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  462. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  463. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  464. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  465. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  466. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  467. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  468. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  469. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  470. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  471. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  472. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  473. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  475. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  477. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  478. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  479. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  481. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  482. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  483. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  484. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  485. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  486. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  487. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  489. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  490. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  491. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  492. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  494. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  496. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  497. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  499. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  500. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  501. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  502. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  503. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  504. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  505. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  506. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  507. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  508. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  509. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  510. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  511. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  514. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  515. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  516. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  517. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  518. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  519. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  520. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  521. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  522. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  523. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  525. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  526. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  527. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  529. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  530. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  531. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  532. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  533. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  534. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  535. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  537. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  540. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  543. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  545. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  546. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  547. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  548. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  549. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  550. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  551. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  552. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  553. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  554. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  555. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  556. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  557. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  558. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  559. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  560. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  561. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  562. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  563. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  565. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  567. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  568. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  569. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  570. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  572. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  575. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  576. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  577. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  579. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  580. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  581. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  583. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  585. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  588. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  590. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  591. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  593. package/contracts/components/BaseComponent.sol +0 -88
  594. package/contracts/components/IBaseComponent.sol +0 -19
  595. package/contracts/components/IPoolComponent.sol +0 -57
  596. package/contracts/components/IProductComponent.sol +0 -19
  597. package/contracts/components/Pool.sol +0 -174
  598. package/contracts/components/Product.sol +0 -117
  599. package/contracts/experiment/errors/Require.sol +0 -38
  600. package/contracts/experiment/errors/Revert.sol +0 -44
  601. package/contracts/experiment/inheritance/A.sol +0 -53
  602. package/contracts/experiment/inheritance/B.sol +0 -28
  603. package/contracts/experiment/inheritance/C.sol +0 -34
  604. package/contracts/experiment/inheritance/IA.sol +0 -13
  605. package/contracts/experiment/inheritance/IB.sol +0 -10
  606. package/contracts/experiment/inheritance/IC.sol +0 -12
  607. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  608. package/contracts/experiment/statemachine/ISM.sol +0 -25
  609. package/contracts/experiment/statemachine/README.md +0 -112
  610. package/contracts/experiment/statemachine/SM.sol +0 -57
  611. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  612. package/contracts/experiment/types/TypeA.sol +0 -47
  613. package/contracts/experiment/types/TypeB.sol +0 -29
  614. package/contracts/instance/IInstanceLinked.sol +0 -8
  615. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  616. package/contracts/instance/base/IInstanceBase.sol +0 -14
  617. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  618. package/contracts/instance/base/IService.sol +0 -15
  619. package/contracts/instance/base/InstanceBase.sol +0 -80
  620. package/contracts/instance/base/KeyValueStore.sol +0 -156
  621. package/contracts/instance/base/Lifecycle.sol +0 -95
  622. package/contracts/instance/base/ModuleBase.sol +0 -52
  623. package/contracts/instance/base/ServiceBase.sol +0 -37
  624. package/contracts/instance/module/access/Access.sol +0 -149
  625. package/contracts/instance/module/access/IAccess.sol +0 -53
  626. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  627. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  628. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  629. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  630. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  631. package/contracts/instance/module/component/IComponent.sol +0 -53
  632. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  633. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  634. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  635. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  636. package/contracts/instance/module/risk/IRisk.sol +0 -10
  637. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  638. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  639. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  640. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  641. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  642. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  643. package/contracts/instance/service/IPoolService.sol +0 -30
  644. package/contracts/instance/service/IProductService.sol +0 -58
  645. package/contracts/instance/service/PoolService.sol +0 -123
  646. package/contracts/instance/service/ProductService.sol +0 -354
  647. package/contracts/registry/IChainNft.sol +0 -21
  648. package/contracts/registry/IRegistryLinked.sol +0 -8
  649. package/contracts/shared/IOwnable.sol +0 -6
  650. package/contracts/test/TestFee.sol +0 -25
  651. package/contracts/test/TestPool.sol +0 -22
  652. package/contracts/test/TestProduct.sol +0 -44
  653. package/contracts/test/TestRegisterable.sol +0 -19
  654. package/contracts/test/TestRoleId.sol +0 -14
  655. package/contracts/test/TestService.sol +0 -32
  656. package/contracts/test/TestToken.sol +0 -26
  657. package/contracts/test/TestVersion.sol +0 -44
  658. package/contracts/test/TestVersionable.sol +0 -17
  659. package/contracts/types/ChainId.sol +0 -38
  660. package/contracts/types/Fee.sol +0 -51
  661. package/contracts/types/NftIdSet.sol +0 -60
  662. package/contracts/types/ObjectType.sol +0 -115
  663. package/contracts/types/RoleId.sol +0 -38
@@ -1,52 +1,82 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
- import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {ClaimId} from "../type/ClaimId.sol";
7
+ import {DistributorType} from "../type/DistributorType.sol";
8
+ import {PayoutId} from "../type/PayoutId.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {StateId} from "../type/StateId.sol";
11
+ import {ReferralId} from "../type/Referral.sol";
12
+ import {RiskId} from "../type/RiskId.sol";
13
+ import {VersionPart} from "../type/Version.sol";
14
+ import {Key32} from "../type/Key32.sol";
15
+ import {RoleId} from "../type/RoleId.sol";
16
+
17
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
7
18
  import {IRegisterable} from "../shared/IRegisterable.sol";
8
- import {IOwnable} from "../shared/IOwnable.sol";
9
- import {RoleId} from "../types/RoleId.sol";
10
-
11
- import {IAccessModule} from "./module/access/IAccess.sol";
12
- import {IBundleModule} from "./module/bundle/IBundle.sol";
13
- import {ICompensationModule} from "./module/compensation/ICompensation.sol";
14
- import {IComponentModule} from "./module/component/IComponent.sol";
15
- import {IPolicyModule} from "./module/policy/IPolicy.sol";
16
- import {IPoolModule} from "./module/pool/IPoolModule.sol";
17
- import {IRiskModule} from "./module/risk/IRisk.sol";
18
- import {ITreasuryModule} from "./module/treasury/ITreasury.sol";
19
-
20
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
21
- import {IRegistry, IRegistryLinked} from "../registry/IRegistryLinked.sol";
22
-
23
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
24
- import {IProductService} from "./service/IProductService.sol";
25
- import {IPoolService} from "./service/IPoolService.sol";
26
- import {IInstanceBase} from "./base/IInstanceBase.sol";
27
-
28
- // solhint-disable-next-line no-empty-blocks
29
- interface IInstance is
30
- IERC165,
31
- IVersionable,
32
- IRegisterable,
33
- IAccessModule,
34
- IPolicyModule,
35
- IPoolModule,
36
- IBundleModule,
37
- IComponentModule,
38
- ITreasuryModule,
39
- ICompensationModule,
40
- IInstanceBase
19
+
20
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
21
+
22
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
23
+ import {BundleManager} from "./BundleManager.sol";
24
+ import {InstanceReader} from "./InstanceReader.sol";
25
+ import {InstanceStore} from "./InstanceStore.sol";
26
+
27
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
28
+
29
+ import {IAccess} from "./module/IAccess.sol";
30
+
31
+ import {IBundleService} from "../pool/IBundleService.sol";
32
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
33
+ import {IPolicyService} from "../product/IPolicyService.sol";
34
+ import {IPoolService} from "../pool/IPoolService.sol";
35
+ import {IProductService} from "../product/IProductService.sol";
36
+ import {IPolicyService} from "../product/IPolicyService.sol";
37
+ import {IBundleService} from "../pool/IBundleService.sol";
38
+
39
+
40
+ interface IInstance is
41
+ IRegisterable,
42
+ ITransferInterceptor,
43
+ IAccessManaged
41
44
  {
42
- function getRegistry() external view override (IBundleModule, IComponentModule, IPolicyModule, IRegisterable) returns (IRegistry registry);
43
- function getOwner() external view override (IOwnable, IAccessModule) returns(address owner);
45
+ error ErrorInstanceInstanceAdminZero();
46
+ error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
47
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
48
+
49
+ error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
50
+ error ErrorInstanceBundleManagerInstanceMismatch(address instance);
51
+ error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
52
+
53
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
54
+
55
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
56
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
57
+
58
+ struct InstanceInfo {
59
+ uint64 requestsCount;
60
+ }
61
+
62
+ function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
63
+ function grantRole(RoleId roleId, address account) external;
64
+ function revokeRole(RoleId roleId, address account) external;
44
65
 
45
- function hasRole(RoleId role, address member) external view override (IAccessModule, IComponentModule) returns (bool hasRole);
66
+ function createTarget(address target, string memory name) external;
67
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
68
+ function setTargetLocked(address target, bool locked) external;
46
69
 
47
- function getKeyValueStore() external view override (IBundleModule, IInstanceBase) returns (IKeyValueStore keyValueStore);
48
- function getComponentOwnerService() external view override (IInstanceBase, IComponentModule) returns(IComponentOwnerService);
49
- function getProductService() external view override (IInstanceBase, IBundleModule, IPolicyModule) returns(IProductService);
50
- function getPoolService() external view override (IInstanceBase, IBundleModule, IPoolModule) returns(IPoolService);
70
+ function getDistributionService() external view returns (IDistributionService);
71
+ function getProductService() external view returns (IProductService);
72
+ function getPoolService() external view returns (IPoolService);
73
+ function getPolicyService() external view returns (IPolicyService);
74
+ function getBundleService() external view returns (IBundleService);
51
75
 
52
- }
76
+ function getMajorVersion() external pure returns (VersionPart majorVersion);
77
+ function getInstanceReader() external view returns (InstanceReader);
78
+ function getBundleManager() external view returns (BundleManager);
79
+ function getInstanceAdmin() external view returns (InstanceAdmin);
80
+ function getInstanceStore() external view returns (InstanceStore);
81
+ function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
82
+ }
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {ObjectType} from "../type/ObjectType.sol";
6
+ import {RoleId} from "../type/RoleId.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+
9
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
10
+ import {Instance} from "./Instance.sol";
11
+ import {InstanceReader} from "./InstanceReader.sol";
12
+ import {BundleManager} from "./BundleManager.sol";
13
+ import {InstanceStore} from "./InstanceStore.sol";
14
+
15
+ interface IInstanceService is IService {
16
+
17
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
18
+
19
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
20
+ error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
21
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
22
+ error ErrorInstanceServiceMasterBundleManagerAlreadySet();
23
+ error ErrorInstanceServiceInstanceAddressZero();
24
+
25
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
26
+ error ErrorInstanceServiceInstanceReaderAddressZero();
27
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
28
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
29
+
30
+ error ErrorInstanceServiceInstanceAdminZero();
31
+ error ErrorInstanceServiceInstanceReaderZero();
32
+ error ErrorInstanceServiceBundleManagerZero();
33
+ error ErrorInstanceServiceInstanceStoreZero();
34
+
35
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
36
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
37
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
38
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
39
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
40
+
41
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
42
+ error ErrorInstanceServiceNotInstance(NftId nftId);
43
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
44
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
45
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
46
+
47
+ event LogInstanceCloned(
48
+ address clonedOzAccessManager,
49
+ address clonedInstanceAccessManager,
50
+ address clonedInstance,
51
+ address clonedInstanceStore,
52
+ address clonedBundleManager,
53
+ address clonedInstanceReader,
54
+ NftId clonedInstanceNftId
55
+ );
56
+
57
+ function createInstanceClone()
58
+ external
59
+ returns (
60
+ Instance clonedInstance,
61
+ NftId instanceNftId
62
+ );
63
+
64
+ function createComponentTarget(
65
+ NftId instanceNftId,
66
+ address targetAddress,
67
+ string memory targetName,
68
+ bytes4[][] memory selectors,
69
+ RoleId[] memory roles
70
+ ) external;
71
+
72
+ function createGifTarget(
73
+ NftId instanceNftId,
74
+ address targetAddress,
75
+ string memory targetName,
76
+ bytes4[][] memory selectors,
77
+ RoleId[] memory roles
78
+ ) external;
79
+
80
+ function setComponentLocked(bool locked) external;
81
+ }
@@ -1,68 +1,236 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {RoleId} from "../types/RoleId.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
5
 
7
- import {InstanceBase} from "./base/InstanceBase.sol";
8
- import {AccessModule} from "./module/access/Access.sol";
9
- import {CompensationModule} from "./module/compensation/CompensationModule.sol";
10
- import {ComponentModule} from "./module/component/ComponentModule.sol";
11
- import {PolicyModule} from "./module/policy/PolicyModule.sol";
12
- import {PoolModule} from "./module/pool/PoolModule.sol";
13
- import {RiskModule} from "./module/risk/RiskModule.sol";
14
- import {BundleModule} from "./module/bundle/BundleModule.sol";
15
- import {TreasuryModule} from "./module/treasury/TreasuryModule.sol";
6
+ import {Key32} from "../type/Key32.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {RiskId} from "../type/RiskId.sol";
9
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
10
+ import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
11
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
+ import {ClaimId} from "../type/ClaimId.sol";
13
+ import {ReferralId} from "../type/Referral.sol";
14
+ import {PayoutId} from "../type/PayoutId.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
16
 
17
- import {IRegistry} from "../registry/IRegistry.sol";
18
17
  import {Registerable} from "../shared/Registerable.sol";
19
- import {IAccessModule} from "./module/access/IAccess.sol";
20
- import {IBundleModule} from "./module/bundle/IBundle.sol";
21
- import {IComponentModule} from "./module/component/IComponent.sol";
22
- import {IPoolModule} from "./module/pool/IPoolModule.sol";
23
- import {IPolicyModule} from "./module/policy/IPolicy.sol";
24
- import {IInstanceBase} from "./base/IInstanceBase.sol";
18
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
20
+
21
+ import {IRegistry} from "../registry/IRegistry.sol";
22
+
23
+ import {IInstance} from "./IInstance.sol";
24
+ import {InstanceReader} from "./InstanceReader.sol";
25
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
26
+ import {BundleManager} from "./BundleManager.sol";
27
+ import {InstanceStore} from "./InstanceStore.sol";
28
+
29
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
25
30
 
26
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
27
- import {IProductService} from "./service/IProductService.sol";
28
- import {IPoolService} from "./service/IPoolService.sol";
31
+ import {IBundle} from "./module/IBundle.sol";
32
+ import {IComponents} from "./module/IComponents.sol";
33
+ import {IDistribution} from "./module/IDistribution.sol";
34
+ import {IPolicy} from "./module/IPolicy.sol";
35
+ import {IRisk} from "./module/IRisk.sol";
29
36
 
30
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
37
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
38
+ import {IPoolService} from "../pool/IPoolService.sol";
39
+ import {IProductService} from "../product/IProductService.sol";
40
+ import {IPolicyService} from "../product/IPolicyService.sol";
41
+ import {IBundleService} from "../pool/IBundleService.sol";
31
42
 
32
43
  contract Instance is
33
- InstanceBase,
34
- AccessModule,
35
- BundleModule,
36
- ComponentModule,
37
- CompensationModule,
38
- PolicyModule,
39
- PoolModule,
40
- RiskModule,
41
- TreasuryModule
44
+ IInstance,
45
+ AccessManagedUpgradeable,
46
+ Registerable
42
47
  {
43
- constructor(
44
- address registry,
45
- NftId registryNftId
46
- )
47
- InstanceBase(registry, registryNftId)
48
- AccessModule()
49
- BundleModule()
50
- ComponentModule()
51
- PolicyModule()
52
- PoolModule()
53
- TreasuryModule()
48
+ uint256 public constant GIF_MAJOR_VERSION = 3;
49
+
50
+ bool private _initialized;
51
+
52
+ InstanceAdmin internal _instanceAdmin;
53
+ InstanceReader internal _instanceReader;
54
+ BundleManager internal _bundleManager;
55
+ InstanceStore internal _instanceStore;
56
+
57
+ modifier onlyChainNft() {
58
+ if(msg.sender != getRegistry().getChainNftAddress()) {
59
+ revert();
60
+ }
61
+ _;
62
+ }
63
+
64
+ function initialize(address authority, address registryAddress, address initialOwner)
65
+ external
66
+ initializer()
67
+ {
68
+ if(authority == address(0)) {
69
+ revert ErrorInstanceInstanceAdminZero();
70
+ }
71
+
72
+ __AccessManaged_init(authority);
73
+
74
+ IRegistry registry = IRegistry(registryAddress);
75
+ initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
76
+
77
+ registerInterface(type(IInstance).interfaceId);
78
+ }
79
+
80
+ //--- Roles ------------------------------------------------------------//
81
+
82
+ function createRole(string memory roleName, string memory adminName)
83
+ external
84
+ restricted // INSTANCE_OWNER_ROLE
85
+ returns (RoleId roleId, RoleId admin)
86
+ {
87
+ (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
88
+ }
89
+
90
+ function grantRole(RoleId roleId, address account)
91
+ external
92
+ restricted // INSTANCE_OWNER_ROLE
54
93
  {
55
- initializeBundleModule(_keyValueStore);
94
+ AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, 0);
56
95
  }
57
96
 
58
- function getRegistry() public view override (Registerable, IBundleModule, IComponentModule, IPolicyModule) returns (IRegistry registry) { return super.getRegistry(); }
59
- function getKeyValueStore() public view override (InstanceBase, IBundleModule) returns (IKeyValueStore keyValueStore) { return super.getKeyValueStore(); }
97
+ function revokeRole(RoleId roleId, address account)
98
+ external
99
+ restricted // INSTANCE_OWNER_ROLE
100
+ {
101
+ AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
102
+ }
60
103
 
61
- function hasRole(RoleId role, address member) public view override (AccessModule, IComponentModule) returns (bool) { return super.hasRole(role, member); }
104
+ //--- Targets ------------------------------------------------------------//
62
105
 
63
- function getComponentOwnerService() external view override (IComponentModule, IInstanceBase) returns(IComponentOwnerService service) { return _componentOwnerService; }
64
- function getProductService() external view override (IBundleModule, IPolicyModule, IInstanceBase) returns(IProductService service) { return _productService; }
65
- function getPoolService() external view override (IBundleModule, IPoolModule, IInstanceBase) returns(IPoolService service) { return _poolService; }
106
+ function createTarget(address target, string memory name)
107
+ external
108
+ restricted // INSTANCE_OWNER_ROLE
109
+ {
110
+ _instanceAdmin.createTarget(target, name);
111
+ }
112
+
113
+ function setTargetFunctionRole(
114
+ string memory targetName,
115
+ bytes4[] calldata selectors,
116
+ RoleId roleId
117
+ )
118
+ external
119
+ restricted // INSTANCE_OWNER_ROLE
120
+ {
121
+ _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
122
+ }
123
+
124
+ function setTargetLocked(address target, bool locked)
125
+ external
126
+ restricted // INSTANCE_OWNER_ROLE
127
+ {
128
+ _instanceAdmin.setTargetLockedByInstance(target, locked);
129
+ }
130
+
131
+ //--- ITransferInterceptor ----------------------------------------------//
132
+
133
+ // TODO interception of child components nfts
134
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
135
+ _instanceAdmin.transferInstanceOwnerRole(address(0), to);
136
+ }
137
+
138
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
139
+ _instanceAdmin.transferInstanceOwnerRole(from, to);
140
+ }
141
+
142
+ //function nftBurn(address from, uint256 tokenId) external onlyChainNft {
143
+ //_instanceAdmin.transferInstanceOwnerRole(from, address(0));
144
+ //}
145
+
146
+ //--- initial setup functions -------------------------------------------//
147
+
148
+ function setInstanceAdmin(InstanceAdmin accessManager) external restricted {
149
+ if(address(_instanceAdmin) != address(0)) {
150
+ revert ErrorInstanceInstanceAdminAlreadySet(address(_instanceAdmin));
151
+ }
152
+ if(accessManager.authority() != authority()) {
153
+ revert ErrorInstanceInstanceAdminAuthorityMismatch(authority());
154
+ }
155
+ _instanceAdmin = accessManager;
156
+ }
157
+
158
+ function setBundleManager(BundleManager bundleManager) external restricted() {
159
+ if(address(_bundleManager) != address(0)) {
160
+ revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
161
+ }
162
+ if(bundleManager.getInstance() != Instance(this)) {
163
+ revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
164
+ }
165
+ if(bundleManager.authority() != authority()) {
166
+ revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
167
+ }
168
+ _bundleManager = bundleManager;
169
+ }
170
+
171
+ function setInstanceReader(InstanceReader instanceReader) external restricted() {
172
+ if(instanceReader.getInstance() != Instance(this)) {
173
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
174
+ }
175
+
176
+ _instanceReader = instanceReader;
177
+ }
178
+
179
+ //--- external view functions -------------------------------------------//
180
+
181
+ function getInstanceReader() external view returns (InstanceReader) {
182
+ return _instanceReader;
183
+ }
184
+
185
+ function getBundleManager() external view returns (BundleManager) {
186
+ return _bundleManager;
187
+ }
188
+
189
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
190
+ return _instanceAdmin;
191
+ }
192
+
193
+ function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable) {
194
+ return AccessManagerExtendedInitializeable(authority());
195
+ }
196
+
197
+ function setInstanceStore(InstanceStore instanceStore) external restricted {
198
+ if(address(_instanceStore) != address(0)) {
199
+ revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
200
+ }
201
+ if(instanceStore.authority() != authority()) {
202
+ revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
203
+ }
204
+ _instanceStore = instanceStore;
205
+ }
206
+
207
+ function getInstanceStore() external view returns (InstanceStore) {
208
+ return _instanceStore;
209
+ }
210
+
211
+ function getMajorVersion() external pure returns (VersionPart majorVersion) {
212
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
213
+ }
214
+
215
+ function getDistributionService() external view returns (IDistributionService) {
216
+ return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
217
+ }
218
+
219
+ function getProductService() external view returns (IProductService) {
220
+ return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
221
+ }
222
+
223
+ function getPoolService() external view returns (IPoolService) {
224
+ return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
225
+ }
226
+
227
+ function getPolicyService() external view returns (IPolicyService) {
228
+ return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
229
+ }
230
+
231
+ function getBundleService() external view returns (IBundleService) {
232
+ return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
233
+ }
66
234
 
67
- function getOwner() public view override (IAccessModule, Registerable) returns(address owner) { return super.getOwner(); }
68
- }
235
+ //--- internal view/pure functions --------------------------------------//
236
+ }