@etherisc/gif-next 3.0.0-9a6ca4b-922 → 3.0.0-a511887-523

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 (414) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +45 -3
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +158 -67
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +112 -49
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +187 -76
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +224 -113
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +193 -74
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +192 -73
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +200 -81
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
  62. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +117 -17
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +180 -33
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  84. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +158 -67
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +128 -52
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +199 -84
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
  136. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
  138. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
  140. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
  142. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
  144. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
  146. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
  148. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
  150. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +211 -96
  152. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
  154. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
  156. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
  158. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
  160. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
  162. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
  164. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
  166. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
  168. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  169. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -78
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
  176. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  177. package/artifacts/contracts/product/Product.sol/Product.json +112 -49
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +219 -185
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
  192. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +192 -142
  194. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +302 -213
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +173 -144
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -4
  210. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +44 -2
  230. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
  236. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
  238. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -0
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -49
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +46 -4
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  262. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +132 -39
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
  268. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  269. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  270. package/artifacts/contracts/staking/Staking.sol/Staking.json +195 -86
  271. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
  283. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  285. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  287. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  288. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +4 -4
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  326. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
  328. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
  330. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  331. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +109 -40
  332. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
  334. package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
  335. package/contracts/accounting/AccountingService.sol +2 -2
  336. package/contracts/accounting/AccountingServiceManager.sol +3 -3
  337. package/contracts/accounting/IAccountingService.sol +1 -1
  338. package/contracts/authorization/AccessAdmin.sol +19 -16
  339. package/contracts/authorization/AccessManagerCloneable.sol +24 -48
  340. package/contracts/authorization/Authorization.sol +2 -2
  341. package/contracts/authorization/IAccessAdmin.sol +2 -3
  342. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  343. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  344. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
  345. package/contracts/distribution/DistributionService.sol +11 -8
  346. package/contracts/distribution/DistributionServiceManager.sol +3 -3
  347. package/contracts/instance/Instance.sol +2 -5
  348. package/contracts/instance/InstanceAdmin.sol +9 -14
  349. package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
  350. package/contracts/instance/InstanceService.sol +4 -4
  351. package/contracts/instance/InstanceServiceManager.sol +3 -3
  352. package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
  353. package/contracts/oracle/Oracle.sol +3 -2
  354. package/contracts/oracle/OracleService.sol +1 -1
  355. package/contracts/oracle/OracleServiceManager.sol +3 -3
  356. package/contracts/pool/BasicPoolAuthorization.sol +5 -4
  357. package/contracts/pool/BundleService.sol +5 -5
  358. package/contracts/pool/BundleServiceManager.sol +3 -3
  359. package/contracts/pool/PoolLib.sol +7 -4
  360. package/contracts/pool/PoolService.sol +3 -3
  361. package/contracts/pool/PoolServiceManager.sol +3 -3
  362. package/contracts/product/ApplicationService.sol +4 -5
  363. package/contracts/product/ApplicationServiceManager.sol +3 -3
  364. package/contracts/product/BasicProductAuthorization.sol +5 -4
  365. package/contracts/product/ClaimService.sol +1 -1
  366. package/contracts/product/ClaimServiceManager.sol +3 -3
  367. package/contracts/product/PolicyService.sol +1 -1
  368. package/contracts/product/PolicyServiceManager.sol +3 -3
  369. package/contracts/product/PricingService.sol +1 -1
  370. package/contracts/product/PricingServiceManager.sol +3 -3
  371. package/contracts/product/RiskService.sol +1 -1
  372. package/contracts/product/RiskServiceManager.sol +3 -3
  373. package/contracts/registry/IRegistry.sol +20 -14
  374. package/contracts/registry/IRegistryService.sol +10 -14
  375. package/contracts/registry/IRelease.sol +0 -3
  376. package/contracts/registry/Registry.sol +124 -78
  377. package/contracts/registry/RegistryAdmin.sol +9 -15
  378. package/contracts/registry/RegistryAuthorization.sol +2 -1
  379. package/contracts/registry/RegistryService.sol +96 -78
  380. package/contracts/registry/RegistryServiceManager.sol +3 -3
  381. package/contracts/registry/ReleaseAdmin.sol +14 -12
  382. package/contracts/registry/ReleaseRegistry.sol +52 -50
  383. package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
  384. package/contracts/shared/Component.sol +24 -17
  385. package/contracts/shared/ComponentService.sol +28 -101
  386. package/contracts/shared/ComponentServiceManager.sol +3 -3
  387. package/contracts/shared/IComponent.sol +5 -3
  388. package/contracts/shared/IComponentService.sol +0 -14
  389. package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
  390. package/contracts/shared/IRegisterable.sol +8 -3
  391. package/contracts/shared/IRegistryLinked.sol +3 -1
  392. package/contracts/shared/IService.sol +2 -2
  393. package/contracts/shared/IVersionable.sol +19 -0
  394. package/contracts/shared/InstanceLinkedComponent.sol +33 -78
  395. package/contracts/shared/NftOwnable.sol +1 -14
  396. package/contracts/shared/PolicyHolder.sol +2 -2
  397. package/contracts/shared/Registerable.sol +36 -18
  398. package/contracts/shared/RegistryLinked.sol +11 -4
  399. package/contracts/shared/Service.sol +6 -5
  400. package/contracts/shared/TokenHandler.sol +4 -1
  401. package/contracts/shared/Versionable.sol +47 -0
  402. package/contracts/staking/IStaking.sol +2 -2
  403. package/contracts/staking/Staking.sol +7 -17
  404. package/contracts/staking/StakingManager.sol +3 -3
  405. package/contracts/staking/StakingService.sol +10 -7
  406. package/contracts/staking/StakingServiceManager.sol +3 -4
  407. package/contracts/staking/StakingStore.sol +10 -8
  408. package/contracts/type/Version.sol +15 -16
  409. package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
  410. package/contracts/upgradeability/ProxyManager.sol +46 -50
  411. package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
  412. package/package.json +1 -1
  413. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
  414. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -1,16 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IComponent} from "../../contracts/shared/IComponent.sol";
5
4
  import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
6
5
  import {IInstance} from "../instance/IInstance.sol";
6
+ import {IInstanceLinkedComponent} from "../../contracts/shared/IInstanceLinkedComponent.sol";
7
7
  import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
8
  import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
9
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
10
10
  import {IRegistry} from "./IRegistry.sol";
11
11
  import {IRegistryService} from "./IRegistryService.sol";
12
+ import {IStaking} from "../../contracts/staking/IStaking.sol";
12
13
 
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 {ContractLib} from "../shared/ContractLib.sol";
15
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, POLICY, BUNDLE, STAKE, STAKING} from "../../contracts/type/ObjectType.sol";
14
16
  import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
15
17
  import {Service} from "../shared/Service.sol";
16
18
 
@@ -21,8 +23,6 @@ contract RegistryService is
21
23
  // TODO update to real hash when registry is stable
22
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
23
25
 
24
- // from Versionable
25
-
26
26
  /// @dev top level initializer
27
27
  function _initialize(
28
28
  address owner,
@@ -41,8 +41,8 @@ contract RegistryService is
41
41
  _registerInterface(type(IRegistryService).interfaceId);
42
42
  }
43
43
 
44
-
45
- function registerStaking(IRegisterable staking, address owner)
44
+ // TODO register have no combos with STAKING; decide on parentNftId arg
45
+ function registerStaking(IRegisterable staking, address expectedOwner)
46
46
  external
47
47
  virtual
48
48
  restricted()
@@ -50,12 +50,16 @@ contract RegistryService is
50
50
  IRegistry.ObjectInfo memory info
51
51
  )
52
52
  {
53
- info = _getAndVerifyContractInfo(staking, STAKING(), owner);
54
- info.nftId = getRegistry().register(info);
53
+ _checkInterface(staking, type(IStaking).interfaceId);
54
+
55
+ address owner;
56
+ bytes memory data;
57
+ (info, owner, data) = _getAndVerifyContractInfo(staking, NftIdLib.zero(), STAKING(), expectedOwner);
58
+ info.nftId = getRegistry().register(info, owner, data);
55
59
  }
56
60
 
57
61
 
58
- function registerInstance(IRegisterable instance, address owner)
62
+ function registerInstance(IRegisterable instance, address expectedOwner)
59
63
  external
60
64
  virtual
61
65
  restricted()
@@ -63,19 +67,21 @@ contract RegistryService is
63
67
  IRegistry.ObjectInfo memory info
64
68
  )
65
69
  {
66
- if(!instance.supportsInterface(type(IInstance).interfaceId)) {
67
- revert ErrorRegistryServiceNotInstance(address(instance));
68
- }
70
+ _checkInterface(instance, type(IInstance).interfaceId);
69
71
 
70
- info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
71
- info.nftId = getRegistry().register(info);
72
+ address owner;
73
+ bytes memory data;
74
+ (info, owner, data) = _getAndVerifyContractInfo(instance, getRegistry().getNftId(), INSTANCE(), expectedOwner);
75
+ info.nftId = getRegistry().register(info, owner, data);
72
76
 
73
77
  instance.linkToRegisteredNftId(); // asume safe
74
78
  }
75
79
 
76
- function registerProduct(
77
- IComponent product,
78
- address initialOwner
80
+ function registerComponent(
81
+ IRegisterable component,
82
+ NftId expectedParentNftId,
83
+ ObjectType expectedType,
84
+ address expectedOwner
79
85
  )
80
86
  external
81
87
  virtual
@@ -84,83 +90,75 @@ contract RegistryService is
84
90
  IRegistry.ObjectInfo memory info
85
91
  )
86
92
  {
87
- if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
88
- revert ErrorRegistryServiceNotProduct(address(product));
89
- }
90
-
91
- info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
92
- info.nftId = getRegistry().register(info);
93
+ _checkInterface(
94
+ component,
95
+ type(IInstanceLinkedComponent).interfaceId);
96
+
97
+ address owner;
98
+ bytes memory data;
99
+ (info, owner, data) = _getAndVerifyContractInfo(component, expectedParentNftId, expectedType, expectedOwner);
100
+ info.nftId = getRegistry().register(info, owner, data);
93
101
  }
94
102
 
95
- function registerProductLinkedComponent(
96
- IComponent component,
97
- ObjectType objectType,
98
- address initialOwner
99
- )
100
- external
101
- virtual
102
- restricted()
103
- returns(
104
- IRegistry.ObjectInfo memory info
105
- )
106
- {
107
- // CAN revert if no ERC165 support -> will revert with empty message
108
- if(!component.supportsInterface(type(IComponent).interfaceId)) {
109
- revert ErrorRegistryServiceNotComponent(address(component));
110
- }
111
-
112
- if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
- revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
114
- }
115
-
116
- info = _getAndVerifyContractInfo(component, objectType, initialOwner);
117
- info.nftId = getRegistry().register(info);
118
- }
119
-
120
- function registerDistributor(IRegistry.ObjectInfo memory info)
103
+ function registerDistributor(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
121
104
  external
122
105
  virtual
123
106
  restricted()
124
107
  returns(NftId nftId)
125
108
  {
126
- _verifyObjectInfo(info, DISTRIBUTOR());
127
- nftId = getRegistry().register(info);
109
+ _verifyObjectInfo(info, owner, DISTRIBUTOR());
110
+ nftId = getRegistry().register(info, owner, data);
128
111
  }
129
112
 
130
- function registerPolicy(IRegistry.ObjectInfo memory info)
113
+ function registerPolicy(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
131
114
  external
132
115
  virtual
133
116
  restricted()
134
117
  returns(NftId nftId)
135
118
  {
136
- _verifyObjectInfo(info, POLICY());
137
- nftId = getRegistry().register(info);
119
+ _verifyObjectInfo(info, owner, POLICY());
120
+ nftId = getRegistry().register(info, owner, data);
138
121
  }
139
122
 
140
- function registerBundle(IRegistry.ObjectInfo memory info)
123
+ function registerBundle(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
141
124
  external
142
125
  virtual
143
126
  restricted()
144
127
  returns(NftId nftId)
145
128
  {
146
- _verifyObjectInfo(info, BUNDLE());
147
- nftId = getRegistry().register(info);
129
+ _verifyObjectInfo(info, owner, BUNDLE());
130
+ nftId = getRegistry().register(info, owner, data);
148
131
  }
149
132
 
150
- function registerStake(IRegistry.ObjectInfo memory info)
133
+ function registerStake(IRegistry.ObjectInfo memory info, address owner, bytes memory data)
151
134
  external
152
135
  virtual
153
136
  restricted()
154
137
  returns(NftId nftId)
155
138
  {
156
- _verifyObjectInfo(info, STAKE());
157
- nftId = getRegistry().register(info);
139
+ _verifyObjectInfo(info, owner, STAKE());
140
+ nftId = getRegistry().register(info, owner, data);
158
141
  }
159
142
 
160
143
  // Internal
161
144
 
145
+ function _checkInterface(IRegisterable registerable, bytes4 interfaceId) internal view
146
+ {
147
+ if(!ContractLib.supportsInterface(address(registerable), interfaceId)) {
148
+ revert ErrorRegistryServiceInterfaceNotSupported(address(registerable), interfaceId);
149
+ }
150
+ }
151
+
152
+ /// @dev Based on the provided component address, parent, type and owner this function reverts iff:
153
+ /// - the component address does not match with address stored in component's initial info
154
+ /// - the component type does not match with the required type
155
+ /// - the component parent does not match with the required parent (when required parent is not zero)
156
+ /// - the component initialOwner does not match with the required owner (when required owner is not zero)
157
+ /// - the component initialOwner is zero (redundant, consider deleting)
158
+ /// - the component initialOwner is already registered
162
159
  function _getAndVerifyContractInfo(
163
160
  IRegisterable registerable,
161
+ NftId expectedParent,
164
162
  ObjectType expectedType, // assume can be valid only
165
163
  address expectedOwner // assume can be 0 when given by other service
166
164
  )
@@ -168,40 +166,62 @@ contract RegistryService is
168
166
  virtual
169
167
  view
170
168
  returns(
171
- IRegistry.ObjectInfo memory info
169
+ IRegistry.ObjectInfo memory info,
170
+ address initialOwner,
171
+ bytes memory data
172
172
  )
173
173
  {
174
174
  info = registerable.getInitialInfo();
175
+ data = registerable.getInitialData();
176
+ initialOwner = registerable.getOwner();
175
177
 
176
178
  if(info.objectAddress != address(registerable)) {
177
179
  revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
178
180
  }
179
181
 
180
- if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
181
- revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
182
+ if(expectedType != COMPONENT()) {
183
+ // exact match
184
+ if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
185
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
186
+ }
187
+ } else {
188
+ // match any component except product
189
+ if(!(info.objectType == DISTRIBUTION() || info.objectType == ORACLE() || info.objectType == POOL())) {
190
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
191
+ }
182
192
  }
183
193
 
184
- address owner = info.initialOwner;
194
+ if(expectedParent.gtz()) {
195
+ // exact parent is important
196
+ if(info.parentNftId != expectedParent) {
197
+ revert ErrorRegistryServiceRegisterableParentInvalid(registerable, expectedParent, info.parentNftId);
198
+ }
199
+ }
185
200
 
186
- if(owner != expectedOwner) { // registerable owner protection
187
- revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
201
+ if(expectedOwner > address(0)) {
202
+ // exact owner is important
203
+ if(initialOwner != expectedOwner) { // registerable owner protection
204
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, initialOwner);
205
+ }
188
206
  }
189
207
 
190
- if(owner == address(registerable)) {
208
+ if(initialOwner == address(registerable)) {
191
209
  revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
192
210
  }
193
211
 
194
- if(owner == address(0)) {
212
+ // redundant, checked by chainNft
213
+ if(initialOwner == address(0)) {
195
214
  revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
196
215
  }
197
216
 
198
- if(getRegistry().isRegistered(owner)) {
199
- revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
217
+ if(getRegistry().isRegistered(initialOwner)) {
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, initialOwner);
200
219
  }
201
220
  }
202
221
 
203
222
  function _verifyObjectInfo(
204
223
  IRegistry.ObjectInfo memory info,
224
+ address initialOwner,
205
225
  ObjectType expectedType
206
226
  )
207
227
  internal
@@ -216,20 +236,18 @@ contract RegistryService is
216
236
  revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
217
237
  }
218
238
 
219
- address owner = info.initialOwner;
220
-
221
- if(owner == address(0)) {
239
+ if(initialOwner == address(0)) {
222
240
  revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
223
241
  }
224
242
 
225
- if(owner == msg.sender) {
226
- revert ErrorRegistryServiceInvalidInitialOwner(owner);
243
+ if(initialOwner == msg.sender) {
244
+ revert ErrorRegistryServiceInvalidInitialOwner(initialOwner);
227
245
  }
228
246
 
229
- if(getRegistry().isRegistered(owner)) {
230
- ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
247
+ if(getRegistry().isRegistered(initialOwner)) {
248
+ ObjectType ownerType = getRegistry().getObjectInfo(initialOwner).objectType;
231
249
  if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
232
- revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
250
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, initialOwner);
233
251
  }
234
252
  }
235
253
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../upgradeability/IVersionable.sol";
4
+ import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
5
5
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {RegistryService} from "./RegistryService.sol";
7
7
 
@@ -32,13 +32,13 @@ contract RegistryServiceManager is
32
32
 
33
33
  RegistryService srv = new RegistryService{ salt: salt }();
34
34
  bytes memory data = abi.encode(authority, registry);
35
- IVersionable versionable = initialize(
35
+ IUpgradeable upgradeable = initialize(
36
36
  registry,
37
37
  address(srv),
38
38
  data,
39
39
  salt);
40
40
 
41
- _registryService = RegistryService(address(versionable));
41
+ _registryService = RegistryService(address(upgradeable));
42
42
  }
43
43
 
44
44
  //--- view functions ----------------------------------------------------//
@@ -10,9 +10,10 @@ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
10
  import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
11
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
12
  import {ObjectType, ObjectTypeLib, RELEASE} from "../type/ObjectType.sol";
13
+ import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
13
14
  import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
14
15
  import {Str} from "../type/String.sol";
15
- import {VersionPart} from "../type/Version.sol";
16
+ import {VersionPartLib, VersionPart} from "../type/Version.sol";
16
17
 
17
18
 
18
19
  /// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
@@ -46,33 +47,35 @@ contract ReleaseAdmin is
46
47
  }
47
48
 
48
49
 
49
- // @dev Only used for master release admin
50
+ /// @dev Only used for master release admin
50
51
  constructor(address accessManager) {
51
52
  initialize(
52
53
  accessManager,
53
- "MasterReleaseAdmin");
54
+ "MasterReleaseAdmin",
55
+ GIF_INITIAL_RELEASE());
54
56
  }
55
57
 
56
58
 
57
59
  function completeSetup(
58
60
  address registry,
59
61
  address authorization,
60
- VersionPart release,
61
62
  address releaseRegistry
62
63
  )
63
64
  external
64
- reinitializer(uint64(release.toInt()))
65
+ //onlyDeployer()
65
66
  {
66
67
  // checks
67
68
  AccessAdminLib.checkRegistry(registry);
68
69
 
69
- AccessManagerCloneable(
70
- authority()).completeSetup(
71
- registry,
72
- release);
70
+ // effects
71
+ //AccessManagerCloneable(
72
+ // authority()).completeSetup(
73
+ // registry);
74
+
75
+ __RegistryLinked_init(registry);
73
76
 
74
77
  IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
75
- _checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
78
+ _checkAuthorization(address(serviceAuthorization), RELEASE(), getRelease(), true, true);
76
79
  _serviceAuthorization = serviceAuthorization;
77
80
 
78
81
  // link nft ownability to registry
@@ -173,8 +176,7 @@ contract ReleaseAdmin is
173
176
  //--- private initialization functions -------------------------------------------//
174
177
 
175
178
  function _setupReleaseRegistry(address releaseRegistry)
176
- private
177
- onlyInitializing()
179
+ private
178
180
  {
179
181
 
180
182
  _createRole(
@@ -5,7 +5,6 @@ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
6
 
7
7
  import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
8
- import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
9
8
  import {IRegistry} from "./IRegistry.sol";
10
9
  import {IRelease} from "./IRelease.sol";
11
10
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
@@ -16,7 +15,7 @@ import {ContractLib} from "../shared/ContractLib.sol";
16
15
  import {NftId} from "../type/NftId.sol";
17
16
  import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
18
17
  import {RegistryAdmin} from "./RegistryAdmin.sol";
19
- import {Registry} from "./Registry.sol";
18
+ import {Registry, GIF_INITIAL_RELEASE} from "./Registry.sol";
20
19
  import {ReleaseAdmin} from "./ReleaseAdmin.sol";
21
20
  import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
22
21
  import {Seconds} from "../type/Seconds.sol";
@@ -36,8 +35,6 @@ contract ReleaseRegistry is
36
35
  ReleaseLifecycle,
37
36
  IRegistryLinked
38
37
  {
39
- uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
40
-
41
38
  event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
42
39
  event LogReleaseActivation(VersionPart release);
43
40
  event LogReleaseDisabled(VersionPart release);
@@ -59,14 +56,14 @@ contract ReleaseRegistry is
59
56
 
60
57
  // _verifyService
61
58
  error ErrorReleaseRegistryNotService(address notService);
62
- error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
63
- error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
59
+ error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address expectedAuthority, address actualAuthority);
64
60
  error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
65
61
 
66
- // _verifyServiceInfo
62
+ // _getAndVerifyServiceInfo
67
63
  error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
68
64
  error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
69
65
  error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
66
+ error ErrorReleaseRegistryServiceInfoReleaseMismatch(IService service, VersionPart expected, VersionPart actual);
70
67
  error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
71
68
  error ErrorReleaseRegistryServiceSelfRegistration(IService service);
72
69
  error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
@@ -100,7 +97,7 @@ contract ReleaseRegistry is
100
97
  _masterReleaseAdmin = new ReleaseAdmin(
101
98
  _cloneNewAccessManager());
102
99
 
103
- _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
100
+ _next = VersionPartLib.toVersionPart(GIF_INITIAL_RELEASE().toInt() - 1);
104
101
  }
105
102
 
106
103
  /// @dev Initiates the creation of a new GIF release by the GIF admin.
@@ -184,24 +181,21 @@ contract ReleaseRegistry is
184
181
  address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
185
182
  IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
186
183
  ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
184
+ address expectedOwner = msg.sender;
187
185
 
188
186
  // service can work with release registry and release version
189
187
  (
190
188
  IRegistry.ObjectInfo memory info,
191
- ObjectType serviceDomain,
192
- VersionPart serviceVersion
193
- //,string memory serviceName
189
+ bytes memory data,
190
+ ObjectType serviceDomain
194
191
  ) = _verifyService(
195
192
  service,
193
+ expectedOwner,
196
194
  releaseAuthority,
197
195
  releaseVersion,
198
196
  expectedDomain
199
197
  );
200
198
 
201
- //_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
202
- //_releaseInfo[releaseVersion].domains.push(serviceDomain);
203
- //_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
204
-
205
199
  _registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
206
200
 
207
201
  // release fully deployed
@@ -222,7 +216,7 @@ contract ReleaseRegistry is
222
216
  releaseAdmin.setReleaseLocked(true);
223
217
 
224
218
  // register service with registry
225
- nftId = _registry.registerService(info, serviceVersion, serviceDomain);
219
+ nftId = _registry.registerService(info, expectedOwner, serviceDomain, data);
226
220
  service.linkToRegisteredNftId();
227
221
  }
228
222
 
@@ -389,12 +383,12 @@ contract ReleaseRegistry is
389
383
 
390
384
  clonedAdmin.initialize(
391
385
  address(_cloneNewAccessManager()),
392
- releaseAdminName);
386
+ releaseAdminName,
387
+ release);
393
388
 
394
389
  clonedAdmin.completeSetup(
395
390
  address(_registry),
396
391
  address(serviceAuthorization),
397
- release,
398
392
  address(this)); // release registry (this contract)
399
393
 
400
394
  // lock release (remains locked until activation)
@@ -439,62 +433,65 @@ contract ReleaseRegistry is
439
433
 
440
434
  // TODO get service names
441
435
  function _verifyService(
442
- IService service,
436
+ IService service,
437
+ address expectedOwner,
443
438
  address expectedAuthority,
444
- VersionPart expectedVersion,
439
+ VersionPart expectedRelease,
445
440
  ObjectType expectedDomain
446
441
  )
447
442
  internal
448
443
  view
449
444
  returns(
450
- IRegistry.ObjectInfo memory serviceInfo,
451
- ObjectType serviceDomain,
452
- VersionPart serviceVersion
445
+ IRegistry.ObjectInfo memory info,
446
+ bytes memory data,
447
+ ObjectType domain
453
448
  )
454
449
  {
455
450
  if(!service.supportsInterface(type(IService).interfaceId)) {
456
451
  revert ErrorReleaseRegistryNotService(address(service));
457
452
  }
458
453
 
459
- address owner = msg.sender;
460
- address serviceAuthority = service.authority();
461
- serviceVersion = service.getVersion().toMajorPart();
462
- serviceDomain = service.getDomain();// checked in registry
463
- serviceInfo = service.getInitialInfo();
454
+ address authority = service.authority();
455
+ domain = service.getDomain();// checked in registry
464
456
 
465
- _verifyServiceInfo(service, serviceInfo, owner);
457
+ (info,, data) = _getAndVerifyServiceInfo(
458
+ service,
459
+ expectedOwner,
460
+ expectedRelease);
466
461
 
467
- if(serviceAuthority != expectedAuthority) {
462
+ if(authority != expectedAuthority) {
468
463
  revert ErrorReleaseRegistryServiceAuthorityMismatch(
469
464
  service,
470
- serviceAuthority,
471
- expectedAuthority);
465
+ expectedAuthority,
466
+ authority);
472
467
  }
473
468
 
474
- if(serviceVersion != expectedVersion) {
475
- revert ErrorReleaseRegistryServiceVersionMismatch(
476
- service,
477
- serviceVersion,
478
- expectedVersion);
479
- }
480
-
481
- if(serviceDomain != expectedDomain) {
469
+ if(domain != expectedDomain) {
482
470
  revert ErrorReleaseRegistryServiceDomainMismatch(
483
471
  service,
484
472
  expectedDomain,
485
- serviceDomain);
473
+ domain);
486
474
  }
487
475
  }
488
476
 
489
477
 
490
- function _verifyServiceInfo(
478
+ function _getAndVerifyServiceInfo(
491
479
  IService service,
492
- IRegistry.ObjectInfo memory info,
493
- address expectedOwner // assume always valid, can not be 0
480
+ address expectedOwner, // assume always valid, can not be 0
481
+ VersionPart expectedRelease
494
482
  )
495
483
  internal
496
484
  view
485
+ returns (
486
+ IRegistry.ObjectInfo memory info,
487
+ address initialOwner,
488
+ bytes memory data
489
+ )
497
490
  {
491
+ info = service.getInitialInfo();
492
+ initialOwner = service.getOwner();
493
+ data = service.getInitialData();
494
+
498
495
  if(info.objectAddress != address(service)) {
499
496
  revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
500
497
  }
@@ -507,18 +504,23 @@ contract ReleaseRegistry is
507
504
  revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
508
505
  }
509
506
 
510
- address owner = info.initialOwner;
507
+ if(info.release != expectedRelease) {
508
+ revert ErrorReleaseRegistryServiceInfoReleaseMismatch(
509
+ service,
510
+ expectedRelease,
511
+ info.release);
512
+ }
511
513
 
512
- if(owner != expectedOwner) { // registerable owner protection
513
- revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
514
+ if(initialOwner != expectedOwner) { // registerable owner protection
515
+ revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, initialOwner);
514
516
  }
515
517
 
516
- if(owner == address(service)) {
518
+ if(initialOwner == address(service)) {
517
519
  revert ErrorReleaseRegistryServiceSelfRegistration(service);
518
520
  }
519
521
 
520
- if(_registry.isRegistered(owner)) {
521
- revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
522
+ if(_registry.isRegistered(initialOwner)) {
523
+ revert ErrorReleaseRegistryServiceOwnerRegistered(service, initialOwner);
522
524
  }
523
525
  }
524
526
  }
@@ -21,6 +21,8 @@ import {IRegistryService} from "./IRegistryService.sol";
21
21
  import {IRiskService} from "../product/IRiskService.sol";
22
22
 
23
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
24
+ import {VersionPartLib} from "../../contracts/type/Version.sol";
25
+ import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
24
26
 
25
27
 
26
28
  contract ServiceAuthorizationV3
@@ -31,7 +33,7 @@ contract ServiceAuthorizationV3
31
33
  ServiceAuthorization(
32
34
  "ReleaseAdmin",
33
35
  RELEASE(),
34
- 3,
36
+ GIF_INITIAL_RELEASE(),
35
37
  commitHash)
36
38
  {}
37
39
 
@@ -90,8 +92,7 @@ contract ServiceAuthorizationV3
90
92
  _authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
91
93
 
92
94
  functions = _authorizeForService(REGISTRY(), COMPONENT());
93
- _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
94
- _authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
95
+ _authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
95
96
 
96
97
  functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
97
98
  _authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");