@etherisc/gif-next 3.0.0-f90c901-018 → 3.0.0-fb87f3a-607

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 (507) 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 +83 -164
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +115 -113
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +46 -91
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +70 -105
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +150 -126
  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 +10 -20
  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 +75 -126
  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 +57 -72
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +224 -198
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -140
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +56 -84
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +117 -71
  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 +104 -166
  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 +138 -200
  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 +102 -159
  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 +106 -163
  79. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +120 -177
  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 +114 -171
  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 +54 -49
  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 +26 -78
  95. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -83
  97. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  98. package/artifacts/contracts/instance/Instance.sol/Instance.json +51 -145
  99. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  100. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +151 -185
  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 +238 -77
  105. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +136 -138
  107. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -104
  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 +58 -53
  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/Cloneable.sol/Cloneable.json +1 -1
  119. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  121. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +8 -3
  125. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  127. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  129. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  132. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  133. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  134. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +81 -132
  135. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  136. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  137. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  138. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +66 -94
  140. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +83 -80
  142. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  143. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +67 -82
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  145. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +148 -149
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -111
  148. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  149. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -88
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  151. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  153. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +129 -176
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +139 -129
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  157. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +44 -71
  158. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  159. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +72 -100
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  161. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +98 -94
  162. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  163. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -88
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  165. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +247 -24
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  167. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +177 -233
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +130 -140
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  171. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +63 -138
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +112 -110
  174. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  175. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +57 -72
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  177. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  179. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +115 -182
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  181. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +138 -132
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  183. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +32 -71
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  185. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +32 -71
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  187. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +76 -82
  188. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  189. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -82
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  191. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +56 -84
  192. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  193. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +36 -75
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  195. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +139 -173
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  197. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  199. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +128 -122
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  201. package/artifacts/contracts/product/PricingService.sol/PricingService.json +94 -161
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  203. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  204. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  205. package/artifacts/contracts/product/Product.sol/Product.json +57 -72
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  207. package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -146
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  209. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +107 -109
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  211. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  213. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +62 -155
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  215. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +216 -202
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  217. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  218. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  219. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/Registry.sol/Registry.json +102 -314
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +146 -179
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -57
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +244 -285
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +110 -115
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +154 -175
  231. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  233. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +187 -135
  235. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  237. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +29 -13
  239. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Component.sol/Component.json +39 -84
  241. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +345 -164
  243. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -115
  245. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  247. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  250. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  252. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +633 -0
  254. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +38 -96
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  257. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +251 -82
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  259. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +56 -84
  260. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +28 -1
  263. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  265. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +25 -77
  267. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  269. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IService.sol/IService.json +32 -71
  271. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  272. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  273. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -72
  274. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  276. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  277. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  278. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +34 -15
  279. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  280. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  281. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -76
  283. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  284. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  285. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Service.sol/Service.json +31 -70
  287. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  288. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +29 -42
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +17 -30
  291. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  293. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  294. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +81 -101
  295. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  296. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +48 -75
  297. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  298. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  299. package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -170
  300. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  301. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -26
  302. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  303. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +124 -112
  304. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  306. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +77 -132
  308. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +111 -105
  310. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +204 -212
  312. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  313. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +19 -27
  314. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  315. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
  316. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  317. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  321. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  323. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  325. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  328. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  329. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  330. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  332. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  333. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  334. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  336. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  337. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  338. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  340. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  342. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  343. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  344. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  346. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  348. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  350. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  352. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  354. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  355. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  356. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  357. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  358. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  360. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  362. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  364. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  365. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +86 -63
  366. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  367. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  368. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  369. package/contracts/accounting/AccountingService.sol +22 -33
  370. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  371. package/contracts/accounting/IAccountingService.sol +7 -8
  372. package/contracts/authorization/AccessAdmin.sol +24 -47
  373. package/contracts/authorization/AccessAdminLib.sol +29 -15
  374. package/contracts/authorization/AccessManagerCloneable.sol +51 -24
  375. package/contracts/authorization/Authorization.sol +2 -2
  376. package/contracts/authorization/IAccessAdmin.sol +3 -3
  377. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  378. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  379. package/contracts/distribution/BasicDistribution.sol +2 -0
  380. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  381. package/contracts/distribution/Distribution.sol +2 -0
  382. package/contracts/distribution/DistributionService.sol +25 -27
  383. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  384. package/contracts/distribution/IDistributionService.sol +4 -3
  385. package/contracts/examples/fire/FirePool.sol +4 -0
  386. package/contracts/examples/fire/FireProduct.sol +4 -0
  387. package/contracts/examples/flight/FlightLib.sol +337 -0
  388. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  389. package/contracts/examples/flight/FlightNft.sol +234 -0
  390. package/contracts/examples/flight/FlightOracle.sol +226 -0
  391. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  392. package/contracts/examples/flight/FlightPool.sol +89 -0
  393. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  394. package/contracts/examples/flight/FlightProduct.sol +687 -0
  395. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  396. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  397. package/contracts/examples/flight/FlightUSD.sol +28 -0
  398. package/contracts/examples/flight/originalV1.sol +396 -0
  399. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  400. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  401. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  402. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  403. package/contracts/instance/BaseStore.sol +4 -0
  404. package/contracts/instance/IBaseStore.sol +8 -0
  405. package/contracts/instance/IInstance.sol +1 -1
  406. package/contracts/instance/IInstanceService.sol +2 -0
  407. package/contracts/instance/Instance.sol +12 -8
  408. package/contracts/instance/InstanceAdmin.sol +17 -11
  409. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  410. package/contracts/instance/InstanceReader.sol +56 -22
  411. package/contracts/instance/InstanceService.sol +24 -18
  412. package/contracts/instance/InstanceServiceManager.sol +6 -4
  413. package/contracts/instance/base/Cloneable.sol +10 -4
  414. package/contracts/instance/base/ObjectSet.sol +2 -2
  415. package/contracts/oracle/BasicOracle.sol +3 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  417. package/contracts/oracle/IOracleService.sol +16 -12
  418. package/contracts/oracle/Oracle.sol +6 -5
  419. package/contracts/oracle/OracleService.sol +67 -37
  420. package/contracts/oracle/OracleServiceManager.sol +6 -4
  421. package/contracts/pool/BasicPool.sol +4 -2
  422. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  423. package/contracts/pool/BundleService.sol +20 -26
  424. package/contracts/pool/BundleServiceManager.sol +7 -5
  425. package/contracts/pool/IBundleService.sol +1 -1
  426. package/contracts/pool/IPoolService.sol +6 -5
  427. package/contracts/pool/Pool.sol +3 -1
  428. package/contracts/pool/PoolLib.sol +102 -5
  429. package/contracts/pool/PoolService.sol +101 -67
  430. package/contracts/pool/PoolServiceManager.sol +6 -4
  431. package/contracts/product/ApplicationService.sol +34 -13
  432. package/contracts/product/ApplicationServiceManager.sol +6 -4
  433. package/contracts/product/BasicProduct.sol +2 -0
  434. package/contracts/product/BasicProductAuthorization.sol +7 -7
  435. package/contracts/product/ClaimService.sol +34 -10
  436. package/contracts/product/ClaimServiceManager.sol +7 -5
  437. package/contracts/product/IPolicyService.sol +2 -1
  438. package/contracts/product/PolicyService.sol +58 -45
  439. package/contracts/product/PolicyServiceLib.sol +5 -3
  440. package/contracts/product/PolicyServiceManager.sol +6 -4
  441. package/contracts/product/PricingService.sol +8 -7
  442. package/contracts/product/PricingServiceManager.sol +6 -4
  443. package/contracts/product/Product.sol +2 -0
  444. package/contracts/product/RiskService.sol +40 -8
  445. package/contracts/product/RiskServiceManager.sol +6 -4
  446. package/contracts/registry/ChainNft.sol +1 -1
  447. package/contracts/registry/IRegistry.sol +14 -20
  448. package/contracts/registry/IRegistryService.sol +14 -10
  449. package/contracts/registry/IRelease.sol +3 -0
  450. package/contracts/registry/Registry.sol +78 -124
  451. package/contracts/registry/RegistryAdmin.sol +29 -12
  452. package/contracts/registry/RegistryAuthorization.sol +3 -4
  453. package/contracts/registry/RegistryService.sol +82 -99
  454. package/contracts/registry/RegistryServiceManager.sol +11 -4
  455. package/contracts/registry/ReleaseAdmin.sol +23 -9
  456. package/contracts/registry/ReleaseRegistry.sol +74 -64
  457. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  458. package/contracts/registry/TokenRegistry.sol +15 -6
  459. package/contracts/shared/Component.sol +22 -27
  460. package/contracts/shared/ComponentService.sol +135 -45
  461. package/contracts/shared/ComponentServiceManager.sol +7 -5
  462. package/contracts/shared/ContractLib.sol +93 -359
  463. package/contracts/shared/EcdsaChecker.sol +5 -0
  464. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  465. package/contracts/shared/IComponent.sol +3 -5
  466. package/contracts/shared/IComponentService.sol +15 -0
  467. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  468. package/contracts/shared/INftOwnable.sol +2 -0
  469. package/contracts/shared/IRegisterable.sol +3 -14
  470. package/contracts/shared/IRegistryLinked.sol +3 -1
  471. package/contracts/shared/IService.sol +2 -2
  472. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  473. package/contracts/shared/NftOwnable.sol +22 -9
  474. package/contracts/shared/PolicyHolder.sol +4 -2
  475. package/contracts/shared/Registerable.sol +20 -37
  476. package/contracts/shared/RegistryLinked.sol +23 -4
  477. package/contracts/shared/Service.sol +9 -8
  478. package/contracts/shared/TokenHandler.sol +1 -4
  479. package/contracts/staking/IStaking.sol +4 -2
  480. package/contracts/staking/IStakingService.sol +1 -1
  481. package/contracts/staking/Staking.sol +34 -28
  482. package/contracts/staking/StakingLib.sol +1 -3
  483. package/contracts/staking/StakingManager.sol +6 -3
  484. package/contracts/staking/StakingReader.sol +17 -9
  485. package/contracts/staking/StakingService.sol +14 -17
  486. package/contracts/staking/StakingServiceManager.sol +8 -4
  487. package/contracts/staking/StakingStore.sol +8 -8
  488. package/contracts/staking/TargetHandler.sol +5 -4
  489. package/contracts/type/ObjectType.sol +2 -31
  490. package/contracts/type/Referral.sol +6 -0
  491. package/contracts/type/RequestIdSet.sol +62 -0
  492. package/contracts/type/Seconds.sol +4 -0
  493. package/contracts/type/String.sol +30 -0
  494. package/contracts/type/Timestamp.sol +10 -1
  495. package/contracts/type/Version.sol +16 -15
  496. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  497. package/contracts/upgradeability/ProxyManager.sol +54 -46
  498. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  499. package/package.json +2 -1
  500. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  501. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  502. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  503. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  504. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  505. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  506. package/contracts/shared/IVersionable.sol +0 -19
  507. package/contracts/shared/Versionable.sol +0 -47
@@ -5,25 +5,25 @@ 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
  {
24
23
 
25
24
  function __Service_init(
26
25
  address authority, // real authority for registry service adress(0) for other services
26
+ address registry,
27
27
  address initialOwner
28
28
  )
29
29
  internal
@@ -34,7 +34,8 @@ abstract contract Service is
34
34
 
35
35
  __Registerable_init(
36
36
  authority,
37
- _getRegistry().getNftId(),
37
+ registry,
38
+ IRegistry(registry).getNftId(),
38
39
  SERVICE(),
39
40
  false, // is interceptor
40
41
  initialOwner,
@@ -61,6 +62,6 @@ abstract contract Service is
61
62
 
62
63
 
63
64
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
64
- return _getRegistry().getServiceAddress(domain, getRelease());
65
+ return getRegistry().getServiceAddress(domain, getRelease());
65
66
  }
66
67
  }
@@ -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);
@@ -17,7 +17,7 @@ interface IStakingService is IService
17
17
  {
18
18
 
19
19
  event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
20
- event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
20
+ event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId, Seconds initialLockingPeriod, UFixed initialRewardRate);
21
21
  event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
22
22
  event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
23
23
 
@@ -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";
@@ -75,18 +75,18 @@ contract Staking is
75
75
  external
76
76
  virtual
77
77
  {
78
- IRegistry registry = _getRegistry();
79
- if (msg.sender != address(registry)) {
78
+ if (msg.sender != address(getRegistry())) {
80
79
  revert ErrorStakingNotRegistry(msg.sender);
81
80
  }
82
81
 
83
82
  StakingStorage storage $ = _getStakingStorage();
84
83
  address dipToken = _getStakingStorage()._tokenRegistry.getDipTokenAddress();
85
84
  $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
86
- address(registry),
85
+ address(getRegistry()),
87
86
  address(this),
88
87
  dipToken,
89
- registry.getAuthority());
88
+ getRegistry().getAuthority());
89
+ emit LogStakingTokenHandlerDeployed(getNftId(), address($._tokenHandler), dipToken);
90
90
  }
91
91
 
92
92
 
@@ -191,7 +191,7 @@ contract Staking is
191
191
  // effects
192
192
  StakingStorage storage $ = _getStakingStorage();
193
193
  address oldStakingService = address($._stakingService);
194
- $._stakingService = StakingLib.checkAndGetStakingService(release);
194
+ $._stakingService = StakingLib.checkAndGetStakingService(getRegistry(), release);
195
195
 
196
196
  emit LogStakingStakingServiceSet(address($._stakingService), release, oldStakingService);
197
197
  }
@@ -278,10 +278,9 @@ contract Staking is
278
278
  returns (Amount newBalance)
279
279
  {
280
280
  address transferTo;
281
- IRegistry registry = _getRegistry();
282
281
 
283
282
  // case 1: protocol target: staking owner is recipient
284
- if (targetNftId == registry.getProtocolNftId()) {
283
+ if (targetNftId == getRegistry().getProtocolNftId()) {
285
284
  // verify that the caller is the staking owner
286
285
  transferTo = getOwner();
287
286
  if (msg.sender != transferTo) {
@@ -291,7 +290,7 @@ contract Staking is
291
290
  // case 2: same chain target: target owner is recipient
292
291
  } else if (ChainIdLib.isCurrentChain(targetNftId)) {
293
292
  // verify that the caller is the target owner
294
- transferTo = registry.ownerOf(targetNftId);
293
+ transferTo = getRegistry().ownerOf(targetNftId);
295
294
  if (msg.sender != transferTo) {
296
295
  revert ErrorStakingNotNftOwner(targetNftId);
297
296
  }
@@ -325,15 +324,13 @@ contract Staking is
325
324
  onlyTarget(targetNftId)
326
325
  returns (Amount newBalance)
327
326
  {
328
- IRegistry registry = _getRegistry();
329
-
330
327
  // check that service does not withdraw from protocol target
331
- if (targetNftId == registry.getProtocolNftId()) {
328
+ if (targetNftId == getRegistry().getProtocolNftId()) {
332
329
  revert ErrorStakingTargetTypeNotSupported(targetNftId, PROTOCOL());
333
330
  }
334
331
 
335
332
  // default: on-chain target owner is recipient
336
- address targetOwner = registry.ownerOf(targetNftId);
333
+ address targetOwner = getRegistry().ownerOf(targetNftId);
337
334
  return _withdrawRewardReserves(targetNftId, dipAmount, targetOwner);
338
335
  }
339
336
 
@@ -435,9 +432,7 @@ contract Staking is
435
432
  virtual
436
433
  restricted() // only pool service
437
434
  {
438
- // !!! TODO amount can be 0
439
435
  StakingStorage storage $ = _getStakingStorage();
440
- // why not StakingBalanceStore instead of StakingStore?
441
436
  $._store.increaseTotalValueLocked(targetNftId, token, amount);
442
437
  }
443
438
 
@@ -534,7 +529,7 @@ contract Staking is
534
529
 
535
530
  // collect staked DIP token via staking service
536
531
  if (stakeAmount.gtz()) {
537
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
532
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
538
533
  $._stakingService.pullDipToken(stakeAmount, stakeOwner);
539
534
  }
540
535
  }
@@ -557,7 +552,7 @@ contract Staking is
557
552
 
558
553
  // transfer unstaked DIP token via staking service
559
554
  if (unstakedAmount.gtz()) {
560
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
555
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
561
556
  $._stakingService.pushDipToken(unstakedAmount, stakeOwner);
562
557
  }
563
558
  }
@@ -588,7 +583,7 @@ contract Staking is
588
583
  AmountLib.max()); // unstake up to this amount
589
584
 
590
585
  // step 2: create new stake with full unstaked amount
591
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
586
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
592
587
  newStakeNftId = $._stakingService.createStakeObject(newTargetNftId, stakeOwner);
593
588
  $._store.createStake(newStakeNftId, newTargetNftId, stakeOwner, newStakedAmount);
594
589
 
@@ -627,7 +622,7 @@ contract Staking is
627
622
  // collect staked DIP token by staking service
628
623
  if (claimedAmount.gtz()) {
629
624
  // interactions
630
- address stakeOwner = _getRegistry().ownerOf(stakeNftId);
625
+ address stakeOwner = getRegistry().ownerOf(stakeNftId);
631
626
  $._stakingService.pushDipToken(claimedAmount, stakeOwner);
632
627
  }
633
628
  }
@@ -655,11 +650,21 @@ contract Staking is
655
650
  return _getStakingStorage()._tokenHandler;
656
651
  }
657
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
+
658
663
  // from IVersionable
659
664
  function getVersion()
660
665
  public
661
666
  pure
662
- virtual override (IVersionable, Versionable)
667
+ virtual override (Component, IVersionable, Versionable)
663
668
  returns(Version)
664
669
  {
665
670
  return VersionLib.toVersion(3,0,0);
@@ -724,13 +729,14 @@ contract Staking is
724
729
  onlyInitializing()
725
730
  {
726
731
  (
732
+ address registryAddress,
727
733
  address targetHandlerAddress,
728
734
  address stakingStoreAddress,
729
735
  address tokenRegistryAddress
730
- ) = abi.decode(data, (address, address, address));
736
+ ) = abi.decode(data, (address, address, address, address));
731
737
 
732
738
  // wiring to external contracts
733
- IRegistry registry = _getRegistry();
739
+ IRegistry registry = IRegistry(registryAddress);
734
740
  StakingStorage storage $ = _getStakingStorage();
735
741
  $._protocolNftId = registry.getProtocolNftId();
736
742
  $._targetHandler = TargetHandler(targetHandlerAddress);
@@ -740,9 +746,9 @@ contract Staking is
740
746
  // staking service has to be set via setStakingService after deploying the first GIF release
741
747
 
742
748
  // initialize component
743
- // TODO Will read 0 component service address from registry
744
749
  __Component_init(
745
750
  registry.getAuthority(),
751
+ address(registry),
746
752
  registry.getNftId(), // parent nft id
747
753
  CONTRACT_NAME,
748
754
  STAKING(),
@@ -776,7 +782,7 @@ contract Staking is
776
782
  }
777
783
 
778
784
  if (checkOwner) {
779
- address nftOwner = _getRegistry().ownerOf(nftId);
785
+ address nftOwner = getRegistry().ownerOf(nftId);
780
786
  if (msg.sender != nftOwner) {
781
787
  revert ErrorStakingNotOwner(nftId, nftOwner, msg.sender);
782
788
  }
@@ -6,7 +6,6 @@ import {IStaking} from "./IStaking.sol";
6
6
  import {IStakingService} from "./IStakingService.sol";
7
7
 
8
8
  import {Amount} from "../type/Amount.sol";
9
- import {ContractLib} from "../shared/ContractLib.sol";
10
9
  import {NftId} from "../type/NftId.sol";
11
10
  import {ReleaseRegistry} from "../registry/ReleaseRegistry.sol";
12
11
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
@@ -112,14 +111,13 @@ library StakingLib {
112
111
 
113
112
 
114
113
  function checkAndGetStakingService(
114
+ IRegistry registry,
115
115
  VersionPart release
116
116
  )
117
117
  public
118
118
  view
119
119
  returns (IStakingService stakingService)
120
120
  {
121
- IRegistry registry = ContractLib.getRegistry();
122
-
123
121
  if (!ReleaseRegistry(registry.getReleaseRegistryAddress()).isActiveRelease(release)) {
124
122
  revert IStaking.ErrorStakingReleaseNotActive(release);
125
123
  }
@@ -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
 
@@ -15,6 +15,7 @@ contract StakingManager is
15
15
 
16
16
  /// @dev initializes proxy manager with service implementation
17
17
  constructor(
18
+ address registry,
18
19
  address targetHandler,
19
20
  address stakingStore,
20
21
  address tokenRegistry,
@@ -26,16 +27,18 @@ contract StakingManager is
26
27
 
27
28
  _initialImplementation = address(stakingImplementation);
28
29
  _initializationData = abi.encode(
30
+ registry,
29
31
  targetHandler,
30
32
  stakingStore,
31
33
  tokenRegistry);
32
34
 
33
- IUpgradeable upgradeable = initialize(
35
+ IVersionable versionable = initialize(
36
+ registry,
34
37
  _initialImplementation,
35
38
  _initializationData,
36
39
  salt);
37
40
 
38
- _staking = Staking(address(upgradeable));
41
+ _staking = Staking(address(versionable));
39
42
  }
40
43
 
41
44
  //--- view functions ----------------------------------------------------//
@@ -4,32 +4,36 @@ pragma solidity ^0.8.20;
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
6
  import {IRegistry} from "../registry/IRegistry.sol";
7
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
7
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
8
8
  import {IStaking} from "../staking/IStaking.sol";
9
9
 
10
- import {Amount} from "../type/Amount.sol";
10
+ import {Amount, AmountLib} from "../type/Amount.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
11
12
  import {ChainId} from "../type/ChainId.sol";
12
13
  import {NftId} from "../type/NftId.sol";
13
14
  import {ObjectType} from "../type/ObjectType.sol";
14
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
15
15
  import {Seconds} from "../type/Seconds.sol";
16
16
  import {StakingStore} from "./StakingStore.sol";
17
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
18
+ import {Timestamp} from "../type/Timestamp.sol";
17
19
  import {UFixed} from "../type/UFixed.sol";
18
20
 
19
21
 
20
22
  contract StakingReader is
21
- Initializable,
22
- RegistryLinked
23
+ IRegistryLinked,
24
+ Initializable
23
25
  {
24
26
 
25
27
  error ErrorStakingReaderUnauthorizedCaler();
26
28
 
27
29
  address private _initializeOwner;
30
+ IRegistry private _registry;
28
31
  IStaking private _staking;
29
32
  StakingStore private _store;
30
33
 
31
- constructor() {
34
+ constructor(IRegistry registry) {
32
35
  _initializeOwner = msg.sender;
36
+ _registry = registry;
33
37
  }
34
38
 
35
39
  function initialize(
@@ -47,14 +51,18 @@ contract StakingReader is
47
51
  _store = StakingStore(stakingStoreAddress);
48
52
  }
49
53
 
50
- // view functions
54
+ // view and pure functions
55
+
56
+ function getRegistry() external view returns (IRegistry registry) {
57
+ return _registry;
58
+ }
51
59
 
52
60
  function getStaking() external view returns (IStaking staking) {
53
61
  return _staking;
54
62
  }
55
63
 
56
64
  function getProtocolNftId() external view returns (NftId protocolNftId) {
57
- return _getRegistry().getProtocolNftId();
65
+ return _registry.getProtocolNftId();
58
66
  }
59
67
 
60
68
 
@@ -74,7 +82,7 @@ contract StakingReader is
74
82
 
75
83
 
76
84
  function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
77
- return _getRegistry().getParentNftId(stakeNftId);
85
+ return _registry.getParentNftId(stakeNftId);
78
86
  }
79
87
 
80
88
 
@@ -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";
@@ -58,7 +59,7 @@ contract StakingService is
58
59
  initialLockingPeriod,
59
60
  initialRewardRate);
60
61
 
61
- emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
62
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId, initialLockingPeriod, initialRewardRate);
62
63
  }
63
64
 
64
65
 
@@ -113,7 +114,7 @@ contract StakingService is
113
114
 
114
115
  // update reward reserve book keeping
115
116
  StakingServiceStorage storage $ = _getStakingServiceStorage();
116
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
117
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
117
118
  newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
118
119
 
119
120
  emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
@@ -130,7 +131,7 @@ contract StakingService is
130
131
  _checkNftType(instanceNftId, INSTANCE());
131
132
  // update reward reserve book keeping
132
133
  StakingServiceStorage storage $ = _getStakingServiceStorage();
133
- address instanceOwner = _getRegistry().ownerOf(instanceNftId);
134
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
134
135
  newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
135
136
 
136
137
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
@@ -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,18 +255,18 @@ contract StakingService is
255
255
  )
256
256
  internal
257
257
  virtual override
258
- onlyInitializing()
258
+ initializer()
259
259
  {
260
260
  (
261
261
  address authority,
262
+ address registry,
262
263
  address staking
263
- ) = abi.decode(data, (address, address));
264
+ ) = abi.decode(data, (address, address, address));
264
265
 
265
- __Service_init(authority, owner);
266
+ __Service_init(authority, registry, owner);
266
267
 
267
268
  StakingServiceStorage storage $ = _getStakingServiceStorage();
268
269
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
269
- // TODO staking is registered in registry.initialize(), just check if address is registered staking
270
270
  $._staking = _registerStaking(staking);
271
271
  $._dip = $._staking.getToken();
272
272
  $._tokenHandler = $._staking.getTokenHandler();
@@ -283,7 +283,7 @@ contract StakingService is
283
283
  {
284
284
  // check if provided staking contract is already registred
285
285
  // staking contract may have been already registered by a previous major relase
286
- IRegistry.ObjectInfo memory stakingInfo = _getRegistry().getObjectInfo(stakingAddress);
286
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
287
287
  if (stakingInfo.nftId.gtz()) {
288
288
  // registered object but wrong type
289
289
  if (stakingInfo.objectType != STAKING()) {
@@ -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);
@@ -2,7 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+
6
7
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
8
  import {StakingService} from "./StakingService.sol";
8
9
 
@@ -15,20 +16,23 @@ contract StakingServiceManager is
15
16
  /// @dev initializes proxy manager with service implementation
16
17
  constructor(
17
18
  address authority,
19
+ address registry,
18
20
  bytes32 salt
19
21
  )
20
22
  {
21
23
  StakingService svc = new StakingService();
22
24
  bytes memory data = abi.encode(
23
25
  authority,
24
- _getRegistry().getStakingAddress());
26
+ registry,
27
+ IRegistry(registry).getStakingAddress());
25
28
 
26
- IUpgradeable upgradeable = initialize(
29
+ IVersionable versionable = initialize(
30
+ registry,
27
31
  address(svc),
28
32
  data,
29
33
  salt);
30
34
 
31
- _stakingService = StakingService(address(upgradeable));
35
+ _stakingService = StakingService(address(versionable));
32
36
  }
33
37
 
34
38
  //--- view functions ----------------------------------------------------//
@@ -18,7 +18,6 @@ import {PROTOCOL, INSTANCE} from "../type/ObjectType.sol";
18
18
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
19
19
  import {StakingLib} from "./StakingLib.sol";
20
20
  import {StakingReader} from "./StakingReader.sol";
21
- import {RegistryLinked} from "../shared/RegistryLinked.sol";
22
21
  import {TargetManagerLib} from "./TargetManagerLib.sol";
23
22
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
24
23
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
@@ -26,8 +25,7 @@ import {UFixed, UFixedLib} from "../type/UFixed.sol";
26
25
 
27
26
  contract StakingStore is
28
27
  Initializable,
29
- AccessManaged,
30
- RegistryLinked
28
+ AccessManaged
31
29
  {
32
30
 
33
31
  // token
@@ -55,6 +53,7 @@ contract StakingStore is
55
53
  error ErrorStakingStoreTvlBalanceAlreadyInitialized(NftId nftId, address token);
56
54
  error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId, address token);
57
55
 
56
+ IRegistry private _registry;
58
57
  ITargetLimitHandler private _targetLimitHandler;
59
58
  StakingReader private _reader;
60
59
  NftIdSet private _targetNftIdSet;
@@ -76,15 +75,16 @@ contract StakingStore is
76
75
 
77
76
 
78
77
  constructor(
78
+ IRegistry registry,
79
79
  StakingReader reader
80
80
  )
81
81
  AccessManaged(msg.sender)
82
82
  {
83
-
84
83
  // set final authority
85
- setAuthority(_getRegistry().getAuthority());
84
+ setAuthority(registry.getAuthority());
86
85
 
87
86
  // set internal variables
87
+ _registry = registry;
88
88
  _reader = reader;
89
89
  _targetNftIdSet = new NftIdSet();
90
90
 
@@ -495,7 +495,7 @@ contract StakingStore is
495
495
  emit IStaking.LogStakingRewardReservesRefilled(
496
496
  targetNftId,
497
497
  dipAmount,
498
- _getRegistry().ownerOf(targetNftId),
498
+ _registry.ownerOf(targetNftId),
499
499
  newReserveBalance,
500
500
  lastUpdateIn);
501
501
  }
@@ -520,7 +520,7 @@ contract StakingStore is
520
520
  emit IStaking.LogStakingRewardReservesWithdrawn(
521
521
  targetNftId,
522
522
  dipAmount,
523
- _getRegistry().ownerOf(targetNftId),
523
+ _registry.ownerOf(targetNftId),
524
524
  newReserveBalance,
525
525
  lastUpdateIn);
526
526
  }
@@ -929,7 +929,7 @@ contract StakingStore is
929
929
  // checks
930
930
  if (checkParameters) {
931
931
  TargetManagerLib.checkTargetParameters(
932
- _getRegistry(),
932
+ _registry,
933
933
  _reader,
934
934
  targetNftId,
935
935
  objectType,