@etherisc/gif-next 0.0.2-86f4673-518 → 0.0.2-86fb77b-888

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 (774) hide show
  1. package/README.md +137 -396
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → accounting/IAccountingService.sol/IAccountingService.json} +436 -391
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +323 -524
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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 +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +535 -1368
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +598 -170
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +688 -2543
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1870 -730
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +587 -499
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +327 -145
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  108. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  109. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  111. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  113. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  121. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +317 -309
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +300 -321
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +467 -588
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +392 -391
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  157. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +457 -585
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  159. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +328 -308
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +336 -233
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  173. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +483 -290
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IRiskService.sol/IRiskService.json} +286 -259
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  186. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  187. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +515 -31
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +293 -220
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  202. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/Registry.sol/Registry.json +999 -124
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +377 -430
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +325 -133
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +350 -160
  222. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  223. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  237. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +233 -133
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  241. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +246 -257
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -32
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -14
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -34
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.json +141 -147
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -120
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -106
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +128 -146
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -49
  270. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Service.sol/Service.json +136 -281
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  282. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  283. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  298. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  362. package/contracts/accounting/AccountingService.sol +274 -0
  363. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  364. package/contracts/accounting/IAccountingService.sol +47 -0
  365. package/contracts/authorization/AccessAdmin.sol +679 -0
  366. package/contracts/authorization/AccessAdminLib.sol +678 -0
  367. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  368. package/contracts/authorization/Authorization.sol +190 -0
  369. package/contracts/authorization/IAccess.sol +66 -0
  370. package/contracts/authorization/IAccessAdmin.sol +142 -0
  371. package/contracts/authorization/IAuthorization.sol +26 -0
  372. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  373. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  374. package/contracts/distribution/BasicDistribution.sol +140 -0
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  376. package/contracts/distribution/Distribution.sol +245 -0
  377. package/contracts/distribution/DistributionService.sol +448 -0
  378. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  379. package/contracts/distribution/IDistributionComponent.sol +45 -0
  380. package/contracts/distribution/IDistributionService.sol +115 -0
  381. package/contracts/examples/fire/DamageLevel.sol +59 -0
  382. package/contracts/examples/fire/FirePool.sol +86 -0
  383. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  384. package/contracts/examples/fire/FireProduct.sol +433 -0
  385. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  386. package/contracts/examples/fire/FireUSD.sol +26 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  390. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BaseStore.sol +93 -0
  395. package/contracts/instance/BundleSet.sol +130 -0
  396. package/contracts/instance/IBaseStore.sol +37 -0
  397. package/contracts/instance/IInstance.sol +135 -51
  398. package/contracts/instance/IInstanceService.sol +86 -26
  399. package/contracts/instance/Instance.sol +266 -183
  400. package/contracts/instance/InstanceAdmin.sol +307 -0
  401. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  402. package/contracts/instance/InstanceReader.sol +506 -193
  403. package/contracts/instance/InstanceService.sol +421 -340
  404. package/contracts/instance/InstanceServiceManager.sol +14 -29
  405. package/contracts/instance/InstanceStore.sol +323 -0
  406. package/contracts/instance/ProductStore.sol +290 -0
  407. package/contracts/instance/RiskSet.sol +126 -0
  408. package/contracts/instance/TargetNames.sol +10 -0
  409. package/contracts/instance/base/BalanceStore.sol +121 -0
  410. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  411. package/contracts/instance/base/ObjectCounter.sol +20 -0
  412. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  413. package/contracts/instance/base/ObjectSet.sol +77 -0
  414. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  415. package/contracts/instance/module/IBundle.sol +10 -9
  416. package/contracts/instance/module/IComponents.sol +60 -0
  417. package/contracts/instance/module/IDistribution.sol +25 -10
  418. package/contracts/instance/module/IPolicy.sol +81 -21
  419. package/contracts/instance/module/IRisk.sol +6 -1
  420. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  421. package/contracts/oracle/BasicOracle.sol +44 -0
  422. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  423. package/contracts/oracle/IOracle.sol +41 -0
  424. package/contracts/oracle/IOracleComponent.sol +33 -0
  425. package/contracts/oracle/IOracleService.sol +66 -0
  426. package/contracts/oracle/Oracle.sol +152 -0
  427. package/contracts/oracle/OracleService.sol +310 -0
  428. package/contracts/oracle/OracleServiceManager.sol +39 -0
  429. package/contracts/pool/BasicPool.sol +161 -0
  430. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  431. package/contracts/pool/BundleService.sol +386 -0
  432. package/contracts/pool/BundleServiceManager.sol +39 -0
  433. package/contracts/pool/IBundleService.sol +116 -0
  434. package/contracts/pool/IPoolComponent.sol +62 -0
  435. package/contracts/pool/IPoolService.sol +170 -0
  436. package/contracts/pool/Pool.sol +331 -0
  437. package/contracts/pool/PoolLib.sol +341 -0
  438. package/contracts/pool/PoolService.sol +614 -0
  439. package/contracts/pool/PoolServiceManager.sol +39 -0
  440. package/contracts/product/ApplicationService.sol +327 -0
  441. package/contracts/product/ApplicationServiceManager.sol +38 -0
  442. package/contracts/product/BasicProduct.sol +48 -0
  443. package/contracts/product/BasicProductAuthorization.sol +63 -0
  444. package/contracts/product/ClaimService.sol +626 -0
  445. package/contracts/product/ClaimServiceManager.sol +38 -0
  446. package/contracts/{instance/service → product}/IApplicationService.sol +43 -37
  447. package/contracts/product/IClaimService.sol +136 -0
  448. package/contracts/product/IPolicyService.sol +102 -0
  449. package/contracts/product/IPricingService.sol +40 -0
  450. package/contracts/product/IProductComponent.sol +62 -0
  451. package/contracts/product/IRiskService.sol +48 -0
  452. package/contracts/product/PolicyService.sol +645 -0
  453. package/contracts/product/PolicyServiceLib.sol +139 -0
  454. package/contracts/product/PolicyServiceManager.sol +39 -0
  455. package/contracts/product/PricingService.sol +306 -0
  456. package/contracts/product/PricingServiceManager.sol +39 -0
  457. package/contracts/product/Product.sol +491 -0
  458. package/contracts/product/RiskService.sol +189 -0
  459. package/contracts/product/RiskServiceManager.sol +39 -0
  460. package/contracts/registry/ChainNft.sol +83 -36
  461. package/contracts/registry/IRegistry.sol +106 -33
  462. package/contracts/registry/IRegistryService.sol +38 -41
  463. package/contracts/registry/IRelease.sol +29 -0
  464. package/contracts/registry/ITransferInterceptor.sol +1 -1
  465. package/contracts/registry/Registry.sol +482 -208
  466. package/contracts/registry/RegistryAdmin.sol +173 -0
  467. package/contracts/registry/RegistryAuthorization.sol +337 -0
  468. package/contracts/registry/RegistryService.sol +112 -132
  469. package/contracts/registry/RegistryServiceManager.sol +24 -33
  470. package/contracts/registry/ReleaseAdmin.sol +199 -0
  471. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  472. package/contracts/registry/ReleaseRegistry.sol +525 -0
  473. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  474. package/contracts/registry/TokenRegistry.sol +266 -62
  475. package/contracts/shared/Component.sol +210 -0
  476. package/contracts/shared/ComponentService.sol +691 -0
  477. package/contracts/shared/ComponentServiceManager.sol +38 -0
  478. package/contracts/shared/ContractLib.sol +312 -0
  479. package/contracts/shared/IComponent.sol +58 -0
  480. package/contracts/shared/IComponentService.sol +111 -0
  481. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  482. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  483. package/contracts/shared/INftOwnable.sol +10 -11
  484. package/contracts/shared/IPolicyHolder.sol +23 -14
  485. package/contracts/shared/IRegisterable.sol +22 -1
  486. package/contracts/shared/IRegistryLinked.sol +0 -4
  487. package/contracts/shared/IService.sol +12 -5
  488. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +14 -5
  489. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  490. package/contracts/shared/Lifecycle.sol +88 -0
  491. package/contracts/shared/NftIdSet.sol +65 -0
  492. package/contracts/shared/NftOwnable.sol +43 -104
  493. package/contracts/shared/PolicyHolder.sol +23 -41
  494. package/contracts/shared/Registerable.sol +50 -25
  495. package/contracts/shared/RegistryLinked.sol +11 -37
  496. package/contracts/shared/Service.sol +42 -35
  497. package/contracts/shared/TokenHandler.sol +327 -12
  498. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  499. package/contracts/staking/IStaking.sol +366 -0
  500. package/contracts/staking/IStakingService.sol +127 -0
  501. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  502. package/contracts/staking/Staking.sol +797 -0
  503. package/contracts/staking/StakingLib.sol +195 -0
  504. package/contracts/staking/StakingManager.sol +53 -0
  505. package/contracts/staking/StakingReader.sol +171 -0
  506. package/contracts/staking/StakingService.sol +321 -0
  507. package/contracts/staking/StakingServiceManager.sol +46 -0
  508. package/contracts/staking/StakingStore.sol +1368 -0
  509. package/contracts/staking/TargetHandler.sol +132 -0
  510. package/contracts/staking/TargetManagerLib.sol +234 -0
  511. package/contracts/{types → type}/AddressSet.sol +1 -1
  512. package/contracts/type/Amount.sol +154 -0
  513. package/contracts/{types → type}/Blocknumber.sol +38 -19
  514. package/contracts/type/ChainId.sol +101 -0
  515. package/contracts/type/ClaimId.sol +80 -0
  516. package/contracts/{types → type}/DistributorType.sol +2 -2
  517. package/contracts/type/Fee.sol +66 -0
  518. package/contracts/{types → type}/Key32.sol +2 -2
  519. package/contracts/type/Key32Set.sol +62 -0
  520. package/contracts/{types → type}/NftId.sol +28 -15
  521. package/contracts/{types → type}/NftIdSet.sol +2 -2
  522. package/contracts/type/ObjectType.sol +307 -0
  523. package/contracts/type/PayoutId.sol +82 -0
  524. package/contracts/{types → type}/Referral.sol +6 -1
  525. package/contracts/type/RequestId.sol +75 -0
  526. package/contracts/type/RiskId.sol +75 -0
  527. package/contracts/type/RoleId.sol +180 -0
  528. package/contracts/type/Seconds.sol +120 -0
  529. package/contracts/type/Selector.sol +107 -0
  530. package/contracts/{types → type}/StateId.sol +48 -4
  531. package/contracts/type/String.sol +65 -0
  532. package/contracts/{types → type}/Timestamp.sol +36 -20
  533. package/contracts/type/UFixed.sol +263 -0
  534. package/contracts/{types → type}/Version.sol +59 -7
  535. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  536. package/contracts/upgradeability/ProxyManager.sol +246 -0
  537. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  538. package/contracts/upgradeability/Versionable.sol +62 -0
  539. package/package.json +12 -8
  540. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  541. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  542. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  545. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  546. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  547. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  550. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  554. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  556. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  558. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  560. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  562. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  564. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  566. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  570. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  572. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  574. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  576. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  578. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  580. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  581. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  582. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  584. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  585. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  586. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  587. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  588. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  590. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  591. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  593. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  594. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  595. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  597. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  600. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  601. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  602. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  604. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  605. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1117
  608. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1318
  610. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -586
  612. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -923
  614. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  615. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -574
  616. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -459
  620. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  621. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -512
  623. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1378
  626. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  627. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -642
  628. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  629. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -957
  630. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  631. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -574
  632. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  633. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1007
  634. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  635. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -574
  636. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  637. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  638. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  639. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  640. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  641. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  642. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  643. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  644. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  645. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  646. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  647. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -499
  648. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  649. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  650. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  651. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  652. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  653. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  654. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  655. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -446
  656. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  657. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  658. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  659. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -759
  660. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  661. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  662. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  663. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  664. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  665. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  666. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  667. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  668. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  669. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  670. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  672. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  674. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  676. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  677. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  678. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  679. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  680. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  681. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  682. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  683. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  684. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  686. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  687. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  688. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  690. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  691. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  692. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  694. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  696. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  697. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  698. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  700. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  702. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  704. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  705. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  706. package/contracts/components/Component.sol +0 -230
  707. package/contracts/components/Distribution.sol +0 -156
  708. package/contracts/components/IComponent.sol +0 -50
  709. package/contracts/components/IDistributionComponent.sol +0 -47
  710. package/contracts/components/IPoolComponent.sol +0 -87
  711. package/contracts/components/IProductComponent.sol +0 -39
  712. package/contracts/components/Pool.sol +0 -254
  713. package/contracts/components/Product.sol +0 -278
  714. package/contracts/experiment/cloning/Cloner.sol +0 -47
  715. package/contracts/experiment/errors/Require.sol +0 -38
  716. package/contracts/experiment/errors/Revert.sol +0 -44
  717. package/contracts/experiment/inheritance/A.sol +0 -53
  718. package/contracts/experiment/inheritance/B.sol +0 -28
  719. package/contracts/experiment/inheritance/C.sol +0 -34
  720. package/contracts/experiment/inheritance/IA.sol +0 -13
  721. package/contracts/experiment/inheritance/IB.sol +0 -10
  722. package/contracts/experiment/inheritance/IC.sol +0 -12
  723. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  724. package/contracts/experiment/statemachine/ISM.sol +0 -25
  725. package/contracts/experiment/statemachine/SM.sol +0 -57
  726. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  727. package/contracts/experiment/types/TypeA.sol +0 -47
  728. package/contracts/experiment/types/TypeB.sol +0 -29
  729. package/contracts/instance/BundleManager.sol +0 -125
  730. package/contracts/instance/InstanceAccessManager.sol +0 -297
  731. package/contracts/instance/ObjectManager.sol +0 -84
  732. package/contracts/instance/base/ComponentService.sol +0 -134
  733. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  734. package/contracts/instance/base/KeyValueStore.sol +0 -172
  735. package/contracts/instance/base/Lifecycle.sol +0 -100
  736. package/contracts/instance/module/IAccess.sol +0 -47
  737. package/contracts/instance/module/ISetup.sol +0 -47
  738. package/contracts/instance/module/ITreasury.sol +0 -23
  739. package/contracts/instance/service/ApplicationService.sol +0 -268
  740. package/contracts/instance/service/BundleService.sol +0 -298
  741. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  742. package/contracts/instance/service/DistributionService.sol +0 -105
  743. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  744. package/contracts/instance/service/IBundleService.sol +0 -54
  745. package/contracts/instance/service/IDistributionService.sol +0 -12
  746. package/contracts/instance/service/IPolicyService.sol +0 -88
  747. package/contracts/instance/service/IPoolService.sol +0 -20
  748. package/contracts/instance/service/IProductService.sol +0 -40
  749. package/contracts/instance/service/PolicyService.sol +0 -524
  750. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  751. package/contracts/instance/service/PoolService.sol +0 -109
  752. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  753. package/contracts/instance/service/ProductService.sol +0 -233
  754. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  755. package/contracts/registry/RegistryAccessManager.sol +0 -216
  756. package/contracts/registry/ReleaseManager.sol +0 -332
  757. package/contracts/shared/ContractDeployerLib.sol +0 -72
  758. package/contracts/shared/ProxyManager.sol +0 -95
  759. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  760. package/contracts/shared/Versionable.sol +0 -148
  761. package/contracts/test/TestFee.sol +0 -25
  762. package/contracts/test/TestRegisterable.sol +0 -18
  763. package/contracts/test/TestRoleId.sol +0 -14
  764. package/contracts/test/TestService.sol +0 -25
  765. package/contracts/test/TestVersion.sol +0 -44
  766. package/contracts/test/TestVersionable.sol +0 -17
  767. package/contracts/test/Usdc.sol +0 -26
  768. package/contracts/types/ChainId.sol +0 -38
  769. package/contracts/types/Fee.sol +0 -56
  770. package/contracts/types/NumberId.sol +0 -52
  771. package/contracts/types/ObjectType.sol +0 -156
  772. package/contracts/types/RiskId.sol +0 -43
  773. package/contracts/types/RoleId.sol +0 -90
  774. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,132 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
6
+
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {ITargetLimitHandler} from "./ITargetLimitHandler.sol";
9
+
10
+ import {Amount, AmountLib} from "../type/Amount.sol";
11
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {StakingStore} from "./StakingStore.sol";
14
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
15
+
16
+
17
+ contract TargetHandler is
18
+ Initializable,
19
+ AccessManaged,
20
+ ITargetLimitHandler
21
+ {
22
+
23
+ event LogTargetHandlerUpdateTriggersSet(uint16 tvlUpdatesTrigger, UFixed minTvlRatioTrigger, Blocknumber lastUpdateIn);
24
+
25
+ IRegistry private _registry;
26
+ StakingStore private _store;
27
+
28
+ /// @dev Update trigger value: Number of TVL updates below which limit updates are suppressed
29
+ uint16 private _tvlUpdatesTrigger;
30
+ /// @dev Maximum TVL ratio: Any ratio above this value will trigger a limit update
31
+ UFixed private _minTvlRatioTrigger;
32
+ Blocknumber private _lastUpdateIn;
33
+
34
+
35
+ constructor (
36
+ IRegistry registry,
37
+ StakingStore stakingStore
38
+ )
39
+ AccessManaged(msg.sender)
40
+ {
41
+ // set final authority and registry
42
+ setAuthority(registry.getAuthority());
43
+ _registry = registry;
44
+ _store = stakingStore;
45
+
46
+ // set default trigger values
47
+ _setUpdateTriggers(
48
+ 10, // check after 2 TVL updates
49
+ UFixedLib.toUFixed(1, -1)); // 10% deviation from baseline TVL
50
+ }
51
+
52
+
53
+ // TODO do we really need this?
54
+ // if so: add onlyDeployer (new base contract? also for reader)
55
+ // if not: remove oz intializer/initializable
56
+ function initialize()
57
+ external
58
+ initializer()
59
+ { }
60
+
61
+ //--- staking functions -------------------------------------------------------//
62
+
63
+ /// @dev Sets the TVL update triggers.
64
+ function setUpdateTriggers(
65
+ uint16 tvlUpdatesTrigger,
66
+ UFixed minTvlRatioTrigger
67
+ )
68
+ external
69
+ restricted()
70
+ {
71
+ _setUpdateTriggers(tvlUpdatesTrigger, minTvlRatioTrigger);
72
+ }
73
+
74
+ //--- ITargetLimitHandler -----------------------------------------------------//
75
+
76
+ /// @inheritdoc ITargetLimitHandler
77
+ // Current implementation only considers the TVL amounts.
78
+ // Future implementations may also consider target or token specific factors.
79
+ function isLimitUpdateRequired(
80
+ NftId, // targetNftId
81
+ address , // token
82
+ uint16 tvlUpdatesCount,
83
+ Amount baselineTvlAmount,
84
+ Amount currentTvlAmount
85
+ )
86
+ external
87
+ virtual
88
+ view
89
+ returns (bool updateIsRequired)
90
+ {
91
+ // no update required if below the TVL updates trigger
92
+ if (tvlUpdatesCount < _tvlUpdatesTrigger) {
93
+ return false;
94
+ }
95
+
96
+ // no update required if both amounts are zero
97
+ Amount zero = AmountLib.zero();
98
+ if (baselineTvlAmount == zero && currentTvlAmount == zero) {
99
+ return false;
100
+
101
+ // update required if one amount is zero
102
+ } else if (baselineTvlAmount == zero || currentTvlAmount == zero) {
103
+ return true;
104
+ }
105
+
106
+ // calculate the ratio of the current TVL amount to the baseline TVL amount
107
+ UFixed baseline = baselineTvlAmount.toUFixed();
108
+ UFixed current = currentTvlAmount.toUFixed();
109
+ UFixed ratio;
110
+
111
+ if (baseline > current) { ratio = baseline / current; }
112
+ else { ratio = current / baseline; }
113
+
114
+ // update required if the ratio is above the maximum TVL ratio
115
+ return ratio >= _minTvlRatioTrigger;
116
+ }
117
+
118
+
119
+ function _setUpdateTriggers(
120
+ uint16 tvlUpdatesTrigger,
121
+ UFixed minTvlRatioTrigger
122
+ )
123
+ internal
124
+ {
125
+ Blocknumber lastUpdateIn = _lastUpdateIn;
126
+ _tvlUpdatesTrigger = tvlUpdatesTrigger;
127
+ _minTvlRatioTrigger = minTvlRatioTrigger;
128
+ _lastUpdateIn = BlocknumberLib.current();
129
+
130
+ emit LogTargetHandlerUpdateTriggersSet(tvlUpdatesTrigger, minTvlRatioTrigger, lastUpdateIn);
131
+ }
132
+ }
@@ -0,0 +1,234 @@
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 {IStaking} from "./IStaking.sol";
7
+
8
+ import {Amount, AmountLib} from "../type/Amount.sol";
9
+ import {ChainIdLib} from "../type/ChainId.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {IRegistryService} from "../registry/IRegistryService.sol";
12
+ import {IStaking} from "./IStaking.sol";
13
+ import {Key32} from "../type/Key32.sol";
14
+ import {NftId} from "../type/NftId.sol";
15
+ import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
16
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
17
+ import {StakingReader} from "./StakingReader.sol";
18
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
19
+
20
+
21
+ library TargetManagerLib {
22
+
23
+ function updateLockingPeriod(
24
+ IStaking staking,
25
+ NftId targetNftId,
26
+ Seconds lockingPeriod
27
+ )
28
+ external
29
+ view
30
+ returns (
31
+ Seconds oldLockingPeriod,
32
+ IStaking.TargetInfo memory targetInfo
33
+ )
34
+ {
35
+ StakingReader reader = staking.getStakingReader();
36
+
37
+ // check target exists
38
+ if(!reader.isTarget(targetNftId)) {
39
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
40
+ }
41
+
42
+ ObjectType targetType = reader.getTargetInfo(targetNftId).objectType;
43
+ checkLockingPeriod(reader, targetNftId, targetType, lockingPeriod);
44
+
45
+ targetInfo = reader.getTargetInfo(targetNftId);
46
+ oldLockingPeriod = targetInfo.lockingPeriod;
47
+
48
+ targetInfo.lockingPeriod = lockingPeriod;
49
+ }
50
+
51
+
52
+ function updateRewardRate(
53
+ IStaking staking,
54
+ NftId targetNftId,
55
+ UFixed rewardRate
56
+ )
57
+ external
58
+ view
59
+ returns (
60
+ UFixed oldRewardRate,
61
+ IStaking.TargetInfo memory targetInfo
62
+ )
63
+ {
64
+ StakingReader reader = staking.getStakingReader();
65
+
66
+ // check target exists
67
+ if(!reader.isTarget(targetNftId)) {
68
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
69
+ }
70
+
71
+ ObjectType targetType = reader.getTargetInfo(targetNftId).objectType;
72
+ checkRewardRate(reader, targetNftId, targetType, rewardRate);
73
+
74
+ targetInfo = reader.getTargetInfo(targetNftId);
75
+ oldRewardRate = targetInfo.rewardRate;
76
+
77
+ targetInfo.rewardRate = rewardRate;
78
+ }
79
+
80
+
81
+ function checkTargetParameters(
82
+ IRegistry registry,
83
+ StakingReader stakingReader,
84
+ NftId targetNftId,
85
+ ObjectType expectedObjectType,
86
+ Seconds lockingPeriod,
87
+ UFixed rewardRate
88
+ )
89
+ external
90
+ view
91
+ {
92
+ // target nft id must not be zero
93
+ if (targetNftId.eqz()) {
94
+ revert IStaking.ErrorStakingTargetNftIdZero();
95
+ }
96
+
97
+ // only accept "new" targets to be registered
98
+ if (stakingReader.isTarget(targetNftId)) {
99
+ revert IStaking.ErrorStakingTargetAlreadyRegistered(targetNftId);
100
+ }
101
+
102
+ // get setup info for additional checks
103
+ IStaking.SupportInfo memory supportInfo = stakingReader.getSupportInfo(expectedObjectType);
104
+
105
+ // check if type is supported and new targets of that type are allowed
106
+ if (!(supportInfo.isSupported && supportInfo.allowNewTargets)) {
107
+ revert IStaking.ErrorStakingTargetTypeNotSupported(targetNftId, expectedObjectType);
108
+ }
109
+
110
+ // check if cross chain targets are allowed (if applicable)
111
+ bool isCurrentChain = ChainIdLib.isCurrentChain(targetNftId);
112
+ if (!supportInfo.allowCrossChain && !isCurrentChain) {
113
+ revert IStaking.ErrorStakingCrossChainTargetsNotSupported(targetNftId, expectedObjectType);
114
+ }
115
+
116
+ // additional check for current chain target: target nft id must be known and registered with the expected object type
117
+ if (isCurrentChain) {
118
+ if (!registry.isRegistered(targetNftId)) {
119
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
120
+ } else {
121
+ // check that expected object type matches with registered object type
122
+ ObjectType actualObjectType = registry.getObjectInfo(targetNftId).objectType;
123
+ if (actualObjectType != expectedObjectType) {
124
+ revert IStaking.ErrorStakingTargetUnexpectedObjectType(targetNftId, expectedObjectType, actualObjectType);
125
+ }
126
+ }
127
+ }
128
+
129
+ // check locking period and reward rate
130
+ _checkLockingPeriod(targetNftId, lockingPeriod, supportInfo);
131
+ _checkRewardRate(targetNftId, rewardRate, supportInfo);
132
+ }
133
+
134
+
135
+ function checkLockingPeriod(StakingReader reader, NftId targetNftId, ObjectType targetType, Seconds lockingPeriod)
136
+ public
137
+ view
138
+ {
139
+ IStaking.SupportInfo memory supportInfo = reader.getSupportInfo(targetType);
140
+ _checkLockingPeriod(targetNftId, lockingPeriod, supportInfo);
141
+ }
142
+
143
+
144
+ function checkRewardRate(StakingReader reader, NftId targetNftId, ObjectType targetType, UFixed rewardRate)
145
+ public
146
+ view
147
+ {
148
+ IStaking.SupportInfo memory supportInfo = reader.getSupportInfo(targetType);
149
+ _checkRewardRate(targetNftId, rewardRate, supportInfo);
150
+ }
151
+
152
+
153
+ function calculateRequiredDipAmount(
154
+ Amount tokenAmount,
155
+ UFixed stakingRate
156
+ )
157
+ public
158
+ pure
159
+ returns (Amount dipAmount)
160
+ {
161
+ dipAmount = tokenAmount.multiplyWith(stakingRate);
162
+ }
163
+
164
+
165
+ function calculateStakingRate(
166
+ IERC20Metadata dipToken,
167
+ IERC20Metadata token,
168
+ UFixed requiredDipPerToken
169
+ )
170
+ public
171
+ view
172
+ returns (UFixed stakingRate)
173
+ {
174
+ UFixed decimalsFactor = UFixedLib.toUFixed(1, int8(dipToken.decimals() - token.decimals()));
175
+ stakingRate = requiredDipPerToken * decimalsFactor;
176
+ }
177
+
178
+
179
+ function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
180
+ return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
181
+ }
182
+
183
+
184
+ function getDefaultLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
185
+ return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
186
+ }
187
+
188
+ /// @dev the minimum locking period is 24 hours
189
+ function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
190
+ return SecondsLib.toSeconds(24 * 3600);
191
+ }
192
+
193
+ function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
194
+ return UFixedLib.toUFixed(33, -2);
195
+ }
196
+
197
+
198
+ function getDefaultRewardRate() public pure returns (UFixed defaultRewardRate) {
199
+ return UFixedLib.toUFixed(5, -2);
200
+ }
201
+
202
+
203
+ function toTargetKey(NftId targetNftId) public pure returns (Key32 targetKey) {
204
+ return targetNftId.toKey32(TARGET());
205
+ }
206
+
207
+
208
+ function _checkLockingPeriod(NftId targetNftId, Seconds lockingPeriod, IStaking.SupportInfo memory supportInfo)
209
+ private
210
+ pure
211
+ {
212
+ if (lockingPeriod < supportInfo.minLockingPeriod || lockingPeriod > supportInfo.maxLockingPeriod) {
213
+ revert IStaking.ErrorStakingLockingPeriodInvalid(
214
+ targetNftId,
215
+ lockingPeriod,
216
+ supportInfo.minLockingPeriod,
217
+ supportInfo.maxLockingPeriod);
218
+ }
219
+ }
220
+
221
+
222
+ function _checkRewardRate(NftId targetNftId, UFixed rewardRate, IStaking.SupportInfo memory supportInfo)
223
+ private
224
+ pure
225
+ {
226
+ if (rewardRate < supportInfo.minRewardRate || rewardRate > supportInfo.maxRewardRate) {
227
+ revert IStaking.ErrorStakingRewardRateInvalid(
228
+ targetNftId,
229
+ rewardRate,
230
+ supportInfo.minRewardRate,
231
+ supportInfo.maxRewardRate);
232
+ }
233
+ }
234
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
5
5
  library LibAddressSet {
@@ -0,0 +1,154 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {UFixed, UFixedLib} from "./UFixed.sol";
5
+
6
+ /// @dev Targets: 100 trillion (worlds GDP) with 6 decimal places
7
+ /// 3 trillion USD (total crypto market cap) with 12 decimal places.
8
+ /// 2023 100 trillion USD => 100e12 * 1e6 = 1e20
9
+ /// 2024 2 trillion crypto market cap => 2e12 * 1e18 = 2e30
10
+ type Amount is uint96;
11
+
12
+ using {
13
+ addAmount as +,
14
+ subAmount as -,
15
+ eqAmount as ==,
16
+ nqAmount as !=,
17
+ ltAmount as <,
18
+ ltAmount as <=,
19
+ gtAmount as >,
20
+ gteAmount as >=,
21
+ AmountLib.add,
22
+ AmountLib.eq,
23
+ AmountLib.eqz,
24
+ AmountLib.gtz,
25
+ AmountLib.gt,
26
+ AmountLib.gte,
27
+ AmountLib.multiplyWith,
28
+ AmountLib.toInt,
29
+ AmountLib.toUFixed
30
+ } for Amount global;
31
+
32
+ function addAmount(Amount a, Amount b) pure returns (Amount) {
33
+ return AmountLib.add(a, b);
34
+ }
35
+
36
+ function subAmount(Amount a, Amount b) pure returns (Amount) {
37
+ return AmountLib.sub(a, b);
38
+ }
39
+
40
+ function eqAmount(Amount a, Amount b) pure returns (bool) {
41
+ return AmountLib.eq(a, b);
42
+ }
43
+
44
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
45
+ return !AmountLib.eq(a, b);
46
+ }
47
+
48
+ function ltAmount(Amount a, Amount b) pure returns (bool) {
49
+ return AmountLib.lt(a, b);
50
+ }
51
+
52
+ function lteAmount(Amount a, Amount b) pure returns (bool) {
53
+ return AmountLib.lte(a, b);
54
+ }
55
+
56
+ function gtAmount(Amount a, Amount b) pure returns (bool) {
57
+ return AmountLib.gt(a, b);
58
+ }
59
+
60
+ function gteAmount(Amount a, Amount b) pure returns (bool) {
61
+ return AmountLib.gte(a, b);
62
+ }
63
+
64
+ library AmountLib {
65
+
66
+ error ErrorAmountLibValueTooBig(uint256 amount);
67
+
68
+ function zero() public pure returns (Amount) {
69
+ return Amount.wrap(0);
70
+ }
71
+
72
+ function max() public pure returns (Amount) {
73
+ return Amount.wrap(_max());
74
+ }
75
+
76
+ /// @dev converts the uint amount into Amount
77
+ /// function reverts if value is exceeding max Amount value
78
+ function toAmount(uint256 amount) public pure returns (Amount) {
79
+ if(amount > _max()) {
80
+ revert ErrorAmountLibValueTooBig(amount);
81
+ }
82
+
83
+ return Amount.wrap(uint96(amount));
84
+ }
85
+
86
+ /// @dev return true if amount equals 0
87
+ function eqz(Amount amount) public pure returns (bool) {
88
+ return Amount.unwrap(amount) == 0;
89
+ }
90
+
91
+ /// @dev return true if amount1 equals amount2
92
+ function eq(Amount amount1, Amount amount2) public pure returns (bool) {
93
+ return Amount.unwrap(amount1) == Amount.unwrap(amount2);
94
+ }
95
+
96
+ /// @dev return true if amount a1 is less than a2
97
+ function lt(Amount a1, Amount a2) public pure returns (bool) {
98
+ return Amount.unwrap(a1) < Amount.unwrap(a2);
99
+ }
100
+
101
+ /// @dev return true if amount a1 is less or equal than a2
102
+ function lte(Amount a1, Amount a2) public pure returns (bool) {
103
+ return Amount.unwrap(a1) <= Amount.unwrap(a2);
104
+ }
105
+
106
+ /// @dev return true if amount a1 is greater than a2
107
+ function gt(Amount a1, Amount a2) public pure returns (bool) {
108
+ return Amount.unwrap(a1) > Amount.unwrap(a2);
109
+ }
110
+
111
+ /// @dev return true if amount a1 is greater or equal than a2
112
+ function gte(Amount a1, Amount a2) public pure returns (bool) {
113
+ return Amount.unwrap(a1) >= Amount.unwrap(a2);
114
+ }
115
+
116
+ /// @dev return minimum of a1 and a2.
117
+ function min(Amount a1, Amount a2) public pure returns (Amount) {
118
+ if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
119
+ return a1;
120
+ }
121
+
122
+ return a2;
123
+ }
124
+
125
+ /// @dev return true if amount is larger than 0
126
+ function gtz(Amount amount) public pure returns (bool) {
127
+ return Amount.unwrap(amount) > 0;
128
+ }
129
+
130
+ function add(Amount a1, Amount a2) public pure returns (Amount) {
131
+ return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
132
+ }
133
+
134
+ function sub(Amount a1, Amount a2) public pure returns (Amount) {
135
+ return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
136
+ }
137
+
138
+ function toInt(Amount amount) public pure returns (uint256) {
139
+ return uint256(uint96(Amount.unwrap(amount)));
140
+ }
141
+
142
+ function toUFixed(Amount amount) public pure returns (UFixed) {
143
+ return UFixedLib.toUFixed(Amount.unwrap(amount));
144
+ }
145
+
146
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
147
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
148
+ }
149
+
150
+ function _max() internal pure returns (uint96) {
151
+ // IMPORTANT: type nees to match with actual definition for Amount
152
+ return type(uint96).max;
153
+ }
154
+ }
@@ -1,7 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- type Blocknumber is uint32;
4
+ /// @dev Target: Cover 10 years with 1 ms block times.
5
+ /// Typical block times are a few seconds.
6
+ type Blocknumber is uint40;
5
7
 
6
8
  using {
7
9
  gtBlocknumber as >,
@@ -10,7 +12,15 @@ using {
10
12
  lteBlocknumber as <=,
11
13
  eqBlocknumber as ==,
12
14
  neBlocknumber as !=,
13
- BlocknumberLib.toInt
15
+ BlocknumberLib.toInt,
16
+ BlocknumberLib.eq,
17
+ BlocknumberLib.ne,
18
+ BlocknumberLib.eqz,
19
+ BlocknumberLib.gtz,
20
+ BlocknumberLib.gt,
21
+ BlocknumberLib.gte,
22
+ BlocknumberLib.lt,
23
+ BlocknumberLib.lte
14
24
  } for Blocknumber global;
15
25
 
16
26
  /// @dev return true if Blocknumber a is greater than Blocknumber b
@@ -43,26 +53,35 @@ function neBlocknumber(Blocknumber a, Blocknumber b) pure returns (bool) {
43
53
  return Blocknumber.unwrap(a) != Blocknumber.unwrap(b);
44
54
  }
45
55
 
46
- /// @dev Converts the uint256 to a Blocknumber.
47
- function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
48
- return Blocknumber.wrap(uint32(blocknum));
49
- }
50
56
 
51
- function blockBlocknumber() view returns (Blocknumber) {
52
- return toBlocknumber(block.number);
53
- }
57
+ library BlocknumberLib {
54
58
 
55
- /// @dev Return the Blocknumber zero (0)
56
- function zeroBlocknumber() pure returns (Blocknumber) {
57
- return toBlocknumber(0);
58
- }
59
+ function zero() public pure returns (Blocknumber) {
60
+ return Blocknumber.wrap(0);
61
+ }
59
62
 
60
- /// @dev Return the current block number
61
- function blockNumber() view returns (Blocknumber) {
62
- return toBlocknumber(block.number);
63
- }
63
+ function max() public pure returns (Blocknumber) {
64
+ return Blocknumber.wrap(type(uint40).max);
65
+ }
66
+
67
+ function current() public view returns (Blocknumber) {
68
+ return Blocknumber.wrap(uint40(block.number));
69
+ }
70
+
71
+ function toBlocknumber(uint256 blocknum) public pure returns (Blocknumber) {
72
+ return Blocknumber.wrap(uint32(blocknum));
73
+ }
74
+
75
+ /// @dev return true iff blocknumber is 0
76
+ function eqz(Blocknumber blocknumber) public pure returns (bool) {
77
+ return Blocknumber.unwrap(blocknumber) == 0;
78
+ }
79
+
80
+ /// @dev return true iff blocknumber is > 0
81
+ function gtz(Blocknumber blocknumber) public pure returns (bool) {
82
+ return Blocknumber.unwrap(blocknumber) > 0;
83
+ }
64
84
 
65
- library BlocknumberLib {
66
85
  /// @dev return true if Blocknumber a is greater than Blocknumber b
67
86
  function gt(
68
87
  Blocknumber a,