@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-a77d620-054

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