@etherisc/gif-next 0.0.2-e79d227-681 → 0.0.2-e7a5428-226

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 (504) hide show
  1. package/README.md +57 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -185
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -127
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +37 -106
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +183 -128
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +324 -250
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +191 -182
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -100
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +196 -155
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +600 -296
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +482 -50
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +373 -13
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +493 -85
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1017 -334
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +914 -554
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -80
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +690 -566
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -81
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +41 -45
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -65
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -114
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -63
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -76
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -182
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +168 -157
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -85
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +187 -176
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +54 -19
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +92 -57
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -479
  192. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  193. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  208. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Component.sol/Component.json +60 -50
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -531
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +111 -95
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +41 -31
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +155 -382
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +41 -45
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  237. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  239. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -64
  241. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  242. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1026 -101
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1218 -214
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  270. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -61
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +174 -217
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +957 -603
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +101 -51
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  289. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  340. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  342. package/contracts/accounting/AccountingService.sol +274 -0
  343. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  344. package/contracts/accounting/IAccountingService.sol +47 -0
  345. package/contracts/authorization/AccessAdmin.sol +422 -258
  346. package/contracts/authorization/AccessAdminLib.sol +396 -0
  347. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  348. package/contracts/authorization/Authorization.sol +142 -262
  349. package/contracts/authorization/IAccess.sol +25 -7
  350. package/contracts/authorization/IAccessAdmin.sol +87 -80
  351. package/contracts/authorization/IAuthorization.sol +9 -43
  352. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  353. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  354. package/contracts/distribution/BasicDistribution.sol +16 -14
  355. package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
  356. package/contracts/distribution/Distribution.sol +38 -75
  357. package/contracts/distribution/DistributionService.sol +181 -87
  358. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  359. package/contracts/distribution/IDistributionComponent.sol +3 -10
  360. package/contracts/distribution/IDistributionService.sol +34 -19
  361. package/contracts/examples/fire/FirePool.sol +6 -6
  362. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  363. package/contracts/examples/fire/FireProduct.sol +15 -13
  364. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  365. package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
  366. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  367. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  368. package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
  369. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  370. package/contracts/examples/unpermissioned/SimpleProduct.sol +119 -27
  371. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  372. package/contracts/instance/BundleSet.sol +4 -4
  373. package/contracts/instance/IInstance.sol +92 -19
  374. package/contracts/instance/IInstanceService.sol +52 -9
  375. package/contracts/instance/Instance.sol +163 -57
  376. package/contracts/instance/InstanceAdmin.sol +271 -166
  377. package/contracts/instance/InstanceAuthorizationV3.sol +89 -40
  378. package/contracts/instance/InstanceReader.sol +422 -369
  379. package/contracts/instance/InstanceService.sol +252 -176
  380. package/contracts/instance/InstanceServiceManager.sol +1 -1
  381. package/contracts/instance/InstanceStore.sol +13 -2
  382. package/contracts/instance/RiskSet.sol +21 -14
  383. package/contracts/instance/base/BalanceStore.sol +4 -6
  384. package/contracts/instance/base/ObjectCounter.sol +1 -2
  385. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  386. package/contracts/instance/base/ObjectSet.sol +7 -8
  387. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  388. package/contracts/instance/module/IBundle.sol +6 -5
  389. package/contracts/instance/module/IComponents.sol +19 -7
  390. package/contracts/instance/module/IDistribution.sol +21 -8
  391. package/contracts/instance/module/IPolicy.sol +28 -8
  392. package/contracts/instance/module/IRisk.sol +4 -0
  393. package/contracts/oracle/BasicOracle.sol +2 -4
  394. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  395. package/contracts/oracle/IOracle.sol +9 -4
  396. package/contracts/oracle/Oracle.sol +3 -5
  397. package/contracts/oracle/OracleService.sol +24 -23
  398. package/contracts/oracle/OracleServiceManager.sol +1 -1
  399. package/contracts/pool/BasicPool.sol +3 -16
  400. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  401. package/contracts/pool/BundleService.sol +67 -104
  402. package/contracts/pool/BundleServiceManager.sol +1 -1
  403. package/contracts/pool/IBundleService.sol +27 -33
  404. package/contracts/pool/IPoolService.sol +57 -40
  405. package/contracts/pool/Pool.sol +13 -25
  406. package/contracts/pool/PoolLib.sol +341 -0
  407. package/contracts/pool/PoolService.sol +203 -201
  408. package/contracts/pool/PoolServiceManager.sol +1 -1
  409. package/contracts/product/ApplicationService.sol +86 -18
  410. package/contracts/product/ApplicationServiceManager.sol +1 -1
  411. package/contracts/product/BasicProduct.sol +3 -3
  412. package/contracts/product/BasicProductAuthorization.sol +32 -11
  413. package/contracts/product/ClaimService.sol +187 -171
  414. package/contracts/product/ClaimServiceManager.sol +1 -1
  415. package/contracts/product/IApplicationService.sol +24 -2
  416. package/contracts/product/IClaimService.sol +18 -5
  417. package/contracts/product/IPolicyService.sol +20 -8
  418. package/contracts/product/IPricingService.sol +1 -0
  419. package/contracts/product/IProductComponent.sol +4 -1
  420. package/contracts/product/IRiskService.sol +25 -10
  421. package/contracts/product/PolicyService.sol +110 -198
  422. package/contracts/product/PolicyServiceLib.sol +139 -0
  423. package/contracts/product/PolicyServiceManager.sol +1 -1
  424. package/contracts/product/PricingService.sol +52 -46
  425. package/contracts/product/PricingServiceManager.sol +3 -3
  426. package/contracts/product/Product.sol +93 -27
  427. package/contracts/product/RiskService.sol +119 -36
  428. package/contracts/product/RiskServiceManager.sol +1 -1
  429. package/contracts/registry/ChainNft.sol +4 -2
  430. package/contracts/registry/IRegistry.sol +23 -24
  431. package/contracts/registry/IRelease.sol +29 -0
  432. package/contracts/registry/Registry.sol +22 -11
  433. package/contracts/registry/RegistryAdmin.sol +100 -363
  434. package/contracts/registry/RegistryAuthorization.sol +309 -0
  435. package/contracts/registry/RegistryService.sol +4 -4
  436. package/contracts/registry/RegistryServiceManager.sol +1 -1
  437. package/contracts/registry/ReleaseAdmin.sol +195 -0
  438. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  439. package/contracts/registry/ReleaseRegistry.sol +157 -117
  440. package/contracts/registry/ServiceAuthorizationV3.sol +194 -27
  441. package/contracts/registry/TokenRegistry.sol +61 -59
  442. package/contracts/shared/Component.sol +34 -37
  443. package/contracts/shared/ComponentService.sol +314 -433
  444. package/contracts/shared/ComponentServiceManager.sol +1 -1
  445. package/contracts/shared/ContractLib.sol +164 -76
  446. package/contracts/shared/IComponent.sol +1 -10
  447. package/contracts/shared/IComponentService.sol +22 -41
  448. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  449. package/contracts/shared/IKeyValueStore.sol +1 -1
  450. package/contracts/shared/INftOwnable.sol +2 -0
  451. package/contracts/shared/IRegisterable.sol +15 -5
  452. package/contracts/shared/IService.sol +3 -5
  453. package/contracts/shared/InitializableERC165.sol +9 -1
  454. package/contracts/shared/InstanceLinkedComponent.sol +7 -18
  455. package/contracts/shared/KeyValueStore.sol +3 -3
  456. package/contracts/shared/NftOwnable.sol +8 -6
  457. package/contracts/shared/PolicyHolder.sol +4 -3
  458. package/contracts/shared/Registerable.sol +42 -19
  459. package/contracts/shared/RegistryLinked.sol +1 -1
  460. package/contracts/shared/Service.sol +13 -30
  461. package/contracts/shared/TokenHandler.sol +45 -92
  462. package/contracts/staking/IStaking.sol +155 -64
  463. package/contracts/staking/IStakingService.sol +45 -75
  464. package/contracts/staking/Staking.sol +444 -203
  465. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  466. package/contracts/staking/StakingManager.sol +1 -2
  467. package/contracts/staking/StakingReader.sol +41 -80
  468. package/contracts/staking/StakingService.sol +62 -181
  469. package/contracts/staking/StakingServiceManager.sol +6 -4
  470. package/contracts/staking/StakingStore.sol +697 -329
  471. package/contracts/staking/TargetManagerLib.sol +1 -1
  472. package/contracts/type/Amount.sol +4 -0
  473. package/contracts/type/Blocknumber.sol +15 -15
  474. package/contracts/type/ChainId.sol +101 -0
  475. package/contracts/type/Fee.sol +8 -8
  476. package/contracts/type/NftId.sol +3 -3
  477. package/contracts/type/ObjectType.sol +67 -38
  478. package/contracts/type/RiskId.sol +9 -3
  479. package/contracts/type/RoleId.sol +63 -45
  480. package/contracts/type/Seconds.sol +14 -0
  481. package/contracts/type/Selector.sol +5 -0
  482. package/contracts/type/String.sol +12 -0
  483. package/contracts/type/Timestamp.sol +4 -7
  484. package/contracts/type/UFixed.sol +35 -127
  485. package/contracts/type/Version.sol +54 -5
  486. package/contracts/upgradeability/IVersionable.sol +3 -0
  487. package/contracts/upgradeability/ProxyManager.sol +26 -12
  488. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  489. package/contracts/upgradeability/Versionable.sol +6 -3
  490. package/package.json +2 -2
  491. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  492. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  493. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  494. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  496. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  497. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  498. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  499. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  500. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  501. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  502. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  503. package/contracts/instance/module/IAccess.sol +0 -46
  504. package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -3,12 +3,13 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
- import {Amount} from "../type/Amount.sol";
7
6
  import {IRegisterable} from "../shared/IRegisterable.sol";
8
7
  import {IRegistry} from "../registry/IRegistry.sol";
9
- import {RegistryService} from "../registry/RegistryService.sol";
10
8
  import {IStaking} from "./IStaking.sol";
11
9
  import {IStakingService} from "./IStakingService.sol";
10
+
11
+ import {Amount} from "../type/Amount.sol";
12
+ import {RegistryService} from "../registry/RegistryService.sol";
12
13
  import {NftId, NftIdLib} from "../type/NftId.sol";
13
14
  import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
14
15
  import {Seconds} from "../type/Seconds.sol";
@@ -32,6 +33,16 @@ contract StakingService is
32
33
  TokenHandler _tokenHandler;
33
34
  }
34
35
 
36
+
37
+ modifier onlyStaking() {
38
+ if (msg.sender != address(_getStakingServiceStorage()._staking)) {
39
+ revert ErrorStakingServiceNotStaking(msg.sender);
40
+ }
41
+ _;
42
+ }
43
+
44
+
45
+ /// @inheritdoc IStakingService
35
46
  function createInstanceTarget(
36
47
  NftId targetNftId,
37
48
  Seconds initialLockingPeriod,
@@ -45,7 +56,6 @@ contract StakingService is
45
56
  _getStakingServiceStorage()._staking.registerTarget(
46
57
  targetNftId,
47
58
  INSTANCE(),
48
- chainId,
49
59
  initialLockingPeriod,
50
60
  initialRewardRate);
51
61
 
@@ -53,6 +63,7 @@ contract StakingService is
53
63
  }
54
64
 
55
65
 
66
+ /// @inheritdoc IStakingService
56
67
  function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
57
68
  external
58
69
  virtual
@@ -65,6 +76,7 @@ contract StakingService is
65
76
  }
66
77
 
67
78
 
79
+ /// @inheritdoc IStakingService
68
80
  function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
69
81
  external
70
82
  virtual
@@ -77,28 +89,39 @@ contract StakingService is
77
89
  }
78
90
 
79
91
 
80
- function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
92
+ /// @inheritdoc IStakingService
93
+ function setInstanceMaxStakedAmount(NftId instanceNftId, Amount maxStakingAmount)
81
94
  external
82
95
  virtual
83
96
  restricted()
84
- returns (Amount newBalance)
85
97
  {
86
98
  _checkNftType(instanceNftId, INSTANCE());
87
- return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
99
+ _getStakingServiceStorage()._staking.setMaxStakedAmount(
100
+ instanceNftId,
101
+ maxStakingAmount);
88
102
  }
89
103
 
90
104
 
91
- function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
105
+ /// @inheritdoc IStakingService
106
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
92
107
  external
93
108
  virtual
94
109
  restricted()
95
110
  returns (Amount newBalance)
96
111
  {
97
- address rewardProvider = msg.sender;
98
- return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
112
+ // checks
113
+ _checkNftType(instanceNftId, INSTANCE());
114
+
115
+ // update reward reserve book keeping
116
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
117
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
118
+ newBalance = $._staking.refillRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
119
+
120
+ emit LogStakingServiceRewardReservesIncreased(instanceNftId, rewardProvider, dipAmount, newBalance);
99
121
  }
100
122
 
101
123
 
124
+ /// @inheritdoc IStakingService
102
125
  function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
103
126
  external
104
127
  virtual
@@ -108,37 +131,25 @@ contract StakingService is
108
131
  _checkNftType(instanceNftId, INSTANCE());
109
132
  // update reward reserve book keeping
110
133
  StakingServiceStorage storage $ = _getStakingServiceStorage();
111
- newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
112
-
113
- // transfer withdrawal amount to target owner
114
134
  address instanceOwner = getRegistry().ownerOf(instanceNftId);
135
+ newBalance = $._staking.withdrawRewardReservesByService(instanceNftId, dipAmount, instanceOwner);
136
+
115
137
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
116
- _distributeToken(
117
- $._staking.getTokenHandler(),
118
- instanceOwner,
119
- dipAmount);
120
138
  }
121
139
 
122
140
 
123
- /// @dev creates a new stake to the specified target nft id with the provided dip amount
124
- /// the target nft id must have been registered as an active staking target prior to this call
125
- /// the sender of this transaction becomes the stake owner via the minted nft.
126
- /// to create the new stake balance and allowance of the staker need to cover the dip amount
127
- /// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
128
- /// this is a permissionless function.
129
- function create(
141
+ /// @inheritdoc IStakingService
142
+ function createStakeObject(
130
143
  NftId targetNftId,
131
- Amount dipAmount
144
+ address stakeOwner
132
145
  )
133
146
  external
134
147
  virtual
135
148
  restricted()
136
- returns (
137
- NftId stakeNftId
138
- )
149
+ onlyStaking()
150
+ returns (NftId stakeNftId)
139
151
  {
140
152
  StakingServiceStorage storage $ = _getStakingServiceStorage();
141
- address stakeOwner = msg.sender;
142
153
 
143
154
  // target nft id checks are performed in $._staking.createStake() below
144
155
  // register new stake object with registry
@@ -153,156 +164,42 @@ contract StakingService is
153
164
  data: ""
154
165
  }));
155
166
 
156
- // create stake info with staking
157
- $._staking.createStake(
158
- stakeNftId,
159
- targetNftId,
160
- dipAmount);
161
-
162
- emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
163
-
164
- // collect staked dip by staking
165
- _collectToken(
166
- $._staking.getTokenHandler(),
167
- stakeOwner,
168
- dipAmount);
167
+ emit LogStakingServiceStakeObjectCreated(stakeNftId, targetNftId, stakeOwner);
169
168
  }
170
169
 
171
- function _collectToken(
172
- TokenHandler tokenHandler,
173
- address from,
174
- Amount amount
175
- )
176
- internal
177
- virtual
178
- {
179
- tokenHandler.collectTokens(
180
- from,
181
- amount);
182
- }
183
170
 
184
- function _distributeToken(
185
- TokenHandler tokenHandler,
186
- address to,
187
- Amount amount
188
- )
189
- internal
190
- virtual
191
- {
192
- tokenHandler.distributeTokens(
193
- tokenHandler.getWallet(),
194
- to,
195
- amount);
196
- }
197
-
198
-
199
- function stake(
200
- NftId stakeNftId,
201
- Amount dipAmount
202
- )
171
+ /// @inheritdoc IStakingService
172
+ function pullDipToken(Amount dipAmount, address stakeOwner)
203
173
  external
204
174
  virtual
205
175
  restricted()
206
- onlyNftOwner(stakeNftId)
176
+ onlyStaking()
207
177
  {
208
- _checkNftType(stakeNftId, STAKE());
209
-
210
- StakingServiceStorage storage $ = _getStakingServiceStorage();
211
- address stakeOwner = msg.sender;
212
-
213
- // add additional staked dips by staking
214
- Amount stakeBalance = $._staking.stake(
215
- stakeNftId,
216
- dipAmount);
217
-
218
- // collect staked dip by staking
219
- if (dipAmount.gtz()) {
220
- emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
221
- _collectToken(
222
- $._staking.getTokenHandler(),
223
- stakeOwner,
224
- dipAmount);
225
- }
178
+ _getStakingServiceStorage()._tokenHandler.pullToken(stakeOwner, dipAmount);
226
179
  }
227
180
 
228
181
 
229
- function restakeToNewTarget(
230
- NftId stakeNftId,
231
- NftId newTargetNftId
232
- )
233
- external
234
- virtual
235
- restricted()
236
- onlyNftOwner(stakeNftId)
237
- returns (
238
- NftId newStakeNftId
239
- )
240
- {
241
- _checkNftType(stakeNftId, STAKE());
242
-
243
- StakingServiceStorage storage $ = _getStakingServiceStorage();
244
- // TODO implement
245
- }
246
-
247
-
248
- function updateRewards(
249
- NftId stakeNftId
250
- )
251
- external
252
- virtual
253
- restricted()
254
- {
255
- _checkNftType(stakeNftId, STAKE());
256
-
257
- StakingServiceStorage storage $ = _getStakingServiceStorage();
258
- $._staking.updateRewards(stakeNftId);
259
-
260
- emit LogStakingServiceRewardsUpdated(stakeNftId);
261
- }
262
-
263
-
264
- function claimRewards(NftId stakeNftId)
182
+ /// @inheritdoc IStakingService
183
+ function pushDipToken(Amount dipAmount, address stakeOwner)
265
184
  external
266
185
  virtual
267
186
  restricted()
268
- onlyNftOwner(stakeNftId)
187
+ onlyStaking()
269
188
  {
270
- _checkNftType(stakeNftId, STAKE());
271
-
272
- StakingServiceStorage storage $ = _getStakingServiceStorage();
273
- address stakeOwner = msg.sender;
274
-
275
- Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
276
- emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
277
- _distributeToken(
278
- $._staking.getTokenHandler(),
279
- stakeOwner,
280
- rewardsClaimedAmount);
189
+ _getStakingServiceStorage()._tokenHandler.pushToken(stakeOwner, dipAmount);
281
190
  }
282
191
 
283
192
 
284
- function unstake(NftId stakeNftId)
193
+ /// @inheritdoc IStakingService
194
+ function approveTokenHandler(
195
+ IERC20Metadata token,
196
+ Amount amount
197
+ )
285
198
  external
286
199
  virtual
287
- restricted()
288
- onlyNftOwner(stakeNftId)
200
+ onlyStaking()
289
201
  {
290
- _checkNftType(stakeNftId, STAKE());
291
-
292
- StakingServiceStorage storage $ = _getStakingServiceStorage();
293
- address stakeOwner = msg.sender;
294
-
295
- (
296
- Amount unstakedAmount,
297
- Amount rewardsClaimedAmount
298
- ) = $._staking.unstake(stakeNftId);
299
-
300
- Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
301
- emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
302
-
303
- $._staking.getTokenHandler().pushToken(
304
- stakeOwner,
305
- totalAmount);
202
+ _getStakingServiceStorage()._tokenHandler.approve(token, amount);
306
203
  }
307
204
 
308
205
 
@@ -323,6 +220,7 @@ contract StakingService is
323
220
 
324
221
  function getDipToken()
325
222
  external
223
+ view
326
224
  virtual
327
225
  returns (IERC20Metadata dip)
328
226
  {
@@ -332,6 +230,7 @@ contract StakingService is
332
230
 
333
231
  function getTokenHandler()
334
232
  external
233
+ view
335
234
  virtual
336
235
  returns (TokenHandler tokenHandler)
337
236
  {
@@ -341,6 +240,7 @@ contract StakingService is
341
240
 
342
241
  function getStaking()
343
242
  external
243
+ view
344
244
  virtual
345
245
  returns (IStaking staking)
346
246
  {
@@ -359,15 +259,15 @@ contract StakingService is
359
259
  {
360
260
  (
361
261
  address authority,
362
- address registryAddress,
363
- address stakingAddress
262
+ address registry,
263
+ address staking
364
264
  ) = abi.decode(data, (address, address, address));
365
265
 
366
- _initializeService(registryAddress, authority, owner);
266
+ __Service_init(authority, registry, owner);
367
267
 
368
268
  StakingServiceStorage storage $ = _getStakingServiceStorage();
369
269
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
370
- $._staking = _registerStaking(stakingAddress);
270
+ $._staking = _registerStaking(staking);
371
271
  $._dip = $._staking.getToken();
372
272
  $._tokenHandler = $._staking.getTokenHandler();
373
273
 
@@ -408,25 +308,6 @@ contract StakingService is
408
308
  }
409
309
 
410
310
 
411
- function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
412
- internal
413
- virtual
414
- returns (Amount newBalance)
415
- {
416
- // update reward reserve book keeping
417
- StakingServiceStorage storage $ = _getStakingServiceStorage();
418
- newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
419
-
420
- emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
421
-
422
- // collect reward dip from provider
423
- _collectToken(
424
- $._staking.getTokenHandler(),
425
- rewardProvider,
426
- dipAmount);
427
- }
428
-
429
-
430
311
  function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
431
312
  assembly {
432
313
  $.slot := STAKING_SERVICE_LOCATION_V1
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IRegistry} from "../registry/IRegistry.sol";
5
5
  import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+
6
7
  import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
8
  import {StakingService} from "./StakingService.sol";
8
9
 
@@ -15,17 +16,18 @@ contract StakingServiceManager is
15
16
  /// @dev initializes proxy manager with service implementation
16
17
  constructor(
17
18
  address authority,
18
- address registryAddress,
19
+ address registry,
19
20
  bytes32 salt
20
21
  )
21
22
  {
22
23
  StakingService svc = new StakingService();
23
24
  bytes memory data = abi.encode(
24
25
  authority,
25
- registryAddress,
26
- IRegistry(registryAddress).getStakingAddress());
26
+ registry,
27
+ IRegistry(registry).getStakingAddress());
28
+
27
29
  IVersionable versionable = initialize(
28
- registryAddress,
30
+ registry,
29
31
  address(svc),
30
32
  data,
31
33
  salt);