@etherisc/gif-next 0.0.2-836e6e4-400 → 0.0.2-83889c4-030

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 (622) hide show
  1. package/README.md +10 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +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 +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +286 -1351
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +308 -199
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +463 -2526
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +630 -351
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +510 -336
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +378 -88
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -144
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +286 -265
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +203 -240
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +326 -283
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +263 -226
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IProductService.sol/IProductService.json} +125 -122
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +279 -17
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +355 -221
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +512 -36
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +507 -287
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -82
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +845 -99
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +200 -195
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +277 -115
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +51 -31
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +75 -163
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Service.sol/Service.json +179 -153
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +22 -25
  278. package/contracts/instance/IInstance.sol +65 -45
  279. package/contracts/instance/IInstanceService.sol +60 -17
  280. package/contracts/instance/Instance.sol +155 -195
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +160 -85
  284. package/contracts/instance/InstanceService.sol +272 -210
  285. package/contracts/instance/InstanceServiceManager.sol +12 -22
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
  291. package/contracts/instance/module/IAccess.sol +20 -22
  292. package/contracts/instance/module/IBundle.sol +8 -8
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +32 -0
  300. package/contracts/oracle/IOracleService.sol +65 -0
  301. package/contracts/oracle/Oracle.sol +145 -0
  302. package/contracts/oracle/OracleService.sol +277 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +99 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +16 -1
  330. package/contracts/registry/IRegistry.sol +56 -23
  331. package/contracts/registry/IRegistryService.sol +45 -34
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +300 -120
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +118 -175
  336. package/contracts/registry/RegistryServiceManager.sol +22 -26
  337. package/contracts/registry/ReleaseManager.sol +461 -209
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +263 -58
  340. package/contracts/shared/AccessManagerCustom.sol +736 -0
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  349. package/contracts/shared/ERC165.sol +15 -13
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +4 -6
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +7 -5
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +59 -86
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +26 -41
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +42 -23
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/{types → type}/NftIdSet.sol +2 -2
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +34 -4
  402. package/contracts/{types → type}/Timestamp.sol +23 -14
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +2 -1
  405. package/package.json +6 -5
  406. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -772
  409. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  410. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  411. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  412. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  413. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  414. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  415. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  416. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  417. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -967
  418. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  419. package/artifacts/contracts/components/Product.sol/Product.json +0 -883
  420. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  422. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  424. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  426. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  428. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  430. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  432. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  434. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  436. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  438. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  443. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  444. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  445. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  446. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  447. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  451. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  452. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  453. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  454. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  455. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  456. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  457. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  458. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  459. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  460. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  461. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  462. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  463. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1057
  465. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  466. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  467. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  468. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  469. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  472. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  473. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +0 -429
  474. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  475. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  476. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  477. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  478. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  479. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  480. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  483. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -432
  485. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -671
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -420
  491. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  494. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  496. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -971
  501. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -705
  505. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -420
  507. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -755
  509. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  511. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  512. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  514. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  515. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  516. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  517. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  519. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  521. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  523. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  525. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  527. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  529. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  531. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  532. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  533. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  534. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  536. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  538. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  541. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  543. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  544. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  549. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  551. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  555. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  556. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  557. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  560. package/contracts/components/BaseComponent.sol +0 -148
  561. package/contracts/components/Distribution.sol +0 -163
  562. package/contracts/components/IBaseComponent.sol +0 -32
  563. package/contracts/components/IDistributionComponent.sol +0 -44
  564. package/contracts/components/IPoolComponent.sol +0 -66
  565. package/contracts/components/IProductComponent.sol +0 -35
  566. package/contracts/components/Pool.sol +0 -271
  567. package/contracts/components/Product.sol +0 -292
  568. package/contracts/experiment/cloning/Cloner.sol +0 -47
  569. package/contracts/experiment/errors/Require.sol +0 -38
  570. package/contracts/experiment/errors/Revert.sol +0 -44
  571. package/contracts/experiment/inheritance/A.sol +0 -53
  572. package/contracts/experiment/inheritance/B.sol +0 -28
  573. package/contracts/experiment/inheritance/C.sol +0 -34
  574. package/contracts/experiment/inheritance/IA.sol +0 -13
  575. package/contracts/experiment/inheritance/IB.sol +0 -10
  576. package/contracts/experiment/inheritance/IC.sol +0 -12
  577. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  578. package/contracts/experiment/statemachine/ISM.sol +0 -25
  579. package/contracts/experiment/statemachine/SM.sol +0 -57
  580. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  581. package/contracts/experiment/types/TypeA.sol +0 -47
  582. package/contracts/experiment/types/TypeB.sol +0 -29
  583. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  584. package/contracts/instance/IInstanceBase.sol +0 -26
  585. package/contracts/instance/InstanceAccessManager.sol +0 -304
  586. package/contracts/instance/InstanceBase.sol +0 -41
  587. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  588. package/contracts/instance/base/IInstanceBase.sol +0 -23
  589. package/contracts/instance/base/KeyValueStore.sol +0 -172
  590. package/contracts/instance/module/ISetup.sol +0 -46
  591. package/contracts/instance/module/ITreasury.sol +0 -23
  592. package/contracts/instance/service/BundleService.sol +0 -260
  593. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  594. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  595. package/contracts/instance/service/DistributionService.sol +0 -114
  596. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  597. package/contracts/instance/service/IBundleService.sol +0 -45
  598. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  599. package/contracts/instance/service/IDistributionService.sol +0 -12
  600. package/contracts/instance/service/IPolicyService.sol +0 -87
  601. package/contracts/instance/service/IPoolService.sol +0 -20
  602. package/contracts/instance/service/IProductService.sol +0 -40
  603. package/contracts/instance/service/PolicyService.sol +0 -503
  604. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  605. package/contracts/instance/service/PoolService.sol +0 -122
  606. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  607. package/contracts/instance/service/ProductService.sol +0 -168
  608. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  609. package/contracts/registry/RegistryAccessManager.sol +0 -210
  610. package/contracts/shared/ContractDeployerLib.sol +0 -72
  611. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  612. package/contracts/test/TestFee.sol +0 -25
  613. package/contracts/test/TestRegisterable.sol +0 -18
  614. package/contracts/test/TestRoleId.sol +0 -14
  615. package/contracts/test/TestService.sol +0 -25
  616. package/contracts/test/TestToken.sol +0 -26
  617. package/contracts/test/TestVersion.sol +0 -44
  618. package/contracts/test/TestVersionable.sol +0 -17
  619. package/contracts/types/ChainId.sol +0 -38
  620. package/contracts/types/NumberId.sol +0 -52
  621. package/contracts/types/RoleId.sol +0 -90
  622. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,237 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
+ import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";
7
+
8
+ import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
9
+
10
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
11
+ import {InitializableCustom} from "../shared/InitializableCustom.sol";
12
+
13
+ import {IRegistry} from "./IRegistry.sol";
14
+ import {ReleaseManager} from "./ReleaseManager.sol";
15
+ import {TokenRegistry} from "./TokenRegistry.sol";
16
+
17
+ /*
18
+ 1) GIF_MANAGER_ROLE
19
+ - can have arbitrary number of members
20
+ - responsible for services registrations
21
+ - responsible for token registration and activation
22
+
23
+ 2) GIF_ADMIN_ROLE
24
+ - admin of GIF_MANAGER_ROLE
25
+ - MUST have 1 member at any time
26
+ - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
27
+ - responsible for creation and activation of releases
28
+ */
29
+
30
+ // !!! USE BUILDER PATTERN FOR CONFIG
31
+ // introduce class - config
32
+ // create instance of this class in admin initializer function
33
+ // call it "add"/"push" function for each entry in config (provide entry parameneters)
34
+ // each call will configure access manager for given parameneters
35
+ // in the end you have fully configured access manager and config object
36
+
37
+ // grants GIF_ADMIN_ROLE to registry owner as registryOwner is transaction sender
38
+ // grants GIF_MANAGER_ROLE to registry owner via contructor argument
39
+ contract RegistryAdmin is
40
+ AccessManaged,
41
+ InitializableCustom
42
+ {
43
+ error ErrorRegistryAdminReleaseManagerAuthorityMismatch();
44
+ error ErrorRegistryAdminTokenRegistryAuthorityMismatch();
45
+ error ErrorRegistryAdminStakingAuthorityMismatch();
46
+
47
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
48
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
49
+
50
+ string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
51
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
52
+ string public constant STAKING_TARGET_NAME = "Staking";
53
+
54
+ address private _releaseManager;
55
+ address private _tokenRegistry;
56
+ address private _staking;
57
+
58
+ constructor()
59
+ AccessManaged(msg.sender)
60
+ InitializableCustom()
61
+ {
62
+ AccessManagerExtendedInitializeable accessManager = new AccessManagerExtendedInitializeable();
63
+ accessManager.initialize(address(this));
64
+ setAuthority(address(accessManager));
65
+ }
66
+
67
+ function initialize(
68
+ IRegistry registry,
69
+ address gifAdmin,
70
+ address gifManager
71
+ )
72
+ external
73
+ initializer
74
+ {
75
+ // validate input
76
+ address releaseManagerAddress = registry.getReleaseManagerAddress();
77
+ if(IAccessManaged(releaseManagerAddress).authority() != authority()) {
78
+ revert ErrorRegistryAdminReleaseManagerAuthorityMismatch();
79
+ }
80
+
81
+ address tokenRegistryAddress = registry.getTokenRegistryAddress();
82
+ if(IAccessManaged(tokenRegistryAddress).authority() != authority()) {
83
+ revert ErrorRegistryAdminTokenRegistryAuthorityMismatch();
84
+ }
85
+
86
+ address stakingAddress = registry.getStakingAddress();
87
+ if(IAccessManaged(stakingAddress).authority() != authority()) {
88
+ revert ErrorRegistryAdminStakingAuthorityMismatch();
89
+ }
90
+
91
+ _releaseManager = releaseManagerAddress;
92
+ _tokenRegistry = tokenRegistryAddress;
93
+ _staking = stakingAddress;
94
+
95
+ // at this moment all registry contracts are deployed and fully intialized
96
+ _createRole(GIF_ADMIN_ROLE(), GIF_ADMIN_ROLE_NAME);
97
+ _createRole(GIF_MANAGER_ROLE(), GIF_MANAGER_ROLE_NAME);
98
+
99
+ _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
100
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
101
+ _createTarget(_staking, STAKING_TARGET_NAME);
102
+
103
+ _setGifAdminRole();
104
+ _setGifManagerRole();
105
+
106
+ _grantRole(GIF_ADMIN_ROLE(), gifAdmin, 0);
107
+ _grantRole(GIF_MANAGER_ROLE(), gifManager, 0);
108
+
109
+ // set gif manager role admin
110
+ _setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
111
+ }
112
+
113
+ // TODO makes sense to do this in intialize() function
114
+ // it is a single contract
115
+ // but if many token registries a possible...
116
+ /*function setTokenRegistry(
117
+ address tokenRegistry
118
+ )
119
+ external
120
+ restricted() // GIF_ADMIN_ROLE
121
+ {
122
+ // for TokenRegistry
123
+ bytes4[] memory functionSelector = new bytes4[](5);
124
+ functionSelector[0] = TokenRegistry.registerToken.selector;
125
+ functionSelector[1] = TokenRegistry.registerRemoteToken.selector;
126
+ functionSelector[2] = TokenRegistry.setActive.selector;
127
+ functionSelector[3] = TokenRegistry.setActiveForVersion.selector;
128
+
129
+ // only needed for testing TODO find a better way
130
+ functionSelector[4] = TokenRegistry.setActiveWithVersionCheck.selector;
131
+ _setTargetFunctionRole(address(tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
132
+ }*/
133
+
134
+
135
+ function setTargetFunctionRole(
136
+ address target,
137
+ bytes4[] memory selector,
138
+ RoleId roleId
139
+ )
140
+ external
141
+ restricted // RELEASE_MANAGER_ROLE -> TODO create this role
142
+ {
143
+ _setTargetFunctionRole(target, selector, roleId);
144
+ }
145
+
146
+ /*function transferAdmin(address to)
147
+ external
148
+ restricted // only with GIF_ADMIN_ROLE or nft owner
149
+ {
150
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
151
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
152
+ }*/
153
+
154
+ //--- view functions ----------------------------------------------------//
155
+
156
+ function hasRole(address account, RoleId roleId) external view returns(bool) {
157
+ (bool isMember,) = AccessManagerExtendedInitializeable(authority()).hasRole(roleId.toInt(), account);
158
+ return isMember;
159
+ }
160
+
161
+
162
+ function canCall(
163
+ address account,
164
+ address target,
165
+ bytes4 functionSelector
166
+ )
167
+ external
168
+ view
169
+ returns(bool)
170
+ {
171
+ (bool immediate,) = AuthorityUtils.canCallWithDelay(
172
+ authority(),
173
+ account,
174
+ target,
175
+ functionSelector);
176
+
177
+ return immediate;
178
+ }
179
+
180
+ //--- private functions -------------------------------------------------//
181
+
182
+ function _setGifAdminRole() private
183
+ {
184
+ // for ReleaseManager
185
+ bytes4[] memory functionSelector2 = new bytes4[](2);
186
+ //functionSelector2[0] = ReleaseManager.registerStaking.selector;
187
+ functionSelector2[0] = ReleaseManager.createNextRelease.selector;
188
+ functionSelector2[1] = ReleaseManager.activateNextRelease.selector;
189
+
190
+ _setTargetFunctionRole(_releaseManager, functionSelector2, GIF_ADMIN_ROLE());
191
+
192
+ // for Staking
193
+ }
194
+
195
+ function _setGifManagerRole() private
196
+ {
197
+ // for TokenRegistry
198
+ bytes4[] memory functionSelectorTr = new bytes4[](5);
199
+ functionSelectorTr[0] = TokenRegistry.registerToken.selector;
200
+ functionSelectorTr[1] = TokenRegistry.registerRemoteToken.selector;
201
+ functionSelectorTr[2] = TokenRegistry.setActive.selector;
202
+ functionSelectorTr[3] = TokenRegistry.setActiveForVersion.selector;
203
+
204
+ // only needed for testing TODO find a better way
205
+ functionSelectorTr[4] = TokenRegistry.setActiveWithVersionCheck.selector;
206
+ _setTargetFunctionRole(_tokenRegistry, functionSelectorTr, GIF_MANAGER_ROLE());
207
+
208
+ // for ReleaseManager
209
+ bytes4[] memory functionSelectorRm = new bytes4[](2);
210
+ functionSelectorRm[0] = ReleaseManager.registerService.selector;
211
+ functionSelectorRm[1] = ReleaseManager.prepareNextRelease.selector;
212
+ _setTargetFunctionRole(_releaseManager, functionSelectorRm, GIF_MANAGER_ROLE());
213
+
214
+ // for Staking
215
+ }
216
+
217
+
218
+ function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
219
+ AccessManagerExtendedInitializeable(authority()).setTargetFunctionRole(target, selectors, roleId.toInt());
220
+ }
221
+
222
+ function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
223
+ AccessManagerExtendedInitializeable(authority()).setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
224
+ }
225
+
226
+ function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
227
+ AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, executionDelay);
228
+ }
229
+
230
+ function _createRole(RoleId roleId, string memory roleName) private {
231
+ AccessManagerExtendedInitializeable(authority()).createRole(roleId.toInt(), roleName);
232
+ }
233
+
234
+ function _createTarget(address target, string memory targetName) private {
235
+ AccessManagerExtendedInitializeable(authority()).createTarget(target, targetName);
236
+ }
237
+ }
@@ -2,28 +2,26 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ // import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
6
 
7
7
  import {IRegistry} from "./IRegistry.sol";
8
8
  import {IInstance} from "../instance/IInstance.sol";
9
9
 
10
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
12
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
10
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
11
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
12
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
13
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
15
14
 
16
15
  import {IVersionable} from "../../contracts/shared/IVersionable.sol";
17
16
  import {Versionable} from "../../contracts/shared/Versionable.sol";
18
17
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
19
- import {Registerable} from "../../contracts/shared/Registerable.sol";
20
18
 
21
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
23
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
24
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
25
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
26
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
19
+ import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/type/RoleId.sol";
20
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
21
+ import {StateId, ACTIVE, PAUSED} from "../../contracts/type/StateId.sol";
22
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
23
+ import {Fee, FeeLib} from "../../contracts/type/Fee.sol";
24
+ import {Version, VersionPart, VersionLib} from "../../contracts/type/Version.sol";
27
25
 
28
26
  import {Service} from "../shared/Service.sol";
29
27
  import {IService} from "../shared/IService.sol";
@@ -31,7 +29,6 @@ import {IRegistryService} from "./IRegistryService.sol";
31
29
  import {Registry} from "./Registry.sol";
32
30
 
33
31
  contract RegistryService is
34
- AccessManagedUpgradeable,
35
32
  Service,
36
33
  IRegistryService
37
34
  {
@@ -40,88 +37,136 @@ contract RegistryService is
40
37
  // TODO update to real hash when registry is stable
41
38
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
42
39
 
43
- address public constant NFT_LOCK_ADDRESS = address(0x1);
40
+ // From IService
41
+ function getDomain() public pure override returns(ObjectType serviceDomain) {
42
+ return REGISTRY();
43
+ }
44
+
45
+ // from Versionable
46
+
47
+ /// @dev top level initializer
48
+ function _initialize(
49
+ address owner,
50
+ bytes memory data
51
+ )
52
+ internal
53
+ virtual override
54
+ initializer()
55
+ {
56
+ (
57
+ address registryAddress,
58
+ address initialAuthority
59
+ ) = abi.decode(data, (address, address));
60
+
61
+ initializeService(registryAddress, initialAuthority, owner);
62
+ registerInterface(type(IRegistryService).interfaceId);
63
+ }
64
+
65
+
66
+ function registerStaking(IRegisterable staking, address owner)
67
+ external
68
+ virtual
69
+ restricted()
70
+ returns(
71
+ IRegistry.ObjectInfo memory info
72
+ )
73
+ {
74
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
75
+ info.nftId = getRegistry().register(info);
76
+ }
44
77
 
45
78
 
46
- function registerInstance(IRegisterable instance)
79
+ function registerInstance(IRegisterable instance, address owner)
47
80
  external
81
+ virtual
82
+ restricted
48
83
  returns(
49
- IRegistry.ObjectInfo memory info,
50
- bytes memory data
84
+ IRegistry.ObjectInfo memory info
51
85
  )
52
86
  {
53
87
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
54
- revert NotInstance();
88
+ revert ErrorRegistryServiceNotInstance(address(instance));
55
89
  }
56
90
 
57
- (info, data) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
91
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
92
+ info.nftId = getRegistry().register(info);
58
93
 
59
- info.nftId = _registry.register(info);
60
94
  instance.linkToRegisteredNftId(); // asume safe
61
-
62
- return (info, data);
63
95
  }
64
96
 
65
- function registerProduct(IBaseComponent product, address owner)
97
+ function registerProduct(IComponent product, address owner)
66
98
  external
67
99
  restricted
68
100
  returns(
69
- IRegistry.ObjectInfo memory info,
70
- bytes memory data
101
+ IRegistry.ObjectInfo memory info
71
102
  )
72
103
  {
73
104
  // CAN revert if no ERC165 support -> will revert with empty message
74
105
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
75
- revert NotProduct();
106
+ revert ErrorRegistryServiceNotProduct(address(product));
76
107
  }
77
108
 
78
- (info, data) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
109
+ info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
110
+ info.nftId = getRegistry().register(info);
111
+ }
79
112
 
80
- info.nftId = _registry.register(info);
81
- // TODO unsafe, let component or its owner derive nftId latter, when state assumptions and modifications of GIF contracts are finished
82
- product.linkToRegisteredNftId();
113
+ function registerComponent(
114
+ IComponent component,
115
+ ObjectType objectType,
116
+ address initialOwner
117
+ )
118
+ external
119
+ restricted
120
+ returns(
121
+ IRegistry.ObjectInfo memory info
122
+ )
123
+ {
124
+ // CAN revert if no ERC165 support -> will revert with empty message
125
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
126
+ revert ErrorRegistryServiceNotComponent(address(component));
127
+ }
83
128
 
84
- return (info, data);
129
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
130
+ info.nftId = getRegistry().register(info);
85
131
  }
86
132
 
87
- function registerPool(IBaseComponent pool, address owner)
133
+ function registerPool(IComponent pool, address owner)
88
134
  external
89
135
  restricted
90
136
  returns(
91
- IRegistry.ObjectInfo memory info,
92
- bytes memory data
137
+ IRegistry.ObjectInfo memory info
93
138
  )
94
139
  {
95
140
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
96
- revert NotPool();
141
+ revert ErrorRegistryServiceNotPool(address(pool));
97
142
  }
98
143
 
99
- (info, data) = _getAndVerifyContractInfo(pool, POOL(), owner);
100
-
101
- info.nftId = _registry.register(info);
102
- pool.linkToRegisteredNftId();
103
-
104
- return (info, data);
144
+ info = _getAndVerifyContractInfo(pool, POOL(), owner);
145
+ info.nftId = getRegistry().register(info);
105
146
  }
106
147
 
107
- function registerDistribution(IBaseComponent distribution, address owner)
148
+ function registerDistribution(IComponent distribution, address owner)
108
149
  external
109
150
  restricted
110
151
  returns(
111
- IRegistry.ObjectInfo memory info,
112
- bytes memory data
152
+ IRegistry.ObjectInfo memory info
113
153
  )
114
154
  {
115
155
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
116
- revert NotDistribution();
156
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
117
157
  }
118
158
 
119
- (info, data) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
120
-
121
- info.nftId = _registry.register(info);
122
- distribution.linkToRegisteredNftId();
159
+ info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
160
+ info.nftId = getRegistry().register(info);
161
+ }
123
162
 
124
- return (info, data);
163
+ function registerDistributor(IRegistry.ObjectInfo memory info)
164
+ external
165
+ restricted
166
+ returns(NftId nftId)
167
+ {
168
+ _verifyObjectInfo(info, DISTRIBUTOR());
169
+ nftId = getRegistry().register(info);
125
170
  }
126
171
 
127
172
  function registerPolicy(IRegistry.ObjectInfo memory info)
@@ -130,8 +175,7 @@ contract RegistryService is
130
175
  returns(NftId nftId)
131
176
  {
132
177
  _verifyObjectInfo(info, POLICY());
133
-
134
- nftId = _registry.register(info);
178
+ nftId = getRegistry().register(info);
135
179
  }
136
180
 
137
181
  function registerBundle(IRegistry.ObjectInfo memory info)
@@ -140,8 +184,7 @@ contract RegistryService is
140
184
  returns(NftId nftId)
141
185
  {
142
186
  _verifyObjectInfo(info, BUNDLE());
143
-
144
- nftId = _registry.register(info);
187
+ nftId = getRegistry().register(info);
145
188
  }
146
189
 
147
190
  function registerStake(IRegistry.ObjectInfo memory info)
@@ -150,73 +193,7 @@ contract RegistryService is
150
193
  returns(NftId nftId)
151
194
  {
152
195
  _verifyObjectInfo(info, STAKE());
153
-
154
- nftId = _registry.register(info);
155
- }
156
-
157
- // From IService
158
- function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
159
- return REGISTRY();
160
- }
161
-
162
- // from Versionable
163
-
164
- /// @dev top level initializer
165
- function _initialize(
166
- address owner,
167
- bytes memory data
168
- )
169
- internal
170
- initializer
171
- virtual override
172
- {
173
- (
174
- address initialAuthority,
175
- address registry
176
- ) = abi.decode(data, (address, address));
177
-
178
- __AccessManaged_init(initialAuthority);
179
-
180
- _initializeService(address(registry), owner);
181
-
182
- _registerInterface(type(IRegistryService).interfaceId);
183
- }
184
-
185
- // from IRegisterable
186
-
187
- function getInitialInfo()
188
- public
189
- view
190
- override(IRegisterable, Registerable)
191
- returns (IRegistry.ObjectInfo memory info, bytes memory data)
192
- {
193
- (info , data) = super.getInitialInfo();
194
-
195
- FunctionConfig[] memory config = new FunctionConfig[](6);
196
-
197
- // registerInstance() have no restriction
198
- config[0].serviceDomain = INSTANCE();
199
- config[0].selector = RegistryService.registerInstance.selector;
200
-
201
- config[1].serviceDomain = POOL();
202
- config[1].selector = RegistryService.registerPool.selector;
203
-
204
- config[2].serviceDomain = DISTRIBUTION();
205
- config[2].selector = RegistryService.registerDistribution.selector;
206
-
207
- config[3].serviceDomain = PRODUCT();
208
- config[3].selector = RegistryService.registerProduct.selector;
209
-
210
- config[4].serviceDomain = POLICY();
211
- config[4].selector = RegistryService.registerPolicy.selector;
212
-
213
- config[5].serviceDomain = BUNDLE();
214
- config[5].selector = RegistryService.registerBundle.selector;
215
-
216
- /*config[6].serviceDomain = STAKE();
217
- config[6].selector = RegistryService.registerStake.selector;*/
218
-
219
- data = abi.encode(config);
196
+ nftId = getRegistry().register(info);
220
197
  }
221
198
 
222
199
  // Internal
@@ -229,51 +206,36 @@ contract RegistryService is
229
206
  internal
230
207
  view
231
208
  returns(
232
- IRegistry.ObjectInfo memory info,
233
- bytes memory data
209
+ IRegistry.ObjectInfo memory info
234
210
  )
235
211
  {
236
- (
237
- info,
238
- data
239
- ) = registerable.getInitialInfo();
240
- info.objectAddress = address(registerable);
212
+ info = registerable.getInitialInfo();
213
+
214
+ if(info.objectAddress != address(registerable)) {
215
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
216
+ }
241
217
 
242
218
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
243
- revert UnexpectedRegisterableType(expectedType, info.objectType);
219
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
244
220
  }
245
221
 
246
222
  address owner = info.initialOwner;
247
223
 
248
- // solhint-disable-next-line
249
- if(expectedType == INSTANCE()) {
250
- // any address may create a new instance via instance service
251
- } else {
252
- if(owner != expectedOwner) { // registerable owner protection
253
- revert NotRegisterableOwner(expectedOwner);
254
- }
224
+ if(owner != expectedOwner) { // registerable owner protection
225
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
255
226
  }
256
227
 
257
228
  if(owner == address(registerable)) {
258
- revert SelfRegistration();
229
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
259
230
  }
260
231
 
261
232
  if(owner == address(0)) {
262
- revert RegisterableOwnerIsZero();
233
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
263
234
  }
264
235
 
265
236
  if(getRegistry().isRegistered(owner)) {
266
- revert RegisterableOwnerIsRegistered();
237
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
267
238
  }
268
-
269
- /*NftId parentNftId = info.parentNftId;
270
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
271
-
272
- if(parentInfo.objectType != parentType) { // parent registration + type
273
- revert InvalidParent(parentNftId);
274
- }*/
275
-
276
- return(info, data);
277
239
  }
278
240
 
279
241
  function _verifyObjectInfo(
@@ -283,41 +245,22 @@ contract RegistryService is
283
245
  internal
284
246
  view
285
247
  {
286
- // enforce instead of check
287
- info.objectAddress = address(0);
248
+ if(info.objectAddress > address(0)) {
249
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
250
+ }
288
251
 
289
252
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
290
- revert UnexpectedRegisterableType(expectedType, info.objectType);
253
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
291
254
  }
292
255
 
293
256
  address owner = info.initialOwner;
294
257
 
295
258
  if(owner == address(0)) {
296
- revert RegisterableOwnerIsZero();
259
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
297
260
  }
298
261
 
299
262
  if(getRegistry().isRegistered(owner)) {
300
- revert RegisterableOwnerIsRegistered();
301
- }
302
-
303
- // can catch all 3 if check that initialOwner is not registered
304
- /*if(info.initialOwner == msg.sender) {
305
- revert InitialOwnerIsParent();
306
- }
307
-
308
- if(info.initialOwner == address(this)) {
309
- revert InitialOwnerIsService();
263
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
310
264
  }
311
-
312
- if(info.initialOwner == address(getRegistry())) {
313
- revert InitialOwnerIsRegistry();
314
- }*/
315
-
316
- /*NftId parentNftId = info.parentNftId;
317
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
318
-
319
- if(parentInfo.objectType != parentType) { // parent registration + type
320
- revert InvalidParent(parentNftId);
321
- }*/
322
265
  }
323
- }
266
+ }