@etherisc/gif-next 3.0.0-cf1abe2-268 → 3.0.0-cf20ffd-765

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 (530) 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 +119 -117
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +48 -93
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +145 -168
  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 +101 -43
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +55 -31
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +85 -83
  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 +77 -222
  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 +59 -168
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +252 -238
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -144
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +58 -180
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +145 -111
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -246
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +65 -41
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +137 -279
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +65 -41
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
  51. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  52. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -0
  53. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
  54. package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
  55. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.dbg.json +4 -0
  56. package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
  57. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  58. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
  59. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
  61. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  62. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
  63. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
  65. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  66. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
  67. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  68. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
  69. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
  70. package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -0
  71. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  72. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
  73. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  74. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +104 -255
  77. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  78. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +65 -41
  79. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  80. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +108 -240
  81. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  82. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +125 -257
  83. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  84. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +65 -41
  85. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  86. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +116 -248
  87. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  88. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +65 -41
  89. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
  90. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
  91. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +69 -77
  93. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
  94. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
  95. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  96. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +47 -99
  97. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +126 -92
  99. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  100. package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -166
  101. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  102. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +225 -247
  103. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  104. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +67 -43
  105. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  106. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -77
  107. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +175 -149
  109. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +116 -108
  111. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  112. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +183 -133
  113. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
  114. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +153 -103
  115. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  116. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +80 -88
  117. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  118. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +21 -21
  119. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  120. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +1 -1
  121. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  122. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  123. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  124. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  125. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  126. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +9 -4
  127. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  128. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  129. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  130. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  131. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  132. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  133. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  134. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  135. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  136. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  137. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +83 -209
  138. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  139. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +65 -41
  140. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  141. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  142. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +63 -166
  143. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  144. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +103 -94
  145. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  146. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +69 -159
  147. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  148. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +168 -163
  149. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +133 -115
  151. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  152. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +78 -168
  153. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  154. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +65 -41
  155. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  156. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -212
  157. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -133
  159. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  160. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +73 -107
  161. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  162. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -179
  163. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  164. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +142 -138
  165. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  166. package/artifacts/contracts/pool/Pool.sol/Pool.json +78 -168
  167. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  168. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +244 -26
  169. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  170. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +221 -277
  171. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +134 -144
  173. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  174. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +74 -149
  175. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -114
  177. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  178. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +59 -149
  179. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  180. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +65 -41
  181. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  182. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -203
  183. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -136
  185. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  186. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +43 -82
  187. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  188. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +59 -92
  189. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  190. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +91 -97
  191. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  192. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +45 -84
  193. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  194. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +58 -161
  195. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  196. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +51 -103
  197. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  198. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -188
  199. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  200. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
  201. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +132 -126
  203. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  204. package/artifacts/contracts/product/PricingService.sol/PricingService.json +96 -163
  205. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +126 -120
  207. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  208. package/artifacts/contracts/product/Product.sol/Product.json +59 -149
  209. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  210. package/artifacts/contracts/product/RiskService.sol/RiskService.json +78 -174
  211. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +111 -113
  213. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  214. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
  215. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +70 -163
  217. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  218. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +218 -204
  219. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  220. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +15 -1
  221. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  222. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  223. package/artifacts/contracts/registry/Registry.sol/Registry.json +114 -322
  224. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  225. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +221 -242
  226. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  227. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +77 -82
  228. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  229. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +246 -287
  230. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  231. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +114 -119
  232. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  233. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +236 -245
  234. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  235. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  236. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  237. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +217 -156
  238. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  239. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +56 -32
  240. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  241. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +39 -23
  242. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Component.sol/Component.json +41 -161
  244. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  245. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +554 -182
  246. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  247. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +145 -119
  248. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  249. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +169 -421
  250. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  253. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  254. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  255. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
  257. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  258. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +40 -173
  259. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  260. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +457 -97
  261. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  262. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +58 -161
  263. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  264. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +30 -3
  266. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  267. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +12 -1
  268. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +27 -79
  270. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  271. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +12 -1
  272. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  273. package/artifacts/contracts/shared/IService.sol/IService.json +34 -73
  274. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  275. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  276. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  277. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +59 -149
  278. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  279. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  281. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  282. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +36 -17
  283. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  284. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +14 -3
  285. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  286. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +26 -78
  287. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  288. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +37 -3
  289. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  290. package/artifacts/contracts/shared/Service.sol/Service.json +33 -72
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -82
  293. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  294. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -70
  295. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  296. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
  297. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  298. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +182 -283
  299. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  300. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -300
  301. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
  302. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  303. package/artifacts/contracts/staking/Staking.sol/Staking.json +235 -352
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  305. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +31 -31
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  307. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -116
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  309. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +22 -5
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  311. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +84 -357
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  313. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +115 -109
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  315. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -281
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
  317. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +22 -35
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  319. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -21
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -7
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -7
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  337. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  341. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +22 -25
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  350. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
  351. package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  353. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  355. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  357. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  359. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  361. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  363. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  364. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  365. package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  367. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  369. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -7
  370. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  371. package/artifacts/contracts/type/Version.sol/VersionLib.json +10 -10
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  373. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +6 -19
  374. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  375. package/artifacts/contracts/upgradeability/{IUpgradeable.sol/IUpgradeable.json → IVersionable.sol/IVersionable.json} +4 -54
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  377. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +90 -67
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  379. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  380. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  381. package/artifacts/contracts/upgradeability/{Upgradeable.sol/Upgradeable.json → Versionable.sol/Versionable.json} +4 -54
  382. package/contracts/accounting/AccountingService.sol +22 -33
  383. package/contracts/accounting/AccountingServiceManager.sol +6 -4
  384. package/contracts/accounting/IAccountingService.sol +7 -8
  385. package/contracts/authorization/AccessAdmin.sol +34 -55
  386. package/contracts/authorization/AccessAdminLib.sol +29 -15
  387. package/contracts/authorization/AccessManagerCloneable.sol +52 -24
  388. package/contracts/authorization/Authorization.sol +2 -2
  389. package/contracts/authorization/IAccessAdmin.sol +11 -10
  390. package/contracts/authorization/IServiceAuthorization.sol +1 -1
  391. package/contracts/authorization/ServiceAuthorization.sol +4 -4
  392. package/contracts/distribution/BasicDistribution.sol +2 -0
  393. package/contracts/distribution/BasicDistributionAuthorization.sol +4 -5
  394. package/contracts/distribution/Distribution.sol +2 -0
  395. package/contracts/distribution/DistributionService.sol +44 -43
  396. package/contracts/distribution/DistributionServiceManager.sol +6 -4
  397. package/contracts/distribution/IDistributionComponent.sol +0 -2
  398. package/contracts/distribution/IDistributionService.sol +8 -7
  399. package/contracts/examples/fire/FirePool.sol +4 -0
  400. package/contracts/examples/fire/FireProduct.sol +4 -0
  401. package/contracts/examples/flight/FlightLib.sol +337 -0
  402. package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
  403. package/contracts/examples/flight/FlightNft.sol +234 -0
  404. package/contracts/examples/flight/FlightOracle.sol +226 -0
  405. package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
  406. package/contracts/examples/flight/FlightPool.sol +89 -0
  407. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  408. package/contracts/examples/flight/FlightProduct.sol +687 -0
  409. package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
  410. package/contracts/examples/flight/FlightProductManager.sol +49 -0
  411. package/contracts/examples/flight/FlightUSD.sol +28 -0
  412. package/contracts/examples/flight/originalV1.sol +396 -0
  413. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -0
  414. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -0
  415. package/contracts/examples/unpermissioned/SimplePool.sol +4 -0
  416. package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -0
  417. package/contracts/instance/BaseStore.sol +4 -0
  418. package/contracts/instance/BundleSet.sol +7 -8
  419. package/contracts/instance/IBaseStore.sol +8 -0
  420. package/contracts/instance/IInstance.sol +8 -8
  421. package/contracts/instance/IInstanceService.sol +6 -4
  422. package/contracts/instance/Instance.sol +12 -8
  423. package/contracts/instance/InstanceAdmin.sol +17 -11
  424. package/contracts/instance/InstanceAuthorizationV3.sol +2 -4
  425. package/contracts/instance/InstanceReader.sol +59 -23
  426. package/contracts/instance/InstanceService.sol +28 -18
  427. package/contracts/instance/InstanceServiceManager.sol +6 -4
  428. package/contracts/instance/InstanceStore.sol +14 -14
  429. package/contracts/instance/ProductStore.sol +14 -14
  430. package/contracts/instance/RiskSet.sol +6 -7
  431. package/contracts/instance/base/BalanceStore.sol +7 -7
  432. package/contracts/instance/base/Cloneable.sol +10 -4
  433. package/contracts/instance/base/ObjectSet.sol +3 -3
  434. package/contracts/oracle/BasicOracle.sol +3 -0
  435. package/contracts/oracle/BasicOracleAuthorization.sol +1 -3
  436. package/contracts/oracle/IOracleService.sol +21 -17
  437. package/contracts/oracle/Oracle.sol +6 -5
  438. package/contracts/oracle/OracleService.sol +68 -38
  439. package/contracts/oracle/OracleServiceManager.sol +6 -4
  440. package/contracts/pool/BasicPool.sol +4 -2
  441. package/contracts/pool/BasicPoolAuthorization.sol +4 -5
  442. package/contracts/pool/BundleService.sol +22 -28
  443. package/contracts/pool/BundleServiceManager.sol +7 -5
  444. package/contracts/pool/IBundleService.sol +9 -10
  445. package/contracts/pool/IPoolComponent.sol +1 -1
  446. package/contracts/pool/IPoolService.sol +14 -13
  447. package/contracts/pool/Pool.sol +3 -1
  448. package/contracts/pool/PoolLib.sol +102 -5
  449. package/contracts/pool/PoolService.sol +101 -67
  450. package/contracts/pool/PoolServiceManager.sol +6 -4
  451. package/contracts/product/ApplicationService.sol +34 -13
  452. package/contracts/product/ApplicationServiceManager.sol +6 -4
  453. package/contracts/product/BasicProduct.sol +2 -0
  454. package/contracts/product/BasicProductAuthorization.sol +7 -7
  455. package/contracts/product/ClaimService.sol +35 -11
  456. package/contracts/product/ClaimServiceManager.sol +7 -5
  457. package/contracts/product/IApplicationService.sol +8 -8
  458. package/contracts/product/IClaimService.sol +9 -9
  459. package/contracts/product/IPolicyService.sol +8 -7
  460. package/contracts/product/IRiskService.sol +4 -5
  461. package/contracts/product/PolicyService.sol +58 -45
  462. package/contracts/product/PolicyServiceLib.sol +5 -3
  463. package/contracts/product/PolicyServiceManager.sol +6 -4
  464. package/contracts/product/PricingService.sol +8 -7
  465. package/contracts/product/PricingServiceManager.sol +6 -4
  466. package/contracts/product/Product.sol +2 -0
  467. package/contracts/product/RiskService.sol +42 -10
  468. package/contracts/product/RiskServiceManager.sol +6 -4
  469. package/contracts/registry/ChainNft.sol +2 -2
  470. package/contracts/registry/IRegistry.sol +15 -21
  471. package/contracts/registry/IRegistryService.sol +14 -10
  472. package/contracts/registry/IRelease.sol +3 -0
  473. package/contracts/registry/Registry.sol +82 -126
  474. package/contracts/registry/RegistryAdmin.sol +29 -12
  475. package/contracts/registry/RegistryAuthorization.sol +3 -6
  476. package/contracts/registry/RegistryService.sol +82 -99
  477. package/contracts/registry/RegistryServiceManager.sol +11 -4
  478. package/contracts/registry/ReleaseAdmin.sol +27 -13
  479. package/contracts/registry/ReleaseRegistry.sol +81 -72
  480. package/contracts/registry/ServiceAuthorizationV3.sol +3 -4
  481. package/contracts/registry/TokenRegistry.sol +18 -9
  482. package/contracts/shared/Component.sol +22 -27
  483. package/contracts/shared/ComponentService.sol +168 -49
  484. package/contracts/shared/ComponentServiceManager.sol +7 -5
  485. package/contracts/shared/ContractLib.sol +93 -359
  486. package/contracts/shared/EcdsaChecker.sol +5 -0
  487. package/contracts/shared/IAuthorizedComponent.sol +15 -0
  488. package/contracts/shared/IComponent.sol +3 -9
  489. package/contracts/shared/IComponentService.sol +46 -10
  490. package/contracts/shared/IInstanceLinkedComponent.sol +9 -9
  491. package/contracts/shared/INftOwnable.sol +3 -1
  492. package/contracts/shared/IRegisterable.sol +3 -14
  493. package/contracts/shared/IRegistryLinked.sol +3 -1
  494. package/contracts/shared/IService.sol +2 -2
  495. package/contracts/shared/InstanceLinkedComponent.sol +130 -39
  496. package/contracts/shared/NftOwnable.sol +22 -9
  497. package/contracts/shared/PolicyHolder.sol +4 -2
  498. package/contracts/shared/Registerable.sol +20 -37
  499. package/contracts/shared/RegistryLinked.sol +23 -4
  500. package/contracts/shared/Service.sol +9 -8
  501. package/contracts/shared/TokenHandler.sol +6 -9
  502. package/contracts/staking/IStaking.sol +35 -33
  503. package/contracts/staking/IStakingService.sol +7 -16
  504. package/contracts/staking/Staking.sol +38 -32
  505. package/contracts/staking/StakingLib.sol +1 -3
  506. package/contracts/staking/StakingManager.sol +6 -3
  507. package/contracts/staking/StakingReader.sol +17 -9
  508. package/contracts/staking/StakingService.sol +15 -18
  509. package/contracts/staking/StakingServiceManager.sol +8 -4
  510. package/contracts/staking/StakingStore.sol +11 -11
  511. package/contracts/staking/TargetHandler.sol +6 -5
  512. package/contracts/type/ObjectType.sol +2 -31
  513. package/contracts/type/Referral.sol +6 -0
  514. package/contracts/type/RequestIdSet.sol +62 -0
  515. package/contracts/type/Seconds.sol +4 -0
  516. package/contracts/type/String.sol +30 -0
  517. package/contracts/type/Timestamp.sol +10 -1
  518. package/contracts/type/Version.sol +16 -15
  519. package/contracts/upgradeability/{IUpgradeable.sol → IVersionable.sol} +19 -13
  520. package/contracts/upgradeability/ProxyManager.sol +54 -46
  521. package/contracts/upgradeability/{Upgradeable.sol → Versionable.sol} +14 -25
  522. package/package.json +4 -3
  523. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  524. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -74
  525. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  526. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -74
  527. package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +0 -4
  528. package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +0 -4
  529. package/contracts/shared/IVersionable.sol +0 -19
  530. package/contracts/shared/Versionable.sol +0 -47
@@ -1,19 +1,38 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
4
5
 
5
6
  import {ContractLib} from "../shared/ContractLib.sol";
6
7
  import {IRegistry} from "../registry/IRegistry.sol";
7
8
  import {IRegistryLinked} from "./IRegistryLinked.sol";
8
9
 
9
10
  contract RegistryLinked is
11
+ Initializable,
10
12
  IRegistryLinked
11
13
  {
12
- function getRegistry() external pure returns (IRegistry) {
13
- return ContractLib.getRegistry();
14
+
15
+ // priorize simplicity and size over using standard upgradeability structs
16
+ IRegistry private _registry;
17
+
18
+ /// @dev initialization for upgradable contracts
19
+ // used in _initializeRegisterable
20
+ function __RegistryLinked_init(
21
+ address registry
22
+ )
23
+ internal
24
+ virtual
25
+ onlyInitializing()
26
+ {
27
+ if (!ContractLib.isRegistry(registry)) {
28
+ revert ErrorNotRegistry(registry);
29
+ }
30
+
31
+ _registry = IRegistry(registry);
14
32
  }
15
33
 
16
- function _getRegistry() internal pure returns (IRegistry) {
17
- return ContractLib.getRegistry();
34
+
35
+ function getRegistry() public view returns (IRegistry) {
36
+ return _registry;
18
37
  }
19
38
  }
@@ -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.
@@ -20,14 +19,14 @@ import {VersionPart} from "../type/Version.sol";
20
19
  contract TokenHandlerBase {
21
20
 
22
21
  // _setWallet
23
- event LogTokenHandlerWalletAddressChanged(NftId componentNftId, address oldWallet, address newWallet);
24
- event LogTokenHandlerWalletTokensTransferred(NftId componentNftId, address oldWallet, address newWallet, Amount amount);
22
+ event LogTokenHandlerWalletAddressChanged(NftId indexed componentNftId, address indexed oldWallet, address indexed newWallet);
23
+ event LogTokenHandlerWalletTokensTransferred(NftId indexed componentNftId, address indexed oldWallet, address indexed newWallet, Amount amount);
25
24
 
26
25
  // _approveTokenHandler
27
- event LogTokenHandlerTokenApproved(NftId nftId, address tokenHandler, address token, Amount amount, bool isMaxAmount);
26
+ event LogTokenHandlerTokenApproved(NftId indexed nftId, address indexed tokenHandler, address indexed token, Amount amount, bool isMaxAmount);
28
27
 
29
28
  // _transfer
30
- event LogTokenHandlerTokenTransfer(address token, address from, address to, Amount amount);
29
+ event LogTokenHandlerTokenTransferred(address indexed token, address indexed from, address indexed to, Amount amount);
31
30
 
32
31
  // constructor
33
32
  error ErrorTokenHandlerNotRegistry(address registry);
@@ -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);
@@ -207,7 +204,7 @@ contract TokenHandlerBase {
207
204
  }
208
205
 
209
206
  // transfer the tokens
210
- emit LogTokenHandlerTokenTransfer(address(TOKEN), from, to, amount);
207
+ emit LogTokenHandlerTokenTransferred(address(TOKEN), from, to, amount);
211
208
 
212
209
  SafeERC20.safeTransferFrom(
213
210
  TOKEN,
@@ -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,29 +22,31 @@ 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 indexed componentNftId, address indexed tokenHandler, address indexed token);
29
+
28
30
  // owner functions
29
- event LogStakingStakingRateSet(ChainId chainId, address token, UFixed newStakingRate, UFixed oldStakingRate, Blocknumber lastUpdateIn);
30
- event LogStakingStakingServiceSet(address stakingService, VersionPart release, address oldStakingService);
31
- event LogStakingStakingReaderSet(address stakingReader, address oldStakingReader);
32
- event LogStakingTargetHandlerSet(address targetManager, address oldTargetHandler);
33
- event LogStakingTokenHandlerApproved(address token, Amount approvalAmount, Amount oldApprovalAmount);
31
+ event LogStakingStakingRateSet(ChainId indexed chainId, address indexed token, UFixed indexed oldStakingRate, UFixed newStakingRate, Blocknumber lastUpdateIn);
32
+ event LogStakingStakingServiceSet(address indexed oldStakingService, address indexed stakingService, VersionPart indexed release);
33
+ event LogStakingStakingReaderSet(address indexed oldStakingReader, address indexed stakingReader);
34
+ event LogStakingTargetHandlerSet(address indexed oldTargetHandler, address indexed targetManager);
35
+ event LogStakingTokenHandlerApproved(Amount indexed oldApprovalAmount, Amount indexed approvalAmount, address indexed token);
34
36
 
35
37
  // token
36
- event LogStakingTokenAdded(ChainId chainId, address token);
37
- event LogStakingTargetTokenAdded(NftId targetNftId, ChainId chainId, address token);
38
+ event LogStakingTokenAdded(ChainId indexed chainId, address indexed token);
39
+ event LogStakingTargetTokenAdded(NftId indexed targetNftId, address indexed token);
38
40
 
39
41
  // total value locked
40
- event LogStakingTvlIncreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdateIn);
41
- event LogStakingTvlDecreased(NftId targetNftId, address token, Amount amount, Amount newBalance, Blocknumber lastUpdateIn);
42
+ event LogStakingTvlIncreased(NftId indexed targetNftId, address indexed token, Amount indexed amount, Amount newBalance, Blocknumber lastUpdateIn);
43
+ event LogStakingTvlDecreased(NftId indexed targetNftId, address indexed token, Amount indexed amount, Amount newBalance, Blocknumber lastUpdateIn);
42
44
 
43
45
  // targets
44
46
  event LogStakingSupportInfoSet(
45
- ObjectType objectType,
46
- bool isSupported,
47
- bool allowNewTargets,
47
+ ObjectType indexed objectType,
48
+ bool indexed isSupported,
49
+ bool indexed allowNewTargets,
48
50
  bool allowCrossChain,
49
51
  Amount minStakingAmount,
50
52
  Amount maxStakingAmount,
@@ -54,31 +56,31 @@ interface IStaking is
54
56
  UFixed maxRewardRate,
55
57
  Blocknumber lastUpdateIn);
56
58
 
57
- event LogStakingTargetCreated(NftId targetNftId, ObjectType objectType, Seconds lockingPeriod, UFixed rewardRate);
58
- event LogStakingLimitsSet(NftId targetNftId, Amount marginAmount, Amount hardLimitAmount, Blocknumber lastUpdateIn);
59
- event LogStakingTargetLimitsUpdated(NftId targetNftId, Amount marginAmount, Amount hardLimitAmount, Blocknumber lastUpdateIn);
60
- event LogStakingTargetLimitUpdated(NftId targetNftId, Amount limitAmount, Amount hardLimitAmount, Amount requiredStakeAmount, Amount actualStakeAmount, Blocknumber lastUpdateIn);
59
+ event LogStakingTargetCreated(NftId indexed targetNftId, ObjectType indexed objectType, Seconds indexed lockingPeriod, UFixed rewardRate);
60
+ event LogStakingLimitsSet(NftId indexed targetNftId, Amount indexed marginAmount, Amount indexed hardLimitAmount, Blocknumber lastUpdateIn);
61
+ event LogStakingTargetLimitsUpdated(NftId indexed targetNftId, Amount indexed marginAmount, Amount indexed hardLimitAmount, Blocknumber lastUpdateIn);
62
+ event LogStakingTargetLimitUpdated(NftId indexed targetNftId, Amount indexed limitAmount, Amount indexed hardLimitAmount, Amount requiredStakeAmount, Amount actualStakeAmount, Blocknumber lastUpdateIn);
61
63
 
62
64
  // target parameters
63
- event LogStakingTargetLockingPeriodSet(NftId targetNftId, Seconds oldLockingPeriod, Seconds lockingPeriod, Blocknumber lastUpdateIn);
64
- event LogStakingTargetRewardRateSet(NftId targetNftId, UFixed rewardRate, UFixed oldRewardRate, Blocknumber lastUpdateIn);
65
- event LogStakingTargetMaxStakedAmountSet(NftId targetNftId, Amount stakeLimitAmount, Blocknumber lastUpdateIn);
66
- event LogStakingTargetLimitsSet(NftId targetNftId, Amount stakeLimitAmount, Amount marginAmount, Amount limitAmount);
65
+ event LogStakingTargetLockingPeriodSet(NftId indexed targetNftId, Seconds indexed oldLockingPeriod, Seconds indexed lockingPeriod, Blocknumber lastUpdateIn);
66
+ event LogStakingTargetRewardRateSet(NftId indexed targetNftId, UFixed indexed oldRewardRate, UFixed indexed rewardRate, Blocknumber lastUpdateIn);
67
+ event LogStakingTargetMaxStakedAmountSet(NftId indexed targetNftId, Amount indexed stakeLimitAmount, Blocknumber indexed lastUpdateIn);
68
+ event LogStakingTargetLimitsSet(NftId indexed targetNftId, Amount indexed stakeLimitAmount, Amount indexed marginAmount, Amount limitAmount);
67
69
 
68
70
  // reward reserves
69
- event LogStakingRewardReservesRefilled(NftId targetNftId, Amount dipAmount, address targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
70
- event LogStakingRewardReservesWithdrawn(NftId targetNftId, Amount dipAmount, address targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
71
- event LogStakingRewardReservesSpent(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdateIn);
71
+ event LogStakingRewardReservesRefilled(NftId indexed targetNftId, Amount indexed dipAmount, address indexed targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
72
+ event LogStakingRewardReservesWithdrawn(NftId indexed targetNftId, Amount indexed dipAmount, address indexed targetOwner, Amount reserveBalance, Blocknumber lastUpdateIn);
73
+ event LogStakingRewardReservesSpent(NftId indexed targetNftId, Amount indexed dipAmount, Amount indexed reserveBalance, Blocknumber lastUpdateIn);
72
74
 
73
75
  // stakes
74
- event LogStakingStakeCreated(NftId stakeNftId, NftId targetNftId, Amount stakeAmount, Timestamp lockedUntil, address stakeOwner);
75
- event LogStakingStakeRewardsUpdated(NftId stakeNftId, Amount rewardIncrementAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
76
- event LogStakingRewardsRestaked(NftId stakeNftId, Amount restakedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
77
- event LogStakingStaked(NftId stakeNftId, Amount stakedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
78
- event LogStakingUnstaked(NftId stakeNftId, Amount unstakedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
79
- event LogStakingRewardsClaimed(NftId stakeNftId, Amount claimedAmount, Amount stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
80
-
81
- event LogStakingStakeRestaked(NftId stakeNftId, NftId targetNftId, Amount stakeAmount, address owner, NftId oldStakeNftId);
76
+ event LogStakingStakeCreated(NftId indexed stakeNftId, NftId indexed targetNftId, Amount indexed stakeAmount, Timestamp lockedUntil, address stakeOwner);
77
+ event LogStakingStakeRewardsUpdated(NftId indexed stakeNftId, Amount indexed rewardIncrementAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
78
+ event LogStakingRewardsRestaked(NftId indexed stakeNftId, Amount indexed restakedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
79
+ event LogStakingStaked(NftId indexed stakeNftId, Amount indexed stakedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
80
+ event LogStakingUnstaked(NftId indexed stakeNftId, Amount indexed unstakedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
81
+ event LogStakingRewardsClaimed(NftId indexed stakeNftId, Amount indexed claimedAmount, Amount indexed stakeBalance, Amount rewardBalance, Timestamp lockedUntil, Blocknumber lastUpdateIn);
82
+
83
+ event LogStakingStakeRestaked(NftId indexed stakeNftId, NftId indexed targetNftId, Amount indexed stakeAmount, address owner, NftId oldStakeNftId);
82
84
 
83
85
  // modifiers
84
86
  error ErrorStakingNotStake(NftId stakeNftId);
@@ -16,22 +16,13 @@ import {UFixed} from "../type/UFixed.sol";
16
16
  interface IStakingService is IService
17
17
  {
18
18
 
19
- event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
20
- event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
21
- event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
22
- event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
23
-
24
- event LogStakingServiceRewardReservesIncreased(NftId targetNftId, address rewardProvider, Amount dipAmount, Amount newBalance);
25
- event LogStakingServiceRewardReservesDecreased(NftId targetNftId, address targetOwner, Amount dipAmount, Amount newBalance);
26
-
27
- event LogStakingServiceStakeObjectCreated(NftId stakeNftId, NftId targetNftId, address stakeOwner);
28
- event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
29
- event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount, Amount stakeBalance);
30
- event LogStakingServiceUnstaked(NftId stakeNftId, address stakeOwner, Amount totalAmount);
31
- event LogStakingServiceStakeRestaked(address stakeOwner, NftId indexed stakeNftId, NftId newStakeNftId, NftId indexed newTargetNftId, Amount indexed newStakeBalance);
32
-
33
- event LogStakingServiceRewardsUpdated(NftId stakeNftId);
34
- event LogStakingServiceRewardsClaimed(NftId stakeNftId, address stakeOwner, Amount rewardsClaimedAmount);
19
+ event LogStakingServiceProtocolTargetRegistered(NftId indexed protocolNftId);
20
+ event LogStakingServiceInstanceTargetRegistered(NftId indexed instanceNftId, Seconds indexed initialLockingPeriod, UFixed indexed initialRewardRate);
21
+
22
+ event LogStakingServiceRewardReservesIncreased(NftId indexed targetNftId, address indexed rewardProvider, Amount indexed dipAmount, Amount newBalance);
23
+ event LogStakingServiceRewardReservesDecreased(NftId indexed targetNftId, address indexed targetOwner, Amount indexed dipAmount, Amount newBalance);
24
+
25
+ event LogStakingServiceStakeCreated(NftId indexed stakeNftId, NftId indexed targetNftId, address indexed stakeOwner);
35
26
 
36
27
  // modifiers
37
28
  error ErrorStakingServiceNotStakingOwner(address account);
@@ -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
 
@@ -177,7 +177,7 @@ contract Staking is
177
177
  Blocknumber lastUpdateIn
178
178
  ) = _getStakingStorage()._store.setStakingRate(chainId, token, stakingRate);
179
179
 
180
- emit LogStakingStakingRateSet(chainId, token, stakingRate, oldStakingRate, lastUpdateIn);
180
+ emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate, lastUpdateIn);
181
181
  }
182
182
 
183
183
 
@@ -191,9 +191,9 @@ 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
- emit LogStakingStakingServiceSet(address($._stakingService), release, oldStakingService);
196
+ emit LogStakingStakingServiceSet(oldStakingService, address($._stakingService), release);
197
197
  }
198
198
 
199
199
 
@@ -250,7 +250,7 @@ contract Staking is
250
250
  token,
251
251
  amount);
252
252
 
253
- emit LogStakingTokenHandlerApproved(address(token), amount, oldAllowanceAmount);
253
+ emit LogStakingTokenHandlerApproved(oldAllowanceAmount, amount, address(token));
254
254
  }
255
255
 
256
256
  //--- target management -------------------------------------------------//
@@ -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
 
@@ -425,7 +422,7 @@ contract Staking is
425
422
  $._store.addTargetToken(targetNftId, token);
426
423
 
427
424
  // TODO move logging to store
428
- emit LogStakingTargetTokenAdded(targetNftId, chainId, token);
425
+ emit LogStakingTargetTokenAdded(targetNftId, token);
429
426
  }
430
427
 
431
428
 
@@ -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 ----------------------------------------------------//