@etherisc/gif-next 0.0.2-e8b06c8-540 → 0.0.2-e8ea5fe-337

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 (459) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -33
  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 +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  11. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  14. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -101
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +19 -19
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -75
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +223 -105
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -55
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
  32. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  33. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  34. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +7 -7
  36. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  37. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +10 -5
  38. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/Instance.sol/Instance.json +19 -19
  40. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  41. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  42. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  43. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
  44. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -123
  46. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  47. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -39
  48. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -35
  50. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +226 -231
  52. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  54. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  55. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  57. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  58. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  59. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  60. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  61. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  67. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  68. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  69. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  70. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -88
  71. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  72. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
  73. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  74. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  75. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -37
  76. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +27 -72
  79. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  81. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  83. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  84. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +55 -137
  85. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
  87. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  88. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +402 -62
  89. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  90. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -43
  91. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
  93. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  94. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -95
  95. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
  97. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  98. package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -133
  99. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -136
  101. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -36
  103. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  104. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -50
  105. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +31 -43
  107. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  108. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +22 -78
  109. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  110. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
  111. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +194 -72
  113. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -54
  115. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  116. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
  117. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
  119. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
  121. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
  123. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  124. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -37
  125. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  126. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
  127. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  128. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -209
  129. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -55
  131. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  132. package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -153
  133. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -75
  135. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  136. package/artifacts/contracts/product/Product.sol/Product.json +22 -78
  137. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  138. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  139. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  141. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  142. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  143. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  144. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +51 -47
  145. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  146. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
  147. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  148. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  149. package/artifacts/contracts/registry/Registry.sol/Registry.json +102 -74
  150. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  151. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +100 -95
  152. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  154. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  156. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  158. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  159. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  160. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  161. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
  162. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  164. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  165. package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
  166. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -62
  168. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -49
  170. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
  173. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
  175. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
  177. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  179. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  181. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  186. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  188. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  189. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  190. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -75
  191. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  192. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  195. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  196. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  198. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  200. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  201. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  203. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  204. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  205. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  206. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  207. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  208. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  209. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  210. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  211. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
  212. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  215. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  216. package/artifacts/contracts/staking/Staking.sol/Staking.json +84 -114
  217. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  218. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  219. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +47 -43
  221. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  223. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  225. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  227. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
  229. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
  231. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  232. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  233. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
  235. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  237. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  239. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  241. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  243. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  244. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  245. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  247. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  248. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  249. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  251. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  253. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  255. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  257. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  259. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
  261. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  263. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  265. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  267. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  269. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  271. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  275. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
  277. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  279. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  281. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  282. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  283. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  284. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  285. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  286. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  287. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  288. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  289. package/contracts/authorization/AccessAdmin.sol +8 -39
  290. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  291. package/contracts/authorization/Authorization.sol +0 -1
  292. package/contracts/authorization/IServiceAuthorization.sol +3 -0
  293. package/contracts/authorization/ModuleAuthorization.sol +0 -125
  294. package/contracts/authorization/ServiceAuthorization.sol +4 -0
  295. package/contracts/distribution/BasicDistribution.sol +4 -15
  296. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  297. package/contracts/distribution/Distribution.sol +22 -10
  298. package/contracts/distribution/DistributionService.sol +67 -34
  299. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  300. package/contracts/distribution/IDistributionComponent.sol +8 -34
  301. package/contracts/distribution/IDistributionService.sol +18 -2
  302. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  303. package/contracts/instance/IInstance.sol +12 -35
  304. package/contracts/instance/IInstanceService.sol +6 -5
  305. package/contracts/instance/Instance.sol +15 -79
  306. package/contracts/instance/InstanceAdmin.sol +220 -269
  307. package/contracts/instance/InstanceAuthorizationV3.sol +19 -28
  308. package/contracts/instance/InstanceReader.sol +32 -12
  309. package/contracts/instance/InstanceService.sol +73 -122
  310. package/contracts/instance/InstanceServiceManager.sol +2 -6
  311. package/contracts/instance/InstanceStore.sol +18 -4
  312. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  313. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  314. package/contracts/instance/module/IBundle.sol +1 -1
  315. package/contracts/instance/module/IComponents.sol +1 -7
  316. package/contracts/instance/module/IDistribution.sol +0 -1
  317. package/contracts/instance/module/IPolicy.sol +22 -22
  318. package/contracts/mock/Dip.sol +1 -1
  319. package/contracts/oracle/IOracleComponent.sol +2 -1
  320. package/contracts/oracle/Oracle.sol +16 -6
  321. package/contracts/oracle/OracleService.sol +1 -0
  322. package/contracts/oracle/OracleServiceManager.sol +2 -5
  323. package/contracts/pool/BasicPool.sol +7 -5
  324. package/contracts/pool/BasicPoolAuthorization.sol +11 -2
  325. package/contracts/pool/BundleService.sol +189 -47
  326. package/contracts/pool/BundleServiceManager.sol +2 -5
  327. package/contracts/pool/IBundleService.sol +33 -5
  328. package/contracts/pool/IPoolComponent.sol +6 -0
  329. package/contracts/pool/IPoolService.sol +36 -26
  330. package/contracts/pool/Pool.sol +39 -24
  331. package/contracts/pool/PoolService.sol +161 -104
  332. package/contracts/pool/PoolServiceManager.sol +2 -5
  333. package/contracts/product/ApplicationService.sol +51 -57
  334. package/contracts/product/ApplicationServiceManager.sol +2 -2
  335. package/contracts/product/BasicProduct.sol +3 -32
  336. package/contracts/product/BasicProductAuthorization.sol +3 -0
  337. package/contracts/product/ClaimService.sol +118 -73
  338. package/contracts/product/ClaimServiceManager.sol +2 -2
  339. package/contracts/product/IApplicationService.sol +1 -0
  340. package/contracts/product/IClaimService.sol +28 -5
  341. package/contracts/product/IPolicyService.sol +27 -32
  342. package/contracts/product/IPricingService.sol +7 -7
  343. package/contracts/product/IProductComponent.sol +1 -1
  344. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  345. package/contracts/product/PolicyService.sol +278 -180
  346. package/contracts/product/PolicyServiceManager.sol +2 -5
  347. package/contracts/product/PricingService.sol +42 -41
  348. package/contracts/product/PricingServiceManager.sol +2 -5
  349. package/contracts/product/Product.sol +67 -34
  350. package/contracts/product/{ProductService.sol → RiskService.sol} +10 -37
  351. package/contracts/product/RiskServiceManager.sol +39 -0
  352. package/contracts/registry/IRegistry.sol +27 -17
  353. package/contracts/registry/IRegistryService.sol +6 -6
  354. package/contracts/registry/Registry.sol +81 -87
  355. package/contracts/registry/RegistryAdmin.sol +34 -23
  356. package/contracts/registry/RegistryService.sol +4 -18
  357. package/contracts/registry/RegistryServiceManager.sol +2 -2
  358. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  359. package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +149 -194
  360. package/contracts/registry/ServiceAuthorizationV3.sol +7 -10
  361. package/contracts/registry/TokenRegistry.sol +2 -2
  362. package/contracts/shared/Component.sol +25 -38
  363. package/contracts/shared/ComponentService.sol +84 -69
  364. package/contracts/shared/ComponentServiceManager.sol +2 -2
  365. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  366. package/contracts/shared/IComponent.sol +4 -4
  367. package/contracts/shared/IComponentService.sol +15 -9
  368. package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
  369. package/contracts/shared/IKeyValueStore.sol +1 -0
  370. package/contracts/shared/ILifecycle.sol +1 -2
  371. package/contracts/shared/IService.sol +1 -1
  372. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
  373. package/contracts/shared/InstanceLinkedComponent.sol +22 -2
  374. package/contracts/shared/KeyValueStore.sol +6 -2
  375. package/contracts/shared/Lifecycle.sol +16 -69
  376. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  377. package/contracts/shared/NftOwnable.sol +3 -3
  378. package/contracts/shared/PolicyHolder.sol +2 -5
  379. package/contracts/shared/Service.sol +3 -4
  380. package/contracts/shared/TokenHandler.sol +100 -19
  381. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  382. package/contracts/staking/IStaking.sol +3 -3
  383. package/contracts/staking/IStakingService.sol +12 -5
  384. package/contracts/staking/StakeManagerLib.sol +18 -25
  385. package/contracts/staking/Staking.sol +24 -39
  386. package/contracts/staking/StakingLifecycle.sol +23 -0
  387. package/contracts/staking/StakingManager.sol +2 -6
  388. package/contracts/staking/StakingReader.sol +12 -16
  389. package/contracts/staking/StakingService.sol +8 -12
  390. package/contracts/staking/StakingServiceManager.sol +2 -2
  391. package/contracts/staking/StakingStore.sol +15 -23
  392. package/contracts/staking/TargetManagerLib.sol +7 -3
  393. package/contracts/type/Amount.sol +12 -5
  394. package/contracts/type/Blocknumber.sol +7 -1
  395. package/contracts/type/ObjectType.sol +18 -18
  396. package/contracts/type/Referral.sol +1 -0
  397. package/contracts/type/RoleId.sol +10 -38
  398. package/contracts/type/Seconds.sol +21 -1
  399. package/contracts/type/StateId.sol +1 -0
  400. package/contracts/type/Timestamp.sol +11 -1
  401. package/contracts/type/UFixed.sol +29 -10
  402. package/contracts/type/Version.sol +3 -1
  403. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  404. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  405. package/package.json +3 -3
  406. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  407. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1385
  408. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  409. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  410. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
  411. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1616
  412. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  413. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  414. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  415. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
  416. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  417. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  418. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  419. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  420. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  421. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  422. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1237
  423. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  424. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  425. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  426. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  427. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  428. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  429. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  430. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  431. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  432. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  433. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  434. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  435. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  436. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  437. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  438. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  439. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  440. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  441. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  442. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  443. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  444. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  445. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  446. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  447. package/contracts/authorization/InstanceAdmin.sol +0 -108
  448. package/contracts/instance/InstanceAdminNew.sol +0 -261
  449. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -422
  450. package/contracts/product/ProductServiceManager.sol +0 -42
  451. package/contracts/shared/AccessManagerCustom.sol +0 -741
  452. package/contracts/shared/AccessManagerExtended.sol +0 -481
  453. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  454. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  455. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  456. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  457. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  458. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  459. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,29 +1,28 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {ChainNft} from "../registry/ChainNft.sol";
6
- import {Component} from "../shared/Component.sol";
7
4
  import {IRegistry} from "../registry/IRegistry.sol";
8
5
  import {IRegistryService} from "../registry/IRegistryService.sol";
9
6
  import {IStaking} from "./IStaking.sol";
10
- import {IVersionable} from "../shared/IVersionable.sol";
11
- import {Key32} from "../type/Key32.sol";
12
- import {LibNftIdSet} from "../type/NftIdSet.sol";
13
- import {NftId, NftIdLib} from "../type/NftId.sol";
14
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
15
- import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
16
- import {Seconds, SecondsLib} from "../type/Seconds.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+
9
+ import {Amount, AmountLib} from "../type/Amount.sol";
10
+ import {Component} from "../shared/Component.sol";
11
+ import {IComponent} from "../shared/IComponent.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, STAKING} from "../type/ObjectType.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
17
15
  import {StakeManagerLib} from "./StakeManagerLib.sol";
18
16
  import {StakingReader} from "./StakingReader.sol";
19
17
  import {StakingStore} from "./StakingStore.sol";
20
18
  import {TargetManagerLib} from "./TargetManagerLib.sol";
21
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
19
+ import {Timestamp} from "../type/Timestamp.sol";
22
20
  import {TokenHandler} from "../shared/TokenHandler.sol";
21
+ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
23
22
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
24
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
23
+ import {UFixed} from "../type/UFixed.sol";
25
24
  import {Version, VersionLib} from "../type/Version.sol";
26
- import {Versionable} from "../shared/Versionable.sol";
25
+ import {Versionable} from "../upgradeability/Versionable.sol";
27
26
 
28
27
  contract Staking is
29
28
  Component,
@@ -39,6 +38,7 @@ contract Staking is
39
38
  struct StakingStorage {
40
39
  IRegistryService _registryService;
41
40
  TokenRegistry _tokenRegistry;
41
+ TokenHandler _tokenHandler;
42
42
  StakingStore _store;
43
43
  StakingReader _reader;
44
44
  NftId _protocolNftId;
@@ -54,7 +54,7 @@ contract Staking is
54
54
 
55
55
 
56
56
  modifier onlyTarget(NftId targetNftId) {
57
- if (!_getStakingStorage()._store.getTargetManager().exists(targetNftId)) {
57
+ if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
58
58
  revert ErrorStakingNotTarget(targetNftId);
59
59
  }
60
60
  _;
@@ -301,7 +301,7 @@ contract Staking is
301
301
  StakingStorage storage $ = _getStakingStorage();
302
302
 
303
303
  // TODO implement
304
- }
304
+ }
305
305
 
306
306
 
307
307
  function updateRewards(NftId stakeNftId)
@@ -350,9 +350,10 @@ contract Staking is
350
350
  Amount rewardsClaimedAmount
351
351
  )
352
352
  {
353
- // TODO add check that stake locking is in the past
354
353
  StakingStorage storage $ = _getStakingStorage();
355
-
354
+
355
+ StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
356
+
356
357
  // update rewards since last update
357
358
  NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
358
359
 
@@ -378,16 +379,7 @@ contract Staking is
378
379
  external
379
380
  restricted() // only staking service
380
381
  {
381
- TokenHandler tokenHandler = getTokenHandler();
382
- address stakingWallet = getWallet();
383
-
384
- StakeManagerLib.checkDipBalanceAndAllowance(
385
- getToken(),
386
- from,
387
- address(tokenHandler),
388
- dipAmount);
389
-
390
- tokenHandler.transfer(from, stakingWallet, dipAmount);
382
+ getTokenHandler().collectTokens(from, getWallet(), dipAmount);
391
383
  }
392
384
 
393
385
 
@@ -395,16 +387,7 @@ contract Staking is
395
387
  external
396
388
  restricted() // only staking service
397
389
  {
398
- TokenHandler tokenHandler = getTokenHandler();
399
- address stakingWallet = getWallet();
400
-
401
- StakeManagerLib.checkDipBalanceAndAllowance(
402
- getToken(),
403
- stakingWallet,
404
- address(tokenHandler),
405
- dipAmount);
406
-
407
- tokenHandler.transfer(stakingWallet, to, dipAmount);
390
+ getTokenHandler().distributeTokens(getWallet(), to, dipAmount);
408
391
  }
409
392
 
410
393
 
@@ -422,6 +405,9 @@ contract Staking is
422
405
  return address(_getStakingStorage()._tokenRegistry);
423
406
  }
424
407
 
408
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
409
+ return _getStakingStorage()._tokenHandler;
410
+ }
425
411
 
426
412
  // from Versionable
427
413
  function getVersion()
@@ -492,14 +478,13 @@ contract Staking is
492
478
  "", // registry data
493
479
  ""); // component data
494
480
 
495
- _createAndSetTokenHandler();
496
-
497
481
  // wiring to external contracts
498
482
  StakingStorage storage $ = _getStakingStorage();
499
483
  $._protocolNftId = getRegistry().getProtocolNftId();
500
484
  $._store = StakingStore(stakingStoreAddress);
501
485
  $._reader = StakingStore(stakingStoreAddress).getStakingReader();
502
486
  $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
487
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(dipTokenAddress, authority);
503
488
 
504
489
  registerInterface(type(IStaking).interfaceId);
505
490
  }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
5
+ import {INITIAL} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract StakingLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(TARGET(), INITIAL());
20
+ setInitialState(COMPONENT(), INITIAL());
21
+ setInitialState(STAKE(), INITIAL());
22
+ }
23
+ }
@@ -1,14 +1,10 @@
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";
6
- import {ReleaseManager} from "../registry/ReleaseManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {Staking} from "./Staking.sol";
8
- import {StakingReader} from "./StakingReader.sol";
9
- import {StakingStore} from "./StakingStore.sol";
10
7
 
11
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
12
8
 
13
9
  contract StakingManager is
14
10
  ProxyManager
@@ -1,22 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {Blocknumber} from "../type/Blocknumber.sol";
6
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
7
- import {IComponent} from "../shared/IComponent.sol";
8
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
9
4
  import {IRegistry} from "../registry/IRegistry.sol";
10
5
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
11
6
  import {IStaking} from "../staking/IStaking.sol";
12
- import {IVersionable} from "../shared/IVersionable.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {Blocknumber} from "../type/Blocknumber.sol";
10
+ import {InitializableCustom} from "../shared/InitializableCustom.sol";
13
11
  import {NftId} from "../type/NftId.sol";
14
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
15
- import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
16
- import {Seconds} from "../type/Seconds.sol";
12
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
17
13
  import {StakingStore} from "./StakingStore.sol";
18
14
  import {Timestamp} from "../type/Timestamp.sol";
19
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
+ import {UFixed} from "../type/UFixed.sol";
20
16
 
21
17
  contract StakingReader is
22
18
  IRegistryLinked,
@@ -60,32 +56,32 @@ contract StakingReader is
60
56
 
61
57
 
62
58
  function isTarget(NftId targetNftId) external view returns (bool) {
63
- return _store.getTargetManager().exists(targetNftId);
59
+ return _store.getTargetNftIdSet().exists(targetNftId);
64
60
  }
65
61
 
66
62
 
67
63
  function targets() external view returns (uint256) {
68
- return _store.getTargetManager().nftIds();
64
+ return _store.getTargetNftIdSet().nftIds();
69
65
  }
70
66
 
71
67
 
72
68
  function getTargetNftId(uint256 idx) external view returns (NftId) {
73
- return _store.getTargetManager().getNftId(idx);
69
+ return _store.getTargetNftIdSet().getNftId(idx);
74
70
  }
75
71
 
76
72
 
77
73
  function isActive(NftId targetNftId) external view returns (bool) {
78
- return _store.getTargetManager().isActive(targetNftId);
74
+ return _store.getTargetNftIdSet().isActive(targetNftId);
79
75
  }
80
76
 
81
77
 
82
78
  function activeTargets() external view returns (uint256) {
83
- return _store.getTargetManager().activeNftIds();
79
+ return _store.getTargetNftIdSet().activeNftIds();
84
80
  }
85
81
 
86
82
 
87
83
  function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
88
- return _store.getTargetManager().getActiveNftId(idx);
84
+ return _store.getTargetNftIdSet().getActiveNftId(idx);
89
85
  }
90
86
 
91
87
 
@@ -122,11 +122,10 @@ contract StakingService is
122
122
 
123
123
  // transfer withdrawal amount to target owner
124
124
  address instanceOwner = getRegistry().ownerOf(instanceNftId);
125
+ emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
125
126
  $._staking.transferDipAmount(
126
127
  instanceOwner,
127
128
  dipAmount);
128
-
129
- emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
130
129
  }
131
130
 
132
131
 
@@ -169,12 +168,12 @@ contract StakingService is
169
168
  targetNftId,
170
169
  dipAmount);
171
170
 
171
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
172
+
172
173
  // collect staked dip by staking
173
174
  $._staking.collectDipAmount(
174
175
  stakeOwner,
175
176
  dipAmount);
176
-
177
- emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
178
177
  }
179
178
 
180
179
 
@@ -197,12 +196,11 @@ contract StakingService is
197
196
 
198
197
  // collect staked dip by staking
199
198
  if (dipAmount.gtz()) {
199
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
200
200
  $._staking.collectDipAmount(
201
201
  stakeOwner,
202
202
  dipAmount);
203
203
  }
204
-
205
- emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
206
204
  }
207
205
 
208
206
 
@@ -247,11 +245,10 @@ contract StakingService is
247
245
  address stakeOwner = msg.sender;
248
246
 
249
247
  Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
248
+ emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
250
249
  $._staking.transferDipAmount(
251
250
  stakeOwner,
252
251
  rewardsClaimedAmount);
253
-
254
- emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
255
252
  }
256
253
 
257
254
 
@@ -270,11 +267,10 @@ contract StakingService is
270
267
  ) = $._staking.unstake(stakeNftId);
271
268
 
272
269
  Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
270
+ emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
273
271
  $._staking.transferDipAmount(
274
272
  stakeOwner,
275
273
  totalAmount);
276
-
277
- emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
278
274
  }
279
275
 
280
276
 
@@ -389,12 +385,12 @@ contract StakingService is
389
385
  StakingServiceStorage storage $ = _getStakingServiceStorage();
390
386
  newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
391
387
 
388
+ emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
389
+
392
390
  // collect reward dip from provider
393
391
  $._staking.collectDipAmount(
394
392
  rewardProvider,
395
393
  dipAmount);
396
-
397
- emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
398
394
  }
399
395
 
400
396
 
@@ -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
@@ -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
@@ -91,7 +82,7 @@ contract StakingStore is
91
82
  // set internal variables
92
83
  _registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
93
84
  _reader = reader;
94
- _targetManager = new NftIdSetManager();
85
+ _targetNftIdSet = new NftIdSet();
95
86
 
96
87
  // register protocol target
97
88
  _createTarget(
@@ -426,8 +417,9 @@ contract StakingStore is
426
417
  return _reader;
427
418
  }
428
419
 
429
- function getTargetManager() external view returns (NftIdSetManager targetManager){
430
- return _targetManager;
420
+ // TODO rename
421
+ function getTargetNftIdSet() external view returns (NftIdSet targetNftIdSet){
422
+ return _targetNftIdSet;
431
423
  }
432
424
 
433
425
  function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) { return _stakingRate[chainId][token]; }
@@ -491,7 +483,7 @@ contract StakingStore is
491
483
  _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
492
484
  _createTargetBalance(targetNftId);
493
485
 
494
- _targetManager.add(targetNftId);
486
+ _targetNftIdSet.add(targetNftId);
495
487
  }
496
488
 
497
489
  function _updateReserves(
@@ -132,9 +132,9 @@ library TargetManagerLib {
132
132
  public
133
133
  pure
134
134
  {
135
- // check locking period is > 0
136
- if (lockingPeriod.eqz()) {
137
- revert IStaking.ErrorStakingLockingPeriodZero(targetNftId);
135
+ // check locking period is >= min locking period
136
+ if (lockingPeriod.lt(getMinimumLockingPeriod())) {
137
+ revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
138
138
  }
139
139
 
140
140
  // check locking period <= max locking period
@@ -190,6 +190,10 @@ library TargetManagerLib {
190
190
  return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
191
191
  }
192
192
 
193
+ /// @dev the minimum locking period is 24 hours
194
+ function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
195
+ return SecondsLib.toSeconds(24 * 3600);
196
+ }
193
197
 
194
198
  function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
195
199
  return UFixedLib.toUFixed(33, -2);
@@ -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
@@ -27,20 +27,16 @@ function STAKING() pure returns (ObjectType) {
27
27
  return ObjectType.wrap(3);
28
28
  }
29
29
 
30
- function TOKEN() pure returns (ObjectType) {
31
- return ObjectType.wrap(6);
32
- }
33
-
34
30
  function RELEASE() pure returns (ObjectType) {
35
- return ObjectType.wrap(7);
31
+ return ObjectType.wrap(6);
36
32
  }
37
33
 
38
34
  function ROLE() pure returns (ObjectType) {
39
- return ObjectType.wrap(8);
35
+ return ObjectType.wrap(7);
40
36
  }
41
37
 
42
38
  function SERVICE() pure returns (ObjectType) {
43
- return ObjectType.wrap(9);
39
+ return ObjectType.wrap(8);
44
40
  }
45
41
 
46
42
  function INSTANCE() pure returns (ObjectType) {
@@ -75,48 +71,52 @@ function POLICY() pure returns (ObjectType) {
75
71
  return ObjectType.wrap(21);
76
72
  }
77
73
 
78
- function CLAIM() pure returns (ObjectType) {
74
+ function PREMIUM() pure returns (ObjectType) {
79
75
  return ObjectType.wrap(22);
80
76
  }
81
77
 
78
+ function CLAIM() pure returns (ObjectType) {
79
+ return ObjectType.wrap(23);
80
+ }
81
+
82
82
  function PAYOUT() pure returns (ObjectType) {
83
- return ObjectType.wrap(23);
83
+ return ObjectType.wrap(24);
84
84
  }
85
85
 
86
86
  function RISK() pure returns (ObjectType) {
87
- return ObjectType.wrap(24);
87
+ return ObjectType.wrap(25);
88
88
  }
89
89
 
90
90
  function PRICE() pure returns (ObjectType) {
91
- return ObjectType.wrap(25);
91
+ return ObjectType.wrap(26);
92
92
  }
93
93
 
94
94
  function REQUEST() pure returns (ObjectType) {
95
- return ObjectType.wrap(26);
95
+ return ObjectType.wrap(27);
96
96
  }
97
97
 
98
98
  function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
99
- return ObjectType.wrap(27);
99
+ return ObjectType.wrap(28);
100
100
  }
101
101
 
102
102
  function DISTRIBUTOR() pure returns (ObjectType) {
103
- return ObjectType.wrap(28);
103
+ return ObjectType.wrap(29);
104
104
  }
105
105
 
106
106
  function REFERRAL() pure returns (ObjectType) {
107
- return ObjectType.wrap(29);
107
+ return ObjectType.wrap(30);
108
108
  }
109
109
 
110
110
  function BUNDLE() pure returns (ObjectType) {
111
- return ObjectType.wrap(30);
111
+ return ObjectType.wrap(31);
112
112
  }
113
113
 
114
114
  function TARGET() pure returns (ObjectType) {
115
- return ObjectType.wrap(31);
115
+ return ObjectType.wrap(32);
116
116
  }
117
117
 
118
118
  function STAKE() pure returns (ObjectType) {
119
- return ObjectType.wrap(32);
119
+ return ObjectType.wrap(33);
120
120
  }
121
121
 
122
122
  /// @dev Object type that includes any other object type.
@@ -12,6 +12,7 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
15
16
  ReferralLib.toKey32
16
17
  } for ReferralId global;
17
18
 
@@ -19,6 +19,16 @@ using {
19
19
 
20
20
  // general pure free functions
21
21
 
22
+ // @dev Returns true iff role ids a and b are identical
23
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
24
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
25
+ }
26
+
27
+ // @dev Returns true iff role ids a and b are different
28
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
29
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
30
+ }
31
+
22
32
  //--- OpenZeppelin provided roles -------------------------------------------//
23
33
 
24
34
  /// @dev Role ID needs to match with oz AccessManager.ADMIN_ROLE
@@ -90,44 +100,6 @@ function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(14)
90
100
 
91
101
  function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(1000000); }
92
102
 
93
- // TODO cleanup
94
- /// @dev role associated with the staking contract
95
- // function REGISTRY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1800); }
96
- // /// @dev instance specific role for instance service
97
- // function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2000); }
98
- // /// @dev role for registering gif components
99
- // function COMPONENT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2001); }
100
- // /// @dev instance specific role for distribution service
101
- // function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2100); }
102
- // /// @dev instance specific role for oracle service
103
- // function ORACLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2150); }
104
- // /// @dev instance specific role for pool service
105
- // function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2200); }
106
- // /// @dev instance specific role for product service
107
- // function PRODUCT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2300); }
108
- // /// @dev instance specific role for application service
109
- // function APPLICATION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2400); }
110
- // /// @dev instance specific role for policy service
111
- // function POLICY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2410); }
112
- // /// @dev instance specific role for claim service
113
- // function CLAIM_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2420); }
114
- // /// @dev instance specific role for bundle service
115
- // function BUNDLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2500); }
116
- // /// @dev instance specific role for pricing service
117
- // function PRICING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2800); }
118
- // /// @dev instance specific role for staking service
119
-
120
- // function STAKING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2900);
121
- // @dev Returns true iff role ids a and b are identical
122
- function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
123
- return RoleId.unwrap(a) == RoleId.unwrap(b);
124
- }
125
-
126
- // @dev Returns true iff role ids a and b are different
127
- function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
128
- return RoleId.unwrap(a) != RoleId.unwrap(b);
129
- }
130
-
131
103
  library RoleIdLib {
132
104
 
133
105
  uint64 public constant ALL_VERSIONS = 99;