@etherisc/gif-next 0.0.2-b9e9dc3-713 → 0.0.2-bab959f-058

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 (657) hide show
  1. package/README.md +106 -16
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +499 -549
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1234 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +547 -246
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +482 -146
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +399 -2954
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +787 -314
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +680 -223
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -76
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3581 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  71. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  73. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  74. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  75. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1526 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  95. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1513 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  101. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  103. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1002 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1267 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  107. package/artifacts/contracts/pool/Pool.sol/Pool.json +1312 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1706 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +774 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  113. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  115. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  119. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  125. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +236 -190
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPolicyService.sol/IPolicyService.json} +358 -389
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +266 -278
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  133. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  134. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +145 -166
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  144. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  145. package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  151. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +525 -59
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  155. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +346 -278
  156. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  158. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/Registry.sol/Registry.json +822 -277
  160. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  162. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +530 -339
  164. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +346 -129
  166. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  168. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  170. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  171. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  172. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  173. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  174. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  176. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1696 -0
  178. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
  180. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +235 -164
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  201. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +107 -75
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1015 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  212. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  213. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  223. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +198 -172
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  233. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  286. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  294. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  298. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  299. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  301. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  303. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  304. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  305. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  306. package/contracts/authorization/AccessAdmin.sol +591 -0
  307. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  308. package/contracts/authorization/Authorization.sol +218 -0
  309. package/contracts/authorization/IAccess.sol +48 -0
  310. package/contracts/authorization/IAccessAdmin.sol +136 -0
  311. package/contracts/authorization/IAuthorization.sol +54 -0
  312. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  313. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  314. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  315. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  316. package/contracts/distribution/BasicDistribution.sol +138 -0
  317. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  318. package/contracts/distribution/Distribution.sol +295 -0
  319. package/contracts/distribution/DistributionService.sol +337 -0
  320. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  321. package/contracts/distribution/IDistributionComponent.sol +52 -0
  322. package/contracts/distribution/IDistributionService.sol +97 -0
  323. package/contracts/instance/BundleSet.sol +126 -0
  324. package/contracts/instance/IInstance.sol +74 -16
  325. package/contracts/instance/IInstanceService.sol +84 -9
  326. package/contracts/instance/Instance.sol +184 -366
  327. package/contracts/instance/InstanceAdmin.sol +266 -0
  328. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  329. package/contracts/instance/InstanceReader.sol +188 -63
  330. package/contracts/instance/InstanceService.sol +398 -57
  331. package/contracts/instance/InstanceServiceManager.sol +13 -29
  332. package/contracts/instance/InstanceStore.sol +277 -0
  333. package/contracts/instance/base/BalanceStore.sol +123 -0
  334. package/contracts/instance/base/Cloneable.sol +28 -0
  335. package/contracts/instance/base/ObjectCounter.sol +21 -0
  336. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  337. package/contracts/instance/base/ObjectSet.sol +79 -0
  338. package/contracts/instance/module/IAccess.sol +29 -21
  339. package/contracts/instance/module/IBundle.sol +8 -7
  340. package/contracts/instance/module/IComponents.sol +52 -0
  341. package/contracts/instance/module/IDistribution.sol +6 -4
  342. package/contracts/instance/module/IPolicy.sol +56 -17
  343. package/contracts/instance/module/IRisk.sol +1 -1
  344. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  345. package/contracts/oracle/BasicOracle.sol +48 -0
  346. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  347. package/contracts/oracle/IOracle.sol +36 -0
  348. package/contracts/oracle/IOracleComponent.sol +33 -0
  349. package/contracts/oracle/IOracleService.sol +65 -0
  350. package/contracts/oracle/Oracle.sol +166 -0
  351. package/contracts/oracle/OracleService.sol +278 -0
  352. package/contracts/oracle/OracleServiceManager.sol +39 -0
  353. package/contracts/pool/BasicPool.sol +166 -0
  354. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  355. package/contracts/pool/BundleService.sol +434 -0
  356. package/contracts/pool/BundleServiceManager.sol +39 -0
  357. package/contracts/pool/IBundleService.sol +132 -0
  358. package/contracts/pool/IPoolComponent.sol +58 -0
  359. package/contracts/pool/IPoolService.sol +158 -0
  360. package/contracts/pool/Pool.sol +332 -0
  361. package/contracts/pool/PoolService.sol +562 -0
  362. package/contracts/pool/PoolServiceManager.sol +39 -0
  363. package/contracts/product/ApplicationService.sol +230 -0
  364. package/contracts/product/ApplicationServiceManager.sol +38 -0
  365. package/contracts/product/BasicProduct.sol +82 -0
  366. package/contracts/product/BasicProductAuthorization.sol +43 -0
  367. package/contracts/product/ClaimService.sol +417 -0
  368. package/contracts/product/ClaimServiceManager.sol +38 -0
  369. package/contracts/product/IApplicationService.sol +62 -0
  370. package/contracts/product/IClaimService.sol +99 -0
  371. package/contracts/product/IPolicyService.sol +78 -0
  372. package/contracts/product/IPricingService.sol +39 -0
  373. package/contracts/product/IProductComponent.sol +40 -0
  374. package/contracts/product/IProductService.sol +33 -0
  375. package/contracts/product/PolicyService.sol +476 -0
  376. package/contracts/product/PolicyServiceManager.sol +39 -0
  377. package/contracts/product/PricingService.sol +300 -0
  378. package/contracts/product/PricingServiceManager.sol +39 -0
  379. package/contracts/product/Product.sol +392 -0
  380. package/contracts/product/ProductService.sol +99 -0
  381. package/contracts/product/ProductServiceManager.sol +39 -0
  382. package/contracts/registry/ChainNft.sol +15 -0
  383. package/contracts/registry/IRegistry.sol +91 -14
  384. package/contracts/registry/IRegistryService.sol +54 -20
  385. package/contracts/registry/ITransferInterceptor.sol +1 -0
  386. package/contracts/registry/Registry.sol +396 -243
  387. package/contracts/registry/RegistryAdmin.sol +365 -0
  388. package/contracts/registry/RegistryService.sol +120 -308
  389. package/contracts/registry/RegistryServiceManager.sol +27 -38
  390. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  391. package/contracts/registry/ReleaseRegistry.sol +485 -0
  392. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  393. package/contracts/registry/TokenRegistry.sol +315 -0
  394. package/contracts/shared/Component.sol +280 -0
  395. package/contracts/shared/ComponentService.sol +651 -0
  396. package/contracts/shared/ComponentServiceManager.sol +35 -0
  397. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  398. package/contracts/shared/IComponent.sol +70 -0
  399. package/contracts/shared/IComponentService.sol +108 -0
  400. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  401. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  402. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  403. package/contracts/shared/INftOwnable.sol +13 -12
  404. package/contracts/shared/IPolicyHolder.sol +45 -0
  405. package/contracts/shared/IRegisterable.sol +4 -6
  406. package/contracts/shared/IRegistryLinked.sol +11 -0
  407. package/contracts/shared/IService.sol +25 -0
  408. package/contracts/shared/InitializableCustom.sol +177 -0
  409. package/contracts/shared/InitializableERC165.sol +27 -0
  410. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  411. package/contracts/shared/KeyValueStore.sol +131 -0
  412. package/contracts/shared/Lifecycle.sol +77 -0
  413. package/contracts/shared/NftIdSet.sol +65 -0
  414. package/contracts/shared/NftOwnable.sol +60 -89
  415. package/contracts/shared/PolicyHolder.sol +99 -0
  416. package/contracts/shared/Registerable.sol +26 -40
  417. package/contracts/shared/RegistryLinked.sol +43 -0
  418. package/contracts/shared/Service.sol +82 -0
  419. package/contracts/shared/TokenHandler.sol +37 -6
  420. package/contracts/staking/IStaking.sol +167 -0
  421. package/contracts/staking/IStakingService.sol +160 -0
  422. package/contracts/staking/StakeManagerLib.sol +231 -0
  423. package/contracts/staking/Staking.sol +516 -0
  424. package/contracts/staking/StakingLifecycle.sol +23 -0
  425. package/contracts/staking/StakingManager.sol +50 -0
  426. package/contracts/staking/StakingReader.sol +183 -0
  427. package/contracts/staking/StakingService.sol +411 -0
  428. package/contracts/staking/StakingServiceManager.sol +44 -0
  429. package/contracts/staking/StakingStore.sol +605 -0
  430. package/contracts/staking/TargetManagerLib.sol +207 -0
  431. package/contracts/{types → type}/AddressSet.sol +1 -1
  432. package/contracts/type/Amount.sol +135 -0
  433. package/contracts/{types → type}/Blocknumber.sol +21 -3
  434. package/contracts/type/ClaimId.sol +75 -0
  435. package/contracts/{types → type}/DistributorType.sol +2 -2
  436. package/contracts/{types → type}/Fee.sol +33 -23
  437. package/contracts/{types → type}/NftId.sol +21 -15
  438. package/contracts/type/NftIdSet.sol +62 -0
  439. package/contracts/type/ObjectType.sol +271 -0
  440. package/contracts/type/PayoutId.sol +82 -0
  441. package/contracts/{types → type}/Referral.sol +6 -1
  442. package/contracts/type/RequestId.sol +75 -0
  443. package/contracts/{types → type}/RiskId.sol +1 -1
  444. package/contracts/type/RoleId.sol +174 -0
  445. package/contracts/type/Seconds.sol +93 -0
  446. package/contracts/type/Selector.sol +102 -0
  447. package/contracts/{types → type}/StateId.sol +38 -4
  448. package/contracts/type/String.sol +53 -0
  449. package/contracts/{types → type}/Timestamp.sol +23 -14
  450. package/contracts/{types → type}/UFixed.sol +35 -9
  451. package/contracts/{types → type}/Version.sol +8 -2
  452. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  453. package/contracts/upgradeability/ProxyManager.sol +198 -0
  454. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  455. package/contracts/upgradeability/Versionable.sol +59 -0
  456. package/package.json +10 -7
  457. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  458. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  459. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  460. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  461. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  462. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  463. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  464. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  465. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  466. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  467. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  468. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  469. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  470. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  471. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  472. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  474. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  476. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  478. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  480. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  482. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  484. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  486. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  488. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  490. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  492. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  495. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  497. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  499. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  502. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  504. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  506. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  508. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  510. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  511. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  512. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  513. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  514. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  515. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  516. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  517. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  518. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  519. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  520. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  521. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  522. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  523. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  524. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  526. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  531. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  534. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  536. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  537. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  538. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  539. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  540. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  542. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  543. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  544. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  545. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  546. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  547. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  548. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  549. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  550. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  551. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  552. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  553. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  554. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  555. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  556. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  557. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  558. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  559. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  560. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  561. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  562. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  563. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  564. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  565. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  566. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  568. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  570. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  572. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  574. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  576. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  577. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  578. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  579. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  580. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  581. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  582. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  584. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  586. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  588. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  590. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  593. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  594. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  595. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  597. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  599. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  601. package/contracts/components/BaseComponent.sol +0 -86
  602. package/contracts/components/Distribution.sol +0 -166
  603. package/contracts/components/IBaseComponent.sol +0 -24
  604. package/contracts/components/IDistributionComponent.sol +0 -43
  605. package/contracts/components/IPoolComponent.sol +0 -62
  606. package/contracts/components/IProductComponent.sol +0 -35
  607. package/contracts/components/Pool.sol +0 -259
  608. package/contracts/components/Product.sol +0 -297
  609. package/contracts/experiment/cloning/Cloner.sol +0 -47
  610. package/contracts/experiment/errors/Require.sol +0 -38
  611. package/contracts/experiment/errors/Revert.sol +0 -44
  612. package/contracts/experiment/inheritance/A.sol +0 -53
  613. package/contracts/experiment/inheritance/B.sol +0 -28
  614. package/contracts/experiment/inheritance/C.sol +0 -34
  615. package/contracts/experiment/inheritance/IA.sol +0 -13
  616. package/contracts/experiment/inheritance/IB.sol +0 -10
  617. package/contracts/experiment/inheritance/IC.sol +0 -12
  618. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  619. package/contracts/experiment/statemachine/ISM.sol +0 -25
  620. package/contracts/experiment/statemachine/SM.sol +0 -57
  621. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  622. package/contracts/experiment/types/TypeA.sol +0 -47
  623. package/contracts/experiment/types/TypeB.sol +0 -29
  624. package/contracts/instance/AccessManagedSimple.sol +0 -114
  625. package/contracts/instance/AccessManagerSimple.sol +0 -682
  626. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  627. package/contracts/instance/InstanceAccessManager.sol +0 -288
  628. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  629. package/contracts/instance/base/IInstanceBase.sol +0 -23
  630. package/contracts/instance/base/IService.sol +0 -15
  631. package/contracts/instance/base/KeyValueStore.sol +0 -172
  632. package/contracts/instance/base/Lifecycle.sol +0 -100
  633. package/contracts/instance/base/ServiceBase.sol +0 -44
  634. package/contracts/instance/module/ISetup.sol +0 -43
  635. package/contracts/instance/module/ITreasury.sol +0 -23
  636. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  637. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  638. package/contracts/instance/service/IDistributionService.sol +0 -12
  639. package/contracts/instance/service/IPoolService.sol +0 -37
  640. package/contracts/instance/service/IProductService.sol +0 -107
  641. package/contracts/shared/ContractDeployerLib.sol +0 -72
  642. package/contracts/shared/ERC165.sol +0 -21
  643. package/contracts/shared/ProxyManager.sol +0 -94
  644. package/contracts/shared/Versionable.sol +0 -147
  645. package/contracts/test/TestFee.sol +0 -25
  646. package/contracts/test/TestRegisterable.sol +0 -18
  647. package/contracts/test/TestRoleId.sol +0 -14
  648. package/contracts/test/TestService.sol +0 -26
  649. package/contracts/test/TestToken.sol +0 -26
  650. package/contracts/test/TestVersion.sol +0 -44
  651. package/contracts/test/TestVersionable.sol +0 -17
  652. package/contracts/types/ChainId.sol +0 -38
  653. package/contracts/types/NftIdSet.sol +0 -60
  654. package/contracts/types/NumberId.sol +0 -52
  655. package/contracts/types/ObjectType.sol +0 -152
  656. package/contracts/types/RoleId.sol +0 -82
  657. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,266 +1,153 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
6
- import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
7
- import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
8
-
9
- import {IRegistry} from "./IRegistry.sol";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
10
6
  import {IInstance} from "../instance/IInstance.sol";
11
-
12
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
13
- // import {IComponent, IComponentModule} from "../../contracts/instance/module/component/IComponent.sol";
14
- // import {IPool} from "../../contracts/instance/module/pool/IPoolModule.sol";
15
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
16
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
17
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
18
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
19
-
20
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
21
- import {Versionable} from "../../contracts/shared/Versionable.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
22
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
23
-
24
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
25
- import {ObjectType, REGISTRY, TOKEN, SERVICE, PRODUCT, ORACLE, POOL, TOKEN, INSTANCE, DISTRIBUTION, POLICY, BUNDLE} from "../../contracts/types/ObjectType.sol";
26
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
27
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
28
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
29
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
30
-
31
- import {ServiceBase} from "../../contracts/instance/base/ServiceBase.sol";
32
- import {IService} from "../../contracts/instance/base/IService.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
33
11
  import {IRegistryService} from "./IRegistryService.sol";
34
- import {Registry} from "./Registry.sol";
35
- import {ChainNft} from "./ChainNft.sol";
12
+
13
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
14
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
15
+ import {Service} from "../shared/Service.sol";
36
16
 
37
17
  contract RegistryService is
38
- AccessManagedUpgradeable,
39
- ServiceBase,
18
+ Service,
40
19
  IRegistryService
41
20
  {
42
21
  using NftIdLib for NftId;
43
22
 
44
- error SelfRegistration();
45
- error NotRegistryOwner();
46
-
47
- error NotToken();
48
- error NotService();
49
- error NotInstance();
50
- error NotProduct();
51
- error NotPool();
52
- error NotDistribution();
53
-
54
- error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
55
- error NotRegisterableOwner(address expectedOwner);
56
- error RegisterableOwnerIsZero();
57
- error RegisterableOwnerIsRegistered();
58
- error InvalidInitialOwner(address initialOwner);
59
- error InvalidAddress(address registerableAddress);
60
-
61
-
62
- // Initial value for constant variable has to be compile-time constant
63
- // TODO define types as constants?
64
- //ObjectType public constant SERVICE_TYPE = REGISTRY();
65
- string public constant NAME = "RegistryService";
66
-
67
23
  // TODO update to real hash when registry is stable
68
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
69
25
 
70
- address public constant NFT_LOCK_ADDRESS = address(0x1);
71
-
72
- /// @dev
73
- // msg.sender - ONLY registry owner
74
- // CAN NOT register itself
75
- // CAN NOT register IRegisterable address
76
- // CAN register ONLY valid object-parent types combinations for TOKEN
77
- // IMPORTANT: MUST NOT call untrusted contract inbetween calls to registry/instance (trusted contracts)
78
- // motivation: registry/instance state may change during external call
79
- // TODO it may be usefull to have transferable token nft in order to delist token, make it invalid for new beginings
80
- // TODO: MUST prohibit registration of precompiles addresses
81
- function registerToken(address tokenAddress)
82
- external
83
- returns(NftId nftId)
84
- {
85
- if(msg.sender == tokenAddress) {
86
- revert SelfRegistration();
87
- }
88
-
89
- // MUST not revert if no ERC165 support
90
- if(tokenAddress.code.length == 0 ||
91
- ERC165Checker.supportsInterface(tokenAddress, type(IRegisterable).interfaceId)) {
92
- revert NotToken();
93
- }
94
-
95
- NftId registryNftId = _registry.getNftId(address(_registry));
26
+ // from Versionable
96
27
 
97
- if(msg.sender != _registry.ownerOf(registryNftId)) {
98
- revert NotRegistryOwner();
99
- }
28
+ /// @dev top level initializer
29
+ function _initialize(
30
+ address owner,
31
+ bytes memory data
32
+ )
33
+ internal
34
+ virtual override
35
+ initializer()
36
+ {
37
+ (
38
+ address registryAddress,
39
+ address initialAuthority
40
+ ) = abi.decode(data, (address, address));
100
41
 
101
- IRegistry.ObjectInfo memory info = IRegistry.ObjectInfo(
102
- zeroNftId(), // any value
103
- registryNftId, // parent nft id
104
- TOKEN(),
105
- false, // isInterceptor
106
- tokenAddress,
107
- NFT_LOCK_ADDRESS,
108
- "" // any value
109
- );
110
-
111
- nftId = _registry.register(info);
42
+ initializeService(registryAddress, initialAuthority, owner);
43
+ registerInterface(type(IRegistryService).interfaceId);
112
44
  }
113
45
 
114
- /// @dev
115
- // msg.sender - ONLY registry owner
116
- // CAN NOT register itself
117
- // CAN register ONLY valid object-parent types combinations for SERVICE
118
- // CAN register ONLY IRegisterable address he owns
119
- // IMPORTANT: MUST NOT check owner before calling external contract
120
- function registerService(IService service)
121
- external
122
- // TODO restrict access - registryService.registerService must use accessmanager for checking permissions as
123
- // services are not always owned by registry owner - actually only registry service is owned by registry owner
124
46
 
47
+ function registerStaking(IRegisterable staking, address owner)
48
+ external
49
+ virtual
50
+ restricted()
125
51
  returns(
126
- IRegistry.ObjectInfo memory info,
127
- bytes memory data
128
- )
52
+ IRegistry.ObjectInfo memory info
53
+ )
129
54
  {
130
-
131
- // CAN revert if no ERC165 support -> will revert with empty message
132
- if(!service.supportsInterface(type(IService).interfaceId)) {
133
- revert NotService();
134
- }
135
-
136
- (
137
- info,
138
- data
139
- ) = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
140
-
141
- info.nftId = _registry.register(info);
142
- service.linkToRegisteredNftId();
143
- return (
144
- info,
145
- data
146
- );
55
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
56
+ info.nftId = getRegistry().register(info);
147
57
  }
148
58
 
149
- // If msg.sender is approved service:
150
- // 1) add owner arg (service MUST pass it's msg.sender as owner)
151
- // 2) check service allowance
152
- // 3) comment self registrstion check
153
- //function registerInstance(IRegisterable instance, address owner)
154
- function registerInstance(IRegisterable instance)
59
+
60
+ function registerInstance(IRegisterable instance, address owner)
155
61
  external
62
+ virtual
63
+ restricted
156
64
  returns(
157
- IRegistry.ObjectInfo memory info,
158
- bytes memory data
65
+ IRegistry.ObjectInfo memory info
159
66
  )
160
67
  {
161
-
162
68
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
163
- revert NotInstance();
69
+ revert ErrorRegistryServiceNotInstance(address(instance));
164
70
  }
165
71
 
166
- (
167
- info,
168
- data
169
- ) = _getAndVerifyContractInfo(instance, INSTANCE(), msg.sender);
72
+ info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
73
+ info.nftId = getRegistry().register(info);
170
74
 
171
- info.nftId = _registry.register(info);
172
75
  instance.linkToRegisteredNftId(); // asume safe
173
-
174
- return (
175
- info,
176
- data
177
- );
178
76
  }
179
77
 
180
- function registerProduct(IBaseComponent product, address owner)
78
+ function registerProduct(IComponent product, address owner)
181
79
  external
182
80
  restricted
183
81
  returns(
184
- IRegistry.ObjectInfo memory info,
185
- bytes memory data
82
+ IRegistry.ObjectInfo memory info
186
83
  )
187
84
  {
188
85
  // CAN revert if no ERC165 support -> will revert with empty message
189
86
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
190
- revert NotProduct();
87
+ revert ErrorRegistryServiceNotProduct(address(product));
191
88
  }
192
89
 
193
- (
194
- info,
195
- data
196
- ) = _getAndVerifyContractInfo(product, PRODUCT(), owner);
197
-
198
- NftId serviceNftId = _registry.getNftId(msg.sender);
90
+ info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ info.nftId = getRegistry().register(info);
92
+ }
199
93
 
200
- info.nftId = _registry.register(info);
201
- // TODO unsafe, let component or its owner derive nftId latter, when state assumptions and modifications of GIF contracts are finished
202
- product.linkToRegisteredNftId();
94
+ function registerComponent(
95
+ IComponent component,
96
+ ObjectType objectType,
97
+ address initialOwner
98
+ )
99
+ external
100
+ restricted
101
+ returns(
102
+ IRegistry.ObjectInfo memory info
103
+ )
104
+ {
105
+ // CAN revert if no ERC165 support -> will revert with empty message
106
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
107
+ revert ErrorRegistryServiceNotComponent(address(component));
108
+ }
203
109
 
204
- return (
205
- info,
206
- data
207
- );
110
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
111
+ info.nftId = getRegistry().register(info);
208
112
  }
209
113
 
210
- function registerPool(IBaseComponent pool, address owner)
114
+ function registerPool(IComponent pool, address owner)
211
115
  external
212
116
  restricted
213
117
  returns(
214
- IRegistry.ObjectInfo memory info,
215
- bytes memory data
118
+ IRegistry.ObjectInfo memory info
216
119
  )
217
120
  {
218
121
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
219
- revert NotPool();
122
+ revert ErrorRegistryServiceNotPool(address(pool));
220
123
  }
221
124
 
222
- (
223
- info,
224
- data
225
- ) = _getAndVerifyContractInfo(pool, POOL(), owner);
226
-
227
- NftId serviceNftId = _registry.getNftId(msg.sender);
228
-
229
- info.nftId = _registry.register(info);
230
- pool.linkToRegisteredNftId();
231
-
232
- return (
233
- info,
234
- data
235
- );
125
+ info = _getAndVerifyContractInfo(pool, POOL(), owner);
126
+ info.nftId = getRegistry().register(info);
236
127
  }
237
128
 
238
- function registerDistribution(IBaseComponent distribution, address owner)
129
+ function registerDistribution(IComponent distribution, address owner)
239
130
  external
240
131
  restricted
241
132
  returns(
242
- IRegistry.ObjectInfo memory info,
243
- bytes memory data
133
+ IRegistry.ObjectInfo memory info
244
134
  )
245
135
  {
246
136
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
247
- revert NotDistribution();
137
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
248
138
  }
249
139
 
250
- (
251
- info,
252
- data
253
- ) = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
254
-
255
- NftId serviceNftId = _registry.getNftId(msg.sender);
256
-
257
- info.nftId = _registry.register(info);
258
- distribution.linkToRegisteredNftId();
140
+ info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
141
+ info.nftId = getRegistry().register(info);
142
+ }
259
143
 
260
- return (
261
- info,
262
- data
263
- );
144
+ function registerDistributor(IRegistry.ObjectInfo memory info)
145
+ external
146
+ restricted
147
+ returns(NftId nftId)
148
+ {
149
+ _verifyObjectInfo(info, DISTRIBUTOR());
150
+ nftId = getRegistry().register(info);
264
151
  }
265
152
 
266
153
  function registerPolicy(IRegistry.ObjectInfo memory info)
@@ -268,11 +155,8 @@ contract RegistryService is
268
155
  restricted
269
156
  returns(NftId nftId)
270
157
  {
271
- NftId senderNftId = _registry.getNftId(msg.sender);
272
-
273
158
  _verifyObjectInfo(info, POLICY());
274
-
275
- nftId = _registry.register(info);
159
+ nftId = getRegistry().register(info);
276
160
  }
277
161
 
278
162
  function registerBundle(IRegistry.ObjectInfo memory info)
@@ -280,161 +164,89 @@ contract RegistryService is
280
164
  restricted
281
165
  returns(NftId nftId)
282
166
  {
283
-
284
- NftId senderNftId = _registry.getNftId(msg.sender);
285
-
286
167
  _verifyObjectInfo(info, BUNDLE());
287
-
288
- nftId = _registry.register(info);
168
+ nftId = getRegistry().register(info);
289
169
  }
290
170
 
291
-
292
- // From IService
293
- function getName() public pure override(IService, ServiceBase) returns(string memory) {
294
- return NAME;
295
- }
296
- //function getType() public pure override(IService, ServiceBase) returns(ObjectType serviceType) {
297
- // return SERVICE_TYPE;
298
- //}
299
-
300
-
301
- // from Versionable
302
-
303
- /// @dev top level initializer
304
- // 1) registry is non upgradeable -> don't need a proxy and uses constructor !
305
- // 2) deploy registry service first -> from its initialization func it is easier to deploy registry then vice versa
306
- // 3) deploy registry -> pass registry service address as constructor argument
307
- // registry is getting instantiated and locked to registry service address forever
308
- function _initialize(
309
- address owner,
310
- bytes memory data
311
- )
312
- internal
313
- initializer
314
- virtual override
171
+ function registerStake(IRegistry.ObjectInfo memory info)
172
+ external
173
+ restricted
174
+ returns(NftId nftId)
315
175
  {
316
- (
317
- address initialAuthority,
318
- bytes memory registryByteCodeWithInitCode
319
- ) = abi.decode(data, (address, bytes));
320
-
321
- __AccessManaged_init(initialAuthority);
322
-
323
- bytes memory encodedConstructorArguments = abi.encode(
324
- owner,
325
- getMajorVersion());
326
-
327
- bytes memory registryCreationCode = ContractDeployerLib.getCreationCode(
328
- registryByteCodeWithInitCode,
329
- encodedConstructorArguments);
330
-
331
- IRegistry registry = IRegistry(ContractDeployerLib.deploy(
332
- registryCreationCode,
333
- REGISTRY_CREATION_CODE_HASH));
334
-
335
- NftId registryNftId = registry.getNftId(address(registry));
336
-
337
- _initializeServiceBase(address(registry), registryNftId, owner);
338
-
339
- // TODO why do registry service proxy need to keep its nftId??? -> no registryServiceNftId checks in implementation
340
- // if they are -> use registry address to obtain owner of registry service nft (works the same with any registerable and(or) implementation)
341
- linkToRegisteredNftId();
342
- _registerInterface(type(IRegistryService).interfaceId);
176
+ _verifyObjectInfo(info, STAKE());
177
+ nftId = getRegistry().register(info);
343
178
  }
344
179
 
345
- // parent check done in registry because of approve()
180
+ // Internal
181
+
346
182
  function _getAndVerifyContractInfo(
347
183
  IRegisterable registerable,
348
184
  ObjectType expectedType, // assume can be valid only
349
- address expectedOwner // assume can be 0
185
+ address expectedOwner // assume can be 0 when given by other service
350
186
  )
351
187
  internal
352
188
  view
353
189
  returns(
354
- IRegistry.ObjectInfo memory info,
355
- bytes memory data
190
+ IRegistry.ObjectInfo memory info
356
191
  )
357
192
  {
358
- (
359
- info,
360
- data
361
- ) = registerable.getInitialInfo();
362
- info.objectAddress = address(registerable);
193
+ info = registerable.getInitialInfo();
194
+
195
+ if(info.objectAddress != address(registerable)) {
196
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
197
+ }
363
198
 
364
199
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
365
- revert UnexpectedRegisterableType(expectedType, info.objectType);
200
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
366
201
  }
367
202
 
368
203
  address owner = info.initialOwner;
369
204
 
370
205
  if(owner != expectedOwner) { // registerable owner protection
371
- revert NotRegisterableOwner(expectedOwner);
206
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
372
207
  }
373
208
 
374
209
  if(owner == address(registerable)) {
375
- revert SelfRegistration();
210
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
376
211
  }
377
212
 
378
213
  if(owner == address(0)) {
379
- revert RegisterableOwnerIsZero();
214
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
380
215
  }
381
216
 
382
217
  if(getRegistry().isRegistered(owner)) {
383
- revert RegisterableOwnerIsRegistered();
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
384
219
  }
385
-
386
- /*NftId parentNftId = info.parentNftId;
387
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
388
-
389
- if(parentInfo.objectType != parentType) { // parent registration + type
390
- revert InvalidParent(parentNftId);
391
- }*/
392
-
393
- return(
394
- info,
395
- data
396
- );
397
220
  }
398
221
 
399
- // parent checks done in registry because of approve()
400
222
  function _verifyObjectInfo(
401
223
  IRegistry.ObjectInfo memory info,
402
- ObjectType objectType
224
+ ObjectType expectedType
403
225
  )
404
226
  internal
405
227
  view
406
228
  {
407
229
  if(info.objectAddress > address(0)) {
408
- revert InvalidAddress(info.objectAddress);
230
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
409
231
  }
410
232
 
411
- if(
412
- getRegistry().isRegistered(info.initialOwner) ||
413
- info.initialOwner == address(0)) {
414
- // TODO non registered address can register object(e.g. POLICY()) and then transfer associated nft to registered contract
415
- // what are motivations to do so?
416
- // at least registered contract can not register objects by itself, SERVICE,
417
- revert InvalidInitialOwner(info.initialOwner);
233
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
234
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
418
235
  }
419
236
 
420
- // can catch all 3 if check that initialOwner is not registered
421
- /*if(info.initialOwner == msg.sender) {
422
- revert InitialOwnerIsParent();
423
- }
237
+ address owner = info.initialOwner;
424
238
 
425
- if(info.initialOwner == address(this)) {
426
- revert InitialOwnerIsService();
239
+ if(owner == address(0)) {
240
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
427
241
  }
428
242
 
429
- if(info.initialOwner == address(getRegistry())) {
430
- revert InitialOwnerIsRegistry();
431
- }*/
432
-
433
- /*NftId parentNftId = info.parentNftId;
434
- IRegistry.ObjectInfo memory parentInfo = getRegistry().getObjectInfo(parentNftId);
243
+ if(getRegistry().isRegistered(owner)) {
244
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
245
+ }
246
+ }
435
247
 
436
- if(parentInfo.objectType != parentType) { // parent registration + type
437
- revert InvalidParent(parentNftId);
438
- }*/
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
439
251
  }
440
- }
252
+ }
@@ -1,51 +1,48 @@
1
- // SPDX-License-Identifier: UNLICENSED
1
+ // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
-
6
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
7
-
8
- import {Registry} from "./Registry.sol";
9
- import {IVersionable} from "../shared/IVersionable.sol";
10
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
11
6
  import {RegistryService} from "./RegistryService.sol";
12
7
 
13
-
14
8
  contract RegistryServiceManager is
15
9
  ProxyManager
16
10
  {
17
- bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
11
+ error ErrorRegistryAccessManagerAuthorityZero();
12
+ error ErrorRegistryAccessManagerRegistryZero();
18
13
 
19
- RegistryService private _registryService;
14
+ bytes32 constant public ACCESS_MANAGER_CREATION_CODE_HASH = 0x0;
20
15
 
21
- AccessManager private _accessManager;
16
+ RegistryService private immutable _registryService;
22
17
 
23
18
  /// @dev initializes proxy manager with registry service implementation and deploys registry
24
19
  constructor(
25
- address accessManager
26
- )
27
- ProxyManager()
20
+ address authority, // used by implementation
21
+ address registry, // used by implementation
22
+ bytes32 salt
23
+ )
24
+ ProxyManager(registry)
28
25
  {
29
- _accessManager = AccessManager(accessManager);
30
-
31
- bytes memory initializationData = abi.encode(accessManager, type(Registry).creationCode);
32
-
33
- IVersionable versionable = deploy(
34
- address(new RegistryService()),
35
- initializationData);
26
+ if(authority == address(0)) {
27
+ revert ErrorRegistryAccessManagerAuthorityZero();
28
+ }
29
+
30
+ if(registry == address(0)) {
31
+ revert ErrorRegistryAccessManagerRegistryZero();
32
+ }
33
+
34
+ RegistryService srv = new RegistryService{ salt: salt }();
35
+ bytes memory data = abi.encode(registry, authority);
36
+ IVersionable versionable = deployDetermenistic(
37
+ address(srv),
38
+ data,
39
+ salt);
36
40
 
37
41
  _registryService = RegistryService(address(versionable));
38
-
39
- // link ownership of registry service manager ot nft owner of registry service
40
- _linkToNftOwnable(
41
- address(_registryService.getRegistry()),
42
- address(_registryService));
43
-
44
- // implies that after this constructor call only upgrade functionality is available
45
- _isDeployed = true;
46
42
  }
47
43
 
48
44
  //--- view functions ----------------------------------------------------//
45
+
49
46
  function getRegistryService()
50
47
  external
51
48
  view
@@ -53,12 +50,4 @@ contract RegistryServiceManager is
53
50
  {
54
51
  return _registryService;
55
52
  }
56
-
57
- function getAccessManager()
58
- external
59
- view
60
- returns (AccessManager)
61
- {
62
- return _accessManager;
63
- }
64
53
  }
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RELEASE} from "../type/ObjectType.sol";
5
+ import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED/*, FREE*/} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract ReleaseLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(RELEASE(), SCHEDULED());
20
+
21
+ setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
+ setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
24
+ setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
+ setStateTransition(RELEASE(), PAUSED(), ACTIVE());
26
+ }
27
+ }