@etherisc/gif-next 0.0.2-a105567-464 → 0.0.2-a221fa7-461

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 (464) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -239
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +317 -95
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +104 -136
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +158 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +227 -62
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +52 -48
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1093 -0
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -58
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -41
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +30 -206
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +37 -314
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +47 -35
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +112 -67
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +67 -51
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +36 -46
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +56 -40
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -48
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +43 -164
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -59
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -104
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1506 -167
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -77
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -56
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  179. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  181. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +117 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -4
  187. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  189. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  197. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -64
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  201. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  204. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  205. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  210. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  212. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  213. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  214. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  215. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  216. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  217. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  218. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  219. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
  220. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  221. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
  222. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  223. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
  224. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  225. package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
  226. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  227. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  228. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  229. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +43 -43
  230. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  231. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
  232. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  233. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
  234. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  235. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +41 -45
  236. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  237. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
  238. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  239. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
  240. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  241. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  242. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  244. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  246. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  248. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  250. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  252. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  254. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  256. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  260. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  262. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  264. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  266. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  268. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  270. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  272. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  274. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  276. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  278. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  280. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  282. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  284. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  286. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  288. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  290. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  291. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  292. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  293. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  294. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  295. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  296. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  297. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  298. package/contracts/authorization/AccessAdmin.sol +591 -0
  299. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  300. package/contracts/authorization/Authorization.sol +218 -0
  301. package/contracts/authorization/IAccess.sol +48 -0
  302. package/contracts/authorization/IAccessAdmin.sol +136 -0
  303. package/contracts/authorization/IAuthorization.sol +54 -0
  304. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  305. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  306. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  307. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  308. package/contracts/distribution/BasicDistribution.sol +138 -0
  309. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  310. package/contracts/distribution/Distribution.sol +144 -110
  311. package/contracts/distribution/DistributionService.sol +80 -26
  312. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  313. package/contracts/distribution/IDistributionComponent.sol +25 -39
  314. package/contracts/distribution/IDistributionService.sol +18 -1
  315. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  316. package/contracts/instance/IInstance.sol +20 -13
  317. package/contracts/instance/IInstanceService.sol +34 -23
  318. package/contracts/instance/Instance.sol +108 -89
  319. package/contracts/instance/InstanceAdmin.sol +202 -267
  320. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  321. package/contracts/instance/InstanceReader.sol +49 -9
  322. package/contracts/instance/InstanceService.sol +159 -78
  323. package/contracts/instance/InstanceServiceManager.sol +2 -6
  324. package/contracts/instance/InstanceStore.sol +38 -22
  325. package/contracts/instance/base/BalanceStore.sol +11 -6
  326. package/contracts/instance/base/Cloneable.sol +2 -25
  327. package/contracts/instance/base/ObjectCounter.sol +21 -0
  328. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  329. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  330. package/contracts/instance/module/IComponents.sol +0 -1
  331. package/contracts/oracle/BasicOracle.sol +48 -0
  332. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  333. package/contracts/oracle/IOracle.sol +36 -0
  334. package/contracts/oracle/IOracleComponent.sol +33 -0
  335. package/contracts/oracle/IOracleService.sol +65 -0
  336. package/contracts/oracle/Oracle.sol +166 -0
  337. package/contracts/oracle/OracleService.sol +278 -0
  338. package/contracts/oracle/OracleServiceManager.sol +39 -0
  339. package/contracts/pool/BasicPool.sol +164 -0
  340. package/contracts/pool/BasicPoolAuthorization.sol +52 -0
  341. package/contracts/pool/BundleService.sol +32 -44
  342. package/contracts/pool/BundleServiceManager.sol +2 -5
  343. package/contracts/pool/IPoolComponent.sol +0 -61
  344. package/contracts/pool/IPoolService.sol +3 -0
  345. package/contracts/pool/Pool.sol +143 -131
  346. package/contracts/pool/PoolService.sol +45 -33
  347. package/contracts/pool/PoolServiceManager.sol +2 -5
  348. package/contracts/product/ApplicationService.sol +17 -41
  349. package/contracts/product/ApplicationServiceManager.sol +2 -2
  350. package/contracts/product/BasicProduct.sol +82 -0
  351. package/contracts/product/BasicProductAuthorization.sol +43 -0
  352. package/contracts/product/ClaimService.sol +16 -37
  353. package/contracts/product/ClaimServiceManager.sol +2 -2
  354. package/contracts/product/IClaimService.sol +6 -0
  355. package/contracts/product/IProductComponent.sol +7 -9
  356. package/contracts/product/PolicyService.sol +7 -5
  357. package/contracts/product/PolicyServiceManager.sol +2 -5
  358. package/contracts/product/PricingService.sol +5 -6
  359. package/contracts/product/PricingServiceManager.sol +2 -5
  360. package/contracts/product/Product.sol +103 -88
  361. package/contracts/product/ProductService.sol +12 -37
  362. package/contracts/product/ProductServiceManager.sol +2 -5
  363. package/contracts/registry/ChainNft.sol +1 -0
  364. package/contracts/registry/IRegistry.sol +26 -18
  365. package/contracts/registry/IRegistryService.sol +6 -6
  366. package/contracts/registry/Registry.sol +86 -95
  367. package/contracts/registry/RegistryAdmin.sol +283 -155
  368. package/contracts/registry/RegistryService.sol +9 -23
  369. package/contracts/registry/RegistryServiceManager.sol +2 -7
  370. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  371. package/contracts/registry/ReleaseRegistry.sol +487 -0
  372. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  373. package/contracts/registry/TokenRegistry.sol +9 -52
  374. package/contracts/shared/Component.sol +19 -25
  375. package/contracts/shared/ComponentService.sol +94 -68
  376. package/contracts/shared/ComponentServiceManager.sol +2 -2
  377. package/contracts/shared/ComponentVerifyingService.sol +13 -7
  378. package/contracts/shared/IComponent.sol +3 -7
  379. package/contracts/shared/IComponentService.sol +21 -0
  380. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  381. package/contracts/shared/IKeyValueStore.sol +2 -1
  382. package/contracts/shared/ILifecycle.sol +1 -2
  383. package/contracts/shared/IService.sol +8 -1
  384. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  385. package/contracts/shared/KeyValueStore.sol +7 -6
  386. package/contracts/shared/Lifecycle.sol +16 -60
  387. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  388. package/contracts/shared/Service.sol +27 -22
  389. package/contracts/staking/IStaking.sol +41 -26
  390. package/contracts/staking/IStakingService.sol +42 -44
  391. package/contracts/staking/StakeManagerLib.sol +101 -26
  392. package/contracts/staking/Staking.sol +144 -126
  393. package/contracts/staking/StakingLifecycle.sol +23 -0
  394. package/contracts/staking/StakingManager.sol +2 -6
  395. package/contracts/staking/StakingReader.sol +73 -36
  396. package/contracts/staking/StakingService.sol +121 -86
  397. package/contracts/staking/StakingServiceManager.sol +2 -3
  398. package/contracts/staking/StakingStore.sol +401 -127
  399. package/contracts/staking/TargetManagerLib.sol +28 -0
  400. package/contracts/type/Amount.sol +15 -1
  401. package/contracts/type/NftId.sol +8 -8
  402. package/contracts/type/ObjectType.sol +171 -69
  403. package/contracts/type/RequestId.sol +75 -0
  404. package/contracts/type/RoleId.sol +103 -72
  405. package/contracts/type/Seconds.sol +10 -0
  406. package/contracts/type/Selector.sol +102 -0
  407. package/contracts/type/StateId.sol +12 -0
  408. package/contracts/type/String.sol +53 -0
  409. package/contracts/type/Timestamp.sol +6 -2
  410. package/contracts/type/UFixed.sol +6 -0
  411. package/contracts/type/Version.sol +3 -1
  412. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  413. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  414. package/package.json +8 -5
  415. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  416. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  417. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  418. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
  419. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  420. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  421. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  422. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  423. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  424. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  425. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  426. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  427. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  428. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  429. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  430. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  431. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  432. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  433. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  434. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  435. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  436. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  437. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  438. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  439. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  440. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  441. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  442. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  443. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  444. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  445. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  446. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  447. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
  448. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
  449. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
  450. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
  451. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
  452. package/contracts/registry/ReleaseManager.sol +0 -599
  453. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  454. package/contracts/shared/AccessManagerCustom.sol +0 -736
  455. package/contracts/shared/AccessManagerExtended.sol +0 -470
  456. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  457. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  458. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  459. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  460. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  461. package/contracts/staking/IStakingManager.sol +0 -15
  462. package/contracts/staking/IStakingStore.sol +0 -130
  463. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  464. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
4
6
  import {Amount, AmountLib} from "../type/Amount.sol";
5
7
  import {Component} from "../shared/Component.sol";
6
8
  import {IRegistry} from "../registry/IRegistry.sol";
@@ -153,6 +155,32 @@ library TargetManagerLib {
153
155
  }
154
156
 
155
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
+
156
184
  function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
157
185
  return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
158
186
  }
@@ -17,7 +17,8 @@ using {
17
17
  AmountLib.gtz,
18
18
  AmountLib.toInt,
19
19
  AmountLib.add,
20
- AmountLib.toUFixed
20
+ AmountLib.toUFixed,
21
+ AmountLib.multiplyWith
21
22
  } for Amount global;
22
23
 
23
24
  function addAmount(Amount a, Amount b) pure returns (Amount) {
@@ -86,6 +87,15 @@ library AmountLib {
86
87
  return Amount.unwrap(a1) > Amount.unwrap(a2);
87
88
  }
88
89
 
90
+ /// @dev return minimum of a1 and a2.
91
+ function min(Amount a1, Amount a2) public pure returns (Amount) {
92
+ if (Amount.unwrap(a1) < Amount.unwrap(a2)) {
93
+ return a1;
94
+ }
95
+
96
+ return a2;
97
+ }
98
+
89
99
  /// @dev return true if amount is larger than 0
90
100
  function gtz(Amount amount) public pure returns (bool) {
91
101
  return Amount.unwrap(amount) > 0;
@@ -107,6 +117,10 @@ library AmountLib {
107
117
  return UFixedLib.toUFixed(Amount.unwrap(amount));
108
118
  }
109
119
 
120
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
121
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
122
+ }
123
+
110
124
  function _max() internal pure returns (uint96) {
111
125
  // IMPORTANT: type nees to match with actual definition for Amount
112
126
  return type(uint96).max;
@@ -20,16 +20,11 @@ using {
20
20
 
21
21
  // pure free functions for operators
22
22
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
23
- return NftId.unwrap(a) == NftId.unwrap(b);
23
+ return NftIdLib.eq(a, b);
24
24
  }
25
25
 
26
26
  function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
27
- return NftId.unwrap(a) != NftId.unwrap(b);
28
- }
29
-
30
- // @dev Converts the uint256 to a NftId.
31
- function toNftId(uint256 id) pure returns (NftId) {
32
- return NftId.wrap(uint96(id));
27
+ return NftIdLib.ne(a, b);
33
28
  }
34
29
 
35
30
  // library functions that operate on user defined type
@@ -63,7 +58,12 @@ library NftIdLib {
63
58
 
64
59
  /// @dev Returns true if the values are equal (==).
65
60
  function eq(NftId a, NftId b) public pure returns (bool isSame) {
66
- return eqNftId(a, b);
61
+ return NftId.unwrap(a) == NftId.unwrap(b);
62
+ }
63
+
64
+ /// @dev Returns true if the values are not equal (!=).
65
+ function ne(NftId a, NftId b) public pure returns (bool isSame) {
66
+ return NftId.unwrap(a) != NftId.unwrap(b);
67
67
  }
68
68
 
69
69
  /// @dev Returns the key32 value for the specified nft id and object type.
@@ -12,141 +12,138 @@ using {
12
12
  ObjectTypeLib.gtz
13
13
  } for ObjectType global;
14
14
 
15
- // general pure free functions
16
15
 
17
- function RELEASE() pure returns (ObjectType) {
18
- return toObjectType(1);
19
- }
16
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
20
17
 
21
18
  function PROTOCOL() pure returns (ObjectType) {
22
- return toObjectType(10);
23
- }
24
-
25
- function ROLE() pure returns (ObjectType) {
26
- return toObjectType(20);
27
- }
28
-
29
- function TARGET() pure returns (ObjectType) {
30
- return toObjectType(30);
19
+ return ObjectType.wrap(1);
31
20
  }
32
21
 
33
22
  function REGISTRY() pure returns (ObjectType) {
34
- return toObjectType(40);
23
+ return ObjectType.wrap(2);
35
24
  }
36
25
 
37
26
  function STAKING() pure returns (ObjectType) {
38
- return toObjectType(45);
27
+ return ObjectType.wrap(3);
39
28
  }
40
29
 
41
- function TOKEN() pure returns (ObjectType) {
42
- return toObjectType(50);
30
+ function RELEASE() pure returns (ObjectType) {
31
+ return ObjectType.wrap(6);
43
32
  }
44
33
 
45
- function SERVICE() pure returns (ObjectType) {
46
- return toObjectType(60);
34
+ function ROLE() pure returns (ObjectType) {
35
+ return ObjectType.wrap(7);
47
36
  }
48
37
 
49
- function INSTANCE() pure returns (ObjectType) {
50
- return toObjectType(70);
38
+ function SERVICE() pure returns (ObjectType) {
39
+ return ObjectType.wrap(8);
51
40
  }
52
41
 
53
- function STAKE() pure returns (ObjectType) {
54
- return toObjectType(80);
42
+ function INSTANCE() pure returns (ObjectType) {
43
+ return ObjectType.wrap(10);
55
44
  }
56
45
 
57
46
  function COMPONENT() pure returns (ObjectType) {
58
- return toObjectType(100);
47
+ return ObjectType.wrap(11);
59
48
  }
60
49
 
61
- function FEE() pure returns (ObjectType) {
62
- return toObjectType(101);
50
+ function PRODUCT() pure returns (ObjectType) {
51
+ return ObjectType.wrap(12);
63
52
  }
64
53
 
65
- function PRODUCT_SETUP() pure returns (ObjectType) {
66
- return toObjectType(101);
54
+ function ORACLE() pure returns (ObjectType) {
55
+ return ObjectType.wrap(13);
67
56
  }
68
57
 
69
- function PRODUCT() pure returns (ObjectType) {
70
- return toObjectType(110);
58
+ function DISTRIBUTION() pure returns (ObjectType) {
59
+ return ObjectType.wrap(14);
71
60
  }
72
61
 
73
- function DISTRIBUTION() pure returns (ObjectType) {
74
- return toObjectType(120);
62
+ function POOL() pure returns (ObjectType) {
63
+ return ObjectType.wrap(15);
75
64
  }
76
65
 
77
- function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
78
- return toObjectType(121);
66
+ function APPLICATION() pure returns (ObjectType) {
67
+ return ObjectType.wrap(20);
79
68
  }
80
69
 
81
- function DISTRIBUTOR() pure returns (ObjectType) {
82
- return toObjectType(122);
70
+ function POLICY() pure returns (ObjectType) {
71
+ return ObjectType.wrap(21);
83
72
  }
84
73
 
85
- function REFERRAL() pure returns (ObjectType) {
86
- return toObjectType(123);
74
+ function CLAIM() pure returns (ObjectType) {
75
+ return ObjectType.wrap(22);
87
76
  }
88
77
 
89
- function ORACLE() pure returns (ObjectType) {
90
- return toObjectType(130);
78
+ function PAYOUT() pure returns (ObjectType) {
79
+ return ObjectType.wrap(23);
91
80
  }
92
81
 
93
- function POOL() pure returns (ObjectType) {
94
- return toObjectType(140);
82
+ function RISK() pure returns (ObjectType) {
83
+ return ObjectType.wrap(24);
95
84
  }
96
85
 
97
- function BUNDLE() pure returns (ObjectType) {
98
- return toObjectType(220);
86
+ function PRICE() pure returns (ObjectType) {
87
+ return ObjectType.wrap(25);
99
88
  }
100
89
 
101
- function RISK() pure returns (ObjectType) {
102
- return toObjectType(200);
90
+ function REQUEST() pure returns (ObjectType) {
91
+ return ObjectType.wrap(26);
103
92
  }
104
93
 
105
- function APPLICATION() pure returns (ObjectType) {
106
- return toObjectType(210);
94
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
95
+ return ObjectType.wrap(27);
107
96
  }
108
97
 
109
- function POLICY() pure returns (ObjectType) {
110
- return toObjectType(211);
98
+ function DISTRIBUTOR() pure returns (ObjectType) {
99
+ return ObjectType.wrap(28);
111
100
  }
112
101
 
113
- function CLAIM() pure returns (ObjectType) {
114
- return toObjectType(212);
102
+ function REFERRAL() pure returns (ObjectType) {
103
+ return ObjectType.wrap(29);
115
104
  }
116
105
 
117
- function PAYOUT() pure returns (ObjectType) {
118
- return toObjectType(213);
106
+ function BUNDLE() pure returns (ObjectType) {
107
+ return ObjectType.wrap(30);
119
108
  }
120
109
 
121
- function PRICE() pure returns (ObjectType) {
122
- return toObjectType(230);
110
+ function TARGET() pure returns (ObjectType) {
111
+ return ObjectType.wrap(31);
123
112
  }
124
113
 
125
- /// @dev Converts the uint8 to a ObjectType.
126
- function toObjectType(uint256 objectType) pure returns (ObjectType) {
127
- return ObjectType.wrap(uint8(objectType));
114
+ function STAKE() pure returns (ObjectType) {
115
+ return ObjectType.wrap(32);
128
116
  }
129
117
 
130
- // TODO move to ObjecTypeLib and rename to zero()
131
- /// @dev Return the ObjectType zero (0)
132
- function zeroObjectType() pure returns (ObjectType) {
133
- return ObjectType.wrap(0);
118
+ /// @dev Object type that includes any other object type.
119
+ /// Note that eq()/'==' does not take this property into account.
120
+ function ALL() pure returns (ObjectType) {
121
+ return ObjectType.wrap(99);
134
122
  }
135
123
 
136
- // pure free functions for operators
124
+ // other pure free functions for operators
137
125
  function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
138
126
  return ObjectType.unwrap(a) == ObjectType.unwrap(b);
139
127
  }
140
128
 
141
- function neObjectType(
142
- ObjectType a,
143
- ObjectType b
144
- ) pure returns (bool isDifferent) {
129
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
145
130
  return ObjectType.unwrap(a) != ObjectType.unwrap(b);
146
131
  }
147
132
 
148
133
  // library functions that operate on user defined type
149
134
  library ObjectTypeLib {
135
+
136
+ error ErrorVersionTooBig(uint256 version);
137
+
138
+ function zero() public pure returns (ObjectType) {
139
+ return ObjectType.wrap(0);
140
+ }
141
+
142
+ /// @dev Converts the uint256 into ObjectType.
143
+ function toObjectType(uint256 objectType) public pure returns (ObjectType) {
144
+ return ObjectType.wrap(uint8(objectType));
145
+ }
146
+
150
147
  /// @dev Converts the NftId to a uint256.
151
148
  function toInt(ObjectType objectType) public pure returns (uint96) {
152
149
  return uint96(ObjectType.unwrap(objectType));
@@ -164,6 +161,111 @@ library ObjectTypeLib {
164
161
 
165
162
  /// @dev Returns true if the values are equal (==).
166
163
  function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
167
- return eqObjectType(a, b);
164
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
165
+ }
166
+
167
+ /// @dev Returns true if the values are not equal (!=).
168
+ function ne(ObjectType a, ObjectType b) public pure returns (bool isSame) {
169
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
170
+ }
171
+
172
+ /// @dev Returns the type/domain name for the provided object type
173
+ function toName(ObjectType objectType) public pure returns (string memory name) {
174
+ if (objectType == REGISTRY()) {
175
+ return "Registry";
176
+ } else if (objectType == STAKING()) {
177
+ return "Staking";
178
+ } else if (objectType == INSTANCE()) {
179
+ return "Instance";
180
+ } else if (objectType == COMPONENT()) {
181
+ return "Component";
182
+ } else if (objectType == PRODUCT()) {
183
+ return "Product";
184
+ } else if (objectType == ORACLE()) {
185
+ return "Oracle";
186
+ } else if (objectType == DISTRIBUTION()) {
187
+ return "Distribution";
188
+ } else if (objectType == POOL()) {
189
+ return "Pool";
190
+ } else if (objectType == APPLICATION()) {
191
+ return "Application";
192
+ } else if (objectType == POLICY()) {
193
+ return "Policy";
194
+ } else if (objectType == CLAIM()) {
195
+ return "Claim";
196
+ } else if (objectType == PRICE()) {
197
+ return "Price";
198
+ } else if (objectType == BUNDLE()) {
199
+ return "Bundle";
200
+ }
201
+
202
+ // fallback: ObjectType<obect-type-int>
203
+ return string(
204
+ abi.encodePacked(
205
+ "ObjectType",
206
+ toString(
207
+ toInt(objectType))));
208
+ }
209
+
210
+ function toVersionedName(
211
+ string memory name,
212
+ string memory suffix,
213
+ uint256 version
214
+ )
215
+ external
216
+ pure
217
+ returns (string memory versionedName)
218
+ {
219
+ if (version > maxNumReleases()) {
220
+ revert ErrorVersionTooBig(version);
221
+ }
222
+
223
+ string memory versionName = "_v0";
224
+
225
+ if (version >= 10) {
226
+ versionName = "_v";
227
+ }
228
+
229
+ versionedName = string(
230
+ abi.encodePacked(
231
+ name,
232
+ suffix,
233
+ versionName,
234
+ toString(version)));
235
+ }
236
+
237
+ /// @dev returns the max number of releases (major versions) this gif setup can handle.
238
+ function maxNumReleases() public pure returns (uint8) {
239
+ return 99;
240
+ }
241
+
242
+ /// @dev returns the provied int as a string
243
+ function toString(uint256 value) public pure returns (string memory name) {
244
+
245
+ if (value == 0) {
246
+ return "0";
247
+ }
248
+
249
+ uint256 temp = value;
250
+ uint256 digits = 0;
251
+ while (temp != 0) {
252
+ digits++;
253
+ temp /= 10;
254
+ }
255
+
256
+ bytes memory buffer = new bytes(digits);
257
+ uint index = digits - 1;
258
+
259
+ temp = value;
260
+ while (temp != 0) {
261
+ buffer[index] = bytes1(uint8(48 + temp % 10));
262
+ temp /= 10;
263
+
264
+ if (index > 0) {
265
+ index--;
266
+ }
267
+ }
268
+
269
+ return string(buffer);
168
270
  }
169
271
  }
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {REQUEST} from "./ObjectType.sol";
6
+
7
+ type RequestId is uint64;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRequestId as ==,
12
+ neRequestId as !=,
13
+ RequestIdLib.eqz,
14
+ RequestIdLib.gtz,
15
+ RequestIdLib.toInt,
16
+ RequestIdLib.toKey32
17
+ } for RequestId global;
18
+
19
+ // general pure free functions
20
+
21
+ function eqRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
22
+ return RequestIdLib.eq(a, b);
23
+ }
24
+
25
+ function neRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
26
+ return RequestIdLib.ne(a, b);
27
+ }
28
+
29
+ library RequestIdLib {
30
+
31
+ // @dev zero element to refer to a non existing/initialized request
32
+ function zero() public pure returns (RequestId) {
33
+ return RequestId.wrap(0);
34
+ }
35
+
36
+ // @dev Converts an int id into a request id.
37
+ function toRequestId(uint256 id) public pure returns (RequestId) {
38
+ return RequestId.wrap(uint64(id));
39
+ }
40
+
41
+ // @dev Converts a request id back to an int value.
42
+ function toInt(RequestId requestId) public pure returns (uint256) {
43
+ return RequestId.unwrap(requestId);
44
+ }
45
+
46
+ // @dev Returns true iff request id a == 0
47
+ function eqz(RequestId a) public pure returns (bool) {
48
+ return RequestId.unwrap(a) == 0;
49
+ }
50
+
51
+ // @dev Returns true iff request id a > 0
52
+ function gtz(RequestId a) public pure returns (bool) {
53
+ return RequestId.unwrap(a) > 0;
54
+ }
55
+
56
+ // @dev Returns true iff risk ids a and b are identical
57
+ function eq(RequestId a, RequestId b) public pure returns (bool isSame) {
58
+ return RequestId.unwrap(a) == RequestId.unwrap(b);
59
+ }
60
+
61
+ // @dev Returns true iff risk ids a and b are different
62
+ function ne(RequestId a, RequestId b) public pure returns (bool isSame) {
63
+ return RequestId.unwrap(a) != RequestId.unwrap(b);
64
+ }
65
+
66
+ /// @dev Returns the key32 value for the specified nft id and object type.
67
+ function toKey32(RequestId id) public pure returns (Key32 key) {
68
+ return Key32Lib.toKey32(REQUEST(), toKeyId(id));
69
+ }
70
+
71
+ /// @dev Returns the key id value for the specified nft id
72
+ function toKeyId(RequestId id) public pure returns (KeyId keyId) {
73
+ return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
74
+ }
75
+ }