@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-aa7237e-773

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 (481) 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 +84 -20
  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/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +76 -187
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +113 -224
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  50. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  51. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  53. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  67. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  69. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  71. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +74 -193
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  77. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +73 -192
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +81 -200
  81. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +81 -200
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  87. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  91. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  93. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +18 -118
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +92 -118
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +34 -181
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +149 -207
  101. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  103. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +117 -167
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -148
  109. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
  111. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
  113. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  114. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  115. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  117. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  122. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  124. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  126. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  131. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  132. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +67 -158
  134. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  136. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +52 -128
  139. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +26 -113
  141. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +53 -116
  143. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +69 -184
  145. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +68 -159
  147. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +56 -119
  149. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  151. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +84 -199
  153. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +80 -171
  155. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -106
  157. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +55 -131
  159. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +26 -113
  161. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  162. package/artifacts/contracts/pool/Pool.sol/Pool.json +56 -119
  163. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +20 -25
  165. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +95 -210
  167. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +81 -172
  169. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -165
  171. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +62 -153
  173. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +49 -112
  175. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  177. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +96 -211
  179. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +85 -176
  181. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +19 -106
  183. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +19 -106
  185. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +26 -113
  187. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +26 -113
  189. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +48 -124
  191. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +19 -106
  193. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +89 -204
  195. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  197. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +78 -169
  199. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.json +71 -186
  201. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +69 -160
  203. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  204. package/artifacts/contracts/product/Product.sol/Product.json +49 -112
  205. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.json +46 -161
  207. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +60 -151
  209. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  211. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  213. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +185 -219
  215. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  217. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  218. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  219. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  220. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +145 -207
  222. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  224. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +213 -302
  226. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +55 -162
  228. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +150 -208
  230. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  232. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +146 -181
  234. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  236. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -46
  238. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Component.sol/Component.json +31 -124
  240. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +323 -198
  242. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +91 -166
  244. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +44 -24
  246. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  248. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  251. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -136
  253. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +234 -113
  255. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  256. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -124
  257. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +2 -44
  260. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +2 -44
  262. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +17 -117
  264. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +2 -44
  266. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IService.sol/IService.json +19 -106
  268. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  269. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  270. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -112
  271. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  272. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  273. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  274. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  275. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +4 -46
  276. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  277. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -46
  278. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  279. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +16 -116
  280. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  281. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +4 -46
  282. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  283. package/artifacts/contracts/shared/Service.sol/Service.json +18 -105
  284. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  286. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  288. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  289. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  290. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  291. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +64 -132
  292. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  293. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +31 -106
  294. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  295. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  296. package/artifacts/contracts/staking/Staking.sol/Staking.json +111 -195
  297. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  299. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +71 -156
  301. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -46
  303. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +54 -157
  305. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +58 -149
  307. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  308. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -274
  309. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  310. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  311. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  312. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  313. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  314. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  318. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  320. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  322. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  325. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  326. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  327. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  329. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  330. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  331. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  333. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  335. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  337. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  339. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  340. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  341. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  343. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  345. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  347. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  350. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  352. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  354. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  357. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  358. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  359. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  360. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  361. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  362. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +40 -109
  363. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  364. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  365. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  366. package/contracts/accounting/AccountingService.sol +18 -30
  367. package/contracts/accounting/AccountingServiceManager.sol +3 -3
  368. package/contracts/accounting/IAccountingService.sol +7 -8
  369. package/contracts/authorization/AccessAdmin.sol +22 -44
  370. package/contracts/authorization/AccessAdminLib.sol +20 -3
  371. package/contracts/authorization/AccessManagerCloneable.sol +51 -24
  372. package/contracts/authorization/Authorization.sol +2 -2
  373. package/contracts/authorization/IAccessAdmin.sol +3 -2
  374. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  375. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  376. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  377. package/contracts/distribution/DistributionService.sol +13 -14
  378. package/contracts/distribution/DistributionServiceManager.sol +3 -3
  379. package/contracts/distribution/IDistributionService.sol +4 -3
  380. package/contracts/examples/flight/FlightLib.sol +337 -0
  381. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  382. package/contracts/examples/flight/FlightNft.sol +234 -0
  383. package/contracts/examples/flight/FlightOracle.sol +226 -0
  384. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  385. package/contracts/examples/flight/FlightPool.sol +89 -0
  386. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  387. package/contracts/examples/flight/FlightProduct.sol +687 -0
  388. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  389. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  390. package/contracts/examples/flight/FlightUSD.sol +28 -0
  391. package/contracts/examples/flight/originalV1.sol +396 -0
  392. package/contracts/instance/BaseStore.sol +4 -0
  393. package/contracts/instance/IBaseStore.sol +8 -0
  394. package/contracts/instance/IInstance.sol +1 -1
  395. package/contracts/instance/IInstanceService.sol +2 -0
  396. package/contracts/instance/Instance.sol +6 -3
  397. package/contracts/instance/InstanceAdmin.sol +14 -10
  398. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  399. package/contracts/instance/InstanceReader.sol +41 -7
  400. package/contracts/instance/InstanceService.sol +8 -4
  401. package/contracts/instance/InstanceServiceManager.sol +3 -3
  402. package/contracts/oracle/BasicOracle.sol +1 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  404. package/contracts/oracle/IOracleService.sol +12 -12
  405. package/contracts/oracle/Oracle.sol +4 -5
  406. package/contracts/oracle/OracleService.sol +1 -1
  407. package/contracts/oracle/OracleServiceManager.sol +3 -3
  408. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  409. package/contracts/pool/BundleService.sol +5 -5
  410. package/contracts/pool/BundleServiceManager.sol +3 -3
  411. package/contracts/pool/PoolLib.sol +4 -7
  412. package/contracts/pool/PoolService.sol +3 -3
  413. package/contracts/pool/PoolServiceManager.sol +3 -3
  414. package/contracts/product/ApplicationService.sol +5 -4
  415. package/contracts/product/ApplicationServiceManager.sol +3 -3
  416. package/contracts/product/BasicProductAuthorization.sol +7 -7
  417. package/contracts/product/ClaimService.sol +1 -1
  418. package/contracts/product/ClaimServiceManager.sol +3 -3
  419. package/contracts/product/PolicyService.sol +1 -1
  420. package/contracts/product/PolicyServiceLib.sol +5 -3
  421. package/contracts/product/PolicyServiceManager.sol +3 -3
  422. package/contracts/product/PricingService.sol +1 -1
  423. package/contracts/product/PricingServiceManager.sol +3 -3
  424. package/contracts/product/RiskService.sol +1 -1
  425. package/contracts/product/RiskServiceManager.sol +3 -3
  426. package/contracts/registry/ChainNft.sol +1 -1
  427. package/contracts/registry/IRegistry.sol +14 -20
  428. package/contracts/registry/IRegistryService.sol +14 -10
  429. package/contracts/registry/IRelease.sol +3 -0
  430. package/contracts/registry/Registry.sol +78 -124
  431. package/contracts/registry/RegistryAdmin.sol +23 -11
  432. package/contracts/registry/RegistryAuthorization.sol +1 -2
  433. package/contracts/registry/RegistryService.sol +78 -96
  434. package/contracts/registry/RegistryServiceManager.sol +3 -3
  435. package/contracts/registry/ReleaseAdmin.sol +19 -14
  436. package/contracts/registry/ReleaseRegistry.sol +50 -52
  437. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  438. package/contracts/shared/Component.sol +17 -24
  439. package/contracts/shared/ComponentService.sol +106 -28
  440. package/contracts/shared/ComponentServiceManager.sol +3 -3
  441. package/contracts/shared/EcdsaChecker.sol +5 -0
  442. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  443. package/contracts/shared/IComponent.sol +3 -5
  444. package/contracts/shared/IComponentService.sol +15 -0
  445. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  446. package/contracts/shared/IRegisterable.sol +3 -8
  447. package/contracts/shared/IRegistryLinked.sol +1 -3
  448. package/contracts/shared/IService.sol +2 -2
  449. package/contracts/shared/InstanceLinkedComponent.sol +126 -40
  450. package/contracts/shared/NftOwnable.sol +14 -1
  451. package/contracts/shared/PolicyHolder.sol +2 -2
  452. package/contracts/shared/Registerable.sol +18 -36
  453. package/contracts/shared/RegistryLinked.sol +4 -11
  454. package/contracts/shared/Service.sol +5 -6
  455. package/contracts/shared/TokenHandler.sol +1 -4
  456. package/contracts/staking/IStaking.sol +4 -2
  457. package/contracts/staking/IStakingService.sol +1 -1
  458. package/contracts/staking/Staking.sol +18 -7
  459. package/contracts/staking/StakingManager.sol +3 -3
  460. package/contracts/staking/StakingService.sol +8 -11
  461. package/contracts/staking/StakingServiceManager.sol +4 -3
  462. package/contracts/staking/StakingStore.sol +8 -10
  463. package/contracts/type/ObjectType.sol +2 -31
  464. package/contracts/type/Referral.sol +6 -0
  465. package/contracts/type/RequestIdSet.sol +62 -0
  466. package/contracts/type/Seconds.sol +4 -0
  467. package/contracts/type/String.sol +30 -0
  468. package/contracts/type/Timestamp.sol +10 -1
  469. package/contracts/type/Version.sol +16 -15
  470. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  471. package/contracts/upgradeability/ProxyManager.sol +50 -46
  472. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  473. package/package.json +2 -1
  474. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  475. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  476. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  477. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  478. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  479. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  480. package/contracts/shared/IVersionable.sol +0 -19
  481. package/contracts/shared/Versionable.sol +0 -47
@@ -9,7 +9,7 @@ import {InstanceStore} from "../instance/InstanceStore.sol";
9
9
  import {Amount, AmountLib} from "../type/Amount.sol";
10
10
  import {Fee} from "../type/Fee.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
- import {ObjectType, ACCOUNTING, BUNDLE, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
12
+ import {ObjectType, ACCOUNTING, BUNDLE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, POOL, PRODUCT} from "../type/ObjectType.sol";
13
13
  import {Service} from "../shared/Service.sol";
14
14
 
15
15
 
@@ -26,7 +26,7 @@ contract AccountingService is
26
26
  )
27
27
  internal
28
28
  virtual override
29
- onlyInitializing()
29
+ initializer()
30
30
  {
31
31
  (
32
32
  address authority,
@@ -46,7 +46,7 @@ contract AccountingService is
46
46
  virtual
47
47
  restricted()
48
48
  {
49
- _changeTargetBalance(DECREASE, instanceStore, componentNftId, AmountLib.zero(), feeAmount);
49
+ _changeTargetBalance(DECREASE, instanceStore, componentNftId, COMPONENT(), AmountLib.zero(), feeAmount);
50
50
  }
51
51
 
52
52
 
@@ -60,7 +60,7 @@ contract AccountingService is
60
60
  restricted()
61
61
  {
62
62
  _checkNftType(productNftId, PRODUCT());
63
- _changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
63
+ _changeTargetBalance(INCREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
64
64
  }
65
65
 
66
66
  function increaseProductFeesForPool(
@@ -73,7 +73,7 @@ contract AccountingService is
73
73
  restricted()
74
74
  {
75
75
  _checkNftType(productNftId, PRODUCT());
76
- _changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
76
+ _changeTargetBalance(INCREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
77
77
  }
78
78
 
79
79
 
@@ -83,7 +83,7 @@ contract AccountingService is
83
83
  restricted()
84
84
  {
85
85
  _checkNftType(productNftId, PRODUCT());
86
- _changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
86
+ _changeTargetBalance(DECREASE, instanceStore, productNftId, PRODUCT(), AmountLib.zero(), feeAmount);
87
87
  }
88
88
 
89
89
  function increaseDistributionBalance(
@@ -97,7 +97,7 @@ contract AccountingService is
97
97
  restricted()
98
98
  {
99
99
  _checkNftType(distributionNftId, DISTRIBUTION());
100
- _changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
100
+ _changeTargetBalance(INCREASE, instanceStore, distributionNftId, DISTRIBUTION(), amount, feeAmount);
101
101
  }
102
102
 
103
103
 
@@ -112,7 +112,7 @@ contract AccountingService is
112
112
  restricted()
113
113
  {
114
114
  _checkNftType(distributionNftId, DISTRIBUTION());
115
- _changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
115
+ _changeTargetBalance(DECREASE, instanceStore, distributionNftId, DISTRIBUTION(), amount, feeAmount);
116
116
  }
117
117
 
118
118
  function increaseDistributorBalance(
@@ -126,7 +126,7 @@ contract AccountingService is
126
126
  restricted()
127
127
  {
128
128
  _checkNftType(distributorNftId, DISTRIBUTOR());
129
- _changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
129
+ _changeTargetBalance(INCREASE, instanceStore, distributorNftId, DISTRIBUTOR(), amount, feeAmount);
130
130
  }
131
131
 
132
132
  function decreaseDistributorBalance(
@@ -140,7 +140,7 @@ contract AccountingService is
140
140
  restricted()
141
141
  {
142
142
  _checkNftType(distributorNftId, DISTRIBUTOR());
143
- _changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
143
+ _changeTargetBalance(DECREASE, instanceStore, distributorNftId, DISTRIBUTOR(), amount, feeAmount);
144
144
  }
145
145
 
146
146
  function increasePoolBalance(
@@ -154,7 +154,7 @@ contract AccountingService is
154
154
  restricted()
155
155
  {
156
156
  _checkNftType(poolNftId, POOL());
157
- _changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
157
+ _changeTargetBalance(INCREASE, instanceStore, poolNftId, POOL(), amount, feeAmount);
158
158
  }
159
159
 
160
160
  function decreasePoolBalance(
@@ -168,7 +168,7 @@ contract AccountingService is
168
168
  restricted()
169
169
  {
170
170
  _checkNftType(poolNftId, POOL());
171
- _changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
171
+ _changeTargetBalance(DECREASE, instanceStore, poolNftId, POOL(), amount, feeAmount);
172
172
  }
173
173
 
174
174
  function increaseBundleBalance(
@@ -182,7 +182,7 @@ contract AccountingService is
182
182
  restricted()
183
183
  {
184
184
  _checkNftType(bundleNftId, BUNDLE());
185
- _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
185
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
186
186
  }
187
187
 
188
188
  function decreaseBundleBalance(
@@ -196,7 +196,7 @@ contract AccountingService is
196
196
  restricted()
197
197
  {
198
198
  _checkNftType(bundleNftId, BUNDLE());
199
- _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
199
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
200
200
  }
201
201
 
202
202
  function increaseBundleBalanceForPool(
@@ -210,7 +210,7 @@ contract AccountingService is
210
210
  restricted()
211
211
  {
212
212
  _checkNftType(bundleNftId, BUNDLE());
213
- _changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
213
+ _changeTargetBalance(INCREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
214
214
  }
215
215
 
216
216
  function decreaseBundleBalanceForPool(
@@ -224,7 +224,7 @@ contract AccountingService is
224
224
  restricted()
225
225
  {
226
226
  _checkNftType(bundleNftId, BUNDLE());
227
- _changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
227
+ _changeTargetBalance(DECREASE, instanceStore, bundleNftId, BUNDLE(), amount, feeAmount);
228
228
  }
229
229
 
230
230
 
@@ -234,6 +234,7 @@ contract AccountingService is
234
234
  bool increase,
235
235
  InstanceStore instanceStore,
236
236
  NftId targetNftId,
237
+ ObjectType objectType,
237
238
  Amount amount,
238
239
  Amount feeAmount
239
240
  )
@@ -249,21 +250,8 @@ contract AccountingService is
249
250
  if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
250
251
  if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
251
252
  }
252
- }
253
-
254
253
 
255
- function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
256
- internal
257
- virtual
258
- {
259
- emit LogAccountingServiceUpdateFee(
260
- productNftId,
261
- name,
262
- feeBefore.fractionalFee,
263
- feeBefore.fixedFee,
264
- feeAfter.fractionalFee,
265
- feeAfter.fixedFee
266
- );
254
+ emit LogAccountingServiceBalanceChanged(targetNftId, amount, feeAmount, increase, objectType);
267
255
  }
268
256
 
269
257
  function _getDomain() internal pure virtual override returns(ObjectType) {
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccountingService} from "./AccountingService.sol";
5
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
6
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
7
 
8
8
  contract AccountingServiceManager is ProxyManager {
@@ -18,13 +18,13 @@ contract AccountingServiceManager is ProxyManager {
18
18
  {
19
19
  AccountingService svc = new AccountingService();
20
20
  bytes memory data = abi.encode(authority, registry);
21
- IUpgradeable upgradeable = initialize(
21
+ IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
24
24
  data,
25
25
  salt);
26
26
 
27
- _accountingService = AccountingService(address(upgradeable));
27
+ _accountingService = AccountingService(address(versionable));
28
28
  }
29
29
 
30
30
  //--- view functions ----------------------------------------------------//
@@ -6,20 +6,19 @@ import {Amount} from "../type/Amount.sol";
6
6
  import {InstanceStore} from "../instance/InstanceStore.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
8
  import {NftId} from "../type/NftId.sol";
9
- import {UFixed} from "../type/UFixed.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
10
 
11
11
  /// @dev component base class
12
12
  /// component examples are staking, product, distribution, pool and oracle
13
13
  interface IAccountingService is
14
14
  IService
15
15
  {
16
- event LogAccountingServiceUpdateFee(
17
- NftId nftId,
18
- string feeName,
19
- UFixed previousFractionalFee,
20
- Amount previousFixedFee,
21
- UFixed newFractionalFee,
22
- Amount newFixedFee
16
+ event LogAccountingServiceBalanceChanged(
17
+ NftId indexed nftId,
18
+ Amount indexed amount,
19
+ Amount indexed feeAmount,
20
+ bool increase,
21
+ ObjectType objectType
23
22
  );
24
23
 
25
24
  function decreaseComponentFees(InstanceStore instanceStore, NftId componentNftId, Amount feeAmount) external;
@@ -14,14 +14,13 @@ import {AccessAdminLib} from "./AccessAdminLib.sol";
14
14
  import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
15
15
  import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
16
16
  import {ContractLib} from "../shared/ContractLib.sol";
17
- import {NftId} from "../type/NftId.sol";
17
+ import {NftId, NftIdLib} from "../type/NftId.sol";
18
18
  import {ObjectType} from "../type/ObjectType.sol";
19
19
  import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
20
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
21
20
  import {Selector, SelectorSetLib} from "../type/Selector.sol";
22
21
  import {Str, StrLib} from "../type/String.sol";
23
22
  import {TimestampLib} from "../type/Timestamp.sol";
24
- import {VersionPartLib, VersionPart} from "../type/Version.sol";
23
+ import {VersionPart} from "../type/Version.sol";
25
24
 
26
25
 
27
26
  /**
@@ -31,7 +30,6 @@ import {VersionPartLib, VersionPart} from "../type/Version.sol";
31
30
  */
32
31
  contract AccessAdmin is
33
32
  AccessManagedUpgradeable,
34
- RegistryLinked,
35
33
  IAccessAdmin
36
34
  {
37
35
  using EnumerableSet for EnumerableSet.AddressSet;
@@ -93,16 +91,12 @@ contract AccessAdmin is
93
91
  /// Internally initializes access manager with this admin and creates basic role setup.
94
92
  function initialize(
95
93
  address authority,
96
- string memory adminName,
97
- VersionPart release
94
+ string memory adminName
98
95
  )
99
96
  public
97
+ initializer()
100
98
  {
101
- if(_getInitializedVersion() != 0) {
102
- revert InvalidInitialization();
103
- }
104
-
105
- __AccessAdmin_init(authority, adminName, release);
99
+ __AccessAdmin_init(authority, adminName);
106
100
  }
107
101
 
108
102
 
@@ -112,16 +106,14 @@ contract AccessAdmin is
112
106
  /// - this function as well as any completeSetup functions MUST be called in the same tx.
113
107
  function __AccessAdmin_init(
114
108
  address authority,
115
- string memory adminName,
116
- VersionPart release
109
+ string memory adminName
117
110
  )
118
111
  internal
119
- reinitializer(release.toInt())
112
+ onlyInitializing()
120
113
  {
121
114
  AccessAdminLib.checkInitParameters(authority, adminName);
122
-
123
115
  _authority = AccessManagerCloneable(authority);
124
- _authority.initialize(address(this), release);
116
+ _authority.initialize(address(this));
125
117
 
126
118
  // delayed additional check for authority after its initialization
127
119
  if (!ContractLib.isAuthority(authority)) {
@@ -129,7 +121,7 @@ contract AccessAdmin is
129
121
  }
130
122
 
131
123
  // effects
132
- // set and initialize this contract as
124
+ // set and initialize this access manager contract as
133
125
  // the admin (ADMIN_ROLE) of the provided authority
134
126
  __AccessManaged_init(authority);
135
127
 
@@ -137,7 +129,7 @@ contract AccessAdmin is
137
129
  _adminName = adminName;
138
130
 
139
131
  // set initial linked NFT ID to zero
140
- //_linkedNftId = NftIdLib.zero();
132
+ _linkedNftId = NftIdLib.zero();
141
133
 
142
134
  // setup admin role
143
135
  _createRoleUnchecked(
@@ -157,7 +149,12 @@ contract AccessAdmin is
157
149
  //--- view functions for access admin ---------------------------------------//
158
150
 
159
151
  function getRelease() public view virtual returns (VersionPart release) {
160
- return VersionPartLib.toVersionPart(uint8(_getInitializedVersion()));
152
+ return _authority.getRelease();
153
+ }
154
+
155
+
156
+ function getRegistry() public view returns (IRegistry registry) {
157
+ return _authority.getRegistry();
161
158
  }
162
159
 
163
160
 
@@ -282,10 +279,11 @@ contract AccessAdmin is
282
279
  {
283
280
  Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
284
281
  func = _functionInfo[target][selector];
285
- roleId = RoleIdLib.toRoleId(
286
- _authority.getTargetFunctionRole(
287
- target,
288
- selector.toBytes4()));
282
+ roleId = AccessAdminLib.getFunctionRoleId(_authority, target, selector);
283
+ // roleId = RoleIdLib.toRoleId(
284
+ // _authority.getTargetFunctionRole(
285
+ // target,
286
+ // selector.toBytes4()));
289
287
  }
290
288
 
291
289
 
@@ -321,7 +319,7 @@ contract AccessAdmin is
321
319
  (RoleId roleId, bool exists) = getRoleForName(roleInfo.name.toString());
322
320
 
323
321
  if (!exists) {
324
- if (!AccessAdminLib.isDynamicRoleId(authzRoleId)) {
322
+ if (!AccessAdminLib.isDynamicRoleId(authzRoleId) || roleInfo.targetType == TargetType.Custom) {
325
323
  roleId = authzRoleId;
326
324
  }
327
325
 
@@ -659,24 +657,4 @@ contract AccessAdmin is
659
657
  AccessAdminLib.toFunctionGrantingString(this, func.name, roleId),
660
658
  lastUpdateIn);
661
659
  }
662
-
663
-
664
- function _checkAuthorization(
665
- address authorization,
666
- ObjectType expectedDomain,
667
- VersionPart expectedRelease,
668
- bool expectServiceAuthorization,
669
- bool checkAlreadyInitialized
670
- )
671
- internal
672
- view
673
- {
674
- AccessAdminLib.checkAuthorization(
675
- address(_authorization),
676
- authorization,
677
- expectedDomain,
678
- expectedRelease,
679
- expectServiceAuthorization,
680
- checkAlreadyInitialized);
681
- }
682
660
  }
@@ -7,16 +7,17 @@ import {IAccess} from "./IAccess.sol";
7
7
  import {IAccessAdmin} from "./IAccessAdmin.sol";
8
8
  import {IAuthorization} from "./IAuthorization.sol";
9
9
  import {IComponent} from "../shared/IComponent.sol";
10
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
10
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
11
11
  import {IRegistry} from "../registry/IRegistry.sol";
12
12
  import {IService} from "../shared/IService.sol";
13
13
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
14
14
 
15
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
15
16
  import {BlocknumberLib} from "../type/Blocknumber.sol";
16
17
  import {ContractLib} from "../shared/ContractLib.sol";
17
18
  import {ObjectType} from "../type/ObjectType.sol";
18
19
  import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
19
- import {SelectorLib} from "../type/Selector.sol";
20
+ import {Selector, SelectorLib} from "../type/Selector.sol";
20
21
  import {Str, StrLib} from "../type/String.sol";
21
22
  import {TimestampLib} from "../type/Timestamp.sol";
22
23
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
@@ -338,7 +339,7 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
338
339
  checkIsRegistered(address(accessAdmin.getRegistry()), componentAddress, expectedType);
339
340
 
340
341
  VersionPart expecteRelease = accessAdmin.getRelease();
341
- IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
342
+ IAuthorizedComponent component = IAuthorizedComponent(componentAddress);
342
343
  componentAuthorization = component.getAuthorization();
343
344
 
344
345
  checkAuthorization(
@@ -481,6 +482,22 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
481
482
  }
482
483
 
483
484
 
485
+ function getFunctionRoleId(
486
+ AccessManagerCloneable authority,
487
+ address target,
488
+ Selector selector
489
+ )
490
+ public
491
+ view
492
+ returns (RoleId functionRoleId)
493
+ {
494
+ return RoleIdLib.toRoleId(
495
+ authority.getTargetFunctionRole(
496
+ target,
497
+ selector.toBytes4()));
498
+ }
499
+
500
+
484
501
  function getServiceRoleId(
485
502
  address serviceAddress,
486
503
  IAccess.TargetType serviceTargetType
@@ -4,9 +4,9 @@ pragma solidity ^0.8.20;
4
4
  import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
5
  import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
6
 
7
- import {IAccessAdmin} from "./IAccessAdmin.sol";
8
7
  import {InitializableERC165} from "../shared/InitializableERC165.sol";
9
- import {VersionPartLib, VersionPart} from "../type/Version.sol";
8
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
9
+ import {VersionPart} from "../type/Version.sol";
10
10
 
11
11
 
12
12
  /// @dev An AccessManager based on OpenZeppelin that is cloneable and has a central lock property.
@@ -14,7 +14,8 @@ import {VersionPartLib, VersionPart} from "../type/Version.sol";
14
14
  /// Cloned by upon release preparation and instance cloning.
15
15
  contract AccessManagerCloneable is
16
16
  AccessManagerUpgradeable,
17
- InitializableERC165
17
+ InitializableERC165,
18
+ RegistryLinked
18
19
  {
19
20
  error ErrorAccessManagerCallerNotAdmin(address caller);
20
21
  error ErrorAccessManagerRegistryAlreadySet(address registry);
@@ -23,6 +24,9 @@ contract AccessManagerCloneable is
23
24
  error ErrorAccessManagerTargetAdminLocked(address target);
24
25
  error ErrorAccessManagerCallerAdminLocked(address caller);
25
26
 
27
+ event LogAccessManagerLocked(address indexed accessManager, bool indexed locked);
28
+
29
+ VersionPart private _release;
26
30
  bool private _isLocked;
27
31
 
28
32
 
@@ -34,36 +38,34 @@ contract AccessManagerCloneable is
34
38
  _;
35
39
  }
36
40
 
37
- function initialize(address adminAddress, VersionPart release)
38
- public
39
41
 
42
+ function initialize(address admin)
43
+ public
44
+ initializer()
40
45
  {
41
- if(_getInitializedVersion() != 0) {
42
- revert InvalidInitialization();
43
- }
46
+ __ERC165_init();
47
+ __AccessManager_init(admin);
44
48
 
45
- AccessManagerCloneable_init(adminAddress, release);
49
+ _registerInterface(type(IAccessManager).interfaceId);
46
50
  }
47
51
 
48
- function AccessManagerCloneable_init(
49
- address admin,
52
+
53
+ /// @dev Completes the setup of the access manager.
54
+ /// Links the access manager to the registry and sets the release version.
55
+ function completeSetup(
56
+ address registry,
50
57
  VersionPart release
51
58
  )
52
- internal
53
- reinitializer(release.toInt())
59
+ external
60
+ onlyAdminRole
61
+ reinitializer(uint64(release.toInt()))
54
62
  {
55
- if (!release.isValidRelease()) {
56
- revert ErrorAccessManagerInvalidRelease(release);
57
- }
58
-
59
- __ERC165_init();
60
- __AccessManager_init(admin);
61
-
62
- _registerInterface(type(IAccessManager).interfaceId);
63
+ _checkAndSetRegistry(registry);
64
+ _checkAndSetRelease(release);
63
65
  }
64
66
 
65
67
  /// @dev Returns true if the caller is authorized to call the target with the given selector and the manager lock is not set to locked.
66
- /// Return values as in OpenZeppelin AccessManager.
68
+ /// Feturn values as in OpenZeppelin AccessManager.
67
69
  /// For a locked manager the function reverts with ErrorAccessManagerTargetAdminLocked.
68
70
  function canCall(
69
71
  address caller,
@@ -94,6 +96,7 @@ contract AccessManagerCloneable is
94
96
  onlyAdminRole()
95
97
  {
96
98
  _isLocked = locked;
99
+ emit LogAccessManagerLocked(address(this), locked);
97
100
  }
98
101
 
99
102
 
@@ -101,10 +104,10 @@ contract AccessManagerCloneable is
101
104
  /// For the registry admin release 3 is returned.
102
105
  /// For the release admin and the instance admin the actual release version is returned.
103
106
  function getRelease() external view returns (VersionPart release) {
104
- return VersionPartLib.toVersionPart(
105
- uint8(_getInitializedVersion()));
107
+ return _release;
106
108
  }
107
109
 
110
+
108
111
  /// @dev Returns true iff all contracts of this access manager are locked.
109
112
  function isLocked()
110
113
  public
@@ -113,4 +116,28 @@ contract AccessManagerCloneable is
113
116
  {
114
117
  return _isLocked;
115
118
  }
119
+
120
+
121
+ function _checkAndSetRelease(VersionPart release)
122
+ internal
123
+ {
124
+ if (!release.isValidRelease()) {
125
+ revert ErrorAccessManagerInvalidRelease(release);
126
+ }
127
+
128
+ _release = release;
129
+ }
130
+
131
+
132
+ function _checkAndSetRegistry(address registry)
133
+ internal
134
+ {
135
+ // checks
136
+ if(address(getRegistry()) != address(0)) {
137
+ revert ErrorAccessManagerRegistryAlreadySet(address(getRegistry()) );
138
+ }
139
+
140
+ // effects
141
+ __RegistryLinked_init(registry);
142
+ }
116
143
  }
@@ -9,7 +9,7 @@ import {ObjectType} from "../type/ObjectType.sol";
9
9
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
10
10
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
11
11
  import {Str, StrLib} from "../type/String.sol";
12
- import {VersionPart} from "../type/Version.sol";
12
+
13
13
 
14
14
  contract Authorization is
15
15
  ServiceAuthorization,
@@ -30,7 +30,7 @@ contract Authorization is
30
30
  constructor(
31
31
  string memory mainTargetName,
32
32
  ObjectType domain,
33
- VersionPart release,
33
+ uint8 release,
34
34
  string memory commitHash,
35
35
  IAccess.TargetType targetType,
36
36
  bool includeTokenHandler
@@ -6,6 +6,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {IAccess} from "./IAccess.sol";
7
7
  import {IAuthorization} from "./IAuthorization.sol";
8
8
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
+ import {IRelease} from "../registry/IRelease.sol";
9
10
 
10
11
  import {Blocknumber} from "../type/Blocknumber.sol";
11
12
  import {NftId} from "../type/NftId.sol";
@@ -18,7 +19,8 @@ import {VersionPart} from "../type/Version.sol";
18
19
  interface IAccessAdmin is
19
20
  IAccessManaged,
20
21
  IAccess,
21
- IRegistryLinked
22
+ IRegistryLinked,
23
+ IRelease
22
24
  {
23
25
 
24
26
  // roles, targets and functions
@@ -137,5 +139,4 @@ interface IAccessAdmin is
137
139
 
138
140
  function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
139
141
  function getAuthorizedFunction(address target, uint256 idx) external view returns (FunctionInfo memory func, RoleId roleId);
140
- function getRelease() external view returns (VersionPart);
141
142
  }
@@ -16,7 +16,7 @@ interface IServiceAuthorization is
16
16
 
17
17
  error ErrorAuthorizationMainTargetNameEmpty();
18
18
  error ErrorAuthorizationTargetDomainZero();
19
- error ErrorAuthorizationReleaseInvalid(VersionPart release);
19
+ error ErrorAuthorizationReleaseInvalid(uint8 release);
20
20
  error ErrorAuthorizationCommitHashInvalid(string commitHash);
21
21
 
22
22
  /// @dev Returns the main domain of the authorization.
@@ -30,7 +30,7 @@ contract ServiceAuthorization is
30
30
  string public constant ROLE_NAME_SUFFIX = "_Role";
31
31
 
32
32
  ObjectType public immutable DOMAIN;
33
- VersionPart internal immutable _release;
33
+ uint256 internal immutable _release;
34
34
  string internal _commitHash;
35
35
 
36
36
  string internal _mainTargetName;
@@ -55,7 +55,7 @@ contract ServiceAuthorization is
55
55
  constructor(
56
56
  string memory mainTargetName,
57
57
  ObjectType domain,
58
- VersionPart release,
58
+ uint8 release,
59
59
  string memory commitHash
60
60
  )
61
61
  {
@@ -68,7 +68,7 @@ contract ServiceAuthorization is
68
68
  revert ErrorAuthorizationTargetDomainZero();
69
69
  }
70
70
 
71
- if (!VersionPartLib.isValidRelease(release)) {
71
+ if (release < VersionPartLib.releaseMin().toInt() || release >= VersionPartLib.releaseMax().toInt()) {
72
72
  revert ErrorAuthorizationReleaseInvalid(release);
73
73
  }
74
74
 
@@ -103,7 +103,7 @@ contract ServiceAuthorization is
103
103
 
104
104
  /// @inheritdoc IServiceAuthorization
105
105
  function getRelease() public view returns(VersionPart release) {
106
- return _release;
106
+ return VersionPartLib.toVersionPart(_release);
107
107
  }
108
108
 
109
109
  /// @inheritdoc IServiceAuthorization
@@ -2,16 +2,15 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccess} from "../authorization/IAccess.sol";
5
- import {IComponent} from "../shared/IInstanceLinkedComponent.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
6
 
7
7
  import {Authorization} from "../authorization/Authorization.sol";
8
8
  import {BasicDistribution} from "./BasicDistribution.sol";
9
9
  import {Distribution} from "./Distribution.sol";
10
10
  import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
11
11
  import {PUBLIC_ROLE} from "../type/RoleId.sol";
12
- import {GIF_INITIAL_RELEASE} from "../registry/Registry.sol";
13
12
  import {TokenHandler} from "../shared/TokenHandler.sol";
14
- import {VersionPartLib} from "../type/Version.sol";
13
+
15
14
 
16
15
  contract BasicDistributionAuthorization
17
16
  is Authorization
@@ -21,7 +20,7 @@ contract BasicDistributionAuthorization
21
20
  Authorization(
22
21
  distributionName,
23
22
  DISTRIBUTION(),
24
- GIF_INITIAL_RELEASE(),
23
+ 3,
25
24
  COMMIT_HASH,
26
25
  TargetType.Component,
27
26
  true)
@@ -61,7 +60,7 @@ contract BasicDistributionAuthorization
61
60
  _authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
62
61
  _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
63
62
 
64
- _authorize(functions, IComponent.withdrawFees.selector, "withdrawFees");
63
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
65
64
  _authorize(functions, Distribution.withdrawCommission.selector, "withdrawCommission");
66
65
  }
67
66
  }