@etherisc/gif-next 0.0.2-c6d46bb-892 → 0.0.2-c7609c4-545

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 (529) hide show
  1. package/README.md +51 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +236 -564
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +331 -432
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +167 -109
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +220 -291
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +215 -94
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -97
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +173 -87
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +122 -222
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +850 -366
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -231
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +145 -79
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1212 -381
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +494 -317
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +225 -87
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +256 -31
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +238 -373
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -254
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  124. package/artifacts/contracts/pool/Pool.sol/Pool.json +268 -577
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -569
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +151 -93
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +117 -264
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +138 -76
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +329 -284
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +180 -90
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +54 -1
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +354 -80
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +154 -86
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +360 -209
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +44 -57
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +418 -397
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +163 -121
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +233 -330
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +167 -93
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  162. package/artifacts/contracts/product/Product.sol/Product.json +381 -448
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +435 -29
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +270 -109
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +861 -64
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -234
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +132 -76
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Component.sol/Component.json +138 -286
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1335 -198
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +110 -114
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +46 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
  220. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  222. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  224. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  226. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  228. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  230. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
  232. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  234. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +68 -85
  236. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  238. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Service.sol/Service.json +55 -101
  240. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
  242. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  243. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  244. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  245. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  246. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  247. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +573 -53
  248. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  250. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  252. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  254. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  256. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  258. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +658 -176
  260. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  262. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  264. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  265. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  266. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  267. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  268. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
  270. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  272. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  274. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  276. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  278. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  279. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  280. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  282. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  283. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  284. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  286. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  288. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  290. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  292. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  294. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  296. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
  298. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  302. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  304. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  306. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  308. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  310. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  312. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  314. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  316. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  317. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  318. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  319. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  320. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  322. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  323. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  324. package/contracts/authorization/AccessAdmin.sol +596 -0
  325. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  326. package/contracts/authorization/Authorization.sol +289 -0
  327. package/contracts/authorization/IAccess.sol +49 -0
  328. package/contracts/authorization/IAccessAdmin.sol +137 -0
  329. package/contracts/authorization/IAuthorization.sol +60 -0
  330. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  331. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  332. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  333. package/contracts/distribution/BasicDistribution.sol +139 -0
  334. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  335. package/contracts/distribution/Distribution.sol +156 -156
  336. package/contracts/distribution/DistributionService.sol +179 -173
  337. package/contracts/distribution/DistributionServiceManager.sol +13 -25
  338. package/contracts/distribution/IDistributionComponent.sol +28 -47
  339. package/contracts/distribution/IDistributionService.sol +24 -10
  340. package/contracts/examples/fire/DamageLevel.sol +59 -0
  341. package/contracts/examples/fire/FirePool.sol +73 -0
  342. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  343. package/contracts/examples/fire/FireProduct.sol +415 -0
  344. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  345. package/contracts/examples/fire/FireUSD.sol +26 -0
  346. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  347. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  348. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  349. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  350. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  351. package/contracts/instance/IInstance.sol +33 -44
  352. package/contracts/instance/IInstanceService.sol +32 -34
  353. package/contracts/instance/Instance.sol +129 -126
  354. package/contracts/instance/InstanceAdmin.sol +277 -0
  355. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  356. package/contracts/instance/InstanceReader.sol +194 -67
  357. package/contracts/instance/InstanceService.sol +250 -144
  358. package/contracts/instance/InstanceServiceManager.sol +14 -29
  359. package/contracts/instance/InstanceStore.sol +142 -66
  360. package/contracts/instance/base/BalanceStore.sol +123 -0
  361. package/contracts/instance/base/Cloneable.sol +2 -25
  362. package/contracts/instance/base/ObjectCounter.sol +21 -0
  363. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  364. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  365. package/contracts/instance/module/IAccess.sol +2 -10
  366. package/contracts/instance/module/IBundle.sol +1 -4
  367. package/contracts/instance/module/IComponents.sol +21 -11
  368. package/contracts/instance/module/IDistribution.sol +0 -1
  369. package/contracts/instance/module/IPolicy.sol +31 -25
  370. package/contracts/mock/Dip.sol +26 -0
  371. package/contracts/oracle/BasicOracle.sol +47 -0
  372. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  373. package/contracts/oracle/IOracle.sol +36 -0
  374. package/contracts/oracle/IOracleComponent.sol +33 -0
  375. package/contracts/oracle/IOracleService.sol +66 -0
  376. package/contracts/oracle/Oracle.sol +156 -0
  377. package/contracts/oracle/OracleService.sol +291 -0
  378. package/contracts/oracle/OracleServiceManager.sol +39 -0
  379. package/contracts/pool/BasicPool.sol +154 -0
  380. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  381. package/contracts/pool/BundleService.sol +322 -211
  382. package/contracts/pool/BundleServiceManager.sol +13 -25
  383. package/contracts/pool/IBundleService.sol +44 -19
  384. package/contracts/pool/IPoolComponent.sol +27 -73
  385. package/contracts/pool/IPoolService.sol +93 -40
  386. package/contracts/pool/Pool.sol +186 -153
  387. package/contracts/pool/PoolService.sol +375 -234
  388. package/contracts/pool/PoolServiceManager.sol +12 -24
  389. package/contracts/product/ApplicationService.sol +158 -85
  390. package/contracts/product/ApplicationServiceManager.sol +12 -9
  391. package/contracts/product/BasicProduct.sol +53 -0
  392. package/contracts/product/BasicProductAuthorization.sol +42 -0
  393. package/contracts/product/ClaimService.sol +333 -163
  394. package/contracts/product/ClaimServiceManager.sol +12 -9
  395. package/contracts/product/IApplicationService.sol +2 -1
  396. package/contracts/product/IClaimService.sol +35 -5
  397. package/contracts/product/IPolicyService.sol +38 -38
  398. package/contracts/product/IPricingService.sol +13 -11
  399. package/contracts/product/IProductComponent.sol +28 -10
  400. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
  401. package/contracts/product/PolicyService.sol +519 -204
  402. package/contracts/product/PolicyServiceManager.sol +12 -27
  403. package/contracts/product/PricingService.sol +109 -84
  404. package/contracts/product/PricingServiceManager.sol +12 -24
  405. package/contracts/product/Product.sol +222 -146
  406. package/contracts/product/RiskService.sol +96 -0
  407. package/contracts/product/RiskServiceManager.sol +39 -0
  408. package/contracts/registry/ChainNft.sol +75 -38
  409. package/contracts/registry/IRegistry.sol +91 -21
  410. package/contracts/registry/IRegistryService.sol +30 -34
  411. package/contracts/registry/ITransferInterceptor.sol +1 -2
  412. package/contracts/registry/Registry.sol +445 -195
  413. package/contracts/registry/RegistryAdmin.sol +448 -0
  414. package/contracts/registry/RegistryService.sol +85 -129
  415. package/contracts/registry/RegistryServiceManager.sol +23 -30
  416. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  417. package/contracts/registry/ReleaseRegistry.sol +501 -0
  418. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  419. package/contracts/registry/TokenRegistry.sol +261 -62
  420. package/contracts/shared/Component.sol +150 -156
  421. package/contracts/shared/ComponentService.sol +694 -99
  422. package/contracts/shared/ComponentServiceManager.sol +38 -0
  423. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  424. package/contracts/shared/ContractLib.sol +38 -0
  425. package/contracts/shared/IComponent.sol +25 -41
  426. package/contracts/shared/IComponentService.sol +120 -0
  427. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  428. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  429. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  430. package/contracts/shared/INftOwnable.sol +3 -1
  431. package/contracts/shared/IPolicyHolder.sol +12 -17
  432. package/contracts/shared/IRegisterable.sol +11 -0
  433. package/contracts/shared/IService.sol +9 -2
  434. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  435. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  436. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  437. package/contracts/shared/Lifecycle.sol +88 -0
  438. package/contracts/shared/NftIdSet.sol +65 -0
  439. package/contracts/shared/NftOwnable.sol +31 -22
  440. package/contracts/shared/PolicyHolder.sol +18 -50
  441. package/contracts/shared/Registerable.sol +21 -11
  442. package/contracts/shared/RegistryLinked.sol +3 -2
  443. package/contracts/shared/Service.sol +48 -36
  444. package/contracts/shared/TokenHandler.sol +112 -8
  445. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  446. package/contracts/staking/IStaking.sol +168 -0
  447. package/contracts/staking/IStakingService.sol +103 -48
  448. package/contracts/staking/StakeManagerLib.sol +224 -0
  449. package/contracts/staking/Staking.sol +497 -0
  450. package/contracts/staking/StakingLifecycle.sol +23 -0
  451. package/contracts/staking/StakingManager.sol +52 -0
  452. package/contracts/staking/StakingReader.sol +190 -0
  453. package/contracts/staking/StakingService.sol +290 -49
  454. package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +14 -7
  455. package/contracts/staking/StakingStore.sol +605 -0
  456. package/contracts/staking/TargetManagerLib.sol +211 -0
  457. package/contracts/type/AddressSet.sol +1 -1
  458. package/contracts/type/Amount.sol +44 -3
  459. package/contracts/type/Blocknumber.sol +26 -3
  460. package/contracts/type/ClaimId.sol +6 -1
  461. package/contracts/type/Fee.sol +17 -16
  462. package/contracts/type/NftId.sol +15 -16
  463. package/contracts/type/NftIdSet.sol +1 -1
  464. package/contracts/type/ObjectType.sol +176 -62
  465. package/contracts/type/PayoutId.sol +10 -10
  466. package/contracts/type/Referral.sol +2 -1
  467. package/contracts/type/RequestId.sol +75 -0
  468. package/contracts/type/RiskId.sol +16 -2
  469. package/contracts/type/RoleId.sol +98 -68
  470. package/contracts/type/Seconds.sol +48 -1
  471. package/contracts/type/Selector.sol +102 -0
  472. package/contracts/type/StateId.sol +41 -2
  473. package/contracts/type/String.sol +53 -0
  474. package/contracts/type/Timestamp.sol +17 -3
  475. package/contracts/type/UFixed.sol +38 -9
  476. package/contracts/type/Version.sol +4 -2
  477. package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
  478. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  479. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  480. package/package.json +10 -6
  481. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  483. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  485. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  486. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  487. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  491. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  493. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  495. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  497. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  498. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  499. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  500. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  501. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  502. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  503. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  504. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  505. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  506. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  507. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  508. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  509. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  510. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  511. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  513. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  514. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  515. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  516. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  517. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
  518. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
  519. package/contracts/instance/InstanceAccessManager.sol +0 -543
  520. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  521. package/contracts/instance/base/Lifecycle.sol +0 -121
  522. package/contracts/instance/module/ISetup.sol +0 -33
  523. package/contracts/instance/module/ITreasury.sol +0 -23
  524. package/contracts/product/ProductService.sol +0 -210
  525. package/contracts/product/ProductServiceManager.sol +0 -54
  526. package/contracts/registry/RegistryAccessManager.sol +0 -216
  527. package/contracts/registry/ReleaseManager.sol +0 -328
  528. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  529. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,190 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
8
+ import {IStaking} from "../staking/IStaking.sol";
9
+
10
+ import {Amount} from "../type/Amount.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
14
+ import {StakingStore} from "./StakingStore.sol";
15
+ import {Timestamp} from "../type/Timestamp.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
17
+
18
+ contract StakingReader is
19
+ IRegistryLinked,
20
+ Initializable
21
+ {
22
+
23
+ error ErrorStakingReaderUnauthorizedCaler();
24
+
25
+ address private _initializeOwner;
26
+ IRegistry private _registry;
27
+ IStaking private _staking;
28
+ StakingStore private _store;
29
+
30
+ constructor(IRegistry registry) {
31
+ _initializeOwner = msg.sender;
32
+ _registry = registry;
33
+ }
34
+
35
+ function initialize(
36
+ address stakingAddress,
37
+ address stakingStoreAddress
38
+ )
39
+ external
40
+ initializer()
41
+ {
42
+ if (msg.sender != _initializeOwner) {
43
+ revert ErrorStakingReaderUnauthorizedCaler();
44
+ }
45
+
46
+ _staking = IStaking(stakingAddress);
47
+ _store = StakingStore(stakingStoreAddress);
48
+ }
49
+
50
+ // view and pure functions
51
+
52
+ function getRegistry() external view returns (IRegistry registry) {
53
+ return _registry;
54
+ }
55
+
56
+ function getStaking() external view returns (IStaking staking) {
57
+ return _staking;
58
+ }
59
+
60
+ function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
61
+ return _store.getStakingRate(chainId, token);
62
+ }
63
+
64
+
65
+ function isTarget(NftId targetNftId) external view returns (bool) {
66
+ return _store.getTargetNftIdSet().exists(targetNftId);
67
+ }
68
+
69
+
70
+ function targets() external view returns (uint256) {
71
+ return _store.getTargetNftIdSet().nftIds();
72
+ }
73
+
74
+
75
+ function getTargetNftId(uint256 idx) external view returns (NftId) {
76
+ return _store.getTargetNftIdSet().getNftId(idx);
77
+ }
78
+
79
+
80
+ function isActive(NftId targetNftId) external view returns (bool) {
81
+ return _store.getTargetNftIdSet().isActive(targetNftId);
82
+ }
83
+
84
+
85
+ function activeTargets() external view returns (uint256) {
86
+ return _store.getTargetNftIdSet().activeNftIds();
87
+ }
88
+
89
+
90
+ function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
91
+ return _store.getTargetNftIdSet().getActiveNftId(idx);
92
+ }
93
+
94
+
95
+ function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
96
+ return _registry.getObjectInfo(stakeNftId).parentNftId;
97
+ }
98
+
99
+
100
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
101
+ bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
102
+ if (data.length > 0) {
103
+ return abi.decode(data, (IStaking.TargetInfo));
104
+ }
105
+ }
106
+
107
+
108
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
109
+ bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
110
+ if (data.length > 0) {
111
+ return abi.decode(data, (IStaking.StakeInfo));
112
+ }
113
+ }
114
+
115
+
116
+ /// @dev get the reward rate that applies to the specified stake nft id.
117
+ function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
118
+ targetNftId = getTargetNftId(stakeNftId);
119
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
120
+ }
121
+
122
+
123
+ /// @dev get the reward rate for the specified target nft id.
124
+ function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
125
+ return getTargetInfo(targetNftId).rewardRate;
126
+ }
127
+
128
+ /// @dev returns the current reward reserve balance for the specified target.
129
+ function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
130
+ return _store.getReserveBalance(targetNftId);
131
+ }
132
+
133
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
134
+ return _store.getStakeBalance(nftId);
135
+ }
136
+
137
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
138
+ return _store.getRewardBalance(nftId);
139
+ }
140
+
141
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
142
+ return _store.getBalanceUpdatedAt(nftId);
143
+ }
144
+
145
+ function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
146
+ return _store.getBalanceUpdatedIn(nftId);
147
+ }
148
+
149
+ function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
150
+ return _store.getTotalValueLocked(nftId, token);
151
+ }
152
+
153
+ function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
154
+ return _store.getRequiredStakeBalance(nftId);
155
+ }
156
+
157
+ function getTargetBalances(NftId stakeNftId)
158
+ public
159
+ view
160
+ returns (
161
+ Amount balanceAmount,
162
+ Amount stakeAmount,
163
+ Amount rewardAmount,
164
+ Blocknumber lastUpdatedIn
165
+ )
166
+ {
167
+ (
168
+ balanceAmount,
169
+ stakeAmount,
170
+ rewardAmount,
171
+ lastUpdatedIn
172
+ ) = _store.getTargetBalances(stakeNftId);
173
+ }
174
+
175
+ function getStakeBalances(NftId stakeNftId)
176
+ external
177
+ view
178
+ returns (
179
+ Amount stakeAmount,
180
+ Amount rewardAmount,
181
+ Timestamp lastUpdatedAt
182
+ )
183
+ {
184
+ (
185
+ stakeAmount,
186
+ rewardAmount,
187
+ lastUpdatedAt
188
+ ) = _store.getStakeBalances(stakeNftId);
189
+ }
190
+ }
@@ -1,14 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
3
5
 
4
6
  import {Amount} from "../type/Amount.sol";
5
- import {IPoolService} from "../pool/IPoolService.sol";
7
+ import {IRegisterable} from "../shared/IRegisterable.sol";
6
8
  import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {RegistryService} from "../registry/RegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
7
11
  import {IStakingService} from "./IStakingService.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {ObjectType, POOL, STAKE} from "../type/ObjectType.sol";
12
+ import {NftId, NftIdLib} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
10
15
  import {Service} from "../shared/Service.sol";
11
- import {Timestamp} from "../type/Timestamp.sol";
16
+ import {TokenHandler} from "../shared/TokenHandler.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
12
18
 
13
19
 
14
20
  contract StakingService is
@@ -20,120 +26,296 @@ contract StakingService is
20
26
  bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
21
27
 
22
28
  struct StakingServiceStorage {
23
- IPoolService _poolService;
29
+ RegistryService _registryService;
30
+ IStaking _staking;
31
+ IERC20Metadata _dip;
32
+ TokenHandler _tokenHandler;
33
+ }
34
+
35
+ function createInstanceTarget(
36
+ NftId targetNftId,
37
+ Seconds initialLockingPeriod,
38
+ UFixed initialRewardRate
39
+ )
40
+ external
41
+ virtual
42
+ restricted()
43
+ {
44
+ uint256 chainId = block.chainid;
45
+ _getStakingServiceStorage()._staking.registerTarget(
46
+ targetNftId,
47
+ INSTANCE(),
48
+ chainId,
49
+ initialLockingPeriod,
50
+ initialRewardRate);
51
+
52
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
53
+ }
54
+
55
+
56
+ function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
57
+ external
58
+ virtual
59
+ restricted()
60
+ {
61
+ _checkNftType(instanceNftId, INSTANCE());
62
+ _getStakingServiceStorage()._staking.setLockingPeriod(
63
+ instanceNftId,
64
+ lockingPeriod);
65
+ }
66
+
67
+
68
+ function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
69
+ external
70
+ virtual
71
+ restricted()
72
+ {
73
+ _checkNftType(instanceNftId, INSTANCE());
74
+ _getStakingServiceStorage()._staking.setRewardRate(
75
+ instanceNftId,
76
+ rewardRate);
77
+ }
78
+
79
+
80
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
81
+ external
82
+ virtual
83
+ restricted()
84
+ returns (Amount newBalance)
85
+ {
86
+ _checkNftType(instanceNftId, INSTANCE());
87
+ return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
24
88
  }
25
89
 
26
- function getDomain() public pure override returns(ObjectType) {
27
- return STAKE();
90
+
91
+ function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
92
+ external
93
+ virtual
94
+ restricted()
95
+ returns (Amount newBalance)
96
+ {
97
+ address rewardProvider = msg.sender;
98
+ return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
28
99
  }
29
100
 
30
101
 
102
+ function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
103
+ external
104
+ virtual
105
+ restricted()
106
+ returns (Amount newBalance)
107
+ {
108
+ _checkNftType(instanceNftId, INSTANCE());
109
+ // update reward reserve book keeping
110
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
111
+ newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
112
+
113
+ // transfer withdrawal amount to target owner
114
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
115
+ emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
116
+ $._staking.transferDipAmount(
117
+ instanceOwner,
118
+ dipAmount);
119
+ }
120
+
121
+
122
+ /// @dev creates a new stake to the specified target nft id with the provided dip amount
123
+ /// the target nft id must have been registered as an active staking target prior to this call
124
+ /// the sender of this transaction becomes the stake owner via the minted nft.
125
+ /// to create the new stake balance and allowance of the staker need to cover the dip amount
126
+ /// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
127
+ /// this is a permissionless function.
31
128
  function create(
32
129
  NftId targetNftId,
33
- Amount amount
130
+ Amount dipAmount
34
131
  )
35
132
  external
36
133
  virtual
134
+ restricted()
37
135
  returns (
38
136
  NftId stakeNftId
39
137
  )
40
138
  {
41
-
139
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
140
+ address stakeOwner = msg.sender;
141
+
142
+ // target nft id checks are performed in $._staking.createStake() below
143
+ // register new stake object with registry
144
+ stakeNftId = $._registryService.registerStake(
145
+ IRegistry.ObjectInfo({
146
+ nftId: NftIdLib.zero(),
147
+ parentNftId: targetNftId,
148
+ objectType: STAKE(),
149
+ isInterceptor: false,
150
+ objectAddress: address(0),
151
+ initialOwner: stakeOwner,
152
+ data: ""
153
+ }));
154
+
155
+ // create stake info with staking
156
+ $._staking.createStake(
157
+ stakeNftId,
158
+ targetNftId,
159
+ dipAmount);
160
+
161
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
162
+
163
+ // collect staked dip by staking
164
+ $._staking.collectDipAmount(
165
+ stakeOwner,
166
+ dipAmount);
42
167
  }
43
168
 
44
169
 
45
170
  function stake(
46
171
  NftId stakeNftId,
47
- Amount amount
172
+ Amount dipAmount
48
173
  )
49
174
  external
50
175
  virtual
176
+ restricted()
177
+ onlyNftOwner(stakeNftId)
51
178
  {
179
+ _checkNftType(stakeNftId, STAKE());
52
180
 
181
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
182
+ address stakeOwner = msg.sender;
183
+
184
+ // add additional staked dips by staking
185
+ Amount stakeBalance = $._staking.stake(
186
+ stakeNftId,
187
+ dipAmount);
188
+
189
+ // collect staked dip by staking
190
+ if (dipAmount.gtz()) {
191
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
192
+ $._staking.collectDipAmount(
193
+ stakeOwner,
194
+ dipAmount);
195
+ }
53
196
  }
54
197
 
55
198
 
56
- function unstake(
199
+ function restakeToNewTarget(
57
200
  NftId stakeNftId,
58
- Amount amount
201
+ NftId newTargetNftId
59
202
  )
60
203
  external
61
204
  virtual
205
+ restricted()
206
+ onlyNftOwner(stakeNftId)
207
+ returns (
208
+ NftId newStakeNftId
209
+ )
62
210
  {
211
+ _checkNftType(stakeNftId, STAKE());
212
+
213
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
214
+ // TODO implement
215
+ }
63
216
 
64
- }
65
217
 
66
- function close(
218
+ function updateRewards(
67
219
  NftId stakeNftId
68
220
  )
69
221
  external
70
222
  virtual
223
+ restricted()
71
224
  {
225
+ _checkNftType(stakeNftId, STAKE());
72
226
 
227
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
228
+ $._staking.updateRewards(stakeNftId);
229
+
230
+ emit LogStakingServiceRewardsUpdated(stakeNftId);
73
231
  }
74
232
 
75
- function reStake(
76
- NftId stakeNftId,
77
- NftId newTargetNftId
78
- )
233
+
234
+ function claimRewards(NftId stakeNftId)
79
235
  external
80
236
  virtual
81
- returns (
82
- NftId newStakeNftId,
83
- Timestamp unlockedAt
84
- )
237
+ restricted()
238
+ onlyNftOwner(stakeNftId)
85
239
  {
240
+ _checkNftType(stakeNftId, STAKE());
241
+
242
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
243
+ address stakeOwner = msg.sender;
86
244
 
245
+ Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
246
+ emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
247
+ $._staking.transferDipAmount(
248
+ stakeOwner,
249
+ rewardsClaimedAmount);
87
250
  }
88
251
 
89
252
 
90
- function increaseTotalValueLocked(
91
- NftId targetNftId,
92
- address token,
93
- Amount amount
94
- )
253
+ function unstake(NftId stakeNftId)
95
254
  external
96
255
  virtual
97
- returns (Amount totalValueLocked)
256
+ restricted()
257
+ onlyNftOwner(stakeNftId)
98
258
  {
99
-
259
+ _checkNftType(stakeNftId, STAKE());
260
+
261
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
262
+ address stakeOwner = msg.sender;
263
+
264
+ (
265
+ Amount unstakedAmount,
266
+ Amount rewardsClaimedAmount
267
+ ) = $._staking.unstake(stakeNftId);
268
+
269
+ Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
270
+ emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
271
+ $._staking.transferDipAmount(
272
+ stakeOwner,
273
+ totalAmount);
100
274
  }
101
275
 
102
276
 
103
- function decreaseTotalValueLocked(
277
+ function setTotalValueLocked(
104
278
  NftId targetNftId,
105
279
  address token,
106
280
  Amount amount
107
281
  )
108
282
  external
109
283
  virtual
110
- returns (Amount totalValueLocked)
284
+ restricted()
111
285
  {
286
+ // TODO implement
112
287
 
113
288
  }
114
289
 
290
+ //--- view functions ----------------------------------------------------//
115
291
 
116
- function sendTotalValueLockedData(
117
- NftId targetNftId,
118
- address token
119
- )
292
+ function getDipToken()
120
293
  external
121
294
  virtual
295
+ returns (IERC20Metadata dip)
122
296
  {
123
-
297
+ return _getStakingServiceStorage()._dip;
124
298
  }
125
299
 
126
300
 
127
- function receiveTotalValueLockedData(
128
- NftId targetNftId,
129
- address token
130
- )
301
+ function getTokenHandler()
131
302
  external
132
303
  virtual
304
+ returns (TokenHandler tokenHandler)
133
305
  {
306
+ return _getStakingServiceStorage()._tokenHandler;
307
+ }
134
308
 
309
+
310
+ function getStaking()
311
+ external
312
+ virtual
313
+ returns (IStaking staking)
314
+ {
315
+ return _getStakingServiceStorage()._staking;
135
316
  }
136
317
 
318
+ //--- internal functions ------------------------------------------------//
137
319
 
138
320
  function _initialize(
139
321
  address owner,
@@ -143,24 +325,83 @@ contract StakingService is
143
325
  virtual override
144
326
  initializer()
145
327
  {
146
- // TODO check this, might no longer be the way, refactor if necessary
147
- address registryAddress;
148
- (registryAddress,) = abi.decode(data, (address, address));
328
+ (
329
+ address authority,
330
+ address registryAddress,
331
+ address stakingAddress
332
+ ) = abi.decode(data, (address, address, address));
333
+
334
+ _initializeService(registryAddress, authority, owner);
149
335
 
150
336
  StakingServiceStorage storage $ = _getStakingServiceStorage();
151
- $._poolService = IPoolService(_getServiceAddress(POOL()));
337
+ $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
338
+ $._staking = _registerStaking(stakingAddress);
339
+ $._dip = $._staking.getToken();
340
+ $._tokenHandler = $._staking.getTokenHandler();
341
+
342
+ _registerInterface(type(IStakingService).interfaceId);
343
+ }
344
+
345
+
346
+ function _registerStaking(
347
+ address stakingAddress
348
+ )
349
+ internal
350
+ returns (IStaking staking)
351
+ {
352
+ // check if provided staking contract is already registred
353
+ // staking contract may have been already registered by a previous major relase
354
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
355
+ if (stakingInfo.nftId.gtz()) {
356
+ // registered object but wrong type
357
+ if (stakingInfo.objectType != STAKING()) {
358
+ revert ErrorStakingServiceNotStaking(stakingAddress);
359
+ }
360
+
361
+ // return correctly registered staking contract
362
+ return IStaking(stakingAddress);
363
+ }
364
+
365
+ // check that contract implements IStaking
366
+ if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
367
+ revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
368
+ }
152
369
 
153
- initializeService(registryAddress, address(0), owner);
154
- registerInterface(type(IStakingService).interfaceId);
370
+ address owner = msg.sender;
371
+ _getStakingServiceStorage()._registryService.registerStaking(
372
+ IRegisterable(stakingAddress),
373
+ owner);
374
+
375
+ return IStaking(stakingAddress);
155
376
  }
156
377
 
157
- function _getServiceAddress(ObjectType domain) internal view returns (address) {
158
- return getRegistry().getServiceAddress(domain, getVersion().toMajorPart());
378
+
379
+ function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
380
+ internal
381
+ virtual
382
+ returns (Amount newBalance)
383
+ {
384
+ // update reward reserve book keeping
385
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
386
+ newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
387
+
388
+ emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
389
+
390
+ // collect reward dip from provider
391
+ $._staking.collectDipAmount(
392
+ rewardProvider,
393
+ dipAmount);
159
394
  }
160
395
 
396
+
161
397
  function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
162
398
  assembly {
163
399
  $.slot := STAKING_SERVICE_LOCATION_V1
164
400
  }
165
401
  }
402
+
403
+
404
+ function _getDomain() internal pure override returns(ObjectType) {
405
+ return STAKING();
406
+ }
166
407
  }
@@ -1,8 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
7
  import {StakingService} from "./StakingService.sol";
7
8
 
8
9
  contract StakingServiceManager is
@@ -13,15 +14,21 @@ contract StakingServiceManager is
13
14
 
14
15
  /// @dev initializes proxy manager with service implementation
15
16
  constructor(
16
- address registryAddress
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
17
20
  )
18
- ProxyManager(registryAddress)
19
21
  {
20
22
  StakingService svc = new StakingService();
21
- bytes memory data = abi.encode(registryAddress, address(this));
22
- IVersionable versionable = deploy(
23
+ bytes memory data = abi.encode(
24
+ authority,
25
+ registryAddress,
26
+ IRegistry(registryAddress).getStakingAddress());
27
+ IVersionable versionable = initialize(
28
+ registryAddress,
23
29
  address(svc),
24
- data);
30
+ data,
31
+ salt);
25
32
 
26
33
  _stakingService = StakingService(address(versionable));
27
34
  }