@etherisc/gif-next 0.0.2-719a8f1-103 → 0.0.2-71b939f-497

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 (773) hide show
  1. package/README.md +252 -21
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/{shared/IOwnable.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1018 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +917 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +384 -1836
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +722 -0
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +401 -2076
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2286 -0
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1031 -0
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +746 -0
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  92. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  94. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  95. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  96. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  97. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  98. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  99. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  100. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  101. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  132. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  133. package/artifacts/contracts/pool/Pool.sol/Pool.json +1029 -0
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +244 -345
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → product/IRiskService.sol/IRiskService.json} +202 -153
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  164. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  166. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  168. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  170. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  171. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  172. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  174. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  176. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  178. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +791 -163
  180. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +539 -188
  182. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  184. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/Registry.sol/Registry.json +991 -147
  186. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  188. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +592 -215
  190. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +379 -102
  192. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  194. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  195. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  196. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  198. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  199. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  200. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  201. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  202. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1835 -0
  204. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +846 -0
  206. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +223 -205
  208. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  209. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  212. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  214. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +620 -0
  216. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  218. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  220. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  222. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  223. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  224. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +82 -52
  226. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  228. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +94 -8
  230. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  231. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  232. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  233. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +168 -182
  234. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  236. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  238. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +101 -24
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +174 -12
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +215 -166
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +822 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  264. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  282. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  283. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  284. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  286. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  288. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  290. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  292. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  294. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  296. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  297. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  298. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  300. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  301. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  302. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  304. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  306. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  308. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  310. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  312. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  314. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  316. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  318. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  340. package/contracts/authorization/AccessAdmin.sol +615 -0
  341. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  342. package/contracts/authorization/Authorization.sol +289 -0
  343. package/contracts/authorization/IAccess.sol +49 -0
  344. package/contracts/authorization/IAccessAdmin.sol +137 -0
  345. package/contracts/authorization/IAuthorization.sol +60 -0
  346. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  347. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  348. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  349. package/contracts/distribution/BasicDistribution.sol +139 -0
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  351. package/contracts/distribution/Distribution.sol +284 -0
  352. package/contracts/distribution/DistributionService.sol +354 -0
  353. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  354. package/contracts/distribution/IDistributionComponent.sol +52 -0
  355. package/contracts/distribution/IDistributionService.sol +100 -0
  356. package/contracts/examples/fire/DamageLevel.sol +59 -0
  357. package/contracts/examples/fire/FirePool.sol +86 -0
  358. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  359. package/contracts/examples/fire/FireProduct.sol +431 -0
  360. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  361. package/contracts/examples/fire/FireUSD.sol +26 -0
  362. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  363. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  364. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  365. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  366. package/contracts/instance/BundleSet.sol +130 -0
  367. package/contracts/instance/IInstance.sol +64 -46
  368. package/contracts/instance/IInstanceService.sol +74 -0
  369. package/contracts/instance/Instance.sol +226 -70
  370. package/contracts/instance/InstanceAdmin.sol +281 -0
  371. package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
  372. package/contracts/instance/InstanceReader.sol +581 -0
  373. package/contracts/instance/InstanceService.sol +425 -0
  374. package/contracts/instance/InstanceServiceManager.sol +39 -0
  375. package/contracts/instance/InstanceStore.sol +287 -0
  376. package/contracts/instance/RiskSet.sol +119 -0
  377. package/contracts/instance/base/BalanceStore.sol +123 -0
  378. package/contracts/instance/base/Cloneable.sol +28 -0
  379. package/contracts/instance/base/ObjectCounter.sol +20 -0
  380. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  381. package/contracts/instance/base/ObjectSet.sol +78 -0
  382. package/contracts/instance/module/IAccess.sol +46 -0
  383. package/contracts/instance/module/IBundle.sol +20 -0
  384. package/contracts/instance/module/IComponents.sol +50 -0
  385. package/contracts/instance/module/IDistribution.sol +41 -0
  386. package/contracts/instance/module/IPolicy.sol +85 -0
  387. package/contracts/instance/module/IRisk.sol +12 -0
  388. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  389. package/contracts/oracle/BasicOracle.sol +47 -0
  390. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  391. package/contracts/oracle/IOracle.sol +36 -0
  392. package/contracts/oracle/IOracleComponent.sol +33 -0
  393. package/contracts/oracle/IOracleService.sol +66 -0
  394. package/contracts/oracle/Oracle.sol +156 -0
  395. package/contracts/oracle/OracleService.sol +309 -0
  396. package/contracts/oracle/OracleServiceManager.sol +39 -0
  397. package/contracts/pool/BasicPool.sol +175 -0
  398. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  399. package/contracts/pool/BundleService.sol +423 -0
  400. package/contracts/pool/BundleServiceManager.sol +39 -0
  401. package/contracts/pool/IBundleService.sol +122 -0
  402. package/contracts/pool/IPoolComponent.sol +62 -0
  403. package/contracts/pool/IPoolService.sol +153 -0
  404. package/contracts/pool/Pool.sol +345 -0
  405. package/contracts/pool/PoolService.sol +612 -0
  406. package/contracts/pool/PoolServiceManager.sol +39 -0
  407. package/contracts/product/ApplicationService.sol +259 -0
  408. package/contracts/product/ApplicationServiceManager.sol +38 -0
  409. package/contracts/product/BasicProduct.sol +49 -0
  410. package/contracts/product/BasicProductAuthorization.sol +42 -0
  411. package/contracts/product/ClaimService.sol +614 -0
  412. package/contracts/product/ClaimServiceManager.sol +38 -0
  413. package/contracts/product/IApplicationService.sol +66 -0
  414. package/contracts/product/IClaimService.sol +123 -0
  415. package/contracts/product/IPolicyService.sol +90 -0
  416. package/contracts/product/IPricingService.sol +39 -0
  417. package/contracts/product/IProductComponent.sol +59 -0
  418. package/contracts/product/IRiskService.sol +33 -0
  419. package/contracts/product/PolicyService.sol +733 -0
  420. package/contracts/product/PolicyServiceManager.sol +39 -0
  421. package/contracts/product/PricingService.sol +300 -0
  422. package/contracts/product/PricingServiceManager.sol +39 -0
  423. package/contracts/product/Product.sol +427 -0
  424. package/contracts/product/RiskService.sol +107 -0
  425. package/contracts/product/RiskServiceManager.sol +39 -0
  426. package/contracts/registry/ChainNft.sol +99 -37
  427. package/contracts/registry/IRegistry.sol +139 -39
  428. package/contracts/registry/IRegistryService.sol +49 -16
  429. package/contracts/registry/ITransferInterceptor.sol +1 -1
  430. package/contracts/registry/Registry.sol +568 -333
  431. package/contracts/registry/RegistryAdmin.sol +451 -0
  432. package/contracts/registry/RegistryService.sol +144 -278
  433. package/contracts/registry/RegistryServiceManager.sol +28 -27
  434. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  435. package/contracts/registry/ReleaseRegistry.sol +486 -0
  436. package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
  437. package/contracts/registry/TokenRegistry.sol +315 -0
  438. package/contracts/shared/Component.sol +217 -0
  439. package/contracts/shared/ComponentService.sol +809 -0
  440. package/contracts/shared/ComponentServiceManager.sol +38 -0
  441. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  442. package/contracts/shared/ContractLib.sol +224 -0
  443. package/contracts/shared/IComponent.sol +67 -0
  444. package/contracts/shared/IComponentService.sol +130 -0
  445. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  446. package/contracts/shared/IKeyValueStore.sol +54 -0
  447. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  448. package/contracts/shared/INftOwnable.sol +25 -0
  449. package/contracts/shared/IPolicyHolder.sol +35 -0
  450. package/contracts/shared/IRegisterable.sol +16 -12
  451. package/contracts/shared/IRegistryLinked.sol +11 -0
  452. package/contracts/shared/IService.sol +25 -0
  453. package/contracts/shared/InitializableERC165.sol +27 -0
  454. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  455. package/contracts/shared/KeyValueStore.sol +131 -0
  456. package/contracts/shared/Lifecycle.sol +88 -0
  457. package/contracts/shared/NftIdSet.sol +65 -0
  458. package/contracts/shared/NftOwnable.sol +90 -50
  459. package/contracts/shared/PolicyHolder.sol +62 -0
  460. package/contracts/shared/Registerable.sol +37 -71
  461. package/contracts/shared/RegistryLinked.sol +38 -0
  462. package/contracts/shared/Service.sol +84 -0
  463. package/contracts/shared/TokenHandler.sol +389 -0
  464. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  465. package/contracts/staking/IStaking.sol +173 -0
  466. package/contracts/staking/IStakingService.sol +157 -0
  467. package/contracts/staking/StakeManagerLib.sol +224 -0
  468. package/contracts/staking/Staking.sol +505 -0
  469. package/contracts/staking/StakingLifecycle.sol +23 -0
  470. package/contracts/staking/StakingManager.sol +52 -0
  471. package/contracts/staking/StakingReader.sol +190 -0
  472. package/contracts/staking/StakingService.sol +440 -0
  473. package/contracts/staking/StakingServiceManager.sol +44 -0
  474. package/contracts/staking/StakingStore.sol +605 -0
  475. package/contracts/staking/TargetManagerLib.sol +211 -0
  476. package/contracts/{types → type}/AddressSet.sol +1 -1
  477. package/contracts/type/Amount.sol +150 -0
  478. package/contracts/{types → type}/Blocknumber.sol +27 -3
  479. package/contracts/type/ClaimId.sol +80 -0
  480. package/contracts/type/DistributorType.sol +55 -0
  481. package/contracts/type/Fee.sol +66 -0
  482. package/contracts/{types → type}/Key32.sol +10 -5
  483. package/contracts/type/Key32Set.sol +62 -0
  484. package/contracts/{types → type}/NftId.sol +28 -15
  485. package/contracts/type/NftIdSet.sol +62 -0
  486. package/contracts/type/ObjectType.sol +278 -0
  487. package/contracts/type/PayoutId.sol +82 -0
  488. package/contracts/type/Referral.sol +90 -0
  489. package/contracts/type/RequestId.sol +75 -0
  490. package/contracts/{types → type}/RiskId.sol +31 -5
  491. package/contracts/type/RoleId.sol +162 -0
  492. package/contracts/type/Seconds.sol +101 -0
  493. package/contracts/type/Selector.sol +102 -0
  494. package/contracts/{types → type}/StateId.sol +53 -5
  495. package/contracts/type/String.sol +53 -0
  496. package/contracts/{types → type}/Timestamp.sol +38 -15
  497. package/contracts/{types → type}/UFixed.sol +48 -12
  498. package/contracts/{types → type}/Version.sol +8 -2
  499. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  500. package/contracts/upgradeability/ProxyManager.sol +232 -0
  501. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  502. package/contracts/upgradeability/Versionable.sol +59 -0
  503. package/package.json +12 -7
  504. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  505. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  506. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  507. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  508. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  509. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  510. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  511. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -177
  512. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  513. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -308
  514. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  515. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -207
  516. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  517. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  518. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  519. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  520. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  522. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  524. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  526. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  528. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  529. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  530. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  532. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  534. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  537. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  539. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  541. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  543. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  545. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  547. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  549. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  551. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  553. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  557. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -344
  561. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  562. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  563. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  564. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  565. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  566. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  567. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  568. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  570. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  572. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  573. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  574. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  575. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  576. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  578. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  579. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  580. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  581. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  583. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  584. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  585. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  588. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  589. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  591. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  592. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  593. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  594. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  595. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  597. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  598. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  599. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  602. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  604. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  605. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  606. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  607. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  608. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  609. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  610. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  611. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  612. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  614. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  615. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  616. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  619. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -484
  621. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  624. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  626. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  627. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  628. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  629. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  630. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  631. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  632. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  633. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  634. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  635. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  636. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -344
  637. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  638. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  639. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  640. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  641. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  642. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  643. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  644. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  645. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  646. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  647. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  648. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  649. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  651. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  653. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  654. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  655. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  656. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  657. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  658. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  659. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  660. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  661. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  662. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  663. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  664. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  665. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  667. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  669. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  671. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  673. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  675. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  676. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  677. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  679. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  681. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  682. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  683. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  685. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  687. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  689. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  691. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  693. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  695. package/contracts/components/BaseComponent.sol +0 -79
  696. package/contracts/components/Distribution.sol +0 -155
  697. package/contracts/components/IBaseComponent.sol +0 -19
  698. package/contracts/components/IDistributionComponent.sol +0 -46
  699. package/contracts/components/IPoolComponent.sol +0 -64
  700. package/contracts/components/IProductComponent.sol +0 -37
  701. package/contracts/components/Pool.sol +0 -246
  702. package/contracts/components/Product.sol +0 -299
  703. package/contracts/experiment/errors/Require.sol +0 -38
  704. package/contracts/experiment/errors/Revert.sol +0 -44
  705. package/contracts/experiment/inheritance/A.sol +0 -53
  706. package/contracts/experiment/inheritance/B.sol +0 -28
  707. package/contracts/experiment/inheritance/C.sol +0 -34
  708. package/contracts/experiment/inheritance/IA.sol +0 -13
  709. package/contracts/experiment/inheritance/IB.sol +0 -10
  710. package/contracts/experiment/inheritance/IC.sol +0 -12
  711. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  712. package/contracts/experiment/statemachine/ISM.sol +0 -25
  713. package/contracts/experiment/statemachine/SM.sol +0 -57
  714. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  715. package/contracts/experiment/types/TypeA.sol +0 -47
  716. package/contracts/experiment/types/TypeB.sol +0 -29
  717. package/contracts/instance/IInstanceLinked.sol +0 -8
  718. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  719. package/contracts/instance/base/IInstanceBase.sol +0 -23
  720. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  721. package/contracts/instance/base/IService.sol +0 -15
  722. package/contracts/instance/base/InstanceBase.sol +0 -89
  723. package/contracts/instance/base/KeyValueStore.sol +0 -161
  724. package/contracts/instance/base/Lifecycle.sol +0 -100
  725. package/contracts/instance/base/ModuleBase.sol +0 -57
  726. package/contracts/instance/base/ServiceBase.sol +0 -43
  727. package/contracts/instance/module/access/Access.sol +0 -149
  728. package/contracts/instance/module/access/IAccess.sol +0 -53
  729. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  730. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  731. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  732. package/contracts/instance/module/component/IComponent.sol +0 -28
  733. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  734. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  735. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  736. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  737. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  738. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  739. package/contracts/instance/module/risk/IRisk.sol +0 -26
  740. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  741. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  742. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  743. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  744. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  745. package/contracts/instance/service/DistributionService.sol +0 -54
  746. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  747. package/contracts/instance/service/IDistributionService.sol +0 -12
  748. package/contracts/instance/service/IPoolService.sol +0 -37
  749. package/contracts/instance/service/IProductService.sol +0 -107
  750. package/contracts/instance/service/PoolService.sol +0 -149
  751. package/contracts/instance/service/ProductService.sol +0 -510
  752. package/contracts/registry/IChainNft.sol +0 -22
  753. package/contracts/shared/ContractDeployerLib.sol +0 -72
  754. package/contracts/shared/ERC165.sol +0 -21
  755. package/contracts/shared/IOwnable.sol +0 -6
  756. package/contracts/shared/ProxyManager.sol +0 -103
  757. package/contracts/shared/Versionable.sol +0 -147
  758. package/contracts/test/TestDistribution.sol +0 -22
  759. package/contracts/test/TestFee.sol +0 -25
  760. package/contracts/test/TestPool.sol +0 -27
  761. package/contracts/test/TestProduct.sol +0 -74
  762. package/contracts/test/TestRegisterable.sol +0 -18
  763. package/contracts/test/TestRoleId.sol +0 -14
  764. package/contracts/test/TestService.sol +0 -26
  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/NftIdSet.sol +0 -60
  771. package/contracts/types/ObjectType.sol +0 -131
  772. package/contracts/types/ReferralId.sol +0 -48
  773. package/contracts/types/RoleId.sol +0 -38
@@ -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
+ view
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,9 +57,10 @@ 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
 
63
+ // TODO move to BlocknumberLib and rename to zero()
55
64
  /// @dev Return the Blocknumber zero (0)
56
65
  function zeroBlocknumber() pure returns (Blocknumber) {
57
66
  return toBlocknumber(0);
@@ -63,6 +72,21 @@ function blockNumber() view returns (Blocknumber) {
63
72
  }
64
73
 
65
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
+
66
90
  /// @dev return true if Blocknumber a is greater than Blocknumber b
67
91
  function gt(
68
92
  Blocknumber a,
@@ -0,0 +1,80 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint16 allows for 65'535 claims per policy
5
+ type ClaimId is uint16;
6
+
7
+ import {CLAIM} from "./ObjectType.sol";
8
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
9
+ import {NftId} from "./NftId.sol";
10
+
11
+ // type bindings
12
+ using {
13
+ eqClaimId as ==,
14
+ neClaimId as !=,
15
+ ClaimIdLib.eq,
16
+ ClaimIdLib.eqz,
17
+ ClaimIdLib.gtz,
18
+ ClaimIdLib.toInt,
19
+ ClaimIdLib.toKey32
20
+ } for ClaimId global;
21
+
22
+
23
+ // pure free functions for operators
24
+ function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
25
+ return ClaimIdLib.eq(a, b);
26
+ }
27
+
28
+ function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
29
+ return ClaimId.unwrap(a) != ClaimId.unwrap(b);
30
+ }
31
+
32
+ // library functions that operate on user defined type
33
+ library ClaimIdLib {
34
+ /// @dev claim id min value (0), use only for non-initialized values
35
+ function zero() public pure returns (ClaimId) {
36
+ return ClaimId.wrap(0);
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
+ }
42
+
43
+ /// @dev Converts an uint into a ClaimId.
44
+ function toClaimId(uint256 a) public pure returns (ClaimId) {
45
+ return ClaimId.wrap(uint16(a));
46
+ }
47
+
48
+ /// @dev Converts the ClaimId to a uint.
49
+ function toInt(ClaimId a) public pure returns (uint16) {
50
+ return uint16(ClaimId.unwrap(a));
51
+ }
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
+
67
+ /// @dev Returns true if the value is non-zero (> 0).
68
+ function gtz(ClaimId a) public pure returns (bool) {
69
+ return ClaimId.unwrap(a) > 0;
70
+ }
71
+
72
+ function eq(ClaimId a, ClaimId b) public pure returns (bool) {
73
+ return ClaimId.unwrap(a) == ClaimId.unwrap(b);
74
+ }
75
+
76
+ /// @dev Returns true if the value is zero (== 0).
77
+ function eqz(ClaimId a) public pure returns (bool) {
78
+ return ClaimId.unwrap(a) == 0;
79
+ }
80
+ }
@@ -0,0 +1,55 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {NftId} from "./NftId.sol";
6
+ import {DISTRIBUTOR_TYPE} from "./ObjectType.sol";
7
+
8
+ type DistributorType is bytes8;
9
+
10
+ // type bindings
11
+ using {
12
+ eqDistributorType as ==,
13
+ neDistributorType as !=,
14
+ DistributorTypeLib.toKey32
15
+ } for DistributorType global;
16
+
17
+ // general pure free functions
18
+
19
+ // pure free functions for operators
20
+ function eqDistributorType(
21
+ DistributorType a,
22
+ DistributorType b
23
+ ) pure returns (bool isSame) {
24
+ return DistributorType.unwrap(a) == DistributorType.unwrap(b);
25
+ }
26
+
27
+ function neDistributorType(
28
+ DistributorType a,
29
+ DistributorType b
30
+ ) pure returns (bool isDifferent) {
31
+ return DistributorType.unwrap(a) != DistributorType.unwrap(b);
32
+ }
33
+
34
+ // library functions that operate on user defined type
35
+ library DistributorTypeLib {
36
+
37
+ function zero() public pure returns (DistributorType) {
38
+ return DistributorType.wrap(bytes8(0));
39
+ }
40
+
41
+ // @dev Converts a referral string into an id.
42
+ function toDistributorType(NftId distributionNftId, string memory name) public pure returns (DistributorType) {
43
+ return DistributorType.wrap(bytes8(keccak256(abi.encode(distributionNftId, name))));
44
+ }
45
+
46
+ /// @dev Returns the key32 value for the specified nft id and object type.
47
+ function toKey32(DistributorType id) public pure returns (Key32 key) {
48
+ return Key32Lib.toKey32(DISTRIBUTOR_TYPE(), toKeyId(id));
49
+ }
50
+
51
+ /// @dev Returns the key id value for the specified nft id
52
+ function toKeyId(DistributorType id) public pure returns (KeyId keyId) {
53
+ return KeyId.wrap(bytes31(DistributorType.unwrap(id)));
54
+ }
55
+ }
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount, AmountLib} from "./Amount.sol";
5
+ import {UFixed, UFixedLib} from "./UFixed.sol";
6
+
7
+ struct Fee {
8
+ UFixed fractionalFee;
9
+ // TODO migrate fixed fee to Amount
10
+ uint256 fixedFee;
11
+ }
12
+
13
+ library FeeLib {
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), 0);
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, fixedFee);
26
+ }
27
+
28
+ /// @dev Calculates fee and net amounts for the provided parameters
29
+ function calculateFee(
30
+ Fee memory fee,
31
+ Amount amount
32
+ )
33
+ public
34
+ pure
35
+ returns (
36
+ Amount feeAmount,
37
+ Amount netAmount
38
+ )
39
+ {
40
+ netAmount = amount;
41
+ if(gtz(fee)) {
42
+ UFixed fractionalAmount =
43
+ amount.toUFixed() * fee.fractionalFee;
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
45
+ netAmount = netAmount - feeAmount;
46
+ }
47
+ }
48
+
49
+ /// @dev Return the percent fee struct (x%, 0)
50
+ function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
51
+ return Fee(UFixedLib.toUFixed(percent, -2), 0);
52
+ }
53
+
54
+ // pure free functions for operators
55
+ function eq(Fee memory a, Fee memory b) public pure returns (bool isSame) {
56
+ return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
57
+ }
58
+
59
+ function gtz(Fee memory fee) public pure returns (bool) {
60
+ return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee > 0;
61
+ }
62
+
63
+ function eqz(Fee memory fee) public pure returns (bool) {
64
+ return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
65
+ }
66
+ }
@@ -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
  import {ObjectType} from "./ObjectType.sol";
5
5
 
@@ -10,7 +10,8 @@ type KeyId is bytes31;
10
10
  using {
11
11
  eqKey32 as ==,
12
12
  neKey32 as !=,
13
- Key32Lib.toKey
13
+ Key32Lib.toKeyId,
14
+ Key32Lib.toObjectType
14
15
  } for Key32 global;
15
16
 
16
17
  // @dev Returns true iff keys are identical
@@ -27,8 +28,8 @@ library Key32Lib {
27
28
 
28
29
  uint8 public constant TYPE_SHIFT = 31 * 8;
29
30
  uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
30
- bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
31
- 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
32
33
 
33
34
  function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
34
35
  uint256 uintObjectType = ObjectType.unwrap(objectType);
@@ -37,9 +38,13 @@ library Key32Lib {
37
38
  return Key32.wrap(bytes32(uintKey));
38
39
  }
39
40
 
40
- function toKey(Key32 key) public pure returns (ObjectType objectType, KeyId id) {
41
+ function toObjectType(Key32 key) public pure returns (ObjectType objectType) {
41
42
  bytes32 key32 = Key32.unwrap(key);
42
43
  objectType = ObjectType.wrap(uint8(uint256(key32 & TYPE_MASK) >> TYPE_SHIFT));
44
+ }
45
+
46
+ function toKeyId(Key32 key) public pure returns (KeyId id) {
47
+ bytes32 key32 = Key32.unwrap(key);
43
48
  id = KeyId.wrap(bytes31((key32 & ID_MASK) << ID_SHIFT));
44
49
  }
45
50
  }