@etherisc/gif-next 0.0.2-96b5b72-170 → 0.0.2-97aac30-275

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 (401) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +193 -164
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +114 -321
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +120 -82
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +72 -108
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +22 -48
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +25 -6
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +56 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +53 -18
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -28
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +458 -331
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +133 -59
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -32
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1103 -308
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  41. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  49. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  50. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  51. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  52. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  54. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  56. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  58. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  61. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +69 -252
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  63. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +105 -55
  64. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  65. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +8 -53
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  67. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +134 -86
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  69. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +121 -133
  70. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  71. package/artifacts/contracts/pool/Pool.sol/Pool.json +239 -92
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  73. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +170 -368
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  75. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +98 -72
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  77. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +69 -153
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +105 -31
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  81. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +95 -203
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +118 -56
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  85. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +7 -1
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  87. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +7 -1
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +81 -25
  90. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  91. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -1
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  93. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +230 -107
  94. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  95. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -55
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  97. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +164 -299
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +106 -92
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  101. package/artifacts/contracts/product/PricingService.sol/PricingService.json +139 -160
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  103. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +130 -40
  104. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  105. package/artifacts/contracts/product/Product.sol/Product.json +334 -146
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ProductService.sol/ProductService.json +29 -214
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +88 -34
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +163 -61
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +256 -65
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +378 -67
  119. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +272 -68
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +87 -35
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +799 -127
  127. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  128. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  129. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  130. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
  131. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  132. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  133. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  134. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  135. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  136. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  137. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  141. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Component.sol/Component.json +184 -11
  143. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  144. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +908 -49
  145. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  147. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  148. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  149. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  151. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  152. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  153. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  155. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +172 -4
  157. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  158. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  159. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +80 -22
  161. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +1 -11
  163. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  165. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  167. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  168. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  169. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  171. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  174. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  176. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  177. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  178. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +176 -24
  179. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  180. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  181. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  182. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  183. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  184. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  185. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  186. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  187. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  188. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  189. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
  191. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
  193. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  194. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  195. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  197. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  198. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  199. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  200. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  201. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  202. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  203. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1103 -172
  204. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  205. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +497 -49
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  208. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  209. package/artifacts/contracts/staking/Staking.sol/Staking.json +1247 -56
  210. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +167 -30
  212. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  214. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  215. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +605 -78
  216. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +122 -28
  218. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  220. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  221. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  222. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  223. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  224. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
  226. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  228. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  229. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  230. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  232. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
  234. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  235. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  236. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  238. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  240. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  241. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +15 -2
  242. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  244. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  246. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  248. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  250. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  252. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
  254. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  256. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
  258. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  262. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  264. package/contracts/distribution/Distribution.sol +27 -51
  265. package/contracts/distribution/DistributionService.sol +55 -106
  266. package/contracts/distribution/DistributionServiceManager.sol +9 -18
  267. package/contracts/distribution/IDistributionComponent.sol +3 -8
  268. package/contracts/distribution/IDistributionService.sol +2 -8
  269. package/contracts/instance/IInstance.sol +12 -7
  270. package/contracts/instance/IInstanceService.sol +13 -5
  271. package/contracts/instance/Instance.sol +30 -23
  272. package/contracts/instance/InstanceAdmin.sol +331 -0
  273. package/contracts/instance/InstanceAuthorizationsLib.sol +210 -141
  274. package/contracts/instance/InstanceReader.sol +64 -42
  275. package/contracts/instance/InstanceService.sol +141 -87
  276. package/contracts/instance/InstanceServiceManager.sol +10 -20
  277. package/contracts/instance/InstanceStore.sol +125 -55
  278. package/contracts/instance/base/BalanceStore.sol +118 -0
  279. package/contracts/instance/base/ObjectCounter.sol +21 -0
  280. package/contracts/instance/module/IAccess.sol +2 -10
  281. package/contracts/instance/module/IBundle.sol +1 -4
  282. package/contracts/instance/module/IComponents.sol +15 -4
  283. package/contracts/instance/module/IPolicy.sol +8 -2
  284. package/contracts/mock/Dip.sol +26 -0
  285. package/contracts/oracle/IOracle.sol +20 -0
  286. package/contracts/oracle/IOracleComponent.sol +32 -0
  287. package/contracts/oracle/IOracleService.sol +65 -0
  288. package/contracts/oracle/Oracle.sol +145 -0
  289. package/contracts/oracle/OracleService.sol +277 -0
  290. package/contracts/oracle/OracleServiceManager.sol +42 -0
  291. package/contracts/pool/BundleService.sol +63 -149
  292. package/contracts/pool/BundleServiceManager.sol +9 -18
  293. package/contracts/pool/IBundleService.sol +4 -16
  294. package/contracts/pool/IPoolComponent.sol +2 -4
  295. package/contracts/pool/IPoolService.sol +45 -9
  296. package/contracts/pool/Pool.sol +37 -40
  297. package/contracts/pool/PoolService.sol +195 -145
  298. package/contracts/pool/PoolServiceManager.sol +9 -18
  299. package/contracts/product/ApplicationService.sol +111 -43
  300. package/contracts/product/ApplicationServiceManager.sol +9 -6
  301. package/contracts/product/ClaimService.sol +21 -21
  302. package/contracts/product/ClaimServiceManager.sol +9 -6
  303. package/contracts/product/IApplicationService.sol +1 -1
  304. package/contracts/product/IClaimService.sol +7 -1
  305. package/contracts/product/IPolicyService.sol +6 -8
  306. package/contracts/product/IPricingService.sol +3 -1
  307. package/contracts/product/IProductComponent.sol +5 -4
  308. package/contracts/product/IProductService.sol +1 -8
  309. package/contracts/product/PolicyService.sol +226 -127
  310. package/contracts/product/PolicyServiceManager.sol +9 -21
  311. package/contracts/product/PricingService.sol +74 -48
  312. package/contracts/product/PricingServiceManager.sol +9 -18
  313. package/contracts/product/Product.sol +45 -47
  314. package/contracts/product/ProductService.sol +26 -112
  315. package/contracts/product/ProductServiceManager.sol +9 -21
  316. package/contracts/registry/ChainNft.sol +1 -0
  317. package/contracts/registry/IRegistry.sol +38 -24
  318. package/contracts/registry/IRegistryService.sol +31 -31
  319. package/contracts/registry/Registry.sol +176 -105
  320. package/contracts/registry/RegistryAdmin.sol +237 -0
  321. package/contracts/registry/RegistryService.sol +44 -82
  322. package/contracts/registry/RegistryServiceManager.sol +21 -23
  323. package/contracts/registry/ReleaseManager.sol +450 -210
  324. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  325. package/contracts/registry/TokenRegistry.sol +261 -62
  326. package/contracts/shared/AccessManagerCustom.sol +736 -0
  327. package/contracts/shared/AccessManagerExtended.sol +470 -0
  328. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  329. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  330. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  331. package/contracts/shared/Component.sol +153 -49
  332. package/contracts/shared/ComponentService.sol +561 -93
  333. package/contracts/shared/ComponentServiceManager.sol +35 -0
  334. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  335. package/contracts/shared/ERC165.sol +1 -1
  336. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  337. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  338. package/contracts/shared/IComponent.sol +20 -8
  339. package/contracts/shared/IComponentService.sol +102 -0
  340. package/contracts/shared/IInstanceLinkedComponent.sol +5 -11
  341. package/contracts/{instance/base → shared}/IKeyValueStore.sol +6 -6
  342. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  343. package/contracts/shared/INftOwnable.sol +1 -1
  344. package/contracts/shared/IPolicyHolder.sol +6 -1
  345. package/contracts/shared/IService.sol +1 -1
  346. package/contracts/shared/InitializableCustom.sol +177 -0
  347. package/contracts/shared/InstanceLinkedComponent.sol +51 -178
  348. package/contracts/{instance/base → shared}/KeyValueStore.sol +30 -72
  349. package/contracts/{instance/base → shared}/Lifecycle.sol +12 -3
  350. package/contracts/shared/NftIdSetManager.sol +65 -0
  351. package/contracts/shared/NftOwnable.sol +2 -13
  352. package/contracts/shared/PolicyHolder.sol +21 -13
  353. package/contracts/shared/ProxyManager.sol +31 -1
  354. package/contracts/shared/Registerable.sol +2 -2
  355. package/contracts/shared/Service.sol +7 -2
  356. package/contracts/staking/IStaking.sol +146 -8
  357. package/contracts/staking/IStakingService.sol +83 -39
  358. package/contracts/staking/StakeManagerLib.sol +179 -0
  359. package/contracts/staking/Staking.sol +503 -17
  360. package/contracts/staking/StakingManager.sol +22 -14
  361. package/contracts/staking/StakingReader.sol +187 -0
  362. package/contracts/staking/StakingService.sol +246 -44
  363. package/contracts/staking/StakingServiceManager.sol +8 -4
  364. package/contracts/staking/StakingStore.sol +572 -0
  365. package/contracts/staking/TargetManagerLib.sol +207 -0
  366. package/contracts/type/AddressSet.sol +1 -1
  367. package/contracts/type/Amount.sol +20 -1
  368. package/contracts/type/Blocknumber.sol +20 -3
  369. package/contracts/type/Fee.sol +17 -16
  370. package/contracts/type/NftId.sol +14 -16
  371. package/contracts/type/NftIdSet.sol +1 -1
  372. package/contracts/type/ObjectType.sol +12 -10
  373. package/contracts/type/Referral.sol +1 -1
  374. package/contracts/type/RequestId.sol +75 -0
  375. package/contracts/type/RiskId.sol +1 -1
  376. package/contracts/type/RoleId.sol +18 -4
  377. package/contracts/type/Seconds.sol +27 -0
  378. package/contracts/type/StateId.sol +27 -2
  379. package/contracts/type/Timestamp.sol +6 -2
  380. package/contracts/type/Version.sol +1 -1
  381. package/package.json +4 -3
  382. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  383. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  384. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  387. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  389. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  394. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  395. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  396. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  397. package/contracts/instance/InstanceAccessManager.sol +0 -543
  398. package/contracts/instance/module/ISetup.sol +0 -33
  399. package/contracts/instance/module/ITreasury.sol +0 -23
  400. package/contracts/registry/RegistryAccessManager.sol +0 -207
  401. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -0,0 +1,207 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {Component} from "../shared/Component.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
11
+ import {Key32} from "../type/Key32.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
+ import {StakingReader} from "./StakingReader.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
+
18
+
19
+ library TargetManagerLib {
20
+
21
+ function updateLockingPeriod(
22
+ IStaking staking,
23
+ NftId targetNftId,
24
+ Seconds lockingPeriod
25
+ )
26
+ external
27
+ view
28
+ returns (
29
+ Seconds oldLockingPeriod,
30
+ IStaking.TargetInfo memory targetInfo
31
+ )
32
+ {
33
+ StakingReader reader = staking.getStakingReader();
34
+
35
+ // check target exists
36
+ if(!reader.isTarget(targetNftId)) {
37
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
38
+ }
39
+
40
+ checkLockingPeriod(targetNftId, lockingPeriod);
41
+
42
+ targetInfo = reader.getTargetInfo(targetNftId);
43
+ oldLockingPeriod = targetInfo.lockingPeriod;
44
+
45
+ targetInfo.lockingPeriod = lockingPeriod;
46
+ }
47
+
48
+
49
+ function updateRewardRate(
50
+ IStaking staking,
51
+ NftId targetNftId,
52
+ UFixed rewardRate
53
+ )
54
+ external
55
+ view
56
+ returns (
57
+ UFixed oldRewardRate,
58
+ IStaking.TargetInfo memory targetInfo
59
+ )
60
+ {
61
+ StakingReader reader = staking.getStakingReader();
62
+
63
+ // check target exists
64
+ if(!reader.isTarget(targetNftId)) {
65
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
66
+ }
67
+
68
+ checkRewardRate(targetNftId, rewardRate);
69
+
70
+ targetInfo = reader.getTargetInfo(targetNftId);
71
+ oldRewardRate = targetInfo.rewardRate;
72
+
73
+ targetInfo.rewardRate = rewardRate;
74
+ }
75
+
76
+
77
+ function checkTargetParameters(
78
+ IRegistry registry,
79
+ StakingReader stakingReader,
80
+ NftId targetNftId,
81
+ ObjectType expectedObjectType,
82
+ Seconds initialLockingPeriod,
83
+ UFixed initialRewardRate
84
+ )
85
+ external
86
+ view
87
+ {
88
+ // target nft id must not be zero
89
+ if (targetNftId.eqz()) {
90
+ revert IStaking.ErrorStakingTargetNftIdZero();
91
+ }
92
+
93
+ // only accept "new" targets to be registered
94
+ if (stakingReader.isTarget(targetNftId)) {
95
+ revert IStaking.ErrorStakingTargetAlreadyRegistered(targetNftId);
96
+ }
97
+
98
+ // target object type must be allowed
99
+ if (!isTargetTypeSupported(expectedObjectType)) {
100
+ revert IStaking.ErrorStakingTargetTypeNotSupported(targetNftId, expectedObjectType);
101
+ }
102
+
103
+ checkLockingPeriod(targetNftId, initialLockingPeriod);
104
+ checkRewardRate(targetNftId, initialRewardRate);
105
+
106
+ // target nft id must be known and registered with the expected object type
107
+ if (!registry.isRegistered(targetNftId)) {
108
+ revert IStaking.ErrorStakingTargetNotFound(targetNftId);
109
+ } else {
110
+ // check that expected object type matches with registered object type
111
+ ObjectType actualObjectType = registry.getObjectInfo(targetNftId).objectType;
112
+ if (actualObjectType != expectedObjectType) {
113
+ revert IStaking.ErrorStakingTargetUnexpectedObjectType(targetNftId, expectedObjectType, actualObjectType);
114
+ }
115
+ }
116
+ }
117
+
118
+
119
+ function isTargetTypeSupported(ObjectType objectType)
120
+ public
121
+ pure
122
+ returns (bool isSupported)
123
+ {
124
+ if(objectType == PROTOCOL()) { return true; }
125
+ if(objectType == INSTANCE()) { return true; }
126
+
127
+ return false;
128
+ }
129
+
130
+
131
+ function checkLockingPeriod(NftId targetNftId, Seconds lockingPeriod)
132
+ public
133
+ pure
134
+ {
135
+ // check locking period is > 0
136
+ if (lockingPeriod.eqz()) {
137
+ revert IStaking.ErrorStakingLockingPeriodZero(targetNftId);
138
+ }
139
+
140
+ // check locking period <= max locking period
141
+ if (lockingPeriod > getMaxLockingPeriod()) {
142
+ revert IStaking.ErrorStakingLockingPeriodTooLong(targetNftId, getMaxLockingPeriod(), lockingPeriod);
143
+ }
144
+ }
145
+
146
+
147
+ function checkRewardRate(NftId targetNftId, UFixed rewardRate)
148
+ public
149
+ pure
150
+ {
151
+ // check reward rate <= max reward rate
152
+ if (rewardRate > getMaxRewardRate()) {
153
+ revert IStaking.ErrorStakingRewardRateTooHigh(targetNftId, getMaxRewardRate(), rewardRate);
154
+ }
155
+ }
156
+
157
+
158
+ function calculateRequiredDipAmount(
159
+ Amount tokenAmount,
160
+ UFixed stakingRate
161
+ )
162
+ public
163
+ view
164
+ returns (Amount dipAmount)
165
+ {
166
+ dipAmount = tokenAmount.multiplyWith(stakingRate);
167
+ }
168
+
169
+
170
+ function calculateStakingRate(
171
+ IERC20Metadata dipToken,
172
+ IERC20Metadata token,
173
+ UFixed requiredDipPerToken
174
+ )
175
+ public
176
+ view
177
+ returns (UFixed stakingRate)
178
+ {
179
+ UFixed decimalsFactor = UFixedLib.toUFixed(1, int8(dipToken.decimals() - token.decimals()));
180
+ stakingRate = requiredDipPerToken * decimalsFactor;
181
+ }
182
+
183
+
184
+ function getMaxLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
185
+ return SecondsLib.toSeconds(5 * 365 * 24 * 3600);
186
+ }
187
+
188
+
189
+ function getDefaultLockingPeriod() public pure returns (Seconds maxLockingPeriod) {
190
+ return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
191
+ }
192
+
193
+
194
+ function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
195
+ return UFixedLib.toUFixed(33, -2);
196
+ }
197
+
198
+
199
+ function getDefaultRewardRate() public pure returns (UFixed defaultRewardRate) {
200
+ return UFixedLib.toUFixed(5, -2);
201
+ }
202
+
203
+
204
+ function toTargetKey(NftId targetNftId) public pure returns (Key32 targetKey) {
205
+ return targetNftId.toKey32(TARGET());
206
+ }
207
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
5
5
  library LibAddressSet {
@@ -9,6 +9,7 @@ using {
9
9
  addAmount as +,
10
10
  subAmount as -,
11
11
  eqAmount as ==,
12
+ nqAmount as !=,
12
13
  ltAmount as <,
13
14
  gtAmount as >,
14
15
  AmountLib.eq,
@@ -16,7 +17,8 @@ using {
16
17
  AmountLib.gtz,
17
18
  AmountLib.toInt,
18
19
  AmountLib.add,
19
- AmountLib.toUFixed
20
+ AmountLib.toUFixed,
21
+ AmountLib.multiplyWith
20
22
  } for Amount global;
21
23
 
22
24
  function addAmount(Amount a, Amount b) pure returns (Amount) {
@@ -31,6 +33,10 @@ function eqAmount(Amount a, Amount b) pure returns (bool) {
31
33
  return AmountLib.eq(a, b);
32
34
  }
33
35
 
36
+ function nqAmount(Amount a, Amount b) pure returns (bool) {
37
+ return !AmountLib.eq(a, b);
38
+ }
39
+
34
40
  function ltAmount(Amount a, Amount b) pure returns (bool) {
35
41
  return AmountLib.lt(a, b);
36
42
  }
@@ -81,6 +87,15 @@ library AmountLib {
81
87
  return Amount.unwrap(a1) > Amount.unwrap(a2);
82
88
  }
83
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
+
84
99
  /// @dev return true if amount is larger than 0
85
100
  function gtz(Amount amount) public pure returns (bool) {
86
101
  return Amount.unwrap(amount) > 0;
@@ -102,6 +117,10 @@ library AmountLib {
102
117
  return UFixedLib.toUFixed(Amount.unwrap(amount));
103
118
  }
104
119
 
120
+ function multiplyWith(Amount amount, UFixed factor) public pure returns (Amount) {
121
+ return toAmount((factor * UFixedLib.toUFixed(Amount.unwrap(amount))).toInt());
122
+ }
123
+
105
124
  function _max() internal pure returns (uint96) {
106
125
  // IMPORTANT: type nees to match with actual definition for Amount
107
126
  return type(uint96).max;
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  type Blocknumber is uint32;
5
5
 
@@ -10,7 +10,9 @@ using {
10
10
  lteBlocknumber as <=,
11
11
  eqBlocknumber as ==,
12
12
  neBlocknumber as !=,
13
- BlocknumberLib.toInt
13
+ BlocknumberLib.toInt,
14
+ BlocknumberLib.eqz,
15
+ BlocknumberLib.gtz
14
16
  } for Blocknumber global;
15
17
 
16
18
  /// @dev return true if Blocknumber a is greater than Blocknumber b
@@ -49,7 +51,7 @@ function toBlocknumber(uint256 blocknum) pure returns (Blocknumber) {
49
51
  }
50
52
 
51
53
  function blockBlocknumber() view returns (Blocknumber) {
52
- return toBlocknumber(block.number);
54
+ return BlocknumberLib.currentBlocknumber();
53
55
  }
54
56
 
55
57
  // TODO move to BlocknumberLib and rename to zero()
@@ -64,6 +66,21 @@ function blockNumber() view returns (Blocknumber) {
64
66
  }
65
67
 
66
68
  library BlocknumberLib {
69
+ /// @dev returns the current Blocknumber
70
+ function currentBlocknumber() public view returns (Blocknumber) {
71
+ return Blocknumber.wrap(uint32(block.number));
72
+ }
73
+
74
+ /// @dev return true iff blocknumber is 0
75
+ function eqz(Blocknumber blocknumber) public pure returns (bool) {
76
+ return Blocknumber.unwrap(blocknumber) == 0;
77
+ }
78
+
79
+ /// @dev return true iff blocknumber is 0
80
+ function gtz(Blocknumber blocknumber) public pure returns (bool) {
81
+ return Blocknumber.unwrap(blocknumber) > 0;
82
+ }
83
+
67
84
  /// @dev return true if Blocknumber a is greater than Blocknumber b
68
85
  function gt(
69
86
  Blocknumber a,
@@ -1,16 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount, AmountLib} from "./Amount.sol";
5
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
6
6
 
7
7
  struct Fee {
8
8
  UFixed fractionalFee;
9
+ // TODO migrate fixed fee to Amount
9
10
  uint256 fixedFee;
10
11
  }
11
12
 
12
13
  library FeeLib {
13
14
 
15
+ /// @dev Return a zero fee struct (0, 0)
16
+ function zero() public pure returns (Fee memory fee) {
17
+ return Fee(UFixed.wrap(0), 0);
18
+ }
19
+
20
+ /// @dev Converts the uint256 to a fee struct.
21
+ function toFee(
22
+ UFixed fractionalFee,
23
+ uint256 fixedFee
24
+ ) public pure returns (Fee memory fee) {
25
+ return Fee(fractionalFee, fixedFee);
26
+ }
27
+
28
+ /// @dev Calculates fee and net amounts for the provided parameters
14
29
  function calculateFee(
15
30
  Fee memory fee,
16
31
  Amount amount
@@ -31,27 +46,13 @@ library FeeLib {
31
46
  }
32
47
  }
33
48
 
34
- /// @dev Converts the uint256 to a fee struct.
35
- function toFee(
36
- UFixed fractionalFee,
37
- uint256 fixedFee
38
- ) public pure returns (Fee memory fee) {
39
- return Fee(fractionalFee, fixedFee);
40
- }
41
-
42
49
  /// @dev Return the percent fee struct (x%, 0)
43
50
  function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
44
51
  return Fee(UFixedLib.toUFixed(percent, -2), 0);
45
52
  }
46
53
 
47
- // TODO rename to zero
48
- /// @dev Return a zero fee struct (0, 0)
49
- function zeroFee() public pure returns (Fee memory fee) {
50
- return Fee(UFixed.wrap(0), 0);
51
- }
52
-
53
54
  // pure free functions for operators
54
- function feeIsSame(Fee memory a, Fee memory b) public pure returns (bool isSame) {
55
+ function eq(Fee memory a, Fee memory b) public pure returns (bool isSame) {
55
56
  return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
56
57
  }
57
58
 
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {ObjectType} from "./ObjectType.sol";
@@ -18,25 +18,13 @@ using {
18
18
  NftIdLib.toKey32
19
19
  } for NftId global;
20
20
 
21
- // general pure free functions
22
- /// @dev Converts the uint256 to a NftId.
23
- function toNftId(uint256 id) pure returns (NftId) {
24
- return NftId.wrap(uint96(id));
25
- }
26
-
27
- // TODO move to NftIdLib and rename to zero()
28
- /// @dev Return the NftId zero (0)
29
- function zeroNftId() pure returns (NftId) {
30
- return NftId.wrap(0);
31
- }
32
-
33
21
  // pure free functions for operators
34
22
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
35
- return NftId.unwrap(a) == NftId.unwrap(b);
23
+ return NftIdLib.eq(a, b);
36
24
  }
37
25
 
38
26
  function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
39
- return NftId.unwrap(a) != NftId.unwrap(b);
27
+ return NftIdLib.ne(a, b);
40
28
  }
41
29
 
42
30
  // library functions that operate on user defined type
@@ -48,6 +36,11 @@ library NftIdLib {
48
36
  return NftId.wrap(0);
49
37
  }
50
38
 
39
+ /// @dev Converts the uint256 to a NftId.
40
+ function toNftId(uint256 id) public pure returns (NftId) {
41
+ return NftId.wrap(uint96(id));
42
+ }
43
+
51
44
  /// @dev Converts the NftId to a uint256.
52
45
  function toInt(NftId nftId) public pure returns (uint96) {
53
46
  return uint96(NftId.unwrap(nftId));
@@ -65,7 +58,12 @@ library NftIdLib {
65
58
 
66
59
  /// @dev Returns true if the values are equal (==).
67
60
  function eq(NftId a, NftId b) public pure returns (bool isSame) {
68
- 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);
69
67
  }
70
68
 
71
69
  /// @dev Returns the key32 value for the specified nft id and object type.
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {NftId} from "../type/NftId.sol";
5
5
 
@@ -14,6 +14,10 @@ using {
14
14
 
15
15
  // general pure free functions
16
16
 
17
+ function RELEASE() pure returns (ObjectType) {
18
+ return toObjectType(1);
19
+ }
20
+
17
21
  function PROTOCOL() pure returns (ObjectType) {
18
22
  return toObjectType(10);
19
23
  }
@@ -54,13 +58,12 @@ function COMPONENT() pure returns (ObjectType) {
54
58
  return toObjectType(100);
55
59
  }
56
60
 
57
- // TODO replace by PRODUCT_SETUP
58
- function TREASURY() pure returns (ObjectType) {
61
+ function PRODUCT_SETUP() pure returns (ObjectType) {
59
62
  return toObjectType(101);
60
63
  }
61
64
 
62
- function PRODUCT_SETUP() pure returns (ObjectType) {
63
- return toObjectType(101);
65
+ function REQUEST() pure returns (ObjectType) {
66
+ return toObjectType(105);
64
67
  }
65
68
 
66
69
  function PRODUCT() pure returns (ObjectType) {
@@ -124,12 +127,6 @@ function toObjectType(uint256 objectType) pure returns (ObjectType) {
124
127
  return ObjectType.wrap(uint8(objectType));
125
128
  }
126
129
 
127
- // TODO move to ObjecTypeLib and rename to zero()
128
- /// @dev Return the ObjectType zero (0)
129
- function zeroObjectType() pure returns (ObjectType) {
130
- return ObjectType.wrap(0);
131
- }
132
-
133
130
  // pure free functions for operators
134
131
  function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
135
132
  return ObjectType.unwrap(a) == ObjectType.unwrap(b);
@@ -144,6 +141,11 @@ function neObjectType(
144
141
 
145
142
  // library functions that operate on user defined type
146
143
  library ObjectTypeLib {
144
+
145
+ function zero() public pure returns (ObjectType) {
146
+ return ObjectType.wrap(0);
147
+ }
148
+
147
149
  /// @dev Converts the NftId to a uint256.
148
150
  function toInt(ObjectType objectType) public pure returns (uint96) {
149
151
  return uint96(ObjectType.unwrap(objectType));
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
@@ -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
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {RISK} from "./ObjectType.sol";
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {ROLE} from "./ObjectType.sol";
@@ -37,9 +37,6 @@ function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1500
37
37
  /// token white/blacklisting is possible for any active release
38
38
  function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1600); }
39
39
 
40
- /// @dev role associated with the ReleaseManager contract
41
- function RELEASE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1700); }
42
-
43
40
  /// @dev instance specific role to register/own a distribution component
44
41
  function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
45
42
 
@@ -60,12 +57,23 @@ function INSTANCE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2600)
60
57
  /// allows instance specific target, role and access management
61
58
  function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1900); }
62
59
 
60
+ function REGISTRY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1800); }
61
+
63
62
  /// @dev instance specific role for instance service
64
63
  function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2000); }
65
64
 
65
+ /// @dev role for creating gif target on instance service
66
+ function CAN_CREATE_GIF_TARGET__ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1700); }
67
+
68
+ /// @dev role for registering gif components
69
+ function COMPONENT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2001); }
70
+
66
71
  /// @dev instance specific role for distribution service
67
72
  function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2100); }
68
73
 
74
+ /// @dev instance specific role for oracle service
75
+ function ORACLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2150); }
76
+
69
77
  /// @dev instance specific role for pool service
70
78
  function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2200); }
71
79
 
@@ -84,6 +92,12 @@ function CLAIM_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(
84
92
  /// @dev instance specific role for bundle service
85
93
  function BUNDLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2500); }
86
94
 
95
+ /// @dev instance specific role for pricing service
96
+ function PRICING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2800); }
97
+
98
+ /// @dev instance specific role for staking service
99
+ function STAKING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2900); }
100
+
87
101
  // @dev Returns true iff role ids a and b are identical
88
102
  function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
89
103
  return RoleId.unwrap(a) == RoleId.unwrap(b);