@etherisc/gif-next 0.0.2-f398177-971 → 0.0.2-f47f21f-178

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