@etherisc/gif-next 0.0.2-c37bcc5-708 → 0.0.2-c38863c-705

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 (580) hide show
  1. package/README.md +75 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared/AccessManagerCustom.sol/AccessManagerCustom.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +533 -596
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +144 -544
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +419 -259
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +154 -108
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +201 -261
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +256 -62
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +188 -107
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +226 -117
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +208 -236
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1462 -241
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1044 -316
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +247 -275
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +105 -95
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +614 -538
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +81 -10
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +177 -177
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +129 -83
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +350 -194
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +148 -94
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +218 -28
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +476 -311
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +660 -518
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -93
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +151 -172
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +96 -90
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +438 -220
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +148 -110
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -8
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +320 -15
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +377 -103
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +148 -82
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +79 -7
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +480 -293
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +148 -94
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +239 -292
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +122 -116
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  180. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +659 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +732 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -55
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +84 -151
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +589 -116
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1677 -156
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +132 -278
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +101 -75
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  214. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +583 -502
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +138 -110
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +63 -104
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +554 -218
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +67 -1
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +63 -104
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +125 -22
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +97 -101
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +202 -398
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -109
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +161 -184
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -90
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +241 -147
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +283 -6
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +66 -2
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  354. package/contracts/accounting/AccountingService.sol +262 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +45 -0
  357. package/contracts/authorization/AccessAdmin.sol +689 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  359. package/contracts/authorization/Authorization.sol +337 -0
  360. package/contracts/authorization/IAccess.sol +49 -0
  361. package/contracts/authorization/IAccessAdmin.sol +143 -0
  362. package/contracts/authorization/IAuthorization.sol +74 -0
  363. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  364. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  365. package/contracts/distribution/BasicDistribution.sol +141 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  367. package/contracts/distribution/Distribution.sol +153 -125
  368. package/contracts/distribution/DistributionService.sol +175 -115
  369. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  370. package/contracts/distribution/IDistributionComponent.sol +26 -40
  371. package/contracts/distribution/IDistributionService.sol +42 -22
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +90 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +437 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  384. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  385. package/contracts/instance/BundleSet.sol +130 -0
  386. package/contracts/instance/IInstance.sol +34 -46
  387. package/contracts/instance/IInstanceService.sol +31 -40
  388. package/contracts/instance/Instance.sol +143 -132
  389. package/contracts/instance/InstanceAdmin.sol +346 -240
  390. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  391. package/contracts/instance/InstanceReader.sol +295 -48
  392. package/contracts/instance/InstanceService.sol +210 -168
  393. package/contracts/instance/InstanceServiceManager.sol +8 -13
  394. package/contracts/instance/InstanceStore.sol +35 -18
  395. package/contracts/instance/RiskSet.sol +118 -0
  396. package/contracts/instance/base/BalanceStore.sol +11 -6
  397. package/contracts/instance/base/Cloneable.sol +2 -25
  398. package/contracts/instance/base/ObjectCounter.sol +1 -2
  399. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  400. package/contracts/instance/base/ObjectSet.sol +77 -0
  401. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  402. package/contracts/instance/module/IBundle.sol +1 -1
  403. package/contracts/instance/module/IComponents.sol +14 -15
  404. package/contracts/instance/module/IDistribution.sol +2 -2
  405. package/contracts/instance/module/IPolicy.sol +26 -25
  406. package/contracts/instance/module/IRisk.sol +3 -0
  407. package/contracts/mock/Dip.sol +1 -1
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  410. package/contracts/oracle/IOracle.sol +16 -0
  411. package/contracts/oracle/IOracleComponent.sol +2 -1
  412. package/contracts/oracle/IOracleService.sol +2 -1
  413. package/contracts/oracle/Oracle.sol +64 -53
  414. package/contracts/oracle/OracleService.sol +114 -81
  415. package/contracts/oracle/OracleServiceManager.sol +8 -11
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  418. package/contracts/pool/BundleService.sol +207 -108
  419. package/contracts/pool/BundleServiceManager.sol +8 -11
  420. package/contracts/pool/IBundleService.sol +31 -22
  421. package/contracts/pool/IPoolComponent.sol +20 -70
  422. package/contracts/pool/IPoolService.sol +90 -75
  423. package/contracts/pool/Pool.sol +209 -163
  424. package/contracts/pool/PoolLib.sol +216 -0
  425. package/contracts/pool/PoolService.sol +553 -249
  426. package/contracts/pool/PoolServiceManager.sol +6 -9
  427. package/contracts/product/ApplicationService.sol +88 -83
  428. package/contracts/product/ApplicationServiceManager.sol +6 -6
  429. package/contracts/product/BasicProduct.sol +51 -0
  430. package/contracts/product/BasicProductAuthorization.sol +56 -0
  431. package/contracts/product/ClaimService.sol +370 -180
  432. package/contracts/product/ClaimServiceManager.sol +6 -6
  433. package/contracts/product/IApplicationService.sol +6 -2
  434. package/contracts/product/IClaimService.sol +44 -8
  435. package/contracts/product/IPolicyService.sol +53 -36
  436. package/contracts/product/IPricingService.sol +10 -10
  437. package/contracts/product/IProductComponent.sol +29 -9
  438. package/contracts/product/{IProductService.sol → IRiskService.sol} +6 -9
  439. package/contracts/product/PolicyService.sol +481 -274
  440. package/contracts/product/PolicyServiceLib.sol +65 -0
  441. package/contracts/product/PolicyServiceManager.sol +6 -9
  442. package/contracts/product/PricingService.sol +69 -66
  443. package/contracts/product/PricingServiceManager.sol +6 -9
  444. package/contracts/product/Product.sol +231 -139
  445. package/contracts/product/RiskService.sol +144 -0
  446. package/contracts/product/RiskServiceManager.sol +39 -0
  447. package/contracts/registry/ChainNft.sol +72 -40
  448. package/contracts/registry/IRegistry.sol +74 -32
  449. package/contracts/registry/IRegistryService.sol +3 -10
  450. package/contracts/registry/IRelease.sol +26 -0
  451. package/contracts/registry/ITransferInterceptor.sol +1 -2
  452. package/contracts/registry/Registry.sol +368 -214
  453. package/contracts/registry/RegistryAdmin.sol +292 -175
  454. package/contracts/registry/RegistryService.sol +46 -71
  455. package/contracts/registry/RegistryServiceManager.sol +5 -10
  456. package/contracts/registry/ReleaseAdmin.sol +245 -0
  457. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  458. package/contracts/registry/ReleaseRegistry.sol +511 -0
  459. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  460. package/contracts/registry/TokenRegistry.sol +8 -10
  461. package/contracts/shared/Component.sol +74 -128
  462. package/contracts/shared/ComponentService.sol +458 -384
  463. package/contracts/shared/ComponentServiceManager.sol +10 -7
  464. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  465. package/contracts/shared/ContractLib.sol +253 -0
  466. package/contracts/shared/IComponent.sol +8 -17
  467. package/contracts/shared/IComponentService.sol +49 -39
  468. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  469. package/contracts/shared/IKeyValueStore.sol +1 -0
  470. package/contracts/shared/ILifecycle.sol +3 -2
  471. package/contracts/shared/INftOwnable.sol +2 -0
  472. package/contracts/shared/IPolicyHolder.sol +12 -22
  473. package/contracts/shared/IRegisterable.sol +23 -1
  474. package/contracts/shared/IService.sol +10 -5
  475. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  476. package/contracts/shared/InstanceLinkedComponent.sol +96 -43
  477. package/contracts/shared/KeyValueStore.sol +7 -3
  478. package/contracts/shared/Lifecycle.sol +30 -72
  479. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  480. package/contracts/shared/NftOwnable.sol +31 -11
  481. package/contracts/shared/PolicyHolder.sol +17 -57
  482. package/contracts/shared/Registerable.sol +55 -21
  483. package/contracts/shared/RegistryLinked.sol +9 -14
  484. package/contracts/shared/Service.sol +28 -40
  485. package/contracts/shared/TokenHandler.sol +309 -26
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  487. package/contracts/staking/IStaking.sol +8 -11
  488. package/contracts/staking/IStakingService.sol +30 -14
  489. package/contracts/staking/StakeManagerLib.sol +70 -25
  490. package/contracts/staking/Staking.sol +122 -147
  491. package/contracts/staking/StakingLifecycle.sol +23 -0
  492. package/contracts/staking/StakingManager.sol +10 -12
  493. package/contracts/staking/StakingReader.sol +24 -21
  494. package/contracts/staking/StakingService.sol +105 -81
  495. package/contracts/staking/StakingServiceManager.sol +8 -8
  496. package/contracts/staking/StakingStore.sol +93 -60
  497. package/contracts/staking/TargetManagerLib.sol +7 -3
  498. package/contracts/type/Amount.sol +27 -5
  499. package/contracts/type/Blocknumber.sol +7 -1
  500. package/contracts/type/ClaimId.sol +6 -1
  501. package/contracts/type/Key32.sol +2 -2
  502. package/contracts/type/Key32Set.sol +62 -0
  503. package/contracts/type/NftId.sol +7 -0
  504. package/contracts/type/ObjectType.sol +196 -61
  505. package/contracts/type/PayoutId.sol +10 -10
  506. package/contracts/type/Referral.sol +1 -0
  507. package/contracts/type/RiskId.sol +38 -6
  508. package/contracts/type/RoleId.sol +117 -81
  509. package/contracts/type/Seconds.sol +21 -1
  510. package/contracts/type/Selector.sol +107 -0
  511. package/contracts/type/StateId.sol +15 -1
  512. package/contracts/type/String.sol +53 -0
  513. package/contracts/type/Timestamp.sol +10 -5
  514. package/contracts/type/UFixed.sol +40 -121
  515. package/contracts/type/Version.sol +18 -6
  516. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  517. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  518. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  519. package/package.json +9 -6
  520. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  522. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  523. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  524. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  526. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  528. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  529. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  530. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  531. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  532. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  533. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  534. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  535. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  536. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  537. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  538. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  539. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  540. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  542. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  543. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  544. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  545. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  546. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  547. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  548. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  549. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  550. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  551. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  552. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  553. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  554. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  555. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  556. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  557. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  559. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  561. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  562. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  563. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  564. package/contracts/instance/BundleManager.sol +0 -126
  565. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  566. package/contracts/instance/base/ObjectManager.sol +0 -82
  567. package/contracts/instance/module/IAccess.sol +0 -46
  568. package/contracts/product/ProductService.sol +0 -124
  569. package/contracts/product/ProductServiceManager.sol +0 -42
  570. package/contracts/registry/ReleaseManager.sol +0 -600
  571. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  572. package/contracts/shared/AccessManagerCustom.sol +0 -736
  573. package/contracts/shared/AccessManagerExtended.sol +0 -470
  574. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  575. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  576. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  577. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  578. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  579. package/contracts/shared/InitializableCustom.sol +0 -177
  580. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,30 +1,33 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount, AmountLib} from "../type/Amount.sol";
5
- import {ChainNft} from "../registry/ChainNft.sol";
6
- import {Component} from "../shared/Component.sol";
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
7
6
  import {IRegistry} from "../registry/IRegistry.sol";
8
7
  import {IRegistryService} from "../registry/IRegistryService.sol";
8
+ import {IRelease} from "../registry/IRelease.sol";
9
9
  import {IStaking} from "./IStaking.sol";
10
- import {IVersionable} from "../shared/IVersionable.sol";
11
- import {Key32} from "../type/Key32.sol";
12
- import {KEEP_STATE} from "../type/StateId.sol";
13
- import {LibNftIdSet} from "../type/NftIdSet.sol";
14
- import {NftId, NftIdLib} from "../type/NftId.sol";
15
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
16
- import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
17
- import {Seconds, SecondsLib} from "../type/Seconds.sol";
10
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
11
+
12
+ import {Amount, AmountLib} from "../type/Amount.sol";
13
+ import {Component} from "../shared/Component.sol";
14
+ import {IComponent} from "../shared/IComponent.sol";
15
+ import {IComponentService} from "../shared/IComponentService.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ObjectType, COMPONENT, STAKING} from "../type/ObjectType.sol";
18
+ import {Seconds} from "../type/Seconds.sol";
19
+ import {Registerable} from "../shared/Registerable.sol";
18
20
  import {StakeManagerLib} from "./StakeManagerLib.sol";
19
21
  import {StakingReader} from "./StakingReader.sol";
20
22
  import {StakingStore} from "./StakingStore.sol";
21
23
  import {TargetManagerLib} from "./TargetManagerLib.sol";
22
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
24
+ import {Timestamp} from "../type/Timestamp.sol";
23
25
  import {TokenHandler} from "../shared/TokenHandler.sol";
26
+ import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
24
27
  import {TokenRegistry} from "../registry/TokenRegistry.sol";
25
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
26
- import {Version, VersionLib} from "../type/Version.sol";
27
- import {Versionable} from "../shared/Versionable.sol";
28
+ import {UFixed} from "../type/UFixed.sol";
29
+ import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
30
+ import {Versionable} from "../upgradeability/Versionable.sol";
28
31
 
29
32
  contract Staking is
30
33
  Component,
@@ -32,14 +35,13 @@ contract Staking is
32
35
  IStaking
33
36
  {
34
37
  string public constant CONTRACT_NAME = "Staking";
35
- uint8 private constant GIF_MAJOR_VERSION = 3;
36
38
 
37
39
  // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Staking.sol")) - 1)) & ~bytes32(uint256(0xff));
38
40
  bytes32 public constant STAKING_LOCATION_V1 = 0xafe8d4462b2ed26a47154f4b8f6d1497d2f772496965791d25bd456e342b7f00;
39
41
 
40
42
  struct StakingStorage {
41
- IRegistryService _registryService;
42
43
  TokenRegistry _tokenRegistry;
44
+ TokenHandler _tokenHandler;
43
45
  StakingStore _store;
44
46
  StakingReader _reader;
45
47
  NftId _protocolNftId;
@@ -55,28 +57,42 @@ contract Staking is
55
57
 
56
58
 
57
59
  modifier onlyTarget(NftId targetNftId) {
58
- if (!_getStakingStorage()._store.getTargetManager().exists(targetNftId)) {
60
+ if (!_getStakingStorage()._store.getTargetNftIdSet().exists(targetNftId)) {
59
61
  revert ErrorStakingNotTarget(targetNftId);
60
62
  }
61
63
  _;
62
64
  }
63
65
 
66
+ function initializeTokenHandler()
67
+ external
68
+ {
69
+ if (msg.sender != address(getRegistry())) {
70
+ revert ErrorStakingNotRegistry(msg.sender);
71
+ }
64
72
 
65
- // from Versionable
66
- function getVersion()
67
- public
68
- pure
69
- virtual override (IVersionable, Versionable)
70
- returns(Version)
73
+ StakingStorage storage $ = _getStakingStorage();
74
+ $._tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
75
+ address(getRegistry()),
76
+ address(this),
77
+ address(getToken()),
78
+ getRegistry().getAuthority());
79
+ }
80
+
81
+
82
+ function approveTokenHandler(IERC20Metadata token, Amount amount)
83
+ public
84
+ restricted()
85
+ onlyOwner()
71
86
  {
72
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
87
+ _approveTokenHandler(token, amount);
73
88
  }
74
89
 
90
+
75
91
  // set/update staking reader
76
92
  function setStakingReader(StakingReader stakingReader)
77
93
  external
78
94
  virtual
79
- onlyOwner
95
+ onlyOwner()
80
96
  {
81
97
  if(stakingReader.getStaking() != IStaking(this)) {
82
98
  revert ErrorStakingStakingReaderStakingMismatch(address(stakingReader.getStaking()));
@@ -90,7 +106,7 @@ contract Staking is
90
106
  function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
91
107
  external
92
108
  virtual
93
- onlyOwner
109
+ onlyOwner()
94
110
  {
95
111
  StakingStorage storage $ = _getStakingStorage();
96
112
 
@@ -104,8 +120,6 @@ contract Staking is
104
120
  emit LogStakingStakingRateSet(chainId, token, oldStakingRate, stakingRate);
105
121
  }
106
122
 
107
- // reward management
108
-
109
123
  // target management
110
124
 
111
125
  function registerTarget(
@@ -117,7 +131,7 @@ contract Staking is
117
131
  )
118
132
  external
119
133
  virtual
120
- // restricted // staking service access
134
+ restricted()
121
135
  {
122
136
  TargetManagerLib.checkTargetParameters(
123
137
  getRegistry(),
@@ -143,7 +157,7 @@ contract Staking is
143
157
  )
144
158
  external
145
159
  virtual
146
- // TODO add restricted // only staking service
160
+ restricted()
147
161
  onlyTarget(targetNftId)
148
162
  {
149
163
  (
@@ -165,7 +179,7 @@ contract Staking is
165
179
  function setRewardRate(NftId targetNftId, UFixed rewardRate)
166
180
  external
167
181
  virtual
168
- // TODO add restricted // only staking service
182
+ restricted()
169
183
  onlyTarget(targetNftId)
170
184
  {
171
185
  (
@@ -185,7 +199,7 @@ contract Staking is
185
199
  function refillRewardReserves(NftId targetNftId, Amount dipAmount)
186
200
  external
187
201
  virtual
188
- // TODO add restricted // only for target locking
202
+ restricted()
189
203
  returns (Amount newBalance)
190
204
  {
191
205
  // update book keeping of reward reserves
@@ -197,8 +211,7 @@ contract Staking is
197
211
  function withdrawRewardReserves(NftId targetNftId, Amount dipAmount)
198
212
  external
199
213
  virtual
200
- // TODO add restricted // only staking service
201
- // onlyNftOwner(targetNftId)
214
+ restricted()
202
215
  returns (Amount newBalance)
203
216
  {
204
217
  // update book keeping of reward reserves
@@ -210,7 +223,7 @@ contract Staking is
210
223
  function increaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
211
224
  external
212
225
  virtual
213
- // restricted() // only pool service
226
+ restricted() // only pool service
214
227
  returns (Amount newBalance)
215
228
  {
216
229
  StakingStorage storage $ = _getStakingStorage();
@@ -223,7 +236,7 @@ contract Staking is
223
236
  function decreaseTotalValueLocked(NftId targetNftId, address token, Amount amount)
224
237
  external
225
238
  virtual
226
- // restricted() // only pool service
239
+ restricted() // only pool service
227
240
  returns (Amount newBalance)
228
241
  {
229
242
  StakingStorage storage $ = _getStakingStorage();
@@ -236,6 +249,7 @@ contract Staking is
236
249
  function registerRemoteTarget(NftId targetNftId, TargetInfo memory targetInfo)
237
250
  external
238
251
  virtual
252
+ restricted()
239
253
  onlyOwner // or CCIP
240
254
  {
241
255
 
@@ -244,6 +258,7 @@ contract Staking is
244
258
  function updateRemoteTvl(NftId targetNftId, address token, Amount amount)
245
259
  external
246
260
  virtual
261
+ restricted()
247
262
  onlyOwner // or CCIP
248
263
  {
249
264
 
@@ -258,7 +273,7 @@ contract Staking is
258
273
  )
259
274
  external
260
275
  virtual
261
- // TODO add restricted() // only staking service
276
+ restricted() // only staking service
262
277
  {
263
278
  StakingStorage storage $ = _getStakingStorage();
264
279
  Timestamp lockedUntil = StakeManagerLib.checkCreateParameters(
@@ -286,51 +301,17 @@ contract Staking is
286
301
  )
287
302
  external
288
303
  virtual
289
- // TODO add restricted() // only staking service
304
+ restricted() // only staking service
290
305
  onlyStake(stakeNftId)
291
306
  returns (Amount stakeBalance)
292
307
  {
293
308
  StakingStorage storage $ = _getStakingStorage();
294
-
295
- // check that target is active for staking
296
- (
297
- UFixed rewardRate,
298
- Seconds lockingPeriod
299
- ) = StakeManagerLib.checkStakeParameters(
300
- $._reader,
301
- stakeNftId);
302
-
303
- // calculate new rewards (if any)
304
- (
305
- Amount rewardIncrementAmount,
306
- Amount currentTotalDipAmount
307
- ) = StakeManagerLib.calculateRewardIncrease(
308
- $._reader,
309
+ stakeBalance = StakeManagerLib.stake(
310
+ getRegistry(),
311
+ $._reader,
312
+ $._store,
309
313
  stakeNftId,
310
- rewardRate);
311
-
312
- stakeBalance = currentTotalDipAmount + stakeAmount;
313
-
314
- // TODO check that additional dip, rewards and rewards increment
315
- // are still ok with max target staking amount
316
- NftId targetNftId = getRegistry().getObjectInfo(stakeNftId).parentNftId;
317
-
318
- $._store.restakeRewards(
319
- stakeNftId,
320
- targetNftId,
321
- rewardIncrementAmount);
322
-
323
- $._store.increaseStake(
324
- stakeNftId,
325
- targetNftId,
326
314
  stakeAmount);
327
-
328
- // update locked until with target locking period
329
- $._store.update(
330
- stakeNftId,
331
- StakeInfo({
332
- lockedUntil: TimestampLib.blockTimestamp().addSeconds(
333
- lockingPeriod)}));
334
315
  }
335
316
 
336
317
 
@@ -340,7 +321,7 @@ contract Staking is
340
321
  )
341
322
  external
342
323
  virtual
343
- // TODO add restricted() // only staking service
324
+ restricted() // only staking service
344
325
  onlyStake(stakeNftId)
345
326
  returns (NftId newStakeNftId)
346
327
  {
@@ -348,13 +329,13 @@ contract Staking is
348
329
  StakingStorage storage $ = _getStakingStorage();
349
330
 
350
331
  // TODO implement
351
- }
332
+ }
352
333
 
353
334
 
354
335
  function updateRewards(NftId stakeNftId)
355
336
  external
356
337
  virtual
357
- // TODO add restricted() // only staking service
338
+ restricted() // only staking service
358
339
  onlyStake(stakeNftId)
359
340
  {
360
341
  StakingStorage storage $ = _getStakingStorage();
@@ -365,7 +346,7 @@ contract Staking is
365
346
  function claimRewards(NftId stakeNftId)
366
347
  external
367
348
  virtual
368
- // TODO add restricted() // only staking service
349
+ restricted() // only staking service
369
350
  onlyStake(stakeNftId)
370
351
  returns (
371
352
  Amount rewardsClaimedAmount
@@ -390,16 +371,17 @@ contract Staking is
390
371
  function unstake(NftId stakeNftId)
391
372
  external
392
373
  virtual
393
- // TODO add restricted() // only staking service
374
+ restricted() // only staking service
394
375
  onlyStake(stakeNftId)
395
376
  returns (
396
377
  Amount unstakedAmount,
397
378
  Amount rewardsClaimedAmount
398
379
  )
399
380
  {
400
- // TODO add check that stake locking is in the past
401
381
  StakingStorage storage $ = _getStakingStorage();
402
-
382
+
383
+ StakeManagerLib.checkUnstakeParameters($._reader, stakeNftId);
384
+
403
385
  // update rewards since last update
404
386
  NftId targetNftId = _updateRewards($._reader, $._store, stakeNftId);
405
387
 
@@ -418,6 +400,45 @@ contract Staking is
418
400
  }
419
401
 
420
402
 
403
+ //--- view functions ----------------------------------------------------//
404
+
405
+ function getStakingReader() public view returns (StakingReader reader) {
406
+ return _getStakingStorage()._reader;
407
+ }
408
+
409
+ function getStakingStore() external view returns (StakingStore stakingStore) {
410
+ return _getStakingStorage()._store;
411
+ }
412
+
413
+ function getTokenRegistryAddress() external view returns (address tokenRegistry) {
414
+ return address(_getStakingStorage()._tokenRegistry);
415
+ }
416
+
417
+ function getTokenHandler() public virtual override(Component, IComponent) view returns (TokenHandler tokenHandler) {
418
+ return _getStakingStorage()._tokenHandler;
419
+ }
420
+
421
+ // from IRegisterable
422
+ function getRelease()
423
+ public
424
+ pure
425
+ virtual override (IRelease, Registerable)
426
+ returns(VersionPart)
427
+ {
428
+ return VersionPartLib.toVersionPart(3);
429
+ }
430
+
431
+ // from IVersionable
432
+ function getVersion()
433
+ public
434
+ pure
435
+ virtual override (Component, IVersionable, Versionable)
436
+ returns(Version)
437
+ {
438
+ return VersionLib.toVersion(3,0,0);
439
+ }
440
+
441
+ //--- internal functions ------------------------------------------------//
421
442
 
422
443
  function _updateRewards(
423
444
  StakingReader reader,
@@ -443,65 +464,23 @@ contract Staking is
443
464
  }
444
465
 
445
466
 
446
- //--- other functions ---------------------------------------------------//
447
-
448
- function collectDipAmount(address from, Amount dipAmount)
449
- external
450
- // TODO add restricted() // only staking service
451
- {
452
- TokenHandler tokenHandler = getTokenHandler();
453
- address stakingWallet = getWallet();
454
-
455
- StakeManagerLib.checkDipBalanceAndAllowance(
456
- getToken(),
457
- from,
458
- address(tokenHandler),
459
- dipAmount);
460
-
461
- tokenHandler.transfer(from, stakingWallet, dipAmount);
462
- }
463
-
464
-
465
- function transferDipAmount(address to, Amount dipAmount)
466
- external
467
- // TODO add restricted() // only staking service
467
+ function _approveTokenHandler(IERC20Metadata token, Amount amount)
468
+ internal
469
+ virtual override
468
470
  {
469
- TokenHandler tokenHandler = getTokenHandler();
470
- address stakingWallet = getWallet();
471
-
472
- StakeManagerLib.checkDipBalanceAndAllowance(
473
- getToken(),
474
- stakingWallet,
475
- address(tokenHandler),
476
- dipAmount);
477
-
478
- tokenHandler.transfer(stakingWallet, to, dipAmount);
471
+ IComponentService(_getServiceAddress(STAKING())).approveTokenHandler(
472
+ token,
473
+ amount);
479
474
  }
480
475
 
481
476
 
482
- //--- view functions ----------------------------------------------------//
483
-
484
- function getStakingReader() public view returns (StakingReader reader) {
485
- return _getStakingStorage()._reader;
486
- }
487
-
488
- function getStakingStore() external view returns (StakingStore stakingStore) {
489
- return _getStakingStorage()._store;
490
- }
491
-
492
- function getTokenRegistryAddress() external view returns (address tokenRegistry) {
493
- return address(_getStakingStorage()._tokenRegistry);
494
- }
495
-
496
- //--- internal functions ------------------------------------------------//
497
-
498
477
  function _initialize(
499
478
  address owner,
500
479
  bytes memory data
501
480
  )
502
481
  internal
503
482
  virtual override
504
- initializer
483
+ initializer()
505
484
  {
506
485
  (
507
486
  address registryAddress,
@@ -516,10 +495,17 @@ contract Staking is
516
495
  TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
517
496
  address dipTokenAddress = tokenRegistry.getDipTokenAddress();
518
497
 
519
- initializeComponent(
498
+ // wiring to external contracts
499
+ StakingStorage storage $ = _getStakingStorage();
500
+ $._protocolNftId = registry.getProtocolNftId();
501
+ $._store = StakingStore(stakingStoreAddress);
502
+ $._reader = StakingStore(stakingStoreAddress).getStakingReader();
503
+ $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
504
+
505
+ _initializeComponent(
520
506
  authority,
521
507
  registryAddress,
522
- registry.getNftId(),
508
+ registry.getNftId(), // parent nft id
523
509
  CONTRACT_NAME,
524
510
  dipTokenAddress,
525
511
  STAKING(),
@@ -528,17 +514,7 @@ contract Staking is
528
514
  "", // registry data
529
515
  ""); // component data
530
516
 
531
- _createAndSetTokenHandler();
532
-
533
-
534
- // wiring to external contracts
535
- StakingStorage storage $ = _getStakingStorage();
536
- $._protocolNftId = getRegistry().getProtocolNftId();
537
- $._store = StakingStore(stakingStoreAddress);
538
- $._reader = StakingStore(stakingStoreAddress).getStakingReader();
539
- $._tokenRegistry = TokenRegistry(tokenRegistryAddress);
540
-
541
- registerInterface(type(IStaking).interfaceId);
517
+ _registerInterface(type(IStaking).interfaceId);
542
518
  }
543
519
 
544
520
 
@@ -547,5 +523,4 @@ contract Staking is
547
523
  $.slot := STAKING_LOCATION_V1
548
524
  }
549
525
  }
550
-
551
526
  }
@@ -0,0 +1,23 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {TARGET, COMPONENT, STAKE} from "../type/ObjectType.sol";
5
+ import {INITIAL} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract StakingLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(TARGET(), INITIAL());
20
+ setInitialState(COMPONENT(), INITIAL());
21
+ setInitialState(STAKE(), INITIAL());
22
+ }
23
+ }
@@ -1,14 +1,10 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
6
- import {ReleaseManager} from "../registry/ReleaseManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {Staking} from "./Staking.sol";
8
- import {StakingReader} from "./StakingReader.sol";
9
- import {StakingStore} from "./StakingStore.sol";
10
7
 
11
- import {RegistryAdmin} from "../registry/RegistryAdmin.sol";
12
8
 
13
9
  contract StakingManager is
14
10
  ProxyManager
@@ -22,9 +18,9 @@ contract StakingManager is
22
18
  address registry,
23
19
  address tokenRegistry,
24
20
  address stakingStore,
25
- address initialOwner
21
+ address initialOwner,
22
+ bytes32 salt
26
23
  )
27
- ProxyManager(registry)
28
24
  {
29
25
  Staking stakingImplementation = new Staking();
30
26
 
@@ -34,10 +30,12 @@ contract StakingManager is
34
30
  tokenRegistry,
35
31
  stakingStore,
36
32
  initialOwner);
37
-
38
- IVersionable versionable = deploy(
39
- _initialImplementation,
40
- _initializationData);
33
+
34
+ IVersionable versionable = initialize(
35
+ registry,
36
+ _initialImplementation,
37
+ _initializationData,
38
+ salt);
41
39
 
42
40
  _staking = Staking(address(versionable));
43
41
  }
@@ -1,35 +1,34 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../type/Amount.sol";
5
- import {Blocknumber} from "../type/Blocknumber.sol";
6
- import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
7
- import {IComponent} from "../shared/IComponent.sol";
8
- import {InitializableCustom} from "../shared/InitializableCustom.sol";
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
9
6
  import {IRegistry} from "../registry/IRegistry.sol";
10
7
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
11
8
  import {IStaking} from "../staking/IStaking.sol";
12
- import {IVersionable} from "../shared/IVersionable.sol";
9
+
10
+ import {Amount} from "../type/Amount.sol";
11
+ import {Blocknumber} from "../type/Blocknumber.sol";
13
12
  import {NftId} from "../type/NftId.sol";
14
- import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
15
- import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
16
- import {Seconds} from "../type/Seconds.sol";
13
+ import {STAKE, TARGET} from "../type/ObjectType.sol";
17
14
  import {StakingStore} from "./StakingStore.sol";
18
15
  import {Timestamp} from "../type/Timestamp.sol";
19
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
20
17
 
21
18
  contract StakingReader is
22
19
  IRegistryLinked,
23
- InitializableCustom
20
+ Initializable
24
21
  {
25
22
 
26
- error ErrorStakingReaderDependenciesAlreadySet();
23
+ error ErrorStakingReaderUnauthorizedCaler();
27
24
 
25
+ address private _initializeOwner;
28
26
  IRegistry private _registry;
29
27
  IStaking private _staking;
30
28
  StakingStore private _store;
31
29
 
32
- constructor(IRegistry registry) InitializableCustom() {
30
+ constructor(IRegistry registry) {
31
+ _initializeOwner = msg.sender;
33
32
  _registry = registry;
34
33
  }
35
34
 
@@ -38,8 +37,12 @@ contract StakingReader is
38
37
  address stakingStoreAddress
39
38
  )
40
39
  external
41
- initializer
40
+ initializer()
42
41
  {
42
+ if (msg.sender != _initializeOwner) {
43
+ revert ErrorStakingReaderUnauthorizedCaler();
44
+ }
45
+
43
46
  _staking = IStaking(stakingAddress);
44
47
  _store = StakingStore(stakingStoreAddress);
45
48
  }
@@ -60,37 +63,37 @@ contract StakingReader is
60
63
 
61
64
 
62
65
  function isTarget(NftId targetNftId) external view returns (bool) {
63
- return _store.getTargetManager().exists(targetNftId);
66
+ return _store.getTargetNftIdSet().exists(targetNftId);
64
67
  }
65
68
 
66
69
 
67
70
  function targets() external view returns (uint256) {
68
- return _store.getTargetManager().nftIds();
71
+ return _store.getTargetNftIdSet().nftIds();
69
72
  }
70
73
 
71
74
 
72
75
  function getTargetNftId(uint256 idx) external view returns (NftId) {
73
- return _store.getTargetManager().getNftId(idx);
76
+ return _store.getTargetNftIdSet().getNftId(idx);
74
77
  }
75
78
 
76
79
 
77
80
  function isActive(NftId targetNftId) external view returns (bool) {
78
- return _store.getTargetManager().isActive(targetNftId);
81
+ return _store.getTargetNftIdSet().isActive(targetNftId);
79
82
  }
80
83
 
81
84
 
82
85
  function activeTargets() external view returns (uint256) {
83
- return _store.getTargetManager().activeNftIds();
86
+ return _store.getTargetNftIdSet().activeNftIds();
84
87
  }
85
88
 
86
89
 
87
90
  function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
88
- return _store.getTargetManager().getActiveNftId(idx);
91
+ return _store.getTargetNftIdSet().getActiveNftId(idx);
89
92
  }
90
93
 
91
94
 
92
95
  function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
93
- return _registry.getObjectInfo(stakeNftId).parentNftId;
96
+ return _registry.getParentNftId(stakeNftId);
94
97
  }
95
98
 
96
99