@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-e9c25ee-730

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 (728) hide show
  1. package/README.md +136 -22
  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 +1672 -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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1255 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1322 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +285 -324
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1633 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +896 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +274 -275
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +339 -329
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  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/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +596 -94
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +367 -106
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +585 -207
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2366 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1985 -576
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +378 -425
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -174
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1927 -876
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +302 -175
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -241
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -465
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +289 -68
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +609 -223
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  152. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -482
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  160. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +180 -163
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +95 -65
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +349 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  182. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2195 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +361 -250
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +174 -109
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2160 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1393 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +265 -186
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  224. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +616 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  234. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +137 -131
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  271. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  280. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +749 -587
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  347. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  358. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  359. package/contracts/accounting/AccountingService.sol +262 -0
  360. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  361. package/contracts/accounting/IAccountingService.sol +45 -0
  362. package/contracts/authorization/AccessAdmin.sol +875 -0
  363. package/contracts/authorization/AccessAdminLib.sol +379 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  365. package/contracts/authorization/Authorization.sol +261 -0
  366. package/contracts/authorization/IAccess.sol +67 -0
  367. package/contracts/authorization/IAccessAdmin.sol +136 -0
  368. package/contracts/authorization/IAuthorization.sol +27 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  373. package/contracts/distribution/Distribution.sol +245 -0
  374. package/contracts/distribution/DistributionService.sol +440 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +50 -0
  377. package/contracts/distribution/IDistributionService.sol +109 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +86 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +433 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +117 -38
  393. package/contracts/instance/IInstanceService.sol +71 -50
  394. package/contracts/instance/Instance.sol +252 -110
  395. package/contracts/instance/InstanceAdmin.sol +569 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +262 -0
  397. package/contracts/instance/InstanceReader.sol +528 -82
  398. package/contracts/instance/InstanceService.sol +385 -391
  399. package/contracts/instance/InstanceServiceManager.sol +14 -29
  400. package/contracts/instance/InstanceStore.sol +174 -95
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +9 -11
  409. package/contracts/instance/module/IComponents.sol +44 -23
  410. package/contracts/instance/module/IDistribution.sol +25 -12
  411. package/contracts/instance/module/IPolicy.sol +71 -38
  412. package/contracts/instance/module/IRisk.sol +6 -1
  413. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  414. package/contracts/oracle/BasicOracle.sol +45 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  416. package/contracts/oracle/IOracle.sol +41 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +154 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +173 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/{instance/service → pool}/IBundleService.sol +52 -30
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +343 -0
  430. package/contracts/pool/PoolLib.sol +260 -0
  431. package/contracts/pool/PoolService.sol +733 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +274 -0
  434. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  435. package/contracts/product/BasicProduct.sol +49 -0
  436. package/contracts/product/BasicProductAuthorization.sol +61 -0
  437. package/contracts/product/ClaimService.sol +630 -0
  438. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  439. package/contracts/{instance/service → product}/IApplicationService.sol +22 -35
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +40 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +664 -0
  446. package/contracts/product/PolicyServiceLib.sol +86 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +309 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +467 -0
  451. package/contracts/product/RiskService.sol +154 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +79 -40
  454. package/contracts/registry/IRegistry.sol +99 -30
  455. package/contracts/registry/IRegistryService.sol +34 -40
  456. package/contracts/registry/IRelease.sol +29 -0
  457. package/contracts/registry/ITransferInterceptor.sol +1 -2
  458. package/contracts/registry/Registry.sol +460 -197
  459. package/contracts/registry/RegistryAdmin.sol +291 -0
  460. package/contracts/registry/RegistryAuthorization.sol +277 -0
  461. package/contracts/registry/RegistryService.sol +89 -130
  462. package/contracts/registry/RegistryServiceManager.sol +23 -32
  463. package/contracts/registry/ReleaseAdmin.sol +268 -0
  464. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  465. package/contracts/registry/ReleaseRegistry.sol +517 -0
  466. package/contracts/registry/ServiceAuthorizationV3.sol +341 -0
  467. package/contracts/registry/TokenRegistry.sol +264 -64
  468. package/contracts/shared/Component.sol +210 -0
  469. package/contracts/shared/ComponentService.sol +708 -0
  470. package/contracts/shared/ComponentServiceManager.sol +38 -0
  471. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  472. package/contracts/shared/ContractLib.sol +292 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +112 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  477. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  478. package/contracts/shared/INftOwnable.sol +4 -2
  479. package/contracts/shared/IPolicyHolder.sol +23 -14
  480. package/contracts/shared/IRegisterable.sol +23 -1
  481. package/contracts/shared/IRegistryLinked.sol +0 -1
  482. package/contracts/shared/IService.sol +13 -5
  483. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  484. package/contracts/shared/InstanceLinkedComponent.sol +195 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +34 -27
  489. package/contracts/shared/PolicyHolder.sol +22 -41
  490. package/contracts/shared/Registerable.sol +52 -20
  491. package/contracts/shared/RegistryLinked.sol +9 -19
  492. package/contracts/shared/Service.sol +34 -40
  493. package/contracts/shared/TokenHandler.sol +322 -13
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +179 -0
  496. package/contracts/staking/IStakingService.sol +172 -0
  497. package/contracts/staking/Staking.sol +546 -0
  498. package/contracts/staking/StakingLib.sol +281 -0
  499. package/contracts/staking/StakingLifecycle.sol +23 -0
  500. package/contracts/staking/StakingManager.sol +52 -0
  501. package/contracts/staking/StakingReader.sol +180 -0
  502. package/contracts/staking/StakingService.sol +464 -0
  503. package/contracts/staking/StakingServiceManager.sol +45 -0
  504. package/contracts/staking/StakingStore.sol +606 -0
  505. package/contracts/staking/TargetManagerLib.sol +211 -0
  506. package/contracts/{types → type}/AddressSet.sol +1 -1
  507. package/contracts/type/Amount.sol +150 -0
  508. package/contracts/{types → type}/Blocknumber.sol +26 -3
  509. package/contracts/{types → type}/ClaimId.sol +31 -3
  510. package/contracts/{types → type}/Fee.sol +28 -26
  511. package/contracts/{types → type}/Key32.sol +2 -2
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/{types → type}/NftId.sol +21 -16
  514. package/contracts/{types → type}/NftIdSet.sol +2 -2
  515. package/contracts/type/ObjectType.sol +307 -0
  516. package/contracts/type/PayoutId.sol +82 -0
  517. package/contracts/{types → type}/Referral.sol +2 -1
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +75 -0
  520. package/contracts/type/RoleId.sol +180 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/{types → type}/StateId.sol +47 -4
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/{types → type}/Timestamp.sol +20 -6
  526. package/contracts/type/UFixed.sol +262 -0
  527. package/contracts/{types → type}/Version.sol +58 -7
  528. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  529. package/contracts/{shared → upgradeability}/ProxyManager.sol +104 -39
  530. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  531. package/contracts/{shared → upgradeability}/Versionable.sol +7 -4
  532. package/package.json +12 -8
  533. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  534. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  535. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  542. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  543. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  545. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  546. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  548. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  550. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  555. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  557. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  559. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  562. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  564. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  566. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  568. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  570. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  572. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  576. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  578. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  593. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  595. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  597. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  599. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  601. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  603. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  605. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  608. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  609. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  610. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  613. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  615. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  617. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  619. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  621. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  623. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  625. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  626. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  627. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  628. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  629. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  631. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  633. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  635. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  637. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  639. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  641. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  643. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  645. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  646. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  647. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  649. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  651. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  653. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  655. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  657. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  659. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  661. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  663. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  665. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  667. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  669. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  673. package/contracts/components/Component.sol +0 -253
  674. package/contracts/components/Distribution.sol +0 -280
  675. package/contracts/components/IComponent.sol +0 -76
  676. package/contracts/components/IDistributionComponent.sol +0 -71
  677. package/contracts/components/IPoolComponent.sol +0 -113
  678. package/contracts/components/IProductComponent.sol +0 -40
  679. package/contracts/components/Pool.sol +0 -303
  680. package/contracts/components/Product.sol +0 -293
  681. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  682. package/contracts/instance/BundleManager.sol +0 -127
  683. package/contracts/instance/Cloneable.sol +0 -51
  684. package/contracts/instance/InstanceAccessManager.sol +0 -540
  685. package/contracts/instance/ObjectManager.sol +0 -82
  686. package/contracts/instance/base/ComponentService.sol +0 -121
  687. package/contracts/instance/base/KeyValueStore.sol +0 -180
  688. package/contracts/instance/base/Lifecycle.sol +0 -109
  689. package/contracts/instance/module/IAccess.sol +0 -54
  690. package/contracts/instance/module/ISetup.sol +0 -33
  691. package/contracts/instance/module/ITreasury.sol +0 -23
  692. package/contracts/instance/service/ApplicationService.sol +0 -351
  693. package/contracts/instance/service/BundleService.sol +0 -431
  694. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  695. package/contracts/instance/service/ClaimService.sol +0 -151
  696. package/contracts/instance/service/DistributionService.sol +0 -437
  697. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  698. package/contracts/instance/service/IClaimService.sol +0 -61
  699. package/contracts/instance/service/IDistributionService.sol +0 -99
  700. package/contracts/instance/service/IPolicyService.sol +0 -72
  701. package/contracts/instance/service/IPoolService.sol +0 -99
  702. package/contracts/instance/service/IProductService.sol +0 -40
  703. package/contracts/instance/service/PolicyService.sol +0 -362
  704. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  705. package/contracts/instance/service/PoolService.sol +0 -303
  706. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  707. package/contracts/instance/service/ProductService.sol +0 -209
  708. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  709. package/contracts/registry/RegistryAccessManager.sol +0 -216
  710. package/contracts/registry/ReleaseManager.sol +0 -324
  711. package/contracts/shared/ContractDeployerLib.sol +0 -72
  712. package/contracts/test/TestFee.sol +0 -25
  713. package/contracts/test/TestRegisterable.sol +0 -18
  714. package/contracts/test/TestRoleId.sol +0 -14
  715. package/contracts/test/TestService.sol +0 -25
  716. package/contracts/test/TestToken.sol +0 -26
  717. package/contracts/test/TestVersion.sol +0 -44
  718. package/contracts/test/TestVersionable.sol +0 -17
  719. package/contracts/types/Amount.sol +0 -60
  720. package/contracts/types/ChainId.sol +0 -38
  721. package/contracts/types/NumberId.sol +0 -52
  722. package/contracts/types/ObjectType.sol +0 -157
  723. package/contracts/types/PayoutId.sol +0 -54
  724. package/contracts/types/RiskId.sol +0 -43
  725. package/contracts/types/RoleId.sol +0 -97
  726. package/contracts/types/Seconds.sol +0 -54
  727. package/contracts/types/UFixed.sol +0 -326
  728. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,211 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {Component} from "../shared/Component.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
11
+ import {Key32} from "../type/Key32.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
+ import {StakingReader} from "./StakingReader.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
+
18
+
19
+ library TargetManagerLib {
20
+
21
+ function updateLockingPeriod(
22
+ IStaking staking,
23
+ NftId targetNftId,
24
+ Seconds lockingPeriod
25
+ )
26
+ external
27
+ view
28
+ returns (
29
+ Seconds oldLockingPeriod,
30
+ IStaking.TargetInfo memory targetInfo
31
+ )
32
+ {
33
+ StakingReader reader = staking.getStakingReader();
34
+
35
+ // check target exists
36
+ if(!reader.isTarget(targetNftId)) {
37
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
38
+ }
39
+
40
+ checkLockingPeriod(targetNftId, lockingPeriod);
41
+
42
+ targetInfo = reader.getTargetInfo(targetNftId);
43
+ oldLockingPeriod = targetInfo.lockingPeriod;
44
+
45
+ targetInfo.lockingPeriod = lockingPeriod;
46
+ }
47
+
48
+
49
+ function updateRewardRate(
50
+ IStaking staking,
51
+ NftId targetNftId,
52
+ UFixed rewardRate
53
+ )
54
+ external
55
+ view
56
+ returns (
57
+ UFixed oldRewardRate,
58
+ IStaking.TargetInfo memory targetInfo
59
+ )
60
+ {
61
+ StakingReader reader = staking.getStakingReader();
62
+
63
+ // check target exists
64
+ if(!reader.isTarget(targetNftId)) {
65
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
66
+ }
67
+
68
+ checkRewardRate(targetNftId, rewardRate);
69
+
70
+ targetInfo = reader.getTargetInfo(targetNftId);
71
+ oldRewardRate = targetInfo.rewardRate;
72
+
73
+ targetInfo.rewardRate = rewardRate;
74
+ }
75
+
76
+
77
+ function checkTargetParameters(
78
+ IRegistry registry,
79
+ StakingReader stakingReader,
80
+ NftId targetNftId,
81
+ ObjectType expectedObjectType,
82
+ Seconds initialLockingPeriod,
83
+ UFixed initialRewardRate
84
+ )
85
+ external
86
+ view
87
+ {
88
+ // target nft id must not be zero
89
+ if (targetNftId.eqz()) {
90
+ revert IStaking.ErrorStakingTargetNftIdZero();
91
+ }
92
+
93
+ // only accept "new" targets to be registered
94
+ if (stakingReader.isTarget(targetNftId)) {
95
+ revert IStaking.ErrorStakingTargetAlreadyRegistered(targetNftId);
96
+ }
97
+
98
+ // target object type must be allowed
99
+ if (!isTargetTypeSupported(expectedObjectType)) {
100
+ revert IStaking.ErrorStakingTargetTypeNotSupported(targetNftId, expectedObjectType);
101
+ }
102
+
103
+ checkLockingPeriod(targetNftId, initialLockingPeriod);
104
+ checkRewardRate(targetNftId, initialRewardRate);
105
+
106
+ // target nft id must be known and registered with the expected object type
107
+ if (!registry.isRegistered(targetNftId)) {
108
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
109
+ } else {
110
+ // check that expected object type matches with registered object type
111
+ ObjectType actualObjectType = registry.getObjectInfo(targetNftId).objectType;
112
+ if (actualObjectType != expectedObjectType) {
113
+ revert IStaking.ErrorStakingTargetUnexpectedObjectType(targetNftId, expectedObjectType, actualObjectType);
114
+ }
115
+ }
116
+ }
117
+
118
+
119
+ function isTargetTypeSupported(ObjectType objectType)
120
+ public
121
+ pure
122
+ returns (bool isSupported)
123
+ {
124
+ if(objectType == PROTOCOL()) { return true; }
125
+ if(objectType == INSTANCE()) { return true; }
126
+
127
+ return false;
128
+ }
129
+
130
+
131
+ function checkLockingPeriod(NftId targetNftId, Seconds lockingPeriod)
132
+ public
133
+ pure
134
+ {
135
+ // check locking period is >= min locking period
136
+ if (lockingPeriod.lt(getMinimumLockingPeriod())) {
137
+ revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
138
+ }
139
+
140
+ // check locking period <= max locking period
141
+ if (lockingPeriod > getMaxLockingPeriod()) {
142
+ revert IStaking.ErrorStakingLockingPeriodTooLong(targetNftId, getMaxLockingPeriod(), lockingPeriod);
143
+ }
144
+ }
145
+
146
+
147
+ function checkRewardRate(NftId targetNftId, UFixed rewardRate)
148
+ public
149
+ pure
150
+ {
151
+ // check reward rate <= max reward rate
152
+ if (rewardRate > getMaxRewardRate()) {
153
+ revert IStaking.ErrorStakingRewardRateTooHigh(targetNftId, getMaxRewardRate(), rewardRate);
154
+ }
155
+ }
156
+
157
+
158
+ function calculateRequiredDipAmount(
159
+ Amount tokenAmount,
160
+ UFixed stakingRate
161
+ )
162
+ public
163
+ pure
164
+ returns (Amount dipAmount)
165
+ {
166
+ dipAmount = tokenAmount.multiplyWith(stakingRate);
167
+ }
168
+
169
+
170
+ function calculateStakingRate(
171
+ IERC20Metadata dipToken,
172
+ IERC20Metadata token,
173
+ UFixed requiredDipPerToken
174
+ )
175
+ public
176
+ view
177
+ returns (UFixed stakingRate)
178
+ {
179
+ UFixed decimalsFactor = UFixedLib.toUFixed(1, int8(dipToken.decimals() - token.decimals()));
180
+ stakingRate = requiredDipPerToken * decimalsFactor;
181
+ }
182
+
183
+
184
+ function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
185
+ return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
186
+ }
187
+
188
+
189
+ function getDefaultLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
190
+ return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
191
+ }
192
+
193
+ /// @dev the minimum locking period is 24 hours
194
+ function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
195
+ return SecondsLib.toSeconds(24 * 3600);
196
+ }
197
+
198
+ function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
199
+ return UFixedLib.toUFixed(33, -2);
200
+ }
201
+
202
+
203
+ function getDefaultRewardRate() public pure returns (UFixed defaultRewardRate) {
204
+ return UFixedLib.toUFixed(5, -2);
205
+ }
206
+
207
+
208
+ function toTargetKey(NftId targetNftId) public pure returns (Key32 targetKey) {
209
+ return targetNftId.toKey32(TARGET());
210
+ }
211
+ }
@@ -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,150 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {UFixed, UFixedLib} from "./UFixed.sol";
5
+
6
+ type Amount is uint96;
7
+
8
+ using {
9
+ addAmount as +,
10
+ subAmount as -,
11
+ eqAmount as ==,
12
+ nqAmount as !=,
13
+ ltAmount as <,
14
+ ltAmount as <=,
15
+ gtAmount as >,
16
+ gteAmount as >=,
17
+ AmountLib.add,
18
+ AmountLib.eq,
19
+ AmountLib.eqz,
20
+ AmountLib.gtz,
21
+ AmountLib.gt,
22
+ AmountLib.gte,
23
+ AmountLib.multiplyWith,
24
+ AmountLib.toInt,
25
+ AmountLib.toUFixed
26
+ } for Amount global;
27
+
28
+ function addAmount(Amount a, Amount b) pure returns (Amount) {
29
+ return AmountLib.add(a, b);
30
+ }
31
+
32
+ function subAmount(Amount a, Amount b) pure returns (Amount) {
33
+ return AmountLib.sub(a, b);
34
+ }
35
+
36
+ function eqAmount(Amount a, Amount b) pure returns (bool) {
37
+ return AmountLib.eq(a, b);
38
+ }
39
+
40
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
41
+ return !AmountLib.eq(a, b);
42
+ }
43
+
44
+ function ltAmount(Amount a, Amount b) pure returns (bool) {
45
+ return AmountLib.lt(a, b);
46
+ }
47
+
48
+ function lteAmount(Amount a, Amount b) pure returns (bool) {
49
+ return AmountLib.lte(a, b);
50
+ }
51
+
52
+ function gtAmount(Amount a, Amount b) pure returns (bool) {
53
+ return AmountLib.gt(a, b);
54
+ }
55
+
56
+ function gteAmount(Amount a, Amount b) pure returns (bool) {
57
+ return AmountLib.gte(a, b);
58
+ }
59
+
60
+ library AmountLib {
61
+
62
+ error ErrorAmountLibValueTooBig(uint256 amount);
63
+
64
+ function zero() public pure returns (Amount) {
65
+ return Amount.wrap(0);
66
+ }
67
+
68
+ function max() public pure returns (Amount) {
69
+ return Amount.wrap(_max());
70
+ }
71
+
72
+ /// @dev converts the uint amount into Amount
73
+ /// function reverts if value is exceeding max Amount value
74
+ function toAmount(uint256 amount) public pure returns (Amount) {
75
+ if(amount > _max()) {
76
+ revert ErrorAmountLibValueTooBig(amount);
77
+ }
78
+
79
+ return Amount.wrap(uint96(amount));
80
+ }
81
+
82
+ /// @dev return true if amount equals 0
83
+ function eqz(Amount amount) public pure returns (bool) {
84
+ return Amount.unwrap(amount) == 0;
85
+ }
86
+
87
+ /// @dev return true if amount1 equals amount2
88
+ function eq(Amount amount1, Amount amount2) public pure returns (bool) {
89
+ return Amount.unwrap(amount1) == Amount.unwrap(amount2);
90
+ }
91
+
92
+ /// @dev return true if amount a1 is less than a2
93
+ function lt(Amount a1, Amount a2) public pure returns (bool) {
94
+ return Amount.unwrap(a1) < Amount.unwrap(a2);
95
+ }
96
+
97
+ /// @dev return true if amount a1 is less or equal than a2
98
+ function lte(Amount a1, Amount a2) public pure returns (bool) {
99
+ return Amount.unwrap(a1) <= Amount.unwrap(a2);
100
+ }
101
+
102
+ /// @dev return true if amount a1 is greater than a2
103
+ function gt(Amount a1, Amount a2) public pure returns (bool) {
104
+ return Amount.unwrap(a1) > Amount.unwrap(a2);
105
+ }
106
+
107
+ /// @dev return true if amount a1 is greater or equal than a2
108
+ function gte(Amount a1, Amount a2) public pure returns (bool) {
109
+ return Amount.unwrap(a1) >= Amount.unwrap(a2);
110
+ }
111
+
112
+ /// @dev return minimum of a1 and a2.
113
+ function min(Amount a1, Amount a2) public pure returns (Amount) {
114
+ if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
115
+ return a1;
116
+ }
117
+
118
+ return a2;
119
+ }
120
+
121
+ /// @dev return true if amount is larger than 0
122
+ function gtz(Amount amount) public pure returns (bool) {
123
+ return Amount.unwrap(amount) > 0;
124
+ }
125
+
126
+ function add(Amount a1, Amount a2) public pure returns (Amount) {
127
+ return Amount.wrap(Amount.unwrap(a1) + Amount.unwrap(a2));
128
+ }
129
+
130
+ function sub(Amount a1, Amount a2) public pure returns (Amount) {
131
+ return Amount.wrap(Amount.unwrap(a1) - Amount.unwrap(a2));
132
+ }
133
+
134
+ function toInt(Amount amount) public pure returns (uint256) {
135
+ return uint256(uint96(Amount.unwrap(amount)));
136
+ }
137
+
138
+ function toUFixed(Amount amount) public pure returns (UFixed) {
139
+ return UFixedLib.toUFixed(Amount.unwrap(amount));
140
+ }
141
+
142
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
143
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
144
+ }
145
+
146
+ function _max() internal pure returns (uint96) {
147
+ // IMPORTANT: type nees to match with actual definition for Amount
148
+ return type(uint96).max;
149
+ }
150
+ }
@@ -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
  type Blocknumber is uint32;
5
5
 
@@ -10,7 +10,15 @@ using {
10
10
  lteBlocknumber as <=,
11
11
  eqBlocknumber as ==,
12
12
  neBlocknumber as !=,
13
- BlocknumberLib.toInt
13
+ BlocknumberLib.toInt,
14
+ BlocknumberLib.eq,
15
+ BlocknumberLib.ne,
16
+ BlocknumberLib.eqz,
17
+ BlocknumberLib.gtz,
18
+ BlocknumberLib.gt,
19
+ BlocknumberLib.gte,
20
+ BlocknumberLib.lt,
21
+ BlocknumberLib.lte
14
22
  } for Blocknumber global;
15
23
 
16
24
  /// @dev return true if Blocknumber a is greater than Blocknumber b
@@ -49,7 +57,7 @@ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
49
57
  }
50
58
 
51
59
  function blockBlocknumber() view returns (Blocknumber) {
52
- return toBlocknumber(block.number);
60
+ return BlocknumberLib.currentBlocknumber();
53
61
  }
54
62
 
55
63
  // TODO move to BlocknumberLib and rename to zero()
@@ -64,6 +72,21 @@ function blockNumber() view returns (Blocknumber) {
64
72
  }
65
73
 
66
74
  library BlocknumberLib {
75
+ /// @dev returns the current Blocknumber
76
+ function currentBlocknumber() public view returns (Blocknumber) {
77
+ return Blocknumber.wrap(uint32(block.number));
78
+ }
79
+
80
+ /// @dev return true iff blocknumber is 0
81
+ function eqz(Blocknumber blocknumber) public pure returns (bool) {
82
+ return Blocknumber.unwrap(blocknumber) == 0;
83
+ }
84
+
85
+ /// @dev return true iff blocknumber is 0
86
+ function gtz(Blocknumber blocknumber) public pure returns (bool) {
87
+ return Blocknumber.unwrap(blocknumber) > 0;
88
+ }
89
+
67
90
  /// @dev return true if Blocknumber a is greater than Blocknumber b
68
91
  function gt(
69
92
  Blocknumber a,
@@ -4,19 +4,25 @@ pragma solidity ^0.8.20;
4
4
  // uint16 allows for 65'535 claims per policy
5
5
  type ClaimId is uint16;
6
6
 
7
+ import {CLAIM} from "./ObjectType.sol";
8
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
9
+ import {NftId} from "./NftId.sol";
10
+
7
11
  // type bindings
8
12
  using {
9
13
  eqClaimId as ==,
10
14
  neClaimId as !=,
15
+ ClaimIdLib.eq,
11
16
  ClaimIdLib.eqz,
12
17
  ClaimIdLib.gtz,
13
- ClaimIdLib.toInt
18
+ ClaimIdLib.toInt,
19
+ ClaimIdLib.toKey32
14
20
  } for ClaimId global;
15
21
 
16
22
 
17
23
  // pure free functions for operators
18
24
  function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
19
- return ClaimId.unwrap(a) == ClaimId.unwrap(b);
25
+ return ClaimIdLib.eq(a, b);
20
26
  }
21
27
 
22
28
  function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
@@ -25,10 +31,14 @@ function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
25
31
 
26
32
  // library functions that operate on user defined type
27
33
  library ClaimIdLib {
28
- /// @dev Converts the ClaimId to a uint.
34
+ /// @dev claim id min value (0), use only for non-initialized values
29
35
  function zero() public pure returns (ClaimId) {
30
36
  return ClaimId.wrap(0);
31
37
  }
38
+ /// @dev claim id max value (2**16-1), use only for non-initialized values
39
+ function max() public pure returns (ClaimId) {
40
+ return ClaimId.wrap(type(uint16).max);
41
+ }
32
42
 
33
43
  /// @dev Converts an uint into a ClaimId.
34
44
  function toClaimId(uint256 a) public pure returns (ClaimId) {
@@ -40,11 +50,29 @@ library ClaimIdLib {
40
50
  return uint16(ClaimId.unwrap(a));
41
51
  }
42
52
 
53
+ /// @dev Converts the ClaimId and NftId to a Key32.
54
+ function toKey32(ClaimId claimId, NftId policyNftId) public pure returns (Key32) {
55
+ return Key32Lib.toKey32(CLAIM(), toKeyId(claimId, policyNftId));
56
+ }
57
+
58
+ /// @dev Converts the ClaimId and NftId to a Key32.
59
+ function toKeyId(ClaimId claimId, NftId policyNftId) public pure returns (KeyId) {
60
+ return KeyId.wrap(
61
+ bytes31(
62
+ bytes14(
63
+ uint112(
64
+ NftId.unwrap(policyNftId) << 16 + ClaimId.unwrap(claimId)))));
65
+ }
66
+
43
67
  /// @dev Returns true if the value is non-zero (> 0).
44
68
  function gtz(ClaimId a) public pure returns (bool) {
45
69
  return ClaimId.unwrap(a) > 0;
46
70
  }
47
71
 
72
+ function eq(ClaimId a, ClaimId b) public pure returns (bool) {
73
+ return ClaimId.unwrap(a) == ClaimId.unwrap(b);
74
+ }
75
+
48
76
  /// @dev Returns true if the value is zero (== 0).
49
77
  function eqz(ClaimId a) public pure returns (bool) {
50
78
  return ClaimId.unwrap(a) == 0;
@@ -1,64 +1,66 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount, AmountLib} from "./Amount.sol";
4
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
5
6
 
6
7
  struct Fee {
8
+ // slot 0
7
9
  UFixed fractionalFee;
8
- uint256 fixedFee;
10
+ Amount fixedFee;
9
11
  }
10
12
 
11
13
  library FeeLib {
12
14
 
15
+ /// @dev Return a zero fee struct (0, 0)
16
+ function zero() public pure returns (Fee memory fee) {
17
+ return Fee(UFixed.wrap(0), AmountLib.zero());
18
+ }
19
+
20
+ /// @dev Converts the uint256 to a fee struct.
21
+ function toFee(
22
+ UFixed fractionalFee,
23
+ uint256 fixedFee
24
+ ) public pure returns (Fee memory fee) {
25
+ return Fee(fractionalFee, AmountLib.toAmount(fixedFee));
26
+ }
27
+
28
+ /// @dev Calculates fee and net amounts for the provided parameters
13
29
  function calculateFee(
14
30
  Fee memory fee,
15
- uint256 amount
31
+ Amount amount
16
32
  )
17
33
  public
18
34
  pure
19
35
  returns (
20
- uint256 feeAmount,
21
- uint256 netAmount
36
+ Amount feeAmount,
37
+ Amount netAmount
22
38
  )
23
39
  {
24
40
  netAmount = amount;
25
41
  if(gtz(fee)) {
26
42
  UFixed fractionalAmount =
27
- UFixedLib.toUFixed(amount) * fee.fractionalFee;
28
- feeAmount = fractionalAmount.toInt() + fee.fixedFee;
29
- netAmount -= feeAmount;
43
+ amount.toUFixed() * fee.fractionalFee;
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt()) + fee.fixedFee;
45
+ netAmount = netAmount - feeAmount;
30
46
  }
31
47
  }
32
48
 
33
- /// @dev Converts the uint256 to a fee struct.
34
- function toFee(
35
- UFixed fractionalFee,
36
- uint256 fixedFee
37
- ) public pure returns (Fee memory fee) {
38
- return Fee(fractionalFee, fixedFee);
39
- }
40
-
41
49
  /// @dev Return the percent fee struct (x%, 0)
42
50
  function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
43
- return Fee(UFixedLib.toUFixed(percent, -2), 0);
44
- }
45
-
46
- // TODO rename to zero
47
- /// @dev Return a zero fee struct (0, 0)
48
- function zeroFee() public pure returns (Fee memory fee) {
49
- return Fee(UFixed.wrap(0), 0);
51
+ return Fee(UFixedLib.toUFixed(percent, -2), AmountLib.zero());
50
52
  }
51
53
 
52
54
  // pure free functions for operators
53
- function feeIsSame(Fee memory a, Fee memory b) public pure returns (bool isSame) {
55
+ function eq(Fee memory a, Fee memory b) public pure returns (bool isSame) {
54
56
  return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
55
57
  }
56
58
 
57
59
  function gtz(Fee memory fee) public pure returns (bool) {
58
- return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee > 0;
60
+ return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee.gtz();
59
61
  }
60
62
 
61
63
  function eqz(Fee memory fee) public pure returns (bool) {
62
- return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
64
+ return fee.fixedFee.eqz() && UFixed.unwrap(fee.fractionalFee) == 0;
63
65
  }
64
66
  }
@@ -28,8 +28,8 @@ library Key32Lib {
28
28
 
29
29
  uint8 public constant TYPE_SHIFT = 31 * 8;
30
30
  uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
31
- bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
32
- bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
31
+ bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // [32] byte in bytes32
32
+ bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // [0..31] bytes in bytes32
33
33
 
34
34
  function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
35
35
  uint256 uintObjectType = ObjectType.unwrap(objectType);
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32} from "../type/Key32.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibKey32Set {
8
+
9
+ struct Set {
10
+ Key32[] keys;
11
+ mapping(Key32 key => uint256 index) at;
12
+ }
13
+
14
+ error ErrorKey32SetAlreadyAdded(Key32 key);
15
+ error ErrorKey32SetNotInSet(Key32 key);
16
+
17
+
18
+ function add(Set storage set, Key32 key) external {
19
+ if (set.at[key] > 0) {
20
+ revert ErrorKey32SetAlreadyAdded(key);
21
+ }
22
+
23
+ set.keys.push(key);
24
+ set.at[key] = set.keys.length;
25
+ }
26
+
27
+ function remove(Set storage set, Key32 key) external {
28
+ uint256 nftIdIndex = set.at[key];
29
+
30
+ if (nftIdIndex == 0) {
31
+ revert ErrorKey32SetNotInSet(key);
32
+ }
33
+
34
+ uint256 toDeleteIndex = nftIdIndex - 1;
35
+ uint256 lastIndex = set.keys.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ Key32 lastId = set.keys[lastIndex];
39
+ set.keys[toDeleteIndex] = lastId;
40
+ set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.keys.pop();
44
+ delete set.at[key];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.keys.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, Key32 key) external view returns(bool inSet) {
52
+ return set.at[key] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.keys.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(Key32 key) {
60
+ return set.keys[index];
61
+ }
62
+ }