@etherisc/gif-next 0.0.2-e802d97-251 → 0.0.2-e81f152-917

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 (467) hide show
  1. package/README.md +49 -4
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -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 +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1500 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -292
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +248 -95
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +81 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -149
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +116 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +132 -140
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +215 -108
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +90 -263
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1137 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -26
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -157
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -32
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1406 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +424 -63
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -43
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -1
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -278
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +171 -54
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -417
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +252 -95
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +58 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +67 -49
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +42 -42
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1254 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +122 -69
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +18 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +29 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +201 -108
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -68
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +294 -164
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +69 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +97 -63
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +32 -217
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +347 -85
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +108 -60
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  179. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  181. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +166 -0
  183. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -26
  185. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  187. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  189. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  195. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  196. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  197. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -117
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  201. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  204. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  205. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  210. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  212. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  213. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  214. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  216. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  217. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  218. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  219. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
  220. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  221. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  222. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  223. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +52 -109
  224. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  225. package/artifacts/contracts/staking/Staking.sol/Staking.json +114 -146
  226. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  228. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  229. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +78 -58
  230. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  231. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  232. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  233. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  234. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  235. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
  236. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +201 -148
  238. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  239. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
  240. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  241. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  242. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  244. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  246. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  248. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  250. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  252. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  254. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  256. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  260. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  262. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  264. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  266. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  268. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  270. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  272. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  276. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  278. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  280. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  282. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  284. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  288. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  290. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  291. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  292. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  293. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  294. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  295. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  296. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  297. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  298. package/contracts/authorization/AccessAdmin.sol +591 -0
  299. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  300. package/contracts/authorization/Authorization.sol +217 -0
  301. package/contracts/authorization/IAccess.sol +48 -0
  302. package/contracts/authorization/IAccessAdmin.sol +136 -0
  303. package/contracts/authorization/IAuthorization.sol +54 -0
  304. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  305. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  306. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  307. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  308. package/contracts/distribution/BasicDistribution.sol +138 -0
  309. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  310. package/contracts/distribution/Distribution.sol +144 -110
  311. package/contracts/distribution/DistributionService.sol +60 -36
  312. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  313. package/contracts/distribution/IDistributionComponent.sol +25 -39
  314. package/contracts/distribution/IDistributionService.sol +15 -1
  315. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  316. package/contracts/instance/IInstance.sol +16 -12
  317. package/contracts/instance/IInstanceService.sol +34 -23
  318. package/contracts/instance/Instance.sol +106 -88
  319. package/contracts/instance/InstanceAdmin.sol +221 -267
  320. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  321. package/contracts/instance/InstanceReader.sol +34 -16
  322. package/contracts/instance/InstanceService.sol +189 -84
  323. package/contracts/instance/InstanceServiceManager.sol +2 -6
  324. package/contracts/instance/InstanceStore.sol +16 -20
  325. package/contracts/instance/base/BalanceStore.sol +11 -6
  326. package/contracts/instance/base/Cloneable.sol +2 -25
  327. package/contracts/instance/base/ObjectLifecycle.sol +105 -0
  328. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  329. package/contracts/instance/module/IBundle.sol +1 -1
  330. package/contracts/instance/module/IComponents.sol +1 -7
  331. package/contracts/instance/module/IDistribution.sol +0 -1
  332. package/contracts/instance/module/IPolicy.sol +1 -1
  333. package/contracts/mock/Dip.sol +1 -1
  334. package/contracts/oracle/BasicOracle.sol +48 -0
  335. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  336. package/contracts/oracle/IOracle.sol +16 -0
  337. package/contracts/oracle/IOracleComponent.sol +2 -1
  338. package/contracts/oracle/Oracle.sol +72 -51
  339. package/contracts/oracle/OracleService.sol +5 -4
  340. package/contracts/oracle/OracleServiceManager.sol +2 -5
  341. package/contracts/pool/BasicPool.sol +166 -0
  342. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  343. package/contracts/pool/BundleService.sol +199 -59
  344. package/contracts/pool/BundleServiceManager.sol +2 -5
  345. package/contracts/pool/IBundleService.sol +33 -5
  346. package/contracts/pool/IPoolComponent.sol +6 -60
  347. package/contracts/pool/IPoolService.sol +14 -17
  348. package/contracts/pool/Pool.sol +166 -137
  349. package/contracts/pool/PoolService.sol +158 -93
  350. package/contracts/pool/PoolServiceManager.sol +2 -5
  351. package/contracts/product/ApplicationService.sol +54 -58
  352. package/contracts/product/ApplicationServiceManager.sol +2 -2
  353. package/contracts/product/BasicProduct.sol +52 -0
  354. package/contracts/product/BasicProductAuthorization.sol +43 -0
  355. package/contracts/product/ClaimService.sol +18 -44
  356. package/contracts/product/ClaimServiceManager.sol +2 -2
  357. package/contracts/product/IApplicationService.sol +1 -0
  358. package/contracts/product/IClaimService.sol +1 -0
  359. package/contracts/product/IPolicyService.sol +23 -17
  360. package/contracts/product/IProductComponent.sol +7 -9
  361. package/contracts/product/IProductService.sol +1 -0
  362. package/contracts/product/PolicyService.sol +247 -136
  363. package/contracts/product/PolicyServiceManager.sol +2 -5
  364. package/contracts/product/PricingService.sol +9 -6
  365. package/contracts/product/PricingServiceManager.sol +2 -5
  366. package/contracts/product/Product.sol +128 -92
  367. package/contracts/product/ProductService.sol +12 -37
  368. package/contracts/product/ProductServiceManager.sol +2 -5
  369. package/contracts/registry/IRegistry.sol +26 -16
  370. package/contracts/registry/IRegistryService.sol +6 -6
  371. package/contracts/registry/Registry.sol +85 -85
  372. package/contracts/registry/RegistryAdmin.sol +292 -155
  373. package/contracts/registry/RegistryService.sol +9 -23
  374. package/contracts/registry/RegistryServiceManager.sol +2 -7
  375. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  376. package/contracts/registry/ReleaseRegistry.sol +485 -0
  377. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  378. package/contracts/registry/TokenRegistry.sol +2 -2
  379. package/contracts/shared/Component.sol +24 -37
  380. package/contracts/shared/ComponentService.sol +99 -76
  381. package/contracts/shared/ComponentServiceManager.sol +2 -2
  382. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  383. package/contracts/shared/IComponent.sol +4 -4
  384. package/contracts/shared/IComponentService.sol +15 -9
  385. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  386. package/contracts/shared/IKeyValueStore.sol +1 -0
  387. package/contracts/shared/ILifecycle.sol +1 -2
  388. package/contracts/shared/IService.sol +8 -1
  389. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  390. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  391. package/contracts/shared/KeyValueStore.sol +6 -2
  392. package/contracts/shared/Lifecycle.sol +16 -69
  393. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  394. package/contracts/shared/NftOwnable.sol +2 -2
  395. package/contracts/shared/PolicyHolder.sol +2 -5
  396. package/contracts/shared/Service.sol +27 -22
  397. package/contracts/shared/TokenHandler.sol +100 -19
  398. package/contracts/staking/IStaking.sol +1 -2
  399. package/contracts/staking/IStakingService.sol +22 -11
  400. package/contracts/staking/StakeManagerLib.sol +52 -25
  401. package/contracts/staking/Staking.sol +77 -132
  402. package/contracts/staking/StakingLifecycle.sol +23 -0
  403. package/contracts/staking/StakingManager.sol +2 -6
  404. package/contracts/staking/StakingReader.sol +12 -16
  405. package/contracts/staking/StakingService.sol +66 -65
  406. package/contracts/staking/StakingServiceManager.sol +2 -3
  407. package/contracts/staking/StakingStore.sol +93 -60
  408. package/contracts/type/Amount.sol +12 -5
  409. package/contracts/type/Blocknumber.sol +7 -1
  410. package/contracts/type/ObjectType.sol +167 -64
  411. package/contracts/type/Referral.sol +1 -0
  412. package/contracts/type/RoleId.sol +103 -75
  413. package/contracts/type/Seconds.sol +13 -1
  414. package/contracts/type/Selector.sol +102 -0
  415. package/contracts/type/String.sol +53 -0
  416. package/contracts/type/Timestamp.sol +11 -1
  417. package/contracts/type/UFixed.sol +34 -9
  418. package/contracts/type/Version.sol +3 -1
  419. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  420. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  421. package/package.json +6 -3
  422. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  423. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  424. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  425. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  426. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  428. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  429. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  430. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  431. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  432. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  433. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  434. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  435. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  436. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  437. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  438. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  439. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  440. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  441. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  442. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  443. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  444. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  445. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  446. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  447. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  448. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  449. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  450. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  451. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  452. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  453. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  454. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  455. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  456. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  457. package/contracts/registry/ReleaseManager.sol +0 -600
  458. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  459. package/contracts/shared/AccessManagerCustom.sol +0 -736
  460. package/contracts/shared/AccessManagerExtended.sol +0 -470
  461. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  462. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  463. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  464. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  465. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  466. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  467. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -45,29 +45,6 @@ contract StakingService is
45
45
  _;
46
46
  }
47
47
 
48
- function getDomain() public pure override returns(ObjectType) {
49
- return STAKING();
50
- }
51
-
52
-
53
- function registerProtocolTarget()
54
- external
55
- virtual
56
- {
57
- uint256 protocolId = ChainNft(
58
- getRegistry().getChainNftAddress()).PROTOCOL_NFT_ID();
59
-
60
- NftId protocolNftId = NftIdLib.toNftId(protocolId);
61
- _getStakingServiceStorage()._staking.registerTarget(
62
- protocolNftId,
63
- PROTOCOL(),
64
- 1, // protocol is registered on mainnet
65
- TargetManagerLib.getDefaultLockingPeriod(),
66
- TargetManagerLib.getDefaultRewardRate());
67
-
68
- emit LogStakingServiceProtocolTargetRegistered(protocolNftId);
69
- }
70
-
71
48
 
72
49
  function createInstanceTarget(
73
50
  NftId targetNftId,
@@ -76,7 +53,7 @@ contract StakingService is
76
53
  )
77
54
  external
78
55
  virtual
79
- // restricted // TODO re-enable once services have stable roles
56
+ restricted()
80
57
  {
81
58
  uint256 chainId = block.chainid;
82
59
  _getStakingServiceStorage()._staking.registerTarget(
@@ -90,66 +67,65 @@ contract StakingService is
90
67
  }
91
68
 
92
69
 
93
- function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod)
70
+ function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
94
71
  external
95
72
  virtual
96
- onlyNftOwner(targetNftId)
73
+ restricted()
97
74
  {
98
75
  _getStakingServiceStorage()._staking.setLockingPeriod(
99
- targetNftId, lockingPeriod);
76
+ instanceNftId,
77
+ lockingPeriod);
100
78
  }
101
79
 
102
80
 
103
- function setRewardRate(NftId targetNftId, UFixed rewardRate)
81
+ function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
104
82
  external
105
83
  virtual
106
- onlyNftOwner(targetNftId)
84
+ restricted()
107
85
  {
108
86
  _getStakingServiceStorage()._staking.setRewardRate(
109
- targetNftId, rewardRate);
110
-
87
+ instanceNftId,
88
+ rewardRate);
111
89
  }
112
90
 
113
91
 
114
- function refillRewardReserves(NftId targetNftId, Amount dipAmount)
92
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
115
93
  external
116
94
  virtual
95
+ restricted()
117
96
  returns (Amount newBalance)
118
97
  {
119
- address rewardProvider = msg.sender;
120
-
121
- // update reward reserve book keeping
122
- StakingServiceStorage storage $ = _getStakingServiceStorage();
123
- newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
98
+ return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
99
+ }
124
100
 
125
- // collect reward dip from provider
126
- $._staking.collectDipAmount(
127
- rewardProvider,
128
- dipAmount);
129
101
 
130
- emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
102
+ function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
103
+ external
104
+ virtual
105
+ restricted()
106
+ returns (Amount newBalance)
107
+ {
108
+ address rewardProvider = msg.sender;
109
+ return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
131
110
  }
132
111
 
133
112
 
134
- function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
113
+ function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
135
114
  external
136
115
  virtual
137
- onlyNftOwner(targetNftId)
116
+ restricted()
138
117
  returns (Amount newBalance)
139
118
  {
140
- // modifyier checks that sender is owner
141
- address targetOwner = msg.sender;
142
-
143
119
  // update reward reserve book keeping
144
120
  StakingServiceStorage storage $ = _getStakingServiceStorage();
145
- newBalance = $._staking.withdrawRewardReserves(targetNftId, dipAmount);
121
+ newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
146
122
 
147
123
  // transfer withdrawal amount to target owner
124
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
125
+ emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
148
126
  $._staking.transferDipAmount(
149
- targetOwner,
127
+ instanceOwner,
150
128
  dipAmount);
151
-
152
- emit LogStakingServiceRewardReservesDecreased(targetNftId, targetOwner, dipAmount, newBalance);
153
129
  }
154
130
 
155
131
 
@@ -165,7 +141,7 @@ contract StakingService is
165
141
  )
166
142
  external
167
143
  virtual
168
- // restricted // TODO re-enable once services have stable roles
144
+ restricted()
169
145
  returns (
170
146
  NftId stakeNftId
171
147
  )
@@ -192,12 +168,12 @@ contract StakingService is
192
168
  targetNftId,
193
169
  dipAmount);
194
170
 
171
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
172
+
195
173
  // collect staked dip by staking
196
174
  $._staking.collectDipAmount(
197
175
  stakeOwner,
198
176
  dipAmount);
199
-
200
- emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
201
177
  }
202
178
 
203
179
 
@@ -207,7 +183,7 @@ contract StakingService is
207
183
  )
208
184
  external
209
185
  virtual
210
- // restricted // TODO re-enable once services have stable roles
186
+ restricted()
211
187
  onlyNftOwner(stakeNftId)
212
188
  {
213
189
  StakingServiceStorage storage $ = _getStakingServiceStorage();
@@ -220,12 +196,11 @@ contract StakingService is
220
196
 
221
197
  // collect staked dip by staking
222
198
  if (dipAmount.gtz()) {
199
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
223
200
  $._staking.collectDipAmount(
224
201
  stakeOwner,
225
202
  dipAmount);
226
203
  }
227
-
228
- emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
229
204
  }
230
205
 
231
206
 
@@ -235,7 +210,7 @@ contract StakingService is
235
210
  )
236
211
  external
237
212
  virtual
238
- // restricted // TODO re-enable once services have stable roles
213
+ restricted()
239
214
  onlyNftOwner(stakeNftId)
240
215
  returns (
241
216
  NftId newStakeNftId
@@ -250,7 +225,8 @@ contract StakingService is
250
225
  NftId stakeNftId
251
226
  )
252
227
  external
253
- // restricted // TODO re-enable once services have stable roles
228
+ virtual
229
+ restricted()
254
230
  {
255
231
  StakingServiceStorage storage $ = _getStakingServiceStorage();
256
232
  $._staking.updateRewards(stakeNftId);
@@ -262,25 +238,24 @@ contract StakingService is
262
238
  function claimRewards(NftId stakeNftId)
263
239
  external
264
240
  virtual
265
- // restricted // TODO re-enable once services have stable roles
241
+ restricted()
266
242
  onlyNftOwner(stakeNftId)
267
243
  {
268
244
  StakingServiceStorage storage $ = _getStakingServiceStorage();
269
245
  address stakeOwner = msg.sender;
270
246
 
271
247
  Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
248
+ emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
272
249
  $._staking.transferDipAmount(
273
250
  stakeOwner,
274
251
  rewardsClaimedAmount);
275
-
276
- emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
277
252
  }
278
253
 
279
254
 
280
255
  function unstake(NftId stakeNftId)
281
256
  external
282
257
  virtual
283
- // restricted // TODO re-enable once services have stable roles
258
+ restricted()
284
259
  onlyNftOwner(stakeNftId)
285
260
  {
286
261
  StakingServiceStorage storage $ = _getStakingServiceStorage();
@@ -292,11 +267,10 @@ contract StakingService is
292
267
  ) = $._staking.unstake(stakeNftId);
293
268
 
294
269
  Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
270
+ emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
295
271
  $._staking.transferDipAmount(
296
272
  stakeOwner,
297
273
  totalAmount);
298
-
299
- emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
300
274
  }
301
275
 
302
276
 
@@ -307,10 +281,13 @@ contract StakingService is
307
281
  )
308
282
  external
309
283
  virtual
284
+ restricted()
310
285
  {
286
+ // TODO implement
311
287
 
312
288
  }
313
289
 
290
+ //--- view functions ----------------------------------------------------//
314
291
 
315
292
  function getDipToken()
316
293
  external
@@ -338,6 +315,7 @@ contract StakingService is
338
315
  return _getStakingServiceStorage()._staking;
339
316
  }
340
317
 
318
+ //--- internal functions ------------------------------------------------//
341
319
 
342
320
  function _initialize(
343
321
  address owner,
@@ -398,9 +376,32 @@ contract StakingService is
398
376
  }
399
377
 
400
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);
394
+ }
395
+
396
+
401
397
  function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
402
398
  assembly {
403
399
  $.slot := STAKING_SERVICE_LOCATION_V1
404
400
  }
405
401
  }
402
+
403
+
404
+ function _getDomain() internal pure override returns(ObjectType) {
405
+ return STAKING();
406
+ }
406
407
  }
@@ -2,8 +2,8 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
7
  import {StakingService} from "./StakingService.sol";
8
8
 
9
9
  contract StakingServiceManager is
@@ -31,7 +31,6 @@ contract StakingServiceManager is
31
31
  salt);
32
32
 
33
33
  _stakingService = StakingService(address(versionable));
34
- _stakingService.registerProtocolTarget();
35
34
  }
36
35
 
37
36
  //--- view functions ----------------------------------------------------//
@@ -3,36 +3,27 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
5
 
6
- import {Amount, AmountLib} from "../type/Amount.sol";
7
- import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
8
- import {ChainNft} from "../registry/ChainNft.sol";
9
- import {Component} from "../shared/Component.sol";
10
6
  import {IRegistry} from "../registry/IRegistry.sol";
11
- import {IRegistryService} from "../registry/IRegistryService.sol";
12
7
  import {IStaking} from "./IStaking.sol";
13
- import {IVersionable} from "../shared/IVersionable.sol";
14
- import {Key32} from "../type/Key32.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
15
11
  import {KeyValueStore} from "../shared/KeyValueStore.sol";
16
12
  import {KEEP_STATE} from "../type/StateId.sol";
17
- import {LibNftIdSet} from "../type/NftIdSet.sol";
18
13
  import {NftId, NftIdLib} from "../type/NftId.sol";
19
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
20
- import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
21
- import {Seconds, SecondsLib} from "../type/Seconds.sol";
14
+ import {NftIdSet} from "../shared/NftIdSet.sol";
15
+ import {PROTOCOL, STAKE, TARGET} from "../type/ObjectType.sol";
22
16
  import {StakingReader} from "./StakingReader.sol";
23
17
  import {TargetManagerLib} from "./TargetManagerLib.sol";
24
18
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
25
- import {TokenRegistry} from "../registry/TokenRegistry.sol";
26
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
27
- import {Version, VersionLib} from "../type/Version.sol";
28
- import {Versionable} from "../shared/Versionable.sol";
29
-
30
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
19
+ import {StakingLifecycle} from "./StakingLifecycle.sol";
20
+ import {UFixed} from "../type/UFixed.sol";
31
21
 
32
22
 
33
23
  contract StakingStore is
34
24
  AccessManaged,
35
- KeyValueStore
25
+ KeyValueStore,
26
+ StakingLifecycle
36
27
  {
37
28
 
38
29
  event LogStakingStoreReserveBalanceIncreased(NftId targetNftId, Amount dipAmount, Amount reserveBalance, Blocknumber lastUpdatedIn);
@@ -61,7 +52,7 @@ contract StakingStore is
61
52
  error ErrorStakingStoreTvlBalanceNotInitialized(NftId nftId);
62
53
 
63
54
  IRegistry private _registry;
64
- NftIdSetManager private _targetManager;
55
+ NftIdSet private _targetNftIdSet;
65
56
  StakingReader private _reader;
66
57
 
67
58
  // staking rate
@@ -85,19 +76,34 @@ contract StakingStore is
85
76
  constructor(IRegistry registry, StakingReader reader)
86
77
  AccessManaged(msg.sender)
87
78
  {
79
+ // set final authority
80
+ setAuthority(registry.getAuthority());
81
+
82
+ // set internal variables
88
83
  _registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
89
- address authority = _registry.getAuthority();
90
- setAuthority(authority);
91
-
92
84
  _reader = reader;
93
- _targetManager = new NftIdSetManager();
85
+ _targetNftIdSet = new NftIdSet();
86
+
87
+ // register protocol target
88
+ _createTarget(
89
+ NftIdLib.toNftId(1101),
90
+ IStaking.TargetInfo({
91
+ objectType: PROTOCOL(),
92
+ chainId: 1,
93
+ lockingPeriod: TargetManagerLib.getDefaultLockingPeriod(),
94
+ rewardRate: TargetManagerLib.getDefaultRewardRate()}));
94
95
  }
95
96
 
96
97
 
97
98
  //--- staking rate specific functions -----------------------------------//
98
99
 
99
- function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
100
+ function setStakingRate(
101
+ uint256 chainId,
102
+ address token,
103
+ UFixed stakingRate
104
+ )
100
105
  external
106
+ restricted()
101
107
  {
102
108
  _stakingRate[chainId][token] = stakingRate;
103
109
  }
@@ -109,16 +115,9 @@ contract StakingStore is
109
115
  IStaking.TargetInfo memory targetInfo
110
116
  )
111
117
  external
118
+ restricted()
112
119
  {
113
- _create(
114
- targetNftId.toKey32(TARGET()),
115
- abi.encode(targetInfo));
116
-
117
- // initialize tvl and stake balance
118
- _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
119
- _createTargetBalance(targetNftId);
120
-
121
- _targetManager.add(targetNftId);
120
+ _createTarget(targetNftId, targetInfo);
122
121
  }
123
122
 
124
123
 
@@ -127,6 +126,7 @@ contract StakingStore is
127
126
  IStaking.TargetInfo memory targetInfo
128
127
  )
129
128
  external
129
+ restricted()
130
130
  {
131
131
  _update(
132
132
  targetNftId.toKey32(TARGET()),
@@ -139,6 +139,7 @@ contract StakingStore is
139
139
  Amount dipAmount
140
140
  )
141
141
  external
142
+ restricted()
142
143
  returns (Amount newReserveBalance)
143
144
  {
144
145
  newReserveBalance = _reserveBalance[targetNftId] + dipAmount;
@@ -153,6 +154,7 @@ contract StakingStore is
153
154
  Amount dipAmount
154
155
  )
155
156
  external
157
+ restricted()
156
158
  returns (Amount newReserveBalance)
157
159
  {
158
160
  Amount reserveAmount = _reserveBalance[targetNftId];
@@ -170,24 +172,6 @@ contract StakingStore is
170
172
  }
171
173
 
172
174
 
173
- function _updateReserves(
174
- NftId targetNftId,
175
- Amount newRewardBalance
176
- )
177
- internal
178
- returns (Blocknumber lastUpdatedIn)
179
- {
180
- if (_lastUpdatedIn[targetNftId].eqz()) {
181
- revert ErrorStakingStoreNotTarget(targetNftId);
182
- }
183
-
184
- lastUpdatedIn = _lastUpdatedIn[targetNftId];
185
-
186
- _reserveBalance[targetNftId] = newRewardBalance;
187
- _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
188
- }
189
-
190
-
191
175
  //--- tvl specific functions -------------------------------------//
192
176
 
193
177
  function increaseTotalValueLocked(
@@ -197,6 +181,7 @@ contract StakingStore is
197
181
  Amount amount
198
182
  )
199
183
  external
184
+ restricted()
200
185
  returns (Amount newBalance)
201
186
  {
202
187
  (
@@ -229,6 +214,7 @@ contract StakingStore is
229
214
  Amount amount
230
215
  )
231
216
  external
217
+ restricted()
232
218
  returns (Amount newBalance)
233
219
  {
234
220
  (
@@ -261,6 +247,7 @@ contract StakingStore is
261
247
  IStaking.StakeInfo memory stakeInfo
262
248
  )
263
249
  external
250
+ restricted()
264
251
  {
265
252
  _create(
266
253
  stakeNftId.toKey32(STAKE()),
@@ -274,6 +261,7 @@ contract StakingStore is
274
261
  IStaking.StakeInfo memory stakeInfo
275
262
  )
276
263
  external
264
+ restricted()
277
265
  {
278
266
  _update(
279
267
  stakeNftId.toKey32(STAKE()),
@@ -289,7 +277,8 @@ contract StakingStore is
289
277
  NftId targetNftId,
290
278
  Amount amount
291
279
  )
292
- public
280
+ external
281
+ restricted()
293
282
  {
294
283
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
295
284
 
@@ -313,6 +302,7 @@ contract StakingStore is
313
302
  Amount rewardIncrementAmount
314
303
  )
315
304
  external
305
+ restricted()
316
306
  {
317
307
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
318
308
  Amount stakeAmount = _stakeBalance[nftId];
@@ -339,6 +329,7 @@ contract StakingStore is
339
329
  Amount rewardIncrementAmount
340
330
  )
341
331
  external
332
+ restricted()
342
333
  {
343
334
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
344
335
 
@@ -363,6 +354,7 @@ contract StakingStore is
363
354
  Amount maxClaimAmount
364
355
  )
365
356
  external
357
+ restricted()
366
358
  returns (Amount claimedAmount)
367
359
  {
368
360
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
@@ -392,6 +384,7 @@ contract StakingStore is
392
384
  Amount maxClaimAmount
393
385
  )
394
386
  external
387
+ restricted()
395
388
  returns (
396
389
  Amount unstakedAmount,
397
390
  Amount claimedAmount
@@ -424,8 +417,9 @@ contract StakingStore is
424
417
  return _reader;
425
418
  }
426
419
 
427
- function getTargetManager() external view returns (NftIdSetManager targetManager){
428
- return _targetManager;
420
+ // TODO rename
421
+ function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
422
+ return _targetNftIdSet;
429
423
  }
430
424
 
431
425
  function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
@@ -475,8 +469,44 @@ contract StakingStore is
475
469
 
476
470
  //--- private functions -------------------------------------------//
477
471
 
472
+ function _createTarget(
473
+ NftId targetNftId,
474
+ IStaking.TargetInfo memory targetInfo
475
+ )
476
+ private
477
+ {
478
+ _create(
479
+ targetNftId.toKey32(TARGET()),
480
+ abi.encode(targetInfo));
478
481
 
479
- function _createTargetBalance(NftId nftId) private {
482
+ // initialize tvl and stake balance
483
+ _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
484
+ _createTargetBalance(targetNftId);
485
+
486
+ _targetNftIdSet.add(targetNftId);
487
+ }
488
+
489
+ function _updateReserves(
490
+ NftId targetNftId,
491
+ Amount newRewardBalance
492
+ )
493
+ private
494
+ returns (Blocknumber lastUpdatedIn)
495
+ {
496
+ if (_lastUpdatedIn[targetNftId].eqz()) {
497
+ revert ErrorStakingStoreNotTarget(targetNftId);
498
+ }
499
+
500
+ lastUpdatedIn = _lastUpdatedIn[targetNftId];
501
+
502
+ _reserveBalance[targetNftId] = newRewardBalance;
503
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
504
+ }
505
+
506
+
507
+ function _createTargetBalance(NftId nftId)
508
+ private
509
+ {
480
510
  if (_lastUpdatedIn[nftId].gtz()) {
481
511
  revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
482
512
  }
@@ -492,7 +522,9 @@ contract StakingStore is
492
522
  }
493
523
 
494
524
 
495
- function _createStakeBalance(NftId nftId) private {
525
+ function _createStakeBalance(NftId nftId)
526
+ private
527
+ {
496
528
  if (_lastUpdatedIn[nftId].gtz()) {
497
529
  revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
498
530
  }
@@ -512,7 +544,7 @@ contract StakingStore is
512
544
  Amount newStakeAmount,
513
545
  Amount newRewardAmount
514
546
  )
515
- internal
547
+ private
516
548
  {
517
549
  _stakeBalance[stakeNftId] = newStakeAmount;
518
550
  _rewardBalance[stakeNftId] = newRewardAmount;
@@ -527,7 +559,7 @@ contract StakingStore is
527
559
  Amount newStakeAmount,
528
560
  Amount newRewardAmount
529
561
  )
530
- internal
562
+ private
531
563
  {
532
564
  _stakeBalance[targetNftId] = newStakeAmount;
533
565
  _rewardBalance[targetNftId] = newRewardAmount;
@@ -537,7 +569,8 @@ contract StakingStore is
537
569
  }
538
570
 
539
571
  function _checkBalanceExists(NftId nftId)
540
- internal
572
+ private
573
+ view
541
574
  returns (Blocknumber lastUpdatedIn)
542
575
  {
543
576
  lastUpdatedIn = _lastUpdatedIn[nftId];
@@ -552,7 +585,7 @@ contract StakingStore is
552
585
  NftId targetNftId,
553
586
  address token
554
587
  )
555
- internal
588
+ private
556
589
  view
557
590
  returns (
558
591
  Blocknumber tvlLastUpdatedIn,
@@ -12,13 +12,15 @@ using {
12
12
  nqAmount as !=,
13
13
  ltAmount as <,
14
14
  gtAmount as >,
15
+ AmountLib.add,
15
16
  AmountLib.eq,
16
17
  AmountLib.eqz,
17
18
  AmountLib.gtz,
19
+ AmountLib.gt,
20
+ AmountLib.gte,
21
+ AmountLib.multiplyWith,
18
22
  AmountLib.toInt,
19
- AmountLib.add,
20
- AmountLib.toUFixed,
21
- AmountLib.multiplyWith
23
+ AmountLib.toUFixed
22
24
  } for Amount global;
23
25
 
24
26
  function addAmount(Amount a, Amount b) pure returns (Amount) {
@@ -77,16 +79,21 @@ library AmountLib {
77
79
  return Amount.unwrap(amount1) == Amount.unwrap(amount2);
78
80
  }
79
81
 
80
- /// @dev return true if amount a1 is smaller than a2
82
+ /// @dev return true if amount a1 is less than a2
81
83
  function lt(Amount a1, Amount a2) public pure returns (bool) {
82
84
  return Amount.unwrap(a1) < Amount.unwrap(a2);
83
85
  }
84
86
 
85
- /// @dev return true if amount a1 is larger than a2
87
+ /// @dev return true if amount a1 is greater than a2
86
88
  function gt(Amount a1, Amount a2) public pure returns (bool) {
87
89
  return Amount.unwrap(a1) > Amount.unwrap(a2);
88
90
  }
89
91
 
92
+ /// @dev return true if amount a1 is greater or equal than a2
93
+ function gte(Amount a1, Amount a2) public pure returns (bool) {
94
+ return Amount.unwrap(a1) >= Amount.unwrap(a2);
95
+ }
96
+
90
97
  /// @dev return minimum of a1 and a2.
91
98
  function min(Amount a1, Amount a2) public pure returns (Amount) {
92
99
  if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
@@ -11,8 +11,14 @@ using {
11
11
  eqBlocknumber as ==,
12
12
  neBlocknumber as !=,
13
13
  BlocknumberLib.toInt,
14
+ BlocknumberLib.eq,
15
+ BlocknumberLib.ne,
14
16
  BlocknumberLib.eqz,
15
- BlocknumberLib.gtz
17
+ BlocknumberLib.gtz,
18
+ BlocknumberLib.gt,
19
+ BlocknumberLib.gte,
20
+ BlocknumberLib.lt,
21
+ BlocknumberLib.lte
16
22
  } for Blocknumber global;
17
23
 
18
24
  /// @dev return true if Blocknumber a is greater than Blocknumber b