@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-b216819-597

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 (474) 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 +53 -168
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +63 -154
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +20 -107
  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 +65 -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 +112 -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 +19 -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/BundleSet.sol/BundleSet.dbg.json +1 -1
  89. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  90. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  92. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +18 -118
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +31 -118
  95. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  96. package/artifacts/contracts/instance/Instance.sol/Instance.json +34 -181
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  98. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +149 -207
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +236 -75
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -167
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -148
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  110. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  112. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  115. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  117. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  123. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  124. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  129. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  130. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  131. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +67 -158
  132. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  134. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  135. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +52 -128
  137. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +26 -113
  139. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  140. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +53 -116
  141. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +69 -184
  143. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +68 -159
  145. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  146. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +56 -119
  147. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  148. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  149. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  150. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +84 -199
  151. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +80 -171
  153. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  154. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -106
  155. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  156. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +55 -131
  157. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  158. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +26 -113
  159. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  160. package/artifacts/contracts/pool/Pool.sol/Pool.json +56 -119
  161. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  162. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +20 -25
  163. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +95 -210
  165. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +81 -172
  167. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  168. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -165
  169. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +62 -153
  171. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  172. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +49 -112
  173. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  174. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  175. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  176. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +96 -211
  177. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +85 -176
  179. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  180. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +19 -106
  181. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  182. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +19 -106
  183. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  184. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +26 -113
  185. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +26 -113
  187. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  188. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +48 -124
  189. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +19 -106
  191. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  192. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +89 -204
  193. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  194. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  195. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +78 -169
  197. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PricingService.sol/PricingService.json +71 -186
  199. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +69 -160
  201. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  202. package/artifacts/contracts/product/Product.sol/Product.json +49 -112
  203. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  204. package/artifacts/contracts/product/RiskService.sol/RiskService.json +46 -161
  205. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +60 -151
  207. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  208. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  209. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +56 -155
  211. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  212. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +185 -219
  213. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  214. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  215. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  216. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/Registry.sol/Registry.json +96 -314
  218. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  219. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +145 -207
  220. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  221. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  222. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  223. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +213 -302
  224. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +55 -162
  226. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  227. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +150 -208
  228. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  230. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  231. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +146 -181
  232. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  234. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  235. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -46
  236. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Component.sol/Component.json +31 -124
  238. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +323 -198
  240. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +91 -166
  242. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  243. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +44 -24
  244. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  246. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  248. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  249. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -136
  251. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +234 -113
  253. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +48 -124
  255. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  256. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  257. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +2 -44
  258. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +2 -44
  260. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +17 -117
  262. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  263. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +2 -44
  264. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  265. package/artifacts/contracts/shared/IService.sol/IService.json +19 -106
  266. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  267. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  268. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -112
  269. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  270. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  271. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  272. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  273. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +4 -46
  274. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  275. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -46
  276. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  277. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +16 -116
  278. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  279. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +4 -46
  280. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  281. package/artifacts/contracts/shared/Service.sol/Service.json +18 -105
  282. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  283. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  284. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  285. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  286. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  287. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  288. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  289. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +64 -132
  290. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +19 -106
  292. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  293. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  294. package/artifacts/contracts/staking/Staking.sol/Staking.json +111 -195
  295. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  297. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  298. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +71 -156
  299. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  300. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -46
  301. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  302. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +42 -157
  303. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  304. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +58 -149
  305. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  306. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -274
  307. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  308. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
  309. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  310. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  311. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  312. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  316. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  318. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  320. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  324. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  328. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  337. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  338. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  339. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  341. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  343. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  345. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  355. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  357. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  358. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  359. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  360. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +40 -109
  361. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  362. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  364. package/contracts/accounting/AccountingService.sol +2 -2
  365. package/contracts/accounting/AccountingServiceManager.sol +3 -3
  366. package/contracts/accounting/IAccountingService.sol +1 -1
  367. package/contracts/authorization/AccessAdmin.sol +22 -44
  368. package/contracts/authorization/AccessAdminLib.sol +20 -3
  369. package/contracts/authorization/AccessManagerCloneable.sol +48 -24
  370. package/contracts/authorization/Authorization.sol +2 -2
  371. package/contracts/authorization/IAccessAdmin.sol +3 -2
  372. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  373. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  374. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  375. package/contracts/distribution/DistributionService.sol +8 -11
  376. package/contracts/distribution/DistributionServiceManager.sol +3 -3
  377. package/contracts/examples/flight/FlightLib.sol +337 -0
  378. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  379. package/contracts/examples/flight/FlightNft.sol +234 -0
  380. package/contracts/examples/flight/FlightOracle.sol +226 -0
  381. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  382. package/contracts/examples/flight/FlightPool.sol +89 -0
  383. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  384. package/contracts/examples/flight/FlightProduct.sol +687 -0
  385. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  386. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  387. package/contracts/examples/flight/FlightUSD.sol +28 -0
  388. package/contracts/examples/flight/originalV1.sol +396 -0
  389. package/contracts/instance/IInstance.sol +1 -1
  390. package/contracts/instance/Instance.sol +6 -3
  391. package/contracts/instance/InstanceAdmin.sol +14 -10
  392. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  393. package/contracts/instance/InstanceReader.sol +41 -7
  394. package/contracts/instance/InstanceService.sol +4 -4
  395. package/contracts/instance/InstanceServiceManager.sol +3 -3
  396. package/contracts/oracle/BasicOracle.sol +1 -0
  397. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  398. package/contracts/oracle/IOracleService.sol +12 -12
  399. package/contracts/oracle/Oracle.sol +4 -5
  400. package/contracts/oracle/OracleService.sol +1 -1
  401. package/contracts/oracle/OracleServiceManager.sol +3 -3
  402. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  403. package/contracts/pool/BundleService.sol +5 -5
  404. package/contracts/pool/BundleServiceManager.sol +3 -3
  405. package/contracts/pool/PoolLib.sol +4 -7
  406. package/contracts/pool/PoolService.sol +3 -3
  407. package/contracts/pool/PoolServiceManager.sol +3 -3
  408. package/contracts/product/ApplicationService.sol +5 -4
  409. package/contracts/product/ApplicationServiceManager.sol +3 -3
  410. package/contracts/product/BasicProductAuthorization.sol +7 -7
  411. package/contracts/product/ClaimService.sol +1 -1
  412. package/contracts/product/ClaimServiceManager.sol +3 -3
  413. package/contracts/product/PolicyService.sol +1 -1
  414. package/contracts/product/PolicyServiceLib.sol +5 -3
  415. package/contracts/product/PolicyServiceManager.sol +3 -3
  416. package/contracts/product/PricingService.sol +1 -1
  417. package/contracts/product/PricingServiceManager.sol +3 -3
  418. package/contracts/product/RiskService.sol +1 -1
  419. package/contracts/product/RiskServiceManager.sol +3 -3
  420. package/contracts/registry/ChainNft.sol +1 -1
  421. package/contracts/registry/IRegistry.sol +14 -20
  422. package/contracts/registry/IRegistryService.sol +14 -10
  423. package/contracts/registry/IRelease.sol +3 -0
  424. package/contracts/registry/Registry.sol +78 -124
  425. package/contracts/registry/RegistryAdmin.sol +23 -11
  426. package/contracts/registry/RegistryAuthorization.sol +1 -2
  427. package/contracts/registry/RegistryService.sol +78 -96
  428. package/contracts/registry/RegistryServiceManager.sol +3 -3
  429. package/contracts/registry/ReleaseAdmin.sol +19 -14
  430. package/contracts/registry/ReleaseRegistry.sol +50 -52
  431. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  432. package/contracts/shared/Component.sol +17 -24
  433. package/contracts/shared/ComponentService.sol +106 -28
  434. package/contracts/shared/ComponentServiceManager.sol +3 -3
  435. package/contracts/shared/EcdsaChecker.sol +5 -0
  436. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  437. package/contracts/shared/IComponent.sol +3 -5
  438. package/contracts/shared/IComponentService.sol +15 -0
  439. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  440. package/contracts/shared/IRegisterable.sol +3 -8
  441. package/contracts/shared/IRegistryLinked.sol +1 -3
  442. package/contracts/shared/IService.sol +2 -2
  443. package/contracts/shared/InstanceLinkedComponent.sol +126 -40
  444. package/contracts/shared/NftOwnable.sol +14 -1
  445. package/contracts/shared/PolicyHolder.sol +2 -2
  446. package/contracts/shared/Registerable.sol +18 -36
  447. package/contracts/shared/RegistryLinked.sol +4 -11
  448. package/contracts/shared/Service.sol +5 -6
  449. package/contracts/shared/TokenHandler.sol +1 -4
  450. package/contracts/staking/IStaking.sol +4 -2
  451. package/contracts/staking/Staking.sol +18 -7
  452. package/contracts/staking/StakingManager.sol +3 -3
  453. package/contracts/staking/StakingService.sol +7 -10
  454. package/contracts/staking/StakingServiceManager.sol +4 -3
  455. package/contracts/staking/StakingStore.sol +8 -10
  456. package/contracts/type/ObjectType.sol +2 -31
  457. package/contracts/type/Referral.sol +6 -0
  458. package/contracts/type/RequestIdSet.sol +62 -0
  459. package/contracts/type/Seconds.sol +4 -0
  460. package/contracts/type/String.sol +30 -0
  461. package/contracts/type/Timestamp.sol +10 -1
  462. package/contracts/type/Version.sol +16 -15
  463. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  464. package/contracts/upgradeability/ProxyManager.sol +50 -46
  465. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  466. package/package.json +2 -1
  467. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  468. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  469. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  470. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  471. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  472. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  473. package/contracts/shared/IVersionable.sol +0 -19
  474. package/contracts/shared/Versionable.sol +0 -47
@@ -1,18 +1,26 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
-
5
- import {Amount} from "../type/Amount.sol";
6
- import {Component} from "./Component.sol";
7
- import {IComponentService} from "./IComponentService.sol";
8
- import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
9
4
  import {IAuthorization} from "../authorization/IAuthorization.sol";
5
+ import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
10
6
  import {IComponents} from "../instance/module/IComponents.sol";
7
+ import {IComponentService} from "./IComponentService.sol";
11
8
  import {IInstance} from "../instance/IInstance.sol";
9
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
10
+ import {IInstanceService} from "../instance/IInstanceService.sol";
11
+ import {IOracleService} from "../oracle/IOracleService.sol";
12
+
13
+ import {Amount} from "../type/Amount.sol";
14
+ import {Component} from "./Component.sol";
12
15
  import {InstanceReader} from "../instance/InstanceReader.sol";
13
16
  import {IRegistry} from "../registry/IRegistry.sol";
14
17
  import {NftId} from "../type/NftId.sol";
15
- import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
18
+ import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
19
+ import {RequestId} from "../type/RequestId.sol";
20
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
21
+ import {TokenHandler} from "../shared/TokenHandler.sol";
22
+ import {Timestamp} from "../type/Timestamp.sol";
23
+ import {VersionPart} from "../type/Version.sol";
16
24
 
17
25
  // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
18
26
  // same pattern as for Service which is also upgradeable
@@ -25,19 +33,80 @@ abstract contract InstanceLinkedComponent is
25
33
 
26
34
  struct InstanceLinkedComponentStorage {
27
35
  IInstance _instance; // instance for this component
36
+ InstanceReader _instanceReader; // instance reader for this component
28
37
  IAuthorization _initialAuthorization;
38
+ IComponentService _componentService;
39
+ IOracleService _oracleService;
29
40
  }
30
41
 
42
+ //--- view functions ----------------------------------------------------//
43
+
31
44
  /// @inheritdoc IInstanceLinkedComponent
32
- function getInstance() public view virtual returns (IInstance instance) {
45
+ function getInstance() public view virtual override returns (IInstance instance) {
33
46
  return _getInstanceLinkedComponentStorage()._instance;
34
47
  }
35
48
 
36
- /// @inheritdoc IInstanceLinkedComponent
49
+
50
+ /// @inheritdoc IAuthorizedComponent
37
51
  function getAuthorization() external view virtual returns (IAuthorization authorization) {
38
52
  return _getInstanceLinkedComponentStorage()._initialAuthorization;
39
53
  }
40
54
 
55
+
56
+ /// @inheritdoc IInstanceLinkedComponent
57
+ function withdrawFees(Amount amount)
58
+ external
59
+ virtual
60
+ restricted()
61
+ onlyOwner()
62
+ returns (Amount withdrawnAmount)
63
+ {
64
+ return _withdrawFees(amount);
65
+ }
66
+
67
+ //--- internal functions ------------------------------------------------//
68
+
69
+ function _sendRequest(
70
+ NftId oracleNftId,
71
+ bytes memory requestData,
72
+ Timestamp expiryAt,
73
+ string memory callbackMethod
74
+ )
75
+ internal
76
+ virtual
77
+ returns (RequestId requestId)
78
+ {
79
+ return _getInstanceLinkedComponentStorage()._oracleService.request(
80
+ oracleNftId,
81
+ requestData,
82
+ expiryAt,
83
+ callbackMethod);
84
+ }
85
+
86
+
87
+ function _cancelRequest(RequestId requestId)
88
+ internal
89
+ virtual
90
+ {
91
+ _getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
92
+ }
93
+
94
+
95
+ function _resendRequest(RequestId requestId)
96
+ internal
97
+ virtual
98
+ {
99
+ _getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
100
+ }
101
+
102
+
103
+ function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
104
+ assembly {
105
+ $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
106
+ }
107
+ }
108
+
109
+
41
110
  function __InstanceLinkedComponent_init(
42
111
  address registry,
43
112
  NftId parentNftId,
@@ -47,64 +116,80 @@ abstract contract InstanceLinkedComponent is
47
116
  bool isInterceptor,
48
117
  address initialOwner
49
118
  )
50
- internal
119
+ internal
51
120
  virtual
52
121
  onlyInitializing()
53
122
  {
54
- // TODO calling registry and checking release before component is initialized
55
- // at least breaks order of checks -> e.g. if registry is not contract no meaningfull error will be given
56
- IInstance instance = _checkAndGetInstance(registry, parentNftId, componentType);
123
+ // validate registry, nft ids and get parent nft id
124
+ NftId instanceNftId = _checkAndGetInstanceNftId(
125
+ registry,
126
+ parentNftId,
127
+ componentType);
128
+
129
+ // set and check linked instance
130
+ InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
131
+ $._instance = IInstance(
132
+ IRegistry(registry).getObjectAddress(instanceNftId));
57
133
 
58
134
  // set component specific parameters
59
135
  __Component_init(
60
- instance.authority(),
136
+ $._instance.authority(), // instance linked components need to point to instance admin
61
137
  registry,
62
138
  parentNftId,
63
139
  name,
64
- componentType,
140
+ componentType,
65
141
  isInterceptor,
66
142
  initialOwner,
67
143
  ""); // registry data
68
144
 
69
145
  // set instance linked specific parameters
70
- InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
71
- $._instance = instance;
146
+ $._instanceReader = $._instance.getInstanceReader();
72
147
  $._initialAuthorization = authorization;
148
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
149
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
73
150
 
74
151
  // register interfaces
75
152
  _registerInterface(type(IInstanceLinkedComponent).interfaceId);
76
153
  }
77
154
 
78
- function _checkAndGetInstance(
155
+
156
+ function _checkAndGetInstanceNftId(
79
157
  address registryAddress,
80
158
  NftId parentNftId,
81
159
  ObjectType componentType
82
160
  )
83
- private
161
+ internal
84
162
  view
85
- returns (IInstance instance)
163
+ returns (NftId instanceNftId)
86
164
  {
87
- NftId instanceNftId;
88
- IRegistry registry = IRegistry(registryAddress);
89
-
90
- if(componentType == PRODUCT()) {
91
- instanceNftId = parentNftId;
92
- } else {
93
- NftId productNftId = parentNftId;
94
- instanceNftId = registry.getParentNftId(productNftId);
165
+ // if product, then parent is already instance
166
+ if (componentType == PRODUCT()) {
167
+ _checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
168
+ return parentNftId;
95
169
  }
96
170
 
97
- IRegistry.ObjectInfo memory info = registry.getObjectInfo(instanceNftId);
171
+ // if not product parent is product, and parent of product is instance
172
+ IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
173
+ return registry.getParentNftId(parentNftId);
174
+ }
98
175
 
99
- if (info.objectType != INSTANCE()) {
100
- revert ErrorInstanceLinkedComponentInstanceInvalid();
101
- }
176
+ /// @dev checks the and gets registry.
177
+ /// validates registry using a provided nft id and expected object type.
178
+ function _checkAndGetRegistry(
179
+ address registryAddress,
180
+ NftId objectNftId,
181
+ ObjectType requiredType
182
+ )
183
+ internal
184
+ view
185
+ returns (IRegistry registry)
186
+ {
187
+ registry = IRegistry(registryAddress);
188
+ IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
102
189
 
103
- if(info.release != getRelease()) {
104
- revert ErrorInstanceLinkedComponentInstanceMismatch(info.release, getRelease());
190
+ if (info.objectType != requiredType) {
191
+ revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
105
192
  }
106
-
107
- instance = IInstance(info.objectAddress);
108
193
  }
109
194
 
110
195
 
@@ -136,12 +221,13 @@ abstract contract InstanceLinkedComponent is
136
221
 
137
222
  /// @dev returns reader for linked instance
138
223
  function _getInstanceReader() internal view returns (InstanceReader reader) {
139
- return _getInstanceLinkedComponentStorage()._instance.getInstanceReader();
224
+ return _getInstanceLinkedComponentStorage()._instanceReader;
140
225
  }
141
226
 
142
- function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
143
- assembly {
144
- $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
145
- }
227
+ function _withdrawFees(Amount amount)
228
+ internal
229
+ returns (Amount withdrawnAmount)
230
+ {
231
+ return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
146
232
  }
147
233
  }
@@ -4,6 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {InitializableERC165} from "./InitializableERC165.sol";
5
5
  import {INftOwnable} from "./INftOwnable.sol";
6
6
  import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
7
8
  import {RegistryLinked} from "./RegistryLinked.sol";
8
9
 
9
10
  contract NftOwnable is
@@ -34,8 +35,20 @@ contract NftOwnable is
34
35
  _;
35
36
  }
36
37
 
38
+ modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
39
+ _checkNftType(nftId, expectedObjectType);
40
+ _;
41
+ }
42
+
43
+ function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
44
+ if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
45
+ revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
46
+ }
47
+ }
48
+
49
+
37
50
  /// @dev Initialization for upgradable contracts.
38
- // used in __Registerable_init, ProxyManager.initialize
51
+ // used in __Registerable_init, ProxyManager._preDeployChecksAndSetup
39
52
  function __NftOwnable_init(
40
53
  address registry,
41
54
  address initialOwner
@@ -23,7 +23,7 @@ contract PolicyHolder is
23
23
  // callbacks must only be allowed from the policy and claim services
24
24
  // will need a release parameter to fetch the right service addresses for the modifiers
25
25
 
26
- function __PolicyHolder_init(
26
+ function _initializePolicyHolder(
27
27
  address registryAddress
28
28
  )
29
29
  internal
@@ -47,7 +47,7 @@ contract PolicyHolder is
47
47
  /// @dev empty default implementation
48
48
  function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
49
49
 
50
- //--- IERC721 functions ---------------//
50
+ //--- IERC165 functions ---------------//
51
51
  function onERC721Received(
52
52
  address, // operator
53
53
  address, // from
@@ -9,16 +9,15 @@ import {ContractLib} from "../shared/ContractLib.sol";
9
9
  import {NftId, NftIdLib} from "../type/NftId.sol";
10
10
  import {NftOwnable} from "../shared/NftOwnable.sol";
11
11
  import {ObjectType} from "../type/ObjectType.sol";
12
- import {Versionable} from "../shared/Versionable.sol";
13
12
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
14
13
 
15
14
  import {IRegistry} from "../registry/IRegistry.sol";
16
15
  import {IRegisterable} from "./IRegisterable.sol";
16
+ import {IRelease} from "../registry/IRelease.sol";
17
17
 
18
18
  abstract contract Registerable is
19
19
  AccessManagedUpgradeable,
20
20
  NftOwnable,
21
- Versionable,
22
21
  IRegisterable
23
22
  {
24
23
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
@@ -38,19 +37,6 @@ abstract contract Registerable is
38
37
  _;
39
38
  }
40
39
 
41
- // TODO move to registerables verification library
42
- modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
43
- _checkNftType(nftId, expectedObjectType);
44
- _;
45
- }
46
-
47
- // TODO move to registerables verification library
48
- function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
49
- if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType, getRelease())) {
50
- revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
51
- }
52
- }
53
-
54
40
  function __Registerable_init(
55
41
  address authority,
56
42
  address registry,
@@ -58,7 +44,7 @@ abstract contract Registerable is
58
44
  ObjectType objectType,
59
45
  bool isInterceptor,
60
46
  address initialOwner,
61
- bytes memory data
47
+ bytes memory data // writeonly data that will saved in the object info record of the registry
62
48
  )
63
49
  internal
64
50
  virtual
@@ -68,20 +54,14 @@ abstract contract Registerable is
68
54
  revert ErrorAuthorityInvalid(authority);
69
55
  }
70
56
 
71
- // release must allign with authority -> not a release check of third contract...
72
- VersionPart release = AccessManagerCloneable(authority).getRelease();
73
-
74
57
  __AccessManaged_init(authority);
75
58
  __NftOwnable_init(registry, initialOwner);
76
- __Versionable_init(release);
77
59
 
78
60
  RegisterableStorage storage $ = _getRegisterableStorage();
79
61
  $._parentNftId = parentNftId;
80
62
  $._objectType = objectType;
81
63
  $._isInterceptor = isInterceptor;
82
- if(data.length > 0) {
83
- $._data = data;
84
- }
64
+ $._data = data;
85
65
 
86
66
  _registerInterface(type(IAccessManaged).interfaceId);
87
67
  }
@@ -92,6 +72,13 @@ abstract contract Registerable is
92
72
  return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
93
73
  }
94
74
 
75
+
76
+ /// @inheritdoc IRelease
77
+ function getRelease() public virtual view returns (VersionPart release) {
78
+ return AccessManagerCloneable(authority()).getRelease();
79
+ }
80
+
81
+
95
82
  /// @inheritdoc IRegisterable
96
83
  function getInitialInfo()
97
84
  public
@@ -100,19 +87,14 @@ abstract contract Registerable is
100
87
  returns (IRegistry.ObjectInfo memory info)
101
88
  {
102
89
  RegisterableStorage storage $ = _getRegisterableStorage();
103
- return (
104
- IRegistry.ObjectInfo(
105
- NftIdLib.zero(),
106
- $._parentNftId,
107
- $._objectType,
108
- getRelease(),
109
- $._isInterceptor,
110
- address(this))
111
- );
112
- }
113
-
114
- function getInitialData() public view virtual returns (bytes memory data) {
115
- return _getRegisterableStorage()._data;
90
+ return IRegistry.ObjectInfo(
91
+ NftIdLib.zero(),
92
+ $._parentNftId,
93
+ $._objectType,
94
+ $._isInterceptor,
95
+ address(this),
96
+ getOwner(),
97
+ $._data);
116
98
  }
117
99
 
118
100
 
@@ -12,27 +12,20 @@ contract RegistryLinked is
12
12
  IRegistryLinked
13
13
  {
14
14
 
15
- // priorize simplicity and size over using standard upgradeability structs
16
- // registry address MUST NOT be upgraded
15
+ // priorize simplicity and size over using standard upgradeability structs
17
16
  IRegistry private _registry;
18
17
 
19
18
  /// @dev initialization for upgradable contracts
20
- // used in RegistryAdmin / InstanceAdmin / ReleaseAdmin.completeSetup()
19
+ // used in _initializeRegisterable
21
20
  function __RegistryLinked_init(
22
21
  address registry
23
22
  )
24
23
  internal
25
24
  virtual
25
+ onlyInitializing()
26
26
  {
27
- if(address(_registry) != address(0) ) {
28
- if(_registry != IRegistry(registry)) {
29
- revert ErrorRegistryLinkedRegistryAlreadyInitialized(address(this), address(_registry));
30
- }
31
- return;
32
- }
33
-
34
27
  if (!ContractLib.isRegistry(registry)) {
35
- revert ErrorRegistryLinkedNotRegistry(address(this), registry);
28
+ revert ErrorNotRegistry(registry);
36
29
  }
37
30
 
38
31
  _registry = IRegistry(registry);
@@ -5,19 +5,18 @@ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/ut
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
7
  import {IService} from "./IService.sol";
8
- import {IVersionable} from "../shared/IVersionable.sol";
8
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
9
9
  import {ObjectType, SERVICE} from "../type/ObjectType.sol";
10
10
  import {Registerable} from "./Registerable.sol";
11
11
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
12
- import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
13
- import {Versionable} from "../shared/Versionable.sol";
14
- import {Upgradeable} from "../upgradeability/Upgradeable.sol";
12
+ import {Version, VersionLib} from "../type/Version.sol";
13
+ import {Versionable} from "../upgradeability/Versionable.sol";
15
14
 
16
15
 
17
16
  /// @dev service base contract
18
17
  abstract contract Service is
19
- Registerable,
20
- Upgradeable,
18
+ Registerable,
19
+ Versionable,
21
20
  ReentrancyGuardUpgradeable,
22
21
  IService
23
22
  {
@@ -10,7 +10,6 @@ import {ContractLib} from "../shared/ContractLib.sol";
10
10
  import {IRegistry} from "../registry/IRegistry.sol";
11
11
  import {NftId} from "../type/NftId.sol";
12
12
  import {SERVICE} from "../type/ObjectType.sol";
13
- import {VersionPart} from "../type/Version.sol";
14
13
 
15
14
 
16
15
  /// @dev Token specific transfer helper base contract.
@@ -50,7 +49,6 @@ contract TokenHandlerBase {
50
49
  IERC20Metadata public immutable TOKEN;
51
50
  address public immutable COMPONENT;
52
51
  NftId public immutable NFT_ID;
53
- VersionPart public immutable RELEASE;
54
52
 
55
53
  address internal _wallet;
56
54
 
@@ -71,7 +69,6 @@ contract TokenHandlerBase {
71
69
  REGISTRY = IRegistry(registry);
72
70
  COMPONENT = component;
73
71
  NFT_ID = REGISTRY.getNftIdForAddress(component);
74
- RELEASE = REGISTRY.getObjectRelease(NFT_ID);
75
72
 
76
73
  if (NFT_ID.eqz()) {
77
74
  revert ErrorTokenHandlerComponentNotRegistered(component);
@@ -257,7 +254,7 @@ contract TokenHandler is
257
254
  error ErrorTokenHandlerNotService(address service);
258
255
 
259
256
  modifier onlyService() {
260
- if (!REGISTRY.isObjectType(msg.sender, SERVICE(), RELEASE)) {
257
+ if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
261
258
  revert ErrorTokenHandlerNotService(msg.sender);
262
259
  }
263
260
  _;
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {IComponent} from "../shared/IComponent.sol";
7
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
8
 
9
9
  import {Amount} from "../type/Amount.sol";
10
10
  import {Blocknumber} from "../type/Blocknumber.sol";
@@ -22,9 +22,11 @@ import {VersionPart} from "../type/Version.sol";
22
22
 
23
23
  interface IStaking is
24
24
  IComponent,
25
- IUpgradeable
25
+ IVersionable
26
26
  {
27
27
 
28
+ event LogStakingTokenHandlerDeployed(NftId componentNftId, address tokenHandler, address token);
29
+
28
30
  // owner functions
29
31
  event LogStakingStakingRateSet(ChainId chainId, address token, UFixed newStakingRate, UFixed oldStakingRate, Blocknumber lastUpdateIn);
30
32
  event LogStakingStakingServiceSet(address stakingService, VersionPart release, address oldStakingService);
@@ -4,10 +4,11 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IRelease} from "../registry/IRelease.sol";
7
8
  import {IStaking} from "./IStaking.sol";
8
9
  import {IStakingService} from "./IStakingService.sol";
9
10
  import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
10
- import {IVersionable} from "../shared/IVersionable.sol";
11
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
11
12
 
12
13
  import {Amount, AmountLib} from "../type/Amount.sol";
13
14
  import {Blocknumber} from "../type/Blocknumber.sol";
@@ -15,7 +16,7 @@ import {ChainId, ChainIdLib} from "../type/ChainId.sol";
15
16
  import {Component} from "../shared/Component.sol";
16
17
  import {IComponent} from "../shared/IComponent.sol";
17
18
  import {NftId} from "../type/NftId.sol";
18
- import {ObjectType, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
19
+ import {ObjectType, PROTOCOL, INSTANCE, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
19
20
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
20
21
  import {Registerable} from "../shared/Registerable.sol";
21
22
  import {StakingLib} from "./StakingLib.sol";
@@ -27,13 +28,12 @@ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
27
28
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
28
29
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
29
30
  import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
30
- import {Versionable} from "../shared/Versionable.sol";
31
- import {Upgradeable} from "../upgradeability/Upgradeable.sol";
31
+ import {Versionable} from "../upgradeability/Versionable.sol";
32
32
 
33
33
 
34
34
  contract Staking is
35
35
  Component,
36
- Upgradeable,
36
+ Versionable,
37
37
  IStaking
38
38
  {
39
39
  string public constant CONTRACT_NAME = "Staking";
@@ -86,6 +86,7 @@ contract Staking is
86
86
  address(this),
87
87
  dipToken,
88
88
  getRegistry().getAuthority());
89
+ emit LogStakingTokenHandlerDeployed(getNftId(), address($._tokenHandler), dipToken);
89
90
  }
90
91
 
91
92
 
@@ -649,11 +650,21 @@ contract Staking is
649
650
  return _getStakingStorage()._tokenHandler;
650
651
  }
651
652
 
653
+ // from IRegisterable
654
+ function getRelease()
655
+ public
656
+ pure
657
+ virtual override (IRelease, Registerable)
658
+ returns(VersionPart)
659
+ {
660
+ return VersionPartLib.toVersionPart(3);
661
+ }
662
+
652
663
  // from IVersionable
653
664
  function getVersion()
654
665
  public
655
666
  pure
656
- virtual override (IVersionable, Versionable)
667
+ virtual override (Component, IVersionable, Versionable)
657
668
  returns(Version)
658
669
  {
659
670
  return VersionLib.toVersion(3,0,0);
@@ -737,7 +748,7 @@ contract Staking is
737
748
  // initialize component
738
749
  __Component_init(
739
750
  registry.getAuthority(),
740
- registryAddress,
751
+ address(registry),
741
752
  registry.getNftId(), // parent nft id
742
753
  CONTRACT_NAME,
743
754
  STAKING(),
@@ -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 {Staking} from "./Staking.sol";
7
7
 
@@ -32,13 +32,13 @@ contract StakingManager is
32
32
  stakingStore,
33
33
  tokenRegistry);
34
34
 
35
- IUpgradeable upgradeable = initialize(
35
+ IVersionable versionable = initialize(
36
36
  registry,
37
37
  _initialImplementation,
38
38
  _initializationData,
39
39
  salt);
40
40
 
41
- _staking = Staking(address(upgradeable));
41
+ _staking = Staking(address(versionable));
42
42
  }
43
43
 
44
44
  //--- view functions ----------------------------------------------------//
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
+ import {IRegisterable} from "../shared/IRegisterable.sol";
6
7
  import {IRegistry} from "../registry/IRegistry.sol";
7
8
  import {IStaking} from "./IStaking.sol";
8
9
  import {IStakingService} from "./IStakingService.sol";
@@ -157,12 +158,11 @@ contract StakingService is
157
158
  nftId: NftIdLib.zero(),
158
159
  parentNftId: targetNftId,
159
160
  objectType: STAKE(),
160
- release: getRelease(),
161
161
  isInterceptor: false,
162
- objectAddress: address(0)}),
163
- stakeOwner, // initialOwner
164
- "" // data
165
- );
162
+ objectAddress: address(0),
163
+ initialOwner: stakeOwner,
164
+ data: ""
165
+ }));
166
166
 
167
167
  emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
168
168
  }
@@ -255,7 +255,7 @@ contract StakingService is
255
255
  )
256
256
  internal
257
257
  virtual override
258
- onlyInitializing()
258
+ initializer()
259
259
  {
260
260
  (
261
261
  address authority,
@@ -294,9 +294,6 @@ contract StakingService is
294
294
  return IStaking(stakingAddress);
295
295
  }
296
296
 
297
- // TODO staking is registered in registry.initialize()
298
- // consider deleting the rest of the function
299
-
300
297
  // check that contract implements IStaking
301
298
  if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
302
299
  revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
@@ -304,7 +301,7 @@ contract StakingService is
304
301
 
305
302
  address owner = msg.sender;
306
303
  _getStakingServiceStorage()._registryService.registerStaking(
307
- IStaking(stakingAddress),
304
+ IRegisterable(stakingAddress),
308
305
  owner);
309
306
 
310
307
  return IStaking(stakingAddress);