@etherisc/gif-next 0.0.2-e5a2253-213 → 0.0.2-e5a6af8-639

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 (724) hide show
  1. package/README.md +59 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1439 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +830 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2077 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +314 -1441
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +334 -202
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +374 -2546
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1023 -387
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +436 -404
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +356 -94
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  93. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +291 -353
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  105. package/artifacts/contracts/{components/Pool.sol/Pool.json → oracle/Oracle.sol/Oracle.json} +421 -367
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  119. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +497 -257
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +238 -228
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +290 -211
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  151. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +494 -268
  152. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  153. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +154 -133
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  162. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  163. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +538 -20
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +273 -230
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +991 -90
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -279
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +345 -83
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +307 -268
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +153 -172
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +270 -260
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +40 -31
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  219. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +106 -152
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  224. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +96 -48
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  240. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Service.sol/Service.json +138 -164
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  244. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  246. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  248. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  250. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  252. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  254. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  256. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  258. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  260. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  262. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  264. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  266. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  268. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  270. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  272. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  282. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  284. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  286. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  288. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  290. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  292. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  294. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  296. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  298. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  304. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  310. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  312. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  322. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  324. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  326. package/contracts/authorization/AccessAdmin.sol +596 -0
  327. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  328. package/contracts/authorization/Authorization.sol +289 -0
  329. package/contracts/authorization/IAccess.sol +49 -0
  330. package/contracts/authorization/IAccessAdmin.sol +137 -0
  331. package/contracts/authorization/IAuthorization.sol +60 -0
  332. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  333. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  334. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  335. package/contracts/distribution/BasicDistribution.sol +139 -0
  336. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  337. package/contracts/distribution/Distribution.sol +285 -0
  338. package/contracts/distribution/DistributionService.sol +355 -0
  339. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  340. package/contracts/distribution/IDistributionComponent.sol +52 -0
  341. package/contracts/distribution/IDistributionService.sol +101 -0
  342. package/contracts/examples/fire/DamageLevel.sol +59 -0
  343. package/contracts/examples/fire/FirePool.sol +75 -0
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  345. package/contracts/examples/fire/FireProduct.sol +418 -0
  346. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  347. package/contracts/examples/fire/FireUSD.sol +26 -0
  348. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  349. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  350. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  351. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  352. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  353. package/contracts/instance/IInstance.sol +56 -50
  354. package/contracts/instance/IInstanceService.sol +53 -21
  355. package/contracts/instance/Instance.sol +168 -198
  356. package/contracts/instance/InstanceAdmin.sol +277 -0
  357. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  358. package/contracts/instance/InstanceReader.sol +264 -84
  359. package/contracts/instance/InstanceService.sol +309 -243
  360. package/contracts/instance/InstanceServiceManager.sol +14 -29
  361. package/contracts/instance/InstanceStore.sol +287 -0
  362. package/contracts/instance/base/BalanceStore.sol +123 -0
  363. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  364. package/contracts/instance/base/ObjectCounter.sol +21 -0
  365. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  366. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
  367. package/contracts/instance/module/IAccess.sol +19 -21
  368. package/contracts/instance/module/IBundle.sol +8 -8
  369. package/contracts/instance/module/IComponents.sol +51 -0
  370. package/contracts/instance/module/IDistribution.sol +6 -4
  371. package/contracts/instance/module/IPolicy.sol +58 -19
  372. package/contracts/instance/module/IRisk.sol +1 -1
  373. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  374. package/contracts/oracle/BasicOracle.sol +47 -0
  375. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  376. package/contracts/oracle/IOracle.sol +36 -0
  377. package/contracts/oracle/IOracleComponent.sol +33 -0
  378. package/contracts/oracle/IOracleService.sol +66 -0
  379. package/contracts/oracle/Oracle.sol +156 -0
  380. package/contracts/oracle/OracleService.sol +291 -0
  381. package/contracts/oracle/OracleServiceManager.sol +39 -0
  382. package/contracts/pool/BasicPool.sol +154 -0
  383. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  384. package/contracts/pool/BundleService.sol +480 -0
  385. package/contracts/pool/BundleServiceManager.sol +39 -0
  386. package/contracts/pool/IBundleService.sol +143 -0
  387. package/contracts/pool/IPoolComponent.sol +68 -0
  388. package/contracts/pool/IPoolService.sol +167 -0
  389. package/contracts/pool/Pool.sol +335 -0
  390. package/contracts/pool/PoolService.sol +534 -0
  391. package/contracts/pool/PoolServiceManager.sol +39 -0
  392. package/contracts/product/ApplicationService.sol +257 -0
  393. package/contracts/product/ApplicationServiceManager.sol +38 -0
  394. package/contracts/product/BasicProduct.sol +53 -0
  395. package/contracts/product/BasicProductAuthorization.sol +42 -0
  396. package/contracts/product/ClaimService.sol +604 -0
  397. package/contracts/product/ClaimServiceManager.sol +38 -0
  398. package/contracts/product/IApplicationService.sol +63 -0
  399. package/contracts/product/IClaimService.sol +123 -0
  400. package/contracts/product/IPolicyService.sol +80 -0
  401. package/contracts/product/IPricingService.sol +39 -0
  402. package/contracts/product/IProductComponent.sol +59 -0
  403. package/contracts/product/IRiskService.sol +33 -0
  404. package/contracts/product/PolicyService.sol +683 -0
  405. package/contracts/product/PolicyServiceManager.sol +39 -0
  406. package/contracts/product/PricingService.sol +297 -0
  407. package/contracts/product/PricingServiceManager.sol +39 -0
  408. package/contracts/product/Product.sol +455 -0
  409. package/contracts/product/RiskService.sol +96 -0
  410. package/contracts/product/RiskServiceManager.sol +39 -0
  411. package/contracts/registry/ChainNft.sol +79 -34
  412. package/contracts/registry/IRegistry.sol +106 -26
  413. package/contracts/registry/IRegistryService.sol +38 -34
  414. package/contracts/registry/ITransferInterceptor.sol +1 -1
  415. package/contracts/registry/Registry.sol +530 -209
  416. package/contracts/registry/RegistryAdmin.sol +448 -0
  417. package/contracts/registry/RegistryService.sol +119 -198
  418. package/contracts/registry/RegistryServiceManager.sol +24 -33
  419. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  420. package/contracts/registry/ReleaseRegistry.sol +501 -0
  421. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  422. package/contracts/registry/TokenRegistry.sol +263 -58
  423. package/contracts/shared/Component.sol +265 -0
  424. package/contracts/shared/ComponentService.sol +735 -0
  425. package/contracts/shared/ComponentServiceManager.sol +38 -0
  426. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  427. package/contracts/shared/ContractLib.sol +38 -0
  428. package/contracts/shared/IComponent.sol +74 -0
  429. package/contracts/shared/IComponentService.sol +120 -0
  430. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  431. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  432. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  433. package/contracts/shared/INftOwnable.sol +15 -12
  434. package/contracts/shared/IPolicyHolder.sol +35 -0
  435. package/contracts/shared/IRegisterable.sol +15 -4
  436. package/contracts/shared/IRegistryLinked.sol +11 -0
  437. package/contracts/shared/IService.sol +15 -6
  438. package/contracts/shared/InitializableERC165.sol +27 -0
  439. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  440. package/contracts/shared/KeyValueStore.sol +131 -0
  441. package/contracts/shared/Lifecycle.sol +88 -0
  442. package/contracts/shared/NftIdSet.sol +65 -0
  443. package/contracts/shared/NftOwnable.sol +71 -82
  444. package/contracts/shared/PolicyHolder.sol +62 -0
  445. package/contracts/shared/Registerable.sol +34 -39
  446. package/contracts/shared/RegistryLinked.sol +44 -0
  447. package/contracts/shared/Service.sol +60 -34
  448. package/contracts/shared/TokenHandler.sol +122 -10
  449. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  450. package/contracts/staking/IStaking.sol +168 -0
  451. package/contracts/staking/IStakingService.sol +157 -0
  452. package/contracts/staking/StakeManagerLib.sol +224 -0
  453. package/contracts/staking/Staking.sol +497 -0
  454. package/contracts/staking/StakingLifecycle.sol +23 -0
  455. package/contracts/staking/StakingManager.sol +52 -0
  456. package/contracts/staking/StakingReader.sol +190 -0
  457. package/contracts/staking/StakingService.sol +393 -0
  458. package/contracts/staking/StakingServiceManager.sol +44 -0
  459. package/contracts/staking/StakingStore.sol +605 -0
  460. package/contracts/staking/TargetManagerLib.sol +211 -0
  461. package/contracts/{types → type}/AddressSet.sol +1 -1
  462. package/contracts/type/Amount.sol +150 -0
  463. package/contracts/{types → type}/Blocknumber.sol +27 -3
  464. package/contracts/type/ClaimId.sol +80 -0
  465. package/contracts/{types → type}/DistributorType.sol +2 -2
  466. package/contracts/{types → type}/Fee.sol +33 -23
  467. package/contracts/{types → type}/NftId.sol +22 -15
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +276 -0
  470. package/contracts/type/PayoutId.sol +82 -0
  471. package/contracts/{types → type}/Referral.sol +6 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +16 -2
  474. package/contracts/type/RoleId.sol +162 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +48 -4
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +34 -15
  480. package/contracts/{types → type}/UFixed.sol +39 -9
  481. package/contracts/{types → type}/Version.sol +5 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  483. package/contracts/upgradeability/ProxyManager.sol +232 -0
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/upgradeability/Versionable.sol +59 -0
  486. package/package.json +11 -7
  487. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  492. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  494. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  495. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  496. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  497. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  499. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  500. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  502. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  504. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  506. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  508. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  510. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  512. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  514. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  516. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  518. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  521. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  523. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  525. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  527. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  529. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  531. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  533. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  535. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  537. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  538. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  539. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  541. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  542. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  543. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  545. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  546. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  547. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  549. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  552. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  556. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  558. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1121
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  564. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -791
  566. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  568. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  571. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1246
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -825
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -875
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  594. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  595. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  596. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  597. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  598. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  599. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  600. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  601. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  602. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  604. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  606. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  608. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  610. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  612. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  614. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  616. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  618. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  619. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  620. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  621. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  622. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  624. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  640. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  642. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  644. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  646. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  648. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  650. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  652. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  654. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  656. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  658. package/contracts/components/BaseComponent.sol +0 -168
  659. package/contracts/components/Distribution.sol +0 -154
  660. package/contracts/components/IBaseComponent.sol +0 -35
  661. package/contracts/components/IDistributionComponent.sol +0 -44
  662. package/contracts/components/IPoolComponent.sol +0 -66
  663. package/contracts/components/IProductComponent.sol +0 -35
  664. package/contracts/components/Pool.sol +0 -258
  665. package/contracts/components/Product.sol +0 -295
  666. package/contracts/experiment/cloning/Cloner.sol +0 -47
  667. package/contracts/experiment/errors/Require.sol +0 -38
  668. package/contracts/experiment/errors/Revert.sol +0 -44
  669. package/contracts/experiment/inheritance/A.sol +0 -53
  670. package/contracts/experiment/inheritance/B.sol +0 -28
  671. package/contracts/experiment/inheritance/C.sol +0 -34
  672. package/contracts/experiment/inheritance/IA.sol +0 -13
  673. package/contracts/experiment/inheritance/IB.sol +0 -10
  674. package/contracts/experiment/inheritance/IC.sol +0 -12
  675. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  676. package/contracts/experiment/statemachine/ISM.sol +0 -25
  677. package/contracts/experiment/statemachine/SM.sol +0 -57
  678. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  679. package/contracts/experiment/types/TypeA.sol +0 -47
  680. package/contracts/experiment/types/TypeB.sol +0 -29
  681. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  682. package/contracts/instance/IInstanceBase.sol +0 -25
  683. package/contracts/instance/InstanceAccessManager.sol +0 -303
  684. package/contracts/instance/InstanceBase.sol +0 -39
  685. package/contracts/instance/base/ComponentServiceBase.sol +0 -138
  686. package/contracts/instance/base/IInstanceBase.sol +0 -21
  687. package/contracts/instance/base/KeyValueStore.sol +0 -172
  688. package/contracts/instance/base/Lifecycle.sol +0 -100
  689. package/contracts/instance/module/ISetup.sol +0 -46
  690. package/contracts/instance/module/ITreasury.sol +0 -23
  691. package/contracts/instance/service/BundleService.sol +0 -294
  692. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  693. package/contracts/instance/service/DistributionService.sol +0 -115
  694. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  695. package/contracts/instance/service/IBundleService.sol +0 -44
  696. package/contracts/instance/service/IDistributionService.sol +0 -12
  697. package/contracts/instance/service/IPolicyService.sol +0 -94
  698. package/contracts/instance/service/IPoolService.sol +0 -20
  699. package/contracts/instance/service/IProductService.sol +0 -40
  700. package/contracts/instance/service/PolicyService.sol +0 -539
  701. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  702. package/contracts/instance/service/PoolService.sol +0 -142
  703. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  704. package/contracts/instance/service/ProductService.sol +0 -209
  705. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  706. package/contracts/registry/RegistryAccessManager.sol +0 -210
  707. package/contracts/registry/ReleaseManager.sol +0 -342
  708. package/contracts/shared/ContractDeployerLib.sol +0 -72
  709. package/contracts/shared/ERC165.sol +0 -25
  710. package/contracts/shared/ProxyManager.sol +0 -94
  711. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  712. package/contracts/shared/Versionable.sol +0 -147
  713. package/contracts/test/TestFee.sol +0 -25
  714. package/contracts/test/TestRegisterable.sol +0 -18
  715. package/contracts/test/TestRoleId.sol +0 -14
  716. package/contracts/test/TestService.sol +0 -25
  717. package/contracts/test/TestToken.sol +0 -26
  718. package/contracts/test/TestVersion.sol +0 -44
  719. package/contracts/test/TestVersionable.sol +0 -17
  720. package/contracts/types/ChainId.sol +0 -38
  721. package/contracts/types/NumberId.sol +0 -52
  722. package/contracts/types/ObjectType.sol +0 -152
  723. package/contracts/types/RoleId.sol +0 -90
  724. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -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
+ }
@@ -0,0 +1,52 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {Staking} from "./Staking.sol";
7
+
8
+
9
+ contract StakingManager is
10
+ ProxyManager
11
+ {
12
+ Staking private _staking;
13
+ address private _initialImplementation;
14
+ bytes private _initializationData;
15
+
16
+ /// @dev initializes proxy manager with service implementation
17
+ constructor(
18
+ address registry,
19
+ address tokenRegistry,
20
+ address stakingStore,
21
+ address initialOwner,
22
+ bytes32 salt
23
+ )
24
+ {
25
+ Staking stakingImplementation = new Staking();
26
+
27
+ _initialImplementation = address(stakingImplementation);
28
+ _initializationData = abi.encode(
29
+ registry,
30
+ tokenRegistry,
31
+ stakingStore,
32
+ initialOwner);
33
+
34
+ IVersionable versionable = initialize(
35
+ registry,
36
+ _initialImplementation,
37
+ _initializationData,
38
+ salt);
39
+
40
+ _staking = Staking(address(versionable));
41
+ }
42
+
43
+ //--- view functions ----------------------------------------------------//
44
+
45
+ function getStaking()
46
+ external
47
+ view
48
+ returns (Staking)
49
+ {
50
+ return _staking;
51
+ }
52
+ }
@@ -0,0 +1,190 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
8
+ import {IStaking} from "../staking/IStaking.sol";
9
+
10
+ import {Amount} from "../type/Amount.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
14
+ import {StakingStore} from "./StakingStore.sol";
15
+ import {Timestamp} from "../type/Timestamp.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
17
+
18
+ contract StakingReader is
19
+ IRegistryLinked,
20
+ Initializable
21
+ {
22
+
23
+ error ErrorStakingReaderUnauthorizedCaler();
24
+
25
+ address private _initializeOwner;
26
+ IRegistry private _registry;
27
+ IStaking private _staking;
28
+ StakingStore private _store;
29
+
30
+ constructor(IRegistry registry) {
31
+ _initializeOwner = msg.sender;
32
+ _registry = registry;
33
+ }
34
+
35
+ function initialize(
36
+ address stakingAddress,
37
+ address stakingStoreAddress
38
+ )
39
+ external
40
+ initializer()
41
+ {
42
+ if (msg.sender != _initializeOwner) {
43
+ revert ErrorStakingReaderUnauthorizedCaler();
44
+ }
45
+
46
+ _staking = IStaking(stakingAddress);
47
+ _store = StakingStore(stakingStoreAddress);
48
+ }
49
+
50
+ // view and pure functions
51
+
52
+ function getRegistry() external view returns (IRegistry registry) {
53
+ return _registry;
54
+ }
55
+
56
+ function getStaking() external view returns (IStaking staking) {
57
+ return _staking;
58
+ }
59
+
60
+ function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate) {
61
+ return _store.getStakingRate(chainId, token);
62
+ }
63
+
64
+
65
+ function isTarget(NftId targetNftId) external view returns (bool) {
66
+ return _store.getTargetNftIdSet().exists(targetNftId);
67
+ }
68
+
69
+
70
+ function targets() external view returns (uint256) {
71
+ return _store.getTargetNftIdSet().nftIds();
72
+ }
73
+
74
+
75
+ function getTargetNftId(uint256 idx) external view returns (NftId) {
76
+ return _store.getTargetNftIdSet().getNftId(idx);
77
+ }
78
+
79
+
80
+ function isActive(NftId targetNftId) external view returns (bool) {
81
+ return _store.getTargetNftIdSet().isActive(targetNftId);
82
+ }
83
+
84
+
85
+ function activeTargets() external view returns (uint256) {
86
+ return _store.getTargetNftIdSet().activeNftIds();
87
+ }
88
+
89
+
90
+ function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
91
+ return _store.getTargetNftIdSet().getActiveNftId(idx);
92
+ }
93
+
94
+
95
+ function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
96
+ return _registry.getObjectInfo(stakeNftId).parentNftId;
97
+ }
98
+
99
+
100
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
101
+ bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
102
+ if (data.length > 0) {
103
+ return abi.decode(data, (IStaking.TargetInfo));
104
+ }
105
+ }
106
+
107
+
108
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
109
+ bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
110
+ if (data.length > 0) {
111
+ return abi.decode(data, (IStaking.StakeInfo));
112
+ }
113
+ }
114
+
115
+
116
+ /// @dev get the reward rate that applies to the specified stake nft id.
117
+ function getTargetRewardRate(NftId stakeNftId) external view returns (NftId targetNftId, UFixed rewardRate) {
118
+ targetNftId = getTargetNftId(stakeNftId);
119
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
120
+ }
121
+
122
+
123
+ /// @dev get the reward rate for the specified target nft id.
124
+ function getRewardRate(NftId targetNftId) external view returns (UFixed rewardRate) {
125
+ return getTargetInfo(targetNftId).rewardRate;
126
+ }
127
+
128
+ /// @dev returns the current reward reserve balance for the specified target.
129
+ function getReserveBalance(NftId targetNftId) external view returns (Amount rewardReserveBalance) {
130
+ return _store.getReserveBalance(targetNftId);
131
+ }
132
+
133
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
134
+ return _store.getStakeBalance(nftId);
135
+ }
136
+
137
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
138
+ return _store.getRewardBalance(nftId);
139
+ }
140
+
141
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
142
+ return _store.getBalanceUpdatedAt(nftId);
143
+ }
144
+
145
+ function getBalanceUpdatedIn(NftId nftId) external view returns (Blocknumber blocknumber) {
146
+ return _store.getBalanceUpdatedIn(nftId);
147
+ }
148
+
149
+ function getTotalValueLocked(NftId nftId, address token) external view returns (Amount totalValueLocked) {
150
+ return _store.getTotalValueLocked(nftId, token);
151
+ }
152
+
153
+ function getRequiredStakeBalance(NftId nftId) external view returns (Amount requiredStakedAmount) {
154
+ return _store.getRequiredStakeBalance(nftId);
155
+ }
156
+
157
+ function getTargetBalances(NftId stakeNftId)
158
+ public
159
+ view
160
+ returns (
161
+ Amount balanceAmount,
162
+ Amount stakeAmount,
163
+ Amount rewardAmount,
164
+ Blocknumber lastUpdatedIn
165
+ )
166
+ {
167
+ (
168
+ balanceAmount,
169
+ stakeAmount,
170
+ rewardAmount,
171
+ lastUpdatedIn
172
+ ) = _store.getTargetBalances(stakeNftId);
173
+ }
174
+
175
+ function getStakeBalances(NftId stakeNftId)
176
+ external
177
+ view
178
+ returns (
179
+ Amount stakeAmount,
180
+ Amount rewardAmount,
181
+ Timestamp lastUpdatedAt
182
+ )
183
+ {
184
+ (
185
+ stakeAmount,
186
+ rewardAmount,
187
+ lastUpdatedAt
188
+ ) = _store.getStakeBalances(stakeNftId);
189
+ }
190
+ }
@@ -0,0 +1,393 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {IRegisterable} from "../shared/IRegisterable.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {RegistryService} from "../registry/RegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
11
+ import {IStakingService} from "./IStakingService.sol";
12
+ import {NftId, NftIdLib} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {Service} from "../shared/Service.sol";
16
+ import {TokenHandler} from "../shared/TokenHandler.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
18
+
19
+
20
+ contract StakingService is
21
+ Service,
22
+ IStakingService
23
+ {
24
+ // TODO decide and implement string spec for location calculation
25
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.StakingService.sol")) - 1)) & ~bytes32(uint256(0xff));
26
+ bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
27
+
28
+ struct StakingServiceStorage {
29
+ RegistryService _registryService;
30
+ IStaking _staking;
31
+ IERC20Metadata _dip;
32
+ TokenHandler _tokenHandler;
33
+ }
34
+
35
+ function createInstanceTarget(
36
+ NftId targetNftId,
37
+ Seconds initialLockingPeriod,
38
+ UFixed initialRewardRate
39
+ )
40
+ external
41
+ virtual
42
+ restricted()
43
+ {
44
+ uint256 chainId = block.chainid;
45
+ _getStakingServiceStorage()._staking.registerTarget(
46
+ targetNftId,
47
+ INSTANCE(),
48
+ chainId,
49
+ initialLockingPeriod,
50
+ initialRewardRate);
51
+
52
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
53
+ }
54
+
55
+
56
+ function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod)
57
+ external
58
+ virtual
59
+ restricted()
60
+ {
61
+ _getStakingServiceStorage()._staking.setLockingPeriod(
62
+ instanceNftId,
63
+ lockingPeriod);
64
+ }
65
+
66
+
67
+ function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate)
68
+ external
69
+ virtual
70
+ restricted()
71
+ {
72
+ _getStakingServiceStorage()._staking.setRewardRate(
73
+ instanceNftId,
74
+ rewardRate);
75
+ }
76
+
77
+
78
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount)
79
+ external
80
+ virtual
81
+ restricted()
82
+ returns (Amount newBalance)
83
+ {
84
+ return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
85
+ }
86
+
87
+
88
+ function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount)
89
+ external
90
+ virtual
91
+ restricted()
92
+ returns (Amount newBalance)
93
+ {
94
+ address rewardProvider = msg.sender;
95
+ return _refillRewardReserves(targetNftId, rewardProvider, dipAmount);
96
+ }
97
+
98
+
99
+ function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount)
100
+ external
101
+ virtual
102
+ restricted()
103
+ returns (Amount newBalance)
104
+ {
105
+ // update reward reserve book keeping
106
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
107
+ newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
108
+
109
+ // transfer withdrawal amount to target owner
110
+ address instanceOwner = getRegistry().ownerOf(instanceNftId);
111
+ emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
112
+ $._staking.transferDipAmount(
113
+ instanceOwner,
114
+ dipAmount);
115
+ }
116
+
117
+
118
+ /// @dev creates a new stake to the specified target nft id with the provided dip amount
119
+ /// the target nft id must have been registered as an active staking target prior to this call
120
+ /// the sender of this transaction becomes the stake owner via the minted nft.
121
+ /// to create the new stake balance and allowance of the staker need to cover the dip amount
122
+ /// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
123
+ /// this is a permissionless function.
124
+ function create(
125
+ NftId targetNftId,
126
+ Amount dipAmount
127
+ )
128
+ external
129
+ virtual
130
+ restricted()
131
+ returns (
132
+ NftId stakeNftId
133
+ )
134
+ {
135
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
136
+ address stakeOwner = msg.sender;
137
+
138
+ // target nft id checks are performed in $._staking.createStake() below
139
+ // register new stake object with registry
140
+ stakeNftId = $._registryService.registerStake(
141
+ IRegistry.ObjectInfo({
142
+ nftId: NftIdLib.zero(),
143
+ parentNftId: targetNftId,
144
+ objectType: STAKE(),
145
+ isInterceptor: false,
146
+ objectAddress: address(0),
147
+ initialOwner: stakeOwner,
148
+ data: ""
149
+ }));
150
+
151
+ // create stake info with staking
152
+ $._staking.createStake(
153
+ stakeNftId,
154
+ targetNftId,
155
+ dipAmount);
156
+
157
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
158
+
159
+ // collect staked dip by staking
160
+ $._staking.collectDipAmount(
161
+ stakeOwner,
162
+ dipAmount);
163
+ }
164
+
165
+
166
+ function stake(
167
+ NftId stakeNftId,
168
+ Amount dipAmount
169
+ )
170
+ external
171
+ virtual
172
+ restricted()
173
+ onlyNftOwner(stakeNftId)
174
+ {
175
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
176
+ address stakeOwner = msg.sender;
177
+
178
+ // add additional staked dips by staking
179
+ Amount stakeBalance = $._staking.stake(
180
+ stakeNftId,
181
+ dipAmount);
182
+
183
+ // collect staked dip by staking
184
+ if (dipAmount.gtz()) {
185
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
186
+ $._staking.collectDipAmount(
187
+ stakeOwner,
188
+ dipAmount);
189
+ }
190
+ }
191
+
192
+
193
+ function restakeToNewTarget(
194
+ NftId stakeNftId,
195
+ NftId newTargetNftId
196
+ )
197
+ external
198
+ virtual
199
+ restricted()
200
+ onlyNftOwner(stakeNftId)
201
+ returns (
202
+ NftId newStakeNftId
203
+ )
204
+ {
205
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
206
+ // TODO implement
207
+ }
208
+
209
+
210
+ function updateRewards(
211
+ NftId stakeNftId
212
+ )
213
+ external
214
+ virtual
215
+ restricted()
216
+ {
217
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
218
+ $._staking.updateRewards(stakeNftId);
219
+
220
+ emit LogStakingServiceRewardsUpdated(stakeNftId);
221
+ }
222
+
223
+
224
+ function claimRewards(NftId stakeNftId)
225
+ external
226
+ virtual
227
+ restricted()
228
+ onlyNftOwner(stakeNftId)
229
+ {
230
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
231
+ address stakeOwner = msg.sender;
232
+
233
+ Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
234
+ emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
235
+ $._staking.transferDipAmount(
236
+ stakeOwner,
237
+ rewardsClaimedAmount);
238
+ }
239
+
240
+
241
+ function unstake(NftId stakeNftId)
242
+ external
243
+ virtual
244
+ restricted()
245
+ onlyNftOwner(stakeNftId)
246
+ {
247
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
248
+ address stakeOwner = msg.sender;
249
+
250
+ (
251
+ Amount unstakedAmount,
252
+ Amount rewardsClaimedAmount
253
+ ) = $._staking.unstake(stakeNftId);
254
+
255
+ Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
256
+ emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
257
+ $._staking.transferDipAmount(
258
+ stakeOwner,
259
+ totalAmount);
260
+ }
261
+
262
+
263
+ function setTotalValueLocked(
264
+ NftId targetNftId,
265
+ address token,
266
+ Amount amount
267
+ )
268
+ external
269
+ virtual
270
+ restricted()
271
+ {
272
+ // TODO implement
273
+
274
+ }
275
+
276
+ //--- view functions ----------------------------------------------------//
277
+
278
+ function getDipToken()
279
+ external
280
+ virtual
281
+ returns (IERC20Metadata dip)
282
+ {
283
+ return _getStakingServiceStorage()._dip;
284
+ }
285
+
286
+
287
+ function getTokenHandler()
288
+ external
289
+ virtual
290
+ returns (TokenHandler tokenHandler)
291
+ {
292
+ return _getStakingServiceStorage()._tokenHandler;
293
+ }
294
+
295
+
296
+ function getStaking()
297
+ external
298
+ virtual
299
+ returns (IStaking staking)
300
+ {
301
+ return _getStakingServiceStorage()._staking;
302
+ }
303
+
304
+ //--- internal functions ------------------------------------------------//
305
+
306
+ function _initialize(
307
+ address owner,
308
+ bytes memory data
309
+ )
310
+ internal
311
+ virtual override
312
+ initializer()
313
+ {
314
+ (
315
+ address authority,
316
+ address registryAddress,
317
+ address stakingAddress
318
+ ) = abi.decode(data, (address, address, address));
319
+
320
+ _initializeService(registryAddress, authority, owner);
321
+
322
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
323
+ $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
324
+ $._staking = _registerStaking(stakingAddress);
325
+ $._dip = $._staking.getToken();
326
+ $._tokenHandler = $._staking.getTokenHandler();
327
+
328
+ _registerInterface(type(IStakingService).interfaceId);
329
+ }
330
+
331
+
332
+ function _registerStaking(
333
+ address stakingAddress
334
+ )
335
+ internal
336
+ returns (IStaking staking)
337
+ {
338
+ // check if provided staking contract is already registred
339
+ // staking contract may have been already registered by a previous major relase
340
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
341
+ if (stakingInfo.nftId.gtz()) {
342
+ // registered object but wrong type
343
+ if (stakingInfo.objectType != STAKING()) {
344
+ revert ErrorStakingServiceNotStaking(stakingAddress);
345
+ }
346
+
347
+ // return correctly registered staking contract
348
+ return IStaking(stakingAddress);
349
+ }
350
+
351
+ // check that contract implements IStaking
352
+ if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
353
+ revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
354
+ }
355
+
356
+ address owner = msg.sender;
357
+ _getStakingServiceStorage()._registryService.registerStaking(
358
+ IRegisterable(stakingAddress),
359
+ owner);
360
+
361
+ return IStaking(stakingAddress);
362
+ }
363
+
364
+
365
+ function _refillRewardReserves(NftId targetNftId, address rewardProvider, Amount dipAmount)
366
+ internal
367
+ virtual
368
+ returns (Amount newBalance)
369
+ {
370
+ // update reward reserve book keeping
371
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
372
+ newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
373
+
374
+ emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
375
+
376
+ // collect reward dip from provider
377
+ $._staking.collectDipAmount(
378
+ rewardProvider,
379
+ dipAmount);
380
+ }
381
+
382
+
383
+ function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
384
+ assembly {
385
+ $.slot := STAKING_SERVICE_LOCATION_V1
386
+ }
387
+ }
388
+
389
+
390
+ function _getDomain() internal pure override returns(ObjectType) {
391
+ return STAKING();
392
+ }
393
+ }
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
6
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
+ import {StakingService} from "./StakingService.sol";
8
+
9
+ contract StakingServiceManager is
10
+ ProxyManager
11
+ {
12
+
13
+ StakingService private _stakingService;
14
+
15
+ /// @dev initializes proxy manager with service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ {
22
+ StakingService svc = new StakingService();
23
+ bytes memory data = abi.encode(
24
+ authority,
25
+ registryAddress,
26
+ IRegistry(registryAddress).getStakingAddress());
27
+ IVersionable versionable = initialize(
28
+ registryAddress,
29
+ address(svc),
30
+ data,
31
+ salt);
32
+
33
+ _stakingService = StakingService(address(versionable));
34
+ }
35
+
36
+ //--- view functions ----------------------------------------------------//
37
+ function getStakingService()
38
+ external
39
+ view
40
+ returns (StakingService)
41
+ {
42
+ return _stakingService;
43
+ }
44
+ }