@etherisc/gif-next 0.0.2-9306579-093 → 0.0.2-9356555-232

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 (490) hide show
  1. package/README.md +27 -6
  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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +211 -66
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +142 -25
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -216
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +113 -130
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +334 -159
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +115 -65
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -112
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +205 -66
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +158 -195
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +206 -27
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +351 -318
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +203 -28
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +259 -168
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +156 -153
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -193
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +714 -283
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +211 -82
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +434 -128
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +627 -207
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +129 -157
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -45
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +469 -338
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +132 -173
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +94 -106
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +108 -125
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +151 -81
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +95 -41
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +107 -152
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +156 -326
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +79 -101
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -135
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -145
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +192 -229
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +107 -163
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +330 -368
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +119 -69
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +190 -48
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +80 -38
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +228 -186
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +272 -173
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +100 -78
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +131 -9
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +170 -19
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +139 -54
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +117 -43
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +211 -164
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +86 -6
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -170
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +102 -64
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +200 -106
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +93 -51
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +224 -182
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +167 -67
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +92 -38
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -17
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  189. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/Registry.sol/Registry.json +142 -53
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +331 -261
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +181 -74
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -33
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +414 -250
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  208. package/artifacts/contracts/shared/Component.sol/Component.json +105 -104
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -485
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +99 -73
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -2
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -86
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +94 -106
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  234. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +107 -124
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +55 -2
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +110 -122
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +33 -33
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -192
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +89 -51
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +120 -55
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +171 -130
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  325. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +44 -12
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/contracts/accounting/AccountingService.sol +262 -0
  340. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  341. package/contracts/accounting/IAccountingService.sol +45 -0
  342. package/contracts/authorization/AccessAdmin.sol +237 -140
  343. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  344. package/contracts/authorization/Authorization.sol +321 -205
  345. package/contracts/authorization/IAccess.sol +1 -0
  346. package/contracts/authorization/IAccessAdmin.sol +17 -9
  347. package/contracts/authorization/IAuthorization.sol +27 -7
  348. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  349. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  350. package/contracts/distribution/BasicDistribution.sol +15 -12
  351. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  352. package/contracts/distribution/Distribution.sol +41 -47
  353. package/contracts/distribution/DistributionService.sol +127 -78
  354. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  355. package/contracts/distribution/IDistributionComponent.sol +1 -1
  356. package/contracts/distribution/IDistributionService.sol +22 -20
  357. package/contracts/examples/fire/FirePool.sol +25 -10
  358. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  359. package/contracts/examples/fire/FireProduct.sol +66 -41
  360. package/contracts/examples/fire/FireProductAuthorization.sol +3 -3
  361. package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -4
  362. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  363. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  364. package/contracts/examples/unpermissioned/SimplePool.sol +37 -7
  365. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleProduct.sol +53 -27
  367. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  368. package/contracts/instance/BundleSet.sol +42 -38
  369. package/contracts/instance/IInstance.sol +17 -10
  370. package/contracts/instance/IInstanceService.sol +9 -29
  371. package/contracts/instance/Instance.sol +52 -34
  372. package/contracts/instance/InstanceAdmin.sol +249 -100
  373. package/contracts/instance/InstanceAuthorizationV3.sol +54 -45
  374. package/contracts/instance/InstanceReader.sol +187 -32
  375. package/contracts/instance/InstanceService.sol +85 -146
  376. package/contracts/instance/InstanceServiceManager.sol +1 -1
  377. package/contracts/instance/InstanceStore.sol +13 -2
  378. package/contracts/instance/RiskSet.sol +118 -0
  379. package/contracts/instance/base/ObjectCounter.sol +1 -2
  380. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  381. package/contracts/instance/base/ObjectSet.sol +31 -33
  382. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  383. package/contracts/instance/module/IComponents.sol +10 -7
  384. package/contracts/instance/module/IDistribution.sol +5 -2
  385. package/contracts/instance/module/IPolicy.sol +2 -1
  386. package/contracts/instance/module/IRisk.sol +3 -0
  387. package/contracts/oracle/BasicOracle.sol +0 -1
  388. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  389. package/contracts/oracle/IOracleService.sol +2 -1
  390. package/contracts/oracle/Oracle.sol +5 -16
  391. package/contracts/oracle/OracleService.sol +107 -78
  392. package/contracts/oracle/OracleServiceManager.sol +1 -1
  393. package/contracts/pool/BasicPool.sol +33 -24
  394. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  395. package/contracts/pool/BundleService.sol +88 -154
  396. package/contracts/pool/BundleServiceManager.sol +1 -1
  397. package/contracts/pool/IBundleService.sol +15 -43
  398. package/contracts/pool/IPoolComponent.sol +1 -7
  399. package/contracts/pool/IPoolService.sol +58 -64
  400. package/contracts/pool/Pool.sol +112 -120
  401. package/contracts/pool/PoolLib.sol +216 -0
  402. package/contracts/pool/PoolService.sol +436 -242
  403. package/contracts/pool/PoolServiceManager.sol +1 -1
  404. package/contracts/product/ApplicationService.sol +39 -16
  405. package/contracts/product/ApplicationServiceManager.sol +1 -1
  406. package/contracts/product/BasicProduct.sol +10 -12
  407. package/contracts/product/BasicProductAuthorization.sol +24 -11
  408. package/contracts/product/ClaimService.sol +202 -151
  409. package/contracts/product/ClaimServiceManager.sol +1 -1
  410. package/contracts/product/IApplicationService.sol +8 -2
  411. package/contracts/product/IClaimService.sol +14 -2
  412. package/contracts/product/IPolicyService.sol +26 -11
  413. package/contracts/product/IPricingService.sol +10 -9
  414. package/contracts/product/IProductComponent.sol +10 -1
  415. package/contracts/product/IRiskService.sol +7 -7
  416. package/contracts/product/PolicyService.sol +248 -252
  417. package/contracts/product/PolicyServiceLib.sol +65 -0
  418. package/contracts/product/PolicyServiceManager.sol +1 -1
  419. package/contracts/product/PricingService.sol +35 -26
  420. package/contracts/product/PricingServiceManager.sol +3 -3
  421. package/contracts/product/Product.sol +100 -63
  422. package/contracts/product/RiskService.sol +89 -31
  423. package/contracts/product/RiskServiceManager.sol +1 -1
  424. package/contracts/registry/ChainNft.sol +10 -11
  425. package/contracts/registry/IRegistry.sol +14 -18
  426. package/contracts/registry/IRegistryService.sol +6 -4
  427. package/contracts/registry/IRelease.sol +26 -0
  428. package/contracts/registry/ITransferInterceptor.sol +1 -2
  429. package/contracts/registry/Registry.sol +29 -6
  430. package/contracts/registry/RegistryAdmin.sol +132 -242
  431. package/contracts/registry/RegistryService.sol +40 -58
  432. package/contracts/registry/RegistryServiceManager.sol +1 -1
  433. package/contracts/registry/ReleaseAdmin.sol +245 -0
  434. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  435. package/contracts/registry/ReleaseRegistry.sol +257 -237
  436. package/contracts/registry/ServiceAuthorizationV3.sol +97 -48
  437. package/contracts/registry/TokenRegistry.sol +6 -8
  438. package/contracts/shared/Component.sol +69 -118
  439. package/contracts/shared/ComponentService.sol +422 -371
  440. package/contracts/shared/ComponentServiceManager.sol +1 -1
  441. package/contracts/shared/ComponentVerifyingService.sol +27 -15
  442. package/contracts/shared/ContractLib.sol +224 -9
  443. package/contracts/shared/IComponent.sol +8 -20
  444. package/contracts/shared/IComponentService.sol +41 -37
  445. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  446. package/contracts/shared/ILifecycle.sol +3 -1
  447. package/contracts/shared/INftOwnable.sol +2 -0
  448. package/contracts/shared/IRegisterable.sol +23 -1
  449. package/contracts/shared/IService.sol +3 -5
  450. package/contracts/shared/InstanceLinkedComponent.sol +68 -42
  451. package/contracts/shared/KeyValueStore.sol +1 -1
  452. package/contracts/shared/Lifecycle.sol +15 -4
  453. package/contracts/shared/NftOwnable.sol +26 -6
  454. package/contracts/shared/PolicyHolder.sol +1 -1
  455. package/contracts/shared/Registerable.sol +53 -19
  456. package/contracts/shared/RegistryLinked.sol +7 -13
  457. package/contracts/shared/Service.sol +9 -31
  458. package/contracts/shared/TokenHandler.sol +274 -72
  459. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  460. package/contracts/staking/IStaking.sol +5 -8
  461. package/contracts/staking/IStakingService.sol +8 -3
  462. package/contracts/staking/StakeManagerLib.sol +1 -1
  463. package/contracts/staking/Staking.sol +63 -35
  464. package/contracts/staking/StakingReader.sol +1 -1
  465. package/contracts/staking/StakingService.sol +45 -22
  466. package/contracts/staking/StakingServiceManager.sol +5 -4
  467. package/contracts/type/Key32.sol +2 -2
  468. package/contracts/type/Key32Set.sol +62 -0
  469. package/contracts/type/NftId.sol +6 -0
  470. package/contracts/type/ObjectType.sol +48 -21
  471. package/contracts/type/RiskId.sol +26 -8
  472. package/contracts/type/RoleId.sol +23 -15
  473. package/contracts/type/Selector.sol +5 -0
  474. package/contracts/type/StateId.sol +14 -1
  475. package/contracts/type/Timestamp.sol +0 -5
  476. package/contracts/type/UFixed.sol +9 -119
  477. package/contracts/type/Version.sol +15 -5
  478. package/contracts/upgradeability/ProxyManager.sol +2 -1
  479. package/package.json +5 -4
  480. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  481. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  482. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  483. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  484. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  486. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  487. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  488. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  489. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  490. package/contracts/instance/module/IAccess.sol +0 -46
@@ -93,7 +93,7 @@ contract StakingReader is
93
93
 
94
94
 
95
95
  function getTargetNftId(NftId stakeNftId) public view returns (NftId targetNftId) {
96
- return _registry.getObjectInfo(stakeNftId).parentNftId;
96
+ return _registry.getParentNftId(stakeNftId);
97
97
  }
98
98
 
99
99
 
@@ -4,21 +4,15 @@ pragma solidity ^0.8.20;
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
5
 
6
6
  import {Amount} from "../type/Amount.sol";
7
- import {ChainNft} from "../registry/ChainNft.sol";
8
- import {IPoolService} from "../pool/IPoolService.sol";
9
7
  import {IRegisterable} from "../shared/IRegisterable.sol";
10
8
  import {IRegistry} from "../registry/IRegistry.sol";
11
9
  import {RegistryService} from "../registry/RegistryService.sol";
12
10
  import {IStaking} from "./IStaking.sol";
13
11
  import {IStakingService} from "./IStakingService.sol";
14
12
  import {NftId, NftIdLib} from "../type/NftId.sol";
15
- import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
13
+ import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
16
14
  import {Seconds} from "../type/Seconds.sol";
17
15
  import {Service} from "../shared/Service.sol";
18
- import {StakeManagerLib} from "./StakeManagerLib.sol";
19
- import {StakingReader} from "./StakingReader.sol";
20
- import {TargetManagerLib} from "./TargetManagerLib.sol";
21
- import {Timestamp} from "../type/Timestamp.sol";
22
16
  import {TokenHandler} from "../shared/TokenHandler.sol";
23
17
  import {UFixed} from "../type/UFixed.sol";
24
18
 
@@ -38,14 +32,28 @@ contract StakingService is
38
32
  TokenHandler _tokenHandler;
39
33
  }
40
34
 
41
- modifier onlyNftOwner(NftId nftId) {
42
- if(msg.sender != getRegistry().ownerOf(nftId)) {
43
- revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
35
+
36
+ modifier onlyStaking() {
37
+ if (msg.sender != address(_getStakingServiceStorage()._staking)) {
38
+ revert ErrorStakingServiceNotStaking(msg.sender);
44
39
  }
45
40
  _;
46
41
  }
47
42
 
48
43
 
44
+ function approveTokenHandler(
45
+ IERC20Metadata token,
46
+ Amount amount
47
+ )
48
+ external
49
+ virtual
50
+ onlyStaking()
51
+ {
52
+ _getStakingServiceStorage()._tokenHandler.approve(
53
+ token, amount);
54
+ }
55
+
56
+
49
57
  function createInstanceTarget(
50
58
  NftId targetNftId,
51
59
  Seconds initialLockingPeriod,
@@ -72,6 +80,7 @@ contract StakingService is
72
80
  virtual
73
81
  restricted()
74
82
  {
83
+ _checkNftType(instanceNftId, INSTANCE());
75
84
  _getStakingServiceStorage()._staking.setLockingPeriod(
76
85
  instanceNftId,
77
86
  lockingPeriod);
@@ -83,6 +92,7 @@ contract StakingService is
83
92
  virtual
84
93
  restricted()
85
94
  {
95
+ _checkNftType(instanceNftId, INSTANCE());
86
96
  _getStakingServiceStorage()._staking.setRewardRate(
87
97
  instanceNftId,
88
98
  rewardRate);
@@ -95,6 +105,7 @@ contract StakingService is
95
105
  restricted()
96
106
  returns (Amount newBalance)
97
107
  {
108
+ _checkNftType(instanceNftId, INSTANCE());
98
109
  return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
99
110
  }
100
111
 
@@ -116,6 +127,7 @@ contract StakingService is
116
127
  restricted()
117
128
  returns (Amount newBalance)
118
129
  {
130
+ _checkNftType(instanceNftId, INSTANCE());
119
131
  // update reward reserve book keeping
120
132
  StakingServiceStorage storage $ = _getStakingServiceStorage();
121
133
  newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
@@ -123,7 +135,7 @@ contract StakingService is
123
135
  // transfer withdrawal amount to target owner
124
136
  address instanceOwner = getRegistry().ownerOf(instanceNftId);
125
137
  emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
126
- $._staking.transferDipAmount(
138
+ $._tokenHandler.pushToken(
127
139
  instanceOwner,
128
140
  dipAmount);
129
141
  }
@@ -171,8 +183,8 @@ contract StakingService is
171
183
  emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
172
184
 
173
185
  // collect staked dip by staking
174
- $._staking.collectDipAmount(
175
- stakeOwner,
186
+ $._tokenHandler.pullToken(
187
+ stakeOwner,
176
188
  dipAmount);
177
189
  }
178
190
 
@@ -186,6 +198,8 @@ contract StakingService is
186
198
  restricted()
187
199
  onlyNftOwner(stakeNftId)
188
200
  {
201
+ _checkNftType(stakeNftId, STAKE());
202
+
189
203
  StakingServiceStorage storage $ = _getStakingServiceStorage();
190
204
  address stakeOwner = msg.sender;
191
205
 
@@ -197,7 +211,7 @@ contract StakingService is
197
211
  // collect staked dip by staking
198
212
  if (dipAmount.gtz()) {
199
213
  emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
200
- $._staking.collectDipAmount(
214
+ $._tokenHandler.pullToken(
201
215
  stakeOwner,
202
216
  dipAmount);
203
217
  }
@@ -216,6 +230,8 @@ contract StakingService is
216
230
  NftId newStakeNftId
217
231
  )
218
232
  {
233
+ _checkNftType(stakeNftId, STAKE());
234
+
219
235
  StakingServiceStorage storage $ = _getStakingServiceStorage();
220
236
  // TODO implement
221
237
  }
@@ -228,6 +244,8 @@ contract StakingService is
228
244
  virtual
229
245
  restricted()
230
246
  {
247
+ _checkNftType(stakeNftId, STAKE());
248
+
231
249
  StakingServiceStorage storage $ = _getStakingServiceStorage();
232
250
  $._staking.updateRewards(stakeNftId);
233
251
 
@@ -241,12 +259,14 @@ contract StakingService is
241
259
  restricted()
242
260
  onlyNftOwner(stakeNftId)
243
261
  {
262
+ _checkNftType(stakeNftId, STAKE());
263
+
244
264
  StakingServiceStorage storage $ = _getStakingServiceStorage();
245
265
  address stakeOwner = msg.sender;
246
266
 
247
267
  Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
248
268
  emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
249
- $._staking.transferDipAmount(
269
+ $._tokenHandler.pushToken(
250
270
  stakeOwner,
251
271
  rewardsClaimedAmount);
252
272
  }
@@ -258,6 +278,8 @@ contract StakingService is
258
278
  restricted()
259
279
  onlyNftOwner(stakeNftId)
260
280
  {
281
+ _checkNftType(stakeNftId, STAKE());
282
+
261
283
  StakingServiceStorage storage $ = _getStakingServiceStorage();
262
284
  address stakeOwner = msg.sender;
263
285
 
@@ -268,8 +290,9 @@ contract StakingService is
268
290
 
269
291
  Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
270
292
  emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
271
- $._staking.transferDipAmount(
272
- stakeOwner,
293
+
294
+ $._tokenHandler.pushToken(
295
+ stakeOwner,
273
296
  totalAmount);
274
297
  }
275
298
 
@@ -327,15 +350,15 @@ contract StakingService is
327
350
  {
328
351
  (
329
352
  address authority,
330
- address registryAddress,
331
- address stakingAddress
353
+ address registry,
354
+ address staking
332
355
  ) = abi.decode(data, (address, address, address));
333
356
 
334
- _initializeService(registryAddress, authority, owner);
357
+ __Service_init(authority, registry, owner);
335
358
 
336
359
  StakingServiceStorage storage $ = _getStakingServiceStorage();
337
360
  $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
338
- $._staking = _registerStaking(stakingAddress);
361
+ $._staking = _registerStaking(staking);
339
362
  $._dip = $._staking.getToken();
340
363
  $._tokenHandler = $._staking.getTokenHandler();
341
364
 
@@ -388,7 +411,7 @@ contract StakingService is
388
411
  emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
389
412
 
390
413
  // collect reward dip from provider
391
- $._staking.collectDipAmount(
414
+ $._tokenHandler.pullToken(
392
415
  rewardProvider,
393
416
  dipAmount);
394
417
  }
@@ -15,17 +15,18 @@ contract StakingServiceManager is
15
15
  /// @dev initializes proxy manager with service implementation
16
16
  constructor(
17
17
  address authority,
18
- address registryAddress,
18
+ address registry,
19
19
  bytes32 salt
20
20
  )
21
21
  {
22
22
  StakingService svc = new StakingService();
23
23
  bytes memory data = abi.encode(
24
24
  authority,
25
- registryAddress,
26
- IRegistry(registryAddress).getStakingAddress());
25
+ registry,
26
+ IRegistry(registry).getStakingAddress());
27
+
27
28
  IVersionable versionable = initialize(
28
- registryAddress,
29
+ registry,
29
30
  address(svc),
30
31
  data,
31
32
  salt);
@@ -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
+ }
@@ -76,4 +76,10 @@ library NftIdLib {
76
76
  function toKeyId(NftId id) public pure returns (KeyId keyId) {
77
77
  return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
78
78
  }
79
+
80
+ function toNftId(KeyId keyId) public pure returns (NftId nftId) {
81
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
82
+ assert(keyIdInt < type(uint96).max);
83
+ return NftId.wrap(uint96(keyIdInt));
84
+ }
79
85
  }
@@ -44,10 +44,16 @@ function INSTANCE() pure returns (ObjectType) {
44
44
  return ObjectType.wrap(10);
45
45
  }
46
46
 
47
+ /// @dev Generic component object type.
48
+ /// Component role id range is 11-19.
49
+ /// Stick to this range for new component object types.
47
50
  function COMPONENT() pure returns (ObjectType) {
48
51
  return ObjectType.wrap(11);
49
52
  }
50
53
 
54
+ /// @dev Product object type.
55
+ /// IMPORTANT the actual value has an influence on the corresponding role id (RoleIdLib.sol).
56
+ /// Do not change this value without updating the corresponding role id calculation.
51
57
  function PRODUCT() pure returns (ObjectType) {
52
58
  return ObjectType.wrap(12);
53
59
  }
@@ -64,6 +70,8 @@ function POOL() pure returns (ObjectType) {
64
70
  return ObjectType.wrap(15);
65
71
  }
66
72
 
73
+ /// @dev Application object type.
74
+ /// Range for NFT objects created thorugh components is 20-29.
67
75
  function APPLICATION() pure returns (ObjectType) {
68
76
  return ObjectType.wrap(20);
69
77
  }
@@ -72,54 +80,69 @@ function POLICY() pure returns (ObjectType) {
72
80
  return ObjectType.wrap(21);
73
81
  }
74
82
 
75
- function PREMIUM() pure returns (ObjectType) {
83
+ function BUNDLE() pure returns (ObjectType) {
76
84
  return ObjectType.wrap(22);
77
85
  }
78
86
 
79
- function CLAIM() pure returns (ObjectType) {
87
+ function DISTRIBUTOR() pure returns (ObjectType) {
80
88
  return ObjectType.wrap(23);
81
89
  }
82
90
 
83
- function PAYOUT() pure returns (ObjectType) {
84
- return ObjectType.wrap(24);
91
+ /// @dev Stake object type.
92
+ /// NFT object type is 30
93
+ function STAKE() pure returns (ObjectType) {
94
+ return ObjectType.wrap(30);
85
95
  }
86
96
 
87
- function RISK() pure returns (ObjectType) {
88
- return ObjectType.wrap(25);
97
+ /// @dev Staking target object type.
98
+ function TARGET() pure returns (ObjectType) {
99
+ return ObjectType.wrap(31);
100
+ }
101
+
102
+ /// @dev Accounting object type.
103
+ /// Range for non-NFT types created through components is 40+
104
+ function ACCOUNTING() pure returns (ObjectType) {
105
+ return ObjectType.wrap(40);
106
+ }
107
+
108
+ function FEE() pure returns (ObjectType) {
109
+ return ObjectType.wrap(41);
89
110
  }
90
111
 
91
112
  function PRICE() pure returns (ObjectType) {
92
- return ObjectType.wrap(26);
113
+ return ObjectType.wrap(42);
93
114
  }
94
115
 
95
- function REQUEST() pure returns (ObjectType) {
96
- return ObjectType.wrap(27);
116
+ function PREMIUM() pure returns (ObjectType) {
117
+ return ObjectType.wrap(43);
97
118
  }
98
119
 
99
- function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
100
- return ObjectType.wrap(28);
120
+ function RISK() pure returns (ObjectType) {
121
+ return ObjectType.wrap(44);
101
122
  }
102
123
 
103
- function DISTRIBUTOR() pure returns (ObjectType) {
104
- return ObjectType.wrap(29);
124
+ function CLAIM() pure returns (ObjectType) {
125
+ return ObjectType.wrap(45);
105
126
  }
106
127
 
107
- function REFERRAL() pure returns (ObjectType) {
108
- return ObjectType.wrap(30);
128
+ function PAYOUT() pure returns (ObjectType) {
129
+ return ObjectType.wrap(46);
109
130
  }
110
131
 
111
- function BUNDLE() pure returns (ObjectType) {
112
- return ObjectType.wrap(31);
132
+ function REQUEST() pure returns (ObjectType) {
133
+ return ObjectType.wrap(47);
113
134
  }
114
135
 
115
- function TARGET() pure returns (ObjectType) {
116
- return ObjectType.wrap(32);
136
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
137
+ return ObjectType.wrap(48);
117
138
  }
118
139
 
119
- function STAKE() pure returns (ObjectType) {
120
- return ObjectType.wrap(33);
140
+ function REFERRAL() pure returns (ObjectType) {
141
+ return ObjectType.wrap(49);
121
142
  }
122
143
 
144
+
145
+
123
146
  /// @dev Object type that includes any other object type.
124
147
  /// Note that eq()/'==' does not take this property into account.
125
148
  function ALL() pure returns (ObjectType) {
@@ -202,6 +225,10 @@ library ObjectTypeLib {
202
225
  return "Price";
203
226
  } else if (objectType == BUNDLE()) {
204
227
  return "Bundle";
228
+ } else if (objectType == RISK()) {
229
+ return "Risk";
230
+ } else if (objectType == ACCOUNTING()) {
231
+ return "Accounting";
205
232
  }
206
233
 
207
234
  // fallback: ObjectType<obect-type-int>
@@ -2,6 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {NftId} from "./NftId.sol";
5
6
  import {RISK} from "./ObjectType.sol";
6
7
 
7
8
  type RiskId is bytes8;
@@ -10,9 +11,12 @@ type RiskId is bytes8;
10
11
  using {
11
12
  eqRiskId as ==,
12
13
  neRiskId as !=,
13
- RiskIdLib.toKey32,
14
14
  RiskIdLib.eq,
15
- RiskIdLib.eqz
15
+ RiskIdLib.eqz,
16
+ RiskIdLib.gtz,
17
+ RiskIdLib.toInt,
18
+ RiskIdLib.toKeyId,
19
+ RiskIdLib.toKey32
16
20
  } for RiskId global;
17
21
 
18
22
  // general pure free functions
@@ -32,14 +36,19 @@ library RiskIdLib {
32
36
  return RiskId.wrap(bytes8(0));
33
37
  }
34
38
 
35
- // @dev Converts a role string into a role id.
36
- function toRiskId(string memory risk) public pure returns (RiskId) {
37
- return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
39
+ // @dev Converts a risk id into a uint256.
40
+ function toInt(RiskId riskId) public pure returns (uint256) {
41
+ return uint64(RiskId.unwrap(riskId));
38
42
  }
39
43
 
40
- /// @dev Returns the key32 value for the specified nft id and object type.
41
- function toKey32(RiskId id) public pure returns (Key32 key) {
42
- return Key32Lib.toKey32(RISK(), toKeyId(id));
44
+ // @dev Converts a risk id string with a product NftId into a risk id.
45
+ function toRiskId(NftId productNftId, bytes32 risk) public pure returns (RiskId) {
46
+ return RiskId.wrap(bytes8(keccak256(abi.encode(productNftId, risk))));
47
+ }
48
+
49
+ /// @dev Returns the key32 value for the specified risk id.
50
+ function toKey32(RiskId riskId) public pure returns (Key32 key) {
51
+ return Key32Lib.toKey32(RISK(), toKeyId(riskId));
43
52
  }
44
53
 
45
54
  /// @dev Returns the key id value for the specified nft id
@@ -47,6 +56,11 @@ library RiskIdLib {
47
56
  return KeyId.wrap(bytes31(RiskId.unwrap(id)));
48
57
  }
49
58
 
59
+ function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
60
+ riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
61
+ assert(toInt(riskId) < 2**64);
62
+ }
63
+
50
64
  function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
51
65
  return eqRiskId(a, b);
52
66
  }
@@ -54,4 +68,8 @@ library RiskIdLib {
54
68
  function eqz(RiskId a) public pure returns (bool isZero) {
55
69
  return eqRiskId(a, zero());
56
70
  }
71
+
72
+ function gtz(RiskId a) public pure returns (bool isZero) {
73
+ return uint64(RiskId.unwrap(a)) > 0;
74
+ }
57
75
  }
@@ -11,9 +11,11 @@ type RoleId is uint64;
11
11
  using {
12
12
  eqRoleId as ==,
13
13
  neRoleId as !=,
14
+ RoleIdLib.toInt,
14
15
  RoleIdLib.eqz,
15
16
  RoleIdLib.gtz,
16
- RoleIdLib.toInt
17
+ RoleIdLib.isComponentRole,
18
+ RoleIdLib.isCustomRole
17
19
  // RoleIdLib.toKey32
18
20
  } for RoleId global;
19
21
 
@@ -54,17 +56,8 @@ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2)
54
56
  /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
55
57
  function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
56
58
 
57
- /// @dev instance specific role to register/own a product component
58
- function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11); }
59
-
60
- /// @dev instance specific role to register/own an oracle component
61
- function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(12); }
62
-
63
- /// @dev instance specific role to register/own a distribution component
64
- function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(13); }
65
-
66
- /// @dev instance specific role to register/own a pool component
67
- function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(14); }
59
+ /// @dev role assigned to release registry, release specfic to lock/unlock a release
60
+ function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
68
61
 
69
62
  //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
70
63
  // created and assigned during initial deployment for registry and staking
@@ -84,6 +77,8 @@ function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(14)
84
77
  // - application service role (version 3): 2003
85
78
 
86
79
  //--- GIF component contract roles (range 12'001 - 19'099) ------------------//
80
+ // the min value of 12'001 is based on the following calculation:
81
+ // object type * 1000 + 1 where the lowest object type is 12 (product)
87
82
  // assigned at component registration time
88
83
  // object type * 1000 + instane specific component counter
89
84
  // on any instance a maximum number of 999 components may be deployed
@@ -104,8 +99,10 @@ library RoleIdLib {
104
99
 
105
100
  uint64 public constant ALL_VERSIONS = 99;
106
101
  uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
107
- uint64 public constant COMPONENT_ROLE_FACTOR = 100;
108
- uint64 public constant CUSTOM_ROLE_MIN = 1000000;
102
+ uint64 public constant COMPONENT_ROLE_FACTOR = 1000;
103
+ uint64 public constant COMPONENT_ROLE_MIN_INT = 12000;
104
+ uint64 public constant COMPONENT_ROLE_MAX_INT = 19000;
105
+ uint64 public constant CUSTOM_ROLE_MIN_INT = 1000000;
109
106
 
110
107
  /// @dev Converts the RoleId to a uint.
111
108
  function zero() public pure returns (RoleId) {
@@ -124,7 +121,7 @@ library RoleIdLib {
124
121
 
125
122
  /// @dev Converts an uint into a custom role id.
126
123
  function toCustomRoleId(uint64 index) public pure returns (RoleId) {
127
- return toRoleId(CUSTOM_ROLE_MIN + index);
124
+ return toRoleId(CUSTOM_ROLE_MIN_INT + index);
128
125
  }
129
126
 
130
127
  /// @dev Converts the role id to a uint.
@@ -162,6 +159,17 @@ library RoleIdLib {
162
159
  return RoleId.unwrap(a) == 0;
163
160
  }
164
161
 
162
+ /// @dev Returns true iff the role id is a component role.
163
+ function isComponentRole(RoleId roleId) public pure returns (bool) {
164
+ uint64 roleIdInt = RoleId.unwrap(roleId);
165
+ return roleIdInt >= COMPONENT_ROLE_MIN_INT && roleIdInt <= COMPONENT_ROLE_MAX_INT;
166
+ }
167
+
168
+ /// @dev Returns true iff the role id is a custom role.
169
+ function isCustomRole(RoleId roleId) public pure returns (bool) {
170
+ return RoleId.unwrap(roleId) >= CUSTOM_ROLE_MIN_INT;
171
+ }
172
+
165
173
  /// @dev Returns the key32 value for the specified id and object type.
166
174
  function toKey32(RoleId a) public pure returns (Key32 key) {
167
175
  return Key32Lib.toKey32(ROLE(), toKeyId(a));
@@ -8,6 +8,7 @@ using {
8
8
  eqSelector as ==,
9
9
  neSelector as !=,
10
10
  SelectorLib.toBytes4,
11
+ SelectorLib.toString,
11
12
  SelectorLib.eqz
12
13
  } for Selector global;
13
14
 
@@ -46,6 +47,10 @@ library SelectorLib {
46
47
  function toBytes4(Selector s) public pure returns (bytes4) {
47
48
  return Selector.unwrap(s);
48
49
  }
50
+
51
+ function toString(Selector s) public pure returns (string memory) {
52
+ return string(abi.encode(Selector.unwrap(s)));
53
+ }
49
54
  }
50
55
 
51
56
  // selector specific set library
@@ -28,10 +28,18 @@ function DEPLOYING() pure returns (StateId) {
28
28
  return toStateId(3);
29
29
  }
30
30
 
31
- function ACTIVE() pure returns (StateId) {
31
+ function DEPLOYED() pure returns (StateId) {
32
32
  return toStateId(4);
33
33
  }
34
34
 
35
+ function ACTIVE() pure returns (StateId) {
36
+ return toStateId(5);
37
+ }
38
+
39
+ function SKIPPED() pure returns (StateId) {
40
+ return toStateId(6);
41
+ }
42
+
35
43
  function APPLIED() pure returns (StateId) {
36
44
  return toStateId(10);
37
45
  }
@@ -114,6 +122,11 @@ function neStateId(StateId a, StateId b) pure returns (bool isDifferent) {
114
122
 
115
123
  // library functions that operate on user defined type
116
124
  library StateIdLib {
125
+
126
+ function zero() public pure returns (StateId) {
127
+ return StateId.wrap(0);
128
+ }
129
+
117
130
  /// @dev Converts the NftId to a uint256.
118
131
  function toInt(StateId stateId) public pure returns (uint96) {
119
132
  return uint96(StateId.unwrap(stateId));
@@ -54,11 +54,6 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
54
54
  return Timestamp.unwrap(a) != Timestamp.unwrap(b);
55
55
  }
56
56
 
57
- /// @dev Converts the uint256 to a Timestamp.
58
- function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
59
- return TimestampLib.toTimestamp(timestamp);
60
- }
61
-
62
57
  // TODO move to TimestampLib and rename to zero()
63
58
  /// @dev Return the Timestamp zero (0)
64
59
  function zeroTimestamp() pure returns (Timestamp) {